Salome HOME
Merge from BR_Dev_For_4_0 branch (from tag mergeto_BR_QT4_Dev_17Jan08)
authorvsr <vsr@opencascade.com>
Wed, 6 Feb 2008 15:43:50 +0000 (15:43 +0000)
committervsr <vsr@opencascade.com>
Wed, 6 Feb 2008 15:43:50 +0000 (15:43 +0000)
961 files changed:
adm_local/unix/config_files/check_GEOM.m4
build_configure
configure.ac
doc/salome/gui/GEOM/add_point_on_edge.htm [deleted file]
doc/salome/gui/GEOM/arc.htm [deleted file]
doc/salome/gui/GEOM/archimede.htm [deleted file]
doc/salome/gui/GEOM/basic_geometrical_objects.htm [deleted file]
doc/salome/gui/GEOM/basic_operations.htm [deleted file]
doc/salome/gui/GEOM/blocks_operations.htm [deleted file]
doc/salome/gui/GEOM/boolean_operations.htm [deleted file]
doc/salome/gui/GEOM/box.htm [deleted file]
doc/salome/gui/GEOM/building_by_blocks.htm [deleted file]
doc/salome/gui/GEOM/chamfer.htm [deleted file]
doc/salome/gui/GEOM/change_orientation.htm [deleted file]
doc/salome/gui/GEOM/changing_display_parameters.htm [deleted file]
doc/salome/gui/GEOM/check_free_boundaries.htm [deleted file]
doc/salome/gui/GEOM/check_free_faces.htm [deleted file]
doc/salome/gui/GEOM/circle.htm [deleted file]
doc/salome/gui/GEOM/close_contour.htm [deleted file]
doc/salome/gui/GEOM/color.htm [deleted file]
doc/salome/gui/GEOM/common.htm [deleted file]
doc/salome/gui/GEOM/complex_objects.htm [deleted file]
doc/salome/gui/GEOM/compound.htm [deleted file]
doc/salome/gui/GEOM/cone.htm [deleted file]
doc/salome/gui/GEOM/cshdat_robohelp.htm [deleted file]
doc/salome/gui/GEOM/cshdat_webhelp.htm [deleted file]
doc/salome/gui/GEOM/curve.htm [deleted file]
doc/salome/gui/GEOM/cut.htm [deleted file]
doc/salome/gui/GEOM/cylinder.htm [deleted file]
doc/salome/gui/GEOM/default.css [deleted file]
doc/salome/gui/GEOM/default_ns.css [deleted file]
doc/salome/gui/GEOM/doxyfile.in [new file with mode: 0755]
doc/salome/gui/GEOM/doxyfile_py.in [new file with mode: 0755]
doc/salome/gui/GEOM/edge.htm [deleted file]
doc/salome/gui/GEOM/ehelp.xml [deleted file]
doc/salome/gui/GEOM/ehlpdhtm.js [deleted file]
doc/salome/gui/GEOM/ellipse.htm [deleted file]
doc/salome/gui/GEOM/explode.htm [deleted file]
doc/salome/gui/GEOM/explode_on_blocks.htm [deleted file]
doc/salome/gui/GEOM/extrusion.htm [deleted file]
doc/salome/gui/GEOM/face.htm [deleted file]
doc/salome/gui/GEOM/fillet.htm [deleted file]
doc/salome/gui/GEOM/filling.htm [deleted file]
doc/salome/gui/GEOM/fuse.htm [deleted file]
doc/salome/gui/GEOM/geom.log [deleted file]
doc/salome/gui/GEOM/geometrical_objects.htm [deleted file]
doc/salome/gui/GEOM/geometry.htm [deleted file]
doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1geompyDC.html [new file with mode: 0644]
doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1geompyDC__inherit__graph.jpg [new file with mode: 0644]
doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1info.html [new file with mode: 0644]
doc/salome/gui/GEOM/geompy_doc/namespacegeompy.html
doc/salome/gui/GEOM/geompy_doc/namespacegeompyDC.html [new file with mode: 0644]
doc/salome/gui/GEOM/glue_faces.htm [deleted file]
doc/salome/gui/GEOM/groups.htm [deleted file]
doc/salome/gui/GEOM/i_blue.jpg [deleted file]
doc/salome/gui/GEOM/image1.gif [deleted file]
doc/salome/gui/GEOM/image1.jpg [deleted file]
doc/salome/gui/GEOM/image10.gif [deleted file]
doc/salome/gui/GEOM/image109.jpg [deleted file]
doc/salome/gui/GEOM/image110.jpg [deleted file]
doc/salome/gui/GEOM/image112.jpg [deleted file]
doc/salome/gui/GEOM/image113.jpg [deleted file]
doc/salome/gui/GEOM/image145.jpg [deleted file]
doc/salome/gui/GEOM/image15.jpg [deleted file]
doc/salome/gui/GEOM/image154.jpg [deleted file]
doc/salome/gui/GEOM/image156.jpg [deleted file]
doc/salome/gui/GEOM/image16.jpg [deleted file]
doc/salome/gui/GEOM/image160.jpg [deleted file]
doc/salome/gui/GEOM/image167.jpg [deleted file]
doc/salome/gui/GEOM/image168.jpg [deleted file]
doc/salome/gui/GEOM/image18.gif [deleted file]
doc/salome/gui/GEOM/image180.jpg [deleted file]
doc/salome/gui/GEOM/image181.jpg [deleted file]
doc/salome/gui/GEOM/image185.jpg [deleted file]
doc/salome/gui/GEOM/image193.jpg [deleted file]
doc/salome/gui/GEOM/image2.gif [deleted file]
doc/salome/gui/GEOM/image2.jpg [deleted file]
doc/salome/gui/GEOM/image204.jpg [deleted file]
doc/salome/gui/GEOM/image206.jpg [deleted file]
doc/salome/gui/GEOM/image26.gif [deleted file]
doc/salome/gui/GEOM/image27.gif [deleted file]
doc/salome/gui/GEOM/image28.gif [deleted file]
doc/salome/gui/GEOM/image29.gif [deleted file]
doc/salome/gui/GEOM/image3.gif [deleted file]
doc/salome/gui/GEOM/image3.jpg [deleted file]
doc/salome/gui/GEOM/image30.gif [deleted file]
doc/salome/gui/GEOM/image32.gif [deleted file]
doc/salome/gui/GEOM/image33.gif [deleted file]
doc/salome/gui/GEOM/image34.gif [deleted file]
doc/salome/gui/GEOM/image35.gif [deleted file]
doc/salome/gui/GEOM/image36.gif [deleted file]
doc/salome/gui/GEOM/image37.gif [deleted file]
doc/salome/gui/GEOM/image38.gif [deleted file]
doc/salome/gui/GEOM/image4.gif [deleted file]
doc/salome/gui/GEOM/image40.gif [deleted file]
doc/salome/gui/GEOM/image41.gif [deleted file]
doc/salome/gui/GEOM/image42.gif [deleted file]
doc/salome/gui/GEOM/image43.gif [deleted file]
doc/salome/gui/GEOM/image44.gif [deleted file]
doc/salome/gui/GEOM/image47.gif [deleted file]
doc/salome/gui/GEOM/image49.gif [deleted file]
doc/salome/gui/GEOM/image5.gif [deleted file]
doc/salome/gui/GEOM/image51.gif [deleted file]
doc/salome/gui/GEOM/image52.gif [deleted file]
doc/salome/gui/GEOM/image53.gif [deleted file]
doc/salome/gui/GEOM/image56.gif [deleted file]
doc/salome/gui/GEOM/image57.gif [deleted file]
doc/salome/gui/GEOM/image59.gif [deleted file]
doc/salome/gui/GEOM/image61.gif [deleted file]
doc/salome/gui/GEOM/images/angle.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/arc.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/arc2.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/archimede.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/archimedesn1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/archimedesn2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/archimedesn3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/arcsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/arcsn1.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/arcsn2.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/bezier.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/block1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/block2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/block3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/block4.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/block5.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/block_explodesn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/bool1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/bool2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/bool3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/box1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/box2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/boxes.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/chamfer1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/chamfer2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/chamfer3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/chamfer4.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/chamfer_all.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/chamfer_edge.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/chamfer_faces.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/changeorientation.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/circle1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/circle2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/circle3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/circles.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/colorsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/commonsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/compoundsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/cone1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/cone2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/cones.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/curve.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/cutsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/cylinder1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/cylinder2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/cylinders.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/dialog.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/disp_mode1sn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/disp_mode2sn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/distance.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/edgesn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/editgroup.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/ellipse.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/ellipsesn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/extrusion1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/extrusion2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/facesn1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/facesn2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/facesn3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/fillet1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/fillet2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/fillet3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/fillet_all.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/fillet_edge.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/fillet_prism.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/filling.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/filling_compoundsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/fillingsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/fusesn1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/fusesn2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/geomcreategroup.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/geomexport.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/geomimport.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/glue1.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/glue2.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/glue3.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/glue_faces1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/glue_faces2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/glue_faces3.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/image1.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image109.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image110.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image112.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image113.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image145.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image15.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image154.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image156.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image16.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image160.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image167.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image168.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image18.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image180.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image181.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image185.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image193.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image2.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image2.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image204.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image206.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image26.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image3.jpg [new file with mode: 0755]
doc/salome/gui/GEOM/images/image30.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image33.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image34.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image36.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image38.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image4.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image40.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image47.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image56.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/image57.gif [new file with mode: 0755]
doc/salome/gui/GEOM/images/interpol.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/isos_u12_v12sn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/line.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/lines.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/measures1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/measures10.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/measures3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/measures4.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/measures5.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/measures8.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/measures9.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mirror_axissn1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mirror_axissn2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mirror_planesn1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mirror_planesn2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mirror_pointsn1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mirror_pointsn2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mtrans1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mtrans2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mtransf1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mtransf2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mtransf3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/mtransf4.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/multi_rotation1d1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/multi_rotation1d2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/multi_rotation2d1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/multi_rotation2d2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/multi_transformationsn1d.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/multi_transformationsn2d.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/multi_translation1dsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/multi_translation2dsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/multi_translation_initialsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-basicprop.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-detect2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-isos.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-localcs1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-localcs2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-localcs3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-mrot1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-mrot2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-obj1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-obj2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-obj3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-obj4.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-obj5.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-obj6.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-obj7.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-point2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-scetcher1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-scetcher2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-section.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/neo-transparency.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/new-tolerance.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/normaletoface.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/offsetsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/partition1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/partition2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/partitionsn1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/partitionsn2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/pipe.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/pipe_wire_edgesn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/pipesn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/plane1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/plane2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/plane3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/plane_on_face.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/planes1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/point1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/point3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/points.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/polyline.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/prisms_basessn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/prismssn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/remove_extra_edges.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/remove_extra_edges1.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/remove_extra_edges2.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/repair1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/repair10.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/repair2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/repair3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/repair4.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/repair5.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/repair6.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/repair7.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/repair8.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/repair9.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/revolution.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/revolutionsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/rotationsn1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/rotationsn2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/scale_transformsn1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/scale_transformsn2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/sectionsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/selectcolor.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/shellsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/solidsn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/sphere1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/sphere2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/spheres.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/supp_int_wires1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/supp_int_wires2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/suppress_faces1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/suppress_faces2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/torus1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/torus2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/toruses.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation10.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation11.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation3.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation4.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation4a.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/transformation5.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation6.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation7.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation8.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transformation9.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/translationsn1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/translationsn2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/transparencysn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/vector1.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/vector2.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/wiresn.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/workplane4.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/workplane5.png [new file with mode: 0755]
doc/salome/gui/GEOM/images/workplane6.png [new file with mode: 0755]
doc/salome/gui/GEOM/index.htm [deleted file]
doc/salome/gui/GEOM/index_csh.htm [deleted file]
doc/salome/gui/GEOM/index_rhc.htm [deleted file]
doc/salome/gui/GEOM/input/add_point_on_edge_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/archimede.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/basic_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/blocks_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/boolean_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/building_by_blocks.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/chamfer_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/change_orientation_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/check_free_faces_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/close_contour_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/color.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/common_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_adv_obj.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_arc.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_basic_go.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_box.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_circle.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_complex_obj.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_compound.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_cone.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_curve.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_cylinder.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_edge.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_ellipse.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_explode.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_extrusion.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_extrusion_alongpath.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_face.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_filling.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_geom_objects.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_lcs.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_line.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_plane.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_point.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_primitives.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_revolution.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_shell.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_sketcher.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_solid.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_sphere.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_torus.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_vector.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_wire.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_wplane.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/cut_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/display_mode.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/explode_on_blocks_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/fillet_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/fuse_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/geompy.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/glue_faces_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/import_export.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/index.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/introduction.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/isolines.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/mirror_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/modify_location_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/multi_rotation_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/multi_transformation_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/multi_translation_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/offset_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/partition.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/propagate_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/remove_extra_edges_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/repairing_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/rotation_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/scale_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/section_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/sewing_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/shape_processing_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/suppress_faces_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/suppress_holes_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/suppress_internal_wires_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/transformation_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/transforming_geom_objs.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/translation_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/transparency.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_advanced_geom_objs.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_basic_geom_objs.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_basic_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_blocks_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_boolean_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_building_by_blocks.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_complex_objs.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_creating_geom_objs.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_measurement_tools.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_primitives.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_repairing_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_scripts.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_sketcher.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_transformation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_transformation_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_viewing_geom_objs.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/tui_working_with_groups.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/using_boolean_operations.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/using_measurement_tools.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/viewing_geom_obj.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/viewing_geom_obj_chapter.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/working_with_groups.doc [new file with mode: 0644]
doc/salome/gui/GEOM/isos.htm [deleted file]
doc/salome/gui/GEOM/line.htm [deleted file]
doc/salome/gui/GEOM/local_coordinate_system.htm [deleted file]
doc/salome/gui/GEOM/measurement_tools.htm [deleted file]
doc/salome/gui/GEOM/mirror_image.htm [deleted file]
doc/salome/gui/GEOM/modify_the_location.htm [deleted file]
doc/salome/gui/GEOM/multi_rotation.htm [deleted file]
doc/salome/gui/GEOM/multi_transformation.htm [deleted file]
doc/salome/gui/GEOM/multi_translation.htm [deleted file]
doc/salome/gui/GEOM/newentity_blocks.htm [deleted file]
doc/salome/gui/GEOM/offset_surface.htm [deleted file]
doc/salome/gui/GEOM/partition.htm [deleted file]
doc/salome/gui/GEOM/pics/angle.png [new file with mode: 0755]
doc/salome/gui/GEOM/pics/chamfer1.png
doc/salome/gui/GEOM/pics/chamfer2.png
doc/salome/gui/GEOM/pics/chamfer3.png
doc/salome/gui/GEOM/pics/chamfer4.png [new file with mode: 0755]
doc/salome/gui/GEOM/pics/circle3.png [new file with mode: 0755]
doc/salome/gui/GEOM/pics/dialog.png [new file with mode: 0755]
doc/salome/gui/GEOM/pics/distance.png
doc/salome/gui/GEOM/pics/fillet2.png
doc/salome/gui/GEOM/pics/fillet3.png
doc/salome/gui/GEOM/pics/normaletoface.png [new file with mode: 0755]
doc/salome/gui/GEOM/pipe_creation.htm [deleted file]
doc/salome/gui/GEOM/plane.htm [deleted file]
doc/salome/gui/GEOM/point.htm [deleted file]
doc/salome/gui/GEOM/primitives.htm [deleted file]
doc/salome/gui/GEOM/propagate.htm [deleted file]
doc/salome/gui/GEOM/repairing_operations.htm [deleted file]
doc/salome/gui/GEOM/revolution.htm [deleted file]
doc/salome/gui/GEOM/rotation.htm [deleted file]
doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image13.gif [deleted file]
doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image14.gif [deleted file]
doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image15.gif [deleted file]
doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image16.gif [deleted file]
doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image17.gif [deleted file]
doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image18.gif [deleted file]
doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image19.gif [deleted file]
doc/salome/gui/GEOM/scale_transform.htm [deleted file]
doc/salome/gui/GEOM/section.htm [deleted file]
doc/salome/gui/GEOM/selectcolor.png [deleted file]
doc/salome/gui/GEOM/sewing.htm [deleted file]
doc/salome/gui/GEOM/shape_processing.htm [deleted file]
doc/salome/gui/GEOM/shell.htm [deleted file]
doc/salome/gui/GEOM/sketcher.htm [deleted file]
doc/salome/gui/GEOM/sketcher_tui.htm [deleted file]
doc/salome/gui/GEOM/solid.htm [deleted file]
doc/salome/gui/GEOM/sphere.htm [deleted file]
doc/salome/gui/GEOM/static/doxygen.css [new file with mode: 0755]
doc/salome/gui/GEOM/static/footer.html [new file with mode: 0755]
doc/salome/gui/GEOM/static/header.html [new file with mode: 0755]
doc/salome/gui/GEOM/suppress_faces.htm [deleted file]
doc/salome/gui/GEOM/suppress_holes.htm [deleted file]
doc/salome/gui/GEOM/suppress_internal_wires.htm [deleted file]
doc/salome/gui/GEOM/transformation_operations.htm [deleted file]
doc/salome/gui/GEOM/translation.htm [deleted file]
doc/salome/gui/GEOM/transparency.htm [deleted file]
doc/salome/gui/GEOM/turus.htm [deleted file]
doc/salome/gui/GEOM/vector.htm [deleted file]
doc/salome/gui/GEOM/viewing_geometrical_objects.htm [deleted file]
doc/salome/gui/GEOM/webhelp.cab [deleted file]
doc/salome/gui/GEOM/webhelp.jar [deleted file]
doc/salome/gui/GEOM/whcsh_home.htm [deleted file]
doc/salome/gui/GEOM/whcshdata.htm [deleted file]
doc/salome/gui/GEOM/whd_dpns.htm [deleted file]
doc/salome/gui/GEOM/whd_hide0.gif [deleted file]
doc/salome/gui/GEOM/whd_hide1.gif [deleted file]
doc/salome/gui/GEOM/whd_hide2.gif [deleted file]
doc/salome/gui/GEOM/whd_next0.gif [deleted file]
doc/salome/gui/GEOM/whd_next1.gif [deleted file]
doc/salome/gui/GEOM/whd_next2.gif [deleted file]
doc/salome/gui/GEOM/whd_nvp10.htm [deleted file]
doc/salome/gui/GEOM/whd_nvp20.htm [deleted file]
doc/salome/gui/GEOM/whd_prev0.gif [deleted file]
doc/salome/gui/GEOM/whd_prev1.gif [deleted file]
doc/salome/gui/GEOM/whd_prev2.gif [deleted file]
doc/salome/gui/GEOM/whd_show0.gif [deleted file]
doc/salome/gui/GEOM/whd_show1.gif [deleted file]
doc/salome/gui/GEOM/whd_show2.gif [deleted file]
doc/salome/gui/GEOM/whd_sync0.gif [deleted file]
doc/salome/gui/GEOM/whd_sync1.gif [deleted file]
doc/salome/gui/GEOM/whd_sync2.gif [deleted file]
doc/salome/gui/GEOM/whd_tab0.gif [deleted file]
doc/salome/gui/GEOM/whd_tab1.gif [deleted file]
doc/salome/gui/GEOM/whd_tab2.gif [deleted file]
doc/salome/gui/GEOM/whd_tab3.gif [deleted file]
doc/salome/gui/GEOM/whd_tab4.gif [deleted file]
doc/salome/gui/GEOM/whd_tab5.gif [deleted file]
doc/salome/gui/GEOM/whd_tab6.gif [deleted file]
doc/salome/gui/GEOM/whd_tab7.gif [deleted file]
doc/salome/gui/GEOM/whd_tab8.gif [deleted file]
doc/salome/gui/GEOM/whd_tabs.htm [deleted file]
doc/salome/gui/GEOM/whd_toc1.gif [deleted file]
doc/salome/gui/GEOM/whd_toc2.gif [deleted file]
doc/salome/gui/GEOM/whd_toc3.gif [deleted file]
doc/salome/gui/GEOM/whd_toc4.gif [deleted file]
doc/salome/gui/GEOM/whd_topic.xml [deleted file]
doc/salome/gui/GEOM/whd_wbsh0.gif [deleted file]
doc/salome/gui/GEOM/whd_wbsh1.gif [deleted file]
doc/salome/gui/GEOM/whd_wbsh2.gif [deleted file]
doc/salome/gui/GEOM/whfbody.htm [deleted file]
doc/salome/gui/GEOM/whfdhtml.htm [deleted file]
doc/salome/gui/GEOM/whfform.htm [deleted file]
doc/salome/gui/GEOM/whfhost.js [deleted file]
doc/salome/gui/GEOM/whform.js [deleted file]
doc/salome/gui/GEOM/whframes.js [deleted file]
doc/salome/gui/GEOM/whgbody.htm [deleted file]
doc/salome/gui/GEOM/whgdef.htm [deleted file]
doc/salome/gui/GEOM/whgdhtml.htm [deleted file]
doc/salome/gui/GEOM/whghost.js [deleted file]
doc/salome/gui/GEOM/whhost.js [deleted file]
doc/salome/gui/GEOM/whibody.htm [deleted file]
doc/salome/gui/GEOM/whidhtml.htm [deleted file]
doc/salome/gui/GEOM/whiform.htm [deleted file]
doc/salome/gui/GEOM/whihost.js [deleted file]
doc/salome/gui/GEOM/whlang.js [deleted file]
doc/salome/gui/GEOM/whmozemu.js [deleted file]
doc/salome/gui/GEOM/whmsg.js [deleted file]
doc/salome/gui/GEOM/whnjs.htm [deleted file]
doc/salome/gui/GEOM/whphost.js [deleted file]
doc/salome/gui/GEOM/whproj.htm [deleted file]
doc/salome/gui/GEOM/whproj.js [deleted file]
doc/salome/gui/GEOM/whproj.xml [deleted file]
doc/salome/gui/GEOM/whproxy.js [deleted file]
doc/salome/gui/GEOM/whres.xml [deleted file]
doc/salome/gui/GEOM/whskin_blank.htm [deleted file]
doc/salome/gui/GEOM/whskin_homepage.htm [deleted file]
doc/salome/gui/GEOM/whskin_info.htm [deleted file]
doc/salome/gui/GEOM/whskin_pickup.htm [deleted file]
doc/salome/gui/GEOM/whskin_tw.htm [deleted file]
doc/salome/gui/GEOM/whstart.js [deleted file]
doc/salome/gui/GEOM/whstub.js [deleted file]
doc/salome/gui/GEOM/whtdhtml.htm [deleted file]
doc/salome/gui/GEOM/whthost.js [deleted file]
doc/salome/gui/GEOM/whtopic.js [deleted file]
doc/salome/gui/GEOM/whutils.js [deleted file]
doc/salome/gui/GEOM/whver.js [deleted file]
doc/salome/gui/GEOM/wire.htm [deleted file]
doc/salome/gui/GEOM/wireframe_and_shading.htm [deleted file]
doc/salome/gui/GEOM/working_plane.htm [deleted file]
doc/salome/gui/GEOM/working_with_groups.htm [deleted file]
doc/salome/gui/Makefile.am
doc/salome/tui/GEOM/doxyfile.in
doc/salome/tui/Makefile.am
idl/GEOM_Gen.idl
idl/GEOM_Superv.idl
resources/GEOMCatalog.xml.in
resources/Makefile.am
resources/Plugin [new file with mode: 0755]
resources/angle.png [new file with mode: 0644]
resources/chamferall.png
resources/chamferedge.png
resources/chamferedgefromface.png [new file with mode: 0755]
resources/chamferface.png
resources/circlecenter2pnts.png [new file with mode: 0755]
resources/line2faces.png [new file with mode: 0755]
resources/normale.png [new file with mode: 0644]
resources/point_line_intersection.png [new file with mode: 0755]
resources/remove_extra_edges.png [new file with mode: 0644]
src/BasicGUI/BasicGUI_ArcDlg.cxx
src/BasicGUI/BasicGUI_ArcDlg.h
src/BasicGUI/BasicGUI_CircleDlg.cxx
src/BasicGUI/BasicGUI_CircleDlg.h
src/BasicGUI/BasicGUI_CurveDlg.cxx
src/BasicGUI/BasicGUI_CurveDlg.h
src/BasicGUI/BasicGUI_EllipseDlg.cxx
src/BasicGUI/BasicGUI_EllipseDlg.h
src/BasicGUI/BasicGUI_LineDlg.cxx
src/BasicGUI/BasicGUI_LineDlg.h
src/BasicGUI/BasicGUI_MarkerDlg.cxx
src/BasicGUI/BasicGUI_MarkerDlg.h
src/BasicGUI/BasicGUI_PlaneDlg.cxx
src/BasicGUI/BasicGUI_PlaneDlg.h
src/BasicGUI/BasicGUI_PointDlg.cxx
src/BasicGUI/BasicGUI_PointDlg.h
src/BasicGUI/BasicGUI_VectorDlg.cxx
src/BasicGUI/BasicGUI_VectorDlg.h
src/BasicGUI/BasicGUI_WorkingPlaneDlg.cxx
src/BasicGUI/BasicGUI_WorkingPlaneDlg.h
src/BlocksGUI/BlocksGUI_BlockDlg.cxx
src/BlocksGUI/BlocksGUI_ExplodeDlg.cxx
src/BlocksGUI/BlocksGUI_PropagateDlg.cxx
src/BlocksGUI/BlocksGUI_PropagateDlg.h
src/BlocksGUI/BlocksGUI_QuadFaceDlg.cxx
src/BlocksGUI/BlocksGUI_TrsfDlg.cxx
src/BooleanGUI/BooleanGUI_Dialog.cxx
src/BuildGUI/BuildGUI_CompoundDlg.cxx
src/BuildGUI/BuildGUI_EdgeDlg.cxx
src/BuildGUI/BuildGUI_FaceDlg.cxx
src/BuildGUI/BuildGUI_ShellDlg.cxx
src/BuildGUI/BuildGUI_SolidDlg.cxx
src/BuildGUI/BuildGUI_WireDlg.cxx
src/DisplayGUI/DisplayGUI.cxx
src/DlgRef/DlgRef.cxx
src/DlgRef/DlgRef.h
src/DlgRef/DlgRef_1Sel1List1Check3Btn_QTD.ui [new file with mode: 0644]
src/DlgRef/DlgRef_1Sel1List4Btn_QTD.ui [deleted file]
src/DlgRef/DlgRef_2Sel1List1Check_QTD.ui [new file with mode: 0644]
src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.ui [new file with mode: 0644]
src/DlgRef/Makefile.am
src/EntityGUI/EntityGUI_SketcherDlg.cxx
src/EntityGUI/EntityGUI_SubShapeDlg.cxx
src/GEOM/GEOM_Engine.cxx
src/GEOM/GEOM_Gen_i.cc
src/GEOM/GEOM_IOperations.hxx
src/GEOM/GEOM_Object.cxx
src/GEOM/GEOM_Object.hxx
src/GEOM/GEOM_PythonDump.cxx
src/GEOM/Makefile.am
src/GEOMAlgo/GEOMAlgo_Builder.cdl
src/GEOMAlgo/GEOMAlgo_Builder.cxx
src/GEOMAlgo/GEOMAlgo_Builder.hxx
src/GEOMAlgo/GEOMAlgo_Builder.jxx
src/GEOMAlgo/GEOMAlgo_Builder_0.cxx
src/GEOMAlgo/GEOMAlgo_Builder_1.cxx
src/GEOMAlgo/GEOMAlgo_Builder_2.cxx
src/GEOMAlgo/GEOMAlgo_Builder_3.cxx
src/GEOMAlgo/GEOMAlgo_Builder_4.cxx
src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cxx
src/GEOMAlgo/GEOMAlgo_FinderShapeOn.hxx
src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx
src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx
src/GEOMAlgo/GEOMAlgo_Gluer.cxx
src/GEOMAlgo/GEOMAlgo_Gluer.hxx
src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cxx
src/GEOMAlgo/GEOMAlgo_Splitter.cdl
src/GEOMAlgo/GEOMAlgo_Splitter.cxx
src/GEOMAlgo/GEOMAlgo_Splitter.hxx
src/GEOMAlgo/Makefile.am
src/GEOMBase/GEOMBase.cxx
src/GEOMBase/GEOMBase_Helper.cxx
src/GEOMBase/GEOMBase_Helper.h
src/GEOMBase/GEOMBase_Skeleton.cxx
src/GEOMClient/GEOM_Client.cxx
src/GEOMGUI/GEOMGUI_OCCSelector.cxx
src/GEOMGUI/GEOMGUI_Selection.cxx
src/GEOMGUI/GEOMGUI_Selection.h
src/GEOMGUI/GEOM_Displayer.cxx
src/GEOMGUI/GEOM_Displayer.h
src/GEOMGUI/GEOM_images.po
src/GEOMGUI/GEOM_images.ts
src/GEOMGUI/GEOM_msg_en.po
src/GEOMGUI/GEOM_msg_en.ts
src/GEOMGUI/GEOM_msg_fr.po
src/GEOMGUI/GeometryGUI.cxx
src/GEOMImpl/GEOMImpl_ArcDriver.cxx
src/GEOMImpl/GEOMImpl_BlockDriver.cxx
src/GEOMImpl/GEOMImpl_BooleanDriver.cxx
src/GEOMImpl/GEOMImpl_ChamferDriver.cxx
src/GEOMImpl/GEOMImpl_CircleDriver.cxx
src/GEOMImpl/GEOMImpl_ExportDriver.cxx
src/GEOMImpl/GEOMImpl_FilletDriver.cxx
src/GEOMImpl/GEOMImpl_GlueDriver.cxx
src/GEOMImpl/GEOMImpl_GlueDriver.hxx
src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx
src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx
src/GEOMImpl/GEOMImpl_IBasicOperations.cxx
src/GEOMImpl/GEOMImpl_IBasicOperations.hxx
src/GEOMImpl/GEOMImpl_IBooleanOperations.cxx
src/GEOMImpl/GEOMImpl_IBooleanOperations.hxx
src/GEOMImpl/GEOMImpl_IChamfer.hxx
src/GEOMImpl/GEOMImpl_ICurvesOperations.cxx
src/GEOMImpl/GEOMImpl_ICurvesOperations.hxx
src/GEOMImpl/GEOMImpl_IFillet.hxx
src/GEOMImpl/GEOMImpl_IGlue.hxx
src/GEOMImpl/GEOMImpl_ILine.hxx
src/GEOMImpl/GEOMImpl_ILocalOperations.cxx
src/GEOMImpl/GEOMImpl_ILocalOperations.hxx
src/GEOMImpl/GEOMImpl_IMeasure.hxx
src/GEOMImpl/GEOMImpl_IMeasureOperations.cxx
src/GEOMImpl/GEOMImpl_IMeasureOperations.hxx
src/GEOMImpl/GEOMImpl_IPartition.hxx
src/GEOMImpl/GEOMImpl_IPoint.hxx
src/GEOMImpl/GEOMImpl_IShapesOperations.cxx
src/GEOMImpl/GEOMImpl_IShapesOperations.hxx
src/GEOMImpl/GEOMImpl_ImportDriver.cxx
src/GEOMImpl/GEOMImpl_LineDriver.cxx
src/GEOMImpl/GEOMImpl_MeasureDriver.cxx
src/GEOMImpl/GEOMImpl_PartitionDriver.cxx
src/GEOMImpl/GEOMImpl_PipeDriver.cxx
src/GEOMImpl/GEOMImpl_PointDriver.cxx
src/GEOMImpl/GEOMImpl_PrismDriver.cxx
src/GEOMImpl/GEOMImpl_RevolutionDriver.cxx
src/GEOMImpl/GEOMImpl_ShapeDriver.cxx
src/GEOMImpl/GEOMImpl_Types.hxx
src/GEOMImpl/Makefile.am
src/GEOMToolsGUI/GEOMToolsGUI.cxx
src/GEOMToolsGUI/GEOMToolsGUI.h
src/GEOMToolsGUI/GEOMToolsGUI_1.cxx
src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.cxx [new file with mode: 0644]
src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.h [new file with mode: 0644]
src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.cxx
src/GEOMToolsGUI/GEOMToolsGUI_TransparencyDlg.cxx
src/GEOMToolsGUI/Makefile.am
src/GEOM_I/GEOM_I3DPrimOperations_i.cc
src/GEOM_I/GEOM_I3DPrimOperations_i.hh
src/GEOM_I/GEOM_IBasicOperations_i.cc
src/GEOM_I/GEOM_IBasicOperations_i.hh
src/GEOM_I/GEOM_IBooleanOperations_i.cc
src/GEOM_I/GEOM_IBooleanOperations_i.hh
src/GEOM_I/GEOM_ICurvesOperations_i.cc
src/GEOM_I/GEOM_ICurvesOperations_i.hh
src/GEOM_I/GEOM_ILocalOperations_i.cc
src/GEOM_I/GEOM_ILocalOperations_i.hh
src/GEOM_I/GEOM_IMeasureOperations_i.cc
src/GEOM_I/GEOM_IMeasureOperations_i.hh
src/GEOM_I/GEOM_IShapesOperations_i.cc
src/GEOM_I/GEOM_IShapesOperations_i.hh
src/GEOM_I/GEOM_Object_i.cc
src/GEOM_I/GEOM_Object_i.hh
src/GEOM_I_Superv/GEOM_Superv_i.cc
src/GEOM_I_Superv/GEOM_Superv_i.hh
src/GEOM_SWIG/GEOM_Spanner.py
src/GEOM_SWIG/GEOM_TestAll.py
src/GEOM_SWIG/GEOM_TestMeasures.py
src/GEOM_SWIG/GEOM_TestOthers.py
src/GEOM_SWIG/GEOM_cyl2complementary.py
src/GEOM_SWIG/GEOM_example6.py [new file with mode: 0755]
src/GEOM_SWIG/Makefile.am
src/GEOM_SWIG/batchmode_geompy.py
src/GEOM_SWIG/geompy.py
src/GEOM_SWIG/geompyDC.py [new file with mode: 0644]
src/GEOM_SWIG/libGEOM_Swig.i [deleted file]
src/GEOM_SWIG_WITHIHM/Makefile.am [new file with mode: 0644]
src/GEOM_SWIG_WITHIHM/libGEOM_Swig.i [new file with mode: 0644]
src/GenerationGUI/GenerationGUI_FillingDlg.cxx
src/GenerationGUI/GenerationGUI_PipeDlg.cxx
src/GenerationGUI/GenerationGUI_PipeDlg.h
src/GenerationGUI/GenerationGUI_PrismDlg.cxx
src/GenerationGUI/GenerationGUI_PrismDlg.h
src/GenerationGUI/GenerationGUI_RevolDlg.cxx
src/GenerationGUI/GenerationGUI_RevolDlg.h
src/GroupGUI/GroupGUI_GroupDlg.cxx
src/GroupGUI/GroupGUI_GroupDlg.h
src/Makefile.am
src/MeasureGUI/Makefile.am
src/MeasureGUI/MeasureGUI.cxx
src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.ui [new file with mode: 0644]
src/MeasureGUI/MeasureGUI_AngleDlg.cxx [new file with mode: 0644]
src/MeasureGUI/MeasureGUI_AngleDlg.h [new file with mode: 0644]
src/MeasureGUI/MeasureGUI_BndBoxDlg.cxx
src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx
src/MeasureGUI/MeasureGUI_CheckCompoundOfBlocksDlg.cxx
src/MeasureGUI/MeasureGUI_CheckShapeDlg.cxx
src/MeasureGUI/MeasureGUI_DistanceDlg.cxx
src/MeasureGUI/MeasureGUI_DistanceDlg.h
src/MeasureGUI/MeasureGUI_InertiaDlg.cxx
src/MeasureGUI/MeasureGUI_MaxToleranceDlg.cxx
src/MeasureGUI/MeasureGUI_NormaleDlg.cxx [new file with mode: 0644]
src/MeasureGUI/MeasureGUI_NormaleDlg.h [new file with mode: 0644]
src/MeasureGUI/MeasureGUI_PointDlg.cxx
src/MeasureGUI/MeasureGUI_PropertiesDlg.cxx
src/MeasureGUI/MeasureGUI_Skeleton.cxx
src/MeasureGUI/MeasureGUI_WhatisDlg.cxx
src/MeasureGUI/MeasureGUI_Widgets.cxx
src/MeasureGUI/MeasureGUI_Widgets.h
src/NMTDS/Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx [new file with mode: 0644]
src/NMTDS/Makefile.am
src/NMTDS/NMTDS.cdl
src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_0.cxx [new file with mode: 0644]
src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_0.cxx [new file with mode: 0644]
src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger_0.cxx [new file with mode: 0644]
src/NMTDS/NMTDS_InterfPool.cdl [new file with mode: 0644]
src/NMTDS/NMTDS_InterfPool.cxx [new file with mode: 0644]
src/NMTDS/NMTDS_InterfPool.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_InterfPool.ixx [new file with mode: 0644]
src/NMTDS/NMTDS_InterfPool.jxx [new file with mode: 0644]
src/NMTDS/NMTDS_InterfType.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_Iterator.cdl
src/NMTDS/NMTDS_Iterator.cxx
src/NMTDS/NMTDS_Iterator.hxx
src/NMTDS/NMTDS_IteratorCheckerSI.cdl [new file with mode: 0644]
src/NMTDS/NMTDS_IteratorCheckerSI.cxx [new file with mode: 0644]
src/NMTDS/NMTDS_IteratorCheckerSI.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_IteratorCheckerSI.ixx [new file with mode: 0644]
src/NMTDS/NMTDS_IteratorCheckerSI.jxx [new file with mode: 0644]
src/NMTDS/NMTDS_PInterfPool.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_PIterator.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_PassKey.cdl
src/NMTDS/NMTDS_PassKey.cxx
src/NMTDS/NMTDS_PassKey.hxx
src/NMTDS/NMTDS_PassKey.jxx
src/NMTDS/NMTDS_PassKeyBoolean.cdl
src/NMTDS/NMTDS_PassKeyBoolean.cxx
src/NMTDS/NMTDS_PassKeyBoolean.hxx
src/NMTDS/NMTDS_PassKeyMapHasher.cdl
src/NMTDS/NMTDS_PassKeyMapHasher.cxx
src/NMTDS/NMTDS_PassKeyShape.cdl [new file with mode: 0644]
src/NMTDS/NMTDS_PassKeyShape.cxx [new file with mode: 0644]
src/NMTDS/NMTDS_PassKeyShape.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_PassKeyShape.ixx [new file with mode: 0644]
src/NMTDS/NMTDS_PassKeyShape.jxx [new file with mode: 0644]
src/NMTDS/NMTDS_PassKeyShapeMapHasher.cdl [new file with mode: 0644]
src/NMTDS/NMTDS_PassKeyShapeMapHasher.cxx [new file with mode: 0644]
src/NMTDS/NMTDS_PassKeyShapeMapHasher.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_PassKeyShapeMapHasher.ixx [new file with mode: 0644]
src/NMTDS/NMTDS_PassKeyShapeMapHasher.jxx [new file with mode: 0644]
src/NMTDS/NMTDS_ShapesDataStructure.cdl
src/NMTDS/NMTDS_ShapesDataStructure.cxx
src/NMTDS/NMTDS_ShapesDataStructure.hxx
src/NMTDS/NMTDS_ShapesDataStructure.jxx
src/NMTDS/NMTDS_Tools.cdl [new file with mode: 0644]
src/NMTDS/NMTDS_Tools.cxx [new file with mode: 0644]
src/NMTDS/NMTDS_Tools.hxx [new file with mode: 0644]
src/NMTDS/NMTDS_Tools.ixx [new file with mode: 0644]
src/NMTDS/NMTDS_Tools.jxx [new file with mode: 0644]
src/NMTTools/Makefile.am
src/NMTTools/NMTTools.cdl
src/NMTTools/NMTTools_CheckerSI.cdl [new file with mode: 0644]
src/NMTTools/NMTTools_CheckerSI.cxx [new file with mode: 0644]
src/NMTTools/NMTTools_CheckerSI.hxx [new file with mode: 0644]
src/NMTTools/NMTTools_CheckerSI.ixx [new file with mode: 0644]
src/NMTTools/NMTTools_CheckerSI.jxx [new file with mode: 0644]
src/NMTTools/NMTTools_CheckerSI_1.cxx [new file with mode: 0755]
src/NMTTools/NMTTools_DEProcessor.cxx
src/NMTTools/NMTTools_PaveFiller.cdl
src/NMTTools/NMTTools_PaveFiller.cxx
src/NMTTools/NMTTools_PaveFiller.hxx
src/NMTTools/NMTTools_PaveFiller.jxx
src/NMTTools/NMTTools_PaveFiller_0.cxx
src/NMTTools/NMTTools_PaveFiller_1.cxx
src/NMTTools/NMTTools_PaveFiller_2.cxx
src/NMTTools/NMTTools_PaveFiller_3.cxx
src/NMTTools/NMTTools_PaveFiller_4.cxx
src/NMTTools/NMTTools_PaveFiller_5.cxx
src/NMTTools/NMTTools_PaveFiller_6.cxx
src/NMTTools/NMTTools_PaveFiller_7.cxx
src/NMTTools/NMTTools_PaveFiller_8.cxx
src/OBJECT/GEOM_Actor.cxx
src/OBJECT/GEOM_Actor.h
src/OBJECT/GEOM_AssemblyBuilder.cxx
src/OBJECT/GEOM_DeviceActor.cxx [new file with mode: 0755]
src/OBJECT/GEOM_DeviceActor.h [new file with mode: 0755]
src/OBJECT/GEOM_EdgeSource.cxx [new file with mode: 0755]
src/OBJECT/GEOM_EdgeSource.h [new file with mode: 0755]
src/OBJECT/GEOM_FaceSource.cxx [new file with mode: 0755]
src/OBJECT/GEOM_FaceSource.h [new file with mode: 0755]
src/OBJECT/GEOM_ShadingFace.cxx [new file with mode: 0755]
src/OBJECT/GEOM_ShadingFace.h [new file with mode: 0755]
src/OBJECT/GEOM_SmartPtr.h [new file with mode: 0755]
src/OBJECT/GEOM_VertexSource.cxx [new file with mode: 0755]
src/OBJECT/GEOM_VertexSource.h [new file with mode: 0755]
src/OBJECT/GEOM_WireframeFace.cxx [new file with mode: 0755]
src/OBJECT/GEOM_WireframeFace.h [new file with mode: 0755]
src/OBJECT/Makefile.am
src/OperationGUI/Makefile.am
src/OperationGUI/OperationGUI_ArchimedeDlg.cxx
src/OperationGUI/OperationGUI_ChamferDlg.cxx
src/OperationGUI/OperationGUI_ChamferDlg.h
src/OperationGUI/OperationGUI_ClippingDlg.cxx
src/OperationGUI/OperationGUI_ClippingDlg.h
src/OperationGUI/OperationGUI_FilletDlg.cxx
src/OperationGUI/OperationGUI_FilletDlg.h
src/OperationGUI/OperationGUI_MaterialDlg.cxx
src/OperationGUI/OperationGUI_PartitionDlg.cxx
src/OperationGUI/OperationGUI_PartitionDlg.h
src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h
src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h
src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.h
src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_SphereDlg.h
src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx
src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h
src/RepairGUI/Makefile.am
src/RepairGUI/RepairGUI.cxx
src/RepairGUI/RepairGUI_ChangeOrientationDlg.cxx
src/RepairGUI/RepairGUI_ChangeOrientationDlg.h
src/RepairGUI/RepairGUI_CloseContourDlg.cxx
src/RepairGUI/RepairGUI_CloseContourDlg.h
src/RepairGUI/RepairGUI_DivideEdgeDlg.cxx
src/RepairGUI/RepairGUI_DivideEdgeDlg.h
src/RepairGUI/RepairGUI_FreeBoundDlg.cxx
src/RepairGUI/RepairGUI_FreeFacesDlg.cxx
src/RepairGUI/RepairGUI_GlueDlg.cxx
src/RepairGUI/RepairGUI_GlueDlg.h
src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.cxx [new file with mode: 0644]
src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.h [new file with mode: 0644]
src/RepairGUI/RepairGUI_RemoveHolesDlg.cxx
src/RepairGUI/RepairGUI_RemoveHolesDlg.h
src/RepairGUI/RepairGUI_RemoveIntWiresDlg.cxx
src/RepairGUI/RepairGUI_RemoveIntWiresDlg.h
src/RepairGUI/RepairGUI_SewingDlg.cxx
src/RepairGUI/RepairGUI_SewingDlg.h
src/RepairGUI/RepairGUI_ShapeProcessDlg.cxx
src/RepairGUI/RepairGUI_ShapeProcessDlg.h
src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx
src/RepairGUI/RepairGUI_SuppressFacesDlg.h
src/TransformationGUI/TransformationGUI_MirrorDlg.cxx
src/TransformationGUI/TransformationGUI_MirrorDlg.h
src/TransformationGUI/TransformationGUI_MultiRotationDlg.cxx
src/TransformationGUI/TransformationGUI_MultiRotationDlg.h
src/TransformationGUI/TransformationGUI_MultiTranslationDlg.cxx
src/TransformationGUI/TransformationGUI_MultiTranslationDlg.h
src/TransformationGUI/TransformationGUI_OffsetDlg.cxx
src/TransformationGUI/TransformationGUI_OffsetDlg.h
src/TransformationGUI/TransformationGUI_PositionDlg.cxx
src/TransformationGUI/TransformationGUI_PositionDlg.h
src/TransformationGUI/TransformationGUI_RotationDlg.cxx
src/TransformationGUI/TransformationGUI_RotationDlg.h
src/TransformationGUI/TransformationGUI_ScaleDlg.cxx
src/TransformationGUI/TransformationGUI_ScaleDlg.h
src/TransformationGUI/TransformationGUI_TranslationDlg.cxx
src/TransformationGUI/TransformationGUI_TranslationDlg.h

index c4ce644f7690729a92bfa62a5b04cb01d9b63c62..1c4b2df9338f8895bcf41dbd098c4aaa05b77cbc 100644 (file)
@@ -38,7 +38,7 @@ if test "x$GEOM_DIR" == "x" ; then
 # 
 fi
 
-if test -f ${GEOM_DIR}/bin/salome/libGEOM_Swig.py ; then
+if test -f ${GEOM_DIR}/bin/salome/geompy.py ; then
    Geom_ok=yes
    AC_MSG_RESULT(Using Geom module distribution in ${GEOM_DIR})
 
index 31a83d234f15c588ce2a0077a31f136a11ef60e4..27672f14d2aefc040d79e53a68feee6eb75ce848 100755 (executable)
@@ -14,6 +14,7 @@
 
 ORIG_DIR=`pwd`
 CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
+GEOM_WITH_GUI="yes"
 
 ########################################################################
 # Test if the KERNEL_ROOT_DIR is set correctly
@@ -28,31 +29,51 @@ fi
 #    echo "failed : KERNEL_SRC variable is not correct !"
 #    exit
 #fi
+
+for option
+do
+  case $option in
+      -with-ihm | --with-ihm)
+          GEOM_WITH_GUI="yes"
+          break;;
+      -without-ihm | --without-ihm | -with-ihm=no | --with-ihm=no)
+          GEOM_WITH_GUI="no"
+          break;;
+  esac
+done
+
 ########################################################################
 # Test if the GUI_ROOT_DIR is set correctly
-if test ! -d "${GUI_ROOT_DIR}"; then
-    echo "failed : GUI_ROOT_DIR variable is not correct !"
-    exit
+if test ${GEOM_WITH_GUI} = yes; then
+    if test ! -d "${GUI_ROOT_DIR}"; then
+        echo "failed : GUI_ROOT_DIR variable is not correct !"
+        exit
+    fi
 fi
 
 cd ${CONF_DIR}
 ABS_CONF_DIR=`pwd`
 
+#######################################################################
+# Update configure.ac script: to set NETGENPLUGIN_WITH_GUI variable
+sed -e s/GEOM_WITH_GUI=[a-z]*/GEOM_WITH_GUI=${GEOM_WITH_GUI}/g configure.ac > configure.tmp
+mv -f configure.tmp configure.ac
+
 mkdir -p salome_adm/unix/config_files
-cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/* salome_adm/unix/config_files
-cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/pythonbe.py salome_adm/unix
+#cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/* salome_adm/unix/config_files
+#cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/pythonbe.py salome_adm/unix
 
 cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/SALOMEconfig.h.in salome_adm/unix
 
-cp -f ${GUI_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
+#cp -f ${GUI_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files
 
 # remove KERNEL deprecated configure files
-for deprecated in ac_cc_warnings.m4 ac_cxx_partial_specialization.m4 \
-  check_mico.m4 config.guess ltmain.sh ac_cxx_bool.m4 ltconfig ac_cxx_typename.m4 \
-    check_pthreads.m4 config.sub libtool.m4 ac_cxx_mutable.m4 missing
-    do
-      rm -f salome_adm/unix/config_files/${deprecated}
-      done
+#for deprecated in ac_cc_warnings.m4 ac_cxx_partial_specialization.m4 \
+#  check_mico.m4 config.guess ltmain.sh ac_cxx_bool.m4 ltconfig ac_cxx_typename.m4 \
+#    check_pthreads.m4 config.sub libtool.m4 ac_cxx_mutable.m4 missing
+#    do
+#      rm -f salome_adm/unix/config_files/${deprecated}
+#      done
              
 
 # ____________________________________________________________________
@@ -64,7 +85,14 @@ for deprecated in ac_cc_warnings.m4 ac_cxx_partial_specialization.m4 \
 #   autom4te.cache (directory)
 echo "====================================================== aclocal"
 
-aclocal -I adm_local/unix/config_files -I salome_adm/unix/config_files  || exit 1
+if test ${GEOM_WITH_GUI} = yes; then
+  aclocal -I adm_local/unix/config_files \
+          -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
+          -I ${GUI_ROOT_DIR}/adm_local/unix/config_files || exit 1
+else
+  aclocal -I adm_local/unix/config_files \
+          -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files || exit 1
+fi
 
 # ____________________________________________________________________
 # libtoolize creates some configuration files (ltmain.sh,
index e0e12f097c378fff6304f70485098f154af6ff2c..f119c8cdb0ea82aeaa59f230eaef95c5506a06f6 100644 (file)
@@ -213,29 +213,56 @@ corba=make_$ORB
 CORBA=adm_local/unix/$corba
 
 fi
-echo
-echo ---------------------------------------------
-echo testing openGL
-echo ---------------------------------------------
-echo
 
-CHECK_OPENGL
+GEOM_WITH_GUI=yes
 
-echo
-echo ---------------------------------------------
-echo testing QT
-echo ---------------------------------------------
-echo
+AM_CONDITIONAL(GEOM_ENABLE_GUI, [test "${GEOM_WITH_GUI}" = "yes"])
 
-CHECK_QT
+if test "${GEOM_WITH_GUI}" = "yes"; then
+    echo
+    echo ---------------------------------------------
+    echo testing openGL
+    echo ---------------------------------------------
+    echo
 
-echo
-echo ---------------------------------------------
-echo testing VTK
-echo ---------------------------------------------
-echo
+    CHECK_OPENGL
+
+    echo
+    echo ---------------------------------------------
+    echo testing QT
+    echo ---------------------------------------------
+    echo
+
+    CHECK_QT
+
+    echo
+    echo ---------------------------------------------
+    echo testing VTK
+    echo ---------------------------------------------
+    echo
+
+    CHECK_VTK
 
-CHECK_VTK
+    echo
+    echo ---------------------------------------------
+    echo Testing GUI
+    echo ---------------------------------------------
+    echo
+
+    CHECK_SALOME_GUI
+
+    echo
+    echo ---------------------------------------------
+    echo Testing full GUI
+    echo ---------------------------------------------
+    echo
+
+    CHECK_CORBA_IN_GUI
+    if test "x${CORBA_IN_GUI}" != "xyes"; then
+      echo "failed : For configure GEOM module necessary full GUI !"
+      exit
+    fi
+fi
 
 echo
 echo ---------------------------------------------
@@ -271,40 +298,12 @@ CHECK_HTML_GENERATORS
 
 echo
 echo ---------------------------------------------
-echo Testing GUI
-echo ---------------------------------------------
-echo
-
-CHECK_SALOME_GUI
-
-echo
-echo ---------------------------------------------
-echo Testing full GUI
-echo ---------------------------------------------
-echo
-
-CHECK_CORBA_IN_GUI
-if test "x${CORBA_IN_GUI}" != "xyes"; then
-  echo "failed : For configure GEOM module necessary full GUI !"
-  exit
-fi
-
-echo
-echo ---------------------------------------------
-echo Testing SALOME KERNEL module
+echo Testing Kernel
 echo ---------------------------------------------
 echo
 
 CHECK_KERNEL
 
-echo
-echo ---------------------------------------------
-echo Testing SALOME GUI module
-echo ---------------------------------------------
-echo
-
-CHECK_SALOME_GUI
-
 echo
 echo ---------------------------------------------
 echo Summary
@@ -312,7 +311,13 @@ echo ---------------------------------------------
 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 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"
+fi
 
 for var in $variables
 do
@@ -362,6 +367,8 @@ AC_OUTPUT([ \
   ./doc/Makefile \
   ./doc/salome/Makefile \
   ./doc/salome/gui/Makefile \
+  ./doc/salome/gui/GEOM/doxyfile \
+  ./doc/salome/gui/GEOM/doxyfile_py \
   ./doc/salome/tui/Makefile \
   ./doc/salome/tui/GEOM/doxyfile \
   ./doc/salome/tui/GEOM/sources/static/tree.js \
@@ -387,6 +394,7 @@ AC_OUTPUT([ \
   ./src/GEOM_I/Makefile \
   ./src/GEOM_I_Superv/Makefile \
   ./src/GEOM_SWIG/Makefile \
+  ./src/GEOM_SWIG_WITHIHM/Makefile \
   ./src/GenerationGUI/Makefile \
   ./src/GroupGUI/Makefile \
   ./src/IGESExport/Makefile \
diff --git a/doc/salome/gui/GEOM/add_point_on_edge.htm b/doc/salome/gui/GEOM/add_point_on_edge.htm
deleted file mode 100755 (executable)
index 6d969d3..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Add Point on Edge</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:22px; height:22px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { margin-left:40px; font-size:12pt; font-weight:bold; }
-img_whs4 { border:none; width:312px; height:388px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; margin-left:40px; text-indent:-40px; }
-p.whs6 { font-size:12pt; margin-left:40px; text-indent:-40px; font-weight:bold; }
-p.whs7 { margin-left:80px; font-size:12pt; text-indent:-40px; }
-img_whs8 { border:none; width:200px; height:231px; border-style:none; }
-img_whs9 { border:none; width:185px; height:231px; border-style:none; }
-p.whs10 { font-size:12pt; text-indent:-68px; margin-left:72px; }
-p.whs11 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs5 {text-indent:1pt; }";
-  strNSS += "p.whs6 {text-indent:1pt; }";
-  strNSS += "p.whs7 {text-indent:1pt; }";
-  strNSS += "p.whs10 {text-indent:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nAdd Point on Edge");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="image42.gif" width="22px" height="22px" border="0" class="img_whs1"></font></span>Add Point on Edge</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o <span 
- style="font-weight: bold;"><B>Add Point on Edge</B></span> in the Main Menu select 
- <span style="font-weight: bold;"><B>Repair - &gt; Add Point on Edge.</B></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">This operation splits an edge in two in accordance 
- with the specified mode (by length or by parameter) and a value specifying 
- the position of the point on edge (for example val =0.5; mode = Length). 
- This operation is available in <span style="font-weight: bold;"><B>OCC Viewer</B></span> 
- only. </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><b><span 
- style="font-weight: normal;">T</b>he</span> Result <span style="font-weight: normal;">will 
- be a</span></b><b> <span style="font-weight: bold;"><B>GEOM_Object. </B></span></b></font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command :</b><i> 
- </i><span style="font-style: italic;"><I>geompy.DivideEdge(Shape, EdgeID, 
- Value, IsByParameter)</I></span>, where Shape is a shape which contains an 
- edge to be divided, EdgeID is the ID of the edge to be divided, if it 
- = -1, then Shape is an edge, Value is a paramter on the edge or a length. 
- IsByParameter if it is True then Value is the edge parameter in the range 
- [0:1] otherwise it is a length of the edge in the range [0:1]</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 Edge + 1 value setting the position of the point according to 
- one of the selected modes</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><img src="pics/repair8.png" x-maintain-ratio="TRUE" width="312px" height="388px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs6">Example:</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs7"><img src="image167.jpg" width="200px" height="231px" border="0" class="img_whs8"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="image168.jpg" width="185px" height="231px" border="0" class="img_whs9"></p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs11"><span style="font-weight: normal;">Our</span> 
- TUI Scripts<span style="font-weight: normal;"> provide you with useful 
- examples of the use of</span> <a href="repairing_operations.htm#bookmark7">Repairing 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/arc.htm b/doc/salome/gui/GEOM/arc.htm
deleted file mode 100755 (executable)
index cdf4570..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Arc</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; font-weight:normal; }
-p.whs4 { font-size:12pt; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:359px; float:none; border-style:none; }
-p.whs6 { color:#808080; font-size:12pt; }
-p.whs7 { font-size:12pt; color:#000000; font-weight:normal; }
-img_whs8 { border:none; width:400px; height:385px; float:none; border-style:none; }
-p.whs9 { font-size:12pt; color:#000000; }
-table.whs10 { x-cell-content-align:top; width:86.687%; border-spacing:0px; }
-col.whs11 { width:38.452%; }
-col.whs12 { width:28.09%; }
-col.whs13 { width:16.729%; }
-tr.whs14 { x-cell-content-align:top; }
-td.whs15 { width:38.452%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }
-td.whs16 { width:28.09%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-top-style:none; }
-td.whs17 { width:16.729%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
-td.whs18 { width:38.452%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; }
-img_whs19 { border:none; float:none; width:316px; height:270px; border-style:none; }
-td.whs20 { width:28.09%; padding-right:10px; padding-left:10px; border-right-style:none; border-bottom-style:none; }
-img_whs21 { border:none; width:212px; height:270px; float:none; border-style:none; }
-td.whs22 { width:16.729%; padding-right:10px; padding-left:10px; border-right-style:none; border-bottom-style:none; }
-table.whs23 { x-cell-content-align:top; width:100%; border-spacing:0px; }
-col.whs24 { width:100%; }
-tr.whs25 { x-cell-content-align:top; height:40px; }
-td.whs26 { width:100%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-left-style:none; border-top-style:none; border-right-style:none; }
-p.whs27 { margin-right:-6px; }
-tr.whs28 { x-cell-content-align:top; height:22px; }
-td.whs29 { width:100%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-left-style:none; border-right-style:none; }
-tr.whs30 { x-cell-content-align:top; height:41px; }
-tr.whs31 { x-cell-content-align:top; height:30px; }
-td.whs32 { width:100%; padding-right:10px; padding-left:10px; border-left-style:none; border-bottom-style:none; border-right-style:none; }
-p.whs33 { margin-left:0px; }
-img_whs34 { border:none; float:none; border-style:none; width:318px; height:269px; }
-p.whs35 { color:#808080; font-size:12pt; margin-left:40px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs27 {margin-right:1pt; }";
-  strNSS += "p.whs33 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Basic Geometric Objects\nArc");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image31.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span></b>Arc</h1>
-
-<p><b><span style="font-weight: normal;">T</b>o</span> create an <span 
- style="font-weight: bold;"><B>Arc</B></span> in the <span style="font-weight: bold;"><B>Main 
- Menu</B></span> select <span style="font-weight: bold;"><B>New Entity - &gt; 
- Basic - &gt; Arc</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><b style="font-weight: bold;"><span 
- style="font-weight: normal;">There are 2 algorithms to create an </span><span 
- style="font-weight: bold;"><B>Arc</B></span><span style="font-weight: normal;"> 
- in the 3D space. </span></b></p>
-
-<p class="whs2"><b><span style="font-weight: normal;">The Result 
- of each operation will be a</span></b><b> <span style="font-weight: normal;">GEOM_Object 
- (edge).</span></b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">Firstly, 
- you can define an</span> Arc <span style="font-weight: normal;">by</span> 
- <span style="font-weight: normal;">three</span><span style="font-weight: bold;"><B> 
- Points </B></span><span style="font-weight: normal;">that lie on it, where 
- </span></b>Point1 
- is the starting point, Point2 
- is a middle point of the arc and Point3 
- is the ending point of the arc.</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI 
- Command:</b> <span style="font-style: italic;"><I>geompy.MakeArc(Point1, 
- Point2, Point3)</I></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 3 vertices.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/arc.png" x-maintain-ratio="TRUE" width="312px" height="359px" border="0" class="img_whs5"></p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs7"><b style="font-weight: normal;">Secondly, 
- you can define an <span style="font-weight: bold;"><B>Arc</B></span> by </b><span 
- style="font-weight: bold;"><B>Center, Start</B></span> and <span style="font-weight: bold;"><B>End</B></span> 
- points. The arc is built from the <span style="font-weight: bold;"><B>Start</B></span> 
- point to the <span style="font-weight: bold;"><B>End</B></span> point. The radius 
- of the arc is defined by the distance between the <span style="font-weight: bold;"><B>Center</B></span> 
- point and the <span style="font-weight: bold;"><B>Start</B></span> point. The 
- <span style="font-weight: bold;"><B>End</B></span> point defines the angle of 
- the arc. If the distance between the <span style="font-weight: bold;"><B>Center</B></span> 
- point and the <span style="font-weight: bold;"><B>End</B></span> point is not 
- equal to the radius, the arc will be built anyway.</p>
-
-<p class="whs7"><span style="font-weight: bold;"><B>Reverse</B></span> 
- radio button allows to change the direction of the arc.</p>
-
-<p class="whs7"><b style="font-weight: bold;">TUI Command:</b> 
- <span style="font-style: italic;"><I>geompy.MakeArcCenter(Center Point, Start 
- Point, End Point, boolean Sense)</I></span></p>
-
-<p class="whs7"><span style="font-style: italic;"><I><b 
- style="font-weight: bold;">A</I></span>rguments:</b> Name + 3 vertices + Boolean.</p>
-
-<p class="whs7">&nbsp;</p>
-
-<p class="whs4"><img src="pics/arc2.png" x-maintain-ratio="TRUE" width="400px" height="385px" border="0" class="img_whs8"></p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs9">&nbsp;</p>
-
-<table x-use-null-cells cellspacing="0" width="86.687%" class="whs10">
-<col class="whs11">
-<col class="whs12">
-<col class="whs13">
-<col class="whs13">
-
-<tr valign="top" class="whs14">
-<td width="38.452%" class="whs15">
-<p>Arc by three points lying on it.</td>
-<td width="28.09%" class="whs16">
-<p>Arc by Start, End and Center.</td>
-<td colspan="1" rowspan="1" width="16.729%" class="whs17">
-<p>&nbsp;</td>
-<td width="16.729%" class="whs17">
-<p>Reversed arc.</td></tr>
-
-<tr valign="top" class="whs14">
-<td width="38.452%" class="whs18">
-<p class="whs6"><img src="pics/arcsn.png" x-maintain-ratio="TRUE" width="316px" height="270px" border="0" class="img_whs19"></td>
-<td width="28.09%" class="whs20">
-<p><img src="pics/arcsn1.png" x-maintain-ratio="TRUE" width="212px" height="270px" border="0" class="img_whs21"></td>
-<td colspan="1" rowspan="1" width="16.729%" class="whs22">
-<table x-use-null-cells cellspacing="0" width="100%" class="whs23">
-<col class="whs24">
-
-<tr valign="top" class="whs25">
-<td width="100%" class="whs26">
-<p class="whs27">Start Point</td></tr>
-
-<tr valign="top" class="whs28">
-<td width="100%" class="whs29">
-<p>&nbsp;</td></tr>
-
-<tr valign="top" class="whs30">
-<td width="100%" class="whs29">
-<p>&nbsp;</td></tr>
-
-<tr valign="top" class="whs25">
-<td width="100%" class="whs29">
-<p>Center Point</td></tr>
-
-<tr valign="top" class="whs31">
-<td width="100%" class="whs29">
-<p>&nbsp;</td></tr>
-
-<tr valign="top" class="whs25">
-<td width="100%" class="whs32">
-<p>End Point</td></tr>
-</table>
-<p class="whs33">&nbsp;</p>
-<p>&nbsp;</td>
-<td width="16.729%" class="whs22">
-<p><img src="pics/arcsn2.png" x-maintain-ratio="TRUE" width="318px" height="269px" border="0" class="img_whs34"></td></tr>
-</table>
-
-<p class="whs35">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="basic_geometrical_objects.htm">Basic Geometric 
- Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/archimede.htm b/doc/salome/gui/GEOM/archimede.htm
deleted file mode 100755 (executable)
index 238672e..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Archimede</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-family:'Times New Roman' , serif; font-size:12pt; }
-p.whs4 { font-size:12pt; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:367px; float:none; border-style:none; }
-img_whs6 { border:none; float:none; width:200px; height:180px; border-style:none; }
-img_whs7 { border:none; float:none; width:185px; height:180px; border-style:none; }
-img_whs8 { border:none; float:none; width:180px; height:180px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nBasic Operations\nArchimede");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image88.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Archimede</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- an <span style="font-weight: bold;"><B>Archimede</B></span> operation in the 
- Main Menu select <span style="font-weight: bold;"><B>Operations - &gt; Archimede</B></span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">This 
- operation creates a plane corresponding to the modeled water-line of the 
- object plunged into the water (in Z direction).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result<span style="font-weight: normal;"> will be any</span></b> GEOM_Object.</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command: 
- </b><span style="font-style: italic;"><I>geompy.Archimede(Shape,Weight,WaterDensity,MeshingDeflection)</I></span>, 
- where Shape is a shape to put into the water, Weight is a weight of the 
- shape, WaterDensity &nbsp;is 
- density of water, MeshingDeflection is a deflection of the mesh, using 
- to compute the section.</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 shape &nbsp;+ 
- 3 values (Weight, Water Density &amp; Meshing Deflection).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/archimede.png" x-maintain-ratio="TRUE" width="312px" height="367px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/archimedesn1.png" x-maintain-ratio="TRUE" width="200px" height="180px" border="0" class="img_whs6"> &nbsp;<img src="pics/archimedesn2.png" x-maintain-ratio="TRUE" width="185px" height="180px" border="0" class="img_whs7"> &nbsp;<img src="pics/archimedesn3.png" x-maintain-ratio="TRUE" 1height=180 1border=0 width="180px" height="180px" border="0" class="img_whs8"></p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of the use of <a href="basic_operations.htm#bookmark1">Basic Operations</a>. 
- </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/basic_geometrical_objects.htm b/doc/salome/gui/GEOM/basic_geometrical_objects.htm
deleted file mode 100755 (executable)
index 3b5e35b..0000000
+++ /dev/null
@@ -1,661 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Basic Geometrical Objects</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nCreating Geometric Objects\nBasic Geometrical Objects");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Basic Geometrical Objects</h1>
-
-<h3><a name=bookmark>Creation of a Point</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p0 = geompy.MakeVertex(0., 
- 0., 0.)</p>
-
-<p class="whs1">p100 = geompy.MakeVertexWithRef(p0, 
- 100., 100., 100.)</p>
-
-<p class="whs1">px = geompy.MakeVertex(100., 
- 0., 0.)</p>
-
-<p class="whs1">py = geompy.MakeVertex(0., 
- 100., 0.)</p>
-
-<p class="whs1">pz = geompy.MakeVertex(0., 
- 0., 100.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a curve and a vertex on it</p>
-
-<p class="whs1">Arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p class="whs1">p_on_arc = geompy.MakeVertexOnCurve(Arc, 
- 0.25)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_p0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(p0, &nbsp;&nbsp;&quot;Vertex 
- 0&quot;)</p>
-
-<p class="whs1">id_p100 &nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(p100, &quot;Vertex 100&quot;)</p>
-
-<p class="whs1">id_px &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(px, &nbsp;&nbsp;&quot;Vertex 
- X&quot;)</p>
-
-<p class="whs1">id_py &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(py, &nbsp;&nbsp;&quot;Vertex 
- Y&quot;)</p>
-
-<p class="whs1">id_pz &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(pz, &nbsp;&nbsp;&quot;Vertex 
- Z&quot;)</p>
-
-<p class="whs1">id_Arc &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(Arc, &nbsp;&quot;Arc&quot;)</p>
-
-<p class="whs1">id_p_on_arc = geompy.addToStudy(p_on_arc, 
- &quot;Vertex on Arc&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display vertices</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p0)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p100)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_Arc)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_p_on_arc)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark1>Creation of a Line</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p0 = geompy.MakeVertex(0., 
- 0., 0.)</p>
-
-<p class="whs1">p100 = geompy.MakeVertexWithRef(p0, 
- 100., 100., 100.)</p>
-
-<p class="whs1">px = geompy.MakeVertex(100., 
- 0. &nbsp;, 0. 
- &nbsp;)</p>
-
-<p class="whs1">py = geompy.MakeVertex(0. 
- &nbsp;, 100., 
- 0. &nbsp;)</p>
-
-<p class="whs1">pz = geompy.MakeVertex(0. 
- &nbsp;, 0. &nbsp;, 
- 100.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector from two points</p>
-
-<p class="whs1">vxy &nbsp;= 
- geompy.MakeVector(px, py)</p>
-
-<p>&nbsp;</p>
-
-<p># create a line from a point and a vector</p>
-
-<p class="whs1">line1 = geompy.MakeLine(pz, 
- vxy)</p>
-
-<p>&nbsp;</p>
-
-<p>#create a line from two points</p>
-
-<p class="whs1">line2 = geompy.MakeLineTwoPnt(p0, 
- p100)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_vxy &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(vxy, &nbsp;&quot;Vector&quot;)</p>
-
-<p class="whs1">id_line1 &nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(line1,&quot;Line1&quot;)</p>
-
-<p class="whs1">id_line2 &nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(line2,&quot;Line2&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display lines</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_vxy)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_line1)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_line2)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark2>Creation of &nbsp;a 
- Circle</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p0 = geompy.MakeVertex(0., 
- 0., 0.)</p>
-
-<p class="whs1">px = geompy.MakeVertex(100., 
- 0. &nbsp;, 0. 
- &nbsp;)</p>
-
-<p class="whs1">py = geompy.MakeVertex(0. 
- &nbsp;, 100., 
- 0. &nbsp;)</p>
-
-<p class="whs1">pz = geompy.MakeVertex(0. 
- &nbsp;, 0. &nbsp;, 
- 100.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector on two points</p>
-
-<p class="whs1">vxy &nbsp;= 
- geompy.MakeVector(px, py)</p>
-
-<p>&nbsp;</p>
-
-<p># create a circle from a point, a vector and a radius</p>
-
-<p class="whs1">circle1 = geompy.MakeCircle(pz, 
- vxy, 30)</p>
-
-<p>&nbsp;</p>
-
-<p>#create a circle from three points</p>
-
-<p class="whs1">circle2 = geompy.MakeCircleThreePnt(p0, 
- px, py)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_vxy &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(vxy, &nbsp;&nbsp;&nbsp;&quot;Vector&quot;)</p>
-
-<p class="whs1">id_circle1 &nbsp;= 
- geompy.addToStudy(circle1,&quot;Circle1&quot;)</p>
-
-<p class="whs1">id_circle2 &nbsp;= 
- geompy.addToStudy(circle2,&quot;Circle2&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display circles</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_vxy)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_circle1)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_circle2)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark3>Creation of an Ellipse</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p0 = geompy.MakeVertex(0., 
- 0., 0.)</p>
-
-<p class="whs1">p50 = geompy.MakeVertex(50., 
- 50., 50.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector from two points</p>
-
-<p class="whs1">vector &nbsp;= 
- geompy.MakeVector(p0, p50)</p>
-
-<p>&nbsp;</p>
-
-<p># create an ellipse from a point, a vector and radiuses</p>
-
-<p class="whs1">ellipse = geompy.MakeEllipse(p50, 
- vector, 50, 25)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_vector &nbsp;= 
- geompy.addToStudy(vector, &quot;Vector&quot;)</p>
-
-<p class="whs1">id_ellipse = geompy.addToStudy(ellipse,&quot;Ellipse&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the ellipse and its normal vector</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_vector)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_ellipse)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark4>Creation of a Curve</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p0 = geompy.MakeVertex(0. 
- &nbsp;, 0. &nbsp;, 
- 0. &nbsp;)</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(50. 
- , 100., 200.)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(150., 
- &nbsp;50., 100.)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex(100., 
- 150., 170.)</p>
-
-<p class="whs1">p4 = geompy.MakeVertex(200., 
- 200., 150.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a polyline from a list of points</p>
-
-<p class="whs1">polyline = geompy.MakePolyline([p0, 
- p1, p2, p3, p4])</p>
-
-<p>&nbsp;</p>
-
-<p># create a bezier curve from a list of points</p>
-
-<p class="whs1">bezier = geompy.MakeBezier([p0, 
- p1, p2, p3, p4])</p>
-
-<p>&nbsp;</p>
-
-<p>#create a b-spline curve from a list of points</p>
-
-<p class="whs1">interpol = geompy.MakeInterpol([p0, 
- p1, p2, p3, p4])</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_p0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(p0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Point1&quot;)</p>
-
-<p class="whs1">id_p1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(p1, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Point2&quot;)</p>
-
-<p class="whs1">id_p2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(p2, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Point3&quot;)</p>
-
-<p class="whs1">id_p3 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(p3, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Point4&quot;)</p>
-
-<p class="whs1">id_p4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(p4, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Point5&quot;)</p>
-
-<p class="whs1">id_polyline = geompy.addToStudy(polyline, 
- &quot;Polyline&quot;)</p>
-
-<p class="whs1">id_bezier &nbsp;&nbsp;= 
- geompy.addToStudy(bezier, &nbsp;&nbsp;&quot;Bezier&quot;)</p>
-
-<p class="whs1">id_interpol = geompy.addToStudy(interpol, 
- &quot;Interpol&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p># display the points and the curves</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p0)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p2)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p3)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p4)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_polyline)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_bezier)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_interpol)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark5>Creation of a Vector</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(10., 
- 50., 20.)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(70., 
- 70., 70.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector from two points</p>
-
-<p class="whs1">vector1 = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector from the given components</p>
-
-<p class="whs1">vector2 = geompy.MakeVectorDXDYDZ(30, 
- 30, 100)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_p1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(p1, &nbsp;&nbsp;&nbsp;&nbsp;&quot;Point1&quot;)</p>
-
-<p class="whs1">id_p2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(p2, &nbsp;&nbsp;&nbsp;&nbsp;&quot;Point2&quot;)</p>
-
-<p class="whs1">id_vector1 = geompy.addToStudy(vector1,&quot;Vector1&quot;)</p>
-
-<p class="whs1">id_vector2 = geompy.addToStudy(vector2,&quot;Vector2&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the points and the vectors</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p2)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_vector1)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_vector2)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark6>Creation of a Plane</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p1 = geompy.MakeVertex( 
- &nbsp;0., &nbsp;&nbsp;0., 
- 100.)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(100., 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex(200., 
- 200., 200.)</p>
-
-<p class="whs1">p4 = geompy.MakeVertex(100., 
- 100., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p5 = geompy.MakeVertex(0. 
- &nbsp;, 100., 
- &nbsp;&nbsp;0.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector from the given components</p>
-
-<p class="whs1">vector = geompy.MakeVectorDXDYDZ(100., 
- 100., 100.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector from two points</p>
-
-<p class="whs1">vector_arc = geompy.MakeVector(p2, 
- p5)</p>
-
-<p>&nbsp;</p>
-
-<p># create an arc from three points</p>
-
-<p class="whs1">arc = geompy.MakeArc(p2, 
- p4, p5)</p>
-
-<p>&nbsp;</p>
-
-<p># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vector_arc, 
- arc])</p>
-
-<p>&nbsp;</p>
-
-<p># create a face</p>
-
-<p class="whs1">isPlanarWanted = 1</p>
-
-<p class="whs1">face = geompy.MakeFace(wire, 
- isPlanarWanted)</p>
-
-<p class="whs1">trimsize = 1000.</p>
-
-<p>&nbsp;</p>
-
-<p># create a plane from a point, a vector and a trimsize</p>
-
-<p class="whs1">plane1 = geompy.MakePlane(p1, 
- vector, trimsize)</p>
-
-<p>&nbsp;</p>
-
-<p># create a plane from three points and a trimsize</p>
-
-<p class="whs1">plane2 = geompy.MakePlaneThreePnt(p1, 
- p2, p3, trimsize)</p>
-
-<p>&nbsp;</p>
-
-<p># create a plane from the given face</p>
-
-<p class="whs1">plane3 = geompy.MakePlaneFace(face, 
- trimsize)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_face &nbsp;&nbsp;= 
- geompy.addToStudy(face, &nbsp;&quot;Face&quot;)</p>
-
-<p class="whs1">id_plane1 = geompy.addToStudy(plane1,&quot;Plane1&quot;)</p>
-
-<p class="whs1">id_plane2 = geompy.addToStudy(plane2,&quot;Plane2&quot;)</p>
-
-<p class="whs1">id_plane3 = geompy.addToStudy(plane3,&quot;Plane3&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the points and the vectors</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_face)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_plane1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_plane2)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_plane3)</p>
-
-<p class="whs1">gg.setDisplayMode(id_plane1,1)</p>
-
-<p class="whs1">gg.setTransparency(id_plane1,0.5)</p>
-
-<p class="whs1">gg.setDisplayMode(id_plane2,1)</p>
-
-<p class="whs1">gg.setTransparency(id_plane2,0.5)</p>
-
-<p class="whs1">gg.setDisplayMode(id_plane3,1)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setTransparency(id_plane3,0.5)</span> 
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/basic_operations.htm b/doc/salome/gui/GEOM/basic_operations.htm
deleted file mode 100755 (executable)
index 49bd391..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Basic Operations</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nTransformation\nBasic Operations");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Basic Operations</h1>
-
-<h3><a name=bookmark>Partition</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p0 &nbsp;&nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p200 = geompy.MakeVertex(200., 
- 200., 200.)</p>
-
-<p class="whs1">pz &nbsp;&nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- 100.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector</p>
-
-<p class="whs1">vxyz = geompy.MakeVectorDXDYDZ(100., 
- 100., 100.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a box from two points</p>
-
-<p class="whs1">box = geompy.MakeBoxTwoPnt(p0, 
- p200)</p>
-
-<p>&nbsp;</p>
-
-<p># create a plane</p>
-
-<p class="whs1">trimsize &nbsp;= 
- 500.</p>
-
-<p class="whs1">plane = geompy.MakePlane(pz, 
- vxyz, trimsize)</p>
-
-<p>&nbsp;</p>
-
-<p># create partition objects</p>
-
-<p class="whs1">partition1 = geompy.MakePartition([box], 
- [plane])</p>
-
-<p class="whs1">partition2 = geompy.Partition([box], 
- [plane])</p>
-
-<p class="whs1">partition3 = geompy.MakeHalfPartition(box, 
- plane)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_box = geompy.addToStudy(box,&quot;Box&quot;)</p>
-
-<p class="whs1">id_plane = geompy.addToStudy(plane,&quot;Plane&quot;)</p>
-
-<p class="whs1">id_partition1 = geompy.addToStudy(partition1,&quot;MakePartition&quot;)</p>
-
-<p class="whs1">id_partition2 = geompy.addToStudy(partition2,&quot;Partition&quot;)</p>
-
-<p class="whs1">id_partition3 = geompy.addToStudy(partition3,&quot;MakeHalfPartition&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the partition objects and the plane</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_plane)</p>
-
-<p class="whs1">gg.setDisplayMode(id_plane,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_partition1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_partition2)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_partition3)</span> 
- </p>
-
-<h3><a name=bookmark1>Archimede</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p0 &nbsp;&nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p200 = geompy.MakeVertex(200., 
- 200., 200.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a box from two points</p>
-
-<p class="whs1">box = geompy.MakeBoxTwoPnt(p0, 
- p200)</p>
-
-<p>&nbsp;</p>
-
-<p># perform an Archimede operation on the selected shape with selected 
- parameters</p>
-
-<p class="whs1">weight &nbsp;= 
- 1000000.</p>
-
-<p class="whs1">waterdensity = 1.</p>
-
-<p class="whs1">meshingdeflection 
- = 0.01</p>
-
-<p class="whs1">archimede &nbsp;= 
- geompy.Archimede(box, weight, waterdensity, meshingdeflection)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_box = geompy.addToStudy(box,&quot;Box&quot;)</p>
-
-<p class="whs1">id_archimede = geompy.addToStudy(archimede,&quot;Archimede&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the box and the result of Archimede operation</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_archimede)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_archimede,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/blocks_operations.htm b/doc/salome/gui/GEOM/blocks_operations.htm
deleted file mode 100755 (executable)
index f306888..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Blocks Operations</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
-p.whs2 { font-family:'Times New Roman' , serif; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nTransformation\nBlocks Operations");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Blocks Operations</h1>
-
-<h3><a name=bookmark4>Multi Transformation</a></h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create vertices</p>
-
-<p class="whs1">p_25_25_50 = geompy.MakeVertex(25., 
- 25., 50.)</p>
-
-<p class="whs1">p_50_25_25 = geompy.MakeVertex(50., 
- 25., 25.)</p>
-
-<p class="whs1">p_25_50_25 = geompy.MakeVertex(25., 
- 50., 25.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(50, 
- 50, 50)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">top_face = geompy.GetFaceNearPoint(box, 
- p_25_25_50)</p>
-
-<p class="whs1">yz_face = geompy.GetFaceNearPoint(box, 
- p_50_25_25)</p>
-
-<p class="whs1">xz_face = geompy.GetFaceNearPoint(box, 
- p_25_50_25)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">top_face_ind = geompy.GetSubShapeID(box, 
- top_face)</p>
-
-<p class="whs1">yz_face_ind = geompy.GetSubShapeID(box, 
- yz_face)</p>
-
-<p class="whs1">xz_face_ind = geompy.GetSubShapeID(box, 
- xz_face)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># Multi-transformate 
- block and glue the result</p>
-
-<p class="whs1">box_tr1 = geompy.MakeMultiTransformation1D(box, 
- yz_face_ind, top_face_ind, 3)</p>
-
-<p class="whs1">box_tr2 = geompy.MakeMultiTransformation2D(box, 
- xz_face_ind, yz_face_ind, 3, top_face_ind, 0, 2)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add objects in the 
- study</p>
-
-<p class="whs1">id_box = geompy.addToStudy(box, 
- &quot;Box&quot;)</p>
-
-<p class="whs1">id_box_tr1 = geompy.addToStudy(box_tr1, 
- &quot;Multi-transformed Block 1D&quot;)</p>
-
-<p class="whs1">id_box_tr2 = geompy.addToStudy(box_tr2, 
- &quot;Multi-transformed Block 2D&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box_tr1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box_tr2) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark5>Explode on Blocks</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box and a 
- sphere</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(200, 
- 200, 200)</p>
-
-<p class="whs1">sphere = geompy.MakeSphereR(100)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># make a compound</p>
-
-<p class="whs1">compound = geompy.MakeCompound([box, 
- sphere])</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># get all the blocks 
- of the given compound, by criteria: min_nb_faces &lt;= nb. of faces &lt;= 
- max_nb_faces</p>
-
-<p class="whs1">min_nb_faces = 6</p>
-
-<p class="whs1">max_nb_faces = 6</p>
-
-<p class="whs1">make_block_explode 
- = geompy.MakeBlockExplode(compound, min_nb_faces, max_nb_faces)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add objects in the 
- study</p>
-
-<p class="whs1">id_compound = geompy.addToStudy(compound, 
- &quot;Compound&quot;)</p>
-
-<p class="whs1">id_make_block_explode 
- = geompy.addToStudyInFather(compound, make_block_explode[0], &quot;MakeBlockExplode&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_compound)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_make_block_explode)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_make_block_explode,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark6>Propagate</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(200, 
- 200, 200)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># build all possible 
- propagation groups</p>
-
-<p class="whs1">listChains = geompy.Propagate(check_box)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add objects in the 
- study</p>
-
-<p class="whs1">geompy.addToStudy(check_box, 
- &quot;Box&quot;)</p>
-
-<p class="whs1">ii = 1</p>
-
-<p class="whs1">for chain in listChains:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudyInFather(check_box, 
- chain, &quot;propagation chain &quot; + `ii`)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;ii 
- = ii + 1</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
-
-<p>&nbsp;</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/boolean_operations.htm b/doc/salome/gui/GEOM/boolean_operations.htm
deleted file mode 100755 (executable)
index b0410a8..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Boolean Operations</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nTransformation\nBoolean Operations");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Boolean Operations</h1>
-
-<h3><a name=bookmark>Fuse</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(25, 
- 55, 0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- 0, &nbsp;0, 0)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cylinder</p>
-
-<p class="whs1">height = 35</p>
-
-<p class="whs1">radius1 = 20</p>
-
-<p class="whs1">cylinder = geompy.MakeCylinder(p1, 
- v, radius1, height)</p>
-
-<p>&nbsp;</p>
-
-<p># create a sphere</p>
-
-<p class="whs1">sphere = geompy.MakeSphereR(40)</p>
-
-<p>&nbsp;</p>
-
-<p># fuse</p>
-
-<p class="whs1">fuse = geompy.MakeFuse(cylinder, 
- sphere)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_cylinder = geompy.addToStudy(cylinder, 
- &quot;Cylinder&quot;)</p>
-
-<p class="whs1">id_sphere = geompy.addToStudy(sphere, 
- &quot;Sphere&quot;)</p>
-
-<p class="whs1">id_fuse = geompy.addToStudy(fuse, 
- &quot;Fuse&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cylinder)</p>
-
-<p class="whs1">gg.setDisplayMode(id_cylinder,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_sphere)</p>
-
-<p class="whs1">gg.setDisplayMode(id_sphere,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_fuse)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_fuse,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark1>Common</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(25, 
- 55, 0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- 0, &nbsp;0, 0)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cylinder</p>
-
-<p class="whs1">height = 35</p>
-
-<p class="whs1">radius1 = 20</p>
-
-<p class="whs1">cylinder = geompy.MakeCylinder(p1, 
- v, radius1, height)</p>
-
-<p>&nbsp;</p>
-
-<p># create a sphere</p>
-
-<p class="whs1">sphere = geompy.MakeSphereR(40)</p>
-
-<p>&nbsp;</p>
-
-<p># make common</p>
-
-<p class="whs1">common = geompy.MakeCommon(cylinder, 
- sphere)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_common = geompy.addToStudy(common, 
- &quot;Common&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_common)</p>
-
-<p class="whs1">gg.setDisplayMode(id_common,1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark2>Cut </a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(25, 
- 55, 0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- 0, &nbsp;0, 0)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cylinder</p>
-
-<p class="whs1">height = 35</p>
-
-<p class="whs1">radius1 = 20</p>
-
-<p class="whs1">cylinder = geompy.MakeCylinder(p1, 
- v, radius1, height)</p>
-
-<p>&nbsp;</p>
-
-<p># create a sphere</p>
-
-<p class="whs1">sphere = geompy.MakeSphereR(40)</p>
-
-<p>&nbsp;</p>
-
-<p>#cut</p>
-
-<p class="whs1">cut = geompy.MakeCut(cylinder, 
- sphere)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_cut = geompy.addToStudy(cut, 
- &quot;Cut&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cut)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_cut,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark3>Section</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(25, 
- 55, 0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- 0, &nbsp;0, 0)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cylinder</p>
-
-<p class="whs1">height = 35</p>
-
-<p class="whs1">radius1 = 20</p>
-
-<p class="whs1">cylinder = geompy.MakeCylinder(p1, 
- v, radius1, height)</p>
-
-<p>&nbsp;</p>
-
-<p># create a sphere</p>
-
-<p class="whs1">sphere = geompy.MakeSphereR(40)</p>
-
-<p>&nbsp;</p>
-
-<p># make a section</p>
-
-<p class="whs1">section = geompy.MakeSection(cylinder, 
- sphere)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_section = geompy.addToStudy(section, 
- &quot;Section&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_section)</p>
-
-<p class="whs1">gg.setDisplayMode(id_section,1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/box.htm b/doc/salome/gui/GEOM/box.htm
deleted file mode 100755 (executable)
index 491c860..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Box</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-style:italic; }
-p.whs4 { margin-left:40px; }
-img_whs5 { border:none; width:312px; height:324px; float:none; border-style:none; }
-p.whs6 { font-weight:normal; }
-p.whs7 { font-size:12pt; margin-left:40px; }
-img_whs8 { border:none; width:312px; height:332px; float:none; border-style:none; }
-p.whs9 { font-size:12pt; font-weight:bold; }
-p.whs10 { font-size:12pt; font-weight:bold; font-style:normal; }
-p.whs11 { font-size:12pt; font-style:normal; font-weight:bold; }
-img_whs12 { border:none; width:267px; height:280px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Primitives\nBox");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><b style="font-weight: bold;"><img src="files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image99.gif" width="20px" height="20px" border="0" class="img_whs1"> </b></font></span>Box</h1>
-
-<p><b><span style="font-weight: normal;">T</b>o</span> create a <span style="font-weight: bold;"><B>Box</B></span> 
- in the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span 
- style="font-weight: bold;"><B>New Entity - &gt; Primitives - &gt; Box</B></span></p>
-
-<p>&nbsp;</p>
-
-<p>There are 2 algorithms for creation of a <span style="font-weight: bold;"><B>Box</B></span>. 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of each operation will be a</span></b> 
- GEOM_Object (SOLID).</p>
-
-<p>&nbsp;</p>
-
-<p>Firstly, you can define a <span style="font-weight: bold;"><B>Box</B></span> 
- by two specified <span style="font-weight: bold;"><B>Vertices </B></span>(its 
- opposite corners). The edges of the box will be parallel to the coordinate 
- axes.</p>
-
-<p><span style="font-weight: bold;"><B><b style="font-weight: bold;">TUI Command 
- :</b> </B></span><span style="font-style: italic;"><I>geompy.MakeBoxTwoPnt(Point1, 
- Point2)</I></span></p>
-
-<p><b style="font-weight: bold;">Arguments: </b><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Name 
- + </font></span>2 vertices (opposite corners of the box).</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><b style="font-weight: bold;"><img src="pics/box1.png" x-maintain-ratio="TRUE" width="312px" height="324px" border="0" class="img_whs5"></b></p>
-
-<p>&nbsp;</p>
-
-<p class="whs6"><b style="font-weight: normal;"><span style="font-weight: normal;">Secondly, 
- you can define a </span><span style="font-weight: bold;"><B>Box</B></span><span 
- style="font-weight: normal;"> by </b>specified dimensions along the coordinate 
- axes</span> and with edges, parallel to them. &nbsp;The 
- center of the box will be at point (DX/2, DY/2, DZ/2). </p>
-
-<p><span style="font-weight: bold;"><B><b style="font-weight: bold;">TUI Command 
- :</b> </B></span><span style="font-style: italic;"><I>geompy.MakeBoxDXDYDZ(DX, 
- DY, DZ)</I></span></p>
-
-<p><span><b style="font-weight: bold;">Arguments: </b></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Name 
- + 3 values (dimensions at origin).</font></span></p>
-
-<p class="whs7"><b style="font-weight: bold;"><img src="pics/box2.png" x-maintain-ratio="TRUE" width="312px" height="332px" border="0" class="img_whs8"></b></p>
-
-<p>&nbsp;</p>
-
-<p><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>NB! </B></font></span>There is 
- a third way to create a Box, which is currently accessible only via<span 
- style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B> TUI </B></font></span>commands.</p>
-
-<p class="whs9"><span style="font-weight: normal;">You 
- can define a </span>Box<span style="font-weight: normal;"> by the coordinates 
- of two </span>Vertices<span style="font-weight: normal;"> (in this way 
- you don't need to create them in advance). </span></p>
-
-<p class="whs10"><b style="font-weight: bold;">TUI Command:</b> 
- <span style="font-weight: normal; font-style: italic;"><I>geompy.MakeBox(x1,y1,z1,x2,y2,z2)</I></span> 
- </p>
-
-<span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Arguments: </B></font></span>Name 
- + X, Y and Z coordinates of both points. 
-
-<p>&nbsp;</p>
-
-<p class="whs11">Example:</p>
-
-<p class="whs7"><img src="pics/boxes.png" x-maintain-ratio="TRUE" width="267px" height="280px" border="0" class="img_whs12"></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">Our <span style="font-weight: bold;"><B>TUI Scripts</B></span> 
- provide you with useful examples of creation of <a href="primitives.htm#bookmark">Primitives</a>. 
- </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/building_by_blocks.htm b/doc/salome/gui/GEOM/building_by_blocks.htm
deleted file mode 100755 (executable)
index 7a80374..0000000
+++ /dev/null
@@ -1,355 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Building by Blocks</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
-p.whs2 { font-family:'Times New Roman' , serif; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nCreating Geometric Objects\nBuilding by Blocks");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Building by Blocks</h1>
-
-<h3>Quadrangle Face</h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p1 = geompy.MakeVertex( 
- &nbsp;0., &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(150., 
- &nbsp;30., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex( 
- &nbsp;0., 120., 
- &nbsp;50.)</p>
-
-<p class="whs1">p4 = geompy.MakeVertex( 
- &nbsp;0., &nbsp;40., 
- &nbsp;70.)</p>
-
-<p>&nbsp;</p>
-
-<p># create edges</p>
-
-<p class="whs1">edge1 = geompy.MakeEdge(p1, 
- p2)</p>
-
-<p class="whs1">edge2 = geompy.MakeEdge(p2, 
- p3)</p>
-
-<p class="whs1">edge3 = geompy.MakeEdge(p3, 
- p4)</p>
-
-<p class="whs1">edge4 = geompy.MakeEdge(p4, 
- p1)</p>
-
-<p>&nbsp;</p>
-
-<p># create a quadrangle face from four edges</p>
-
-<p class="whs1">qface1 = geompy.MakeQuad(edge1, 
- edge2, edge3, edge4)</p>
-
-<p>&nbsp;</p>
-
-<p># create a quadrangle face from two edges</p>
-
-<p class="whs1">qface2 = geompy.MakeQuad2Edges(edge1, 
- edge3)</p>
-
-<p>&nbsp;</p>
-
-<p># create a quadrangle from four points in its corners</p>
-
-<p class="whs1">qface3 = geompy.MakeQuad4Vertices(p1, 
- p2, p3, p4)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_p1 = geompy.addToStudy(p1,&quot;Point1&quot;)</p>
-
-<p class="whs1">id_p2 = geompy.addToStudy(p2,&quot;Point2&quot;)</p>
-
-<p class="whs1">id_p3 = geompy.addToStudy(p3,&quot;Point3&quot;)</p>
-
-<p class="whs1">id_p4 = geompy.addToStudy(p4,&quot;Point4&quot;)</p>
-
-<p class="whs1">id_edge1 = geompy.addToStudy(edge1,&quot;Edge1&quot;)</p>
-
-<p class="whs1">id_edge2 = geompy.addToStudy(edge2,&quot;Edge2&quot;)</p>
-
-<p class="whs1">id_edge3 = geompy.addToStudy(edge3,&quot;Edge3&quot;)</p>
-
-<p class="whs1">id_edge4 = geompy.addToStudy(edge4,&quot;Edge4&quot;)</p>
-
-<p class="whs1">id_qface1 = geompy.addToStudy(qface1,&quot;Qface1&quot;)</p>
-
-<p class="whs1">id_qface2 = geompy.addToStudy(qface2,&quot;Qface2&quot;)</p>
-
-<p class="whs1">id_qface3 = geompy.addToStudy(qface3,&quot;Qface3&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the vertices, the edges and the quadrangle faces</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p2)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p3)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p4)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_edge1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_edge2)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_edge3)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_edge4)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_qface1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_qface1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_qface2)</p>
-
-<p class="whs1">gg.setDisplayMode(id_qface2,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_qface3)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_qface3,1)</span> 
- </p>
-
-<h3>Hexagonal Solid</h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create vertices</p>
-
-<p class="whs1">p0 &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p1 &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- &nbsp;40.)</p>
-
-<p class="whs1">p2 &nbsp;= 
- geompy.MakeVertex( 70., -15., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p3 &nbsp;= 
- geompy.MakeVertex( 70., -15., &nbsp;70.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">p4 &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;70., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p5 &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;70., &nbsp;40.)</p>
-
-<p class="whs1">p6 &nbsp;= 
- geompy.MakeVertex( 70., &nbsp;70., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p7 &nbsp;= 
- geompy.MakeVertex( 70., &nbsp;70., 
- &nbsp;70.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">p8 &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- -50., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p9 &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- -50., &nbsp;40.)</p>
-
-<p class="whs1">p10 = geompy.MakeVertex( 
- 70., -35., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p11 = geompy.MakeVertex( 
- 70., -35., &nbsp;70.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create faces</p>
-
-<p class="whs1">qface1 = geompy.MakeQuad4Vertices(p0, 
- p1, p2, p3)</p>
-
-<p class="whs1">qface2 = geompy.MakeQuad4Vertices(p4, 
- p5, p6, p7)</p>
-
-<p class="whs1">qface3 = geompy.MakeQuad4Vertices(p0, 
- p1, p4, p5)</p>
-
-<p class="whs1">qface4 = geompy.MakeQuad4Vertices(p2, 
- p3, p6, p7)</p>
-
-<p class="whs1">qface5 = geompy.MakeQuad4Vertices(p0, 
- p2, p4, p6)</p>
-
-<p class="whs1">qface6 = geompy.MakeQuad4Vertices(p1, 
- p3, p5, p7)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">qface7 = geompy.MakeQuad4Vertices(p8, 
- p9, p10, p11)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a hexahedral 
- solid between two given faces</p>
-
-<p class="whs1">solid1 = geompy.MakeHexa2Faces(qface1, 
- qface7)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a hexahedral 
- solid, bounded by six given faces</p>
-
-<p class="whs1">solid2 = geompy.MakeHexa(qface1, 
- qface2, qface3, qface4, qface5, qface6)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add objects in the 
- study</p>
-
-<p class="whs1">geompy.addToStudy(qface1,&quot;qface1&quot;)</p>
-
-<p class="whs1">geompy.addToStudy(qface2,&quot;qface2&quot;)</p>
-
-<p class="whs1">geompy.addToStudy(qface3,&quot;qface3&quot;)</p>
-
-<p class="whs1">geompy.addToStudy(qface4,&quot;qface4&quot;)</p>
-
-<p class="whs1">geompy.addToStudy(qface5,&quot;qface5&quot;)</p>
-
-<p class="whs1">geompy.addToStudy(qface6,&quot;qface6&quot;)</p>
-
-<p class="whs1">geompy.addToStudy(qface7,&quot;qface7&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">id_solid1 = geompy.addToStudy(solid1,&quot;Solid1&quot;)</p>
-
-<p class="whs1">id_solid2 = geompy.addToStudy(solid2,&quot;Solid2&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># display solids</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_solid1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_solid1, 
- 1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_solid2)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_solid2, 
- 1)</span> </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/chamfer.htm b/doc/salome/gui/GEOM/chamfer.htm
deleted file mode 100755 (executable)
index 3417434..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Chamfer</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:319px; float:none; border-style:none; }
-img_whs5 { border:none; width:225px; height:239px; float:none; border-style:none; }
-img_whs6 { border:none; width:312px; height:381px; float:none; border-style:none; }
-img_whs7 { border:none; width:230px; height:245px; float:none; border-style:none; }
-img_whs8 { border:none; width:221px; height:238px; float:none; border-style:none; }
-p.whs9 { list-style:disc; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs9 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nTransformation Operations\nChamfer");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image90.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Chamfer</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Chamfer</B></span> in the Main Menu select 
- <span style="font-weight: bold;"><B>Operations - &gt; Transformation - &gt; 
- Chamfer</B></span> </p>
-
-<p>&nbsp;</p>
-
-<p>This operation allows you to <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">make chamfer 
- of the edges of a Shape.</font></span></p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><span 
- style="font-weight: normal;">The</span> Result <span style="font-weight: normal;">will 
- be a</span></b> GEOM_Object.</font></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o create 
- chamfer on all edges of the given shape, you need to define the <span 
- style="font-weight: bold;"><B>Main Object</B></span> to create a chamfer on and 
- the <span style="font-weight: bold;"><B>Dimension</B></span> (radius) of the 
- chamfer. &nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeChamferAll(Shape, D)</I></span> 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: </b>Name 
- + 1 SHAPE + 1 value (Chamfer dimension).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/chamfer1.png" x-maintain-ratio="TRUE" width="312px" height="319px" border="0" class="img_whs4"> &nbsp;<img src="pics/chamfer_all.png" x-maintain-ratio="TRUE" width="225px" height="239px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">To create chamfer on the specified edges of 
- the given shape, &nbsp;you 
- need to define the <span style="font-weight: bold;"><B>Main Object</B></span> 
- to create a fillet on, select the two faces to which belongs the <span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;">necessary common edge in the viewer and define 
- the </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Dimension</B></font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> of the Chamfer.</font></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeChamferEdge(Shape, D1, 
- D2, Face1, Face2)</I></span>, where Shape is a shape to create a chamfer on, 
- D1 is a chamfer size along Face1, D2 is a chamfer size along Face2, Face1 
- and Face2 are indices of faces in Shape.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/chamfer2.png" x-maintain-ratio="TRUE" width="312px" height="381px" border="0" class="img_whs6"> &nbsp;<img src="pics/chamfer_edge.png" x-maintain-ratio="TRUE" width="230px" height="245px" border="0" class="img_whs7"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">To create chamfer on the specified faces of 
- the given shape, &nbsp;you 
- need to define the <span style="font-weight: bold;"><B>Main Object</B></span> 
- to create a fillet on, select the necessary faces the OCC Viewer and define 
- the <span style="font-weight: bold;"><B>Dimension</B></span> of the Chamfer.</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeChamferFaces(Shape, D1, 
- D2, ListOfFaceID)</I></span>, where Shape is a shape to create chamfer on, 
- D1 is a chamfer size along a face from &nbsp;ListOfFaceID, 
- &nbsp;D2 is a 
- chamfer size along two faces connected to the edge to which the chamfer 
- is applied, ListOfFaceID is a list of indices of faces in Shape.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/chamfer3.png" x-maintain-ratio="TRUE" width="312px" height="381px" border="0" class="img_whs6"> &nbsp;<img src="pics/chamfer_faces.png" x-maintain-ratio="TRUE" width="221px" height="238px" border="0" class="img_whs8"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs9">&nbsp;&nbsp;<span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our </font></span><span 
- style="font-weight: bold;"><B>TUI Scripts</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of <a href="transformation_operations.htm#bookmark4">Transformation 
- Operations</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/change_orientation.htm b/doc/salome/gui/GEOM/change_orientation.htm
deleted file mode 100755 (executable)
index a6ae12d..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
-\r
-<html>\r
-\r
-<head>\r
-<title>Change Orientation</title>\r
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
-<!--\r
-if (navigator.appName !="Netscape")\r
-{   document.write("<link rel='stylesheet' href='default.css'>");}\r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-img_whs1 { border:none; width:23px; height:24px; }\r
-p.whs2 { font-size:12pt; }\r
-p.whs3 { font-size:12pt; font-weight:bold; }\r
-p.whs4 { font-size:12pt; margin-left:40px; }\r
-img_whs5 { border:none; width:400px; height:315px; float:none; border-style:none; }\r
-table.whs6 { x-cell-content-align:top; border-spacing:0px; width:46.327%; }\r
-col.whs7 { width:52.644%; }\r
-col.whs8 { width:47.356%; }\r
-tr.whs9 { x-cell-content-align:top; }\r
-td.whs10 { width:52.644%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }\r
-img_whs11 { border:none; width:138px; height:143px; border-style:none; }\r
-td.whs12 { width:47.356%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }\r
-img_whs13 { border:none; width:139px; height:144px; border-style:none; }\r
-td.whs14 { width:52.644%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; }\r
-td.whs15 { width:47.356%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; }\r
--->\r
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
-<!--\r
-function reDo() {\r
-  if (innerWidth != origWidth || innerHeight != origHeight)\r
-     location.reload();\r
-}\r
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
-       origWidth = innerWidth;\r
-       origHeight = innerHeight;\r
-       onresize = reDo;\r
-}\r
-onerror = null; \r
-//-->\r
-</script>\r
-<style type="text/css">\r
-<!--\r
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
-p.WebHelpNavBar { text-align:right; }\r
--->\r
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
-<script type="text/javascript" language="javascript" src="whver.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.gbWhTopic)\r
-{\r
-       if (window.setRelStartPage)\r
-       {\r
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nChange Orientation");\r
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
-\r
-       }\r
-\r
-\r
-       if (window.setRelStartPage)\r
-       {\r
-       setRelStartPage("index.htm");\r
-\r
-               autoSync(1);\r
-               sendSyncInfo();\r
-               sendAveInfoOut();\r
-       }\r
-\r
-}\r
-else\r
-       if (window.gbIE4)\r
-               document.location.reload();\r
-//-->\r
-</script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(4);\r
-//-->\r
-</script>\r
-<h1><img src="image43.gif" width="23px" height="24px" border="0" class="img_whs1"> Change Orientation</h1>\r
-\r
-<p class="whs2"><b style="font-weight: normal;">T</b>o <span \r
- style="font-weight: bold;"><B>Change Orientation</B></span> in the Main Menu \r
- select <span style="font-weight: bold;"><B>Repair - &gt; Change Orientation</B></span>.</p>\r
-\r
-<p class="whs2">This operation reverses the normals of faces \r
- composing the selected shell. </p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><b style="font-weight: bold;">TUI Command :</b><i><span \r
- style="font-style: italic;"><I> geompy.ChangeOrientation(shape)</I></span></i></p>\r
-\r
-<p class="whs2"><b style="font-weight: bold;">Arguments: <span \r
- style="font-weight: normal;">Name + 1 shape (shell) </span></b></p>\r
-\r
-<p class="whs3"><span style="font-weight: normal;">Uncheck</span> \r
- Create a copy<span style="font-weight: normal;"> checkbox if you don't \r
- wish to leave the initial object in the project (</span>Result name<span \r
- style="font-weight: normal;"> field will be locked).</span></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs4"><img src="pics/changeorientation.png" x-maintain-ratio="TRUE" width="400px" height="315px" border="0" class="img_whs5"></p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2"><span style="font-weight: bold;"><B>Example:</B></span> \r
- </p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<table x-use-null-cells cellspacing="0" width="46.327%" class="whs6">\r
-<col class="whs7">\r
-<col class="whs8">\r
-\r
-<tr valign="top" class="whs9">\r
-<td width="52.644%" class="whs10">\r
-<p><img src="image38.gif" width="138px" height="143px" border="0" class="img_whs11"></td>\r
-<td width="47.356%" class="whs12">\r
-<p><img src="image40.gif" width="139px" height="144px" border="0" class="img_whs13"></td></tr>\r
-\r
-<tr valign="top" class="whs9">\r
-<td width="52.644%" class="whs14">\r
-<p>Inward orientation. </td>\r
-<td width="47.356%" class="whs15">\r
-<p>Outward orientation</td></tr>\r
-</table>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<p class="whs2">&nbsp;</p>\r
-\r
-<script type="text/javascript" language="javascript1.2">\r
-<!--\r
-if (window.writeIntopicBar)\r
-       writeIntopicBar(0);\r
-//-->\r
-</script>\r
-</body>\r
-</html>\r
diff --git a/doc/salome/gui/GEOM/changing_display_parameters.htm b/doc/salome/gui/GEOM/changing_display_parameters.htm
deleted file mode 100755 (executable)
index 604eea0..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Changing Display Parameters</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nViewing Geometrical Objects");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Viewing Geometrical Objects</h1>
-
-<h3><a name=bookmark>Changing Display Mode</a></h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- salome</span></p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">box = geompy.MakeBox(0,0,0, 
- 50,50,50)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">sphere = geompy.MakeSphere(50,50,50, 
- 30)</p>
-
-<p class="whs1">fuse = geompy.MakeBoolean(box,sphere,3)</p>
-
-<p class="whs1">fuse_id = geompy.addToStudy(fuse,&quot;Fuse&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">gg.createAndDisplayGO(fuse_id)</p>
-
-<p class="whs1">gg.setDisplayMode(fuse_id,1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark1>Changing Color</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">box = geompy.MakeBox(0,0,0, 
- 50,50,50)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">sphere = geompy.MakeSphere(50,50,50, 
- 30)</p>
-
-<p class="whs1">fuse = geompy.MakeBoolean(box,sphere,3)</p>
-
-<p class="whs1">fuse_id = geompy.addToStudy(fuse,&quot;Fuse&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">gg.createAndDisplayGO(fuse_id)</p>
-
-<p class="whs1">gg.setDisplayMode(fuse_id,1)</p>
-
-<p class="whs1">gg.setColor(fuse_id,218,165,31) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark2>Changing Transparency</a></h3>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">box = geompy.MakeBox(0,0,0, 
- 50,50,50)</p>
-
-<p class="whs1">sphere = geompy.MakeSphere(50,50,50, 
- 30)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">fuse = geompy.MakeBoolean(box,sphere,3)</p>
-
-<p class="whs1">fuse_id = geompy.addToStudy(fuse,&quot;Fuse&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">gg.createAndDisplayGO(fuse_id)</p>
-
-<p class="whs1">gg.setDisplayMode(fuse_id,1)</p>
-
-<p class="whs1">gg.setColor(fuse_id,218,165,31)</p>
-
-<p class="whs1">gg.setTransparency(fuse_id,0.5) 
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/check_free_boundaries.htm b/doc/salome/gui/GEOM/check_free_boundaries.htm
deleted file mode 100755 (executable)
index b6e1274..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Check Free Boundaries</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:22px; height:22px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; font-weight:bold; }
-img_whs4 { border:none; width:243px; height:203px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; margin-left:0px; }
-p.whs6 { font-size:12pt; margin-left:40px; }
-img_whs7 { border:none; width:436px; height:339px; float:none; border-style:none; }
-img_whs8 { border:none; width:442px; height:336px; float:none; border-style:none; }
-p.whs9 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs5 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nCheck Free Boundaries");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="image44.gif" width="22px" height="22px" border="0" class="img_whs1"> </font></span>Check Free Boundaries</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o <span 
- style="font-weight: bold;"><B>Check Free Boundaries</B></span> in the Main Menu 
- select <span style="font-weight: bold;"><B>Repair - &gt; Check Free Boundaries</B></span>.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">This operation detects wires and edges that 
- correspond to the shape's boundary, and highlights it</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b><b> <span 
- style="font-weight: bold;"><B>GEOM_Object. </B></span></b></font></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command :</b><i><span 
- style="font-style: italic;"> <I></i>(NoError, ClosedWires, OpenWires) = geompy.GetFreeBoundary(Shape)</I></span>, 
- where Shape is a shape to be checked, NoError is false if an error occurred 
- while checking free boundaries, ClosedWires is a list of closed free boundary 
- wires, OpenWires is a list of open free boundary wires.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/repair9.png" x-maintain-ratio="TRUE" width="243px" height="203px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs6"><img src="pics/free_boudaries1.png" x-maintain-ratio="TRUE" width="436px" height="339px" border="0" class="img_whs7"> &nbsp;<img src="pics/free_boudaries2.png" x-maintain-ratio="TRUE" width="442px" height="336px" border="0" class="img_whs8">&nbsp; </p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"><span style="font-weight: normal;">Our</span> 
- TUI Scripts<span style="font-weight: normal;"> provide you with useful 
- examples of the use of</span> <a href="repairing_operations.htm#bookmark8">Repairing 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/check_free_faces.htm b/doc/salome/gui/GEOM/check_free_faces.htm
deleted file mode 100755 (executable)
index b704b6b..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Check Free Faces</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:23px; height:22px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; font-weight:normal; }
-p.whs4 { font-size:12pt; margin-left:40px; }
-img_whs5 { border:none; width:322px; height:163px; float:none; border-style:none; }
-p.whs6 { font-size:12pt; margin-left:40px; text-indent:-40px; }
-p.whs7 { font-size:12pt; margin-left:40px; text-indent:-40px; font-weight:bold; }
-p.whs8 { font-size:12pt; text-indent:-40px; margin-left:80px; }
-img_whs9 { border:none; float:none; width:234px; height:281px; border-style:none; }
-img_whs10 { border:none; width:248px; height:283px; float:none; border-style:none; }
-p.whs11 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs6 {text-indent:1pt; }";
-  strNSS += "p.whs7 {text-indent:1pt; }";
-  strNSS += "p.whs8 {text-indent:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nCheck Free Faces");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="image10.gif" width="23px" height="22px" border="0" class="img_whs1"> </font></span>Check Free Faces</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o <span 
- style="font-weight: bold;"><B>Check Free Faces</B></span> in the Main Menu select 
- <span style="font-weight: bold;"><B>Repair - &gt; Check Free Faces.</B></span></p>
-
-<p class="whs2">This operation retrieves all free faces from 
- a given shape. A free face is a face not shared between two shells of 
- the shape. </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b><b> <span 
- style="font-weight: bold;"><B>GEOM_Object</B></span><span style="font-weight: normal;"> 
- (a list of IDs of all free faces, containing in the shape)</span><span 
- style="font-weight: bold;"><B>. </B></span></b></p>
-
-<p class="whs2"><b>TUI Command :</b><i><span style="font-style: italic;"> 
- <I></i>GetFreeFacesIDs(Shape)</I></span>, where Shape is a shape to be checked.</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><img src="pics/repair10.png" x-maintain-ratio="TRUE" width="322px" height="163px" border="0" class="img_whs5"></p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs7">Examples: </p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs8"><img src="pics/free_faces1.png" x-maintain-ratio="TRUE" width="234px" height="281px" border="0" class="img_whs9"> &nbsp;<img src="pics/free_faces2.png" x-maintain-ratio="TRUE" width="248px" height="283px" border="0" class="img_whs10"></p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs11"><span style="font-weight: normal;">Our</span> 
- TUI Scripts<span style="font-weight: normal;"> provide you with useful 
- examples of the use of</span> <a href="repairing_operations.htm#bookmark9">Repairing 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/circle.htm b/doc/salome/gui/GEOM/circle.htm
deleted file mode 100755 (executable)
index 96568f5..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Circle</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; font-weight:bold; }
-p.whs4 { font-size:12pt; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:346px; float:none; border-style:none; }
-img_whs6 { border:none; width:312px; height:359px; float:none; border-style:none; }
-img_whs7 { border:none; width:348px; height:321px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Basic Geometric Objects\nCircle");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image29.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span></b>Circle</h1>
-
-<p><b><span style="font-weight: normal;">T</span></b>o create a <span style="font-weight: bold;"><B>Circle</B></span> 
- in the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span 
- style="font-weight: bold;"><B>New Entity - &gt; Basic - &gt; Circle</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">There 
- are 2 algorithms to create a</span> Circle <span style="font-weight: normal;">in 
- the 3D space.</span> </b></p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of each operation will be a</span></b> 
- GEOM_Object (edge).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">Firstly, 
- you can define a </span><span style="font-weight: bold;"><B>Circle</B></span><span 
- style="font-weight: normal;"> by a</span> Center Point, <span style="font-weight: normal;">a</span> 
- Vector <span style="font-weight: normal;">giving the </b>circl</span>e\92
- normal and a <span style="font-weight: bold;"><B>Radius</B></span>.</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b> 
- <span style="font-style: italic;"><I>geompy.MakeCircle(Point, Vector, Radius)</I></span></p>
-
-<p class="whs3"><b style="font-weight: bold;">Arguments: 
- </b><span style="font-weight: normal;">Name + 1 vertex (for the center) 
- + 1 edge (for the direction) + Radius.</span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><img src="pics/circle1.png" x-maintain-ratio="TRUE" width="312px" height="346px" border="0" class="img_whs5"> </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><span style="font-weight: normal;">Secondly, 
- you can define a</span> Circle<span style="font-weight: normal;"> by three</span> 
- Points <span style="font-weight: normal;">that lie on it.</span> </p>
-
-<p class="whs3"><b style="font-weight: bold;">TUI 
- Command:</b> &nbsp;<span style="font-weight: normal; font-style: italic;"><I>geompy.MakeCircleThreePnt(Point1, 
- Point2, Point3)</I></span> </p>
-
-<p class="whs3"><b style="font-weight: bold;">Arguments: 
- </b><span style="font-weight: normal;">Name + 3 points which will form 
- the circle.</span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><b style="font-weight: bold;"><img src="pics/circle2.png" x-maintain-ratio="TRUE" width="312px" height="359px" border="0" class="img_whs6"></b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><b style="font-weight: bold;"><img src="pics/circles.png" x-maintain-ratio="TRUE" width="348px" height="321px" border="0" class="img_whs7"></b></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="basic_geometrical_objects.htm#bookmark2">Basic 
- Geometric Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/close_contour.htm b/doc/salome/gui/GEOM/close_contour.htm
deleted file mode 100755 (executable)
index e8accf8..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Close Contour</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-ul.whs3 { list-style:disc; }
-p.whs4 { font-size:12pt; margin-left:40px; font-weight:bold; }
-img_whs5 { border:none; width:312px; height:397px; float:none; border-style:none; }
-p.whs6 { font-size:12pt; font-weight:bold; }
-p.whs7 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nClose Contour");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image121.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Close Contour</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Close Contour</B></span> operation in the 
- Main Menu select <span style="font-weight: bold;"><B>Repair - &gt; Close 
- Contour.</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">This operation closes an open contour and modifies 
- the underlying face (if needed) in accordance with user specified mode:</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs2">By common vertex \96 a 
- vertex is created between the end points of the contour and its tolerance 
- is increased to a value of the gap between the ends of the contour;</p></li>
-       
-       <li class=kadov-p><p class="whs2">By new edge \96 a new edge 
- is inserted between the end points of the contour.</p></li>
-</ul>
-
-<p class="whs2">This operation is available in <span style="font-weight: bold;"><B>OCC 
- Viewer</B></span> only. </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><b><span 
- style="font-weight: normal;">T</b>he</span> Result <span style="font-weight: normal;">will 
- be a</span></b><b> <span style="font-weight: bold;"><B>GEOM_Object</B></span></b><span 
- style="font-weight: bold;"><B>.</B></span></font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.CloseContour(Shape, Wires, 
- IsCommonVertex)</I></span>, where Shape is a shape to be processed, Wires 
- is a list of edges or wires ID\92s which has to be closed within the shape 
- (if the list contains only one element = -1, the shape itself is considered 
- as a wire), &nbsp;IsCommonVertex 
- if this parameter is True a closure has to be done by creation of a common 
- vertex, otherwise an edge is added between the end vertices.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: <span 
- style="font-weight: normal;">Name + 1 shape + contour</span> <span style="font-weight: normal;">(</span></b>Wire, 
- or a set of Edges) + mode of closure (by vertex or by edge)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/repair3.png" x-maintain-ratio="TRUE" width="312px" height="397px" border="0" class="img_whs5"></p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs7"><span style="font-weight: normal;">Our</span> 
- TUI Scripts <span style="font-weight: normal;">provide you with useful 
- examples of the use of</span> <a href="repairing_operations.htm#bookmark2">Repairing 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/color.htm b/doc/salome/gui/GEOM/color.htm
deleted file mode 100755 (executable)
index 9732c7c..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Color</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-size:12pt; }
-p.whs2 { margin-left:40px; }
-img_whs3 { border:none; width:492px; height:392px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nViewing geometrical objects\nColor");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Color</h1>
-
-<p>You can change the filling color of your object in the standard <span 
- style="font-weight: bold;"><B>Select Color</B></span> menu accessible by right-clicking 
- on an object and selecting <span style="font-weight: bold;"><B>Color</B></span> 
- in the pop-up menu box. </p>
-
-<p>&nbsp;</p>
-
-<p class="whs1"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">TUI 
- Command:</b><i> gg.setColor(ID, Short, Short, Short)</i></font></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><img src="selectcolor.png" x-maintain-ratio="TRUE" width="492px" height="392px" border="0" class="img_whs3"></p>
-
-<p>&nbsp;</p>
-
-<p class="whs1">Our TUI Scripts provide you with useful examples 
- of <a href="changing_display_parameters.htm#bookmark1">Changing Display 
- Parameters</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/common.htm b/doc/salome/gui/GEOM/common.htm
deleted file mode 100755 (executable)
index 25b4226..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Common</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
-p.whs4 { font-size:12pt; margin-right:0in; margin-top:0px; margin-bottom:0px; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:324px; float:none; border-style:none; }
-img_whs6 { border:none; border-style:none; width:253px; height:266px; float:none; }
-img_whs7 { border:none; border-style:none; float:none; width:234px; height:266px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs3 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs4 {margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nBoolean Operations\nCommon");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><b style="font-weight: bold;"><img src="files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image1.gif" width="20px" height="20px" border="0" class="img_whs1"> </b></font></span>Common</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Common</B></span> operation in the Main 
- Menu select <span style="font-weight: bold;"><B>Operations - &gt; Boolean 
- - &gt; Common</B></span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><b style="font-weight: bold;"><span style="font-weight: normal;">This 
- operation</span> </b>cuts the common part of two shapes and transforms 
- it into an independent geometrical object.</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b> GEOM_Object 
- (COMPOUND).</p>
-
-<p class="whs3"><span style="font-weight: bold;"><B>TUI Command:</B></span> 
- &nbsp;<span style="font-style: italic;"><I>geompy.MakeCommon(s1, 
- s2)</I></span> </p>
-
-<p class="whs3"><b style="font-weight: bold;">Arguments:</b> 
- Name + 2 shapes.</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><img src="pics/bool2.png" x-maintain-ratio="TRUE" width="312px" height="324px" border="0" class="img_whs5"></p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs3"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4"><img src="pics/fusesn1.png" x-maintain-ratio="TRUE" width="253px" height="266px" border="0" class="img_whs6"> &nbsp;<img src="pics/commonsn.png" x-maintain-ratio="TRUE" width="234px" height="266px" border="0" class="img_whs7"> </p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of the use of <a href="boolean_operations.htm#bookmark1">Boolean Operations</a>. 
- </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/complex_objects.htm b/doc/salome/gui/GEOM/complex_objects.htm
deleted file mode 100755 (executable)
index 72c395e..0000000
+++ /dev/null
@@ -1,489 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Complex Objects</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nCreating Geometric Objects\nComplex Objects");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Complex Objects</h1>
-
-<h3><a name=bookmark>Creation of a Prism</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex( 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- 100., &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex( 
- 100., 100., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p4 = geompy.MakeVertex( 
- &nbsp;&nbsp;0., 
- 100., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p5 = geompy.MakeVertex( 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0., 
- &nbsp;60.)</p>
-
-<p class="whs1">p6 = geompy.MakeVertex(-100., 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p7 = geompy.MakeVertex(-100.,-100., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">p8 = geompy.MakeVertex( 
- &nbsp;&nbsp;0.,-100., 
- &nbsp;&nbsp;0.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector from the given components</p>
-
-<p class="whs1">vector = geompy.MakeVectorDXDYDZ(50., 
- 50., 50.)</p>
-
-<p>&nbsp;</p>
-
-<p>#create vectors from two points</p>
-
-<p class="whs1">vector1_arc1 = geompy.MakeVector(p1, 
- p2)</p>
-
-<p class="whs1">vector2_arc1 = geompy.MakeVector(p1, 
- p4)</p>
-
-<p class="whs1">vector1_arc2 = geompy.MakeVector(p1, 
- p6)</p>
-
-<p class="whs1">vector2_arc2 = geompy.MakeVector(p1, 
- p8)</p>
-
-<p>&nbsp;</p>
-
-<p># create arcs from three points</p>
-
-<p class="whs1">arc1 = geompy.MakeArc(p2, 
- p3, p4)</p>
-
-<p class="whs1">arc2 = geompy.MakeArc(p6, 
- p7, p8)</p>
-
-<p>&nbsp;</p>
-
-<p># create wires</p>
-
-<p class="whs1">wire1 = geompy.MakeWire([vector1_arc1, 
- arc1, vector2_arc1])</p>
-
-<p class="whs1">wire2 = geompy.MakeWire([vector1_arc2, 
- arc2, vector2_arc2])</p>
-
-<p>&nbsp;</p>
-
-<p># create faces</p>
-
-<p class="whs1">isPlanarWanted = 1</p>
-
-<p class="whs1">face1 = geompy.MakeFace(wire1, 
- isPlanarWanted)</p>
-
-<p class="whs1">face2 = geompy.MakeFace(wire2, 
- isPlanarWanted)</p>
-
-<p>&nbsp;</p>
-
-<p># create prisms</p>
-
-<p class="whs1">prism1 = geompy.MakePrism(face2, 
- p1, p5)</p>
-
-<p class="whs1">prism2 = geompy.MakePrismVecH(face1, 
- vector, 50)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_face1 &nbsp;&nbsp;= 
- geompy.addToStudy(face1,&quot;Face1&quot;)</p>
-
-<p class="whs1">id_face2 &nbsp;&nbsp;= 
- geompy.addToStudy(face2,&quot;Face2&quot;)</p>
-
-<p class="whs1">id_prism1 = geompy.addToStudy(prism1,&quot;Prism1&quot;)</p>
-
-<p class="whs1">id_prism2 = geompy.addToStudy(prism2,&quot;Prism2&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display cylinders</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_face1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_face1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_face2)</p>
-
-<p class="whs1">gg.setDisplayMode(id_face2,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_prism1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_prism1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_prism2)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_prism2,1)</span> 
- </p>
-
-<h3><a name=bookmark1>Creation of a Revolution</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex( 
- &nbsp;10., &nbsp;10., 
- &nbsp;10.)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- &nbsp;15., &nbsp;15., 
- &nbsp;50.)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex( 
- &nbsp;40., &nbsp;40., 
- &nbsp;&nbsp;0.)</p>
-
-<p>&nbsp;</p>
-
-<p>#create vectors from two points</p>
-
-<p class="whs1">vector1 = geompy.MakeVector(p1, 
- p2)</p>
-
-<p class="whs1">vector2 = geompy.MakeVector(p1, 
- p3)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector from the given components</p>
-
-<p class="whs1">vector3 = geompy.MakeVectorDXDYDZ(-20., 
- -20., 100.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vector1, 
- vector2])</p>
-
-<p>&nbsp;</p>
-
-<p># create a revolution</p>
-
-<p class="whs1">revolution = geompy.MakeRevolution(wire, 
- vector3, 2.3)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_vector3 &nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(vector3,&quot;Axis&quot;)</p>
-
-<p class="whs1">id_wire &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(wire,&quot;Wire&quot;)</p>
-
-<p class="whs1">id_revolution = geompy.addToStudy(revolution,&quot;Revolution&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the vector, the wire and the revolution</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_vector3)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_wire)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_revolution)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_revolution,1)</span> 
- </p>
-
-<h3><a name=bookmark2>Creation of a Filling</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">mindeg = 2</p>
-
-<p class="whs1">maxdeg = 5</p>
-
-<p class="whs1">tol3d &nbsp;&nbsp;= 
- 0.0001</p>
-
-<p class="whs1">tol2d &nbsp;&nbsp;= 
- 0.0001</p>
-
-<p class="whs1">nbiter = 5</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex( 
- &nbsp;-30., &nbsp;-30., 
- &nbsp;50.)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- &nbsp;-60., &nbsp;-60., 
- &nbsp;30.)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex( 
- &nbsp;-30., &nbsp;-30., 
- &nbsp;10.)</p>
-
-<p>&nbsp;</p>
-
-<p># create an arc from three points</p>
-
-<p class="whs1">arc = geompy.MakeArc(p1, 
- p2, p3)</p>
-
-<p class="whs1">ShapeListCompound 
- = []</p>
-
-<p class="whs1">i = 0</p>
-
-<p class="whs1">while i &lt;= 3 :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;S 
- = geompy.MakeTranslation(arc, i * 50., 0., 0.)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;ShapeListCompound.append(S)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;i 
- = i + 1</p>
-
-<p class="whs1">compound = geompy.MakeCompound(ShapeListCompound)</p>
-
-<p>&nbsp;</p>
-
-<p># create a filling</p>
-
-<p class="whs1">filling = geompy.MakeFilling(compound, 
- mindeg, maxdeg, tol3d, tol2d, nbiter)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_compound = geompy.addToStudy(compound,&quot;Compound&quot;)</p>
-
-<p class="whs1">id_filling = geompy.addToStudy(filling,&quot;Filling&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the compound and the filling</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_compound)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_filling)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_filling,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark3>Creation of a Pipe</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p0 &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 0. &nbsp;, 0. 
- &nbsp;)</p>
-
-<p class="whs1">px &nbsp;&nbsp;= 
- geompy.MakeVertex(100., 0. &nbsp;, 
- 0. &nbsp;)</p>
-
-<p class="whs1">py &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 100., 0. &nbsp;)</p>
-
-<p class="whs1">pz &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 0. &nbsp;, 100.)</p>
-
-<p class="whs1">pxyz = geompy.MakeVertex(100., 
- 100., 100.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vector from two points</p>
-
-<p class="whs1">vxy = geompy.MakeVector(px, 
- py)</p>
-
-<p>&nbsp;</p>
-
-<p># create an arc from three points</p>
-
-<p class="whs1">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p>&nbsp;</p>
-
-<p># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vxy, 
- arc])</p>
-
-<p>&nbsp;</p>
-
-<p># create an edge</p>
-
-<p class="whs1">edge = geompy.MakeEdge(p0, 
- pxyz)</p>
-
-<p>&nbsp;</p>
-
-<p># create a pipe</p>
-
-<p class="whs1">pipe = geompy.MakePipe(wire, 
- edge)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_wire = geompy.addToStudy(wire,&quot;Wire&quot;)</p>
-
-<p class="whs1">id_edge = geompy.addToStudy(edge,&quot;Edge&quot;)</p>
-
-<p class="whs1">id_pipe = geompy.addToStudy(pipe,&quot;Pipe&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the wire, the edge (path) and the pipe</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_wire)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_edge)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_pipe)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_pipe,1)</span> 
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/compound.htm b/doc/salome/gui/GEOM/compound.htm
deleted file mode 100755 (executable)
index 11465b4..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Compound</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:289px; float:none; border-style:none; }
-img_whs5 { border:none; width:195px; height:174px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Advanced Geometrical Objects\nCompound");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image19.gif" width="20px" height="20px" border="0" class="img_whs1"></font></span>Compound</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o create 
- a <span style="font-weight: bold;"><B>Compound </B></span>in the Main Menu select 
- New Entity - &gt; Build - &gt; <span style="font-weight: bold;"><B>Compound.</B></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">You can create a compound from a list of shells. 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span> </b>GEOM_Object 
- (COMPOUND).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeCompound(ListOfShape)</I></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + List of shapes.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/neo-obj7.png" x-maintain-ratio="TRUE" width="312px" height="289px" border="0" class="img_whs4"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/compoundsn.png" x-maintain-ratio="TRUE" width="195px" height="174px" border="0" class="img_whs5"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="geometrical_objects.htm#bookmark4">Advanced Geometric 
- Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/cone.htm b/doc/salome/gui/GEOM/cone.htm
deleted file mode 100755 (executable)
index 8e0fec7..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Cone</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-weight:bold; }
-p.whs4 { margin-left:40px; }
-img_whs5 { border:none; width:312px; height:402px; float:none; border-style:none; }
-p.whs6 { font-weight:bold; margin-left:40px; }
-img_whs7 { border:none; width:312px; height:402px; float:none; border-style:none; }
-p.whs8 { font-size:12pt; margin-left:40px; }
-img_whs9 { border:none; width:276px; height:282px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Primitives\nCone");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image103.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</font></span>Cone</h1>
-
-<p><b><span style="font-weight: normal;">T</b>o</span> create a <span style="font-weight: bold;"><B>Cone</B></span> 
- in the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span 
- style="font-weight: bold;"><B>New Entity - &gt; Primitives - &gt; Cone</B></span></p>
-
-<p>&nbsp;</p>
-
-<p>There are two algorithms for creation of a <span style="font-weight: bold;"><B>Cone</B></span>. 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of each operation will be a</span></b> 
- GEOM_Object (SOLID).</p>
-
-<p>&nbsp;</p>
-
-<p>Firstly, you can define a <span style="font-weight: bold;"><B>Cone</B></span> 
- by the <span style="font-weight: bold;"><B>Base Point</B></span> (the central 
- point of the cone base), the <span style="font-weight: bold;"><B>Axis</B></span>, 
- the <span style="font-weight: bold;"><B>Height</B></span> and the first and the 
- second <span style="font-weight: bold;"><B>Radiuses</B></span>. </p>
-
-<p><b style="font-weight: bold;">TUI Command:</b> <span style="font-style: italic;"><I>geompy.MakeCone(Point, 
- Axis, Radius1, Radius2)</I></span></p>
-
-<p class="whs3"><b style="font-weight: bold;">Arguments: 
- </b><span style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">Name + 1 vertex 
- + 1 vector (for direction) + 3 values (Radius of the base part, radius 
- of the upper part, height).</font></span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><img src="pics/cone1.png" x-maintain-ratio="TRUE" width="312px" height="402px" border="0" class="img_whs5"></p>
-
-<p>&nbsp;</p>
-
-<p>Secondly, you can define a <span style="font-weight: bold;"><B>Cone</B></span> 
- with the center at the origin of coordinates by its <span style="font-weight: bold;"><B>Height</B></span> 
- and <span style="font-weight: bold;"><B>Radiuses</B></span>. The <span style="font-weight: bold;"><B>Axis</B></span> 
- of the <span style="font-weight: bold;"><B>Cone</B></span> will be collinear 
- to the OZ axis of the coordinate system. </p>
-
-<p><b style="font-weight: bold;">TUI Command:</b> <span style="font-style: italic;"><I>geompy.MakeConeR1R2H(Radius1, 
- Radius2, Height)</I></span> </p>
-
-<p class="whs3"><b>Arguments: </b><span style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">Name 
- + 3 values (Radius of the base part, radius of the upper part, height).</font></span></p>
-
-<p class="whs6"><img src="pics/cone2.png" x-maintain-ratio="TRUE" width="312px" height="402px" border="0" class="img_whs7"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p><span style="font-weight: bold;"><B>Note:</B></span> If both radiuses are non-zero, 
- the <span style="font-weight: bold;"><B>Cone</B></span> will be truncated. If 
- the radiuses are equal, a <span style="font-weight: bold;"><B>Cylinder</B></span> 
- will be created instead. </p>
-
-<p>&nbsp;</p>
-
-<p><b style="font-weight: bold;">Example:</b></p>
-
-<p>&nbsp;</p>
-
-<p class="whs8"><img src="pics/cones.png" x-maintain-ratio="TRUE" width="276px" height="282px" border="0" class="img_whs9"></p>
-
-<p class="whs8">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="primitives.htm#bookmark4">Primitives</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/cshdat_robohelp.htm b/doc/salome/gui/GEOM/cshdat_robohelp.htm
deleted file mode 100755 (executable)
index 6ac8b78..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-<html>
-<head>
-<title>Geometry Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="JavaScript">
-<!--
-
-var gArrayCsh = new Array();
-
-var gstrWindowOption = "";
-var gstrURL = "";
-var gbWithNavPane = false;
-
-function CshEntityItem(strAliasId, nTopicNum, strUrl) 
-{
-    this.strAliasId = strAliasId;
-    this.nTopicNum = nTopicNum;
-    this.strUrl = strUrl;
-}
-
-
-//Try to get to topic number from hash string
-function GetTopicNumberAuto(strMayBeNumber)
-{
-   var nNum = -1;
-   if (strMayBeNumber.length >= 1)
-   {
-               var strTmp = strMayBeNumber;
-               var iEnd = strTmp.length;
-               for (var i=0; i<iEnd; i++)
-               {
-                         var ch = strTmp.charAt(i);
-                         if (!((ch == "0") || (ch == "1") ||
-                               (ch == "2") || (ch == "3") ||
-                               (ch == "4") || (ch == "5") ||
-                               (ch == "6") || (ch == "7") ||
-                               (ch == "8") || (ch == "9")))
-                             return GetTopicNumberById(strTmp);
-               }
-               nNum = parseInt(strTmp);
-   }
-   return nNum;
-}
-
-function GetTopicNumber(strHashString)
-{
-       var nTopicEndPos = strHashString.indexOf(',')
-       if (nTopicEndPos == -1) { // no window option.
-               return GetTopicNumberOnly(strHashString);
-       }
-       else {
-               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);
-               var strWithNavPane = 'withnavpane=true';
-               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)
-               {
-                       if (strWindowOption.length > strWithNavPane.length)
-                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);
-                       else
-                               gstrWindowOption = "";
-                       gbWithNavPane = true;
-               }
-               else
-                       gstrWindowOption = strWindowOption;
-               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            
-       }
-}
-
-function GetTopicNumberOnly(strTopicString)
-{
-       var nEqualPos = strTopicString.indexOf('=');
-       if (nEqualPos == -1) {
-               return GetTopicNumberAuto(strTopicString);
-       }
-       else {
-               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);
-               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {
-                       return parseInt(strValue);
-               } else if (strTopicString.toLowerCase().indexOf("context") == 0) {
-                       return GetTopicNumberById(strValue);
-               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {
-                       gstrURL = strValue;
-                       return -1;
-               }
-
-       }
-}
-
-//Find HomePage of the WebHelp system
-// we try to get the topic from remote project if it exists.
-function RedirectToHomePage()
-{
-       if (parent && parent != this && parent.goNext)
-       {
-               var sHome = parent.goNext();
-               if (sHome != "")
-                       RedirectTo(sHome);
-       }
-}
-
-function getHomePage()
-{
-       if (parent && parent != this && parent.getRelHomePage)
-       {
-               return parent.getRelHomePage(document.location.href);
-       }
-       return "";
-}
-
-function addRemoteProject(strPath)
-{
-       if (parent && parent != this && parent.addProject)
-       {
-               parent.addProject(strPath);
-       }
-}
-
-//Redirect page to...
-function RedirectTo(strUrl)
-{
-   if (gstrWindowOption.length != 0) {
-               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);
-               // close current window and rename the stub window to current window.
-               if (wnd)
-                       wnd.focus();
-               if (parent)
-                       parent.close();
-   }
-   else {
-       parent.document.location.href = strUrl;
-       window.focus();
-  }
-}
-
-//Prompt the user that we can not find...
-function FailToFind(strMsg)
-{
-    RedirectToHomePage();
-}
-
-//Find topic by topic number (defined in h file)
-function FindTopicByTopicNum(nTopicNum)
-{
-       var i = 0;
-       var iEnd = gArrayCsh.length;
-       for (i=0; i<iEnd; i++)
-       {
-               if (gArrayCsh[i].nTopicNum == nTopicNum)
-               {
-                       var strURL = gArrayCsh[i].strUrl;
-                       if (gbWithNavPane)
-                       {
-                               var strHomePage = getHomePage();
-                               if (strHomePage.length != 0)
-                                       strURL = strHomePage + strURL;
-                       }       
-                       RedirectTo(strURL);
-                       return true;
-               }
-       }
-       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);
-       return false;
-}
-
-var oldPrefix = "HelpIdFromHTMLHelp_"
-//Find topic by topic id (alias id defined in ali file)
-function GetTopicNumberById(strTopicId)
-{
-   if (strTopicId.indexOf(oldPrefix) == 0)
-   {
-               strTopicId = strTopicId.substring(oldPrefix.length);
-   }
-
-   var i = 0;
-   var iEnd = gArrayCsh.length;
-   for (i=0; i<iEnd; i++)
-   {
-       if (gArrayCsh[i].strAliasId.toLowerCase() == strTopicId.toLowerCase())
-       {
-           return gArrayCsh[i].nTopicNum;
-        }
-   }
-   gstrURL = "";
-   return -1;
-}
-
-//Set Context-sensitive help entity...
-function SetCsh(n, strAliasId, nTopicNum, strUrl)
-{
-   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);
-}
-
-
-function getHash()
-{
-       if (parent && parent != this)
-               return parent.location.hash;
-       else
-               return "";
-}
-//-->
-</script>
-<script language="javascript">
-<!--
-
-
-//-->
-</script>
-<script language="javascript">
-<!--
-//Find CSH according to hash string after this page
-if (getHash().length > 0)
-{
-   // VH 05/16/00 now support 
-   // TopicID=
-   // TopicNumber=
-   // RemoteURL=   
-   // and WindowsOptions
-   // with the format #a=xxx,b=xxx,c=xxx...
-   var strHashString = getHash().toString();
-   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. 
-   // so here need to change it back.
-   strHashString = strHashString.substring(1,strHashString.length);
-   strHashString = strHashString.replace("%072%057%057", "://");
-   var nTopicNum = GetTopicNumber(strHashString);
-
-   if (nTopicNum != -1)
-   {
-      FindTopicByTopicNum(nTopicNum);
-   }
-   else
-   {
-      if (gstrURL.length > 0) 
-       RedirectTo(gstrURL);
-      else
-       RedirectToHomePage();
-   }
-}
-else
-{
-   RedirectToHomePage();
-}
-//-->
-</script>
-<noscript>
- <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>
-</noscript>
-</body>
-</html>
-
-
-
-
-
-
diff --git a/doc/salome/gui/GEOM/cshdat_webhelp.htm b/doc/salome/gui/GEOM/cshdat_webhelp.htm
deleted file mode 100755 (executable)
index 6b2c6fc..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-<html>
-<head>
-<title>Geometry Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="JavaScript">
-<!--
-
-var gArrayCsh = new Array();
-
-var gstrWindowOption = "";
-var gstrURL = "";
-var gbWithNavPane = false;
-
-function CshEntityItem(strAliasId, nTopicNum, strUrl) 
-{
-    this.strAliasId = strAliasId;
-    this.nTopicNum = nTopicNum;
-    this.strUrl = strUrl;
-}
-
-
-//Try to get to topic number from hash string
-function GetTopicNumberAuto(strMayBeNumber)
-{
-   var nNum = -1;
-   if (strMayBeNumber.length >= 1)
-   {
-               var strTmp = strMayBeNumber;
-               var iEnd = strTmp.length;
-               for (var i=0; i<iEnd; i++)
-               {
-                         var ch = strTmp.charAt(i);
-                         if (!((ch == "0") || (ch == "1") ||
-                               (ch == "2") || (ch == "3") ||
-                               (ch == "4") || (ch == "5") ||
-                               (ch == "6") || (ch == "7") ||
-                               (ch == "8") || (ch == "9")))
-                             return GetTopicNumberById(strTmp);
-               }
-               nNum = parseInt(strTmp);
-   }
-   return nNum;
-}
-
-function GetTopicNumber(strHashString)
-{
-       var nTopicEndPos = strHashString.indexOf(',')
-       if (nTopicEndPos == -1) { // no window option.
-               return GetTopicNumberOnly(strHashString);
-       }
-       else {
-               var strWindowOption = strHashString.substring(nTopicEndPos + 1, strHashString.length);
-               var strWithNavPane = 'withnavpane=true';
-               if (strWindowOption.toLowerCase().indexOf(strWithNavPane) == 0)
-               {
-                       if (strWindowOption.length > strWithNavPane.length)
-                               gstrWindowOption = strWindowOption.substring(strWithNavPane.length + 1);
-                       else
-                               gstrWindowOption = "";
-                       gbWithNavPane = true;
-               }
-               else
-                       gstrWindowOption = strWindowOption;
-               return GetTopicNumberOnly(strHashString.substring(0, nTopicEndPos));            
-       }
-}
-
-function GetTopicNumberOnly(strTopicString)
-{
-       var nEqualPos = strTopicString.indexOf('=');
-       if (nEqualPos == -1) {
-               return GetTopicNumberAuto(strTopicString);
-       }
-       else {
-               var strValue=strTopicString.substring(nEqualPos + 1, strTopicString.length);
-               if (strTopicString.toLowerCase().indexOf("topicnumber") == 0) {
-                       return parseInt(strValue);
-               } else if (strTopicString.toLowerCase().indexOf("topicid") == 0) {
-                       return GetTopicNumberById(strValue);
-               } else if (strTopicString.toLowerCase().indexOf("remoteurl") == 0) {
-                       gstrURL = strValue;
-                       return -1;
-               }
-
-       }
-}
-
-//Find HomePage of the WebHelp system
-// we try to get the topic from remote project if it exists.
-function RedirectToHomePage()
-{
-       if (parent && parent != this && parent.goNext)
-       {
-               var sHome = parent.goNext();
-               if (sHome != "")
-                       RedirectTo(sHome);
-       }
-}
-
-function getHomePage()
-{
-       if (parent && parent != this && parent.getRelHomePage)
-       {
-               return parent.getRelHomePage(document.location.href);
-       }
-       return "";
-}
-
-function addRemoteProject(strPath)
-{
-       if (parent && parent != this && parent.addProject)
-       {
-               parent.addProject(strPath);
-       }
-}
-
-//Redirect page to...
-function RedirectTo(strUrl)
-{
-   if (gstrWindowOption.length != 0) {
-               var wnd = window.open(strUrl, "HelpStub", gstrWindowOption);
-               // close current window and rename the stub window to current window.
-               wnd.focus();
-               if (parent)
-                       parent.close();
-   }
-   else {
-       parent.document.location.href = strUrl;
-       window.focus();
-  }
-}
-
-//Prompt the user that we can not find...
-function FailToFind(strMsg)
-{
-    RedirectToHomePage();
-}
-
-//Find topic by topic number (defined in h file)
-function FindTopicByTopicNum(nTopicNum)
-{
-       var i = 0;
-       var iEnd = gArrayCsh.length;
-       for (i=0; i<iEnd; i++)
-       {
-               if (gArrayCsh[i].nTopicNum == nTopicNum)
-               {
-                       var strURL = gArrayCsh[i].strUrl;
-                       if (gbWithNavPane)
-                       {
-                               var strHomePage = getHomePage();
-                               if (strHomePage.length != 0)
-                                       strURL = strHomePage + strURL;
-                       }       
-                       RedirectTo(strURL);
-                       return true;
-               }
-       }
-       FailToFind("Fail to find topic assocaite with topic number: " + nTopicNum);
-       return false;
-}
-
-//Find topic by topic id (alias id defined in ali file)
-function GetTopicNumberById(strTopicId)
-{
-   var i = 0;
-   var iEnd = gArrayCsh.length;
-   for (i=0; i<iEnd; i++)
-   {
-       if (gArrayCsh[i].strAliasId == strTopicId)
-       {
-           return gArrayCsh[i].nTopicNum;
-        }
-   }
-   gstrURL = "";
-   return -1;
-}
-
-//Set Context-sensitive help entity...
-function SetCsh(n, strAliasId, nTopicNum, strUrl)
-{
-   gArrayCsh[n] = new CshEntityItem(strAliasId,nTopicNum,strUrl);
-}
-
-
-function getHash()
-{
-       if (parent && parent != this)
-               return parent.location.hash;
-       else
-               return "";
-}
-//-->
-</script>
-<script language="javascript">
-<!--
-
-
-//-->
-</script>
-<script language="javascript">
-<!--
-//Find CSH according to hash string after this page
-if (getHash().length > 0)
-{
-   // VH 05/16/00 now support 
-   // TopicID=
-   // TopicNumber=
-   // RemoteURL=   
-   // and WindowsOptions
-   // with the format #a=xxx,b=xxx,c=xxx...
-   var strHashString = getHash().toString();
-   // change ? to : for remote URL. because java applet have some problem to pass a URL with two : inside the URL so we changed it. 
-   // so here need to change it back.
-   strHashString = strHashString.substring(1,strHashString.length);
-   strHashString = strHashString.replace("%072%057%057", "://");
-   var nTopicNum = GetTopicNumber(strHashString);
-
-   if (nTopicNum != -1)
-   {
-      FindTopicByTopicNum(nTopicNum);
-   }
-   else
-   {
-      if (gstrURL.length > 0) 
-       RedirectTo(gstrURL);
-      else
-       RedirectToHomePage();
-   }
-}
-else
-{
-   RedirectToHomePage();
-}
-//-->
-</script>
-<noscript>
- <p> Your browser does not support JavaScript. WebHelp Context-Sensitive Help requires JavaScript support to run.</p>
-</noscript>
-</body>
-</html>
-
-
-
-
-
-
diff --git a/doc/salome/gui/GEOM/curve.htm b/doc/salome/gui/GEOM/curve.htm
deleted file mode 100755 (executable)
index 2f3b21c..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Curve</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-ul.whs3 { list-style:disc; }
-p.whs4 { font-size:12pt; font-style:italic; }
-p.whs5 { font-size:12pt; font-style:italic; margin-left:40px; }
-img_whs6 { border:none; width:312px; height:289px; float:none; border-style:none; }
-p.whs7 { font-size:12pt; font-style:normal; font-weight:bold; }
-p.whs8 { font-size:12pt; font-weight:bold; font-style:italic; x-text-underline:off; text-decoration:none; }
-img_whs9 { border:none; float:none; width:310px; height:308px; border-style:none; }
-img_whs10 { border:none; width:313px; height:310px; float:none; border-style:none; }
-img_whs11 { border:none; float:none; width:291px; height:313px; border-style:none; }
-p.whs12 { font-size:12pt; margin-left:40px; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Basic Geometric Objects\nCurve");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><b style="font-weight: bold;"><img src="image32.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</b></font></span>Curve</h1>
-
-<p>To create a <span style="font-weight: bold;"><B>Curve</B></span> in the <span 
- style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>New 
- Entity - &gt; Basic - &gt; Curve</B></span></p>
-
-<p>&nbsp;</p>
-
-<p>There are three algorithms to <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">create 
- a </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Curve</B></font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> in the 3D space. Each time you define it by 
- a list of </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Points</B></font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> through which the curve passes. The three </font></span><span 
- style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Curve Construction</B></font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> menu choices correspond to three possible types 
- of curves: Polyline, Besier or B-spline (Interpolated). </font></span></p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><span 
- style="font-weight: normal;">The</span> Result <span style="font-weight: normal;">of 
- each operation will be a</span></b> GEOM_Object (edge).</font></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Commands:</b> 
- </p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs2"><span style="font-style: italic;"><I>geompy.MakePolyline(ListOfShapes)</I></span></p></li>
-       
-       <li class=kadov-p><p class="whs2"><span style="font-style: italic;"><I>geompy.MakeBezier(ListOfShapes)</I></span></p></li>
-       
-       <li class=kadov-p><p class="whs2"><span style="font-style: italic;"><I>geompy.MakeInterpol(ListOfShapes)</I></span></p></li>
-</ul>
-
-<p class="whs2">ListOfShape is a list of points through which 
- the curve passes.</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Arguments:</b> 
- Name + at least 2 points which will serve as nodes on the curve.</font></span></p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"><img src="pics/curve.png" x-maintain-ratio="TRUE" width="312px" height="289px" border="0" class="img_whs6"> </p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs7">Examples:</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs8">Polyline 
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span 
- style="font-size: 12pt;
-               font-weight: bold;
-               font-style: italic;
-               x-text-underline: off;
-               /*begin!kadov{{*/ text-decoration: none; /*}}end!kadov*/ "><font size=3 style="font-size:12pt;"><I><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bezier 
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B-Spline</B></I></font></span></p>
-
-<p class="whs2"><img src="pics/polyline.png" x-maintain-ratio="TRUE" width="310px" height="308px" border="0" class="img_whs9"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="pics/bezier.png" x-maintain-ratio="TRUE" width="313px" height="310px" border="0" class="img_whs10"> &nbsp;&nbsp;&nbsp;&nbsp;<img src="pics/interpol.png" x-maintain-ratio="TRUE" width="291px" height="313px" border="0" class="img_whs11"></p>
-
-<p class="whs12">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="basic_geometrical_objects.htm#bookmark4">Basic 
- Geometric Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/cut.htm b/doc/salome/gui/GEOM/cut.htm
deleted file mode 100755 (executable)
index ea377fa..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Cut</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
-p.whs4 { font-size:12pt; margin-right:0in; margin-top:0px; margin-bottom:0px; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:324px; float:none; border-style:none; }
-img_whs6 { border:none; border-style:none; width:253px; height:266px; float:none; }
-img_whs7 { border:none; width:231px; height:267px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs3 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs4 {margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nBoolean Operations\nCut");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image2.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Cut</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Cut</B></span> operation in the Main Menu 
- select <span style="font-weight: bold;"><B>Operations - &gt; Boolean - &gt; 
- Cut</B></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs3">This operation cuts a shape with another 
- one.</p>
-
-<p class="whs3"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span> </b>&nbsp;GEOM_Object 
- (COMPOUND).</p>
-
-<p class="whs3"><b style="font-weight: bold;">Arguments:</b> 
- Name + 2 shapes.</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><b style="font-weight: bold;">Dialog Box:</b></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><img src="pics/bool3.png" x-maintain-ratio="TRUE" width="312px" height="324px" border="0" class="img_whs5"></p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs3"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><img src="pics/fusesn1.png" x-maintain-ratio="TRUE" width="253px" height="266px" border="0" class="img_whs6"> &nbsp;<img src="pics/cutsn.png" x-maintain-ratio="TRUE" width="231px" height="267px" border="0" class="img_whs7"> </p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of the use of <a href="boolean_operations.htm#bookmark3">Boolean Operations</a>. 
- </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/cylinder.htm b/doc/salome/gui/GEOM/cylinder.htm
deleted file mode 100755 (executable)
index d2b7695..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Cylinder</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-weight:bold; }
-p.whs4 { margin-left:40px; }
-img_whs5 { border:none; width:312px; height:376px; float:none; border-style:none; }
-img_whs6 { border:none; width:312px; height:376px; border-style:none; float:none; }
-p.whs7 { margin-left:0px; }
-img_whs8 { border:none; width:287px; height:272px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs7 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Primitives\nCylinder");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image100.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Cylinder</h1>
-
-<p><b><span style="font-weight: normal;">T</b>o</span> create a <span style="font-weight: bold;"><B>Cylinder</B></span> 
- in the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span 
- style="font-weight: bold;"><B>New Entity - &gt; Primitives - &gt; Cylinder</B></span></p>
-
-<p>&nbsp;</p>
-
-<p>There are 2 algorithms for creation of a <span style="font-weight: bold;"><B>Cylinder</B></span>. 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of each operation will be a</span></b> 
- GEOM_Object (SOLID).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Firstly, you can define a <span style="font-weight: bold;"><B>Cylinder</B></span> 
- by the <span style="font-weight: bold;"><B>Base Point</B></span> (the central 
- point of the cylinder base), the <span style="font-weight: bold;"><B>Vector</B></span> 
- (the axis of the cylinder), and its dimensions: the Radius and the Height.</p>
-
-<p><b style="font-weight: bold;">TUI Command:</b> <span style="font-style: italic;"><I>geompy.MakeCylinder(Point, 
- Axis, Radius, Height)</I></span>, </p>
-
-<p class="whs3"><b style="font-weight: bold;">Arguments: 
- <span style="font-weight: normal;">&nbsp;</span></b><span 
- style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">Name 
- + 1 vertex + 1 vector + 2 values (Dimensions: radius and height).</font></span></p>
-
-<p class="whs4"><b style="font-weight: bold;"><img src="pics/cylinder1.png" x-maintain-ratio="TRUE" width="312px" height="376px" border="0" class="img_whs5"></b></p>
-
-<p>&nbsp;</p>
-
-<p><b><span style="font-weight: normal;">Secondly, you can define</b> a 
- </span><span style="font-weight: bold;"><B>Cylinder</B></span> by the given radius 
- and the height at &nbsp;the 
- origin of coordinate system. The axis of the cylinder will be collinear 
- to the OZ axis of the coordinate system. </p>
-
-<p><b style="font-weight: bold;">TUI Command: </b><span style="font-style: italic;"><I>geompy.MakeCylinderRH(Radius, 
- Height)</I></span></p>
-
-<p><b>Arguments: </b><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Name + </font></span>2 values 
- (Dimensions at origin: radius and height).</p>
-
-<p>&nbsp;</p>
-
-<p class="whs4"><img src="pics/cylinder2.png" x-maintain-ratio="TRUE" width="312px" height="376px" border="0" class="img_whs6"></p>
-
-<p class="whs7">&nbsp;&nbsp;</p>
-
-<p><b style="font-weight: bold;">Example:</b></p>
-
-<p>&nbsp;</p>
-
-<p class="whs4"><img src="pics/cylinders.png" x-maintain-ratio="TRUE" width="287px" height="272px" border="0" class="img_whs8"></p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="primitives.htm#bookmark1">Primitives</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/default.css b/doc/salome/gui/GEOM/default.css
deleted file mode 100755 (executable)
index 1f8d6d7..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-BODY { 
-      background-color:#ffffff; 
-      font-family:"Times New Roman" , serif;  }
-H1 { 
-    font-weight:bold; 
-    font-size:24.0pt;  }
-LI.kadov-H1 { 
-             font-weight:bold; 
-             font-size:24.0pt;  }
-H2 { 
-    font-weight:bold; 
-    font-size:18.0pt;  }
-LI.kadov-H2 { 
-             font-weight:bold; 
-             font-size:18.0pt;  }
-H3 { 
-    font-weight:bold; 
-    font-size:14.0pt;  }
-LI.kadov-H3 { 
-             font-weight:bold; 
-             font-size:14.0pt;  }
-H4 { 
-    font-weight:bold; 
-    font-size:12.0pt;  }
-LI.kadov-H4 { 
-             font-weight:bold; 
-             font-size:12.0pt;  }
-H5 { 
-    font-weight:bold; 
-    font-size:10.0pt;  }
-LI.kadov-H5 { 
-             font-weight:bold; 
-             font-size:10.0pt;  }
-H6 { 
-    font-weight:bold; 
-    font-size:8.0pt;  }
-LI.kadov-H6 { 
-             font-weight:bold; 
-             font-size:8.0pt;  }
-P { 
-   font-size:12.0pt; 
-   margin-top:0pt; 
-   margin-bottom:0pt;  }
-LI.kadov-P { 
-            font-size:12.0pt;  }
-A.expandspot { 
-              color:#008000; 
-              cursor:hand; 
-              font-style:italic; 
-              x-text-underline:off; 
-              x-text-overline:off; 
-              x-text-line-through:off; 
-              text-decoration:none none none;  }
-SPAN.expandtext { 
-                 font-style:italic; 
-                 font-weight:normal; 
-                 color:#ff0000;  }
-A.dropspot { 
-            cursor:hand; 
-            color:#008000; 
-            font-style:italic; 
-            x-text-underline:off; 
-            x-text-overline:off; 
-            x-text-line-through:off; 
-            text-decoration:none none none;  }
-A.glossterm { 
-             color:#800000; 
-             cursor:hand; 
-             font-style:italic; 
-             x-text-underline:off; 
-             x-text-overline:off; 
-             x-text-line-through:off; 
-             text-decoration:none none none;  }
-SPAN.glosstext { 
-                font-style:italic; 
-                font-weight:normal; 
-                color:#0000ff;  }
-OL { 
-    margin-top:0px; 
-    margin-bottom:0px;  }
-UL { 
-    margin-top:0px; 
-    margin-bottom:0px;  }
-A:active {  }
-A:hover { 
-         x-text-underline:Off; 
-         text-decoration:none;  }
-A:link { 
-        x-text-underline:Off; 
-        text-decoration:none;  }
-A:visited { 
-           x-text-underline:Off; 
-           text-decoration:none;  }
-P.TODO { 
-        font-weight:normal; 
-        font-style:italic; 
-        font-family:"Arial Black" , sans-serif;  }
-LI.kadov-P-CTODO { 
-                  font-weight:normal; 
-                  font-style:italic; 
-                  font-family:"Arial Black" , sans-serif;  }
diff --git a/doc/salome/gui/GEOM/default_ns.css b/doc/salome/gui/GEOM/default_ns.css
deleted file mode 100755 (executable)
index 46e8b00..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-BODY { 
-      background-color:#ffffff; 
-      font-family:"Times New Roman"  , serif;  }
-H1 { 
-    font-weight:bold; 
-    font-size:24.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H1 { 
-             font-weight:bold; 
-             font-size:24.0pt;  }
-H2 { 
-    font-weight:bold; 
-    font-size:18.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H2 { 
-             font-weight:bold; 
-             font-size:18.0pt;  }
-H3 { 
-    font-weight:bold; 
-    font-size:14.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H3 { 
-             font-weight:bold; 
-             font-size:14.0pt;  }
-H4 { 
-    font-weight:bold; 
-    font-size:12.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H4 { 
-             font-weight:bold; 
-             font-size:12.0pt;  }
-H5 { 
-    font-weight:bold; 
-    font-size:10.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H5 { 
-             font-weight:bold; 
-             font-size:10.0pt;  }
-H6 { 
-    font-weight:bold; 
-    font-size:8.0pt; 
-    font-family:"Times New Roman"  , serif;  }
-LI.kadov-H6 { 
-             font-weight:bold; 
-             font-size:8.0pt;  }
-P { 
-   font-size:12.0pt; 
-   margin-top:1pt; 
-   margin-bottom:1pt; 
-   font-family:"Times New Roman"  , serif;  }
-LI.kadov-P { 
-            font-size:12.0pt;  }
-A.expandspot { 
-              color:#008000; 
-              cursor:hand; 
-              font-style:italic; 
-              x-text-underline:off; 
-              x-text-overline:off; 
-              x-text-line-through:off; 
-              text-decoration:none none none;  }
-SPAN.expandtext { 
-                 font-style:italic; 
-                 font-weight:normal; 
-                 color:#ff0000;  }
-A.dropspot { 
-            cursor:hand; 
-            color:#008000; 
-            font-style:italic; 
-            x-text-underline:off; 
-            x-text-overline:off; 
-            x-text-line-through:off; 
-            text-decoration:none none none;  }
-A.glossterm { 
-             color:#800000; 
-             cursor:hand; 
-             font-style:italic; 
-             x-text-underline:off; 
-             x-text-overline:off; 
-             x-text-line-through:off; 
-             text-decoration:none none none;  }
-SPAN.glosstext { 
-                font-style:italic; 
-                font-weight:normal; 
-                color:#0000ff;  }
-OL { 
-    margin-top:0px; 
-    margin-bottom:0px; 
-    font-family:"Times New Roman"  , serif;  }
-UL { 
-    margin-top:0px; 
-    margin-bottom:0px; 
-    font-family:"Times New Roman"  , serif;  }
-A:active {  }
-A:hover { 
-         x-text-underline:Off; 
-         text-decoration:none;  }
-A:link { 
-        x-text-underline:Off; 
-        text-decoration:none;  }
-A:visited { 
-           x-text-underline:Off; 
-           text-decoration:none;  }
-P.TODO { 
-        font-weight:normal; 
-        font-style:italic; 
-        font-family:"Arial Black"  , sans-serif;  }
-LI.kadov-P-CTODO { 
-                  font-weight:normal; 
-                  font-style:italic; 
-                  font-family:"Arial Black"  , sans-serif;  }
-ol ol { 
-       margin-top:1px;  }
-ol ul { 
-       margin-top:1px;  }
-ul ul { 
-       margin-top:1px;  }
-ul ol { 
-       margin-top:1px;  }
diff --git a/doc/salome/gui/GEOM/doxyfile.in b/doc/salome/gui/GEOM/doxyfile.in
new file mode 100755 (executable)
index 0000000..75b0c99
--- /dev/null
@@ -0,0 +1,49 @@
+#---------------------------------------------------------------------------
+# 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     = *.doc
+IMAGE_PATH        = @srcdir@/images
+
+#---------------------------------------------------------------------------
+#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
+#---------------------------------------------------------------------------
+TAGFILES = geompy_doc.tag=./geompy_doc
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/doxyfile_py.in b/doc/salome/gui/GEOM/doxyfile_py.in
new file mode 100755 (executable)
index 0000000..41a0b2f
--- /dev/null
@@ -0,0 +1,137 @@
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+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
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = YES
+FULL_PATH_NAMES        = NO
+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
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = YES
+BUILTIN_STL_SUPPORT    = NO
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related 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
+MAX_INITIALIZER_LINES  = 25
+SHOW_USED_FILES        = NO
+SHOW_DIRECTORIES       = NO
+
+#---------------------------------------------------------------------------
+# 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 warning and progress messages
+#---------------------------------------------------------------------------
+QUIET             = NO
+WARNINGS          = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+EXCLUDE_SYMLINKS       = NO
+EXAMPLE_RECURSIVE      = NO
+
+#---------------------------------------------------------------------------
+#Input related options
+#---------------------------------------------------------------------------
+INPUT             = @top_srcdir@/src/GEOM_SWIG
+FILE_PATTERNS     = geompyDC.py
+IMAGE_PATH        = @srcdir@/images
+RECURSIVE         = NO
+
+#---------------------------------------------------------------------------
+#HTML related options
+#---------------------------------------------------------------------------
+GENERATE_HTML     = YES
+HTML_OUTPUT       = ./geompy_doc
+HTML_HEADER       = @srcdir@/static/header.html
+HTML_FOOTER       = @srcdir@/static/footer.html
+#HTML_STYLESHEET  = @srcdir@/static/doxygen.css
+TOC_EXPAND        = YES
+DISABLE_INDEX     = YES
+GENERATE_TREEVIEW = NO
+
+#---------------------------------------------------------------------------
+#LaTeX related option
+#---------------------------------------------------------------------------
+GENERATE_LATEX    = NO
+
+#---------------------------------------------------------------------------
+#RTF related options
+#---------------------------------------------------------------------------
+GENERATE_RTF      = NO
+
+#---------------------------------------------------------------------------
+# 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
+
+#---------------------------------------------------------------------------
+#External reference options
+#---------------------------------------------------------------------------
+GENERATE_TAGFILE  = geompy_doc.tag
diff --git a/doc/salome/gui/GEOM/edge.htm b/doc/salome/gui/GEOM/edge.htm
deleted file mode 100755 (executable)
index 7569685..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Edge</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:324px; float:none; border-style:none; }
-img_whs5 { border:none; width:195px; height:202px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Advanced Geometrical Objects\nEdge");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image14.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Edge</h1>
-
-<p class="whs2"><b><span style="font-weight: normal;">T</b>o</span> 
- create an <span style="font-weight: bold;"><B>Edge</B></span> in the <span style="font-weight: bold;"><B>Main 
- Menu</B></span> select <span style="font-weight: bold;"><B>New Entity - &gt; 
- Build - &gt; Edge</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">You can create an <span style="font-weight: bold;"><B>Edge</B></span> 
- from two points (<span style="font-weight: bold;"><B>Point1</B></span> and <span 
- style="font-weight: bold;"><B>Point2</B></span>), being the first and the last 
- vertices of the edge.</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">&nbsp;will 
- be a</span></b> GEOM_Object (EDGE).</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeEdge(Vertex1, Vertex2)</I></span>, 
- where Vertex1 and Vertex2 are correspondingly the first and the last vertex 
- of the edge.</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 2 vertices.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/neo-obj2.png" x-maintain-ratio="TRUE" width="312px" height="324px" border="0" class="img_whs4"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/edgesn.png" x-maintain-ratio="TRUE" width="195px" height="202px" border="0" class="img_whs5"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="geometrical_objects.htm#bookmark">Advanced Geometric 
- Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/ehelp.xml b/doc/salome/gui/GEOM/ehelp.xml
deleted file mode 100755 (executable)
index 5fbcc54..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE SYSTEM "ehelpopt.dtd">
-<FILE-OPTIONS FILE-VERSION="2" FILE-KEY="a306ebd6_4870_4c36_a066_58c07171acf6">
-</FILE-OPTIONS>
-<EHELP-OPTIONS FORMAT-VERSION="1.0">
- <OPTIONS ENABLED="NO" EMBEDDED="YES" MAIN-WINDOW-ONLY="NO" COMMUNITY-NOTIFY="NO" FIRST-PAGE="NOT-SET">
- </OPTIONS>
- <BUTTON-LABEL>WebSearch
- </BUTTON-LABEL>
-</EHELP-OPTIONS>
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/ehlpdhtm.js b/doc/salome/gui/GEOM/ehlpdhtm.js
deleted file mode 100755 (executable)
index 7bcb249..0000000
+++ /dev/null
@@ -1,4239 +0,0 @@
-// eHelp® Corporation Dynamic HTML JavaScript 
-// Copyright© 1998-2003 eHelp® Corporation.All rights reserved.
-// Version=4.82
-
-// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten.
-
-//// Segment Begin -- (JavaScript 1.0)
-
-/// Section Begin - General and relative topics(JavaScript 1.0)
-
-//{{HH_SYMBOL_SECTION
-var HH_ChmFilename = "";
-var HH_WindowName = "";
-var HH_GlossaryFont = "";
-var HH_Glossary = "";
-var HH_Avenue = "";
-var HH_ActiveX = false;
-//}}HH_SYMBOL_SECTION
-
-//Begin to support previous generic parameters
-//Get the information about the browser.
-var gstrBsAgent        = navigator.userAgent.toLowerCase();
-var gnBsVer                    = parseInt(navigator.appVersion);
-
-var gbBsOpera          = (gstrBsAgent.indexOf('opera') != -1);
-var gbBsKonqueror      = (gstrBsAgent.indexOf('konqueror') != -1);
-var gbBsSafari         = (gstrBsAgent.indexOf('safari') != -1);
-var gbBsIE             = (gstrBsAgent.indexOf('msie') != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;
-var gbBsNS             = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;
-
-var gbBsMac                    = (gstrBsAgent.indexOf('mac') != -1);
-var gbBsWindows                = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1));
-var gbBsSunOS          = (gstrBsAgent.indexOf("sunos") != -1);
-
-var gbBsIE3Before      = ((gbBsIE) && (gnBsVer <= 2));
-var gbBsNS3Before      = ((gbBsNS) && (gnBsVer <= 3));
-
-var gbBsNS2                    = ((gbBsNS) && (gnBsVer <= 2));
-var gbBsNS3                    = ((gbBsNS) && (gnBsVer == 3));
-var gbBsIE300301       = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1)));
-var gbBsIE302          = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1));
-
-var gbBsNS4                    = ((gbBsNS) && (gnBsVer >= 4));
-var gbBsNS6                    = ((gbBsNS) && (gnBsVer >= 5));
-var    gbBsNS7                 = false;
-
-var gbBsIE4                    = ((gbBsIE) && (gnBsVer >= 4));
-var gbBsIE5                    = false;
-var gbBsIE55           = false;
-
-var gbBsOpera6         = false;
-var gbBsOpera7         = false;
-
-var gbBsKonqueror3     = false;
-
-
-
-gbBsIE = (navigator.appName.indexOf("Microsoft") != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;;
-if (gbBsIE)
-{
-       if (parseInt(navigator.appVersion) >= 4) {
-               gbBsIE4 = true;
-               if (gbBsIE4) {
-                       var nPos = gstrBsAgent.indexOf("msie");
-                       var strIEversion = gstrBsAgent.substring(nPos + 5);
-                       var nVersion =  parseFloat(strIEversion);
-                       if (nVersion >= 5)
-                               gbBsIE5 = true;
-                       if (nVersion >= 5.5)
-                               gbBsIE55 = true;
-               }
-       }
-}
-if (gbBsNS6)
-{
-       var nPos=gstrBsAgent.indexOf("gecko");
-       if(nPos!=-1)
-       {
-               var nPos2=gstrBsAgent.indexOf("/", nPos);
-               if(nPos2!=-1)
-               {
-                       var nVersion=parseFloat(gstrBsAgent.substring(nPos2+1));
-                       if (nVersion>=20020823)
-                               gbBsNS7=true;
-               }
-       }       
-}
-if (gbBsOpera)
-{
-       var nPos = gstrBsAgent.indexOf("opera");
-       if(nPos!=-1)
-       {
-               var nVersion = parseFloat(gstrBsAgent.substring(nPos+6));
-               if (nVersion >= 6)
-               {
-                       gbBsOpera6=true;
-                       if (nVersion >=7)
-                               gbBsOpera7=true;        
-               }
-       }
-}
-if (gbBsKonqueror)
-{
-       var nPos = gstrBsAgent.indexOf("konqueror");
-       if(nPos!=-1)
-       {
-               var nVersion = parseFloat(gstrBsAgent.substring(nPos+10));
-               if (nVersion >= 3)
-               {
-                       gbBsKonqueror3=true;
-               }
-       }
-}
-
-function insertAdjacentHTML(obj, where, htmlStr)
-{
-       if (gbBsIE || gbBsOpera7)
-       {
-               obj.insertAdjacentHTML(where, htmlStr);
-       }
-       else if (gbBsNS6 || gbBsSafari)
-       {
-               var r = obj.ownerDocument.createRange();
-               r.setStartBefore(obj);
-               var     parsedHTML = r.createContextualFragment(htmlStr);
-               
-               switch (where){
-               case 'beforeBegin':
-                       obj.parentNode.insertBefore(parsedHTML,obj);
-                       break;
-               case 'afterBegin':
-                       obj.insertBefore(parsedHTML,obj.firstChild);
-                       break;
-               case 'beforeEnd':
-                       obj.appendChild(parsedHTML);
-                       break;
-               case 'afterEnd':
-                       if (obj.nextSibling){
-                       obj.parentNode.insertBefore(parsedHTML,obj.nextSibling);
-                       } else {
-                       obj.parentNode.appendChild(parsedHTML);
-                       }
-                       break;
-               }
-       }
-}
-
-// Utilities functions.
-function BsscHasExtJs()
-{
-       if( gbBsIE3Before || gbBsNS3Before)
-               return false;
-       return true;
-}
-
-// Register event handler
-var gBsOnLoads                         = new Array();  // An array holds all the onload event handler.
-var gBsOnClicks                = new Array();  // An array holds all the onClick event handler.
-var gBsOnUnLoads               = new Array();  // An array holds all the OnUnLoad event handler.
-var gBsOnMouseOvers    = new Array();  // An array holds all the OnMouseOver event handler.
-var gBsOnMouseOuts             = new Array();  // An array holds all the OnMouseOut event handler.
-
-var gbOrignalOnMouseDown = null;
-
-function BsscRegisterOnLoad(funcHandler)
-{
-       var nLength = gBsOnLoads.length;
-       gBsOnLoads[nLength] = funcHandler;
-}
-
-function BsscRegisterOnClick(funcHandler)
-{
-       var nLength = gBsOnClicks.length;
-       gBsOnClicks[nLength] = funcHandler;
-}
-
-function BsscRegisterOnUnLoad(funcHandler)
-{
-       var nLength = gBsOnUnLoads.length;
-       gBsOnUnLoads[nLength] = funcHandler;
-}
-
-function BsscRegisterOnMouseOver(funcHandler)
-{
-       var nLength = gBsOnMouseOvers.length;
-       gBsOnMouseOvers[nLength] = funcHandler;
-}
-
-function BsscRegisterOnMouseOut(funcHandler)
-{
-       var nLength = gBsOnMouseOuts.length;
-       gBsOnMouseOuts[nLength] = funcHandler;
-}
-
-function BsGeneralOnLoad()
-{
-       if (!gbBsIE4 && !gbBsNS4)
-               return;
-
-       // Make everything visible in navigator
-       if (gbBsNS4 && !gbBsNS6) {
-               // Make some special effects items visible
-               for (var iLayer = 0; iLayer < document.layers.length; iLayer++) {
-                       document.layers[iLayer].visibility = "show";
-                       document.layers[iLayer].left = 0;
-               }
-       }
-}
-
-// If resize the netscape browser, need to reload it.
-function BsReDo()
-{
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-// End of the local functions.
-
-// The following functions are used by the html files.
-function BSSCOnLoad()
-{
-       if( !BsscHasExtJs() )
-               return;
-       for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--)
-               gBsOnLoads[nElement]();
-}
-
-function BSSCOnClick()
-{
-       if (!BsscHasExtJs()) return;
-               
-       for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--)
-               gBsOnClicks[nElement]();
-}
-
-function BSSCOnUnload()
-{
-       if (!BsscHasExtJs()) return;
-       for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--)
-               gBsOnUnLoads[nElement]();
-}
-
-function BSSCOnMouseOver()
-{
-       if (!BsscHasExtJs()) return;
-       for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--)
-               gBsOnMouseOvers[nElement]();
-}
-
-function BSSCOnMouseOut()
-{
-       if (!BsscHasExtJs()) return;
-       for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--)
-       {
-               gBsOnMouseOuts[nElement]();
-       }
-}
-// End of invocation of the event handle functions.
-
-// Add the GereralOnLoad to the onload array.
-if (typeof(BsscRegisterOnLoad) != "undefined")
-{
-       BsscRegisterOnLoad(BsGeneralOnLoad);
-}
-if (gbBsNS4&&!gbBsNS6) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = BsReDo;
-}
-//End to support previous generic parameters
-
-//Begin to support previous HHActiveX invoking
-function BsHHActivateComponents()
-{
-       if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0])))
-       {
-               var objBody = getElementsByTag(document,"BODY")[0];
-               if( typeof(objBody) == "object" )
-               {
-                       insertAdjacentHTML(objBody, "beforeEnd", '<OBJECT ID="HHComponentActivator" CLASSID="CLSID:399CB6C4-7312-11D2-B4D9-00105A0422DF" width=0 height=0></OBJECT>');
-                       if (HHComponentActivator.object)
-                               HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue);
-               }
-       }
-}
-
-function BsHHActivXOnLoad()
-{      
-       if( gbBsIE4 )
-               BsHHActivateComponents(); 
-}
-
-if( typeof(BsscRegisterOnLoad) != "undefined" )
-{
-       BsscRegisterOnLoad(BsHHActivXOnLoad);
-}
-//End to support previous HHActiveX invoking
-
-//Begin to support previous relative topics
-//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here
-var gbPopupMenuTimeoutExpired = false;
-var gbInPopupMenu = false;
-var gbPopupMenuTopicList = null;
-var gOlddocumentClick = null;
-
-//////////////////////////////////////////////////////////////////////////////////////////
-//
-// Popup Menu code
-//
-//////////////////////////////////////////////////////////////////////////////////////////
-
-var g_bIsPopupMenuInit = false;
-function _WritePopupMenuLayer()
-{
-       if (!g_bIsPopupMenuInit)
-        {
-         if (gbBsNS4&&!gbBsNS6) {
-//Do not try to write ininle styles for NS!  NS can not handle it and will not stop downloading the html page...
-               document.write("<DIV CLASS='WebHelpPopupMenu' ID='PopupMenu'></DIV>");
-         } else{
-         document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");
-         if (!(gbBsNS4&&!gbBsNS6)) {
-               document.write("<STYLE TYPE='text/css'>");
-               if (gbBsMac&&gbBsIE4) {
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; font-style:normal;font-weight:normal;text-decoration:none;}");
-               } else {
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; font-style:normal;font-weight:normal;text-decoration:none;}");
-               }
-               document.write("</STYLE>");
-          }
-          }
-         g_bIsPopupMenuInit = true;
-       }
-}
-
-//Seek for the bsscright frame 
-function _SeekFrameByName( cRoot, strName )
-{
-       if( cRoot == null )     return null;
-       if( cRoot.frames == null )      return null;
-       if( cRoot.frames[strName] != null )     return cRoot.frames[strName];
-       for (var i=0; i<cRoot.frames.length; i++)
-       {
-               var cObj = null;
-               if (!gbBsNS6) 
-                       cObj = _SeekFrameByName( cRoot.frames(i).document, strName );
-               else
-                       cObj = _SeekFrameByName( cRoot.frames[i], strName );
-               if( cObj != null )              return cObj;
-       };
-       return null;
-}
-function _GetFrameByName( cRoot, strName )
-{
-       if( cRoot == null )     return null;
-       var cRet = _SeekFrameByName(cRoot, strName);
-       if( cRet != null )      return cRet;
-       if (cRoot.parent != cRoot)
-               return _GetFrameByName( cRoot.parent, strName );
-       else
-               return null;
-}
-
-var gfn_arguments = null;
-function _PopupMenu_Invoke(fn_arguments)
-{
-       gfn_arguments = fn_arguments;
-       if (gbBsOpera6&&gbBsMac)
-       {
-               var wndOldPopupLinks= window.open(document.location.href, "popuplinks");
-               wndOldPopupLinks.close();
-               setTimeout("_PopupMenu_Invoke_2();",100);
-       }
-       else
-       {
-               _PopupMenu_Invoke_2();
-       }
-}
-
-function _PopupMenu_Invoke_2()
-{
-       var fn_arguments = gfn_arguments;
-       gfn_arguments = null;
-       
-       // Make sure we have reasonable arguments
-       var argLen = fn_arguments.length;
-       if (argLen < 3) {
-               return false;
-       }
-
-       // Check to see if we only have one target
-       var strTarget = "";
-       var targetDoc = null;
-       if (fn_arguments[1] == '') {
-               if (BSSCPopup_IsPopup()) {
-                       targetDoc = parent;
-                       strTarget = "TARGET= _parent";
-               }
-               else
-                       targetDoc = window.document;
-       } else {
-               targetDoc = _GetFrameByName( parent, fn_arguments[1] );
-
-               strTarget = "TARGET='" + fn_arguments[1] + "'";
-       }
-
-       if ((!gbBsIE4 && !gbBsNS4 && !gbBsOpera7 && !gbBsKonqueror3 &&!gbBsSafari) || ((gbBsMac) && (gbBsIE4) && (window.event.srcElement.tagName == "AREA"))) {
-       
-               var argLen      = fn_arguments.length;
-
-               // Create the window that the hyperlinks will go into
-               var nHeight = argLen * 15;
-               var nWidth = 400;
-               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";
-               strParam += ",height=" + nHeight + ",width=200";
-               strParam += ",resizable";
-
-               var wndTemp=null;
-               // Create a temporary window first to ensure the real popup comes up on top
-               if (!gbBsOpera)
-                       wndTemp = window.open("", "temp", strParam);
-
-               // Create the real popup window
-               var wndPopupLinks=null;
-               if (gbBsOpera&&gbBsMac)
-               {
-                       wndTemp = window.open(document.location.href, "temp", strParam);
-                       wndPopupLinks= window.open(document.location.href, "popuplinks", strParam);
-               }
-               else
-                       wndPopupLinks= window.open("", "popuplinks", strParam);
-               wndPopupLinks.document.open("text/html");
-
-               // Close the temporary
-               if (wndTemp)
-                       wndTemp.close();
-
-               var sHTML="<html><head></head>";
-               sHTML+="<body onBlur=\'self.focus();\'>";
-               var strParaLine = "";
-               for (var i = 0; i < (argLen - 2) / 2; i++) {
-                       strParaLine = "";
-                       strParaLine += "<a href=\"javascript:";
-                       if (gbBsIE) {
-                               strParaLine += "onBlur=null; ";
-                       }
-                       strParaLine += "opener.location=\'";
-                       strParaLine += fn_arguments[2 * i + 3];
-                       strParaLine += "\';close();\"";
-                       strParaLine += strTarget;
-
-                       strParaLine += ">";
-                       strParaLine += fn_arguments[2 * i + 2];
-                       strParaLine += "</a>";
-                       strParaLine += "<br>";
-                       sHTML+=strParaLine;
-               }
-               sHTML+="</body></html>";
-               wndPopupLinks.document.write(sHTML);
-               wndPopupLinks.document.close();
-               window.gbInPopupMenu = true;
-               if (!gbBsIE) {
-                       wndPopupLinks.focus();
-               }
-               return false;
-       }
-
-       if (((argLen < 5) && ((isNaN(fn_arguments[2])) || (gbPopupMenuTopicList == null))) ||
-               ((argLen < 4) && ((!isNaN(fn_arguments[2])) && (gbPopupMenuTopicList != null)))) {
-               // Get the place that we will be putting the topic into
-               var strURL = "";
-               if (isNaN(fn_arguments[2]) ||  (gbPopupMenuTopicList == null)) {
-                       strURL = fn_arguments[3];
-               }
-               else    {
-                       strURL = gbPopupMenuTopicList[fn_arguments[2]].strURL;
-               }
-
-               if (targetDoc != null) {
-                       targetDoc.location.href = strURL;
-               }
-               else {
-                       if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")
-                               window.open(strURL, fn_arguments[1]);
-                       else
-                               window.open(strURL);
-               }               
-               window.gbInPopupMenu = true;
-               return false;
-       }
-       
-       var strMenu = "";
-       if (gbBsNS4&&!gbBsNS6) {
-               strMenu = '<TABLE BORDER="1" CELLSPACING=0 CELLPADDING=3 BGCOLOR="#c0c0c0">';
-       } else {
-               strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';
-               if (gbBsMac) {
-                       strMenu += ' CELLPADDING=4';
-               } else {
-                       strMenu += ' CELLPADDING=2';
-               }       
-               strMenu += ' BGCOLOR=#c0c0c0>';
-       }
-       // Add each of the items
-       var i = 2;
-       while (i <= argLen - 1) {
-               strMenu += '<TR><TD><NOBR>'
-               // If the destination is a number then look it up in the topic list
-               if (isNaN(fn_arguments[i]) ||  (gbPopupMenuTopicList == null)) {
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '"' + strTarget;
-               } else {
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + gbPopupMenuTopicList[fn_arguments[i]].strURL + '"' + strTarget;
-               }
-               strMenu += ' onclick="PopupMenu_HandleClick(event);"';
-               strMenu += ' onmouseover="PopupMenu_Over(event);"';
-               strMenu += ' onmouseout="PopupMenu_Out(event);"';
-               strMenu += '>';
-               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';
-               } else {
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + '</SPAN>';
-               }
-               strMenu += '</A></DIV></NOBR></TD></TR>';
-
-               if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) {
-                       i += 2;
-               } else {
-                       i += 1;
-               }
-       }
-       strMenu += "</TABLE>";
-
-       if (gbBsMac) {
-       // totally hack. because ie5 in mac need something. </TABLE> is one of them. mac is mad.
-               strMenu +="<TABLE></TABLE>";
-       }
-
-       var layerPopup = null;
-       var stylePopup = null;
-       var nEventX = 0;
-       var nEventY = 0;
-       var nWindowWidth = 0;
-       if (gbBsIE4 || gbBsOpera7) {
-
-               layerPopup = getElement("PopupMenu");
-               layerPopup.innerHTML = strMenu;
-               stylePopup = layerPopup.style;
-
-               _BSPSGetClientSize();
-
-               // Get the position of the item causing the event (relative to its parent)
-               nEventX = window.event.clientX;
-               nEventY = window.event.clientY;
-
-               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {
-                       nEventY += document.body.scrollTop + 10;
-               } else {
-                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;
-               }
-               stylePopup.top = nEventY;
-               
-               var nPopupWidth = layerPopup.scrollWidth;
-               if (gbBsMac) {
-                       nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup.
-               }
-               if (nEventX + nPopupWidth + 20 > gBsClientWidth) {
-                       if (gBsClientWidth - nPopupWidth < 5) {
-                               stylePopup.left = 5;
-                       } else {
-                               stylePopup.left = gBsClientWidth - nPopupWidth - 5;
-                       }
-               } else {
-                       stylePopup.left = nEventX + document.body.scrollLeft + 20;
-               }
-
-               stylePopup.visibility = "visible";
-               if (!gOlddocumentClick && document.onclick)
-                       gOlddocumentClick = document.onclick;
-               document.onclick = PopupMenu_HandleClick;
-
-       } else if (gbBsNS6 || gbBsKonqueror3||gbBsSafari) {
-               layerPopup = getElement("PopupMenu");
-               layerPopup.style.visibility = "hidden";
-       
-               if (gbBsNS6)
-               {
-                       var e = fn_arguments[0];
-                       nEventX = e.pageX;
-                       nEventY = e.pageY;
-               }
-               else
-               {
-                       nEventX = window.event.clientX;
-                       nEventY = window.event.clientY;
-               }
-               _BSPSGetClientSize();
-               layerPopup.innerHTML = strMenu;
-
-               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {
-                       nEventY += 20;
-               } else {
-                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;
-               }
-
-               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {
-                               nEventX = 5;
-                       } else {
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;
-                       }
-               } else {
-                       nEventX += 20;
-               }
-               layerPopup.style.top = nEventY;
-               layerPopup.style.left = nEventX;
-               // set again to avoid the stupid frash in netscape 6.
-               layerPopup.innerHTML = strMenu;
-               layerPopup.style.visibility = "visible";
-               //window.captureEvents(Event.MOUSEDOWN);
-               if (!gOlddocumentClick && document.onclick)
-                       gOlddocumentClick = document.onclick;
-               window.onclick = PopupMenu_HandleClick;
-       }
-       else if (gbBsNS4) {
-               layerPopup = document.layers.PopupMenu;
-               layerPopup.visibility = "hide";
-               stylePopup = layerPopup.document;
-               stylePopup.write(strMenu);
-               stylePopup.close();
-               var e = fn_arguments[0];
-               nEventX = e.pageX;
-               nEventY = e.pageY;
-               _BSPSGetClientSize();
-               if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) {
-                       nEventY += 20;
-               } else {
-                       nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20;
-               }
-               layerPopup.top = nEventY;
-
-               if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) {
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) {
-                               nEventX = 5;
-                       } else {
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20;
-                       }
-               } else {
-                       nEventX += 20;
-               }
-
-               layerPopup.left = nEventX;
-
-               layerPopup.visibility = "show";
-
-               window.captureEvents(Event.MOUSEDOWN);
-               if (!gOlddocumentClick && document.onmousedown)
-                       gOlddocumentClick = document.onmousedown;
-               window.onmousedown = PopupMenu_HandleClick;
-       }
-
-       window.gbInPopupMenu = true;
-       window.gbPopupMenuTimeoutExpired = false;
-       setTimeout("PopupMenu_Timeout();", 100);
-       return false;
-}
-
-function PopupMenu_Timeout()
-{
-       window.gbPopupMenuTimeoutExpired = true;
-}
-
-function PopupMenu_Over(e)
-{
-    if (gbBsIE4||gbBsOpera7)
-               e.srcElement.className = "PopupOver";
-    else if (gbBsNS6)
-               e.target.parentNode.className = "PopupOver";
-       return;
-}
-
-function PopupMenu_Out(e)
-{
-    if (gbBsIE4||gbBsOpera7)
-               e.srcElement.className = "PopupNotOver";
-    else if (gbBsNS6)
-               e.target.parentNode.className = "PopupNotOver";
-       return;
-}
-
-function PopupMenu_HandleClick(e)
-{
-       if (window.gbPopupMenuTimeoutExpired) {
-               window.gbInPopupMenu = false;
-               if (gbBsNS4 && !gbBsNS6) {
-                       window.releaseEvents(Event.MOUSEDOWN);
-               }
-
-               var layerPopup = null;
-               if (gbBsNS4&&!gbBsNS6) {
-                       layerPopup = document.layers.PopupMenu;
-                       layerPopup.visibility = "hide";
-               } else {
-                       layerPopup = getElement("PopupMenu");
-                       layerPopup.style.visibility = "hidden";
-               }
-       
-               if (gOlddocumentClick)
-               {
-                       if (gbBsNS4 && !gbBsNS6)
-                               document.onmousedown = gOlddocumentClick;
-                       else
-                               document.onclick = gOlddocumentClick;
-               }
-       }
-       return;
-}
-
-function BSSCPopup_ClickMac()
-{
-       if ((!DHTMLPopupSupport()) && (gbBsIE4 || gbBsOpera7))
-       {       
-               var bClickOnAnchor = false;
-               var el;
-               if ((window.event != null) &&
-                   (window.event.srcElement != null))
-               {
-                   el = window.event.srcElement;
-                       while (el != null)
-                       {
-                               if ((el.tagName == "A") || (el.tagName == "AREA"))      {
-                                       bClickOnAnchor = true;
-                                       break;
-                               }
-                               if (el.tagName == "BODY") {
-                                       break;
-                               }
-                               el = getParentNode(el);
-                       }
-               }
-               if (BSSCPopup_IsPopup())
-               {
-                       if (!bClickOnAnchor) {
-                               parent.window.gPopupWindow = null;
-                               self.close();
-                       }
-               }
-               else
-               {
-                       bClosePopupWindow = true;
-                       if ((bClickOnAnchor) &&
-                               (el.href) &&
-                           ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1)))
-                       {
-                               bClosePopupWindow = false;
-                       }
-                       if (bClosePopupWindow)
-                       {
-                               if (window.gPopupWindow != null && !window.gPopupWindow.closed )
-                               {
-                                       window.gPopupWindow.close();
-                               }
-                       }
-               }
-       }
-}
-
-function BsPopupOnClick()
-{
-       if (!gbBsIE4 && !gbBsOpera7)
-               return;
-
-       BSSCPopup_ClickMac();
-}
-
-function _BSSCOnError(message)
-{
-       if(-1 != message.indexOf("denied") 
-               || -1 != message.indexOf("Object required"))
-        return true;
-}
-
-//End to support previous relative topics
-
-/// Section End - General and relative topics (JavaScript 1.0)
-
-/// Section Begin  - Popup (JavaScript 1.0)
-//Begin to support previous popup functions
-
-//variables used to isolate the browser type
-var gBsStyVisShow      = null;
-var gBsStyVisHide      = null;
-var gBsClientWidth     = 640;
-var gBsClientHeight = 480;
-
-// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others.
-var gBRateH_W          = 0.618; // 1.618 Golden cut.
-var gBMaxXOfParent     = 0.8; 
-var gBMaxYOfParent     = 0.8;
-var gBscrollHeight   = 16;
-var gBscrollWidth   =  16;
-var gBpermitXDelta     = 3;
-var gBpermitYDelta     = 3;
-
-
-var arrayPopupURL = new Array();
-var arrayAbsPopupURL = new Array();
-
-var arrayDirty = new Array();
-
-function setAbsPopupURL(nIndex, strURL)
-{
-       arrayAbsPopupURL[nIndex] = strURL;
-}
-
-function getAbsPopupURL(nIndex)
-{
-       if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null;
-       else 
-               return arrayAbsPopupURL[nIndex];
-}
-
-function getPopupURL(nIndex)
-{
-       if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null;
-       else 
-               return arrayPopupURL[nIndex];
-}
-
-function getPopupID(nIndex)
-{
-       return gstrPopupID + nIndex;
-}
-
-function getPopupShadowID(nIndex)
-{
-       return gstrPopupShadowID + nIndex;
-}
-
-function getPopupTopicID(nIndex)
-{
-       return gstrPopupTopicID + nIndex;
-}
-
-function getPopupIFrameID(nIndex)
-{
-       return gstrPopupIFrameID + nIndex;
-}
-
-function getPopupIFrameName(nIndex)
-{
-       return gstrPopupIFrameName + nIndex;
-}
-
-
-function getPopupTopicStyle(nIndex)
-{
-       return getElement(getPopupTopicID(nIndex)).style;
-}
-
-function getPopupShadowStyle(nIndex)
-{
-       return getElement(getPopupShadowID(nIndex)).style;
-}
-
-function getPopupIFrame(nIndex)
-{
-       if (gbBsNS6)
-               return eval("window.frames['" + getPopupIFrameName(nIndex) + "']");
-       else
-               return eval("document.frames['" + getPopupIFrameName(nIndex) + "']");
-}
-
-function getPopupDivStyle(nIndex)
-{
-       return getElement(getPopupID(nIndex)).style;
-}
-
-function getPopupIFrameStyle(nIndex)
-{
-       return getElement(getPopupIFrameID(nIndex)).style;
-}
-
-
-function findDiv(strURL)
-{
-       for (var i = 0; i < arrayPopupURL.length; i ++ ) {
-               if (arrayPopupURL[i] == strURL) {
-                       return i;
-               }
-       }
-       return -1;
-}
-
-var gnToken = -1;
-function takeToken()
-{
-       gnToken ++;
-       if (gnToken > 10000) gnToken = 0;
-       return gnToken;
-}
-
-function IsValidToken(nToken)
-{
-       return (gnToken == nToken);
-}
-
-function addDiv(strURL)
-{
-       for (var i = 0; i < arrayPopupURL.length; i ++) {
-               if (arrayPopupURL[i] == null) {
-                       arrayPopupURL[i] = strURL;
-                       return i;
-               }
-       }       
-       arrayPopupURL[i] = strURL;
-       arrayDirty[i] = true;
-       return i;
-}
-
-function setDirty()
-{
-       for (var i = 0; i < arrayPopupURL.length; i ++ )
-               arrayDirty[i] = true;
-}
-
-function IsDirty(nIndex)
-{
-       if (nIndex == -1)
-               return true;
-       else 
-               if (arrayDirty.length > nIndex) 
-                       return arrayDirty[nIndex];
-               else
-                       return true;
-}
-
-function hideAll()
-{
-       for (var i = 0; i < arrayPopupURL.length; i ++ )
-       {
-               getPopupDivStyle(i).visibility = gBsStyVisHide;
-               getPopupIFrameStyle(i).visibility = gBsStyVisHide;
-       }
-}
-
-function getCurrentPopupIFrame()
-{
-       for (var i = 0; i < arrayPopupURL.length; i ++)
-               if (getPopupDivStyle(i).visibility == gBsStyVisShow)
-                       return getPopupIFrame(i);
-       return null;
-}
-
-function setClear(nIndex)
-{
-       if (nIndex != -1)
-               arrayDirty[nIndex] = false;
-}
-
-function _BSSCCreatePopupDiv(strURL)
-{
-       var nIndex = findDiv(strURL);
-       if (nIndex == -1 ) {
-               nIndex = addDiv(strURL);
-               BsPopup_CreateDiv(nIndex);
-       }
-       else {
-               if (IsDirty(nIndex)) {
-                       if("object" == typeof(getPopupIFrame(nIndex).document))
-                               getPopupIFrame(nIndex).document.location.href = strURL;
-               }
-       }
-       return nIndex;
-}
-
-//Here is the browser type 
-function _BSPSGetBrowserInfo()
-{
-       if (gbBsNS4&&!gbBsNS6)
-       {
-               gBsStyVisShow   = "show";
-               gBsStyVisHide   = "hide";
-       }
-       else
-       {
-               gBsStyVisShow   = "visible";
-               gBsStyVisHide   = "hidden";
-       }
-}
-
-_BSPSGetBrowserInfo();
-
-//Get client size info
-function _BSPSGetClientSize()
-{
-       if (gbBsNS4||gbBsKonqueror3||gbBsSafari)
-       {
-               gBsClientWidth  = innerWidth;
-               gBsClientHeight = innerHeight;
-       }
-       else if (gbBsIE4 || gbBsOpera7)
-       {
-               gBsClientWidth  = document.body.clientWidth;
-               gBsClientHeight = document.body.clientHeight;
-       }
-}
-
-var gstrPopupID = 'BSSCPopup';
-var gstrPopupShadowID = 'BSSCPopupShadow';
-var gstrPopupTopicID = 'BSSCPopupTopic';
-var gstrPopupIFrameID = 'BSSCPopupIFrame';
-var gstrPopupIFrameName = 'BSSCPopupIFrameName';
-
-var gstrPopupSecondWindowName = 'BSSCPopup';
-
-var gPopupWindow = null;
-var gnPopupClickX = 0;
-var gnPopupClickY = 0;
-
-var gnPopupScreenClickX = 0;
-var gnPopupScreenClickY = 0;
-
-var gbPopupTimeoutExpired = false;
-
-function DHTMLPopupSupport()
-{
-       if (((gbBsIE4) && (!gbBsMac))||gbBsOpera7|| gbBsNS7) {
-               return true;
-       }
-       return false;
-}
-
-function BSSCPopup_IsPopup()
-{
-       if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) {
-               return true;
-       } else if ((gbBsNS4 || gbBsIE4 || gbBsOpera7) && (this.name.indexOf(gstrPopupID) != -1)) {
-               return true;
-       } else {
-               return false;
-       }
-}
-
-// If there is a hyperlink in a popup window, display the hyperlink in
-// the original window. (bsscright)
-if (BSSCPopup_IsPopup() && !gbBsIE4 && !gbBsOpera7) {
-       document.write("<base target=\"bsscright\">");
-}
-
-// Local functions.
-function BsPopup_CreateDiv(nIndex)
-{
-       if(!DHTMLPopupSupport())
-               return;
-       // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone.
-       var strPopupDiv = "<DIV ID='" + getPopupID(nIndex) + "' STYLE='position:absolute; top:-100; left:0; z-index:600; visibility:hidden;'>";
-       strPopupDiv += "<DIV ID='" + getPopupShadowID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#C0C0C0;\"></DIV>";
-       strPopupDiv += "<DIV ID='" + getPopupTopicID(nIndex) + "' STYLE=\"position:absolute;top:0; left:0;  background-color:#FFFFFF;border:1px #000000 outset;\">";
-       strPopupDiv += "<IFRAME title=\"Popup Window\" ID='" + getPopupIFrameID(nIndex) + "' name='" + getPopupIFrameName(nIndex) + "' src = '" + getPopupURL(nIndex) + "' frameborder=0 scrolling=auto></IFRAME>";
-       strPopupDiv += "</DIV></DIV>";
-
-       var objBody = getElementsByTag(document, "BODY")[0];
-       if( typeof(objBody) != "object" )
-               return;
-
-       insertAdjacentHTML(objBody, "beforeEnd", strPopupDiv);
-}
-
-function handleLoadNS()
-{
-       if (this.id)
-       {
-               var nIndex = parseInt(this.id.substring(gstrPopupIFrameID.length));
-               BSSCPopup_PostWork(nIndex);
-       }
-}
-
-function BSSCPopup_PostWork(nIndex)
-{
-       getPopupDivStyle(nIndex).visibility = gBsStyVisShow;
-       getPopupIFrameStyle(nIndex).visibility =gBsStyVisShow;
-
-       setClear(nIndex);
-       window.gbPopupTimeoutExpired = true;
-
-       BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document);
-       if (gbBsNS6)
-               getPopupIFrame(nIndex).document.body.addEventListener("click",BSSCPopupClicked,false);
-       else
-               getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked;
-
-       if (!gbOrignalOnMouseDown && document.onmousedown)
-               gbOrignalOnMouseDown = document.onmousedown;
-
-       if (gbBsNS6)
-               document.addEventListener("mousedown", BSSCPopupParentClicked,false);
-       else
-               document.onmousedown = BSSCPopupParentClicked;
-}
-
-function BSSCPopup_Timeout(nIndex, nToken)
-{
-    if (!IsValidToken(nToken)) return;
-
-       if (gbBsNS6||((getPopupIFrame(nIndex).document.readyState == "complete") &&
-               (getPopupIFrame(nIndex).document.body != null))) {
-               BSSCPopup_PostWork(nIndex);
-       } else {
-               setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100);
-       }
-}
-
-// VH 08/10/00 
-// do not change target to parent if the href is using javascript
-function BSSCPopup_ChangeTargettoParent(tagsObject)
-{
-       var collA = getElementsByTag(tagsObject, "A");
-       BSSCPopup_ChangeTargettoParent2(collA);
-
-       var collIMG = getElementsByTag(tagsObject,"IMG");
-       BSSCPopup_ChangeTargettoParent2(collIMG);
-}
-
-function BSSCPopup_ChangeTargettoParent2(colls)
-{
-       if (colls != null)  {
-               for (var j = 0; j < colls.length; j ++ )
-               {
-                       var strtemp = colls[j].href;
-                       if (strtemp)
-                       {
-                               strtemp = strtemp.toLowerCase();
-                               if (strtemp.indexOf("javascript:") == -1)
-                               if (colls[j].target == "")
-                                       colls[j].target = "_parent";
-                       }
-               }
-       }
-}
-
-function BSPSPopupTopicWinHelp(strURL)
-{
-       _BSSCPopup(strURL);
-       return;
-}
-
-function _BSSCPopup(strURL, width, height)
-{
-       var cuswidth = 0;
-       var cusheight = 0;
-       if ("undefined" != typeof(width) && "undefined" != typeof(height)) {
-               cuswidth = width;
-               cusheight= height;
-       }
-       
-       if (DHTMLPopupSupport()) {
-               var nToken = takeToken(); // take  token first.
-               var nIndex = _BSSCCreatePopupDiv(strURL);
-               window.gbPopupTimeoutExpired = false;
-               var ntWidth = gBsClientWidth;
-               var ntHeight = gBsClientHeight;
-               _BSPSGetClientSize();
-               if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) {
-                       setDirty();
-               }
-
-               if (IsDirty(nIndex)) {
-                       if (gbBsMac) {
-                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight  +")", 400);
-                       } else {
-                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100);
-                       }
-               }
-               else {
-                       MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight);
-               }
-       } else {
-               _BSSCPopup2(strURL, cuswidth, cusheight);
-       }
-       return;
-}
-
-if (gbBsIE55)
-{
-       var ehlpdhtm_fOldBefureUnload = window.onbeforeunload;
-       var gnBsUnload=0;
-       window.onbeforeunload = window_BUnload;
-}
-       
-function window_BUnload()
-{
-       gnBsUnload++;
-       if (gnBsUnload>1)
-               return;
-       for (var i = 0; i < arrayPopupURL.length; i ++)
-               removeThis(document.all(getPopupID(i)));
-       arrayPopupURL.length = 0;       
-       if (ehlpdhtm_fOldBefureUnload)
-               ehlpdhtm_fOldBefureUnload();
-}
-
-function _BSSCPopup2(strURL, width, height)
-{
-       if (gbBsOpera6&&gbBsMac)
-       {
-               var wmTemp = window.open(document.location.href, gstrPopupSecondWindowName);
-               wmTemp.close();
-               setTimeout("_BSSCPopup3(\""+strURL+"\","+width+","+height+");",100);
-       }
-       else
-               _BSSCPopup3(strURL, width, height);
-}
-               
-function _BSSCPopup3(strURL, width, height)
-{
-       if (window.name == gstrPopupSecondWindowName) {
-               window.location = strURL;
-       } else {
-               if (!gbBsMac || !gbBsNS4) {
-                       BSSCHidePopupWindow();
-               }
-               var nX = 0;
-               var nY = 0;
-               var nHeight = 300;
-               var nWidth = 400;
-               if (width > 0 && height > 0) {
-                       nHeight = height;
-                       nWidth = width;
-               }
-               _BSPSGetClientSize();
-
-               nX = window.gnPopupScreenClickX;
-               nY = window.gnPopupScreenClickY;
-
-               if (nY + nHeight + 40 > screen.availHeight) {
-                       nY = screen.availHeight - nHeight - 40;
-               }
-               if (nX + nWidth + 40 > screen.availWidth) {
-                       nX = screen.availWidth - nWidth - 40;
-               }
-
-               // Launch a separate window
-               var strParam="titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes";
-               if (gbBsNS) {
-                       if (gbBsNS6) {
-                               strParam += ",Height=" + nHeight + ",Width=" + nWidth;
-                               strParam += ",screenX=" + nX + ",screenY=" + nY;
-                               strParam += ",dependent=yes";
-                       }
-                       else {
-                               strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth;
-                               strParam += ",screenX=" + nX + ",screenY=" + nY;
-                               strParam += ",dependent=yes";
-                       }
-               }
-               else {
-                       strParam += ",height=" + nHeight + ",width=" + nWidth;
-                       strParam += ",left=" + nX + ",top=" + nY;
-               }
-               if (gbBsSafari)
-               {
-                       if (window.gPopupWindow)
-                               window.gPopupWindow.close();            
-                       window.gPopupWindow = window.open(strURL, "", strParam);
-                       window.gPopupWindow.name = gstrPopupSecondWindowName;
-                       window.gPopupWindow.moveTo(nX, nY);
-                       widnow.gPopupWindow.document.location.reload();
-               }       
-               else
-               {
-                       var wmTemp=null;
-                       if (gbBsKonqueror3)
-                       {
-                               if (window.gPopupWindow)
-                                       window.gPopupWindow.close();
-                       }
-                       if (gbBsOpera&&gbBsMac)
-                       {
-                               wmTemp= window.open(document.location.href, "Temp", strParam);
-                       }
-                       window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam);
-                       if (!gbBsIE)
-                               window.gPopupWindow.focus();
-                               
-                       if (wmTemp)
-                               wmTemp.close();
-               }
-
-               if (gbBsNS4)
-                       setEventHandle();
-               else if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3)
-                       setTimeout("setPopupFocus();", 100);
-       }
-       return;
-}
-
-function setEventHandle()
-{
-       window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUR);
-       window.gPopupWindow.onclick = NonIEPopup_HandleClick;
-       window.gPopupWindow.onblur = NonIEPopup_HandleBlur;
-}
-
-function setPopupFocus()
-{
-       window.gPopupWindow.focus();
-}
-
-function NonIEPopup_HandleBlur(e)
-{
-       window.gPopupWindow.focus();
-}
-
-function NonIEPopup_HandleClick(e)
-{
-       // Because navigator will give the event to the handler before the hyperlink, let's
-       // first route the event to see if we are clicking on a Popup menu in a popup.
-       document.routeEvent(e);
-
-       // If a popup menu is active then don't do anything with the click
-       if (window.gPopupWindow.gbInPopupMenu) {
-               window.gPopupWindow.captureEvents(Event.CLICK);
-               window.gPopupWindow.onclick = NonIEPopup_HandleClick;
-               return false;
-       }
-
-       // Close the popup window
-       if(e.target.href)
-       {
-               if(e.target.href.indexOf("javascript:")==-1) 
-               {
-                       if (e.target.target=="")
-                               window.location.href = e.target.href;
-                       else
-                               window.open(e.target.href, e.target.target);
-                       this.close();
-               }
-       } 
-       else
-               this.close();
-       return false;
-}
-
-function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight)
-{      
-       if (!window.getPopupIFrame(nIndex).document) {
-               _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight);
-               return;
-       }
-       
-    if (!IsValidToken(nToken)) return;
-
-       if (gbBsNS6)
-       {
-               setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.
-               BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);
-               return;
-       }
-       
-       if ((window.getPopupIFrame(nIndex).document.readyState == "complete") &&
-               (window.getPopupIFrame(nIndex).document.body != null)) {
-                       if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe.
-                               window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);
-                               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
-                       }
-                       else
-                               {
-                                       setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url.
-                                       BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight);
-                               }
-       } else {
-               setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
-       }
-}
-
-function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight)
-{
-       if (window.gbPopupTimeoutExpired) return;
-
-    if (!IsValidToken(nToken)) return;
-
-       getPopupDivStyle(nIndex).visibility = gBsStyVisHide;
-       getPopupIFrameStyle(nIndex).visibility = gBsStyVisHide;
-
-       // Determine the width and height for the window
-       _BSPSGetClientSize();
-
-       var size = new BSSCSize(0, 0);
-
-       if (cuswidth <= 0 || cusheight <= 0)
-               BSSCGetContentSize(window.getPopupIFrame(nIndex), size);
-       else {
-               size.x = cuswidth;
-               size.y = cusheight;
-       }
-
-       // Determine the width and height for the window
-       var nWidth = size.x;
-       var nHeight = size.y;
-
-       // for small popup size, we should allow any size.
-       // The popup size should be ok if bigger than 0
-       if (nWidth < 0 || nHeight < 0) return;  // there must be something terribly wrong.              
-
-       getPopupDivStyle(nIndex).width = nWidth;
-       getPopupDivStyle(nIndex).height = nHeight;
-
-       getPopupShadowStyle(nIndex).width = nWidth;
-       getPopupShadowStyle(nIndex).height = nHeight;
-       getPopupTopicStyle(nIndex).width = nWidth;
-       getPopupTopicStyle(nIndex).height = nHeight;
-       if (gbBsIE55)
-       {
-               getPopupShadowStyle(nIndex).width = nWidth + 2;
-               getPopupShadowStyle(nIndex).height = nHeight + 2;
-               getPopupTopicStyle(nIndex).width = nWidth + 2;
-               getPopupTopicStyle(nIndex).height = nHeight + 2;
-       }
-
-       getPopupIFrameStyle(nIndex).width = nWidth;
-       getPopupIFrameStyle(nIndex).height = nHeight;
-       if (gbBsIE55 || gbBsNS6)
-       {
-               getPopupIFrameStyle(nIndex).top = 0;
-               getPopupIFrameStyle(nIndex).left = 0;
-       }
-       
-       var strURL = getPopupURL(nIndex);
-       if (strURL.indexOf("#") != -1&&gbBsNS6)
-               getPopupIFrame(nIndex).location.reload();
-       else if (strURL.indexOf("#") != -1||gbBsNS6)
-               getPopupIFrame(nIndex).location.href = strURL;  // reload again, this will fix the bookmark misunderstand in IE5.
-               
-       MoveDivAndShow(nIndex, nToken, cuswidth, cusheight);
-}
-
-function getScrollLeft()
-{
-       if (document.body.scrollLeft)
-               return document.body.scrollLeft;
-       else if (window.pageXOffset)
-               return window.pageXOffset;
-       else
-               return 0;
-}
-
-function getScrollTop()
-{
-       if (document.body.scrollTop)
-               return document.body.scrollTop;
-       else if (window.pageYOffset)
-               return window.pageYOffset;
-       else
-               return 0;
-}
-
-
-function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight)
-{
-       if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again.
-                       window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex);
-                       setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200);
-                       return;
-       }
-
-       // Determine the position of the window
-       var nClickX = window.gnPopupClickX;
-       var nClickY = window.gnPopupClickY;
-       var nTop = 0;
-       var nLeft = 0;
-
-       var nWidth = parseInt(getPopupDivStyle(nIndex).width);
-       var nHeight = parseInt(getPopupDivStyle(nIndex).height);
-
-       if (nClickY + nHeight + 20 < gBsClientHeight + getScrollTop()) {
-               nTop = nClickY + 10;
-       } else {
-               nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20;
-       }
-       if (nClickX + nWidth < gBsClientWidth + getScrollLeft()) {
-               nLeft = nClickX;
-       } else {
-               nLeft = (getScrollLeft() + gBsClientWidth) - nWidth - 8;
-       }
-
-       if (nTop < getScrollTop()) nTop  = getScrollTop() + 1;
-       if (nLeft< getScrollLeft())  nLeft = getScrollLeft() + 1;
-
-       getPopupDivStyle(nIndex).left = nLeft;
-       getPopupDivStyle(nIndex).top = nTop;
-
-       // Set the location of the background blocks
-       getPopupShadowStyle(nIndex).left = 6;
-       getPopupShadowStyle(nIndex).top = 6;
-       if (gbBsIE55)
-       {
-               getPopupShadowStyle(nIndex).left = 4;
-               getPopupShadowStyle(nIndex).top = 4;
-       }
-
-       if (gbBsMac&&gbBsIE4) {
-               // Total hack on the iMac to get the IFrame to position properly
-               getPopupIFrameStyle(nIndex).pixelLeft = 100;
-               getPopupIFrameStyle(nIndex).pixelLeft = 0;
-               // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it
-               getPopupIFrame(nIndex).window.BSSCOnLoad();
-       }
-
-       if (gbBsNS6&&IsDirty(nIndex))
-               getElement(getPopupIFrameID(nIndex)).addEventListener("load", handleLoadNS, false);
-       else
-               BSSCPopup_Timeout(nIndex , nToken );
-       return;
-}
-
-function       BSSCSize(x, y)
-{
-       this.x = x;
-       this.y = y;
-}
-
-function BSSCGetContentSize(thisWindow, size)
-{
-       if (!gbBsIE4 && !gbBsOpera7 && !gbBsNS4)
-               return;
-
-       if ((gbBsMac&&gbBsIE4)||gbBsNS4||gbBsOpera7) {
-               size.x = 320;
-               size.y = 180;
-               return;
-       }
-
-       // Resize the width until it is wide enough to handle the content
-       // The trick is to start wide and determine when the scrollHeight changes
-       // because then we know a scrollbar is necessary. We can then go back
-       // to the next widest size (for no scrollbar)
-
-       var ClientRate = gBsClientHeight / gBsClientWidth;
-
-       
-       var GoldenSize = new BSSCSize(0,0);
-       GoldenSize.x = gBsClientWidth * gBMaxXOfParent;
-       GoldenSize.y = gBsClientHeight *gBMaxYOfParent ;
-
-       if (ClientRate > gBRateH_W) {
-               GoldenSize.y = GoldenSize.x * gBRateH_W;
-       }
-       else {
-               GoldenSize.x = GoldenSize.y / gBRateH_W;
-       }
-
-       // Try to using parent specified max x.
-       var x = 0;
-       var maxgoldx = GoldenSize.x;
-       var maxx = gBsClientWidth * gBMaxXOfParent;
-       
-       // This double resize causes the document to re-render (and we need it to)
-       if (!gbBsIE5)
-               thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4.
-               
-       thisWindow.resizeTo(1, 1);
-       thisWindow.resizeTo(1, 1);
-       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);
-       thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight);
-               
-       var miny = thisWindow.document.body.scrollHeight + gBscrollHeight;
-       
-       if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can
-       {
-               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);
-               thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight);
-               
-               miny =  thisWindow.document.body.scrollHeight + gBscrollHeight;
-               maxy = gBsClientHeight * gBMaxYOfParent;
-               
-               if (miny > maxy) { // the popup must have a scroll, OK let it be.
-                       miny = maxy;
-                       size.x = maxx;
-                       size.y = maxy;
-                       thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little.
-               }
-               else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent.
-                       size.y = miny;
-                       
-                       //  downsize from maxx , now I try to using binary divide.
-                       x = maxx;
-                       deltax = -maxx/2;
-                       //j = 0;
-                       while (true) {
-                               x = x + deltax;
-                               thisWindow.resizeTo(x, miny);
-                               thisWindow.resizeTo(x, miny);
-                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate;
-                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter
-                                       deltax = Math.abs(deltax) /2;
-                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter
-                                       deltax = -Math.abs(deltax) /2;
-                               else 
-                                       // the y is close enough to wanted.
-                                       break;
-                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.
-                                       break;
-                       }
-                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;
-                       size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight;     
-                       thisWindow.document.body.scroll = 'no';
-               }
-       }
-       else {
-               if (thisWindow.document.body.scrollWidth > maxgoldx) {
-                       size.x = maxx; 
-                       size.y = miny;  
-                       thisWindow.document.body.scroll = 'yes';
-               }
-               else {
-                       //  downsize from maxgoldx , now I try to using binary divide.
-                       x = maxgoldx;
-                       deltax = -maxgoldx/2;
-                       while (true) {
-                               x = x + deltax;
-                               thisWindow.resizeTo(x, miny);
-                               thisWindow.resizeTo(x, miny);
-                               diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W;
-                               if (diffy >  gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter
-                                       deltax = Math.abs(deltax) /2;
-                               else if (diffy <  -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter
-                                       deltax = -Math.abs(deltax) /2;
-                               else 
-                                       // the y is close enough to wanted.
-                                       break;
-                               if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore.
-                                       break;
-                       }
-                       size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth;
-                       size.y = thisWindow.document.body.scrollHeight ;
-                       thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little.
-                       thisWindow.resizeTo(size.x, size.y);
-                       if (thisWindow.document.body.scrollWidth > size.x)
-                       {
-                               size.x = thisWindow.document.body.scrollWidth;
-                       }
-                       if (thisWindow.document.body.scrollHeight > size.y)
-                       {
-                               size.y = thisWindow.document.body.scrollHeight;
-                       }
-               }
-       }
-       thisWindow.resizeTo(size.x, size.y);
-       thisWindow.resizeTo(size.x, size.y);
-       return;
-}
-
-function BSSCPopupParentClicked()
-{
-       if (!window.gbPopupTimeoutExpired) {
-               return false;
-       }
-       
-       document.onmousedown = gbOrignalOnMouseDown;
-
-       // Simply hide the popup
-       hideAll();
-
-       window.gbPopupTimeoutExpired = false;
-
-       return true;
-}
-
-function isInsideHyperLink(obj)
-{
-       if (obj&&obj!=getParentNode(obj))
-       {
-               if (obj.tagName=="A"||obj.tagName=="IMG")
-                       return true;
-               else
-                       return isInsideHyperLink(getParentNode(obj));
-       }
-       else
-               return false;
-}
-
-function BSSCPopupClicked(e)
-{
-       if (!window.gbPopupTimeoutExpired) {
-               return false;
-       }
-
-       var popupIFrame = getCurrentPopupIFrame();
-       if (popupIFrame == null) {
-               return true;
-       }
-
-       if (gbBsIE4 && (!((popupIFrame.window.event != null) &&
-               (popupIFrame.window.event.srcElement != null) &&
-               isInsideHyperLink(popupIFrame.window.event.srcElement)))) {
-               document.onmousedown = gbOrignalOnMouseDown;
-               
-               // Simply hide the popup
-               hideAll();
-               window.gbPopupTimeoutExpired = false;
-               return true;
-       }
-       else if (gbBsNS6 && (!((e != null) &&
-                       (e.target!= null) && isInsideHyperLink(e.target))))
-       {
-               document.addEventListener("mousedown", gbOrignalOnMouseDown,false);
-               // Simply hide the popup
-               hideAll();
-               window.gbPopupTimeoutExpired = false;
-               return true;            
-       }
-}
-
-//trace the mouse over's position for hotspot
-function  BSPSPopupOnMouseOver(event)
-{
-       if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) {
-               window.gnPopupClickX = event.clientX + getScrollLeft();
-               window.gnPopupClickY = event.clientY + getScrollTop();
-               window.gnPopupScreenClickX = event.screenX;
-               window.gnPopupScreenClickY = event.screenY;
-       } else if (gbBsSafari) {
-               window.gnPopupClickX = event.clientX + getScrollLeft();
-               window.gnPopupClickY = event.clientY + getScrollTop();
-               window.gnPopupScreenClickX = event.screenX + window.screenX;
-               window.gnPopupScreenClickY = event.screenY + window.screenY;
-       } else if (gbBsNS4) {
-               window.gnPopupClickX = event.pageX - window.pageXOffset;
-               window.gnPopupClickY = event.pageY - window.pageYOffset;
-               window.gnPopupScreenClickX = event.screenX - window.pageXOffset;
-               window.gnPopupScreenClickY = event.screenY - window.pageYOffset;
-       }
-}
-
-function BSSCHidePopupWindow()
-{
-       if (window.gPopupWindow != null) {
-               if (gbBsNS4) {
-                       if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) {
-                               window.gPopupWindow.close();
-                               window.gPopupWindow = null;
-                       }
-               }
-       }
-       return;
-}
-
-// Add the PopupOnClick to the onclick array.
-if (typeof(BsscRegisterOnClick) != "undefined")
-{
-       BsscRegisterOnClick(BsPopupOnClick);
-}
-//End to support previous popup functions
-
-/// Section End  - Popup (JavaScript 1.0)
-
-/// Section Begin - Embedded Stub (JavaScript 1.0)
-
-function BSSCCreatePopupDiv()
-{
-       return;
-}
-
-function WritePopupMenuLayer()
-{
-       if (BsscHasExtJs()) {_WritePopupMenuLayer();}
-}
-
-function BSSCPopup(strURL, width, height)
-{
-       var re = new RegExp("'", 'g');
-       strURL = strURL.replace(re, "%27");
-
-       if (BsscHasExtJs())     { 
-               _BSSCPopup(strURL, width, height);
-       }else{
-               //Create a temporary window first to ensure the real popup comes up on top
-               var wndTemp = null;
-               if (!gbBsNS3) {
-                       wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");
-               }
-               // Create the real popup window
-               var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400");
-               // Close the temporary
-               if (!gbBsNS3) {
-                       wndTemp.close();
-               } else {
-                       wndPopup.focus();
-               }
-       }
-}
-
-var gbWndTemp = null, gbWndPopupLinks = null;
-var gbstrParaTotal = "";
-
-function PopupMenu_Invoke()
-{
-       if (typeof(wfRelatedTopic) == 'function' && typeof(IsFlashSupported) == 'function')
-       {
-               if (Number(gsSkinVersion) > 2 && IsFlashSupported())
-               {
-                       return wfRelatedTopic(PopupMenu_Invoke.arguments);
-               }
-       }
-       if (BsscHasExtJs()) {
-               return _PopupMenu_Invoke(PopupMenu_Invoke.arguments);
-       }
-       if (gbBsNS3Before || gbBsIE3Before )    {
-               var argLen      = PopupMenu_Invoke.arguments.length;
-               if (argLen < 5) {
-                       window.document.location.href = PopupMenu_Invoke.arguments[3];
-                       return false;
-               }
-               gbWndTemp = null;
-               gbWndPopupLinks = null;
-               gbstrParaTotal = "";
-               for (var i = 0; i < (argLen - 2) / 2; i++) {
-                       var strParaLine = "";
-                       if (gbBsNS2){
-                               strParaLine += "<a href=\"";
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];
-                               strParaLine += "\">"
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];
-                               strParaLine += "</a>";
-                       } else {
-                               strParaLine += "<a href=\"javascript:";
-                               strParaLine += "gotoUrl(\'";
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 3];
-                               strParaLine += "\');\"";
-                               if (PopupMenu_Invoke.arguments[1] != '') {
-                                       strParaLine += " TARGET='" + PopupMenu_Invoke.arguments[1] + "'";
-                               }
-                               strParaLine += ">";
-                               strParaLine += PopupMenu_Invoke.arguments[2 * i + 2];
-                               strParaLine += "</a>";
-                       }
-                       strParaLine += "<br>";
-                       gbstrParaTotal += strParaLine;
-               }
-               var nHeight = argLen * 15;
-               var nWidth = 400;
-               var strParam = "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=auto";
-               strParam += ",height=" + nHeight + ",width=200,resizable";
-               
-               //Create a temporary window first to ensure the real popup comes up on top
-               //var wndTemp = null;
-               if (!gbBsNS3) {
-                       gbWndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4");
-               } 
-               gbWndPopupLinks = window.open("", "popuplinks", strParam);
-
-               setTimeout("Wait_PopupMenuReady()", 100);
-       }
-       return true;
-}
-
-function Wait_PopupMenuReady() 
-{
-       if (gbWndPopupLinks != null && "object" == typeof(gbWndPopupLinks.document)) {
-               PopupMenu_InvokeReady();
-       }
-       else 
-               setTimeout("Wait_PopupMenuReady()", 100);
-}
-
-function PopupMenu_InvokeReady()
-{
-       if (gbWndPopupLinks != null) {
-               gbWndPopupLinks.document.open("text/html");
-               gbWndPopupLinks.document.write("<html><head>");
-               if (gbBsNS2) {
-                       gbWndPopupLinks.document.write("<base href=\"" + location +"\">");
-               } else {
-                       //YJ: IE301,302 and NS3.x works fine
-                       gbWndPopupLinks.document.write("<");
-                       gbWndPopupLinks.document.write("script>");
-                       gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}");
-                       gbWndPopupLinks.document.write("<");
-                       gbWndPopupLinks.document.write("/script>");
-               }
-               gbWndPopupLinks.document.write("</head><body onBlur=\'self.focus();\'>");
-               gbWndPopupLinks.document.write(gbstrParaTotal);
-               gbWndPopupLinks.document.write("</body></html>");
-               gbWndPopupLinks.document.close();
-
-               // Close the temporary
-               if (!gbBsNS3 && gbWndTemp != null) {
-                       gbWndTemp.close();
-               }else {
-                       gbWndPopupLinks.focus();
-               }
-
-               return true;
-       }
-       return false;
-}
-
-/// Section End - Embedded Stub (JavaScript 1.0)
-
-//// Segment End -- (JavaScript 1.0)
-
-//// Segment Begin -- (JavaScript 1.2)
-/// Section Begin  - kadov DHTM (JavaScript 1.2)
-
-//Begin to support extended and dropdown text effects.
-function kadovIsParagraph(el)
-{
-       return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false;
-}
-
-function kadovInitEachChild(el)
-{      
-       for(var i=0; i<getChildNodes(el).length; i++)
-       {
-               var child = getChildNodes(el)[i];
-               if( child.tagName == "SCRIPT" || child.tagName == "!" )
-                       continue;
-
-               if( child.id != "" )
-               {
-                       // to wipe out the onload effects
-                       if (gbBsIE4&&!gbBsMac)
-                       {
-                               var onLoadEffect = child.style.getAttribute( "x-on-pageload" );
-                               if( (onLoadEffect != null) && (onLoadEffect > "") )
-                                       child.style.setAttribute( "x-on-pageload", "" );
-                       }
-                       
-                       var href = child.getAttribute("href")
-                       if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 )
-                               kadovFilePopupInit(child.id); // Init for Popup
-                       else if( child.className == "dropspot" || child.className == "expandspot" || 
-                                        child.className == "glossterm" )
-                               kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text
-                       else if( child.className == "trigger")
-                               kadovInitTrigger(child.id);// Init for Trigger
-                       else
-                       {
-                               kadovInitEffects(child.id);// Init for DHTML effects
-                               CEngine.SetOneTargetInitialState( child.id );
-                       }
-               }
-               
-               if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") )
-                       child.start = "mouseover";// to start a AVI file. fileopen doesn't work
-
-               kadovInitEachChild(child);
-       }
-}
-
-function kadovRetrieveTextInner(el)
-{      
-       var x = "";
-       if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" ))
-               return x;
-
-       if( kadovIsParagraph(el) )
-       {
-               var strNewID = " ";
-               if( el.id != "" )
-                       strNewID += "id=" + el.id + "_NewSpan ";
-               x = "<span" + strNewID + "style='" + el.style.cssText + "'>" + el.innerHTML + "</span>";
-       }
-       else
-       {
-               for(var i=0; i<getChildNodes(el).length; i++)
-                       x += kadovRetrieveTextInner( getChildNodes(el)[i] );
-       }
-       return x;
-}
-
-function kadovRetrieveCleanHTML( strRawHTML, strTagOpen, strTagClose, nDistance )
-{      
-       var nTagOpen = strRawHTML.indexOf( strTagOpen, 0 );
-       if( nTagOpen < 0 )
-               return strRawHTML;
-
-       var nTagClose = strRawHTML.indexOf( strTagClose, nTagOpen);
-       if( nTagClose < nTagOpen )
-               return strRawHTML;
-               
-       if( typeof(nDistance) == "number" && nDistance > 0 )
-               if( (nTagClose - nTagOpen) != nDistance )
-                       return strRawHTML;
-               
-       var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ;
-       return  kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose );
-}
-
-function kadovAdjustObjectTag(strRawHTML, nStartPos)
-{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings
-       
-       //Is there any DTC?
-       var strDTCTagOpen = '<!--Metadata type="DesignerControl" startspan';
-       var strDTCTagClose = '<!--Metadata type="DesignerControl" endspan-->';
-       var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos );
-       if( nDTCTagOpen < 0 )
-               return strRawHTML;
-       var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen );
-       if( nDTCTagClose < nDTCTagOpen)
-               return strRawHTML; // no Design Time Controls;
-               
-       //Is the DTC HTML Help Control?
-       var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11';
-       var strRTObjTagClose = '</OBJECT>';
-       var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen );
-       if( nRTObjTagOpen < nDTCTagOpen )
-               return strRawHTML;
-       var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen );
-       if( nRTObjTagClose < nRTObjTagOpen )
-               return strRawHTML; // is not a HTML help control
-               
-       // Is it a related Topics html help control?
-       var strRTObjLabel = '<PARAM NAME=\"Command\" VALUE=\"Related Topics';
-       if( strRawHTML.indexOf(strRTObjLabel, nRTObjTagOpen) < 0 )
-               return strRawHTML;
-       
-       // does the commented object tag contain a items parameters             
-       var strRTItemsOpen = '<param name="Items" value="';
-       var strRTItemsClose = '$$**$$" >';
-       var strRTItemsClose2 = '$$**$$">';
-
-       var nRTItemsOpen = strRawHTML.indexOf(strRTItemsOpen, nDTCTagOpen);
-       if( nRTItemsOpen < nDTCTagOpen )
-               return strRawHTML;
-       var nRTItemsClose = strRawHTML.indexOf(strRTItemsClose, nRTItemsOpen);
-       if (nRTItemsClose == -1)
-               nRTItemsClose = strRawHTML.indexOf(strRTItemsClose2, nRTItemsOpen);
-       if( nRTItemsClose < nRTItemsOpen )
-               return strRawHTML;
-               
-       // found a items string
-       var strItems = strRawHTML.substring( nRTItemsOpen + strRTItemsOpen.length, nRTItemsClose);
-       if( strItems.length < 1 )
-               return strRawHTML;
-       
-       // to reconstruct the item(s) param tag(s)
-       var strItemsArray = strItems.split('$$**$$');
-       if( strItemsArray.length < 1 )
-               return strRawHTML;
-       var strRunTimeItemParam = "";
-       for( var i = 0; i < strItemsArray.length; i++ )
-       {
-               strRunTimeItemParam += '<PARAM  NAME="Item' + (i+1);
-               strRunTimeItemParam += '"' + '  VALUE="';
-               strRunTimeItemParam += strItemsArray[i];
-               strRunTimeItemParam += '">';
-       }
-       
-       // to insert the reconstructed item params into runtime object tag
-       var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length);
-       return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length);
-}
-
-function kadovTextPopupOnLoad( el )
-{
-       if( typeof(el) == "string" )
-               el = getElement(el);
-
-       var src = el.getAttribute( "x-use-popup" );
-       var bNeedMove=true;
-       if(!src&&el.id)
-       {
-               for (var i=0;i<gPopupData.length;i++)
-                       if (gPopupData[i].el==el.id)
-                       {
-                               src=gPopupData[i].popupId;
-                               bNeedMove=false;
-                               break;
-                       }
-       }
-       if(!src)
-               src = el.style.getAttribute( "x-use-popup" );   
-       if (!src)       
-               return 0;
-
-       var name = src;
-       if( src.substr(0,1) == "#" ) 
-               name = src.substr(1, src.length-1);
-       var srcDiv = getElement(name);
-       if( !srcDiv )
-               return 1;
-
-       if (bNeedMove)
-       {
-               var type = el.getAttribute( "x-popup-type" );
-               if (!type)
-                       type = el.style.getAttribute("x-popup-type");
-               if (!type)              
-                       return 1;               
-               var setup = el.getAttribute( "x-tmp-setup" );
-               var newId = name;
-               if( newId.indexOf( "_tmp") <= 0 )
-                       newId += "_tmp";
-
-               if( !setup)
-               {
-                       el.setAttribute( "x-tmp-setup", 1 );
-
-                       if( type == "pulldown"  )
-                       {
-                               var strAdjust = kadovAdjustObjectTag(srcDiv.innerHTML,0);
-                               var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");
-                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");
-                               
-                               //work around the bug in HH.exe that highlight the phrases when use Search tab
-                               //this approach is just removing the <FONT...> tag inserted by Microsoft in the runtime
-                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<FONT color=#", "\">", 52);
-                               
-                               var strStyle = " style='display:none; position:relative;";
-                               var newDiv = "<div class=droptext id=" + newId + strStyle + "'>" + strCleanHTML + "</div>";
-
-                               removeThis(srcDiv); // empty the original DIV tag
-                               var elParentPra = kadovFindParentParagraph(el);
-                               if( elParentPra )
-                                       insertAdjacentHTML(elParentPra, "afterEnd", newDiv );
-                       }
-                       else if( type == "expanding"  )
-                       {
-                               var inner = kadovRetrieveTextInner(srcDiv);
-                               if( inner == "" )
-                                       inner = srcDiv.innerHTML;
-                               var strAdjust = kadovAdjustObjectTag(inner,0);
-                               var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, "<!--", "-->");
-                               strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "<SCRIPT", "/SCRIPT>");
-                               var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext";
-                               var newSpan = "<span class=" + strClassName + " style='display: none;' id=" + newId + ">&nbsp;" + strCleanHTML + "</span>";
-                               removeThis(srcDiv); // empty the original DIV tag
-                               insertAdjacentHTML(el, "afterEnd", newSpan );
-                       }
-               }
-       }
-       else
-       {
-               srcDiv.style.display = "none";
-       }
-       return 0;
-}
-
-function getElementsByTag(obj,sTagName)
-{
-       if(obj.getElementsByTagName)
-               return obj.getElementsByTagName(sTagName);
-       else if(obj.all)
-               return obj.all.tags(sTagName);
-       return null;
-}
-
-function getElement(sID)
-{
-       if(document.getElementById)
-               return document.getElementById(sID);
-       else if(document.all)
-               return document.all(sID);
-       return null;
-}
-
-function getParentNode(obj)
-{
-       if(obj.parentNode)
-               return obj.parentNode;
-       else if(obj.parentElement)
-               return obj.parentElement;
-       return null;
-}
-
-function getChildNodes(obj)
-{
-       if(obj.childNodes)
-       {
-               var children = new Array();
-               for (var i = 0; i < obj.childNodes.length; i++)
-               {
-                       if (obj.childNodes[i].nodeType == 1)
-                               children[children.length] = obj.childNodes[i];
-               }
-               return children;
-       }
-       else if(obj.children)
-               return obj.children;
-       return null;    
-}
-
-function removeThis(obj)
-{
-       if(obj.parentNode)
-               obj.parentNode.removeChild(obj);
-       else
-               obj.outerHTML="";
-}
-
-function kadovTextPopup( el )
-{
-       if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3 )
-               return;
-
-       var bNeedMove=true;
-       
-       if (window.event)
-               window.event.cancelBubble = true;
-
-       if( typeof(el) == "string" )
-               el = getElement(el);
-
-       if (!el||el==window)
-               return;
-       
-       var src = el.getAttribute( "x-use-popup" );
-       if(!src&&el.id)
-       {
-               for (var i=0;i<gPopupData.length;i++)
-                       if (gPopupData[i].el==el.id)
-                       {
-                               src=gPopupData[i].popupId;
-                               bNeedMove=false;
-                               break;
-                       }
-       }
-       if(!src)
-               src = el.style.getAttribute( "x-use-popup" );   
-       if(!src)
-               return;
-               
-       var name = src;
-       if( src.substr(0,1) == "#" ) 
-       if (bNeedMove)
-               name = src.substr(1, src.length-1) + "_tmp";
-       else
-               name = src.substr(1, src.length-1);
-
-       var srcDiv = getElement(name);
-       if( !srcDiv )
-               return;
-
-       if( srcDiv )
-       {
-               if( srcDiv.style.display == "" )
-                       srcDiv.style.display = "none";
-               else
-               {
-                       srcDiv.style.display = "";
-                       if( typeof(srcDiv.bInitialized) == "undefined" )
-                       {
-                               srcDiv.bInitialized = true;
-                               kadovInitEffects(name);
-                               kadovInitEachChild(srcDiv);
-                       }
-               }
-       }
-       if(gbBsIE4)
-               event.returnValue=false;
-       return;
-}
-
-function kadovFindParentParagraph( el )
-{
-       if( typeof(el) == "string" )
-               el = getElement(el);
-       if( (!el) || el.tagName == "BODY" )
-               return null;
-       if( kadovIsParagraph(getParentNode(el)) )
-               return getParentNode(el);
-       else
-               return kadovFindParentParagraph( getParentNode(el) );
-}
-
-//Begin HTML code invoked function
-function kadovRegisterEventHandler( obj, strEvent, strEventHandler )
-{
-       if( !gbBsIE4 )
-               return;
-       CCSSP.RegisterEventHandler( obj, strEvent, strEventHandler );
-}
-
-function textPopupData(el, popupId)
-{
-       this.el = el;
-       this.popupId = "#"+popupId;
-}
-
-var gPopupData = new Array();
-
-function kadovTextPopupInit( el, popupId)
-{
-       if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3)
-               return;
-               
-       if( typeof(el) == "string" )
-       {
-               if (popupId)
-               {
-                       gPopupData[gPopupData.length]=new textPopupData(el, popupId);
-               }
-               el = getElement(el);
-       }
-               
-       if( el != null )
-       {
-               CCSSP.RegisterEventHandler( el, "onclick", "kadovTextPopup(\"" + el.id +"\");" );
-               CCSSP.RegisterEventHandler( window, "onload", "kadovTextPopupOnLoad(\"" + el.id +"\");" );
-       }
-}
-//End HTML code invoked function
-
-//End to support extended and dropdown text effects.
-
-//Begin to convert iWrite format to RoboEditor Format for DHTML effects
-function kadovInitTriggersInHead( )
-{
-  if( Object.xDelayedInitElements )
-  {
-     var x = Object.xDelayedInitElements;
-     for(i=0; i<x.length; i++)
-       kadovInitTrigger( x[i] );
-  }
-}
-
-//Begin HTML code invoked function
-function kadovFilePopupInit( el )
-{
-       if( typeof(el) == "string" )
-               el = getElement(el);
-
-       if( el != null )
-               CCSSP.RegisterEventHandler( el, "onmouseover", "BSPSPopupOnMouseOver(event);" );
-}
-
-function kadovInitTrigger( element )
-{
-       if( !gbBsIE4 )
-               return;
-       var srcElement = element;
-       if( typeof(srcElement) == "string" )
-       {
-               srcElement = getElement(element,0);
-               if(srcElement == null)
-                       return;
-       }
-       
-       if( !kadovIsParentVisible(srcElement) )
-               return;
-
-       var targets = srcElement.getAttribute( "x-targets" );
-       if (!targets)
-               targets = srcElement.style.getAttribute("x-targets");
-       if (!targets)
-               return; 
-       var arrOneTarget = targets.split( "," );
-       for( var i = 0; i < arrOneTarget.length; i ++ )
-               bsscFXInit( element, arrOneTarget[i], null, null, null, null );
-}
-
-function kadovIsParentVisible( el )
-{
-       if( typeof(el) == "string" )
-               el = getElement(el);
-       if( (!el) || el.tagName == "BODY" )
-               return true;
-       if( el.style.display == 'none' ) //el.visibility == 'hidden' || 
-               return false;
-       else
-               return kadovIsParentVisible( getParentNode(el) );
-}
-
-function kadovInitEffects( element )
-{
-       if( !gbBsIE4 )
-               return;
-       var srcElement = element;
-       if( typeof(srcElement) == "string" )
-       {
-               srcElement = getElement(element,0);
-               if(srcElement == null)
-                       return;
-       }
-       
-       if( !kadovIsParentVisible(srcElement) )
-               return;
-       
-       kadovInitEffect( srcElement, "x-on-hover" );
-       kadovInitEffect( srcElement, "x-on-pageclick" );
-       kadovInitEffect( srcElement, "x-on-pageload" );
-       kadovInitEffect( srcElement, "x-on-trigger-1" );
-       kadovInitEffect( srcElement, "x-on-trigger-2" );
-}
-//End HTML code invoked function
-
-function kadovInitEffect( element, prop )
-{
-       var values = null;
-       if( element.getAttribute( "currentStyle" )  && element.currentStyle.getAttribute)
-               values = element.currentStyle.getAttribute( prop );
-       else  if (element.style.getAttribute)
-               values = element.style.getAttribute( prop );
-       if( !values )
-               return;
-
-       var functions = new Array();
-       var nIdx = 0, nStart = 0;
-       var nNext = values.indexOf( "\)", 0);
-       while( nNext >= 0 && nNext < values.length )
-       {
-               functions[nIdx] = values.substr( nStart, nNext-nStart+1);
-               nStart = nNext + 1;
-               nIdx++;
-               nNext = values.indexOf( "\)", nStart);
-       }
-               
-       for( var i=0; i<functions.length; i++)
-       {
-               var id = element.getAttribute( "id" );
-               var translatedProp = kadovTranslateProp(prop);
-
-               var lp = functions[i].indexOf( "(" );
-               var fnname = functions[i].substring(0, lp);
-               var srcargs = functions[i].substring(lp+1, functions[i].length-1);
-               
-               var nClickTimes = 1;
-               var arrForClickCount = srcargs.split( "," );
-               for( var j = 0; j < arrForClickCount.length; j++ )
-               {// to locate and get the "clicks=99" settings
-                       var nPageClick = arrForClickCount[j].indexOf("clicks");
-                       if( nPageClick >= 0 )
-                       {
-                               nPageClick = arrForClickCount[j].indexOf("=");
-                               if( nPageClick > 0 )
-                               {
-                                       nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1;
-                                       break;
-                               }
-                       }
-               }
-               var args = srcargs;
-               if( j < arrForClickCount.length )
-               {// to strip out the "clicks=99" from the arguments string
-                       args = "";
-                       for( var k = 0; k < arrForClickCount.length; k ++ )
-                       {
-                               if( k != j )
-                               {
-                                       args += arrForClickCount[k];
-                                       if( k < arrForClickCount.length - 1 )
-                                               args += ",";
-                               }
-                       }
-               }
-               bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes );
-       }
-}
-
-function kadovTranslateProp( prop )
-{
-       switch( prop )
-       {
-       case "x-on-hover" :     return "bsschover";
-       case "x-on-pageclick" : return "bsscpageclick";
-       case "x-on-pageload" :  return "bsscpageload";
-       case "x-on-trigger-1" : return "bssctrigger1";
-       case "x-on-trigger-2" : return "bssctrigger2";
-       }
-       return null;
-}
-//End to convert iWrite format to RoboEditor Format for DHTML effects
-
-//Begin the definition of one entry to DHTML effects
-function bsscFXInit( trigger_ID, target_ID, event_type, 
-       action_type, action_setting, event_addional )
-{
-       if( (!gbBsWindows && !gbBsSunOS  && !(gbBsMac&&gbBsIE5)) || typeof(target_ID) != "string" )//MUST have a target_ID
-               return; // we don't support Navigator yet
-       
-       if( typeof(event_type) == "string" )
-               event_type = event_type.toLowerCase();
-       if( typeof(action_type) == "string" )
-               action_type = action_type.toLowerCase();
-       if( typeof(action_setting) == "string" )
-                action_setting = action_setting.toLowerCase();
-       
-       // to get the target element then add it to the target list
-       var eleTarget = CCSSP.GetObject( target_ID );
-       if( (eleTarget != null) && (event_type != null) && (action_type != null) )
-       {
-               CEngine.AddOneTarget( target_ID, eleTarget );
-               CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional);
-       }
-       
-       // to validate the trigger_ID parameter
-       if( typeof(trigger_ID) == "string" && trigger_ID != "" )
-               CEngine.BuildTriggerObject( trigger_ID, target_ID );
-}      
-//End the definition of one entry to DHTML effects
-
-/// Section End  - kadov DHTM (JavaScript 1.2)
-
-/// Section Begin  - CCSSP DHTM (JavaScript 1.2)
-
-//Begin JavaScript libary for cross-platform positioning object.
-function CCSSP(){} // constructor of CCSSP class
-
-CCSSP.GetObject = function( obj )
-{//convert object name string or reference into a valid object reference
-       if( typeof(obj) == "object" )
-               return obj;
-       else if( typeof(obj) == "string" && obj != "")
-       {
-               if( gbBsNS4 )
-                       return eval("document." + obj);
-               else
-                       return eval("document.all(\"" + obj + "\")");
-       }
-       else
-               return null;
-}
-
-CCSSP.MoveObjectTo = function(obj, x, y)
-{//positioning an object at a specific pixel coordinate
-       if( gbBsNS4 )
-               obj.moveTo(x,y);
-       else
-       {
-               obj.style.pixelLeft = x;
-               obj.style.pixelTop = y;
-       }
-}
-
-CCSSP.MoveObjectBy = function(obj, dx, dy)
-{//moveing a object by x and/or y pixel
-       if( gbBsNS4 )
-               obj.moveBy(dx,dy);
-       else
-       {
-               obj.style.pixelLeft += dx;
-               obj.style.pixelTop += dy;
-       }
-}
-
-CCSSP.SetObjectBGColor = function(obj, color)
-{//set the background color of an object
-       if( gbBsNS4 )
-               obj.bgColor = color;
-       else
-               obj.style.backgroundColor = color;
-}
-
-CCSSP.ShowObject = function(obj, bShow)
-{// set the object to be visible or invisible
-       if( gbBsNS4 )
-               obj.visibility = (bShow == true) ? 'show' : 'hide';
-       else
-               obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space.
-}
-
-CCSSP.GetObjectLeft = function(obj)
-{// retrieve the x coordinate of a posionable object
-       if( gbBsNS4 )
-               return obj.left;
-       else
-               return obj.style.pixelLeft;
-}
-
-CCSSP.GetObjectTop = function(obj)
-{// retrieve the y coordinate of a posionable object
-       if( gbBsNS4 )
-               return obj.top;
-       else
-               return obj.style.pixelTop;
-}
-
-CCSSP.GetObjectContainLeft = function(obj)
-{// retrieve the x coordinate of a posionable object relative to it's parent element
-       if( gbBsNS4 )
-               return obj.pageX;
-       else
-       {
-               if( obj == document.body )
-                       return obj.clientLeft;
-               else
-                       return obj.offsetLeft;
-       }
-}
-
-CCSSP.GetObjectWindowLeft = function(obj)
-{// retrieve the x coordinate of a posionable object relative to browser window
-       if( gbBsNS4 )
-               return obj.pageX;
-       else
-       {
-               var nOffsetWindowLeft = 0;
-               for(var element = obj; element; element = element.offsetParent)
-                       nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element);
-               return nOffsetWindowLeft;
-       }
-}
-
-CCSSP.GetObjectContainTop = function(obj)
-{// retrieve the y coordinate of a posionable object relative to it's parent element
-       if( gbBsNS4 )
-               return obj.pageY;
-       else
-       {
-               if( obj == document.body )
-                       return obj.clientTop;
-               else
-                       return obj.offsetTop;
-       }
-}
-
-CCSSP.GetObjectWindowTop = function(obj)
-{// retrieve the y coordinate of a posionable object relative to browser window
-       if( gbBsNS4 )
-               return obj.pageY;
-       else
-       {
-               var nOffsetWindowTop = 0;
-               for(var element = obj; element; element = element.offsetParent)
-                       nOffsetWindowTop += CCSSP.GetObjectContainTop(element);
-               return nOffsetWindowTop;
-       }
-}
-
-CCSSP.GetObjectHeight = function(obj)
-{// retrieve the height of a posionable object
-       if( gbBsNS4 )
-               return obj.clip.height;
-       else
-               return obj.offsetHeight;
-}
-
-CCSSP.GetObjectWidth = function(obj)
-{// retrieve the width of a posionable object
-       if( gbBsNS4 )
-               return obj.clip.width;
-       else
-               return obj.offsetWidth;
-}
-
-CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler )
-{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined
-       if (gbBsNS4 && !gbBsNS6)
-               return ;
-               
-       var oldHandler = "";
-
-       if (gbBsMac &&gbBsIE4&&!gbBsIE5)
-       {
-               if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown")
-               { //search for <SCRIPT> tag which define the event handler
-                       for( var i = 0; i < document.scripts.length; i++ ) 
-                       {
-                               var script = document.scripts[i];
-                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )
-                               {
-                                       oldHandler = script.innerHTML;
-                                       break;
-                               }
-                       }
-               }
-       }
-       else
-       {
-               var oldInlineHandler = srcObj[rawEventName.toLowerCase()];
-               if( oldInlineHandler != null && typeof(oldInlineHandler) != "undefined")
-               {
-                       var functionDefinition = oldInlineHandler.toString();
-                       var bodyStart = functionDefinition.indexOf( "{" );
-                       var bodyEnd = functionDefinition.lastIndexOf( "}" );
-                       if( bodyStart > 0 || bodyEnd > bodyStart )
-                               oldHandler = functionDefinition.substr( bodyStart + 1, bodyEnd - bodyStart - 2 );
-               }
-               else if( gbBsIE4 )
-               { //search for <SCRIPT> tag which define the event handler
-                       for( var i = 0; i < document.scripts.length; i++ ) 
-                       {
-                               var script = document.scripts[i];
-                               if( (script.htmlFor == srcObj.id || script.htmlFor == srcObj ) && script.event == rawEventName )
-                               {
-                                       oldHandler = script.innerHTML;
-                                       break;
-                               }
-                       }
-               }
-       }
-       if( oldHandler.indexOf(funcHandler) >= 0 )
-               return;// to prevent register the funtion twice.
-
-       if( gbBsNS4 ) // only "onload, onresize, onfocus" apply to window
-       {// other raw events will apply to layer
-               var noOn = rawEventName.substring(2, rawEventName.length);
-               if( typeof(noOn) == "string" && noOn.length > 3 ) {
-                       if (srcObj.captureEvents)
-                               srcObj.captureEvents( Event[noOn.toUpperCase()] );
-               }
-       }
-       
-       var newHandler = oldHandler;
-       if( newHandler.length == 0 )
-               newHandler = funcHandler;
-       else
-               newHandler += "; " + funcHandler;
-       
-       srcObj[rawEventName.toLowerCase()] = new Function( newHandler );
-}
-
-CCSSP.GetWindowHeight = function()
-{// retrieve the height of available content in browser window
-       if( gbBsNS4 )
-               return window.innerHeight;
-       else
-               return document.body.clientHeight;
-}
-
-CCSSP.GetWindowBottom = function()
-{// retrieve the bottom postion of browser window
-       if( gbBsNS4 )
-               return window.outerHeight + window.pageYOffset;
-       else
-               return document.body.clientHeight + document.body.scrollTop;
-}
-
-CCSSP.GetWindowWidth = function()
-{// retrieve the width of available content in browser window
-       if( gbBsNS4 )
-               return window.innerWidth;
-       else
-               return document.body.clientWidth;
-}
-
-CCSSP.GetWindowRight = function()
-{// retrieve the right postion of browser window
-       if( gbBsNS4 )
-               return window.outerWidth + window.pageXOffset;
-       else
-               return document.body.clientWidth + document.body.scrollLeft;
-}
-
-CCSSP.TrimString = function( objString, subtrim )
-{// to trim the "subtrim" in the beginning and ending of a string object
-       if( typeof(subtrim) != "string" || subtrim == null )
-               return objString;
-       var strHead = objString.substring(0, 1);
-       var strRear = objString.substring(objString.length-1, objString.length);
-       if( strHead != subtrim && strRear != subtrim )
-               return objString;
-       
-       var spacePos = objString.indexOf(subtrim);
-       if( spacePos < 0 )
-               return objString;
-       else if( spacePos == objString.length - 1 )
-               return objString.substring(0, spacePos);
-       else
-       {
-               var newString = objString.substring( spacePos + 1, objString.length);
-               return CCSSP.TrimString( newString, subtrim );
-       }
-}
-
-CCSSP.TrimSpace = function( objString )
-{
-       var Trim1 = CCSSP.TrimString( objString, " ");
-       return CCSSP.TrimString( Trim1, "\'");
-}
-
-CCSSP.GetEventElement = function( navEventObject )
-{// to get the element who fired the current event
-       if(gbBsNS4) 
-               if (gbBsNS6)
-                       return null;
-               else
-                        navEventObject.target;
-       else
-               return event.srcElement;
-}
-
-CCSSP.PrepareFilter = function( Obj )
-{//to prepare for making the filter work
-       Obj.style.filter = "";
-       if( Obj.style.width != "" || Obj.style.height != "" || Obj.style.position == "absolute" )
-               return;
-       Obj.style.height = CCSSP.GetObjectHeight(Obj);
-}
-
-CCSSP.IsDescendant = function( progenitor, progeny )
-{
-       if( typeof(progeny) == "undefined" || progeny == null )
-               return false;
-       else if( progeny == progenitor )
-               return true; 
-       else if( progeny.id == progenitor.id ) 
-               return true; 
-       else if( getParentNode(progeny) == getParentNode(progenitor))
-               return false;
-       else
-               return CCSSP.IsDescendant( progenitor, getParentNode(progeny));
-}
-
-CCSSP.IsTextTag = function( Obj )
-{
-       if( typeof( Obj.tagName ) == "undefined" )
-               return false;
-       return( Obj.tagName.indexOf("H") == 0 || Obj.tagName == "P" || 
-                       Obj.tagName == "FONT" || Obj.tagName == "SPAN" );
-}
-
-//End JavaScript libary for cross-platform positioning object.
-
-/// Section End  - CCSSP DHTM (JavaScript 1.2)
-
-/// Section Begin  - CCSSP DHTM 1 (JavaScript 1.2)
-
-//Begin the definition of class CTrigger
-function CTrigger( TriggerElement )
-{
-       // object : the trigger element. Never be null. 
-       this.eleTrigger = TriggerElement;
-       
-       // number : the click counter number: only 3 values: 0,1,2;
-       this.nCounter = 0; 
-       
-       //object as associative array of string:
-       // the associate target ID strings; one element at least.                       
-       this.objStrTarget = new Object();
-       this.eleTrigger.style.cursor = "hand";
-       if( this.eleTrigger.tagName == "AREA" && this.eleTrigger.getAttribute("href") == "" )
-               this.eleTrigger.setAttribute("href", "#") // to make a hand cursor for image map
-}
-
-CTrigger.prototype.AddTargetID = function( strTargetID )
-{// add one target ID string to the objStrTarget
-       if( typeof(strTargetID) != "string" )
-               return ;
-       if( typeof(this.objStrTarget[strTargetID]) != "string" )
-               this.objStrTarget[strTargetID] = strTargetID;
-}
-
-CTrigger.prototype.OnTriggerClick = function()
-{// to activate all asociated target
-       var strEventType = ( (this.nCounter++)% 2 == 0 ) ? 
-               "bssctrigger1" : "bssctrigger2";
-               
-       // to enumerate associative target element's ID string
-       for( var strTargetID in this.objStrTarget ) 
-               CEngine.SendEventToOneTarget( strTargetID, strEventType );
-}
-//End the definition of class CTrigger
-
-//Begin the definition of class CTarget
-function CTarget( TargetElement )
-{
-       // object : the target element. Never be null.
-       this.eleTarget = TargetElement;
-       this.objManager = new Object(); // object: the event manager
-} 
-
-CTarget.nPageClickCounter = 0;// static class property.
-
-CTarget.prototype.GetAgencyObject = function(str_action_type,action_setting )
-{// return the action agency ( effect )object's refernece 
-       switch( str_action_type )
-       {
-       case "show":return new CAgencyShow( this.eleTarget, true ) ;
-       case "hide":return new CAgencyShow( this.eleTarget, false ) ;
-
-    case "flyin" : 
-       return new CAgencyFly(this.eleTarget, action_setting, true);
-    case "flyout" : 
-       return new CAgencyFly(this.eleTarget, action_setting, false);
-    case "spiralin" : 
-       return new CAgencySpiral(this.eleTarget, action_setting, true);
-    case "spiralout" : 
-       return new CAgencySpiral(this.eleTarget, action_setting, false);
-    case "zoomin" :
-       return new CAgencyZoom(this.eleTarget, action_setting, true);
-    case "zoomout" : 
-       return new CAgencyZoom(this.eleTarget, action_setting, false);
-    case "elastic" : 
-               return new CAgencyElastic(this.eleTarget, action_setting);
-               
-    case "fadein" : 
-       return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, true) : null;
-    case "fadeout" :
-       return (gbBsIE4)? new CAgencyAlpha(this.eleTarget, action_setting, false) : null;
-    case "rockrollstatic" :
-    case "rockroll" :
-       return (gbBsIE4)? new CAgencyWave(this.eleTarget, action_setting, false) : null;
-    case "glow":
-       return (gbBsIE4)? new CAgencyGlow(this.eleTarget,action_setting) : null;
-    case "dropshadow":
-       return (gbBsIE4)? new CAgencyDropShadow(this.eleTarget,action_setting) : null;
-    case "transition" :
-       return (gbBsIE4)? new CAgencyRevealTrans(this.eleTarget,action_setting) : null;
-    case "blur" :
-       return (gbBsIE4)? new CAgencyBlur(this.eleTarget,action_setting) : null;
-
-    case "fliph" : // all these 4 do NOT need any parameters
-    case "flipv" :
-    case "invert":
-    case "gray" :
-       return (gbBsIE4)? new CAgencyChangeFilter(this.eleTarget, str_action_type) : null;
-    
-    case "fontchange": // the effects below change the style on the fly, so won't work in Navigator
-       return (gbBsIE4)? new CAgencyFontChange(this.eleTarget,action_setting) : null;
-    case "boderchange": 
-    case "stylechange":
-       return (gbBsIE4)? new CAgencyChangeStyle(this.eleTarget,action_setting) : null;
-
-       default: return null;
-       }
-}
-
-CTarget.prototype.SetEventManager = function( 
-       one_event_type,str_action_type,action_setting,event_additional)
-{// to set the event manager with specified action 
-       if( typeof( one_event_type ) != "string" ||     
-               typeof( str_action_type ) != "string"||
-               typeof( action_setting ) != "string" )
-               return false;
-       if( typeof(this.objManager[one_event_type]) == "undefined" )
-       {
-               this.objManager[one_event_type] = new Object();
-               this.objManager[one_event_type].length = 0;
-       }
-       
-       var eventAgency = this.GetAgencyObject(str_action_type,action_setting);
-       if( eventAgency != null )
-       {
-               var ct = this.objManager[one_event_type].length ++;
-               this.objManager[one_event_type][ct] = eventAgency;
-               
-               if( one_event_type == "bsscpageclick" )
-               {// to deal with the "number of pageclick" stuff
-                       if( typeof(event_additional) == "number" )
-                               this.objManager[one_event_type][ct].nPageClick = event_additional;
-                       else // set the default number 
-                               this.objManager[one_event_type][ct].nPageClick = 1;
-                       
-                       if( (typeof(this.objManager.nMinPageClickIndex) == "undefined") ||
-                           (this.objManager[one_event_type][ct].nPageClick < 
-                                       this.objManager[one_event_type][this.objManager.nMinPageClickIndex].nPageClick) )
-                               this.objManager.nMinPageClickIndex = ct;
-               }
-               
-               //hide the object blindly,SetState function will take care of the final correct state
-               if( ((one_event_type == "bsscpageclick") && 
-                        (this.objManager[one_event_type][ct].nPageClick == 1)) ||
-                       one_event_type == "bsscpageload" ||
-                       one_event_type == "bssctrigger1" )
-                       CCSSP.ShowObject( this.eleTarget, false );
-               
-               if( one_event_type == "bssctrigger1" || one_event_type == "bssctrigger2" )
-                       if( typeof( this.strTriggerEvent ) == "undefined" )
-                               this.strTriggerEvent = ( one_event_type == "bssctrigger1" ) ? "bssctrigger2" : "bssctrigger1";
-                       
-               return true;
-       }
-       return false;
-}
-
-CTarget.prototype.OnEvent = function( strBsscEvent )
-{// response to the event ( bssc format )
-       if( typeof(this.objManager[strBsscEvent]) == "object" )
-       { // to get the event agency from the event manager
-               var eventAgency = this.objManager[strBsscEvent];
-               for( var i = 0; i < eventAgency.length; i++ )
-               {
-                       if( strBsscEvent == "bsscpageclick" && 
-                               eventAgency[i].nPageClick != CTarget.nPageClickCounter )
-                                continue;
-                       else if( strBsscEvent == "bsschover" && event.type == "mouseout" )
-                               eventAgency[i].EndEffect();
-                       else // to invoke the unified function in effect object 
-                               eventAgency[i].UpdateEffect(); 
-               }
-       }
-}
-
-CTarget.prototype.SetState = function( strBsscEvent )
-{
-       if( typeof(this.objManager[strBsscEvent]) != "object" )
-               return false;
-
-       // to get the event agency from the event manager
-       var eventAgency = this.objManager[strBsscEvent];
-       
-       if( strBsscEvent == "bsscpageclick" )
-       {// we only set the initial state for the minium number of pageclick 
-               eventAgency[this.objManager.nMinPageClickIndex].PrepareEffect();
-               return true;
-       }
-       else
-       {
-               for( var i = 0; i < eventAgency.length; i++ )
-                       eventAgency[i].PrepareEffect(); // to invoke the unified function in effect object       
-               if( i > 0 )
-                       return true;
-               else
-                       return false;
-       }
-}
-//End the definition of class CTarget
-
-//Begin the definition of CEngine class
-function CEngine(){}// all properities are going be "class" properities
-
-// object : as associative array of trigger objects
-CEngine.objTrigger = new Object();
-// object : as associative array of target objects 
-CEngine.objTarget = new Object(); 
-
-// Array : each element is a CAgencyXXX animation object
-CEngine.arrAnimation = new Array();
-CEngine.PerformAnimation = function( nIndex )
-{// animation : update effects function
-       CEngine.arrAnimation[nIndex].UpdateEffect();
-}
-
-CEngine.AddOneTrigger = function(TriggerID,TriggerElement)
-{// add one Trigger object into the trigger array
-       if( typeof(TriggerID) != "string" || TriggerElement == null ||
-           typeof(TriggerElement) != "object" )
-               return;
-       if( typeof(CEngine.objTrigger[TriggerID] ) != "object" )
-               CEngine.objTrigger[TriggerID] = new CTrigger(TriggerElement);
-}
-       
-CEngine.AddOneTarget = function(TargetID, TargetElement)
-{// add one Target object into the target array
-       if( typeof(TargetID) != "string" || TargetElement == null ||
-               typeof(TargetElement) != "object" )
-               return;
-       if( typeof(CEngine.objTarget[TargetID]) != "object" )
-               CEngine.objTarget[TargetID] = new CTarget( TargetElement );
-}
-
-CEngine.SendEventToOneTarget = function(strTargetID, strBsscEvent )
-{// to activate one target object
-       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) 
-       {
-               if( strBsscEvent == "bssctrigger1" || strBsscEvent == "bssctrigger2" )
-               {//now, the "bssctrigger1" and "bssctrigger2" work like a toggle
-                       if( strBsscEvent == CEngine.objTarget[strTargetID].strTriggerEvent )
-                               strBsscEvent = (strBsscEvent == "bssctrigger1") ? "bssctrigger2" : "bssctrigger1";
-                       CEngine.objTarget[strTargetID].strTriggerEvent = strBsscEvent;
-               }
-               CEngine.objTarget[strTargetID].OnEvent( strBsscEvent );
-       }
-}
-
-CEngine.SendEventToAllTarget = function( strBsscEvent )
-{ //to activate all target associative to the BSSC event
-       for( var strTargetID in CEngine.objTarget ) //to enumerate all target
-               CEngine.SendEventToOneTarget( strTargetID, strBsscEvent );
-}
-
-CEngine.SetOneTargetInitialState = function( strTargetID )
-{// only invoked after ALL effects for the target have been set
-       if( typeof(CEngine.objTarget[strTargetID]) == "object" ) 
-       {// to get target object
-               var objTarget = CEngine.objTarget[strTargetID];
-               if( objTarget.SetState( "bsscpageload" ) == false )
-               {
-                       objTarget.SetState( "bsscpageclick" );
-                       objTarget.SetState( "bssctrigger1" );
-               }
-       }
-}
-
-CEngine.AdjustPageClickCounter = function()
-{
-       var nAdjustedClickCounter = CTarget.nPageClickCounter;
-       var bAdjusted = false;
-       for( var strTargetID in CEngine.objTarget ) //to enumerate all target
-       {// try to find the minum pageCliclConter greater than CTarget.nPageClickCounter
-               var objEventPageClick = CEngine.objTarget[strTargetID].objManager.bsscpageclick;
-               if( objEventPageClick != null )
-               {
-                       for( var i = 0; i < objEventPageClick.length; i++ )
-                       {
-                               var nOtherPageClick = objEventPageClick[i].nPageClick;
-                               if( nOtherPageClick == CTarget.nPageClickCounter )
-                                       return;
-                               if( nOtherPageClick > CTarget.nPageClickCounter )
-                               {
-                                       if( !bAdjusted )
-                                       {
-                                               nAdjustedClickCounter = nOtherPageClick;
-                                               bAdjusted = true;
-                                       }
-                                       else if( nOtherPageClick < nAdjustedClickCounter )
-                                               nAdjustedClickCounter = nOtherPageClick;
-                               }
-                       }
-               }
-       }
-       CTarget.nPageClickCounter = nAdjustedClickCounter;
-}
-
-CEngine.OnPageLoad = function()
-{      
-       // first, to set all target's initial state
-       for( var strTargetID in CEngine.objTarget )
-               CEngine.SetOneTargetInitialState( strTargetID );
-       
-       // to invoke all target's onpageload handler
-       CEngine.SendEventToAllTarget( "bsscpageload" );
-}
-
-CEngine.OnPageClick = function()
-{ // to invoke all target's onpageclick handler
-       var src = CCSSP.GetEventElement( arguments[0] );
-       if( src == null )
-               return;
-               
-       var objClickedTrigger = null;
-       for( var strTriggerID in CEngine.objTrigger )
-       { // to detect which trigger is clicked
-               if( CCSSP.IsDescendant( CEngine.objTrigger[strTriggerID].eleTrigger,src) )
-               {
-                       objClickedTrigger = CEngine.objTrigger[strTriggerID];
-                       break;
-               }
-       }
-       
-       if( objClickedTrigger != null) // the clicked trigger found
-               objClickedTrigger.OnTriggerClick();
-       else // no trigger is clicked
-       { // to send PageClick event to all target
-               CTarget.nPageClickCounter++;
-               CEngine.AdjustPageClickCounter();
-               CEngine.SendEventToAllTarget( "bsscpageclick" );
-       }
-}      
-
-CEngine.OnMouseOver = function()
-{ // to invoke all target's onpageload handler
-       var src = CCSSP.GetEventElement( arguments[0] );
-       if( src == null )
-               return;
-               
-       var strHoveredTargetID = null;
-       for( var strTargetID in CEngine.objTarget )
-       { // to detect which Target is hovering on
-               if( CCSSP.IsDescendant( CEngine.objTarget[strTargetID].eleTarget, src ) )
-           {
-                       strHoveredTargetID = strTargetID;
-                       break;
-           }
-       }
-       
-       if( strHoveredTargetID != null ) // the hovered target found
-               CEngine.SendEventToOneTarget( strHoveredTargetID, "bsschover" );
-}
-
-CEngine.BuildTargetObject = function(target_ID,event_type,action_type,
-                       action_setting, event_additional)
-{// to build target object 
-       // to get the target object
-       if( typeof( CEngine.objTarget[target_ID] ) != "object" )
-               return false;// the engine's AddOneTarget function might have failed.
-       var TargetObject = CEngine.objTarget[target_ID];
-       
-       // to prepare the parameters for the event manager
-       var arrEvent = event_type.split("|"); // to split the combined event_type string
-       var arrAction = action_type.split("|");//to split the combined action_type string
-       for( var trim = 0; trim < arrEvent.length; trim++ )
-               arrEvent[trim] = CCSSP.TrimSpace(arrEvent[trim]);
-       
-       for( trim = 0; trim < arrAction.length; trim++ )
-               arrAction[trim] = CCSSP.TrimSpace(arrAction[trim]);
-       
-       var arrSetting = new Array(); 
-       if( typeof(action_setting) == "string" )
-               arrSetting = action_setting.split("|");// to split the combined action_setting string
-       // to calibrate the arrays
-       for( var i = arrSetting.length; i < arrAction.length; i++ )
-       {
-               if( typeof(arrSetting[i]) != "string" )
-                        arrSetting[i] = "";
-       }                                
-
-       // to prepare for dealing with the absolute posioning element
-       TargetObject.eleTarget.ABSX = CCSSP.GetObjectLeft( TargetObject.eleTarget );
-       TargetObject.eleTarget.ABSY = CCSSP.GetObjectTop( TargetObject.eleTarget );
-
-       if( arrEvent.length > 1 )
-       {// if event is combined, it must be : "bssctrigger1 | bssctrigger2"
-               if( arrAction.length != 2 )
-                       return false; // if event is combined, there must be 2 actions
-               for( i = 0 ; i < 2; i++ )
-               {
-                       if( TargetObject.SetEventManager(arrEvent[i], arrAction[i], 
-                               arrSetting[i], event_additional) == false )
-                               return false; // the event manager has not been set up
-               }
-       }
-       else // the event_type string is not combined
-       {
-               for( i = 0 ; i < arrAction.length; i++ )
-               {
-                       TargetObject.SetEventManager(event_type, arrAction[i], arrSetting[i], event_additional);
-                       // to validate the event manager
-                       if( typeof(TargetObject.objManager[event_type]) != "object" ||
-                                       typeof(TargetObject.objManager[event_type][i]) != "object" )
-                               return false; // the event manager has not been set up
-               }
-       }
-       return true;
-}
-
-CEngine.BuildTriggerObject = function(trigger_ID, target_ID)
-{// to build the trigger object
-       var arrTrigger = trigger_ID.split("|"); // to split the combined trigger_ID string
-       for( var i = 0; i < arrTrigger.length; i ++ )
-       {// to get the trigger element then add it to the trigger list
-               arrTrigger[i] = CCSSP.TrimSpace( arrTrigger[i] );
-               var eleTrigger = CCSSP.GetObject( arrTrigger[i] );
-               if( eleTrigger == null )
-                       continue; // the trigger_ID string in the HTML code maybe wrong
-               CEngine.AddOneTrigger( arrTrigger[i], eleTrigger );
-
-               // to get the target object
-               if( typeof( this.objTrigger[arrTrigger[i]] ) != "object" )
-                       continue;// the engine's AddOneTarget function might have failed.
-               CEngine.objTrigger[arrTrigger[i]].AddTargetID( target_ID );
-       }
-}
-//End the definition of CEngine class
-
-/// Section End  - CCSSP DHTM 1 (JavaScript 1.2)
-
-/// Section Begin  - CCSSP DHTM 2 (JavaScript 1.2)
-
-//Begin the definition of CAgencyXXXX classes
-
-//Begin of the CAgencyShow definition
-function CAgencyShow( element, bIsShow )
-{
-       this.ele = element;
-       this.bIsShow = bIsShow;
-}
-
-CAgencyShow.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject( this.ele, !this.bIsShow );
-}
-
-CAgencyShow.prototype.UpdateEffect = function()
-{
-       CCSSP.ShowObject( this.ele, this.bIsShow );
-}
-
-CAgencyShow.prototype.EndEffect = function()
-{
-       CCSSP.ShowObject( this.ele, !this.bIsShow );
-}
-// End of the CAgencyShow definition
-
-// Begin of CAgencyFly definition
-function CAgencyFly( element, settings, bIsIn )
-{
-       this.ele = element;
-       this.bIsIn = bIsIn;
-       this.duration = 1000; // default
-       this.direction = "right";
-
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;
-               case "direction" : this.direction = arrOneSet[1]; break;
-               }
-       }
-               
-       if( gbBsIE5 && this.ele.style.position != "absolute" )
-               this.ele.style.position = "relative";
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyFly.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject(this.ele, !this.bIsIn );
-}
-
-CAgencyFly.prototype.UpdateEffect = function()
-{
-       if( this.timer == null )
-               this.ResetParameters();
-
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-       if( percent >= 1.0 )
-               this.EndEffect();
-       else
-       {
-               var newX = this.startX*(1.0-percent) +  this.finalX*percent;
-               var newY = this.startY*(1.0-percent) +  this.finalY*percent;
-               CCSSP.MoveObjectTo(this.ele, newX, newY);
-               if( this.timer == null )
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
-       }
-}
-
-CAgencyFly.prototype.EndEffect = function()
-{
-       clearInterval( this.timer );
-       this.timer = null;
-
-       if( this.bIsIn ) // FlyIn
-               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
-       else // FlyOut
-               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
-       CCSSP.ShowObject(this.ele, this.bIsIn );
-}
-
-CAgencyFly.prototype.ResetParameters = function()
-{
-       this.PrepareEffect();
-       CCSSP.ShowObject(this.ele, true );
-
-       this.startX = 0;
-       this.startY = 0;
-       this.finalX = 0;
-       this.finalY = 0; 
-       
-       var offsetLeft = CCSSP.GetObjectWindowLeft(this.ele) + this.ele.offsetWidth;
-       var offsetTop = CCSSP.GetObjectWindowTop(this.ele) + this.ele.offsetHeight;
-       var offsetRight = CCSSP.GetWindowRight();
-       var offsetBottom = CCSSP.GetWindowBottom();
-
-       if( this.bIsIn )
-       { // FlyIn
-               this.finalX = this.ele.ABSX;
-               this.finalY = this.ele.ABSY;
-
-               switch( this.direction )
-               {
-               case "right": this.startX = offsetRight; this.startY = this.finalY; break;
-               case "left": this.startX = -offsetLeft;  this.startY = this.finalY; break;
-               case "down": this.startY = offsetBottom; this.startX = this.finalX; break;
-               case "up":  this.startY = -offsetTop;    this.startX = this.finalX; break;
-               case "downright":
-                       this.startX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;
-                       this.startY = this.startX;              break;
-               case "upright":
-                       this.startX = (offsetTop < offsetRight)? offsetTop : offsetRight;
-                       this.startY = -this.startX;             break;
-               case "upleft":
-                       this.startX = -((offsetTop < offsetRight)? offsetTop : offsetRight);
-                       this.startY = this.startX;              break;
-               case "downleft":
-                       this.startX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);
-                       this.startY = -this.startX;     break;
-               }
-       }
-       else
-       { // FlyOut
-               this.startX = this.ele.ABSX;
-               this.startY = this.ele.ABSY;
-
-               switch( this.direction )
-               {
-               case "right": this.finalX = offsetRight;  this.finalY = this.startY; break;
-               case "left": this.finalX = -offsetLeft;   this.finalY = this.startY;  break;
-               case "down": this.finalY = offsetBottom;  this.finalX = this.startX; break;
-               case "up":  this.finalY = -offsetTop;     this.finalX = this.startX; break;
-               case "downright":
-                       this.finalX = ( offsetBottom < offsetRight) ? offsetBottom : offsetRight;
-                       this.finalY = this.finalX;              break;
-               case "upright":
-                       this.finalX = (offsetTop < offsetRight)? offsetTop : offsetRight;
-                       this.finalY = -this.finalX;             break;
-               case "upleft":
-                       this.finalX = -((offsetTop < offsetRight)? offsetTop : offsetRight);
-                       this.finalY = this.finalX;              break;
-               case "downleft":
-                       this.finalX = -(( offsetBottom < offsetRight) ? offsetBottom : offsetRight);
-                       this.finalY = -this.finalX;     break;
-               }
-       }
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
-       this.startTime = (new Date()).getTime();
-}
-// End of the CAgencyFly definition
-
-// Begin of CAgencySpiral
-function CAgencySpiral( element, settings, bIsIn )
-{
-       this.ele = element;
-       this.bIsIn = bIsIn;
-       this.duration = 1000; // default
-
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;
-               }
-       }
-
-       if( gbBsIE5 && this.ele.style.position != "absolute" )
-               this.ele.style.position = "relative";
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencySpiral.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject(this.ele, !this.bIsIn );
-}
-
-CAgencySpiral.prototype.UpdateEffect = function()
-{
-       if( this.timer == null )
-               this.ResetParameters();
-
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-       if( percent >= 1.0 )
-               this.EndEffect();
-       else
-       {
-               var rf = (this.bIsIn)? (1.0 - percent) : percent; 
-               var t = (1.0-rf) * 4.0 * Math.PI
-               var rxP = (this.bIsIn)? this.startX : this.finalX; 
-               var ryP = (this.bIsIn)? this.startY : this.finalY; 
-               var rx = (Math.abs(rxP) < 200) ? Math.abs(rxP) : 200;
-               var ry = (Math.abs(ryP) < 200) ? Math.abs(ryP) : 200;
-
-               var newX = Math.ceil(-rf*Math.cos(t)*rx) + this.ele.ABSX;
-               var newY = Math.ceil(-rf*Math.sin(t)*ry) + this.ele.ABSY;
-               CCSSP.MoveObjectTo(this.ele, newX, newY);
-               if( this.timer == null )
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
-       }
-}
-
-CAgencySpiral.prototype.EndEffect = function()
-{
-       clearInterval( this.timer );
-       this.timer = null;
-       
-       if( this.bIsIn ) // In
-               CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
-       else // Out
-               CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
-       CCSSP.ShowObject(this.ele, this.bIsIn );
-}
-
-CAgencySpiral.prototype.ResetParameters = function()
-{
-       this.PrepareEffect();
-       CCSSP.ShowObject(this.ele, true );
-       this.startX = (this.bIsIn)? CCSSP.GetWindowRight() : this.ele.ABSX;
-       this.startY = (this.bIsIn)? CCSSP.GetWindowBottom() : this.ele.ABSY;
-       this.finalX = (this.bIsIn)? this.ele.ABSX : CCSSP.GetWindowRight();
-       this.finalY = (this.bIsIn)? this.ele.ABSY : CCSSP.GetWindowBottom(); 
-       
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
-       this.startTime = (new Date()).getTime();
-}
-// End of CAgencySpiral
-
-// Begin of CAgencyElastic
-function CAgencyElastic( element, settings)
-{
-       this.ele = element;
-       this.duration = 1000; // default
-       this.direction = "right";
-
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;
-               case "direction" : this.direction = arrOneSet[1]; break;
-               }
-       }
-               
-       if( gbBsIE5 && this.ele.style.position != "absolute" )
-               this.ele.style.position = "relative";
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyElastic.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject(this.ele, false );
-}
-
-CAgencyElastic.prototype.UpdateEffect = function()
-{
-       if( this.timer == null )
-               this.ResetParameters();
-
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-       if( percent >= 1.0 )
-               this.EndEffect();
-       else
-       {
-               var newX = this.startX;
-               var newY = this.startY;
-               var rf = Math.exp(-percent*3);
-               var t = percent * 1.5 * Math.PI
-               var rx = (Math.abs(this.startX) > Math.abs(this.startY)) ? this.startX : this.startY;
-               switch (this.direction )
-               {
-               case "left":   
-               case "right" : newX = rf*Math.cos(t)*rx + this.ele.ABSX; break;
-               case "up":         
-               case "down" :  newY = rf*Math.cos(t)*rx + this.ele.ABSX; break;
-               }
-               CCSSP.MoveObjectTo(this.ele, newX, newY);
-               if( this.timer == null )
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
-       }
-}
-
-CAgencyElastic.prototype.EndEffect = function()
-{
-       CCSSP.MoveObjectTo(this.ele, this.finalX, this.finalY);
-       clearInterval( this.timer );
-       this.timer = null;
-}
-
-CAgencyElastic.prototype.ResetParameters = function()
-{
-       CCSSP.ShowObject(this.ele, true );
-       this.startX = this.ele.ABSX;
-       this.finalX = this.ele.ABSX;
-       this.startY = this.ele.ABSY;
-       this.finalY = this.ele.ABSY;
-       
-       switch (this.direction)
-       { 
-       case "left":  this.startX = -this.ele.offsetWidth; break;
-       case "right": this.startX = this.ele.offsetWidth;  break;
-       case "up":    this.startY = -this.ele.offsetHeight;break;
-       case "down":  this.startY = this.ele.offsetHeight; break;
-       }
-       CCSSP.MoveObjectTo(this.ele, this.startX, this.startY);
-       this.startTime = (new Date()).getTime();
-}
-// End of CAgencyElastic
-
-// Begin of CAgencyZoom
-function CAgencyZoom( element, settings, bIsIn)
-{
-       this.ele = element;
-       this.duration = 1000; // default
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;
-               }
-       }
-
-       this.bIsIn = bIsIn;
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyZoom.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject(this.ele, false);
-}
-
-CAgencyZoom.prototype.UpdateEffect = function()
-{
-       if( this.timer == null )
-               this.ResetParameters();
-
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-       if( percent >= 1.0 )
-               this.EndEffect();
-       else
-       {
-               var nFactorIn = Math.ceil(50+50*percent);
-               var nFactorOut = Math.ceil(100+200*(1-percent));
-               var AlterFontsize = ((this.bIsIn)? nFactorIn : nFactorOut) + "%";
-               var AlterFactor = ((this.bIsIn)? nFactorIn : nFactorOut) / 100;
-               
-               this.UpdateEffectAllChildren(this.ele, AlterFontsize, AlterFactor);
-               for(var index = 0; index < this.ele.all.length; index++)
-                       this.UpdateEffectAllChildren(this.ele.all[index], AlterFontsize, AlterFactor);
-                       
-               if( this.timer == null )
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
-       }
-}
-
-CAgencyZoom.prototype.UpdateEffectAllChildren = function(child, FontSize, Factor)
-{
-       if( CCSSP.IsTextTag(child) )
-               child.style.fontSize = FontSize;
-       else
-       {
-               if( typeof(child.orgWidth) == "number" )
-                       child.style.width = Factor * child.orgWidth;
-               if( typeof(child.orgHeight) == "number" )
-                       child.style.height = Factor * child.orgHeight;
-       }
-}
-
-CAgencyZoom.prototype.EndEffect = function()
-{
-       this.EndEffectAllChildren(this.ele);
-       for(var index = 0; index < this.ele.all.length; index++)
-               this.EndEffectAllChildren(this.ele.all[index]);
-       
-       clearInterval( this.timer );
-       this.timer = null;
-}
-
-CAgencyZoom.prototype.EndEffectAllChildren = function( child )
-{      
-       if( CCSSP.IsTextTag(child) )
-               child.style.fontSize = child.orgFontSize;
-       else
-       {
-               if( typeof(child.intactWidth) != "undefined" )
-               {
-                       child.width = child.intactWidth;
-                       child.height = child.intactHeight;
-               }
-               else if( typeof(child.style.intactPixelWidth) != "undefined" )
-               {
-                       child.style.pixelWidth = child.style.intactPixelWidth;
-                       child.style.pixelHeight = child.style.intactPixelHeight;
-               }
-       }
-}
-
-CAgencyZoom.prototype.ResetParameters = function()
-{
-       this.PrepareEffect();
-       this.ResetParametersAllChildren( this.ele );
-       for(var index = 0; index < this.ele.all.length; index++)
-               this.ResetParametersAllChildren(this.ele.all[index]);
-               
-       this.startTime = (new Date()).getTime();
-}
-
-CAgencyZoom.prototype.ResetParametersAllChildren = function( child )
-{
-       CCSSP.ShowObject(child, true );
-       if( (child.tagName == "DIV") && (getParentNode(child).tagName == "TD") )
-               child.width = "100%";// if the div is inside a cell of table, we need the this hack
-       
-       if( CCSSP.IsTextTag(child) )
-               child.orgFontSize = child.style.fontSize;
-       else
-       {
-               if( child.width > "" || child.height > "" )
-               {
-                       child.orgWidth = child.intactWidth = child.width;
-                       child.orgHeight = child.intactHeight = child.height;
-               }
-               else if( ( typeof(child.orgWidth) != "number" ) && (typeof(child.orgHeight) != "number") )
-               {
-                       child.orgWidth = child.style.intactPixelWidth = child.style.pixelWidth;
-                       child.orgHeight = child.style.intactPixelHeight = child.style.pixelHeight;
-               }
-       }
-}
-// End of CAgencyZoom
-
-//// the following effects will use IE's exclusive "filter" function ////
-// Begin of CAgencyAlpha definition
-function CAgencyAlpha( element, settings, bIsIn )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-       this.bIsIn = bIsIn;
-
-       // to set the default value
-       this.startOpacity = (this.bIsIn) ? 0 : 100;
-       this.endOpacity = (this.bIsIn) ? 100 : 0;
-       
-       this.duration = 1000; // default
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "speed" : this.duration = 100000/arrOneSet[1]; break;
-               }
-       }
-       
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyAlpha.prototype.PrepareEffect = function()
-{// to set the visual filter function
-       // the visual filter ONLY work when set by "Width and Height" or
-       // absolute position for DIV, SPAN and normal tag ( such as p )
-       // but, "absolute" cause the following elements overlap, so:
-       CCSSP.PrepareFilter( this.ele );
-       CCSSP.ShowObject(this.ele, !this.bIsIn );
-}
-
-CAgencyAlpha.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       if( this.timer == null )
-               this.ResetParameters();
-       if( typeof(this.ele.filters.alpha) != "object" )
-       {
-               this.EndEffect();
-               return;
-       }
-
-       var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-       if( percent >= 1.0 )
-               this.EndEffect();
-       else if( typeof(this.ele.filters.alpha) == "object" )
-       {
-               this.ele.filters.alpha.opacity = this.startOpacity*(1.0-percent) + this.endOpacity*percent;
-               if( this.timer == null )
-                       this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 20 );
-       }
-}
-
-CAgencyAlpha.prototype.EndEffect = function()
-{// to remove the visual filter function
-       clearInterval( this.timer );
-       this.timer = null;
-       this.ele.style.filter = "";
-       CCSSP.ShowObject(this.ele, this.bIsIn );
-}
-
-CAgencyAlpha.prototype.ResetParameters = function()
-{
-       this.PrepareEffect();
-       CCSSP.ShowObject(this.ele, true );
-       this.ele.style.filter = "alpha(opacity=" + this.startOpacity + ")";
-       this.startTime = (new Date()).getTime();
-}
-// End of the CAgencyAlpha definition
-
-// Begin of CAgencyWave definition
-function CAgencyWave( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       this.duration = 0; // default
-       this.strength = 10;
-       this.freq = 1;
-       this.lightstrength = 1;
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "duration" : this.duration = 100000/arrOneSet[1]; break;
-               case "strength" : this.strength = arrOneSet[1]; break;
-               case "freq" : this.freq = arrOneSet[1]; break;
-               case "lightstrength" : this.lightstrength = arrOneSet[1]; break;
-               }
-       }
-
-       this.timer = null;
-       this.aniIndex = CEngine.arrAnimation.length;
-       CEngine.arrAnimation[this.aniIndex] = this;
-}
-
-CAgencyWave.prototype.PrepareEffect = function()
-{// to set the visual filter function
-       CCSSP.PrepareFilter(this.ele);
-
-       CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyWave.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       if( this.timer == null )
-               this.ResetParameters();
-       if( typeof(this.ele.filters.wave) != "object" )
-       {
-               this.EndEffect();
-               return;
-       }
-
-       if( this.duration > 0 )
-       {
-               var percent = ((new Date()).getTime() - this.startTime)/this.duration;
-               if( percent >= 1.0 )
-               {
-                       this.EndEffect();
-                       return;
-               }
-       }
-       
-       this.ele.filters.wave.phase += 5;
-       this.ele.filters.wave.phase %= 100;
-       if( this.timer == null )
-               this.timer = setInterval("CEngine.PerformAnimation(" + this.aniIndex + ")", 50 );
-}
-
-CAgencyWave.prototype.EndEffect = function()
-{// to remove the visual filter function
-       this.ele.style.filter = "";
-       clearInterval( this.timer );
-       this.timer = null;
-}
-
-CAgencyWave.prototype.ResetParameters = function()
-{
-       this.PrepareEffect();
-       this.ele.style.filter = "wave(strength=" + this.strength + ",freq=" + 
-        this.freq +", lightstrength=" + this.lightstrength +",phase=0);";
-       this.startTime = (new Date()).getTime();
-}
-// End of the CAgencyWave definition
-
-// Begin of CAgencyGlow definition
-function CAgencyGlow( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       // to set the default value
-       this.glowColor = "green";
-       this.glowStrength = "3";
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "color" : this.glowColor = arrOneSet[1]; break;
-               case "strength" : this.glowStrength = arrOneSet[1]; break;
-               }
-       }
-}
-
-CAgencyGlow.prototype.PrepareEffect = function()
-{
-       CCSSP.PrepareFilter(this.ele);
-       CCSSP.ShowObject(this.ele, true );
-       if( this.ele.style.backgroundColor != "" )
-       {//style.backgroundColor somehow stop the visual filter
-               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;
-               this.ele.style.backgroundColor = "";
-       }
-}
-
-CAgencyGlow.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       this.PrepareEffect();
-       this.ele.style.filter = "glow(Color=" + this.glowColor + ", Strength=" + 
-               this.glowStrength + ", enabled=true" +")";
-}
-
-CAgencyGlow.prototype.EndEffect = function()
-{// to remove the visual filter function
-       this.ele.style.filter = "";
-       if( typeof(this.ele.intactBackgroundColor) != "undefined" )
-               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;
-}
-// End of the CAgencyGlow definition
-
-// Begin of CAgencyDropShadow definition
-function CAgencyDropShadow( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       // to set the default value
-       this.shadowColor = "black"; 
-       this.shadowOffx = "1";
-       this.shadowOffy = "1";
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "color" : this.shadowColor = arrOneSet[1]; break;
-               case "offx" : this.shadowOffx = arrOneSet[1]; break;
-               case "offy" : this.shadowOffy = arrOneSet[1]; break;
-               }
-       }
-}
-
-CAgencyDropShadow.prototype.PrepareEffect = function()
-{
-       CCSSP.PrepareFilter(this.ele);
-       CCSSP.ShowObject(this.ele, true );
-       
-       if( this.ele.style.backgroundColor != "" )
-       {//style.backgroundColor somehow stop the visual filter
-               this.ele.intactBackgroundColor = this.ele.style.backgroundColor;
-               this.ele.style.backgroundColor = "";
-       }
-}
-
-CAgencyDropShadow.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       this.PrepareEffect();
-       this.ele.style.filter = "dropshadow(color=" + this.shadowColor + ", offx=" + 
-               this.shadowOffx + ", offy=" + this.shadowOffy + ")";
-}
-
-CAgencyDropShadow.prototype.EndEffect = function()
-{// to remove the visual filter function
-       this.ele.style.filter = "";
-       if( typeof(this.ele.intactBackgroundColor) != "undefined" )
-               this.ele.style.backgroundColor = this.ele.intactBackgroundColor;
-}
-// End of the CAgencyDropShadow definition
-
-// Begin of CAgencyRevealTrans definition
-function CAgencyRevealTrans( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       // to set the default value
-       this.duration = 1.0; //The value is specified in seconds.milliseconds format (0.0000).
-       this.transition = 0;
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "type" : this.transition = arrOneSet[1]; break;
-               case "duration" : this.duration = 100/arrOneSet[1];     break;
-               }
-       }
-}
-
-CAgencyRevealTrans.prototype.PrepareEffect = function()
-{
-       CCSSP.PrepareFilter(this.ele);
-       CCSSP.ShowObject( this.ele, false);
-}
-
-CAgencyRevealTrans.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       if( typeof( this.ele.filters.RevealTrans ) == "object" )
-       {
-               if( this.ele.filters.RevealTrans.status == 2 )
-                       this.ele.filters.RevealTrans.stop();  
-       }
-
-       this.PrepareEffect();
-       
-       this.ele.style.filter = "RevealTrans(duration=" + this.duration + 
-               ", transition=" + this.transition + ")";
-       
-    if( typeof( this.ele.filters.RevealTrans ) == "object" )
-    {
-               this.ele.filters.RevealTrans.apply();
-               CCSSP.ShowObject( this.ele, true);
-               this.ele.filters.RevealTrans.play();  
-       }
-       else
-               CCSSP.ShowObject( this.ele, true);
-}
-
-CAgencyRevealTrans.prototype.EndEffect = function()
-{
-    if( typeof( this.ele.filters.RevealTrans ) == "object" )
-               this.ele.filters.RevealTrans.stop();  
-       this.ele.style.filter = "";
-}
-// End of the CAgencyRevealTrans definition
-
-// Begin of CAgencyBlur definition
-function CAgencyBlur( element, settings )
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       // to set the default value
-       this.strength = "5";
-       this.direction = "90";
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "strength" : this.strength = arrOneSet[1]; break;
-               case "direction" : this.direction = arrOneSet[1]; break;
-               }
-       }
-}
-
-CAgencyBlur.prototype.PrepareEffect = function()
-{
-       CCSSP.PrepareFilter(this.ele);
-       CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyBlur.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       CCSSP.PrepareFilter(this.ele);
-       this.ele.style.filter = "blur(strength=" + this.strength + 
-               ", direction=" + this.direction + ")";
-}
-
-CAgencyBlur.prototype.EndEffect = function()
-{// to remove the visual filter function
-       this.ele.style.filter = "";
-}
-// End of the CAgencyBlur definition
-
-// Begin of CAgencyChangeFilter definition
-function CAgencyChangeFilter( element, settings ) // flipH, flipV, invert, grey,
-{// because of "visual filter" style, this won't work in Navigator
-       this.ele = element;
-
-       // to set the default value
-       this.filterFunction = settings;
-}
-
-CAgencyChangeFilter.prototype.PrepareEffect = function()
-{
-       CCSSP.PrepareFilter(this.ele);
-       CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyChangeFilter.prototype.UpdateEffect = function()
-{// to set the visual filter function
-       CCSSP.PrepareFilter(this.ele);
-       this.ele.style.filter = this.filterFunction;
-}
-
-CAgencyChangeFilter.prototype.EndEffect = function()
-{// to remove the visual filter function
-       this.ele.style.filter = "";
-}
-// End of the CAgencyChangeFilter definition
-
-// The effects below change the style on the fly, so they won't work in Navigator
-
-// Begin of CAgencyFontChange definition, 
-function CAgencyFontChange( element, settings )
-{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.
-       this.ele = element;
-       
-       // to retrieve the original font style
-       this.RetrieveOldFont( this.ele );
-       
-       // to set the default font to change
-       this.newfontFamily = this.ele.oldFontFamily;
-       this.newfColor = this.ele.oldColor;
-       this.newtextDecoration = this.ele.oldTextDecoration;
-       this.newfontWeight = this.ele.oldFontWeight;
-       this.newfontStyle = this.ele.oldFontStyle;
-       this.newfontSize = this.ele.oldFontSize;
-       this.newBackgroundColor = this.ele.oldBackgroundColor;
-       
-       var arrAllSet = settings.split(",");
-       for( var i = 0; i < arrAllSet.length; i ++ )
-       {// to retrieve the setting
-               arrAllSet[i] = CCSSP.TrimSpace(arrAllSet[i]);
-               var arrOneSet = arrAllSet[i].split("=");
-               for( var j = 0; j < arrOneSet.length; j++ )
-                       arrOneSet[j] = CCSSP.TrimSpace(arrOneSet[j]);
-               switch( arrOneSet[0] )
-               {
-               case "font-family" : this.newfontFamily = arrOneSet[1]; break;
-               case "color" : this.newfColor = arrOneSet[1]; break;
-               case "underline" : this.newtextDecoration = (arrOneSet[1]=="on")? "underline" : "none"; break;
-               case "bold" : this.newfontWeight = (arrOneSet[1]=="on")? "bold" : "normal"; break;
-               case "italic" : this.newfontStyle = (arrOneSet[1]=="on")? "italic" : "normal"; break;
-               case "size" : this.newfontSize = arrOneSet[1]; break;
-               case "background-color" : this.newBackgroundColor = arrOneSet[1]; break;
-               }
-       }
-}
-
-CAgencyFontChange.prototype.RetrieveOldFont = function(objChild)
-{
-       if( typeof(objChild.oldFontFamily) == "undefined" )
-               objChild.oldFontFamily = objChild.style.fontFamily;
-       if( typeof(objChild.oldColor) == "undefined" )
-               objChild.oldColor = objChild.style.color;
-       if( typeof(objChild.oldTextDecoration) == "undefined" )
-               objChild.oldTextDecoration = objChild.style.textDecoration;
-       if( typeof(objChild.oldFontWeight) == "undefined" )
-               objChild.oldFontWeight = objChild.style.fontWeight;
-       if( typeof(objChild.oldFontStyle) == "undefined" )
-               objChild.oldFontStyle = objChild.style.fontStyle;
-       if( typeof(objChild.oldFontSize) == "undefined" )
-               objChild.oldFontSize = objChild.style.fontSize;
-       if( typeof(objChild.oldBackgroundColor) == "undefined" )
-               objChild.oldBackgroundColor = objChild.style.backgroundColor;
-}
-
-CAgencyFontChange.prototype.PrepareEffect = function()
-{
-       // as for expanding text, the child is created after the constructor called
-       for(var index = 0; index < this.ele.all.length; index++)
-               this.RetrieveOldFont(this.ele.all[index]);
-       CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyFontChange.prototype.UpdateEffect = function()
-{// to change the font
-       this.PrepareEffect();
-       this.UpdateEffectAllChildren( this.ele );
-       for( var index = 0; index < this.ele.all.length; index++)
-               this.UpdateEffectAllChildren(this.ele.all[index]);
-}
-
-CAgencyFontChange.prototype.UpdateEffectAllChildren = function(objChild)
-{
-       objChild.style.fontFamily = this.newfontFamily;
-       objChild.style.color = this.newfColor;
-       objChild.style.textDecoration = this.newtextDecoration;
-       objChild.style.fontWeight = this.newfontWeight;
-       objChild.style.fontStyle = this.newfontStyle;
-       objChild.style.fontSize = this.newfontSize;
-       objChild.style.backgroundColor = this.newBackgroundColor;
-}
-
-CAgencyFontChange.prototype.EndEffect = function()
-{// to reinstate the original font style
-       this.EndEffectAllChildren( this.ele );
-       for( var index = 0; index < this.ele.all.length; index++)
-               this.EndEffectAllChildren(this.ele.all[index]);
-}
-
-CAgencyFontChange.prototype.EndEffectAllChildren = function( objChild )
-{
-       if( typeof(objChild.oldFontFamily) != "undefined" )
-               objChild.style.fontFamily = objChild.oldFontFamily;
-       if( typeof(objChild.oldColor) != "undefined" )
-               objChild.style.color = objChild.oldColor;
-       if( typeof(objChild.oldFontWeight) != "undefined" )
-               objChild.style.fontWeight = objChild.oldFontWeight;
-       if( typeof(objChild.oldFontStyle) != "undefined" )
-               objChild.style.fontStyle = objChild.oldFontStyle;
-       if( typeof(objChild.oldFontSize) != "undefined" )
-               objChild.style.fontSize = objChild.oldFontSize;
-       if( typeof(objChild.oldTextDecoration) != "undefined" )
-               objChild.style.textDecoration = objChild.oldTextDecoration;
-       if( typeof(objChild.oldBackgroundColor) != "undefined" )
-               objChild.style.backgroundColor = objChild.oldBackgroundColor;
-}
-// End of the CAgencyFontChange definition
-
-// Begin of the CAgencyChangeStyle definition
-function CAgencyChangeStyle( element, settings )
-{//this class can be replace by CAgencyChangeStyle,provided the "settings" is standard CSS string.
-       this.ele = element;
-       
-       // to retrieve the original style
-       this.oldstyle = this.ele.style.cssText;
-       
-       // to set the default style
-       this.newStyle = this.oldstyle;
-       
-       if( typeof(settings) == "string" && settings.length > 1 )
-               this.newStyle = this.oldstyle + " " + settings;
-}
-
-CAgencyChangeStyle.prototype.PrepareEffect = function()
-{
-       CCSSP.ShowObject(this.ele, true );
-}
-
-CAgencyChangeStyle.prototype.UpdateEffect = function()
-{// to change the style
-       this.ele.style.cssText = this.newStyle;
-}
-
-CAgencyChangeStyle.prototype.EndEffect = function()
-{// to reinstate the original style
-       this.ele.style.cssText = this.oldStyle;
-}
-// End of the CAgencyChangeStyle definition
-
-//End the definition of CAgencyXXXX classes
-
-//Begin to collaborate with other event handler settings 
-CCSSP.RegisterEventHandler( window, "onload", "CEngine.OnPageLoad();BSSCOnLoad();kadovInitTriggersInHead();");
-CCSSP.RegisterEventHandler( document, "onclick", "CEngine.OnPageClick();BSSCOnClick();");
-CCSSP.RegisterEventHandler( document, "onmouseover", "CEngine.OnMouseOver();BSSCOnMouseOver();" );
-CCSSP.RegisterEventHandler( document, "onmouseout", "CEngine.OnMouseOver();BSSCOnMouseOut();" );
-CCSSP.RegisterEventHandler( window, "onunload", "BSSCOnUnload();");
-//End to collaborate with other event handler settings
-
-/// Section End  - CCSSP DHTM 2 (JavaScript 1.2)
-
-//// Segment End -- (JavaScript 1.2)
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/ellipse.htm b/doc/salome/gui/GEOM/ellipse.htm
deleted file mode 100755 (executable)
index e09a756..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Ellipse</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:376px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; font-weight:bold; margin-left:0px; }
-p.whs6 { font-size:12pt; color:#000000; }
-p.whs7 { color:#808080; font-size:12pt; }
-p.whs8 { color:#808080; font-size:12pt; margin-left:40px; }
-img_whs9 { border:none; width:354px; height:323px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs5 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Basic Geometric Objects\nEllipse");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image30.gif" width="20px" height="20px" border="0" class="img_whs1"></font></span></b>Ellipse</h1>
-
-<p><b><span style="font-weight: normal;">T</span></b>o create an <span 
- style="font-weight: bold;"><B>Ellipse</B></span> in the <span style="font-weight: bold;"><B>Main 
- Menu</B></span> select <span style="font-weight: bold;"><B>New Entity - &gt; 
- Basic - &gt; Ellipse</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">You 
- can define an</span> Ellipse <span style="font-weight: normal;">by its</span> 
- Center Point, <span style="font-weight: normal;">a</span> Vector <span 
- style="font-weight: normal;">giving its normal, and its</span> Major &amp; 
- Minor Radiuses.</b></p>
-
-<p class="whs2"><b><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of the operation will be a</span></b><b> 
- <span style="font-weight: normal;">GEOM_Object (edge).</span></b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><span 
- style="font-style: italic;"><I> geompy.MakeEllipse(Point, Vector, RadiusMajor, 
- RadiusMinor)</I></span>, </p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 vertex (for the center) + 1 edge (for the direction) + 1 X Radius 
- + 1 Y Radius.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/ellipse.png" x-maintain-ratio="TRUE" width="312px" height="376px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs6"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs7">&nbsp;</p>
-
-<p class="whs8"><img src="pics/ellipsesn.png" x-maintain-ratio="TRUE" width="354px" height="323px" border="0" class="img_whs9"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Our <span style="font-weight: bold;"><B>TUI Scripts</B></span> 
- provide you with useful examples of creation of <a href="basic_geometrical_objects.htm#bookmark3">Basic 
- Geometric Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/explode.htm b/doc/salome/gui/GEOM/explode.htm
deleted file mode 100755 (executable)
index 7e21453..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Explode</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { margin-left:0px; }
-p.whs3 { font-family:'Times New Roman' , serif; font-size:12pt; font-weight:normal; }
-p.whs4 { font-family:'Times New Roman' , serif; font-size:14pt; }
-p.whs5 { font-size:12pt; }
-ul.whs6 { list-style:disc; }
-p.whs7 { font-size:12pt; font-style:italic; }
-p.whs8 { font-size:12pt; font-style:normal; }
-p.whs9 { font-size:12pt; margin-left:40px; }
-img_whs10 { border:none; width:312px; height:283px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs2 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Advanced Geometrical Objects\nExplode");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image13.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</font></span></b>Explode</h1>
-
-<p class="whs2">To<span style="font-weight: bold;"><B> Explode</B></span> 
- an object into subshapes, in the main menu select <span style="font-weight: bold;"><B>New 
- Entity &gt; Explode</B></span>.</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;">To create a list of &nbsp;subshapes 
- (vertices, edges, wires etc.) of the given shape using the </font></span><span 
- style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Explode</B></font></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- operation, you need to define the </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Main 
- Object,</B></font></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> which will be exploded and 
- the </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Type of Subshapes</B></font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> you wish to obtain from it</font></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">.</font></span></p>
-
-<p class="whs5"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of the operation will be a List</span> 
- of</b> GEOM_Objects (edges, faces, solids or compsolids).</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;"><span style="font-weight: normal;">Using</span> 
- TUI Commands<span style="font-weight: normal;"> you can perform this operation 
- in a variety of ways:</span> </b></p>
-
-<ul type="disc" class="whs6">
-       
-       <li class=kadov-p><p class="whs5"><span style="font-style: italic;"><I>geompy.SubShapeAll(Shape, 
- Type)</I></span> explodes a Shape on subshapes of a given Type and returns 
- a <span style="font-weight: bold;"><B>List</B></span> of sub-shapes. </p></li>
-       
-       <li class=kadov-p><p class="whs5"><span style="font-style: italic;"><I>geompy.SubShapeAllIDs(Shape, 
- Type)</I></span> &nbsp;explodes 
- a Shape on subshapes of a given Type and returns a List of IDs of sub-shapes. 
- </p></li>
-       
-       <li class=kadov-p><p class="whs5"><span style="font-style: italic;"><I>geompy.SubShapeAllSorted(Shape, 
- Type)</I></span> &nbsp;explodes 
- a shape on subshapes of a given type and <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">sorts 
- them by coordinates of their gravity centers, returning &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a 
- list of sub-shapes. </font></span></p></li>
-       
-       <li class=kadov-p><p class="whs7">geompy.SubShapeAllSortedIDs(Shape, 
- Type) &nbsp;<span style="font-style: normal;">explodes 
- a shape on subshapes of a given type</span> <span style="font-style: normal;">and 
- sorts them by coordinates of their gravity centers, &nbsp;returning 
- a List of IDs of sub-shapes.</span></p></li>
-       
-       <li class=kadov-p><p class="whs7"><span 
- style="font-style: normal;">g</span>eompy.SubShape(Shape, Type, ListOfInd) 
- &nbsp;<span style="font-style: normal;">allows 
- to obtain a compound of sub-shapes of &nbsp;the 
- Shape, &nbsp;selected 
- by they indices in a list of all sub-shapes of the given Type. Each index 
- is in the range [1, Nb_Sub-Shapes_Of_Given_Type].</span> </p></li>
-       
-       <li class=kadov-p><p class="whs8"><span 
- style="font-size: 12pt; font-style: normal;"><font size=3 style="font-size:12pt;">geompy.SubShapeSorted(Shape, 
- Type, ListOfInd) allows to obtain a compound of sub-shapes of the Shape, 
- selected by they indices in sorted list of all sub-shapes of the given 
- Type. Each index is in the range [1, Nb_Sub-Shapes_Of_Given_Type] </font></span></p></li>
-</ul>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;">Arguments:</b> 
- 1 SHAPE + 1 type of SubShape.</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs9"><img src="pics/neo-obj1.png" x-maintain-ratio="TRUE" width="312px" height="283px" border="0" class="img_whs10"></p>
-
-<p class="whs4">&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/explode_on_blocks.htm b/doc/salome/gui/GEOM/explode_on_blocks.htm
deleted file mode 100755 (executable)
index e30f3e8..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Explode on Blocks</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:23px; height:22px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:372px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; margin-left:0px; }
-p.whs6 { font-size:12pt; margin-left:0px; font-weight:bold; }
-p.whs7 { margin-left:40px; font-size:12pt; }
-img_whs8 { border:none; width:316px; height:278px; float:none; border-style:none; }
-p.whs9 { font-size:12pt; margin-left:36px; text-indent:-36px; }
-p.whs10 { font-size:12pt; text-indent:-36px; margin-left:40px; font-weight:bold; }
-p.whs11 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs5 {margin-left:1pt; }";
-  strNSS += "p.whs6 {margin-left:1pt; }";
-  strNSS += "p.whs9 {text-indent:1pt; }";
-  strNSS += "p.whs10 {text-indent:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nBlocks Operations\nExplode on Blocks");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><img src="image53.gif" width="23px" height="22px" border="0" class="img_whs1"> Explode on Blocks</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- an <span style="font-weight: bold;"><B>Explode on Blocks</B></span> operation 
- in the Main Menu select <span style="font-weight: bold;"><B>Operations - 
- &gt; Blocks - &gt; Explode on Blocks.</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: normal;">This operation</b> 
- returns blocks of the given compound. The user may define the type of 
- blocks to be extracted by setting the minimum and maximum number of faces 
- in the target block. By checking the corresponding box the user may also 
- interactively choose the blocks from a compound .</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b> GEOM_Object.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeBlockExplode(Compound, 
- MinNbFaces, MaxNbFaces)</I></span>, where Compound is a compound to be exploded 
- into the blocks, MinNbFaces, MaxNbFaces are correspondingly the minimal 
- and &nbsp;the 
- maximal number of faces of the resulting blocks.</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: <span 
- style="font-weight: normal;">1 compound + 2 integers (min. and max. number 
- of faces in the block to be extracted).</span></b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/mtransf3.png" x-maintain-ratio="TRUE" width="312px" height="372px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs6">Example:</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs7"><img src="pics/block_explodesn.png" x-maintain-ratio="TRUE" width="316px" height="278px" border="0" class="img_whs8"></p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs11">&nbsp;&nbsp;&nbsp;<span 
- style="font-weight: normal;">Our</span> TUI 
- Scripts <span style="font-weight: normal;">provide you with useful examples 
- of the use of</span> <a href="blocks_operations.htm#bookmark5">Blocks 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/extrusion.htm b/doc/salome/gui/GEOM/extrusion.htm
deleted file mode 100755 (executable)
index 70a8fbc..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Extrusion</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:400px; height:350px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; font-weight:bold; }
-p.whs6 { font-size:12pt; margin-left:40px; font-weight:normal; font-style:italic; }
-img_whs7 { border:none; width:400px; height:359px; float:none; border-style:none; }
-p.whs8 { font-size:12pt; font-style:italic; margin-left:40px; }
-img_whs9 { border:none; float:none; width:300px; height:175px; border-style:none; }
-img_whs10 { border:none; width:350px; height:175px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Complex Objects\nExtrusion");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><b style="font-weight: bold;"><img src="files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image56.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</b></font></span>Extrusion</h1>
-
-<p><b><span style="font-weight: normal;">T</b>o</span> generate an <span 
- style="font-weight: bold;"><B>Extrusion</B></span> on an object in the <span 
- style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>New 
- Entity - &gt; Generation &nbsp;- 
- &gt; Extrusion</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p>There are 2 algorithms for creation of <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">an 
- Extrusion (Prism)</font></span>. </p>
-
-<p class="whs2">Firstly, you can define the <span style="font-weight: bold;"><B>Base 
- Shape </B></span>(a basis of the extrusion)<span style="font-weight: bold;"><B>, 
- </B></span>the <span style="font-weight: bold;"><B>Vector</B></span> (a direction 
- of the extrusion) and the <span style="font-weight: bold;"><B>Height</B></span> 
- of extrusion. &nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of the operation will be a</span></b> 
- GEOM_Object (edge, face, solid or compsolid).</p>
-
-<p class="whs2"><span style="font-weight: bold;"><B><b style="font-weight: bold;">TUI 
- Command :</b><i> </i></B></span><span style="font-style: italic;"><I>geompy.MakePrismVecH(Base, 
- Vector, Height)</I></span></p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 shape (vertex, edge, wire, face or shell) serving as base object 
- + 1 vector (for direction of the extrusion) + 1 value (dimension).</font></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs3"><img src="pics/extrusion1.png" x-maintain-ratio="TRUE" width="400px" height="350px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5"><span style="font-weight: normal;">Secondly, 
- you can define the</span> Extrusion <span style="font-weight: normal;">by 
- the </span>Base Shape<span style="font-weight: normal;"> and the </span>Start<span 
- style="font-weight: normal;"> and </span>End Point<span style="font-weight: normal;"> 
- of the </span>Vector<span style="font-weight: normal;"> &nbsp;(in 
- this way you don't need to create it in advance).</span> </p>
-
-<p class="whs5"><b style="font-weight: bold;">TUI 
- Command:</b> <span style="font-weight: normal; font-style: italic;"><I>geompy.MakePrism(Base, 
- Point1, Point2) </I></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 shape (vertex, edge, wire, face or shell) serving as base object 
- + 2 vertices.</p>
-
-<p>&nbsp;</p>
-
-<p class="whs6"><img src="pics/extrusion2.png" x-maintain-ratio="TRUE" width="400px" height="359px" border="0" class="img_whs7"></p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Examples:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs8">Base Shape &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prisms</p>
-
-<p class="whs3"><img src="pics/prisms_basessn.png" x-maintain-ratio="TRUE" width="300px" height="175px" border="0" class="img_whs9"> <img src="pics/prismssn.png" x-maintain-ratio="TRUE" width="350px" height="175px" border="0" class="img_whs10"> &nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Our <span style="font-weight: bold;"><B>TUI Scripts</B></span> 
- provide you with useful examples of creation of <a href="complex_objects.htm#bookmark">Complex 
- Geometric Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/face.htm b/doc/salome/gui/GEOM/face.htm
deleted file mode 100755 (executable)
index a0fdccf..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Face</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:315px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; font-style:italic; }
-img_whs6 { border:none; width:180px; height:180px; float:none; border-style:none; }
-img_whs7 { border:none; float:none; width:180px; height:180px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Advanced Geometrical Objects\nFace");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image16.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</font></span>Face</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o create 
- a <span style="font-weight: bold;"><B>Face</B></span> in the Main Menu select 
- <span style="font-weight: bold;"><B>New Entity - &gt; Build - &gt; Face</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">To 
- create a </span><span style="font-weight: bold;"><B>Face</B></span><span style="font-weight: normal;"> 
- you need to select a wire, whose elements will be connected so that the 
- surface of the resulting object was minimal. Check </span><span style="font-weight: bold;"><B>Try 
- to create a planar face</B></span><span style="font-weight: normal;"> to create 
- a planar face or nothing if it is impossible.</span></b></p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result<span style="font-weight: normal;"> will be a</span></b> GEOM_Object 
- (FACE).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeFace(Wire, isPlanarWanted</I></span>)</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 wire.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/neo-obj4.png" x-maintain-ratio="TRUE" width="312px" height="315px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">There are some advanced possibilities accessible 
- only via<span style="font-weight: bold;"><B> TUI commands</B></span>.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-style: italic;"><I>geompy.MakeFaceWires(Wires, 
- isPlanarWanted)</I></span> - Creates a face on the given wires set. The argument 
- is not a single wire, but a list of wires. </p>
-
-<p class="whs2"><span style="font-style: italic;"><I>geompy.MakeFaces(Wires, 
- isPlanarWanted)</I></span> is a shortcut to <span style="font-style: italic;"><I>MakeFaceWires(). 
- </I></span></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/facesn1.png" x-maintain-ratio="TRUE" width="180px" height="180px" border="0" class="img_whs6"> <img src="pics/facesn2.png" x-maintain-ratio="TRUE" width="180px" height="180px" border="0" class="img_whs6"> <img src="pics/facesn3.png" x-maintain-ratio="TRUE" width="180px" height="180px" border="0" class="img_whs7"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="geometrical_objects.htm#bookmark1">Advanced Geometric 
- Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/fillet.htm b/doc/salome/gui/GEOM/fillet.htm
deleted file mode 100755 (executable)
index 83ab6e5..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Fillet</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:315px; float:none; border-style:none; }
-img_whs5 { border:none; width:312px; height:346px; float:none; border-style:none; }
-p.whs6 { font-size:12pt; font-style:italic; margin-left:40px; }
-img_whs7 { border:none; width:226px; height:250px; float:none; border-style:none; }
-img_whs8 { border:none; float:none; width:208px; height:250px; border-style:none; }
-img_whs9 { border:none; width:220px; height:250px; float:none; border-style:none; }
-p.whs10 { list-style:disc; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs10 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nTransformation Operations\nFillet");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image89.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Fillet</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Fillet</B></span> in the Main Menu select 
- <span style="font-weight: bold;"><B>Operations - &gt; Transformation - &gt; 
- Fillet</B></span> &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">This operation creates<span style="font-weight: bold;"> 
- <B></B></span>fillets on the edges of a shape.</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b> GEOM_Object.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">To create fillets on all edges of the given 
- shape, you need to define the <span style="font-weight: bold;"><B>Main Object</B></span> 
- to create a fillet on and the <span style="font-weight: bold;"><B>Radius</B></span> 
- of the Fillet. &nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i>geompy.MakeFilletAll(Shape, R) </p>
-
-<p class="whs2"><span style="font-style: italic;"><I><b style="font-weight: bold;">A</I></span><span 
- style="font-weight: bold;"><B>rguments: </B></span></b>Name + 1 shape + 1 value 
- (fillet radius).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/fillet1.png" x-maintain-ratio="TRUE" width="312px" height="315px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">To create fillets on the specified edges or 
- faces of the given shape, &nbsp;you 
- need to define the <span style="font-weight: bold;"><B>Main Object</B></span> 
- to create a fillet on, select the necessary edges or faces in the OCC 
- Viewer and define the &nbsp;<span style="font-weight: bold;"><B>Radius</B></span> 
- of the Fillet. </p>
-
-<p class="whs2"><span style="font-style: italic;"><I><b style="font-weight: bold; font-style: normal;">TUI 
- Command:</b><i> </i>geompy.MakeFillet(Shape, R, ShapeType, ListShapes) 
- </I></span></p>
-
-<p class="whs2"><span style="font-style: italic;"><I><b style="font-weight: bold;">A</I></span><span 
- style="font-weight: bold;"><B>rguments: </B></span></b>Name + 1 shape + 1 Selection 
- of edges (or faces) + 1 value (Fillet radius).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/fillet2.png" x-maintain-ratio="TRUE" width="312px" height="346px" border="0" class="img_whs5"> &nbsp;<img src="pics/fillet3.png" x-maintain-ratio="TRUE" width="312px" height="346px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp; </p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs6">Fillet on all &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fillet 
- on an edge &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fillet 
- on a Face</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/fillet_all.png" x-maintain-ratio="TRUE" width="226px" height="250px" border="0" class="img_whs7"> &nbsp;&nbsp;<img src="pics/fillet_edge.png" x-maintain-ratio="TRUE" width="208px" height="250px" border="0" class="img_whs8"><span style="font-size: 12pt; margin-left: 40px;"> <font size=3 style="font-size:12pt;">&nbsp;<img src="pics/fillet_prism.png" x-maintain-ratio="TRUE" width="220px" height="250px" border="0" class="img_whs9"></font></span></p>
-
-<p class="whs10">&nbsp;&nbsp;</p>
-
-<p class="whs10"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our </font></span><span 
- style="font-weight: bold;"><B>TUI Scripts</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of <a href="transformation_operations.htm#bookmark3">Transformation 
- Operations</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/filling.htm b/doc/salome/gui/GEOM/filling.htm
deleted file mode 100755 (executable)
index 0eff734..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Filling</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:400px; height:367px; border-style:none; float:none; }
-img_whs5 { border:none; float:none; width:260px; height:230px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Complex Objects\nFilling");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image58.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</font></span>Filling 
- Surface with Edges</h1>
-
-<p><b><span style="font-weight: normal;">T</b>o</span> <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">generate 
- a </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Filling</B></font></span><span 
- style="font-size: 12pt;"> <font size=3 style="font-size:12pt;"></font></span>in the <span style="font-weight: bold;"><B>Main 
- Menu</B></span> select <span style="font-weight: bold;"><B>New Entity - &gt; 
- Generation &nbsp;- 
- &gt; Filling</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">To create a curving face using several edges 
- you need to define the <span style="font-weight: bold;"><B>Edges Compound,</B></span> 
- &nbsp;<span style="font-weight: bold;"><B>Minimum</B></span> 
- and <span style="font-weight: bold;"><B>Maximum Degree</B></span>, <span style="font-weight: bold;"><B>Tolerance 
- </B></span>for<span style="font-weight: bold;"><B> 2D</B></span> and for <span style="font-weight: bold;"><B>3D 
- </B></span>&nbsp;and 
- the <span style="font-weight: bold;"><B>Number of Iterations</B></span>. </p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of the operation will be a</span></b> 
- GEOM_Object (face).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeFilling(Shape, MinDegree, 
- MaxDegree, Tol2D, Tol3D, NbIter)</I></span>,</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 List of edges + 5 Parameters (Min. degree, Max. degree, Number 
- of iterations, 2D tolerance, 3D tolerance).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/filling.png" x-maintain-ratio="TRUE" width="400px" height="367px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/filling_compoundsn.png" x-maintain-ratio="TRUE" width="260px" height="230px" border="0" class="img_whs5"> <img src="pics/fillingsn.png" x-maintain-ratio="TRUE" width="260px" height="230px" border="0" class="img_whs5"> &nbsp;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="complex_objects.htm#bookmark2">Complex Geometric 
- Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/fuse.htm b/doc/salome/gui/GEOM/fuse.htm
deleted file mode 100755 (executable)
index f5895ca..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Fuse</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
-p.whs4 { font-size:12pt; margin-right:0in; margin-top:0px; margin-bottom:0px; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:324px; float:none; border-style:none; }
-p.whs6 { list-style:disc; margin-right:0in; margin-top:0px; margin-bottom:0px; margin-left:40px; }
-img_whs7 { border:none; float:none; width:252px; height:265px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs3 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs4 {margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs6 {margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nBoolean Operations\nFuse");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image3.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Fuse</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Fuse</B></span> operation in the Main Menu 
- select <span style="font-weight: bold;"><B>Operations - &gt; Boolean - &gt; 
- Fuse</B></span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><span 
- style="font-weight: normal;">This operation creates a shape from two</span> 
- </b>shapes.</font></span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><span 
- style="font-weight: normal;">The</span> Result<span style="font-weight: normal;"> 
- will be a</span></b> GEOM_Object (COMPOUND).</font></span></p>
-
-<p class="whs3"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Arguments:</b> 
- Name + 2 shapes.</font></span></p>
-
-<p class="whs3"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><span style="font-weight: bold;"><B>TUI 
- Command:</B></span> &nbsp;<span style="font-style: italic;"><I>geompy.MakeFuse(s1, 
- s2)</I></span> </font></span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="pics/bool1.png" x-maintain-ratio="TRUE" width="312px" height="324px" border="0" class="img_whs5"></font></span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Example:</b></font></span></p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="pics/fusesn1.png" x-maintain-ratio="TRUE" width="252px" height="265px" border="0" class="img_whs7"> &nbsp;<img src="pics/fusesn2.png" x-maintain-ratio="TRUE" width="252px" height="265px" border="0" class="img_whs7"></font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Our <span style="font-weight: bold;"><B>TUI Scripts</B></span> 
- provide you with useful examples of the use of <a href="boolean_operations.htm#bookmark">Boolean 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/geom.log b/doc/salome/gui/GEOM/geom.log
deleted file mode 100755 (executable)
index f73995a..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-|SourceProjectName:GEOM.hpr
-|DestinationProjectName:index.htm
-whhost.js
-whmsg.js
-whmozemu.js
-whproxy.js
-whstub.js
-whutils.js
-whver.js
-whform.js
-whphost.js
-whstart.js
-whtopic.js
-whframes.js
-whlang.js
-whskin_info.htm
-whskin_blank.htm
-whskin_pickup.htm
-whskin_homepage.htm
-whskin_tw.htm
-whnjs.htm
-whthost.js
-whtdhtml.htm
-whihost.js
-whibody.htm
-whiform.htm
-whfhost.js
-whfbody.htm
-whfform.htm
-whghost.js
-whgbody.htm
-whgdhtml.htm
-whgdef.htm
-whproj.js
-whproj.xml
-whproj.htm
-whxdata\whtoc.xml
-whxdata\whidx.xml
-whxdata\whfts.xml
-whxdata\whglo.xml
-whdata\whtoc.js
-whdata\whtoc.htm
-whdata\whtdata.js
-whdata\whidx.js
-whdata\whidx.htm
-whdata\whidata.js
-whdata\whfts.js
-whdata\whfts.htm
-whdata\whglo.js
-whdata\whglo.htm
-whdata\whgdata.js
-whdata\whftdata.js
-whdata\whfwdata.js
-whres.xml
-webhelp.jar
-webhelp.cab
-whgdata\whnvp30.htm
-whgdata\whnvp31.htm
-whgdata\whnvp32.htm
-whgdata\whnvp33.htm
-whgdata\whnvt30.htm
-whgdata\whnvt31.htm
-whgdata\whnvt32.htm
-whgdata\whnvt33.htm
-whgdata\whnvf30.htm
-whgdata\whnvf31.htm
-whgdata\whnvf32.htm
-whgdata\whnvf33.htm
-whgdata\whnvl31.htm
-whgdata\whnvl32.htm
-whgdata\whnvl33.htm
-whgdata\whexpbar.gif
-cshdat_webhelp.htm
-whcsh_home.htm
-whcshdata.htm
-cshdat_robohelp.htm
-whd_topic.xml
-whd_nvp10.htm
-whd_nvp20.htm
-whd_tabs.htm
-whd_dpns.htm
-whd_tab0.gif
-whd_tab1.gif
-whd_tab2.gif
-whd_tab3.gif
-whd_tab4.gif
-whd_tab5.gif
-whd_tab6.gif
-whd_tab7.gif
-whd_tab8.gif
-whd_toc1.gif
-whd_toc2.gif
-whd_toc3.gif
-whd_toc4.gif
-whd_show0.gif
-whd_show1.gif
-whd_show2.gif
-whd_hide0.gif
-whd_hide1.gif
-whd_hide2.gif
-whd_sync0.gif
-whd_sync1.gif
-whd_sync2.gif
-whd_prev0.gif
-whd_prev1.gif
-whd_prev2.gif
-whd_next0.gif
-whd_next1.gif
-whd_next2.gif
-whd_wbsh0.gif
-whd_wbsh1.gif
-whd_wbsh2.gif
-whidhtml.htm
-whfdhtml.htm
-index_hha.hhk
-index.hhc
-index.hhk
-add_point_on_edge.htm
-arc.htm
-archimede.htm
-basic_geometrical_objects.htm
-basic_operations.htm
-blocks_operations.htm
-boolean_operations.htm
-box.htm
-building_by_blocks.htm
-chamfer.htm
-change_orientation.htm
-changing_display_parameters.htm
-check_free_boundaries.htm
-check_free_faces.htm
-circle.htm
-close_contour.htm
-color.htm
-common.htm
-complex_objects.htm
-compound.htm
-cone.htm
-curve.htm
-cut.htm
-cylinder.htm
-edge.htm
-ellipse.htm
-explode.htm
-explode_on_blocks.htm
-extrusion.htm
-face.htm
-files\introduction_to_geom.htm
-files\salome2_sp3_booleangui_functions.htm
-files\salome2_sp3_geomtoolsgui_functions.htm
-files\salome2_sp3_measuregui_functions.htm
-fillet.htm
-filling.htm
-fuse.htm
-geometrical_objects.htm
-geometry.htm
-glue_faces.htm
-groups.htm
-isos.htm
-line.htm
-local_coordinate_system.htm
-measurement_tools.htm
-mirror_image.htm
-modify_the_location.htm
-multi_rotation.htm
-multi_transformation.htm
-multi_translation.htm
-newentity_blocks.htm
-occ_viewer.htm
-offset_surface.htm
-partition.htm
-pipe_creation.htm
-plane.htm
-point.htm
-primitives.htm
-propagate.htm
-repairing_operations.htm
-revolution.htm
-rotation.htm
-scale_transform.htm
-section.htm
-sewing.htm
-shape_processing.htm
-shell.htm
-sketcher.htm
-sketcher_tui.htm
-solid.htm
-sphere.htm
-suppress_faces.htm
-suppress_holes.htm
-suppress_internal_wires.htm
-transformation_operations.htm
-translation.htm
-transparency.htm
-turus.htm
-vector.htm
-viewing_geometrical_objects.htm
-wire.htm
-wireframe_and_shading.htm
-working_plane.htm
-working_with_groups.htm
-ehelp.xml
-index.glo
-default.css
-pics\image86.gif
-pics\image103.gif
-pics\image97.gif
-pics\chamfer_all.png
-pics\edgesn.png
-pics\boxes.png
-pics\mtrans1.png
-pics\transformation3.png
-pics\mtransf2.png
-image15.jpg
-image204.jpg
-image56.gif
-files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image73.gif
-files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image4.gif
-salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image17.gif
-pics\view_rotation_point.png
-pics\clipping.png
-pics\image98.gif
-pics\archimedesn1.png
-pics\neo-basicprop.png
-pics\mtrans2.png
-pics\transformation4.png
-pics\mtransf3.png
-pics\plane1.png
-image16.jpg
-image57.gif
-image35.gif
-files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image74.gif
-salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image18.gif
-pics\image105.gif
-pics\image99.gif
-pics\image88.gif
-pics\image77.gif
-pics\suppress_faces1.png
-pics\mirror_axissn1.png
-pics\archimedesn2.png
-pics\revolutionsn.png
-pics\ellipsesn.png
-pics\transformation10.png
-pics\transformation5.png
-pics\mtransf4.png
-pics\plane2.png
-image206.jpg
-files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image75.gif
-files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image30.gif
-salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image19.gif
-image26.gif
-image1.jpg
-pics\image106.gif
-pics\image89.gif
-pics\suppress_faces2.png
-pics\multi_translation1dsn.png
-pics\mirror_axissn2.png
-pics\multi_transformationsn2d.png
-pics\archimedesn3.png
-pics\wiresn.png
-pics\transformation11.png
-pics\transformation6.png
-pics\block1.png
-pics\pipe.png
-pics\torus1.png
-pics\plane3.png
-image59.gif
-image37.gif
-files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image87.gif
-files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image76.gif
-files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image31.gif
-image38.gif
-pics\multi_transformationsn1d.png
-pics\fillingsn.png
-pics\spheres.png
-pics\polyline.png
-pics\neo-obj1.png
-pics\repair1.png
-pics\transformation7.png
-pics\block2.png
-pics\torus2.png
-image27.gif
-image180.jpg
-image49.gif
-image109.jpg
-files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image131.gif
-files\salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image119.gif
-files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image88.gif
-files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image77.gif
-files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image32.gif
-image28.gif
-selectcolor.png
-pics\glue_faces1.png
-pics\supp_int_wires1.png
-pics\fusesn1.png
-pics\transparencysn.png
-pics\arcsn.png
-pics\points.png
-pics\neo-obj2.png
-pics\neo-localcs1.png
-pics\measures10.png
-pics\repair2.png
-pics\transformation8.png
-pics\block3.png
-image181.jpg
-files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image132.gif
-files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image89.gif
-files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image78.gif
-image3.jpg
-files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image33.gif
-image18.gif
-image1.gif
-pics\geomimport.png
-pics\neo-isos.png
-pics\glue_faces2.png
-pics\supp_int_wires2.png
-pics\sectionsn.png
-pics\fusesn2.png
-pics\toruses.png
-pics\circles.png
-pics\neo-obj3.png
-pics\neo-localcs2.png
-pics\measures1.png
-pics\repair3.png
-pics\transformation9.png
-pics\bool1.png
-pics\partition1.png
-pics\block4.png
-pics\sphere1.png
-image193.jpg
-image29.gif
-image160.jpg
-files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image133.gif
-files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image34.gif
-pics\partition2.png
-pics\changeorientation.png
-pics\pipesn.png
-pics\pipe_wire_edgesn.png
-image2.gif
-pics\chamfer_faces.png
-pics\fillet_prism.png
-pics\rotationsn1.png
-pics\disp_mode1sn.png
-pics\cones.png
-pics\planes1.png
-pics\lines.png
-pics\neo-obj4.png
-pics\neo-localcs3.png
-pics\repair4.png
-pics\bool2.png
-pics\block5.png
-pics\sphere2.png
-pics\point1.png
-pics\rotationsn2.png
-pics\disp_mode2sn.png
-pics\neo-detect2.png
-pics\neo-section.png
-pics\neo-obj5.png
-pics\measures3.png
-pics\repair5.png
-pics\bool3.png
-pics\chamfer1.png
-pics\filling.png
-pics\revolution.png
-pics\arc.png
-pics\ellipse.png
-pics\circle1.png
-image3.gif
-files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image56.gif
-pics\set_rotation_point_dialog1.png
-pics\extrusion1.png
-image4.gif
-pics\isos_u12_v12sn.png
-pics\free_boudaries1.png
-pics\multi_rotation1d1.png
-pics\multi_translation2dsn.png
-pics\offsetsn.png
-pics\compoundsn.png
-pics\prisms_basessn.png
-pics\cylinders.png
-pics\vectors.png
-pics\neo-obj6.png
-pics\measures4.png
-pics\repair6.png
-pics\chamfer2.png
-pics\cone1.png
-pics\circle2.png
-pics\point3.png
-image185.jpg
-files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image57.gif
-pics\set_rotation_point_dialog2.png
-pics\extrusion2.png
-image5.gif
-pics\free_boudaries2.png
-pics\multi_rotation2d1.png
-pics\multi_rotation1d2.png
-pics\mirror_pointsn1.png
-pics\new-tolerance.png
-pics\neo-obj7.png
-pics\neo-point2.png
-pics\measures5.png
-pics\repair7.png
-pics\chamfer3.png
-pics\cone2.png
-files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image58.gif
-files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image27.gif
-pics\image91.gif
-pics\chamfer_edge.png
-pics\fillet_edge.png
-pics\multi_rotation2d2.png
-pics\scale_transformsn1.png
-pics\mirror_pointsn2.png
-pics\cutsn.png
-pics\shellsn.png
-pics\filling_compoundsn.png
-pics\prismssn.png
-pics\neo-mrot1.png
-pics\repair8.png
-pics\cylinder1.png
-pics\vector1.png
-image61.gif
-image154.jpg
-image110.jpg
-files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image59.gif
-image40.gif
-pics\scale_transformsn2.png
-pics\translationsn1.png
-pics\facesn1.png
-pics\neo-mrot2.png
-pics\repair9.png
-pics\cylinder2.png
-pics\vector2.png
-image51.gif
-files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image128.gif
-files\salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image121.gif
-files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image90.gif
-files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image29.gif
-i_blue.jpg
-image30.gif
-pics\free_faces1.png
-pics\fillet_all.png
-pics\translationsn2.png
-pics\partitionsn1.png
-pics\colorsn.png
-pics\facesn2.png
-pics\interpol.png
-pics\measures8.png
-pics\fillet1.png
-pics\archimede.png
-pics\workplane4.png
-image52.gif
-image167.jpg
-image156.jpg
-image41.gif
-image145.jpg
-image112.jpg
-files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image129.gif
-files\salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image122.gif
-files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image100.gif
-files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image99.gif
-salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image13.gif
-pics\transformation4a.png
-pics\image100.gif
-pics\geomcreategroup.png
-pics\commonsn.png
-pics\free_faces2.png
-pics\mirror_planesn1.png
-pics\block_explodesn.png
-pics\partitionsn2.png
-pics\solidsn.png
-pics\facesn3.png
-pics\distance.png
-pics\neo-scetcher1.png
-pics\neo-transparency.png
-pics\measures9.png
-pics\fillet2.png
-pics\workplane5.png
-image53.gif
-image168.jpg
-image42.gif
-image113.jpg
-files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image101.gif
-files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image1.gif
-salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image14.gif
-image43.gif
-pics\image95.gif
-pics\mirror_planesn2.png
-pics\neo-scetcher2.png
-pics\transformation1.png
-pics\fillet3.png
-pics\box1.png
-pics\workplane6.png
-pics\curve.png
-pics\line.png
-image10.gif
-image32.gif
-files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image102.gif
-files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image71.gif
-files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image2.gif
-salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image15.gif
-image33.gif
-pics\image102.gif
-pics\image96.gif
-pics\geomexport.png
-pics\multi_translation_initialsn.png
-pics\plane_on_face.png
-pics\bezier.png
-pics\repair10.png
-pics\transformation2.png
-pics\mtransf1.png
-pics\editgroup.png
-pics\box2.png
-image44.gif
-files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image103.gif
-files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image72.gif
-files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image3.gif
-salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image16.gif
-ehlpdhtm.js
-index.ppf
-default_ns.css
-whxdata\whtdata0.xml
-whxdata\whftdata0.xml
-whxdata\whfwdata0.xml
-whxdata\whgdata0.xml
-whdata\whtdata0.htm
-whdata\whftdata0.htm
-whdata\whfwdata0.htm
-whdata\whgdata0.htm
-whgdata\whlstt0.htm
-whgdata\whlstt1.htm
-whgdata\whlstt2.htm
-whgdata\whlstt3.htm
-whgdata\whlstt4.htm
-whgdata\whlstt5.htm
-whgdata\whlstt6.htm
-whgdata\whlstt7.htm
-whgdata\whlstt8.htm
-whgdata\whlstt9.htm
-whgdata\whlstt10.htm
-whgdata\whlstt11.htm
-whgdata\whlstt12.htm
-whgdata\whlstt13.htm
-whgdata\whlstt14.htm
-whgdata\whlstt15.htm
-whgdata\whlstt16.htm
-whgdata\whlsti0.htm
-whgdata\whlstfl0.htm
-whgdata\whlstfl1.htm
-whgdata\whlstfl2.htm
-whgdata\whlstfl3.htm
-whgdata\whlstfl4.htm
-whgdata\whlstfl5.htm
-whgdata\whlstfl6.htm
-whgdata\whlstfl7.htm
-whgdata\whlstfl8.htm
-whgdata\whlstfl9.htm
-whgdata\whlstfl10.htm
-whgdata\whlstfl11.htm
-whgdata\whlstfl12.htm
-whgdata\whlstfl13.htm
-whgdata\whlstfl14.htm
-whgdata\whlstfl15.htm
-whgdata\whlstfl16.htm
-whgdata\whlstfl17.htm
-whgdata\whlstfl18.htm
-whgdata\whlstfl19.htm
-whgdata\whlstfl20.htm
-whgdata\whlstfl21.htm
-whgdata\whlstfl22.htm
-whgdata\whlstfl23.htm
-whgdata\whlstfl24.htm
-whgdata\whlstfl25.htm
-whgdata\whlstfl26.htm
-whgdata\whlstf0.htm
-whgdata\whlstf1.htm
-whgdata\whlstf2.htm
-whgdata\whlstf3.htm
-whgdata\whlstf4.htm
-whgdata\whlstf5.htm
-whgdata\whlstf6.htm
-whgdata\whlstf7.htm
-whgdata\whlstf8.htm
-whgdata\whlstf9.htm
-whgdata\whlstf10.htm
-whgdata\whlstf11.htm
-whgdata\whlstf12.htm
-whgdata\whlstf13.htm
-whgdata\whlstf14.htm
-whgdata\whlstg0.htm
-index.htm
-index_csh.htm
-index_rhc.htm
diff --git a/doc/salome/gui/GEOM/geometrical_objects.htm b/doc/salome/gui/GEOM/geometrical_objects.htm
deleted file mode 100755 (executable)
index 2ef298e..0000000
+++ /dev/null
@@ -1,570 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Geometrical Objects</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
-p.whs2 { font-family:'Times New Roman' , serif; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nCreating Geometric Objects\nAdvanced Geometrical Objects");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Advanced Geometrical Objects</h1>
-
-<h3><a name=bookmark>Creation of an Edge</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p0 &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 0. &nbsp;, 0. 
- &nbsp;)</p>
-
-<p class="whs1">pxyz = geompy.MakeVertex(100., 
- 100., 100.)</p>
-
-<p>&nbsp;</p>
-
-<p># create an edge</p>
-
-<p class="whs1">edge = geompy.MakeEdge(p0, 
- pxyz)</p>
-
-<p>&nbsp;</p>
-
-<p># add object in the study</p>
-
-<p class="whs1">id_edge = geompy.addToStudy(edge,&quot;Edge&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display an edge</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_edge) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=Creation>Creation of a Wire</a></h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># create vertices</p>
-
-<p class="whs1">px &nbsp;&nbsp;= 
- geompy.MakeVertex(100., 0. &nbsp;, 
- 0. &nbsp;)</p>
-
-<p class="whs1">py &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 100., 0. &nbsp;)</p>
-
-<p class="whs1">pz &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 0. &nbsp;, 100.)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># create a vector from 
- two points</p>
-
-<p class="whs1">vxy = geompy.MakeVector(px, 
- py)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create an arc from 
- three points</p>
-
-<p class="whs1">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vxy, 
- arc])</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># add an object in the 
- study</p>
-
-<p class="whs1">id_wire = geompy.addToStudy(wire,&quot;Wire&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># display the wire</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_wire) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark1>Creation of a Face</a></h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create vertices</p>
-
-<p class="whs1">p0 &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 0. &nbsp;, 0. 
- &nbsp;)</p>
-
-<p class="whs1">px &nbsp;&nbsp;= 
- geompy.MakeVertex(100., 0. &nbsp;, 
- 0. &nbsp;)</p>
-
-<p class="whs1">py &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 100., 0. &nbsp;)</p>
-
-<p class="whs1">pz &nbsp;&nbsp;= 
- geompy.MakeVertex(0. &nbsp;, 
- 0. &nbsp;, 100.)</p>
-
-<p class="whs1">pxyz = geompy.MakeVertex(100., 
- 100., 100.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a vector from 
- two points</p>
-
-<p class="whs1">vxy = geompy.MakeVector(px, 
- py)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create an arc from 
- three points</p>
-
-<p class="whs1">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vxy, 
- arc])</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create sketchers</p>
-
-<p class="whs1">sketcher1 = geompy.MakeSketcher(&quot;Sketcher:F 
- -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WW&quot;,</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[100,0,0, 
- 1,1,1, -1,1,0])</p>
-
-<p class="whs1">sketcher2 = geompy.MakeSketcher(&quot;Sketcher:F 
- 0 0:TT 70 0:TT 70 70:TT 0 70:WW&quot;)</p>
-
-<p class="whs1">sketcher3 = geompy.MakeSketcher(&quot;Sketcher:F 
- 20 20:TT 50 20:TT 50 50:TT 20 50:WW&quot;)</p>
-
-<p class="whs1">isPlanarFace = 1</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a face from 
- the wire</p>
-
-<p class="whs1">face1 = geompy.MakeFace(wire, 
- isPlanarFace)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create faces from two 
- wires</p>
-
-<p class="whs1">face2 = geompy.MakeFaceWires([wire, 
- sketcher1],isPlanarFace)</p>
-
-<p class="whs1">face3 = geompy.MakeFaces([sketcher2, 
- sketcher3],isPlanarFace)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add objects in the 
- study</p>
-
-<p class="whs1">id_face1 = geompy.addToStudy(face1,&quot;Face1&quot;)</p>
-
-<p class="whs1">id_face2 = geompy.addToStudy(face2,&quot;Face2&quot;)</p>
-
-<p class="whs1">id_face3 = geompy.addToStudy(face3,&quot;Face3&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># display the faces</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_face1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_face1,1)</p>
-
-<p class="whs1">gg.setTransparency(id_face1,0.2)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_face2)</p>
-
-<p class="whs1">gg.setDisplayMode(id_face2,1)</p>
-
-<p class="whs1">gg.setTransparency(id_face2,0.2)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_face3)</p>
-
-<p class="whs1">gg.setDisplayMode(id_face3,1)</p>
-
-<p class="whs1">gg.setTransparency(id_face3,0.2) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark2>Creation of a Shell</a></h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2">#create vertices</p>
-
-<p class="whs1">p0 &nbsp;&nbsp;= 
- geompy.MakeVertex( 0., &nbsp;0., 
- &nbsp;0.)</p>
-
-<p class="whs1">pxyz = geompy.MakeVertex( 
- 5., &nbsp;5., 
- 40.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create sketchers</p>
-
-<p class="whs1">sketcher1 = geompy.MakeSketcher(&quot;Sketcher:F 
- 0 0:TT 70 0:TT 70 70:TT 0 70:WW&quot;)</p>
-
-<p class="whs1">sketcher2 = geompy.MakeSketcher(&quot;Sketcher:F 
- 20 20:TT 50 20:TT 50 50:TT 20 50:WW&quot;)</p>
-
-<p class="whs1">isPlanarFace = 1</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a face from 
- two wires</p>
-
-<p class="whs1">face = geompy.MakeFaces([sketcher1, 
- sketcher2],isPlanarFace)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a prism</p>
-
-<p class="whs1">prism = geompy.MakePrism(face, 
- p0, pxyz)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># explode the prism into 
- faces</p>
-
-<p class="whs1">prism_faces = geompy.SubShapeAllSorted(prism, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a shell from 
- a set of faces</p>
-
-<p class="whs1">shell = geompy.MakeShell([prism_faces[0], 
- prism_faces[2], prism_faces[3],</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prism_faces[7], 
- prism_faces[9]])</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add objects in the 
- study</p>
-
-<p class="whs1">id_shell = geompy.addToStudy(shell,&quot;Shell&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># display the shell</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_shell)</p>
-
-<p class="whs1">gg.setDisplayMode(id_shell,1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark3>Creation of a Solid</a></h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2">#create vertices</p>
-
-<p class="whs1">p0 = geompy.MakeVertex( 
- 0., &nbsp;0., 
- &nbsp;0.)</p>
-
-<p class="whs1">pz = geompy.MakeVertex( 
- 0., &nbsp;0., 
- 40.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create sketchers</p>
-
-<p class="whs1">sketcher = geompy.MakeSketcher(&quot;Sketcher:F 
- -50 -50:TT 100 -50:R 0:C 50 70:R 0:L 100:WW&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create faces from two 
- wires</p>
-
-<p class="whs1">face = geompy.MakeFace(sketcher,1)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a prism</p>
-
-<p class="whs1">prism = geompy.MakePrism(face, 
- p0, pz)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># explode the prism into 
- faces</p>
-
-<p class="whs1">prism_faces = geompy.SubShapeAllSorted(prism, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a shell from 
- a set of faces</p>
-
-<p class="whs1">shell = geompy.MakeShell([prism_faces[0], 
- prism_faces[1],</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prism_faces[3], 
- prism_faces[4],</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prism_faces[5], 
- prism_faces[2]])</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a solid, bounded 
- by the given shells</p>
-
-<p class="whs1">solid = geompy.MakeSolid([shell])</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add objects in the 
- study</p>
-
-<p class="whs1">id_solid = geompy.addToStudy(solid,&quot;Solid&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># display the solid</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_solid)</p>
-
-<p class="whs1">gg.setDisplayMode(id_solid,1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark4>Creation of a Compound</a></h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a vertex and 
- a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex( 
- &nbsp;-30., &nbsp;-30., 
- &nbsp;50.)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- &nbsp;-60., &nbsp;-60., 
- &nbsp;30.)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex( 
- &nbsp;-30., &nbsp;-30., 
- &nbsp;10.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create an arc from 
- three points</p>
-
-<p class="whs1">arc = geompy.MakeArc(p1, 
- p2, p3)</p>
-
-<p class="whs1">ShapeListCompound 
- = []</p>
-
-<p class="whs1">i = 0</p>
-
-<p class="whs1">while i &lt;= 3 :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;S 
- = geompy.MakeTranslation(arc, i * 50., 0., 0.)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;ShapeListCompound.append(S)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;i 
- = i + 1</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a compund of 
- the given shapes</p>
-
-<p class="whs1">compound = geompy.MakeCompound(ShapeListCompound)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add object in the study</p>
-
-<p class="whs1">id_compound = geompy.addToStudy(compound,&quot;Compound&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># display the compound</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_compound) 
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/geometry.htm b/doc/salome/gui/GEOM/geometry.htm
deleted file mode 100755 (executable)
index 7a68cf4..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>geometry</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:30px; height:30px; float:none; border-style:none; }
-ul.whs2 { list-style:disc; }
-table.whs3 { x-cell-content-align:top; width:100%; border-spacing:0px; }
-col.whs4 { width:50%; }
-tr.whs5 { x-cell-content-align:top; }
-td.whs6 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
-td.whs7 { width:50%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
-img_whs8 { border:none; width:400px; height:292px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nIntroduction to Geometry");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Introduction to Geometry</h1>
-
-<p><img src="i_blue.jpg" x-maintain-ratio="TRUE" width="30px" height="30px" border="0" class="img_whs1"><span style="font-weight: bold;"><B>Geometry </B></span>module 
- of SALOME is destined for: </p>
-
-<p>&nbsp;</p>
-
-<ul type="disc" class="whs2">
-       
-       <li class=kadov-p><p>Import and export of geometrical models in IGES, 
- BREP and STEP formats.</p></li>
-       
-       <li class=kadov-p><p>Construction and optimization of geometrical models 
- using a wide range of &nbsp;CAD 
- functions:</p></li>
-</ul>
-
-<p>&nbsp;</p>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs3">
-<col class="whs4">
-<col class="whs4">
-
-<tr valign="top" class="whs5">
-<td width="50%" class="whs6">
-<ul type="disc" class="whs2">
-       
-       <li class=kadov-p><p>Creation of basic geometrical objects</p></li>
-       
-       <li class=kadov-p><p>Construction of primitives</p></li>
-       
-       <li class=kadov-p><p>Building shapes</p></li>
-       
-       <li class=kadov-p><p>Generation of complex shapes</p></li>
-       
-       <li class=kadov-p><p>Working with groups</p></li>
-       
-       <li class=kadov-p><p>Geometrical repairing of objects</p></li>
-       
-       <li class=kadov-p><p>Geometrical boolean operations</p></li>
-       
-       <li class=kadov-p><p>Geometrical transformations</p></li>
-       
-       <li class=kadov-p><p>Building by blocks</p></li>
-</ul>
-<p>&nbsp;</td>
-<td width="50%" class="whs7">
-<p><img src="image3.jpg" width="400px" height="292px" border="0" class="img_whs8"></td></tr>
-</table>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1geompyDC.html b/doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1geompyDC.html
new file mode 100644 (file)
index 0000000..60cc4ce
--- /dev/null
@@ -0,0 +1,9410 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacegeompyDC.html">geompyDC</a>.<a class="el" href="classgeompyDC_1_1geompyDC.html">geompyDC</a></div>
+<h1>geompyDC.geompyDC Class Reference</h1><!-- doxytag: class="geompyDC::geompyDC" --><!-- doxytag: inherits="GEOM::_objref_GEOM_Gen" -->Inheritance diagram for geompyDC.geompyDC:<p><center><img src="classgeompyDC_1_1geompyDC__inherit__graph.jpg" border="0" usemap="#geompyDC_8geompyDC__inherit__map" alt="Inheritance graph"></center>
+<map name="geompyDC_8geompyDC__inherit__map">
+<area href="classGEOM_1_1__objref__GEOM__Gen.html" shape="rect" coords="8,9,202,33" alt="">
+</map>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#af8ddd61672905dce7b92a9a743663ff">__init__</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#25ea0aecb6d8820d25978244778ca819">init_geom</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#1949a3db14d23baada3e1841e0baa5ae">SubShapeName</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name for sub-shape aSubObj of shape aMainObj.  <a href="#1949a3db14d23baada3e1841e0baa5ae"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#7db0dfa66baae9698555a059b1aba887">addToStudy</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Publish in study aShape with name aName.  <a href="#7db0dfa66baae9698555a059b1aba887"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ee026f3fcb1fa99e51c655533cf2c1ef">addToStudyInFather</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Publish in study aShape with name aName as sub-object of previously published aFather.  <a href="#ee026f3fcb1fa99e51c655533cf2c1ef"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#d10907eea3fcd77b5c0616314c8c0cf8">MakeVertex</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create point by three coordinates.  <a href="#d10907eea3fcd77b5c0616314c8c0cf8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#a234e4855a340079db1f4106799fb97c">MakeVertexWithRef</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a point, distant from the referenced point on the given distances along the coordinate axes.  <a href="#a234e4855a340079db1f4106799fb97c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#60990e3d531796d90776bb3bfba9f1e0">MakeVertexOnCurve</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a point, corresponding to the given parameter on the given curve.  <a href="#60990e3d531796d90776bb3bfba9f1e0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#696c7e5a4c1ea2a7c99202e55ed90629">MakeTangentOnCurve</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a tangent, corresponding to the given parameter on the given curve.  <a href="#696c7e5a4c1ea2a7c99202e55ed90629"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#d63565ee22d104df4c7d4f6bfe60f2b5">MakeVectorDXDYDZ</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a vector with the given components.  <a href="#d63565ee22d104df4c7d4f6bfe60f2b5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#a555df198725426a1dd01b332767d131">MakeVector</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a vector between two points.  <a href="#a555df198725426a1dd01b332767d131"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#aa0cc8bfc8b0459e1553744b3d1cd967">MakeLine</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a line, passing through the given point and parrallel to the given direction.  <a href="#aa0cc8bfc8b0459e1553744b3d1cd967"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#dd8cf59821f38e96cf4649f8a6f542bb">MakeLineTwoPnt</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a line, passing through the given points.  <a href="#dd8cf59821f38e96cf4649f8a6f542bb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ca603ee3632caf15e8a67c84e53d260e">MakePlane</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a plane, passing through the given point and normal to the given vector.  <a href="#ca603ee3632caf15e8a67c84e53d260e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#34df128a5c5b1cf1d17a8d908f504109">MakePlaneThreePnt</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a plane, passing through the three given points.  <a href="#34df128a5c5b1cf1d17a8d908f504109"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#a485bef0e5de72c0a9def2be78a8f5dc">MakePlaneFace</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a plane, similar to the existing one, but with another size of representing face.  <a href="#a485bef0e5de72c0a9def2be78a8f5dc"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#50cfea162620f440c57035f185e86be8">MakeMarker</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a local coordinate system.  <a href="#50cfea162620f440c57035f185e86be8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#d20661db76229799278b218fe8876b9c">MakeMarkerPntTwoVec</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a local coordinate system.  <a href="#d20661db76229799278b218fe8876b9c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#5ec980592e1667a038e73e33c897dc8a">MakeArc</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an arc of circle, passing through three given points.  <a href="#5ec980592e1667a038e73e33c897dc8a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#9235be0a43fa6a3530cde2f2a178c6a1">MakeArcCenter</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an arc of circle from a center and 2 points.  <a href="#9235be0a43fa6a3530cde2f2a178c6a1"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#a8c53f522639686427623ef671680a69">MakeCircle</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a circle with given center, normal vector and radius.  <a href="#a8c53f522639686427623ef671680a69"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#174e1bf2c1ca1a1385fdadbef4498a71">MakeCircleThreePnt</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a circle, passing through three given points.  <a href="#174e1bf2c1ca1a1385fdadbef4498a71"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#8a6255b5b91a1b4d3662eeba16fb181e">MakeEllipse</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an ellipse with given center, normal vector and radiuses.  <a href="#8a6255b5b91a1b4d3662eeba16fb181e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ba71e6507ea026a9a583af92e86a4abe">MakePolyline</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a polyline on the set of points.  <a href="#ba71e6507ea026a9a583af92e86a4abe"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#1bc25a4b112a7d0c835f95548c059fee">MakeBezier</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create bezier curve on the set of points.  <a href="#1bc25a4b112a7d0c835f95548c059fee"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#0779d8a2ca8b62f171cbde07224abe61">MakeInterpol</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create B-Spline curve on the set of points.  <a href="#0779d8a2ca8b62f171cbde07224abe61"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ebd8e665d93f32edc49caf185bd679d5">MakeSketcher</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a sketcher (wire or face), following the textual description, passed through <em>theCommand</em> argument.  <a href="#ebd8e665d93f32edc49caf185bd679d5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#cb2d962f65e8b2e44c290cc8f9b1394d">MakeSketcherOnPlane</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a sketcher (wire or face), following the textual description, passed through <em>theCommand</em> argument.  <a href="#cb2d962f65e8b2e44c290cc8f9b1394d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#7f67b75d315b058a9dbfd0fcae8436c3">MakeBox</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a box by coordinates of two opposite vertices.  <a href="#7f67b75d315b058a9dbfd0fcae8436c3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#26a427a3ad940830e2edb3fa5505cb36">MakeBoxDXDYDZ</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a box with specified dimensions along the coordinate axes and with edges, parallel to the coordinate axes.  <a href="#26a427a3ad940830e2edb3fa5505cb36"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#b337e6c6ab478f0d793954be1bd9cb2c">MakeBoxTwoPnt</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a box with two specified opposite vertices, and with edges, parallel to the coordinate axes.  <a href="#b337e6c6ab478f0d793954be1bd9cb2c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#bc2fe5ba9c9c88249580b50209100433">MakeCylinder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a cylinder with given base point, axis, radius and height.  <a href="#bc2fe5ba9c9c88249580b50209100433"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#b3df1c40baa03e45ec7094d146e8b963">MakeCylinderRH</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a cylinder with given radius and height at the origin of coordinate system.  <a href="#b3df1c40baa03e45ec7094d146e8b963"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#81579f2f47da0cc1d6097e1faadf2dd5">MakeSpherePntR</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a sphere with given center and radius.  <a href="#81579f2f47da0cc1d6097e1faadf2dd5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#07a746f0b76020bbb7282c2e838bd409">MakeSphere</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a sphere with given center and radius.  <a href="#07a746f0b76020bbb7282c2e838bd409"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#fb3e149785a70bf4203f477afc0c835e">MakeSphereR</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a sphere with given radius at the origin of coordinate system.  <a href="#fb3e149785a70bf4203f477afc0c835e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#e30b53da3c95b228eb8c834b5854ef14">MakeCone</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a cone with given base point, axis, height and radiuses.  <a href="#e30b53da3c95b228eb8c834b5854ef14"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#0fd12dd339d9640f7ffa0917b8532bb0">MakeConeR1R2H</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a cone with given height and radiuses at the origin of coordinate system.  <a href="#0fd12dd339d9640f7ffa0917b8532bb0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#3626eac4fedc7273364e21221fa88788">MakeTorus</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a torus with given center, normal vector and radiuses.  <a href="#3626eac4fedc7273364e21221fa88788"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ee9c1c4391a974f97558960e90e7bb58">MakeTorusRR</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a torus with given radiuses at the origin of coordinate system.  <a href="#ee9c1c4391a974f97558960e90e7bb58"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#235c3c3893cd30d3fd2d6c75df0b9b85">MakePrism</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by extrusion of the base shape along a vector, defined by two points.  <a href="#235c3c3893cd30d3fd2d6c75df0b9b85"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ed885f2bf6c39f0aba6f7773b36acceb">MakePrismVecH</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by extrusion of the base shape along the vector, i.e.  <a href="#ed885f2bf6c39f0aba6f7773b36acceb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ea1248fca4762d449c8f623df461dc1b">MakePipe</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by extrusion of the base shape along the path shape.  <a href="#ea1248fca4762d449c8f623df461dc1b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#f1e4818545a58c6fca5917f4f2600d9c">MakeRevolution</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by revolution of the base shape around the axis on the given angle, i.e.  <a href="#f1e4818545a58c6fca5917f4f2600d9c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#2cebf57322ef8812857c0e18935b2e50">MakeThruSections</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.  <a href="#2cebf57322ef8812857c0e18935b2e50"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#9614d962ed7d981dd795367500e932e4">MakePipeWithDifferentSections</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by extrusion of the profile shape along the path shape.  <a href="#9614d962ed7d981dd795367500e932e4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#f0be52d1562df21a8c8d1c5e19cfd986">MakePipeWithShellSections</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by extrusion of the profile shape along the path shape.  <a href="#f0be52d1562df21a8c8d1c5e19cfd986"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#28931fb5811e065bca98d33c72ae3bcd">MakeEdge</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a linear edge with specified ends.  <a href="#28931fb5811e065bca98d33c72ae3bcd"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#a8bbbcb09ca5166b32cfca437388ce53">MakeWire</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a wire from the set of edges and wires.  <a href="#a8bbbcb09ca5166b32cfca437388ce53"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#cdb6873ee6002347bb02cc3a58282609">MakeFace</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a face on the given wire.  <a href="#cdb6873ee6002347bb02cc3a58282609"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#e29525e7b4291b7068a540a6849e958e">MakeFaceWires</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a face on the given wires set.  <a href="#e29525e7b4291b7068a540a6849e958e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#a0c086da24dc52a36e393403e67fb602">MakeFaces</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="classgeompyDC_1_1geompyDC.html#e29525e7b4291b7068a540a6849e958e">MakeFaceWires()</a>.  <a href="#a0c086da24dc52a36e393403e67fb602"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#f05fc666dd12c4c3b9d9e24ea6bb8e4c">MakeShell</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shell from the set of faces and shells.  <a href="#f05fc666dd12c4c3b9d9e24ea6bb8e4c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#46ac42b6d0801facaf94f0219a98519d">MakeSolid</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a solid, bounded by the given shells.  <a href="#46ac42b6d0801facaf94f0219a98519d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#4291d93976b7ce6dd54e50bae3f0f2a7">MakeCompound</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a compound of the given shapes.  <a href="#4291d93976b7ce6dd54e50bae3f0f2a7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#38f585da48e36d0111edb5855a55cbfb">NumberOfFaces</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gives quantity of faces in the given shape.  <a href="#38f585da48e36d0111edb5855a55cbfb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#7e3d02b87d35cce98b8cf9ae0fe6b8ef">NumberOfEdges</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gives quantity of edges in the given shape.  <a href="#7e3d02b87d35cce98b8cf9ae0fe6b8ef"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#030b12f8bf19341b7fb19c8b6f78560c">ChangeOrientation</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reverses an orientation the given shape.  <a href="#030b12f8bf19341b7fb19c8b6f78560c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#07154c139fe6ed7035fdea3e4eeecf7a">OrientationChange</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="classgeompyDC_1_1geompyDC.html#030b12f8bf19341b7fb19c8b6f78560c">ChangeOrientation()</a>.  <a href="#07154c139fe6ed7035fdea3e4eeecf7a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#f17be89e3cd53f3c0f39c2edd65b0fac">GetFreeFacesIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve all free faces from the given shape.  <a href="#f17be89e3cd53f3c0f39c2edd65b0fac"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#9fd58edacf404f79755e7dc844252afd">GetSharedShapes</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get all sub-shapes of theShape1 of the given type, shared with theShape2.  <a href="#9fd58edacf404f79755e7dc844252afd"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#f9b62ee841439c13d856a2278133d685">GetShapesOnPlane</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified plane by the certain way, defined through <em>theState</em> parameter.  <a href="#f9b62ee841439c13d856a2278133d685"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#68097cda152e42c34570c91205247290">GetShapesOnPlaneIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#68097cda152e42c34570c91205247290"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#651b14d212b23eaa194cb8cc1e4a92df">GetShapesOnPlaneWithLocation</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified plane by the certain way, defined through <em>theState</em> parameter.  <a href="#651b14d212b23eaa194cb8cc1e4a92df"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ef1c337288dd469d08c6491a1bf1902c">GetShapesOnPlaneWithLocationIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#ef1c337288dd469d08c6491a1bf1902c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#efbe51fb2bab5123c12b233285393066">GetShapesOnCylinder</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified cylinder by the certain way, defined through <em>theState</em> parameter.  <a href="#efbe51fb2bab5123c12b233285393066"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#da671d7d2fa64f3fe87df7c055b83825">GetShapesOnCylinderIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#da671d7d2fa64f3fe87df7c055b83825"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ae6c2f5224df29424ca077575eabd736">GetShapesOnSphere</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified sphere by the certain way, defined through <em>theState</em> parameter.  <a href="#ae6c2f5224df29424ca077575eabd736"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#3987180dd23e4c175ed948a58a6cf660">GetShapesOnSphereIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#3987180dd23e4c175ed948a58a6cf660"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ea27e6fad8151ea201e4f723c4a428a8">GetShapesOnQuadrangle</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified quadrangle by the certain way, defined through <em>theState</em> parameter.  <a href="#ea27e6fad8151ea201e4f723c4a428a8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#1fab06e08781150f37917ac559cc2aa4">GetShapesOnQuadrangleIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#1fab06e08781150f37917ac559cc2aa4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#1ea715c4d4e4d0f4c5e7919f2d83d4e6">GetShapesOnBox</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified <em>theBox</em> by the certain way, defined through <em>theState</em> parameter.  <a href="#1ea715c4d4e4d0f4c5e7919f2d83d4e6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#73015991fea1f7bb78c7436d7ec2ebb0">GetShapesOnBoxIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#73015991fea1f7bb78c7436d7ec2ebb0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#67ae7cef36629d18c93c5a102dee00c3">GetInPlace</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get sub-shape(s) of theShapeWhere, which are coincident with <em>theShapeWhat</em> or could be a part of it.  <a href="#67ae7cef36629d18c93c5a102dee00c3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#eed964a4cd665e5e26b9becd7c260d7b">GetSame</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get sub-shape of theShapeWhere, which is equal to <em>theShapeWhat</em>.  <a href="#eed964a4cd665e5e26b9becd7c260d7b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#83963a360d309689ba837d8e316466c1">GetSubShape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain a composite sub-shape of &lt;aShape&gt;, composed from sub-shapes of &lt;aShape&gt;, selected by their unique IDs inside &lt;aShape&gt;.  <a href="#83963a360d309689ba837d8e316466c1"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#b3cf4c129a0316ffbe7904021762549c">GetSubShapeID</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain unique ID of sub-shape &lt;aSubShape&gt; inside &lt;aShape&gt;.  <a href="#b3cf4c129a0316ffbe7904021762549c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#78fa5a06b26d7d924c08892e963f3457">SubShapeAll</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Explode a shape on subshapes of a given type.  <a href="#78fa5a06b26d7d924c08892e963f3457"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#c08bbd0e4324de005e144b0bd71a62fd">SubShapeAllIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Explode a shape on subshapes of a given type.  <a href="#c08bbd0e4324de005e144b0bd71a62fd"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#f6bf69ac9180b0ae6c782445d56f2c59">SubShapeAllSorted</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Explode a shape on subshapes of a given type.  <a href="#f6bf69ac9180b0ae6c782445d56f2c59"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#5e36eda3a11edc37146e5e73dd118e81">SubShapeAllSortedIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Explode a shape on subshapes of a given type.  <a href="#5e36eda3a11edc37146e5e73dd118e81"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#0092ca7fbc9ed8d824f6a0f932793e47">SubShape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain a compound of sub-shapes of &lt;aShape&gt;, selected by they indices in list of all sub-shapes of type &lt;aType&gt;.  <a href="#0092ca7fbc9ed8d824f6a0f932793e47"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#bdacf7906482aacc2d5db144847f2d89">SubShapeSorted</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain a compound of sub-shapes of &lt;aShape&gt;, selected by they indices in sorted list of all sub-shapes of type &lt;aType&gt;.  <a href="#bdacf7906482aacc2d5db144847f2d89"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#cd3999b10bc598e794c72f5d0100fce5">ProcessShape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a sequence of Shape Healing operators to the given object.  <a href="#cd3999b10bc598e794c72f5d0100fce5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#bbaee711561a402bdd0741ec11471278">SuppressFaces</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove faces from the given object (shape).  <a href="#bbaee711561a402bdd0741ec11471278"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#036ad990f98656d408899bfcd5ece429">MakeSewing</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sewing of some shapes into single shape.  <a href="#036ad990f98656d408899bfcd5ece429"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#8d560be7edd550c5d99efa7d5500983d">Sew</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sewing of the given object.  <a href="#8d560be7edd550c5d99efa7d5500983d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#32d8bab454d23c5081af3cf351da2dbc">SuppressInternalWires</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove internal wires and edges from the given object (face).  <a href="#32d8bab454d23c5081af3cf351da2dbc"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#3bb048fd0a24d95d5477d315f06613ff">SuppressHoles</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove internal closed contours (holes) from the given object.  <a href="#3bb048fd0a24d95d5477d315f06613ff"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#68a586d816212080969fe6ee4f19462d">CloseContour</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close an open wire.  <a href="#68a586d816212080969fe6ee4f19462d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#7d5999f697974ede4dc7e2bd8bda35a9">DivideEdge</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Addition of a point to a given edge object.  <a href="#7d5999f697974ede4dc7e2bd8bda35a9"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#28ff08bd5c4bc952201dc0cef7402d9b">ChangeOrientationShell</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change orientation of the given object.  <a href="#28ff08bd5c4bc952201dc0cef7402d9b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#41fb7f3129e0cd4dd7fe464d18fba515">ChangeOrientationShellCopy</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change orientation of the given object.  <a href="#41fb7f3129e0cd4dd7fe464d18fba515"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#4ed122bb69d03337a8660f1a550916d8">GetFreeBoundary</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a list of wires (wrapped in GEOM_Object-s), that constitute a free boundary of the given shape.  <a href="#4ed122bb69d03337a8660f1a550916d8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#e9bfb58d56f250fd0cb515e3523ac64e">MakeCopy</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a copy of the given object.  <a href="#e9bfb58d56f250fd0cb515e3523ac64e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#3f2195ae25913232c21e0b9fe4d14645">MakeFilling</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a filling from the given compound of contours.  <a href="#3f2195ae25913232c21e0b9fe4d14645"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#8b789fb1eac91f08fed5643735ef82f2">MakeGlueFaces</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Replace coincident faces in theShape by one face.  <a href="#8b789fb1eac91f08fed5643735ef82f2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#34bb9c3bfcf52999473f8ed6849d8226">GetGlueFaces</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find coincident faces in theShape for possible gluing.  <a href="#34bb9c3bfcf52999473f8ed6849d8226"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#a025213e01e49556bccf2b98e67597a8">MakeGlueFacesByList</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Replace coincident faces in theShape by one face in compliance with given list of faces.  <a href="#a025213e01e49556bccf2b98e67597a8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#f867726a40416a5a56c61016cc973a6d">MakeBoolean</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform one of boolean operations on two given shapes.  <a href="#f867726a40416a5a56c61016cc973a6d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#e8233b6151298410ca8a0a27f938de31">MakeCommon</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to MakeBoolean(s1, s2, 1).  <a href="#e8233b6151298410ca8a0a27f938de31"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#1811661330f4b7497d231898153623e1">MakeCut</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to MakeBoolean(s1, s2, 2).  <a href="#1811661330f4b7497d231898153623e1"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#91cedb6151173844ea4774b2594d3ede">MakeFuse</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to MakeBoolean(s1, s2, 3).  <a href="#91cedb6151173844ea4774b2594d3ede"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#db309b5427f795aa4468380a319cf13b">MakeSection</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to MakeBoolean(s1, s2, 4).  <a href="#db309b5427f795aa4468380a319cf13b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#693e98c94226019c732c577f4e2bae08">MakePartition</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform partition operation.  <a href="#693e98c94226019c732c577f4e2bae08"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#91a00e9db2eaa9bde1b8d2c34c92b299">MakePartitionNonSelfIntersectedShape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform partition operation.  <a href="#91a00e9db2eaa9bde1b8d2c34c92b299"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#a48ac8ff0e107f4d8e93bd664ca8bf15">Partition</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="classgeompyDC_1_1geompyDC.html#693e98c94226019c732c577f4e2bae08">MakePartition()</a>.  <a href="#a48ac8ff0e107f4d8e93bd664ca8bf15"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#8cc6a68037fff53d6d525a96df5fa669">MakeHalfPartition</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform partition of the Shape with the Plane.  <a href="#8cc6a68037fff53d6d525a96df5fa669"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ae13dcb7c8887b5a041fb6db9132bf49">MakeTranslationTwoPoints</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate the given object along the vector, specified by its end points, creating its copy before the translation.  <a href="#ae13dcb7c8887b5a041fb6db9132bf49"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#7ad489d0ca9d6105742129bb18b9b949">MakeTranslation</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate the given object along the vector, specified by its components, creating its copy before the translation.  <a href="#7ad489d0ca9d6105742129bb18b9b949"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#d9d5fd17912e5f49ba4b9eccef1cfeaf">MakeTranslationVector</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate the given object along the given vector, creating its copy before the translation.  <a href="#d9d5fd17912e5f49ba4b9eccef1cfeaf"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#dd060f21b775de207551c4b6e435e56c">MakeRotation</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotate the given object around the given axis on the given angle, creating its copy before the rotatation.  <a href="#dd060f21b775de207551c4b6e435e56c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#607eb745f4538c19eb12ae3517d39007">MakeRotationThreePoints</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotate given object around vector perpendicular to plane containing three points, creating its copy before the rotatation.  <a href="#607eb745f4538c19eb12ae3517d39007"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#56de5cb4e4835ec2d52a226e392ebb15">MakeScaleTransform</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scale the given object by the factor, creating its copy before the scaling.  <a href="#56de5cb4e4835ec2d52a226e392ebb15"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#24217f6fdddd62d6539c1b964f175b38">MakeMirrorByPlane</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an object, symmetrical to the given one relatively the given plane.  <a href="#24217f6fdddd62d6539c1b964f175b38"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#17fbac698ec8c33d93b1de51ac4874cb">MakeMirrorByAxis</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an object, symmetrical to the given one relatively the given axis.  <a href="#17fbac698ec8c33d93b1de51ac4874cb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#8655b456f413267ed78a3c309b6304f9">MakeMirrorByPoint</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an object, symmetrical to the given one relatively the given point.  <a href="#8655b456f413267ed78a3c309b6304f9"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#e56618159887843f81359c4481bf7406">MakePosition</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Modify the Location of the given object by LCS, creating its copy before the setting.  <a href="#e56618159887843f81359c4481bf7406"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#981351eeef1b763896c836cc7f253312">MakeOffset</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create new object as offset of the given one.  <a href="#981351eeef1b763896c836cc7f253312"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#c9a473ec03e5c63896685b0e34481fd2">MakeMultiTranslation1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate the given object along the given vector a given number times.  <a href="#c9a473ec03e5c63896685b0e34481fd2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ab32f56d90ecb1a6b2298dbfbdd7d83c">MakeMultiTranslation2D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Conseqently apply two specified translations to theObject specified number of times.  <a href="#ab32f56d90ecb1a6b2298dbfbdd7d83c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#38982348093ee6fab2c9a4583a2ca511">MultiRotate1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotate the given object around the given axis a given number times.  <a href="#38982348093ee6fab2c9a4583a2ca511"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#616f750a1eeda26ce7277f18f6247693">MultiRotate2D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotate the given object around the given axis on the given angle a given number times and multi-translate each rotation result.  <a href="#616f750a1eeda26ce7277f18f6247693"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#eedbceb1c3dda0840de2b0eb4181c359">MakeMultiRotation1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The same, as <a class="el" href="classgeompyDC_1_1geompyDC.html#38982348093ee6fab2c9a4583a2ca511">MultiRotate1D()</a>, but axis is given by direction and point.  <a href="#eedbceb1c3dda0840de2b0eb4181c359"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#8316876f521e705a923d1269a9a8e7f3">MakeMultiRotation2D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The same, as <a class="el" href="classgeompyDC_1_1geompyDC.html#616f750a1eeda26ce7277f18f6247693">MultiRotate2D()</a>, but axis is given by direction and point.  <a href="#8316876f521e705a923d1269a9a8e7f3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#63bda9af6c88695354bcff0b367fbe1b">MakeFilletAll</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform a fillet on all edges of the given shape.  <a href="#63bda9af6c88695354bcff0b367fbe1b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#974837854699fa8b1a8745527f51873a">MakeFillet</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform a fillet on the specified edges/faces of the given shape.  <a href="#974837854699fa8b1a8745527f51873a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#3e51747789c633e2f971cb4b607dbf73">MakeChamferAll</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform a symmetric chamfer on all edges of the given shape.  <a href="#3e51747789c633e2f971cb4b607dbf73"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#fdfd03b730f47776a40d153c11f7128c">MakeChamferEdge</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform a chamfer on edges, common to the specified faces, with distance D1 on the Face1.  <a href="#fdfd03b730f47776a40d153c11f7128c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#15f9862deb40103a8b910d66d13391e5">MakeChamferFaces</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform a chamfer on all edges of the specified faces, with distance D1 on the first specified face (if several for one edge).  <a href="#15f9862deb40103a8b910d66d13391e5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#27c2e095df94471a5cee3edf005f527f">MakeChamfer</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="classgeompyDC_1_1geompyDC.html#fdfd03b730f47776a40d153c11f7128c">MakeChamferEdge()</a> and <a class="el" href="classgeompyDC_1_1geompyDC.html#15f9862deb40103a8b910d66d13391e5">MakeChamferFaces()</a>.  <a href="#27c2e095df94471a5cee3edf005f527f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#d71461f31b4b633f1ae8ecf19d2026c6">Archimede</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform an Archimde operation on the given shape with given parameters.  <a href="#d71461f31b4b633f1ae8ecf19d2026c6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#9238e5dbb4bc2295e25b8a1c1becc569">PointCoordinates</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get point coordinates.  <a href="#9238e5dbb4bc2295e25b8a1c1becc569"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#07b3380d65462c2473d817ba9ba93732">BasicProperties</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get summarized length of all wires, area of surface and volume of the given shape.  <a href="#07b3380d65462c2473d817ba9ba93732"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#56e1764834e88b2fff2e341474c5b2a8">BoundingBox</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get parameters of bounding box of the given shape.  <a href="#56e1764834e88b2fff2e341474c5b2a8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#b0c0c06d7ccf5e768cb68b90ef2063bb">Inertia</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get inertia matrix and moments of inertia of theShape.  <a href="#b0c0c06d7ccf5e768cb68b90ef2063bb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#0dd7dc10f4871d5a6ef5e1024c3847ea">MinDistance</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get minimal distance between the given shapes.  <a href="#0dd7dc10f4871d5a6ef5e1024c3847ea"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#216d622cb1e479c6b50b974363881e24">Tolerance</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get min and max tolerances of sub-shapes of theShape.  <a href="#216d622cb1e479c6b50b974363881e24"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#81dcea9d11cd1e7e2a6fc7fc82c9747b">WhatIs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain description of the given shape (number of sub-shapes of each type).  <a href="#81dcea9d11cd1e7e2a6fc7fc82c9747b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#bcfbd3959bf92bd7e8db4dd646d8d49d">MakeCDG</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a point, situated at the centre of mass of theShape.  <a href="#bcfbd3959bf92bd7e8db4dd646d8d49d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#63d7e6c328b2864bcba0d61809ea8fa9">CheckShape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check a topology of the given shape.  <a href="#63d7e6c328b2864bcba0d61809ea8fa9"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#ed127e0ebf2001c61b9b4faed95313cb">GetPosition</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get position (LCS) of theShape.  <a href="#ed127e0ebf2001c61b9b4faed95313cb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#a29a8ae880663ba09edb8b35688646be">KindOfShape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get kind of theShape.  <a href="#a29a8ae880663ba09edb8b35688646be"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#57106a55755e9b303464b3f416ca94f3">Import</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Import a shape from the BREP or IGES or STEP file (depends on given format) with given name.  <a href="#57106a55755e9b303464b3f416ca94f3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#68da55be4e4b99fd7ddf22ce58b9cefc">ImportBREP</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="classgeompyDC_1_1geompyDC.html#57106a55755e9b303464b3f416ca94f3">Import()</a> for BREP format.  <a href="#68da55be4e4b99fd7ddf22ce58b9cefc"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#113c78a060c34a5ca7b72f526a08b247">ImportIGES</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="classgeompyDC_1_1geompyDC.html#57106a55755e9b303464b3f416ca94f3">Import()</a> for IGES format.  <a href="#113c78a060c34a5ca7b72f526a08b247"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#35b653ecb3349e0b5835802064ed5792">ImportSTEP</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="classgeompyDC_1_1geompyDC.html#57106a55755e9b303464b3f416ca94f3">Import()</a> for STEP format.  <a href="#35b653ecb3349e0b5835802064ed5792"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#97cf9d2c6b169c617297bcb0ff360d80">Export</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Export the given shape into a file with given name.  <a href="#97cf9d2c6b169c617297bcb0ff360d80"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#b98e62e986537d6dbcf09db82268133f">ExportBREP</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="classgeompyDC_1_1geompyDC.html#97cf9d2c6b169c617297bcb0ff360d80">Export()</a> for BREP format.  <a href="#b98e62e986537d6dbcf09db82268133f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#58cabb942475e87acfe20cf64789d09f">ExportIGES</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="classgeompyDC_1_1geompyDC.html#97cf9d2c6b169c617297bcb0ff360d80">Export()</a> for IGES format.  <a href="#58cabb942475e87acfe20cf64789d09f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#b90ced1bdda21fd895146ecbef93c5b1">ExportSTEP</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="classgeompyDC_1_1geompyDC.html#97cf9d2c6b169c617297bcb0ff360d80">Export()</a> for STEP format.  <a href="#b90ced1bdda21fd895146ecbef93c5b1"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#438ffa67d7e23027c7ffc5e783648a99">MakeQuad</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a quadrangle face from four edges.  <a href="#438ffa67d7e23027c7ffc5e783648a99"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#5859f858dddc4697da0a54650a89c630">MakeQuad2Edges</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a quadrangle face on two edges.  <a href="#5859f858dddc4697da0a54650a89c630"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#d22d10791fbe72e26d95c790f4b12f97">MakeQuad4Vertices</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a quadrangle face with specified corners.  <a href="#d22d10791fbe72e26d95c790f4b12f97"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#011d7b1e772d37e07b0db4e2c5480865">MakeHexa</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a hexahedral solid, bounded by the six given faces.  <a href="#011d7b1e772d37e07b0db4e2c5480865"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#d1d440df311f95e73311279e6c7f4b3e">MakeHexa2Faces</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a hexahedral solid between two given faces.  <a href="#d1d440df311f95e73311279e6c7f4b3e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#2f8102f4db31a9b15d605b8b644c1e1d">GetPoint</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a vertex, found in the given shape by its coordinates.  <a href="#2f8102f4db31a9b15d605b8b644c1e1d"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#5a135eed8efccf5a21d19376faf3f51f">GetEdge</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get an edge, found in the given shape by two given vertices.  <a href="#5a135eed8efccf5a21d19376faf3f51f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#5cd9a2e1962945ad63435accccb04532">GetEdgeNearPoint</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find an edge of the given shape, which has minimal distance to the given point.  <a href="#5cd9a2e1962945ad63435accccb04532"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#6825dde156e5fa007276494e1474d1a7">GetFaceByPoints</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a face, found in the given shape by four given corner vertices.  <a href="#6825dde156e5fa007276494e1474d1a7"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#8a87c9c4cfae32e37ed255b0a325952a">GetFaceByEdges</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a face of block, found in the given shape by two given edges.  <a href="#8a87c9c4cfae32e37ed255b0a325952a"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#3a78ade4a5640a76a6bc14a3205516aa">GetOppositeFace</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a face, opposite to the given one in the given block.  <a href="#3a78ade4a5640a76a6bc14a3205516aa"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#fd4db71d0d90143094fb9461be1345da">GetFaceNearPoint</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a face of the given shape, which has minimal distance to the given point.  <a href="#fd4db71d0d90143094fb9461be1345da"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#712db7946c95195cc4e21b04ccfd1e51">GetFaceByNormale</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a face of block, whose outside normale has minimal angle with the given vector.  <a href="#712db7946c95195cc4e21b04ccfd1e51"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#c3ebd44de8eaa8b35e21120c01130c28">CheckCompoundOfBlocks</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check, if the compound of blocks is given.  <a href="#c3ebd44de8eaa8b35e21120c01130c28"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#719a37bde6e44c537845fc95bd4171ef">RemoveExtraEdges</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove all seam and degenerated edges from <em>theShape</em>.  <a href="#719a37bde6e44c537845fc95bd4171ef"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#cb8e3a5d2a9b43ad0a061d98a5adf066">CheckAndImprove</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check, if the given shape is a blocks compound.  <a href="#cb8e3a5d2a9b43ad0a061d98a5adf066"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#c9f139e013728ca4b9e9176cc270dc9c">MakeBlockExplode</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get all the blocks, contained in the given compound.  <a href="#c9f139e013728ca4b9e9176cc270dc9c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#84908160eb9c556e90fc56482c78b3d6">GetBlockNearPoint</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find block, containing the given point inside its volume or on boundary.  <a href="#84908160eb9c556e90fc56482c78b3d6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#c1a9fb16ff249201e79c5c3ff44dd0bb">GetBlockByParts</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find block, containing all the elements, passed as the parts, or maximum quantity of them.  <a href="#c1a9fb16ff249201e79c5c3ff44dd0bb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#069fdba39a027adf8abbae169fd47ab2">GetBlocksByParts</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return all blocks, containing all the elements, passed as the parts.  <a href="#069fdba39a027adf8abbae169fd47ab2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#5344840833d7500e7823b9ab19927d33">MakeMultiTransformation1D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multi-transformate block and glue the result.  <a href="#5344840833d7500e7823b9ab19927d33"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#967f8f3080541525e772700ed30af9eb">MakeMultiTransformation2D</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multi-transformate block and glue the result.  <a href="#967f8f3080541525e772700ed30af9eb"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#e386685281c22ea9fa42abf0faba0fd0">Propagate</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Build all possible propagation groups.  <a href="#e386685281c22ea9fa42abf0faba0fd0"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#a9d7a73c8d03d5b448e70e0990ad0b67">CreateGroup</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new group which will store sub shapes of theMainShape.  <a href="#a9d7a73c8d03d5b448e70e0990ad0b67"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#42c0d3bfe8dcc8398da6fe79ddf8e866">AddObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a sub object with ID theSubShapeId to the group.  <a href="#42c0d3bfe8dcc8398da6fe79ddf8e866"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#f1ebbc44f8811fbeb71cffc9abd23985">RemoveObject</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes a sub object with ID <em>theSubShapeId</em> from the group.  <a href="#f1ebbc44f8811fbeb71cffc9abd23985"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#952c89c431a7d8b80d7f60030bb7fe26">UnionList</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds to the group all the given shapes.  <a href="#952c89c431a7d8b80d7f60030bb7fe26"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#feb077c171bca22d724adce47a576c51">UnionIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but argument theSubShapes here is a list of sub-shapes indices.  <a href="#feb077c171bca22d724adce47a576c51"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#7d131e5368d0cbef869dc8f7e625943f">DifferenceList</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes from the group all the given shapes.  <a href="#7d131e5368d0cbef869dc8f7e625943f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#09dcc7102fc5cf6ba7582b027dcaf8c4">DifferenceIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but argument theSubShapes here is a list of sub-shapes indices.  <a href="#09dcc7102fc5cf6ba7582b027dcaf8c4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#1f882d77f36782aec9552b4091e72fa2">GetObjectIDs</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a list of sub objects ID stored in the group.  <a href="#1f882d77f36782aec9552b4091e72fa2"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#89a5674df0edb6bc0d10fe2327b6dd69">GetType</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a type of sub objects stored in the group.  <a href="#89a5674df0edb6bc0d10fe2327b6dd69"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#4cb71ccbb6ce142438dac7ab8b1bfbcd">GetMainShape</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a main shape associated with the group.  <a href="#4cb71ccbb6ce142438dac7ab8b1bfbcd"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#b7c0fb87c91fbdc021c72b58b56c73f4">GetEdgesByLength</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create group of edges of theShape, whose length is in range [min_length, max_length].  <a href="#b7c0fb87c91fbdc021c72b58b56c73f4"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#2c911eb0c53d1c4e22dedd2196055d18">SelectEdges</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create group of edges of selected shape, whose length is in range [min_length, max_length].  <a href="#2c911eb0c53d1c4e22dedd2196055d18"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#fdd468507a5639f23702618029a42f5e">addPath</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add Path to load python scripts from.  <a href="#fdd468507a5639f23702618029a42f5e"></a><br></td></tr>
+<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#9485018bf453de77f19cfddb21d3db7d">myBuilder</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#bbaafac224de10f47a6ade537922d0e1">myStudyId</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#6d683d934b8329fdbb475d9c6e61fc55">father</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#cb9f574a04df268d2ac3dad4084a501a">BasicOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#4e6874f535a360865d46651d158008a4">CurvesOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#e83f2aa2b03d2fa22da016445792a38d">PrimOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#808040354de98ebe2da91b260acdebc3">ShapesOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#4ffc95e51898e9fb01ddd6f81b5b4d8a">HealOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#399bd9f35bcbba929ce14514bff80172">InsertOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#c0937479ddda039044ef8a77b3856589">BoolOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#71257bf08344eb67180476997550faa4">TrsfOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#70088920b0ecf7c2f91752773076d10a">LocalOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#5553df463eb205a7d8d129984330f570">MeasuOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#79bef537fb16d86a07700b14d66cfabd">BlocksOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#d456a011f482dbd6f98505b6c4f5624d">GroupOp</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html#cc738d95c175885b16443c9476218ffb">myStudy</a></td></tr>
+
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="af8ddd61672905dce7b92a9a743663ff"></a><!-- doxytag: member="geompyDC::geompyDC::__init__" ref="af8ddd61672905dce7b92a9a743663ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.__init__           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="25ea0aecb6d8820d25978244778ca819"></a><!-- doxytag: member="geompyDC::geompyDC::init_geom" ref="25ea0aecb6d8820d25978244778ca819" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.init_geom           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theStudy</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="1949a3db14d23baada3e1841e0baa5ae"></a><!-- doxytag: member="geompyDC::geompyDC::SubShapeName" ref="1949a3db14d23baada3e1841e0baa5ae" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SubShapeName           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aSubObj</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aMainObj</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="7db0dfa66baae9698555a059b1aba887"></a><!-- doxytag: member="geompyDC::geompyDC::addToStudy" ref="7db0dfa66baae9698555a059b1aba887" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.addToStudy           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="ee026f3fcb1fa99e51c655533cf2c1ef"></a><!-- doxytag: member="geompyDC::geompyDC::addToStudyInFather" ref="ee026f3fcb1fa99e51c655533cf2c1ef" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.addToStudyInFather           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aFather</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="d10907eea3fcd77b5c0616314c8c0cf8"></a><!-- doxytag: member="geompyDC::geompyDC::MakeVertex" ref="d10907eea3fcd77b5c0616314c8c0cf8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeVertex           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theX</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theY</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theZ</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theX</em>&nbsp;</td><td>The X coordinate of the point. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theY</em>&nbsp;</td><td>The Y coordinate of the point. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theZ</em>&nbsp;</td><td>The Z coordinate of the point. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created point.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="a234e4855a340079db1f4106799fb97c"></a><!-- doxytag: member="geompyDC::geompyDC::MakeVertexWithRef" ref="a234e4855a340079db1f4106799fb97c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeVertexWithRef           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theReference</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theX</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theY</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theZ</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theReference</em>&nbsp;</td><td>The referenced point. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theX</em>&nbsp;</td><td>Displacement from the referenced point along OX axis. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theY</em>&nbsp;</td><td>Displacement from the referenced point along OY axis. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theZ</em>&nbsp;</td><td>Displacement from the referenced point along OZ axis. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created point.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="60990e3d531796d90776bb3bfba9f1e0"></a><!-- doxytag: member="geompyDC::geompyDC::MakeVertexOnCurve" ref="60990e3d531796d90776bb3bfba9f1e0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeVertexOnCurve           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRefCurve</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theParameter</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theRefCurve</em>&nbsp;</td><td>The referenced curve. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theParameter</em>&nbsp;</td><td>Value of parameter on the referenced curve. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created point.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="696c7e5a4c1ea2a7c99202e55ed90629"></a><!-- doxytag: member="geompyDC::geompyDC::MakeTangentOnCurve" ref="696c7e5a4c1ea2a7c99202e55ed90629" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeTangentOnCurve           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRefCurve</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theParameter</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theRefCurve</em>&nbsp;</td><td>The referenced curve. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theParameter</em>&nbsp;</td><td>Value of parameter on the referenced curve. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created tangent. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="d63565ee22d104df4c7d4f6bfe60f2b5"></a><!-- doxytag: member="geompyDC::geompyDC::MakeVectorDXDYDZ" ref="d63565ee22d104df4c7d4f6bfe60f2b5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeVectorDXDYDZ           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theDX</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theDY</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theDZ</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theDX</em>&nbsp;</td><td>X component of the vector. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theDY</em>&nbsp;</td><td>Y component of the vector. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theDZ</em>&nbsp;</td><td>Z component of the vector. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created vector.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="a555df198725426a1dd01b332767d131"></a><!-- doxytag: member="geompyDC::geompyDC::MakeVector" ref="a555df198725426a1dd01b332767d131" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeVector           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>Start point for the vector. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>End point for the vector. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created vector. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="aa0cc8bfc8b0459e1553744b3d1cd967"></a><!-- doxytag: member="geompyDC::geompyDC::MakeLine" ref="aa0cc8bfc8b0459e1553744b3d1cd967" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeLine           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theDir</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Point. The resulting line will pass through it. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theDir</em>&nbsp;</td><td>Direction. The resulting line will be parallel to it. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created line.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="dd8cf59821f38e96cf4649f8a6f542bb"></a><!-- doxytag: member="geompyDC::geompyDC::MakeLineTwoPnt" ref="dd8cf59821f38e96cf4649f8a6f542bb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeLineTwoPnt           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>First of two points, defining the line. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Second of two points, defining the line. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created line.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="ca603ee3632caf15e8a67c84e53d260e"></a><!-- doxytag: member="geompyDC::geompyDC::MakePlane" ref="ca603ee3632caf15e8a67c84e53d260e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePlane           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTrimSize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Point, the plane has to pass through. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theVec</em>&nbsp;</td><td>Vector, defining the plane normal direction. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTrimSize</em>&nbsp;</td><td>Half size of a side of quadrangle face, representing the plane. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created plane.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="34df128a5c5b1cf1d17a8d908f504109"></a><!-- doxytag: member="geompyDC::geompyDC::MakePlaneThreePnt" ref="34df128a5c5b1cf1d17a8d908f504109" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePlaneThreePnt           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTrimSize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>First of three points, defining the plane. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Second of three points, defining the plane. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt3</em>&nbsp;</td><td>Fird of three points, defining the plane. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTrimSize</em>&nbsp;</td><td>Half size of a side of quadrangle face, representing the plane. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created plane.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="a485bef0e5de72c0a9def2be78a8f5dc"></a><!-- doxytag: member="geompyDC::geompyDC::MakePlaneFace" ref="a485bef0e5de72c0a9def2be78a8f5dc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePlaneFace           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFace</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTrimSize</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theFace</em>&nbsp;</td><td>Referenced plane or LCS(Marker). </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTrimSize</em>&nbsp;</td><td>New half size of a side of quadrangle face, representing the plane. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created plane.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="50cfea162620f440c57035f185e86be8"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMarker" ref="50cfea162620f440c57035f185e86be8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMarker           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>OX</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>OY</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>OZ</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>XDX</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>XDY</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>XDZ</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>YDX</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>YDY</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>YDZ</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>OX,OY,OZ</em>&nbsp;</td><td>Three coordinates of coordinate system origin. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>XDX,XDY,XDZ</em>&nbsp;</td><td>Three components of OX direction </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>YDX,YDY,YDZ</em>&nbsp;</td><td>Three components of OY direction </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created coordinate system.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="d20661db76229799278b218fe8876b9c"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMarkerPntTwoVec" ref="d20661db76229799278b218fe8876b9c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMarkerPntTwoVec           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theOrigin</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theXVec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theYVec</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theOrigin</em>&nbsp;</td><td>Point of coordinate system origin. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theXVec</em>&nbsp;</td><td>Vector of X direction </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theYVec</em>&nbsp;</td><td>Vector of Y direction </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created coordinate system. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="5ec980592e1667a038e73e33c897dc8a"></a><!-- doxytag: member="geompyDC::geompyDC::MakeArc" ref="5ec980592e1667a038e73e33c897dc8a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeArc           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt3</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>Start point of the arc. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Middle point of the arc. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt3</em>&nbsp;</td><td>End point of the arc. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created arc.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="9235be0a43fa6a3530cde2f2a178c6a1"></a><!-- doxytag: member="geompyDC::geompyDC::MakeArcCenter" ref="9235be0a43fa6a3530cde2f2a178c6a1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeArcCenter           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSense</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>Center of the arc </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Start point of the arc. (Gives also the radius of the arc) </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt3</em>&nbsp;</td><td>End point of the arc (Gives also a direction) </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created arc.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="a8c53f522639686427623ef671680a69"></a><!-- doxytag: member="geompyDC::geompyDC::MakeCircle" ref="a8c53f522639686427623ef671680a69" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeCircle           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Circle center. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theVec</em>&nbsp;</td><td>Vector, normal to the plane of the circle. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Circle radius. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created circle.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="174e1bf2c1ca1a1385fdadbef4498a71"></a><!-- doxytag: member="geompyDC::geompyDC::MakeCircleThreePnt" ref="174e1bf2c1ca1a1385fdadbef4498a71" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeCircleThreePnt           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt3</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt1,thePnt2,thePnt3</em>&nbsp;</td><td>Points, defining the circle. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created circle.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="8a6255b5b91a1b4d3662eeba16fb181e"></a><!-- doxytag: member="geompyDC::geompyDC::MakeEllipse" ref="8a6255b5b91a1b4d3662eeba16fb181e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeEllipse           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRMajor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRMinor</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Ellipse center. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theVec</em>&nbsp;</td><td>Vector, normal to the plane of the ellipse. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theRMajor</em>&nbsp;</td><td>Major ellipse radius. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theRMinor</em>&nbsp;</td><td>Minor ellipse radius. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created ellipse.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="ba71e6507ea026a9a583af92e86a4abe"></a><!-- doxytag: member="geompyDC::geompyDC::MakePolyline" ref="ba71e6507ea026a9a583af92e86a4abe" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePolyline           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoints</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePoints</em>&nbsp;</td><td>Sequence of points for the polyline. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created polyline.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="1bc25a4b112a7d0c835f95548c059fee"></a><!-- doxytag: member="geompyDC::geompyDC::MakeBezier" ref="1bc25a4b112a7d0c835f95548c059fee" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeBezier           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoints</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePoints</em>&nbsp;</td><td>Sequence of points for the bezier curve. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created bezier curve.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="0779d8a2ca8b62f171cbde07224abe61"></a><!-- doxytag: member="geompyDC::geompyDC::MakeInterpol" ref="0779d8a2ca8b62f171cbde07224abe61" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeInterpol           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoints</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePoints</em>&nbsp;</td><td>Sequence of points for the B-Spline curve. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created B-Spline curve.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="ebd8e665d93f32edc49caf185bd679d5"></a><!-- doxytag: member="geompyDC::geompyDC::MakeSketcher" ref="ebd8e665d93f32edc49caf185bd679d5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeSketcher           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCommand</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWorkingPlane</em> = <code>[0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<br>
+ Edges of the resulting wire or face will be arcs of circles and/or linear segments. <br>
+ Format of the description string have to be the following:<p>
+"Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"<p>
+Where:<ul>
+<li>x1, y1 are coordinates of the first sketcher point (zero by default),</li><li>CMD is one of<ul>
+<li>"R angle" : Set the direction by angle</li><li>"D dx dy" : Set the direction by DX &amp; DY</li></ul>
+<br>
+<ul>
+<li>"TT x y" : Create segment by point at X &amp; Y</li><li>"T dx dy" : Create segment by point with DX &amp; DY</li><li>"L length" : Create segment by direction &amp; Length</li><li>"IX x" : Create segment by direction &amp; Intersect. X</li><li>"IY y" : Create segment by direction &amp; Intersect. Y</li></ul>
+<br>
+<ul>
+<li>"C radius length" : Create arc by direction, radius and length(in degree)</li></ul>
+<br>
+<ul>
+<li>"WW" : Close Wire (to finish)</li><li>"WF" : Close Wire and build face (to finish)</li></ul>
+</li></ul>
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theCommand</em>&nbsp;</td><td>String, defining the sketcher in local coordinates of the working plane. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theWorkingPlane</em>&nbsp;</td><td>Nine double values, defining origin, OZ and OX directions of the working plane. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created wire.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="cb2d962f65e8b2e44c290cc8f9b1394d"></a><!-- doxytag: member="geompyDC::geompyDC::MakeSketcherOnPlane" ref="cb2d962f65e8b2e44c290cc8f9b1394d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeSketcherOnPlane           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCommand</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWorkingPlane</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<br>
+ For format of the description string see the previous method.<br>
+ <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theCommand</em>&nbsp;</td><td>String, defining the sketcher in local coordinates of the working plane. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theWorkingPlane</em>&nbsp;</td><td>Planar Face or LCS(Marker) of the working plane. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created wire. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="7f67b75d315b058a9dbfd0fcae8436c3"></a><!-- doxytag: member="geompyDC::geompyDC::MakeBox" ref="7f67b75d315b058a9dbfd0fcae8436c3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeBox           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>x1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>y1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>z1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>x2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>y2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>z2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="26a427a3ad940830e2edb3fa5505cb36"></a><!-- doxytag: member="geompyDC::geompyDC::MakeBoxDXDYDZ" ref="26a427a3ad940830e2edb3fa5505cb36" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeBoxDXDYDZ           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theDX</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theDY</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theDZ</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Center of the box will be at point (DX/2, DY/2, DZ/2). <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theDX</em>&nbsp;</td><td>Length of Box edges, parallel to OX axis. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theDY</em>&nbsp;</td><td>Length of Box edges, parallel to OY axis. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theDZ</em>&nbsp;</td><td>Length of Box edges, parallel to OZ axis. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created box.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="b337e6c6ab478f0d793954be1bd9cb2c"></a><!-- doxytag: member="geompyDC::geompyDC::MakeBoxTwoPnt" ref="b337e6c6ab478f0d793954be1bd9cb2c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeBoxTwoPnt           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>First of two opposite vertices. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Second of two opposite vertices. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created box.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="bc2fe5ba9c9c88249580b50209100433"></a><!-- doxytag: member="geompyDC::geompyDC::MakeCylinder" ref="bc2fe5ba9c9c88249580b50209100433" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeCylinder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAxis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theH</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Central point of cylinder base. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Cylinder axis. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Cylinder radius. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theH</em>&nbsp;</td><td>Cylinder height. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created cylinder.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="b3df1c40baa03e45ec7094d146e8b963"></a><!-- doxytag: member="geompyDC::geompyDC::MakeCylinderRH" ref="b3df1c40baa03e45ec7094d146e8b963" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeCylinderRH           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theH</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Axis of the cylinder will be collinear to the OZ axis of the coordinate system. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Cylinder radius. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theH</em>&nbsp;</td><td>Cylinder height. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created cylinder.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="81579f2f47da0cc1d6097e1faadf2dd5"></a><!-- doxytag: member="geompyDC::geompyDC::MakeSpherePntR" ref="81579f2f47da0cc1d6097e1faadf2dd5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeSpherePntR           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Sphere center. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Sphere radius. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created sphere.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="07a746f0b76020bbb7282c2e838bd409"></a><!-- doxytag: member="geompyDC::geompyDC::MakeSphere" ref="07a746f0b76020bbb7282c2e838bd409" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeSphere           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>z</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>x,y,z</em>&nbsp;</td><td>Coordinates of sphere center. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Sphere radius. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created sphere.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="fb3e149785a70bf4203f477afc0c835e"></a><!-- doxytag: member="geompyDC::geompyDC::MakeSphereR" ref="fb3e149785a70bf4203f477afc0c835e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeSphereR           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Sphere radius. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created sphere.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="e30b53da3c95b228eb8c834b5854ef14"></a><!-- doxytag: member="geompyDC::geompyDC::MakeCone" ref="e30b53da3c95b228eb8c834b5854ef14" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeCone           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAxis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theH</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Central point of the first cone base. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Cone axis. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theR1</em>&nbsp;</td><td>Radius of the first cone base. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theR2</em>&nbsp;</td><td>Radius of the second cone base. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Note:</b></dt><dd>If both radiuses are non-zero, the cone will be truncated. <p>
+If the radiuses are equal, a cylinder will be created instead. </dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theH</em>&nbsp;</td><td>Cone height. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created cone.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="0fd12dd339d9640f7ffa0917b8532bb0"></a><!-- doxytag: member="geompyDC::geompyDC::MakeConeR1R2H" ref="0fd12dd339d9640f7ffa0917b8532bb0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeConeR1R2H           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theH</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Axis of the cone will be collinear to the OZ axis of the coordinate system. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theR1</em>&nbsp;</td><td>Radius of the first cone base. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theR2</em>&nbsp;</td><td>Radius of the second cone base. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Note:</b></dt><dd>If both radiuses are non-zero, the cone will be truncated. <p>
+If the radiuses are equal, a cylinder will be created instead. </dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theH</em>&nbsp;</td><td>Cone height. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created cone.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="3626eac4fedc7273364e21221fa88788"></a><!-- doxytag: member="geompyDC::geompyDC::MakeTorus" ref="3626eac4fedc7273364e21221fa88788" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeTorus           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRMajor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRMinor</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Torus central point. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theVec</em>&nbsp;</td><td>Torus axis of symmetry. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theRMajor</em>&nbsp;</td><td>Torus major radius. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theRMinor</em>&nbsp;</td><td>Torus minor radius. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created torus.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="ee9c1c4391a974f97558960e90e7bb58"></a><!-- doxytag: member="geompyDC::geompyDC::MakeTorusRR" ref="ee9c1c4391a974f97558960e90e7bb58" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeTorusRR           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRMajor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRMinor</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theRMajor</em>&nbsp;</td><td>Torus major radius. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theRMinor</em>&nbsp;</td><td>Torus minor radius. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created torus.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="235c3c3893cd30d3fd2d6c75df0b9b85"></a><!-- doxytag: member="geompyDC::geompyDC::MakePrism" ref="235c3c3893cd30d3fd2d6c75df0b9b85" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePrism           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBase</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theBase</em>&nbsp;</td><td>Base shape to be extruded. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint1</em>&nbsp;</td><td>First end of extrusion vector. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint2</em>&nbsp;</td><td>Second end of extrusion vector. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created prism.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="ed885f2bf6c39f0aba6f7773b36acceb"></a><!-- doxytag: member="geompyDC::geompyDC::MakePrismVecH" ref="ed885f2bf6c39f0aba6f7773b36acceb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePrismVecH           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBase</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVec</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theH</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+all the space, transfixed by the base shape during its translation along the vector on the given distance. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theBase</em>&nbsp;</td><td>Base shape to be extruded. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theVec</em>&nbsp;</td><td>Direction of extrusion. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theH</em>&nbsp;</td><td>Prism dimension along theVec. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created prism.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="ea1248fca4762d449c8f623df461dc1b"></a><!-- doxytag: member="geompyDC::geompyDC::MakePipe" ref="ea1248fca4762d449c8f623df461dc1b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePipe           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBase</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePath</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The path shape can be a wire or an edge. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theBase</em>&nbsp;</td><td>Base shape to be extruded. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePath</em>&nbsp;</td><td>Path shape to extrude the base shape along it. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created pipe.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="f1e4818545a58c6fca5917f4f2600d9c"></a><!-- doxytag: member="geompyDC::geompyDC::MakeRevolution" ref="f1e4818545a58c6fca5917f4f2600d9c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeRevolution           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBase</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAxis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAngle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+all the space, transfixed by the base shape during its rotation around the axis on the given angle. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theBase</em>&nbsp;</td><td>Base shape to be rotated. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Rotation axis. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAngle</em>&nbsp;</td><td>Rotation angle in radians. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created revolution.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="2cebf57322ef8812857c0e18935b2e50"></a><!-- doxytag: member="geompyDC::geompyDC::MakeThruSections" ref="2cebf57322ef8812857c0e18935b2e50" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeThruSections           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSeqSections</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theModeSolid</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePreci</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRuled</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theSeqSections</em>&nbsp;</td><td>- set of specified sections. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theModeSolid</em>&nbsp;</td><td>- mode defining building solid or shell </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePreci</em>&nbsp;</td><td>- precision 3D used for smoothing by default 1.e-6 </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theRuled</em>&nbsp;</td><td>- mode defining type of the result surfaces (ruled or smoothed). </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created shell or solid.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="9614d962ed7d981dd795367500e932e4"></a><!-- doxytag: member="geompyDC::geompyDC::MakePipeWithDifferentSections" ref="9614d962ed7d981dd795367500e932e4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePipeWithDifferentSections           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSeqBases</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theLocations</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePath</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWithContact</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWithCorrection</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The path shape can be a wire or an edge. the several profiles can be specified in the several locations of path. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theSeqBases</em>&nbsp;</td><td>- list of Bases shape to be extruded. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theLocations</em>&nbsp;</td><td>- 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. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePath</em>&nbsp;</td><td>- Path shape to extrude the base shape along it. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theWithContact</em>&nbsp;</td><td>- the mode defining that the section is translated to be in contact with the spine. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>-</em>&nbsp;</td><td>WithCorrection - defining that the section is rotated to be orthogonal to the spine tangent in the correspondent point </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created pipe.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="f0be52d1562df21a8c8d1c5e19cfd986"></a><!-- doxytag: member="geompyDC::geompyDC::MakePipeWithShellSections" ref="f0be52d1562df21a8c8d1c5e19cfd986" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePipeWithShellSections           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSeqBases</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSeqSubBases</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theLocations</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePath</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWithContact</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWithCorrection</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The path shape can be a shell or a face. the several profiles can be specified in the several locations of path. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theSeqBases</em>&nbsp;</td><td>- list of Bases shape to be extruded. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theSeqSubBases</em>&nbsp;</td><td>- list of corresponding subshapes of section shapes. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theLocations</em>&nbsp;</td><td>- 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. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePath</em>&nbsp;</td><td>- Path shape to extrude the base shape along it. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theWithContact</em>&nbsp;</td><td>- the mode defining that the section is translated to be in contact with the spine. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>-</em>&nbsp;</td><td>WithCorrection - defining that the section is rotated to be orthogonal to the spine tangent in the correspondent point </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created solids.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="28931fb5811e065bca98d33c72ae3bcd"></a><!-- doxytag: member="geompyDC::geompyDC::MakeEdge" ref="28931fb5811e065bca98d33c72ae3bcd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeEdge           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>Point for the first end of edge. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Point for the second end of edge. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created edge.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="a8bbbcb09ca5166b32cfca437388ce53"></a><!-- doxytag: member="geompyDC::geompyDC::MakeWire" ref="a8bbbcb09ca5166b32cfca437388ce53" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeWire           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theEdgesAndWires</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theEdgesAndWires</em>&nbsp;</td><td>List of edges and/or wires. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created wire.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="cdb6873ee6002347bb02cc3a58282609"></a><!-- doxytag: member="geompyDC::geompyDC::MakeFace" ref="cdb6873ee6002347bb02cc3a58282609" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeFace           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWire</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>isPlanarWanted</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theWire</em>&nbsp;</td><td>closed Wire or Edge to build the face on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>isPlanarWanted</em>&nbsp;</td><td>If TRUE, only planar face will be built. If impossible, NULL object will be returned. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created face.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="e29525e7b4291b7068a540a6849e958e"></a><!-- doxytag: member="geompyDC::geompyDC::MakeFaceWires" ref="e29525e7b4291b7068a540a6849e958e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeFaceWires           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWires</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>isPlanarWanted</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theWires</em>&nbsp;</td><td>List of closed wires or edges to build the face on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>isPlanarWanted</em>&nbsp;</td><td>If TRUE, only planar face will be built. If impossible, NULL object will be returned. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created face.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="a0c086da24dc52a36e393403e67fb602"></a><!-- doxytag: member="geompyDC::geompyDC::MakeFaces" ref="a0c086da24dc52a36e393403e67fb602" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeFaces           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWires</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>isPlanarWanted</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="f05fc666dd12c4c3b9d9e24ea6bb8e4c"></a><!-- doxytag: member="geompyDC::geompyDC::MakeShell" ref="f05fc666dd12c4c3b9d9e24ea6bb8e4c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeShell           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFacesAndShells</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theFacesAndShells</em>&nbsp;</td><td>List of faces and/or shells. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created shell.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="46ac42b6d0801facaf94f0219a98519d"></a><!-- doxytag: member="geompyDC::geompyDC::MakeSolid" ref="46ac42b6d0801facaf94f0219a98519d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeSolid           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShells</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShells</em>&nbsp;</td><td>Sequence of bounding shells. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created solid.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="4291d93976b7ce6dd54e50bae3f0f2a7"></a><!-- doxytag: member="geompyDC::geompyDC::MakeCompound" ref="4291d93976b7ce6dd54e50bae3f0f2a7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeCompound           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShapes</em>&nbsp;</td><td>List of shapes to put in compound. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created compound.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="38f585da48e36d0111edb5855a55cbfb"></a><!-- doxytag: member="geompyDC::geompyDC::NumberOfFaces" ref="38f585da48e36d0111edb5855a55cbfb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.NumberOfFaces           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to count faces of. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Quantity of faces.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="7e3d02b87d35cce98b8cf9ae0fe6b8ef"></a><!-- doxytag: member="geompyDC::geompyDC::NumberOfEdges" ref="7e3d02b87d35cce98b8cf9ae0fe6b8ef" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.NumberOfEdges           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to count edges of. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Quantity of edges.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="030b12f8bf19341b7fb19c8b6f78560c"></a><!-- doxytag: member="geompyDC::geompyDC::ChangeOrientation" ref="030b12f8bf19341b7fb19c8b6f78560c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.ChangeOrientation           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be reversed. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>The reversed copy of theShape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="07154c139fe6ed7035fdea3e4eeecf7a"></a><!-- doxytag: member="geompyDC::geompyDC::OrientationChange" ref="07154c139fe6ed7035fdea3e4eeecf7a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.OrientationChange           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="f17be89e3cd53f3c0f39c2edd65b0fac"></a><!-- doxytag: member="geompyDC::geompyDC::GetFreeFacesIDs" ref="f17be89e3cd53f3c0f39c2edd65b0fac" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetFreeFacesIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Free face is a face, which is not shared between two shells of the shape. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find free faces in. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of IDs of all free faces, contained in theShape.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="9fd58edacf404f79755e7dc844252afd"></a><!-- doxytag: member="geompyDC::geompyDC::GetSharedShapes" ref="9fd58edacf404f79755e7dc844252afd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetSharedShapes           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape1</em>&nbsp;</td><td>Shape to find sub-shapes in. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShape2</em>&nbsp;</td><td>Shape to find shared sub-shapes with. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of sub-shapes of theShape1, shared with theShape2.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="f9b62ee841439c13d856a2278133d685"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnPlane" ref="f9b62ee841439c13d856a2278133d685" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnPlane           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAx1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAx1</em>&nbsp;</td><td>Vector (or line, or linear edge), specifying normal direction and location of the plane to find shapes on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="68097cda152e42c34570c91205247290"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnPlaneIDs" ref="68097cda152e42c34570c91205247290" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnPlaneIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAx1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="651b14d212b23eaa194cb8cc1e4a92df"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnPlaneWithLocation" ref="651b14d212b23eaa194cb8cc1e4a92df" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnPlaneWithLocation           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAx1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAx1</em>&nbsp;</td><td>Vector (or line, or linear edge), specifying normal direction of the plane to find shapes on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Point specifying location of the plane to find shapes on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="ef1c337288dd469d08c6491a1bf1902c"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnPlaneWithLocationIDs" ref="ef1c337288dd469d08c6491a1bf1902c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnPlaneWithLocationIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAx1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePnt</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="efbe51fb2bab5123c12b233285393066"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnCylinder" ref="efbe51fb2bab5123c12b233285393066" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnCylinder           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAxis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRadius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Vector (or line, or linear edge), specifying axis of the cylinder to find shapes on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theRadius</em>&nbsp;</td><td>Radius of the cylinder to find shapes on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="da671d7d2fa64f3fe87df7c055b83825"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnCylinderIDs" ref="da671d7d2fa64f3fe87df7c055b83825" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnCylinderIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAxis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRadius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="ae6c2f5224df29424ca077575eabd736"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnSphere" ref="ae6c2f5224df29424ca077575eabd736" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnSphere           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCenter</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRadius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theCenter</em>&nbsp;</td><td>Point, specifying center of the sphere to find shapes on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theRadius</em>&nbsp;</td><td>Radius of the sphere to find shapes on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="3987180dd23e4c175ed948a58a6cf660"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnSphereIDs" ref="3987180dd23e4c175ed948a58a6cf660" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnSphereIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCenter</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theRadius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="ea27e6fad8151ea201e4f723c4a428a8"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnQuadrangle" ref="ea27e6fad8151ea201e4f723c4a428a8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnQuadrangle           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTopLeftPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTopRigthPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBottomLeftPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBottomRigthPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTopLeftPoint</em>&nbsp;</td><td>Point, specifying top left corner of a quadrangle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTopRigthPoint</em>&nbsp;</td><td>Point, specifying top right corner of a quadrangle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theBottomLeftPoint</em>&nbsp;</td><td>Point, specifying bottom left corner of a quadrangle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theBottomRigthPoint</em>&nbsp;</td><td>Point, specifying bottom right corner of a quadrangle </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="1fab06e08781150f37917ac559cc2aa4"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnQuadrangleIDs" ref="1fab06e08781150f37917ac559cc2aa4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnQuadrangleIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTopLeftPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTopRigthPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBottomLeftPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBottomRigthPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="1ea715c4d4e4d0f4c5e7919f2d83d4e6"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnBox" ref="1ea715c4d4e4d0f4c5e7919f2d83d4e6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnBox           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBox</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theBox</em>&nbsp;</td><td>Shape for relative comparing. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="73015991fea1f7bb78c7436d7ec2ebb0"></a><!-- doxytag: member="geompyDC::geompyDC::GetShapesOnBoxIDs" ref="73015991fea1f7bb78c7436d7ec2ebb0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetShapesOnBoxIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBox</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theState</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="67ae7cef36629d18c93c5a102dee00c3"></a><!-- doxytag: member="geompyDC::geompyDC::GetInPlace" ref="67ae7cef36629d18c93c5a102dee00c3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetInPlace           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeWhere</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeWhat</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShapeWhere</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeWhat</em>&nbsp;</td><td>Shape, specifying what to find. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Group of all found sub-shapes or a single found sub-shape.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="eed964a4cd665e5e26b9becd7c260d7b"></a><!-- doxytag: member="geompyDC::geompyDC::GetSame" ref="eed964a4cd665e5e26b9becd7c260d7b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetSame           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeWhere</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeWhat</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShapeWhere</em>&nbsp;</td><td>Shape to find sub-shape of. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeWhat</em>&nbsp;</td><td>Shape, specifying what to find. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object for found sub-shape. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="83963a360d309689ba837d8e316466c1"></a><!-- doxytag: member="geompyDC::geompyDC::GetSubShape" ref="83963a360d309689ba837d8e316466c1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetSubShape           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListOfID</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="b3cf4c129a0316ffbe7904021762549c"></a><!-- doxytag: member="geompyDC::geompyDC::GetSubShapeID" ref="b3cf4c129a0316ffbe7904021762549c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetSubShapeID           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aSubShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="78fa5a06b26d7d924c08892e963f3457"></a><!-- doxytag: member="geompyDC::geompyDC::SubShapeAll" ref="78fa5a06b26d7d924c08892e963f3457" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SubShapeAll           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aType</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be exploded. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of sub-shapes of type theShapeType, contained in theShape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="c08bbd0e4324de005e144b0bd71a62fd"></a><!-- doxytag: member="geompyDC::geompyDC::SubShapeAllIDs" ref="c08bbd0e4324de005e144b0bd71a62fd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SubShapeAllIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aType</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be exploded. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of IDs of sub-shapes. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f6bf69ac9180b0ae6c782445d56f2c59"></a><!-- doxytag: member="geompyDC::geompyDC::SubShapeAllSorted" ref="f6bf69ac9180b0ae6c782445d56f2c59" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SubShapeAllSorted           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aType</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sub-shapes will be sorted by coordinates of their gravity centers. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be exploded. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of sub-shapes of type theShapeType, contained in theShape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="5e36eda3a11edc37146e5e73dd118e81"></a><!-- doxytag: member="geompyDC::geompyDC::SubShapeAllSortedIDs" ref="5e36eda3a11edc37146e5e73dd118e81" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SubShapeAllSortedIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aType</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Sub-shapes will be sorted by coordinates of their gravity centers. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be exploded. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of IDs of sub-shapes. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="0092ca7fbc9ed8d824f6a0f932793e47"></a><!-- doxytag: member="geompyDC::geompyDC::SubShape" ref="0092ca7fbc9ed8d824f6a0f932793e47" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SubShape           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListOfInd</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]<p>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="bdacf7906482aacc2d5db144847f2d89"></a><!-- doxytag: member="geompyDC::geompyDC::SubShapeSorted" ref="bdacf7906482aacc2d5db144847f2d89" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SubShapeSorted           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListOfInd</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]<p>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="cd3999b10bc598e794c72f5d0100fce5"></a><!-- doxytag: member="geompyDC::geompyDC::ProcessShape" ref="cd3999b10bc598e794c72f5d0100fce5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.ProcessShape           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theOperators</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theParameters</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theValues</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be processed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theOperators</em>&nbsp;</td><td>List of names of operators ("FixShape", "SplitClosedFaces", etc.). </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theParameters</em>&nbsp;</td><td>List of names of parameters ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.). </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theValues</em>&nbsp;</td><td>List of values of parameters, in the same order as parameters are listed in <em>theParameters</em> list. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
+Example: see GEOM_TestHealing.py 
+</div>
+</div><p>
+<a class="anchor" name="bbaee711561a402bdd0741ec11471278"></a><!-- doxytag: member="geompyDC::geompyDC::SuppressFaces" ref="bbaee711561a402bdd0741ec11471278" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SuppressFaces           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFaces</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theFaces</em>&nbsp;</td><td>Indices of faces to be removed, if EMPTY then the method removes ALL faces of the given object. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
+Example: see GEOM_TestHealing.py 
+</div>
+</div><p>
+<a class="anchor" name="036ad990f98656d408899bfcd5ece429"></a><!-- doxytag: member="geompyDC::geompyDC::MakeSewing" ref="036ad990f98656d408899bfcd5ece429" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeSewing           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTolerance</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestHealing.py 
+</div>
+</div><p>
+<a class="anchor" name="8d560be7edd550c5d99efa7d5500983d"></a><!-- doxytag: member="geompyDC::geompyDC::Sew" ref="8d560be7edd550c5d99efa7d5500983d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.Sew           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTolerance</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTolerance</em>&nbsp;</td><td>Required tolerance value. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
+Example: see <a class="el" href="classgeompyDC_1_1geompyDC.html#036ad990f98656d408899bfcd5ece429">MakeSewing()</a> above 
+</div>
+</div><p>
+<a class="anchor" name="32d8bab454d23c5081af3cf351da2dbc"></a><!-- doxytag: member="geompyDC::geompyDC::SuppressInternalWires" ref="32d8bab454d23c5081af3cf351da2dbc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SuppressInternalWires           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWires</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theWires</em>&nbsp;</td><td>Indices of wires to be removed, if EMPTY then the method removes ALL internal wires of the given object. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
+Example: see GEOM_TestHealing.py 
+</div>
+</div><p>
+<a class="anchor" name="3bb048fd0a24d95d5477d315f06613ff"></a><!-- doxytag: member="geompyDC::geompyDC::SuppressHoles" ref="3bb048fd0a24d95d5477d315f06613ff" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SuppressHoles           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWires</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theWires</em>&nbsp;</td><td>Indices of wires to be removed, if EMPTY then the method removes ALL internal holes of the given object </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
+Example: see GEOM_TestHealing.py 
+</div>
+</div><p>
+<a class="anchor" name="68a586d816212080969fe6ee4f19462d"></a><!-- doxytag: member="geompyDC::geompyDC::CloseContour" ref="68a586d816212080969fe6ee4f19462d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.CloseContour           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWires</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>isCommonVertex</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theWires</em>&nbsp;</td><td>Indexes of edge(s) and wire(s) to be closed within <em>theObject</em>'s shape, if -1, then theObject itself is a wire. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>isCommonVertex</em>&nbsp;</td><td>If TRUE : closure by creation of a common vertex, If FALS : closure by creation of an edge between ends. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
+Example: see GEOM_TestHealing.py 
+</div>
+</div><p>
+<a class="anchor" name="7d5999f697974ede4dc7e2bd8bda35a9"></a><!-- doxytag: member="geompyDC::geompyDC::DivideEdge" ref="7d5999f697974ede4dc7e2bd8bda35a9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.DivideEdge           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theEdgeIndex</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theValue</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>isByParameter</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theEdgeIndex</em>&nbsp;</td><td>Index of edge to be divided within theObject's shape, if -1, then theObject itself is the edge. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theValue</em>&nbsp;</td><td>Value of parameter on edge or length parameter, depending on <em>isByParameter</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>isByParameter</em>&nbsp;</td><td>If TRUE : <em>theValue</em> is treated as a curve parameter [0..1], if FALSE : <em>theValue</em> is treated as a length parameter [0..1] </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
+Example: see GEOM_TestHealing.py 
+</div>
+</div><p>
+<a class="anchor" name="28ff08bd5c4bc952201dc0cef7402d9b"></a><!-- doxytag: member="geompyDC::geompyDC::ChangeOrientationShell" ref="28ff08bd5c4bc952201dc0cef7402d9b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.ChangeOrientationShell           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed.  given shape </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="41fb7f3129e0cd4dd7fe464d18fba515"></a><!-- doxytag: member="geompyDC::geompyDC::ChangeOrientationShellCopy" ref="41fb7f3129e0cd4dd7fe464d18fba515" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.ChangeOrientationShellCopy           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="4ed122bb69d03337a8660f1a550916d8"></a><!-- doxytag: member="geompyDC::geompyDC::GetFreeBoundary" ref="4ed122bb69d03337a8660f1a550916d8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetFreeBoundary           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to get free boundary of. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
+Example: see GEOM_TestHealing.py 
+</div>
+</div><p>
+<a class="anchor" name="e9bfb58d56f250fd0cb515e3523ac64e"></a><!-- doxytag: member="geompyDC::geompyDC::MakeCopy" ref="e9bfb58d56f250fd0cb515e3523ac64e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeCopy           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theOriginal</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="3f2195ae25913232c21e0b9fe4d14645"></a><!-- doxytag: member="geompyDC::geompyDC::MakeFilling" ref="3f2195ae25913232c21e0b9fe4d14645" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeFilling           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMinDeg</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMaxDeg</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTol2D</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTol3D</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNbIter</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>the compound of contours </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theMinDeg</em>&nbsp;</td><td>a minimal degree </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theMaxDeg</em>&nbsp;</td><td>a maximal degree </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTol2D</em>&nbsp;</td><td>a 2d tolerance </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTol3D</em>&nbsp;</td><td>a 3d tolerance </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theNbIter</em>&nbsp;</td><td>a number of iteration </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created filling surface.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="8b789fb1eac91f08fed5643735ef82f2"></a><!-- doxytag: member="geompyDC::geompyDC::MakeGlueFaces" ref="8b789fb1eac91f08fed5643735ef82f2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeGlueFaces           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTolerance</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Initial shape. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTolerance</em>&nbsp;</td><td>Maximum distance between faces, which can be considered as coincident. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing a copy of theShape without coincident faces.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="34bb9c3bfcf52999473f8ed6849d8226"></a><!-- doxytag: member="geompyDC::geompyDC::GetGlueFaces" ref="34bb9c3bfcf52999473f8ed6849d8226" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetGlueFaces           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTolerance</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Initial shape. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTolerance</em>&nbsp;</td><td>Maximum distance between faces, which can be considered as coincident. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>ListOfGO.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="a025213e01e49556bccf2b98e67597a8"></a><!-- doxytag: member="geompyDC::geompyDC::MakeGlueFacesByList" ref="a025213e01e49556bccf2b98e67597a8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeGlueFacesByList           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theTolerance</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFaces</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Initial shape. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theTolerance</em>&nbsp;</td><td>Maximum distance between faces, which can be considered as coincident. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theFaces</em>&nbsp;</td><td>List of faces for gluing. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing a copy of theShape without some faces.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="f867726a40416a5a56c61016cc973a6d"></a><!-- doxytag: member="geompyDC::geompyDC::MakeBoolean" ref="f867726a40416a5a56c61016cc973a6d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeBoolean           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theOperation</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape1</em>&nbsp;</td><td>First argument for boolean operation. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShape2</em>&nbsp;</td><td>Second argument for boolean operation. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theOperation</em>&nbsp;</td><td>Indicates the operation to be done: 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="e8233b6151298410ca8a0a27f938de31"></a><!-- doxytag: member="geompyDC::geompyDC::MakeCommon" ref="e8233b6151298410ca8a0a27f938de31" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeCommon           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="1811661330f4b7497d231898153623e1"></a><!-- doxytag: member="geompyDC::geompyDC::MakeCut" ref="1811661330f4b7497d231898153623e1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeCut           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="91cedb6151173844ea4774b2594d3ede"></a><!-- doxytag: member="geompyDC::geompyDC::MakeFuse" ref="91cedb6151173844ea4774b2594d3ede" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeFuse           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="db309b5427f795aa4468380a319cf13b"></a><!-- doxytag: member="geompyDC::geompyDC::MakeSection" ref="db309b5427f795aa4468380a319cf13b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeSection           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>s2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="693e98c94226019c732c577f4e2bae08"></a><!-- doxytag: member="geompyDC::geompyDC::MakePartition" ref="693e98c94226019c732c577f4e2bae08" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePartition           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListShapes</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListTools</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListKeepInside</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListRemoveInside</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Limit</em> = <code><a class="el" href="namespacegeompyDC.html#d85aa7c933dca679752d28c67018a43c">ShapeType</a>[&quot;SHAPE&quot;]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>RemoveWebs</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListMaterials</em> = <code>[]</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ListShapes</em>&nbsp;</td><td>Shapes to be intersected. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>ListTools</em>&nbsp;</td><td>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. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>Limit</em>&nbsp;</td><td>Type of resulting shapes (corresponding to TopAbs_ShapeEnum).</td></tr>
+  </table>
+</dl>
+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: <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>ListKeepInside</em>&nbsp;</td><td>Shapes, outside which the results will be deleted. Each shape from theKeepInside must belong to theShapes also. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>ListRemoveInside</em>&nbsp;</td><td>Shapes, inside which the results will be deleted. Each shape from theRemoveInside must belong to theShapes also. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>RemoveWebs</em>&nbsp;</td><td>If TRUE, perform Glue 3D algorithm. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>ListMaterials</em>&nbsp;</td><td>Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.</td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shapes.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="91a00e9db2eaa9bde1b8d2c34c92b299"></a><!-- doxytag: member="geompyDC::geompyDC::MakePartitionNonSelfIntersectedShape" ref="91a00e9db2eaa9bde1b8d2c34c92b299" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePartitionNonSelfIntersectedShape           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListShapes</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListTools</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListKeepInside</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListRemoveInside</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Limit</em> = <code><a class="el" href="namespacegeompyDC.html#d85aa7c933dca679752d28c67018a43c">ShapeType</a>[&quot;SHAPE&quot;]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>RemoveWebs</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListMaterials</em> = <code>[]</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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.<p>
+Description of all parameters as in previous method <a class="el" href="classgeompyDC_1_1geompyDC.html#693e98c94226019c732c577f4e2bae08">MakePartition()</a><p>
+!!!NOTE: Passed compounds (via ListShapes or via ListTools) have to consist of nonintersecting shapes.<p>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shapes. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a48ac8ff0e107f4d8e93bd664ca8bf15"></a><!-- doxytag: member="geompyDC::geompyDC::Partition" ref="a48ac8ff0e107f4d8e93bd664ca8bf15" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.Partition           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListShapes</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListTools</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListKeepInside</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListRemoveInside</em> = <code>[]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Limit</em> = <code><a class="el" href="namespacegeompyDC.html#d85aa7c933dca679752d28c67018a43c">ShapeType</a>[&quot;SHAPE&quot;]</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>RemoveWebs</em> = <code>0</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListMaterials</em> = <code>[]</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="8cc6a68037fff53d6d525a96df5fa669"></a><!-- doxytag: member="geompyDC::geompyDC::MakeHalfPartition" ref="8cc6a68037fff53d6d525a96df5fa669" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeHalfPartition           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePlane</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be intersected. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePlane</em>&nbsp;</td><td>Tool shape, to intersect theShape. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="ae13dcb7c8887b5a041fb6db9132bf49"></a><!-- doxytag: member="geompyDC::geompyDC::MakeTranslationTwoPoints" ref="ae13dcb7c8887b5a041fb6db9132bf49" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeTranslationTwoPoints           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be translated. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint1</em>&nbsp;</td><td>Start point of translation vector. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint2</em>&nbsp;</td><td>End point of translation vector. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the translated object.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="7ad489d0ca9d6105742129bb18b9b949"></a><!-- doxytag: member="geompyDC::geompyDC::MakeTranslation" ref="7ad489d0ca9d6105742129bb18b9b949" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeTranslation           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theDX</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theDY</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theDZ</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be translated. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theDX,theDY,theDZ</em>&nbsp;</td><td>Components of translation vector. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the translated object.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="d9d5fd17912e5f49ba4b9eccef1cfeaf"></a><!-- doxytag: member="geompyDC::geompyDC::MakeTranslationVector" ref="d9d5fd17912e5f49ba4b9eccef1cfeaf" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeTranslationVector           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVector</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be translated. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theVector</em>&nbsp;</td><td>The translation vector. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the translated object.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="dd060f21b775de207551c4b6e435e56c"></a><!-- doxytag: member="geompyDC::geompyDC::MakeRotation" ref="dd060f21b775de207551c4b6e435e56c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeRotation           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAxis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAngle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be rotated. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Rotation axis. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAngle</em>&nbsp;</td><td>Rotation angle in radians. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the rotated object.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="607eb745f4538c19eb12ae3517d39007"></a><!-- doxytag: member="geompyDC::geompyDC::MakeRotationThreePoints" ref="607eb745f4538c19eb12ae3517d39007" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeRotationThreePoints           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCentPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be rotated. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theCentPoint</em>&nbsp;</td><td>central point - the axis is the vector perpendicular to the plane containing the three points. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint1</em>&nbsp;</td><td>and thePoint2 - in a perpendicular plan of the axis. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the rotated object.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="56de5cb4e4835ec2d52a226e392ebb15"></a><!-- doxytag: member="geompyDC::geompyDC::MakeScaleTransform" ref="56de5cb4e4835ec2d52a226e392ebb15" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeScaleTransform           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFactor</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be scaled. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint</em>&nbsp;</td><td>Center point for scaling. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theFactor</em>&nbsp;</td><td>Scaling factor value. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the scaled shape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="24217f6fdddd62d6539c1b964f175b38"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMirrorByPlane" ref="24217f6fdddd62d6539c1b964f175b38" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMirrorByPlane           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePlane</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be mirrored. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePlane</em>&nbsp;</td><td>Plane of symmetry. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the mirrored shape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="17fbac698ec8c33d93b1de51ac4874cb"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMirrorByAxis" ref="17fbac698ec8c33d93b1de51ac4874cb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMirrorByAxis           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAxis</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be mirrored. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Axis of symmetry. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the mirrored shape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="8655b456f413267ed78a3c309b6304f9"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMirrorByPoint" ref="8655b456f413267ed78a3c309b6304f9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMirrorByPoint           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be mirrored. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint</em>&nbsp;</td><td>Point of symmetry. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the mirrored shape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="e56618159887843f81359c4481bf7406"></a><!-- doxytag: member="geompyDC::geompyDC::MakePosition" ref="e56618159887843f81359c4481bf7406" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakePosition           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theStartLCS</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theEndLCS</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be displaced. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theStartLCS</em>&nbsp;</td><td>Coordinate system to perform displacement from it. If <em>theStartLCS</em> is NULL, displacement will be performed from global CS. If <em>theObject</em> itself is used as <em>theStartLCS</em>, its location will be changed to <em>theEndLCS</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theEndLCS</em>&nbsp;</td><td>Coordinate system to perform displacement to it. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the displaced shape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="981351eeef1b763896c836cc7f253312"></a><!-- doxytag: member="geompyDC::geompyDC::MakeOffset" ref="981351eeef1b763896c836cc7f253312" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeOffset           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theOffset</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The base object for the offset. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theOffset</em>&nbsp;</td><td>Offset value. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the offset object.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="c9a473ec03e5c63896685b0e34481fd2"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMultiTranslation1D" ref="c9a473ec03e5c63896685b0e34481fd2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMultiTranslation1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVector</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theStep</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNbTimes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be translated. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theVector</em>&nbsp;</td><td>Direction of the translation. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theStep</em>&nbsp;</td><td>Distance to translate on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theNbTimes</em>&nbsp;</td><td>Quantity of translations to be done. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing compound of all the shapes, obtained after each translation.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="ab32f56d90ecb1a6b2298dbfbdd7d83c"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMultiTranslation2D" ref="ab32f56d90ecb1a6b2298dbfbdd7d83c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMultiTranslation2D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVector1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theStep1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNbTimes1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVector2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theStep2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNbTimes2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be translated. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theVector1</em>&nbsp;</td><td>Direction of the first translation. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theStep1</em>&nbsp;</td><td>Step of the first translation. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theNbTimes1</em>&nbsp;</td><td>Quantity of translations to be done along theVector1. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theVector2</em>&nbsp;</td><td>Direction of the second translation. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theStep2</em>&nbsp;</td><td>Step of the second translation. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theNbTimes2</em>&nbsp;</td><td>Quantity of translations to be done along theVector2. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing compound of all the shapes, obtained after each translation.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="38982348093ee6fab2c9a4583a2ca511"></a><!-- doxytag: member="geompyDC::geompyDC::MultiRotate1D" ref="38982348093ee6fab2c9a4583a2ca511" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MultiRotate1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAxis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNbTimes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Rotation angle will be 2*PI/theNbTimes. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be rotated. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>The rotation axis. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theNbTimes</em>&nbsp;</td><td>Quantity of rotations to be done. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing compound of all the shapes, obtained after each rotation.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="616f750a1eeda26ce7277f18f6247693"></a><!-- doxytag: member="geompyDC::geompyDC::MultiRotate2D" ref="616f750a1eeda26ce7277f18f6247693" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MultiRotate2D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAxis</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNbTimes1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theStep</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theNbTimes2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Translation direction passes through center of gravity of rotated shape and its projection on the rotation axis. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be rotated. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Rotation axis. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theAngle</em>&nbsp;</td><td>Rotation angle in graduces. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theNbTimes1</em>&nbsp;</td><td>Quantity of rotations to be done. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theStep</em>&nbsp;</td><td>Translation distance. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theNbTimes2</em>&nbsp;</td><td>Quantity of translations to be done. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing compound of all the shapes, obtained after each transformation.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="eedbceb1c3dda0840de2b0eb4181c359"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMultiRotation1D" ref="eedbceb1c3dda0840de2b0eb4181c359" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMultiRotation1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aDir</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aNbTimes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="8316876f521e705a923d1269a9a8e7f3"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMultiRotation2D" ref="8316876f521e705a923d1269a9a8e7f3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMultiRotation2D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aDir</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aPoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>anAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>nbtimes1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aStep</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>nbtimes2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="63bda9af6c88695354bcff0b367fbe1b"></a><!-- doxytag: member="geompyDC::geompyDC::MakeFilletAll" ref="63bda9af6c88695354bcff0b367fbe1b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeFilletAll           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to perform fillet on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Fillet radius. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="974837854699fa8b1a8745527f51873a"></a><!-- doxytag: member="geompyDC::geompyDC::MakeFillet" ref="974837854699fa8b1a8745527f51873a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeFillet           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theR</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theListShapes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to perform fillet on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Fillet radius. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of shapes in &lt;theListShapes&gt;. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theListShapes</em>&nbsp;</td><td>Global indices of edges/faces to perform fillet on. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Note:</b></dt><dd>Global index of sub-shape can be obtained, using method geompy.GetSubShapeID(). </dd></dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="3e51747789c633e2f971cb4b607dbf73"></a><!-- doxytag: member="geompyDC::geompyDC::MakeChamferAll" ref="3e51747789c633e2f971cb4b607dbf73" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeChamferAll           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theD</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to perform chamfer on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theD</em>&nbsp;</td><td>Chamfer size along each face. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="fdfd03b730f47776a40d153c11f7128c"></a><!-- doxytag: member="geompyDC::geompyDC::MakeChamferEdge" ref="fdfd03b730f47776a40d153c11f7128c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeChamferEdge           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theD1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theD2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFace1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFace2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to perform chamfer on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theD1</em>&nbsp;</td><td>Chamfer size along <em>theFace1</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theD2</em>&nbsp;</td><td>Chamfer size along <em>theFace2</em>. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theFace1,theFace2</em>&nbsp;</td><td>Global indices of two faces of <em>theShape</em>. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Note:</b></dt><dd>Global index of sub-shape can be obtained, using method geompy.GetSubShapeID(). </dd></dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="15f9862deb40103a8b910d66d13391e5"></a><!-- doxytag: member="geompyDC::geompyDC::MakeChamferFaces" ref="15f9862deb40103a8b910d66d13391e5" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeChamferFaces           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theD1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theD2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFaces</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to perform chamfer on. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theD1</em>&nbsp;</td><td>Chamfer size along face from <em>theFaces</em>. If both faces, connected to the edge, are in <em>theFaces</em>, <em>theD1</em> will be get along face, which is nearer to <em>theFaces</em> beginning. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theD2</em>&nbsp;</td><td>Chamfer size along another of two faces, connected to the edge. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theFaces</em>&nbsp;</td><td>Sequence of global indices of faces of <em>theShape</em>. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Note:</b></dt><dd>Global index of sub-shape can be obtained, using method geompy.GetSubShapeID(). </dd></dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="27c2e095df94471a5cee3edf005f527f"></a><!-- doxytag: member="geompyDC::geompyDC::MakeChamfer" ref="27c2e095df94471a5cee3edf005f527f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeChamfer           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>d1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>d2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>aShapeType</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>ListShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="d71461f31b4b633f1ae8ecf19d2026c6"></a><!-- doxytag: member="geompyDC::geompyDC::Archimede" ref="d71461f31b4b633f1ae8ecf19d2026c6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.Archimede           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWeight</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theWaterDensity</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMeshDeflection</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The object presenting the resulting face is returned. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be put in water. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theWeight</em>&nbsp;</td><td>Weight og the shape. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theWaterDensity</em>&nbsp;</td><td>Density of the water. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theMeshDeflection</em>&nbsp;</td><td>Deflection of the mesh, using to compute the section. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing a section of <em>theShape</em> by a plane, corresponding to water level.</dd></dl>
+Example: see GEOM_TestAll.py 
+</div>
+</div><p>
+<a class="anchor" name="9238e5dbb4bc2295e25b8a1c1becc569"></a><!-- doxytag: member="geompyDC::geompyDC::PointCoordinates" ref="9238e5dbb4bc2295e25b8a1c1becc569" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.PointCoordinates           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Point</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Returns:</b></dt><dd>[x, y, z]</dd></dl>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="07b3380d65462c2473d817ba9ba93732"></a><!-- doxytag: member="geompyDC::geompyDC::BasicProperties" ref="07b3380d65462c2473d817ba9ba93732" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.BasicProperties           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to define properties of. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="56e1764834e88b2fff2e341474c5b2a8"></a><!-- doxytag: member="geompyDC::geompyDC::BoundingBox" ref="56e1764834e88b2fff2e341474c5b2a8" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.BoundingBox           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to obtain bounding box of. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="b0c0c06d7ccf5e768cb68b90ef2063bb"></a><!-- doxytag: member="geompyDC::geompyDC::Inertia" ref="b0c0c06d7ccf5e768cb68b90ef2063bb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.Inertia           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to calculate inertia of. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="0dd7dc10f4871d5a6ef5e1024c3847ea"></a><!-- doxytag: member="geompyDC::geompyDC::MinDistance" ref="0dd7dc10f4871d5a6ef5e1024c3847ea" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MinDistance           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape1,theShape2</em>&nbsp;</td><td>Shapes to find minimal distance between. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Value of the minimal distance between the given shapes.</dd></dl>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="216d622cb1e479c6b50b974363881e24"></a><!-- doxytag: member="geompyDC::geompyDC::Tolerance" ref="216d622cb1e479c6b50b974363881e24" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.Tolerance           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to get tolerances of. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="81dcea9d11cd1e7e2a6fc7fc82c9747b"></a><!-- doxytag: member="geompyDC::geompyDC::WhatIs" ref="81dcea9d11cd1e7e2a6fc7fc82c9747b" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.WhatIs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be described. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Description of the given shape.</dd></dl>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="bcfbd3959bf92bd7e8db4dd646d8d49d"></a><!-- doxytag: member="geompyDC::geompyDC::MakeCDG" ref="bcfbd3959bf92bd7e8db4dd646d8d49d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeCDG           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to define centre of mass of. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created point.</dd></dl>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="63d7e6c328b2864bcba0d61809ea8fa9"></a><!-- doxytag: member="geompyDC::geompyDC::CheckShape" ref="63d7e6c328b2864bcba0d61809ea8fa9" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.CheckShape           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theIsCheckGeom</em> = <code>0</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to check validity of. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theIsCheckGeom</em>&nbsp;</td><td>If FALSE, only the shape's topology will be checked, if TRUE, the shape's geometry will be checked also. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>TRUE, if the shape "seems to be valid". If theShape is invalid, prints a description of problem.</dd></dl>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="ed127e0ebf2001c61b9b4faed95313cb"></a><!-- doxytag: member="geompyDC::geompyDC::GetPosition" ref="ed127e0ebf2001c61b9b4faed95313cb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetPosition           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to calculate position of. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="a29a8ae880663ba09edb8b35688646be"></a><!-- doxytag: member="geompyDC::geompyDC::KindOfShape" ref="a29a8ae880663ba09edb8b35688646be" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.KindOfShape           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to get a kind of. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Returns a kind of shape in terms of <em>GEOM_IKindOfShape.shape_kind</em> enumeration and a list of parameters, describing the shape. </dd></dl>
+<dl compact><dt><b>Note:</b></dt><dd>Concrete meaning of each value, returned via <em>theIntegers</em> or <em>theDoubles</em> list depends on the kind of the shape. The full list of possible outputs is:</dd></dl>
+geompy.kind.COMPOUND nb_solids nb_faces nb_edges nb_vertices geompy.kind.COMPSOLID nb_solids nb_faces nb_edges nb_vertices<p>
+geompy.kind.SHELL <a class="el" href="classgeompyDC_1_1info.html#e26dc8be1afb44222ab88b4a9852c6aa">geompy.info.CLOSED</a> nb_faces nb_edges nb_vertices geompy.kind.SHELL <a class="el" href="classgeompyDC_1_1info.html#b717bbcea5e0faa48760b0be4706ec57">geompy.info.UNCLOSED</a> nb_faces nb_edges nb_vertices<p>
+geompy.kind.WIRE <a class="el" href="classgeompyDC_1_1info.html#e26dc8be1afb44222ab88b4a9852c6aa">geompy.info.CLOSED</a> nb_edges nb_vertices geompy.kind.WIRE <a class="el" href="classgeompyDC_1_1info.html#b717bbcea5e0faa48760b0be4706ec57">geompy.info.UNCLOSED</a> nb_edges nb_vertices<p>
+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<p>
+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<p>
+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<p>
+geompy.kind.VERTEX x y z<p>
+Example: see GEOM_TestMeasures.py 
+</div>
+</div><p>
+<a class="anchor" name="57106a55755e9b303464b3f416ca94f3"></a><!-- doxytag: member="geompyDC::geompyDC::Import" ref="57106a55755e9b303464b3f416ca94f3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.Import           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFormatName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theFileName</em>&nbsp;</td><td>The file, containing the shape. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theFormatName</em>&nbsp;</td><td>Specify format for the file reading. Available formats can be obtained with InsertOp.ImportTranslators() method. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the imported shape.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="68da55be4e4b99fd7ddf22ce58b9cefc"></a><!-- doxytag: member="geompyDC::geompyDC::ImportBREP" ref="68da55be4e4b99fd7ddf22ce58b9cefc" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.ImportBREP           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="113c78a060c34a5ca7b72f526a08b247"></a><!-- doxytag: member="geompyDC::geompyDC::ImportIGES" ref="113c78a060c34a5ca7b72f526a08b247" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.ImportIGES           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="35b653ecb3349e0b5835802064ed5792"></a><!-- doxytag: member="geompyDC::geompyDC::ImportSTEP" ref="35b653ecb3349e0b5835802064ed5792" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.ImportSTEP           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="97cf9d2c6b169c617297bcb0ff360d80"></a><!-- doxytag: member="geompyDC::geompyDC::Export" ref="97cf9d2c6b169c617297bcb0ff360d80" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.Export           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFormatName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be stored in the file. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theFileName</em>&nbsp;</td><td>Name of the file to store the given shape in. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theFormatName</em>&nbsp;</td><td>Specify format for the shape storage. Available formats can be obtained with InsertOp.ImportTranslators() method.</td></tr>
+  </table>
+</dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="b98e62e986537d6dbcf09db82268133f"></a><!-- doxytag: member="geompyDC::geompyDC::ExportBREP" ref="b98e62e986537d6dbcf09db82268133f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.ExportBREP           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="58cabb942475e87acfe20cf64789d09f"></a><!-- doxytag: member="geompyDC::geompyDC::ExportIGES" ref="58cabb942475e87acfe20cf64789d09f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.ExportIGES           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="b90ced1bdda21fd895146ecbef93c5b1"></a><!-- doxytag: member="geompyDC::geompyDC::ExportSTEP" ref="b90ced1bdda21fd895146ecbef93c5b1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.ExportSTEP           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theObject</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFileName</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="438ffa67d7e23027c7ffc5e783648a99"></a><!-- doxytag: member="geompyDC::geompyDC::MakeQuad" ref="438ffa67d7e23027c7ffc5e783648a99" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeQuad           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>E1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>E2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>E3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>E4</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Order of Edges is not important. It is not necessary that edges share the same vertex. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>E1,E2,E3,E4</em>&nbsp;</td><td>Edges for the face bound. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created face.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="5859f858dddc4697da0a54650a89c630"></a><!-- doxytag: member="geompyDC::geompyDC::MakeQuad2Edges" ref="5859f858dddc4697da0a54650a89c630" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeQuad2Edges           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>E1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>E2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The missing edges will be built by creating the shortest ones. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>E1,E2</em>&nbsp;</td><td>Two opposite edges for the face. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created face.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="d22d10791fbe72e26d95c790f4b12f97"></a><!-- doxytag: member="geompyDC::geompyDC::MakeQuad4Vertices" ref="d22d10791fbe72e26d95c790f4b12f97" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeQuad4Vertices           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>V1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>V2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>V3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>V4</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The missing edges will be built by creating the shortest ones. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>V1,V2,V3,V4</em>&nbsp;</td><td>Corner vertices for the face. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created face.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="011d7b1e772d37e07b0db4e2c5480865"></a><!-- doxytag: member="geompyDC::geompyDC::MakeHexa" ref="011d7b1e772d37e07b0db4e2c5480865" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeHexa           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>F1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>F2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>F3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>F4</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>F5</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>F6</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Order of faces is not important. It is not necessary that Faces share the same edge. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>F1,F2,F3,F4,F5,F6</em>&nbsp;</td><td>Faces for the hexahedral solid. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created solid.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="d1d440df311f95e73311279e6c7f4b3e"></a><!-- doxytag: member="geompyDC::geompyDC::MakeHexa2Faces" ref="d1d440df311f95e73311279e6c7f4b3e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeHexa2Faces           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>F1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>F2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+The missing faces will be built by creating the smallest ones. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>F1,F2</em>&nbsp;</td><td>Two opposite faces for the hexahedral solid. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created solid.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="2f8102f4db31a9b15d605b8b644c1e1d"></a><!-- doxytag: member="geompyDC::geompyDC::GetPoint" ref="2f8102f4db31a9b15d605b8b644c1e1d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetPoint           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theX</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theY</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theZ</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theEpsilon</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theX,theY,theZ</em>&nbsp;</td><td>Coordinates of the sought vertex. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theEpsilon</em>&nbsp;</td><td>Maximum allowed distance between the resulting vertex and point with the given coordinates. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found vertex.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="5a135eed8efccf5a21d19376faf3f51f"></a><!-- doxytag: member="geompyDC::geompyDC::GetEdge" ref="5a135eed8efccf5a21d19376faf3f51f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetEdge           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint1,thePoint2</em>&nbsp;</td><td>Points, close to the ends of the desired edge. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found edge.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="5cd9a2e1962945ad63435accccb04532"></a><!-- doxytag: member="geompyDC::geompyDC::GetEdgeNearPoint" ref="5cd9a2e1962945ad63435accccb04532" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetEdgeNearPoint           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint</em>&nbsp;</td><td>Point, close to the desired edge. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found edge.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="6825dde156e5fa007276494e1474d1a7"></a><!-- doxytag: member="geompyDC::geompyDC::GetFaceByPoints" ref="6825dde156e5fa007276494e1474d1a7" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetFaceByPoints           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint3</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint4</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint1-thePoint4</em>&nbsp;</td><td>Points, close to the corners of the desired face. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found face.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="8a87c9c4cfae32e37ed255b0a325952a"></a><!-- doxytag: member="geompyDC::geompyDC::GetFaceByEdges" ref="8a87c9c4cfae32e37ed255b0a325952a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetFaceByEdges           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theEdge1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theEdge2</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theEdge1,theEdge2</em>&nbsp;</td><td>Edges, close to the edges of the desired face. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found face.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="3a78ade4a5640a76a6bc14a3205516aa"></a><!-- doxytag: member="geompyDC::geompyDC::GetOppositeFace" ref="3a78ade4a5640a76a6bc14a3205516aa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetOppositeFace           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBlock</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theFace</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theBlock</em>&nbsp;</td><td>Must be a hexahedral solid. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theFace</em>&nbsp;</td><td>Face of <em>theBlock</em>, opposite to the desired face. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found face.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="fd4db71d0d90143094fb9461be1345da"></a><!-- doxytag: member="geompyDC::geompyDC::GetFaceNearPoint" ref="fd4db71d0d90143094fb9461be1345da" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetFaceNearPoint           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint</em>&nbsp;</td><td>Point, close to the desired face. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found face.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="712db7946c95195cc4e21b04ccfd1e51"></a><!-- doxytag: member="geompyDC::geompyDC::GetFaceByNormale" ref="712db7946c95195cc4e21b04ccfd1e51" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetFaceByNormale           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theBlock</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theVector</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theVector</em>&nbsp;</td><td>Vector, close to the normale of the desired face. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found face.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="c3ebd44de8eaa8b35e21120c01130c28"></a><!-- doxytag: member="geompyDC::geompyDC::CheckCompoundOfBlocks" ref="c3ebd44de8eaa8b35e21120c01130c28" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.CheckCompoundOfBlocks           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCompound</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+To be considered as a compound of blocks, the given shape must satisfy the following conditions:<ul>
+<li>Each element of the compound should be a Block (6 faces and 12 edges).</li><li>A connection between two Blocks should be an entire quadrangle face or an entire edge.</li><li>The compound should be connexe.</li><li>The glue between two quadrangle faces should be applied. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>The compound to check. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>TRUE, if the given shape is a compound of blocks. If theCompound is not valid, prints all discovered errors.</dd></dl>
+Example: see GEOM_Spanner.py </li></ul>
+
+</div>
+</div><p>
+<a class="anchor" name="719a37bde6e44c537845fc95bd4171ef"></a><!-- doxytag: member="geompyDC::geompyDC::RemoveExtraEdges" ref="719a37bde6e44c537845fc95bd4171ef" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.RemoveExtraEdges           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Unite faces and edges, sharing one surface. It means that this faces must have references to one C++ surface object (handle). <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>The compound or single solid to remove irregular edges from. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Improved shape.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="cb8e3a5d2a9b43ad0a061d98a5adf066"></a><!-- doxytag: member="geompyDC::geompyDC::CheckAndImprove" ref="cb8e3a5d2a9b43ad0a061d98a5adf066" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.CheckAndImprove           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Fix all detected errors. <dl compact><dt><b>Note:</b></dt><dd>Single block can be also fixed by this method. </dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>The compound to check and improve. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>Improved compound.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="c9f139e013728ca4b9e9176cc270dc9c"></a><!-- doxytag: member="geompyDC::geompyDC::MakeBlockExplode" ref="c9f139e013728ca4b9e9176cc270dc9c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeBlockExplode           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCompound</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMinNbFaces</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMaxNbFaces</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>The compound to explode. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theMinNbFaces</em>&nbsp;</td><td>If solid has lower number of faces, it is not a block. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theMaxNbFaces</em>&nbsp;</td><td>If solid has higher number of faces, it is not a block. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Note:</b></dt><dd>If theMaxNbFaces = 0, the maximum number of faces is not restricted. </dd></dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of GEOM_Objects, containing the retrieved blocks.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="84908160eb9c556e90fc56482c78b3d6"></a><!-- doxytag: member="geompyDC::geompyDC::GetBlockNearPoint" ref="84908160eb9c556e90fc56482c78b3d6" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetBlockNearPoint           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCompound</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>thePoint</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>Compound, to find block in. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>thePoint</em>&nbsp;</td><td>Point, close to the desired block. If the point lays on boundary between some blocks, we return block with nearest center. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found block.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="c1a9fb16ff249201e79c5c3ff44dd0bb"></a><!-- doxytag: member="geompyDC::geompyDC::GetBlockByParts" ref="c1a9fb16ff249201e79c5c3ff44dd0bb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetBlockByParts           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCompound</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theParts</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>Compound, to find block in. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theParts</em>&nbsp;</td><td>List of faces and/or edges and/or vertices to be parts of the found block. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found block.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="069fdba39a027adf8abbae169fd47ab2"></a><!-- doxytag: member="geompyDC::geompyDC::GetBlocksByParts" ref="069fdba39a027adf8abbae169fd47ab2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetBlocksByParts           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theCompound</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theParts</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>Compound, to find blocks in. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theParts</em>&nbsp;</td><td>List of faces and/or edges and/or vertices to be parts of the found blocks. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of GEOM_Objects, containing the found blocks.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="5344840833d7500e7823b9ab19927d33"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMultiTransformation1D" ref="5344840833d7500e7823b9ab19927d33" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMultiTransformation1D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Block</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>DirFace1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>DirFace2</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NbTimes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Transformation is defined so, as to superpose direction faces. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Block</em>&nbsp;</td><td>Hexahedral solid to be multi-transformed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>DirFace1</em>&nbsp;</td><td>ID of First direction face. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>DirFace2</em>&nbsp;</td><td>ID of Second direction face. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NbTimes</em>&nbsp;</td><td>Quantity of transformations to be done. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Note:</b></dt><dd>Unique ID of sub-shape can be obtained, using method <a class="el" href="classgeompyDC_1_1geompyDC.html#b3cf4c129a0316ffbe7904021762549c">GetSubShapeID()</a>. </dd></dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="967f8f3080541525e772700ed30af9eb"></a><!-- doxytag: member="geompyDC::geompyDC::MakeMultiTransformation2D" ref="967f8f3080541525e772700ed30af9eb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.MakeMultiTransformation2D           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Block</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>DirFace1U</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>DirFace2U</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NbTimesU</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>DirFace1V</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>DirFace2V</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>NbTimesV</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>Block</em>&nbsp;</td><td>Hexahedral solid to be multi-transformed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>DirFace1U,DirFace2U</em>&nbsp;</td><td>IDs of Direction faces for the first transformation. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>DirFace1V,DirFace2V</em>&nbsp;</td><td>IDs of Direction faces for the second transformation. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>NbTimesU,NbTimesV</em>&nbsp;</td><td>Quantity of transformations to be done. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
+Example: see GEOM_Spanner.py 
+</div>
+</div><p>
+<a class="anchor" name="e386685281c22ea9fa42abf0faba0fd0"></a><!-- doxytag: member="geompyDC::geompyDC::Propagate" ref="e386685281c22ea9fa42abf0faba0fd0" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.Propagate           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+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. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to build propagation groups on. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>List of GEOM_Objects, each of them is a propagation group.</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="a9d7a73c8d03d5b448e70e0990ad0b67"></a><!-- doxytag: member="geompyDC::geompyDC::CreateGroup" ref="a9d7a73c8d03d5b448e70e0990ad0b67" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.CreateGroup           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theMainShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShapeType</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theMainShape</em>&nbsp;</td><td>is a GEOM object on which the group is selected </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>defines a shape type of the group </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>a newly created GEOM group</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="42c0d3bfe8dcc8398da6fe79ddf8e866"></a><!-- doxytag: member="geompyDC::geompyDC::AddObject" ref="42c0d3bfe8dcc8398da6fe79ddf8e866" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.AddObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theGroup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSubShapeID</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group to which the new sub shape is added </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theSubShapeID</em>&nbsp;</td><td>is a sub shape ID in the main object. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Note:</b></dt><dd>Use method <a class="el" href="classgeompyDC_1_1geompyDC.html#b3cf4c129a0316ffbe7904021762549c">GetSubShapeID()</a> to get an unique ID of the sub shape</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="f1ebbc44f8811fbeb71cffc9abd23985"></a><!-- doxytag: member="geompyDC::geompyDC::RemoveObject" ref="f1ebbc44f8811fbeb71cffc9abd23985" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.RemoveObject           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theGroup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSubShapeID</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group from which the new sub shape is removed </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theSubShapeID</em>&nbsp;</td><td>is a sub shape ID in the main object. </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Note:</b></dt><dd>Use method <a class="el" href="classgeompyDC_1_1geompyDC.html#b3cf4c129a0316ffbe7904021762549c">GetSubShapeID()</a> to get an unique ID of the sub shape</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="952c89c431a7d8b80d7f60030bb7fe26"></a><!-- doxytag: member="geompyDC::geompyDC::UnionList" ref="952c89c431a7d8b80d7f60030bb7fe26" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.UnionList           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theGroup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSubShapes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+No errors, if some shapes are alredy included. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group to which the new sub shapes are added. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theSubShapes</em>&nbsp;</td><td>is a list of sub shapes to be added.</td></tr>
+  </table>
+</dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="feb077c171bca22d724adce47a576c51"></a><!-- doxytag: member="geompyDC::geompyDC::UnionIDs" ref="feb077c171bca22d724adce47a576c51" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.UnionIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theGroup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSubShapes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="7d131e5368d0cbef869dc8f7e625943f"></a><!-- doxytag: member="geompyDC::geompyDC::DifferenceList" ref="7d131e5368d0cbef869dc8f7e625943f" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.DifferenceList           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theGroup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSubShapes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+No errors, if some shapes are not included. <dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group from which the sub-shapes are removed. </td></tr>
+    <tr><td valign="top"></td><td valign="top"><em>theSubShapes</em>&nbsp;</td><td>is a list of sub-shapes to be removed.</td></tr>
+  </table>
+</dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="09dcc7102fc5cf6ba7582b027dcaf8c4"></a><!-- doxytag: member="geompyDC::geompyDC::DifferenceIDs" ref="09dcc7102fc5cf6ba7582b027dcaf8c4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.DifferenceIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theGroup</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theSubShapes</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="1f882d77f36782aec9552b4091e72fa2"></a><!-- doxytag: member="geompyDC::geompyDC::GetObjectIDs" ref="1f882d77f36782aec9552b4091e72fa2" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetObjectIDs           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theGroup</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group for which a list of IDs is requested</td></tr>
+  </table>
+</dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="89a5674df0edb6bc0d10fe2327b6dd69"></a><!-- doxytag: member="geompyDC::geompyDC::GetType" ref="89a5674df0edb6bc0d10fe2327b6dd69" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetType           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theGroup</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group which type is returned.</td></tr>
+  </table>
+</dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="4cb71ccbb6ce142438dac7ab8b1bfbcd"></a><!-- doxytag: member="geompyDC::geompyDC::GetMainShape" ref="4cb71ccbb6ce142438dac7ab8b1bfbcd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetMainShape           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theGroup</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group for which a main shape object is requested </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>a GEOM object which is a main shape for theGroup</dd></dl>
+Example: see GEOM_TestOthers.py 
+</div>
+</div><p>
+<a class="anchor" name="b7c0fb87c91fbdc021c72b58b56c73f4"></a><!-- doxytag: member="geompyDC::geompyDC::GetEdgesByLength" ref="b7c0fb87c91fbdc021c72b58b56c73f4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.GetEdgesByLength           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>theShape</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>min_length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>max_length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>include_min</em> = <code>1</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>include_max</em> = <code>1</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+If include_min/max == 0, edges with length == min/max_length will not be included in result. 
+</div>
+</div><p>
+<a class="anchor" name="2c911eb0c53d1c4e22dedd2196055d18"></a><!-- doxytag: member="geompyDC::geompyDC::SelectEdges" ref="2c911eb0c53d1c4e22dedd2196055d18" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.SelectEdges           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>min_length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>max_length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>include_min</em> = <code>1</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>include_max</em> = <code>1</code></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+If include_min/max == 0, edges with length == min/max_length will not be included in result. 
+</div>
+</div><p>
+<a class="anchor" name="fdd468507a5639f23702618029a42f5e"></a><!-- doxytag: member="geompyDC::geompyDC::addPath" ref="fdd468507a5639f23702618029a42f5e" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">def geompyDC.geompyDC.addPath           </td>
+          <td>(</td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>self</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&nbsp;</td>
+          <td class="paramname"> <em>Path</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="9485018bf453de77f19cfddb21d3db7d"></a><!-- doxytag: member="geompyDC::geompyDC::myBuilder" ref="9485018bf453de77f19cfddb21d3db7d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#9485018bf453de77f19cfddb21d3db7d">geompyDC.geompyDC.myBuilder</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="bbaafac224de10f47a6ade537922d0e1"></a><!-- doxytag: member="geompyDC::geompyDC::myStudyId" ref="bbaafac224de10f47a6ade537922d0e1" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#bbaafac224de10f47a6ade537922d0e1">geompyDC.geompyDC.myStudyId</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="6d683d934b8329fdbb475d9c6e61fc55"></a><!-- doxytag: member="geompyDC::geompyDC::father" ref="6d683d934b8329fdbb475d9c6e61fc55" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#6d683d934b8329fdbb475d9c6e61fc55">geompyDC.geompyDC.father</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cb9f574a04df268d2ac3dad4084a501a"></a><!-- doxytag: member="geompyDC::geompyDC::BasicOp" ref="cb9f574a04df268d2ac3dad4084a501a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#cb9f574a04df268d2ac3dad4084a501a">geompyDC.geompyDC.BasicOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="4e6874f535a360865d46651d158008a4"></a><!-- doxytag: member="geompyDC::geompyDC::CurvesOp" ref="4e6874f535a360865d46651d158008a4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#4e6874f535a360865d46651d158008a4">geompyDC.geompyDC.CurvesOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e83f2aa2b03d2fa22da016445792a38d"></a><!-- doxytag: member="geompyDC::geompyDC::PrimOp" ref="e83f2aa2b03d2fa22da016445792a38d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#e83f2aa2b03d2fa22da016445792a38d">geompyDC.geompyDC.PrimOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="808040354de98ebe2da91b260acdebc3"></a><!-- doxytag: member="geompyDC::geompyDC::ShapesOp" ref="808040354de98ebe2da91b260acdebc3" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#808040354de98ebe2da91b260acdebc3">geompyDC.geompyDC.ShapesOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="4ffc95e51898e9fb01ddd6f81b5b4d8a"></a><!-- doxytag: member="geompyDC::geompyDC::HealOp" ref="4ffc95e51898e9fb01ddd6f81b5b4d8a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#4ffc95e51898e9fb01ddd6f81b5b4d8a">geompyDC.geompyDC.HealOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="399bd9f35bcbba929ce14514bff80172"></a><!-- doxytag: member="geompyDC::geompyDC::InsertOp" ref="399bd9f35bcbba929ce14514bff80172" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#399bd9f35bcbba929ce14514bff80172">geompyDC.geompyDC.InsertOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="c0937479ddda039044ef8a77b3856589"></a><!-- doxytag: member="geompyDC::geompyDC::BoolOp" ref="c0937479ddda039044ef8a77b3856589" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#c0937479ddda039044ef8a77b3856589">geompyDC.geompyDC.BoolOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="71257bf08344eb67180476997550faa4"></a><!-- doxytag: member="geompyDC::geompyDC::TrsfOp" ref="71257bf08344eb67180476997550faa4" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#71257bf08344eb67180476997550faa4">geompyDC.geompyDC.TrsfOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="70088920b0ecf7c2f91752773076d10a"></a><!-- doxytag: member="geompyDC::geompyDC::LocalOp" ref="70088920b0ecf7c2f91752773076d10a" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#70088920b0ecf7c2f91752773076d10a">geompyDC.geompyDC.LocalOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="5553df463eb205a7d8d129984330f570"></a><!-- doxytag: member="geompyDC::geompyDC::MeasuOp" ref="5553df463eb205a7d8d129984330f570" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#5553df463eb205a7d8d129984330f570">geompyDC.geompyDC.MeasuOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="79bef537fb16d86a07700b14d66cfabd"></a><!-- doxytag: member="geompyDC::geompyDC::BlocksOp" ref="79bef537fb16d86a07700b14d66cfabd" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#79bef537fb16d86a07700b14d66cfabd">geompyDC.geompyDC.BlocksOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="d456a011f482dbd6f98505b6c4f5624d"></a><!-- doxytag: member="geompyDC::geompyDC::GroupOp" ref="d456a011f482dbd6f98505b6c4f5624d" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#d456a011f482dbd6f98505b6c4f5624d">geompyDC.geompyDC.GroupOp</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="cc738d95c175885b16443c9476218ffb"></a><!-- doxytag: member="geompyDC::geompyDC::myStudy" ref="cc738d95c175885b16443c9476218ffb" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classgeompyDC_1_1geompyDC.html#cc738d95c175885b16443c9476218ffb">geompyDC.geompyDC.myStudy</a>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 12:28:15 2007 for SALOME - GEOM - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
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
new file mode 100644 (file)
index 0000000..b635532
Binary files /dev/null and b/doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1geompyDC__inherit__graph.jpg differ
diff --git a/doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1info.html b/doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1info.html
new file mode 100644 (file)
index 0000000..dc220ec
--- /dev/null
@@ -0,0 +1,77 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<div class="nav">
+<a class="el" href="namespacegeompyDC.html">geompyDC</a>.<a class="el" href="classgeompyDC_1_1info.html">info</a></div>
+<h1>geompyDC.info Class Reference</h1><!-- doxytag: class="geompyDC::info" --><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1info.html#ec486e837378c061897b2e1b8aefde41">UNKNOWN</a> = 0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1info.html#e26dc8be1afb44222ab88b4a9852c6aa">CLOSED</a> = 1</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1info.html#b717bbcea5e0faa48760b0be4706ec57">UNCLOSED</a> = 2</td></tr>
+
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="ec486e837378c061897b2e1b8aefde41"></a><!-- doxytag: member="geompyDC::info::UNKNOWN" ref="ec486e837378c061897b2e1b8aefde41" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classgeompyDC_1_1info.html#ec486e837378c061897b2e1b8aefde41">geompyDC.info.UNKNOWN</a> = 0<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="e26dc8be1afb44222ab88b4a9852c6aa"></a><!-- doxytag: member="geompyDC::info::CLOSED" ref="e26dc8be1afb44222ab88b4a9852c6aa" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classgeompyDC_1_1info.html#e26dc8be1afb44222ab88b4a9852c6aa">geompyDC.info.CLOSED</a> = 1<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="b717bbcea5e0faa48760b0be4706ec57"></a><!-- doxytag: member="geompyDC::info::UNCLOSED" ref="b717bbcea5e0faa48760b0be4706ec57" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int <a class="el" href="classgeompyDC_1_1info.html#b717bbcea5e0faa48760b0be4706ec57">geompyDC.info.UNCLOSED</a> = 2<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 12:28:15 2007 for SALOME - GEOM - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
index e83be11f958dedff38c637e9644b844f1d94aedd..5a7d6e1a2dbf59eb85f6a933d9290156eaecbc18 100644 (file)
    <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
    <title>Main Page</title>
 <link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
 </head>
 <body>
 &nbsp;
 </body>
 </html>
-<!-- Generated by Doxygen 1.4.6 -->
+<!-- Generated by Doxygen 1.4.7 -->
 <h1>Package geompy</h1>
 <p>
+<p>
+For available methods please see documentation of 
+<a class="el" href="classgeompyDC_1_1geompyDC.html">geompyDC</a> class,
+implemented in <a class="el" href="namespacegeompyDC.html">geompyDC.py</a> script.
+All methods of geompyDC class are accessible via geompy namespace, for example &quot;box = geompy.MakeBoxDXDYDZ(10.,20.,30.)&quot;.
+<p>
 <table border="0" cellpadding="0" cellspacing="0">
 <tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#4a5618a690db0aecbe5989cb55d74ece">init_geom</a></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#5ece84ce1ea01c0cb42f69399817bbc3">SubShapeName</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get name for sub-shape aSubObj of shape aMainObj.  <a href="#5ece84ce1ea01c0cb42f69399817bbc3"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#fd40f7d59da81b22862298666f807f7d">addToStudy</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Publish in study aShape with name aName.  <a href="#fd40f7d59da81b22862298666f807f7d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#82aab9da423d1401a3ddfd0eb4b0c49d">addToStudyInFather</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Publish in study aShape with name aName as sub-object of previously published aFather.  <a href="#82aab9da423d1401a3ddfd0eb4b0c49d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9310c6377485b0bcfcfab87ab49d7e9a">MakeVertex</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create point by three coordinates.  <a href="#9310c6377485b0bcfcfab87ab49d7e9a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#0218cb2daa9ac5dc1eb4e26471e8b4d2">MakeVertexWithRef</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a point, distant from the referenced point on the given distances along the coordinate axes.  <a href="#0218cb2daa9ac5dc1eb4e26471e8b4d2"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#792541ac8429b9ba33ed099d822f7020">MakeVertexOnCurve</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a point, corresponding to the given parameter on the given curve.  <a href="#792541ac8429b9ba33ed099d822f7020"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#0b1d6768182d2d8302c359f2ec853952">MakeTangentOnCurve</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a tangent, corresponding to the given parameter on the given curve.  <a href="#0b1d6768182d2d8302c359f2ec853952"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#e7edc072e7e7b74feee2983e40b3f727">MakeVectorDXDYDZ</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a vector with the given components.  <a href="#e7edc072e7e7b74feee2983e40b3f727"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#93a57241f7e0c8666fa64effb24d95eb">MakeVector</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a vector between two points.  <a href="#93a57241f7e0c8666fa64effb24d95eb"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#ace7c6d8f49b69b3b9d1cf87b0c42a87">MakeLine</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a line, passing through the given point and parrallel to the given direction.  <a href="#ace7c6d8f49b69b3b9d1cf87b0c42a87"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#d05c89e50645bfcb9180c9a1f0cd495b">MakeLineTwoPnt</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a line, passing through the given points.  <a href="#d05c89e50645bfcb9180c9a1f0cd495b"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#b99b3d9ec2a1839a5b3e43139da67559">MakePlane</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a plane, passing through the given point and normal to the given vector.  <a href="#b99b3d9ec2a1839a5b3e43139da67559"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#91603b64526fd345b2255907f179fffb">MakePlaneThreePnt</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a plane, passing through the three given points.  <a href="#91603b64526fd345b2255907f179fffb"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#0d2356927fd4fcff47597d7c3170a3af">MakePlaneFace</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a plane, similar to the existing one, but with another size of representing face.  <a href="#0d2356927fd4fcff47597d7c3170a3af"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f054185ef572c0277eb37e6a98956f92">MakeMarker</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a local coordinate system.  <a href="#f054185ef572c0277eb37e6a98956f92"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#6fc5a0f21295d06cc796dce166c1dbea">MakeMarkerPntTwoVec</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a local coordinate system.  <a href="#6fc5a0f21295d06cc796dce166c1dbea"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#09d23236d0b3ac8260d44baf9dd9e510">MakeArc</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an arc of circle, passing through three given points.  <a href="#09d23236d0b3ac8260d44baf9dd9e510"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f2ced5604e1b7822fd976c4d5acd86a1">MakeCircle</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a circle with given center, normal vector and radius.  <a href="#f2ced5604e1b7822fd976c4d5acd86a1"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#6bec7e48f6a69ab9c37652efc3192ece">MakeCircleThreePnt</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a circle, passing through three given points.  <a href="#6bec7e48f6a69ab9c37652efc3192ece"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#491d5983ad5315aaa451c0dab9aa53de">MakeEllipse</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an ellipse with given center, normal vector and radiuses.  <a href="#491d5983ad5315aaa451c0dab9aa53de"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#ab3518c19dae07433e912237cb6d87e3">MakePolyline</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a polyline on the set of points.  <a href="#ab3518c19dae07433e912237cb6d87e3"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#bac3b24c01efafd46ff55745c114c218">MakeBezier</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create bezier curve on the set of points.  <a href="#bac3b24c01efafd46ff55745c114c218"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9d256f55a31d4caea356df5e9a36b491">MakeInterpol</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create B-Spline curve on the set of points.  <a href="#9d256f55a31d4caea356df5e9a36b491"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#2e0cfe9c8a9c1456a882f3b1fd118c1a">MakeSketcher</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a sketcher (wire or face), following the textual description, passed through <em>theCommand</em> argument.  <a href="#2e0cfe9c8a9c1456a882f3b1fd118c1a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c6d246779168cbe8a976bfd23268ab9f">MakeSketcherOnPlane</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a sketcher (wire or face), following the textual description, passed through <em>theCommand</em> argument.  <a href="#c6d246779168cbe8a976bfd23268ab9f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#7e4d346b1fc5ee4887e8356abb864987">MakeBox</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a box by coordinates of two opposite vertices.  <a href="#7e4d346b1fc5ee4887e8356abb864987"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#3935ab1a312d87952e0661e539cb3861">MakeBoxDXDYDZ</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a box with specified dimensions along the coordinate axes and with edges, parallel to the coordinate axes.  <a href="#3935ab1a312d87952e0661e539cb3861"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f887eae04ea14936c8f2ccc08e530e12">MakeBoxTwoPnt</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a box with two specified opposite vertices, and with edges, parallel to the coordinate axes.  <a href="#f887eae04ea14936c8f2ccc08e530e12"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#5f544551dab0053b491618b11f72d8a7">MakeCylinder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a cylinder with given base point, axis, radius and height.  <a href="#5f544551dab0053b491618b11f72d8a7"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#e4afae782eac7eda170ca1580985025c">MakeCylinderRH</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a cylinder with given radius and height at the origin of coordinate system.  <a href="#e4afae782eac7eda170ca1580985025c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#2ef7fabed1a4c83cfd9dfe41f54fe03e">MakeSpherePntR</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a sphere with given center and radius.  <a href="#2ef7fabed1a4c83cfd9dfe41f54fe03e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#39ecaa363c5555638718f4564aa1258d">MakeSphere</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a sphere with given center and radius.  <a href="#39ecaa363c5555638718f4564aa1258d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#207bec566af2333662e49b0e054ebedc">MakeSphereR</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a sphere with given radius at the origin of coordinate system.  <a href="#207bec566af2333662e49b0e054ebedc"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#d77fe2cf4d96f17663434ef1fd4c286d">MakeCone</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a cone with given base point, axis, height and radiuses.  <a href="#d77fe2cf4d96f17663434ef1fd4c286d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#59944e0c2a98bacfb06ddd4f861681b0">MakeConeR1R2H</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a cone with given height and radiuses at the origin of coordinate system.  <a href="#59944e0c2a98bacfb06ddd4f861681b0"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9cceaba104b3811113f6f7b368eb6633">MakeTorus</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a torus with given center, normal vector and radiuses.  <a href="#9cceaba104b3811113f6f7b368eb6633"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9a8c604450bd29216630ac33284017c6">MakeTorusRR</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a torus with given radiuses at the origin of coordinate system.  <a href="#9a8c604450bd29216630ac33284017c6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c0a12052d81f3e8d755dd5b97fbdcf3d">MakePrism</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by extrusion of the base shape along a vector, defined by two points.  <a href="#c0a12052d81f3e8d755dd5b97fbdcf3d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#32ecfc039f58048b0b3a23ab8e433765">MakePrismVecH</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by extrusion of the base shape along the vector, i.e.  <a href="#32ecfc039f58048b0b3a23ab8e433765"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#cd033b39f4be052111ab3ec8d27cd9ee">MakePipe</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by extrusion of the base shape along the path shape.  <a href="#cd033b39f4be052111ab3ec8d27cd9ee"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#4c093c166272f508454e8eb03133e020">MakeRevolution</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by revolution of the base shape around the axis on the given angle, i.e.  <a href="#4c093c166272f508454e8eb03133e020"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#45564231762e3f8b99b58cd149b48a62">MakeThruSections</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.  <a href="#45564231762e3f8b99b58cd149b48a62"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c4d4d9f9b338502dadd6342d3adb941d">MakePipeWithDifferentSections</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shape by extrusion of the profile shape along the path shape.  <a href="#c4d4d9f9b338502dadd6342d3adb941d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#328df6d3aa2acd5dd367fd1ff0f02b90">MakeEdge</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a linear edge with specified ends.  <a href="#328df6d3aa2acd5dd367fd1ff0f02b90"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#6e231ee2830c5d1292b8e8f80a1b570d">MakeWire</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a wire from the set of edges and wires.  <a href="#6e231ee2830c5d1292b8e8f80a1b570d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1fa655542cb7d7f0ca7239246e4020a4">MakeFace</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a face on the given wire.  <a href="#1fa655542cb7d7f0ca7239246e4020a4"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#377a2b2ff79598724ae3547e0f8f887e">MakeFaceWires</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a face on the given wires set.  <a href="#377a2b2ff79598724ae3547e0f8f887e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#7900487f71fcbe9b74df16fe1de23aac">MakeFaces</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="namespacegeompy.html#377a2b2ff79598724ae3547e0f8f887e">MakeFaceWires()</a>.  <a href="#7900487f71fcbe9b74df16fe1de23aac"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#bcfb3334446b48ec3a59707341df3e38">MakeShell</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a shell from the set of faces and shells.  <a href="#bcfb3334446b48ec3a59707341df3e38"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#3e4434784c3ec97093321c16599f7590">MakeSolid</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a solid, bounded by the given shells.  <a href="#3e4434784c3ec97093321c16599f7590"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#6f23e242d8a3b1dbe445eb2f7f5b5bf6">MakeCompound</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a compound of the given shapes.  <a href="#6f23e242d8a3b1dbe445eb2f7f5b5bf6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#0ade4b552865ad0a4df9580145f0736e">NumberOfFaces</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gives quantity of faces in the given shape.  <a href="#0ade4b552865ad0a4df9580145f0736e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#730e50a690deccae3599792c202db613">NumberOfEdges</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gives quantity of edges in the given shape.  <a href="#730e50a690deccae3599792c202db613"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#278e8ebac370fcf80a92b857a54d830d">ChangeOrientation</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reverses an orientation the given shape.  <a href="#278e8ebac370fcf80a92b857a54d830d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c13bcdc1219e63398e9d2bbd27271370">OrientationChange</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="namespacegeompy.html#278e8ebac370fcf80a92b857a54d830d">ChangeOrientation()</a>.  <a href="#c13bcdc1219e63398e9d2bbd27271370"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#0d2c067d179c0008d035c42b9013283c">GetFreeFacesIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve all free faces from the given shape.  <a href="#0d2c067d179c0008d035c42b9013283c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#a19d88b97b5f1cf8c63bd8386f5e9476">GetSharedShapes</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get all sub-shapes of theShape1 of the given type, shared with theShape2.  <a href="#a19d88b97b5f1cf8c63bd8386f5e9476"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#e089332bc7ff498c6c6669836989383a">GetShapesOnPlane</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified plane by the certain way, defined through <em>theState</em> parameter.  <a href="#e089332bc7ff498c6c6669836989383a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1ec8a4c4f37f881676de67fbb185a1a7">GetShapesOnPlaneIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#1ec8a4c4f37f881676de67fbb185a1a7"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#43c25e4a08b30b59dcd18696effb3394">GetShapesOnPlaneWithLocation</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified plane by the certain way, defined through <em>theState</em> parameter.  <a href="#43c25e4a08b30b59dcd18696effb3394"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#7e017a6cd1e9103c7d6f4d3897e36ae5">GetShapesOnPlaneWithLocationIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#7e017a6cd1e9103c7d6f4d3897e36ae5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#e472f5764a1014dc9c60778cb02ce970">GetShapesOnCylinder</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified cylinder by the certain way, defined through <em>theState</em> parameter.  <a href="#e472f5764a1014dc9c60778cb02ce970"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#338736dab175669a89da003c8cf45552">GetShapesOnCylinderIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#338736dab175669a89da003c8cf45552"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#926ea88b412800140f45270a3ae89345">GetShapesOnSphere</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified sphere by the certain way, defined through <em>theState</em> parameter.  <a href="#926ea88b412800140f45270a3ae89345"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c5e58a6957bf2695fd8a974da75718f6">GetShapesOnSphereIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#c5e58a6957bf2695fd8a974da75718f6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#6b18a78d643167b99cc95ddd59874b10">GetShapesOnQuadrangle</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified quadrangle by the certain way, defined through <em>theState</em> parameter.  <a href="#6b18a78d643167b99cc95ddd59874b10"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#db16045827aa23070ef98eca038ecd2c">GetShapesOnQuadrangleIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#db16045827aa23070ef98eca038ecd2c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#94c97c957d04ebd433cb5b3d94e8c8ac">GetShapesOnBox</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find in <em>theShape</em> all sub-shapes of type <em>theShapeType</em>, situated relatively the specified <em>theBox</em> by the certain way, defined through <em>theState</em> parameter.  <a href="#94c97c957d04ebd433cb5b3d94e8c8ac"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c7b1da4e965bf551fc87b72ebd6afde7">GetShapesOnBoxIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but returns list of sub-shapes indices.  <a href="#c7b1da4e965bf551fc87b72ebd6afde7"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#2695635fc745e6aa6cda4545e2133c41">GetInPlace</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get sub-shape(s) of theShapeWhere, which are coincident with <em>theShapeWhat</em> or could be a part of it.  <a href="#2695635fc745e6aa6cda4545e2133c41"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#808c0723c1cc2c641a02aeaa0d0b45c6">GetSame</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get sub-shape of theShapeWhere, which is equal to <em>theShapeWhat</em>.  <a href="#808c0723c1cc2c641a02aeaa0d0b45c6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#67706610dda0d5005ee1cdfe2e8362a2">GetSubShape</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain a composite sub-shape of &lt;aShape&gt;, composed from sub-shapes of &lt;aShape&gt;, selected by their unique IDs inside &lt;aShape&gt;.  <a href="#67706610dda0d5005ee1cdfe2e8362a2"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#d7ee9f96e4b5b4303c7d20f0fc42d67d">GetSubShapeID</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain unique ID of sub-shape &lt;aSubShape&gt; inside &lt;aShape&gt;.  <a href="#d7ee9f96e4b5b4303c7d20f0fc42d67d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#e4ee5a20fdb33779f2dc5f1686fd3d8a">SubShapeAll</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Explode a shape on subshapes of a given type.  <a href="#e4ee5a20fdb33779f2dc5f1686fd3d8a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#d19aeb7b8759ebd877154239fb4c1d7f">SubShapeAllIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Explode a shape on subshapes of a given type.  <a href="#d19aeb7b8759ebd877154239fb4c1d7f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#7991c614f21498c03545d58f0e1e6049">SubShapeAllSorted</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Explode a shape on subshapes of a given type.  <a href="#7991c614f21498c03545d58f0e1e6049"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#0da304f589070498b79851370436094e">SubShapeAllSortedIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Explode a shape on subshapes of a given type.  <a href="#0da304f589070498b79851370436094e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f7265ff90cecdffb35a75b7968d834a1">SubShape</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain a compound of sub-shapes of &lt;aShape&gt;, selected by they indices in list of all sub-shapes of type &lt;aType&gt;.  <a href="#f7265ff90cecdffb35a75b7968d834a1"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#0566156543b9ae4bb4dacbdc660802e0">SubShapeSorted</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain a compound of sub-shapes of &lt;aShape&gt;, selected by they indices in sorted list of all sub-shapes of type &lt;aType&gt;.  <a href="#0566156543b9ae4bb4dacbdc660802e0"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#4ec92460ad70a2086a228cc8f5c53546">ProcessShape</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Apply a sequence of Shape Healing operators to the given object.  <a href="#4ec92460ad70a2086a228cc8f5c53546"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#e97025dce42f920c90940e317d4346df">SuppressFaces</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove faces from the given object (shape).  <a href="#e97025dce42f920c90940e317d4346df"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#af901778584daa351bf152dea8e45103">MakeSewing</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sewing of some shapes into single shape.  <a href="#af901778584daa351bf152dea8e45103"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#2053611e91ad644a537b94f7746aad83">Sew</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sewing of the given object.  <a href="#2053611e91ad644a537b94f7746aad83"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1b508c8014392c17a40634ed0ea098fc">SuppressInternalWires</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove internal wires and edges from the given object (face).  <a href="#1b508c8014392c17a40634ed0ea098fc"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#415a551ef50c5a35815080451c459a53">SuppressHoles</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove internal closed contours (holes) from the given object.  <a href="#415a551ef50c5a35815080451c459a53"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#19eec790d224fe44a21855073733c61a">CloseContour</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close an open wire.  <a href="#19eec790d224fe44a21855073733c61a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#3d0753cc00225c3c2432f64d2439de2c">DivideEdge</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Addition of a point to a given edge object.  <a href="#3d0753cc00225c3c2432f64d2439de2c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9c5759e7397aafa57af929453a3db08e">ChangeOrientationShell</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change orientation of the given object.  <a href="#9c5759e7397aafa57af929453a3db08e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#e82647674a4c63cda4dc8527712818e2">ChangeOrientationShellCopy</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Change orientation of the given object.  <a href="#e82647674a4c63cda4dc8527712818e2"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#65e1cf2711f524b98cd4596e53dda798">GetFreeBoundary</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a list of wires (wrapped in GEOM_Object-s), that constitute a free boundary of the given shape.  <a href="#65e1cf2711f524b98cd4596e53dda798"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#33f1df4161bf5f34dcad843ed3380404">MakeCopy</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a copy of the given object.  <a href="#33f1df4161bf5f34dcad843ed3380404"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#cbe2949bf5461726223a97ee80d1c3ec">MakeFilling</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a filling from the given compound of contours.  <a href="#cbe2949bf5461726223a97ee80d1c3ec"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#e5d9467bd086e6cac983986d2d5f88fb">MakeGlueFaces</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Replace coincident faces in theShape by one face.  <a href="#e5d9467bd086e6cac983986d2d5f88fb"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f226efc56d8eff7b56c2d1cfaafa9f29">MakeBoolean</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform one of boolean operations on two given shapes.  <a href="#f226efc56d8eff7b56c2d1cfaafa9f29"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#cd8f27d201b21e0fece9d01b8b4b1380">MakeCommon</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to MakeBoolean(s1, s2, 1).  <a href="#cd8f27d201b21e0fece9d01b8b4b1380"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#03dd2a576cc3add2d3de4d0dd49e543d">MakeCut</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to MakeBoolean(s1, s2, 2).  <a href="#03dd2a576cc3add2d3de4d0dd49e543d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#d901649467a5a346eada63b49cf6303e">MakeFuse</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to MakeBoolean(s1, s2, 3).  <a href="#d901649467a5a346eada63b49cf6303e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#eedaf0e56fe5240f4c7c6b9054fc97c8">MakeSection</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to MakeBoolean(s1, s2, 4).  <a href="#eedaf0e56fe5240f4c7c6b9054fc97c8"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#56f48212a436f46c02722f627d27e7f2">MakePartition</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform partition operation.  <a href="#56f48212a436f46c02722f627d27e7f2"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#85a4e715d0d0e4c8c9960372bfeb5327">MakePartitionNonSelfIntersectedShape</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform partition operation.  <a href="#85a4e715d0d0e4c8c9960372bfeb5327"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f1fc43bc5612514bcc2f6d772c3d38db">Partition</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="namespacegeompy.html#56f48212a436f46c02722f627d27e7f2">MakePartition()</a>.  <a href="#f1fc43bc5612514bcc2f6d772c3d38db"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#d5389c13cb51ad6b6d15780d7e648e69">MakeHalfPartition</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform partition of the Shape with the Plane.  <a href="#d5389c13cb51ad6b6d15780d7e648e69"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c305e3f931c4ead2aae3b64ccfe5d350">MakeTranslationTwoPoints</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate the given object along the vector, specified by its end points, creating its copy before the translation.  <a href="#c305e3f931c4ead2aae3b64ccfe5d350"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#daa3f61a507374c1f673619c49485751">MakeTranslation</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate the given object along the vector, specified by its components, creating its copy before the translation.  <a href="#daa3f61a507374c1f673619c49485751"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c70936f9c902aef0c6dbd5510bdc7f03">MakeTranslationVector</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate the given object along the given vector, creating its copy before the translation.  <a href="#c70936f9c902aef0c6dbd5510bdc7f03"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#3363966f33171e6415e1a1b5d4a8e9fa">MakeRotation</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotate the given object around the given axis on the given angle, creating its copy before the rotatation.  <a href="#3363966f33171e6415e1a1b5d4a8e9fa"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#6bcb1680b597f1491d371fa2a9242342">MakeRotationThreePoints</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotate given object around vector perpendicular to plane containing three points, creating its copy before the rotatation.  <a href="#6bcb1680b597f1491d371fa2a9242342"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#7ad2fdeeef570ba29c86ba28d3da09f7">MakeScaleTransform</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Scale the given object by the factor, creating its copy before the scaling.  <a href="#7ad2fdeeef570ba29c86ba28d3da09f7"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#fab9bb8ede1f587c47cd1d981e966cdd">MakeMirrorByPlane</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an object, symmetrical to the given one relatively the given plane.  <a href="#fab9bb8ede1f587c47cd1d981e966cdd"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#73733650d7b37eb8aec0df9aca0c9a63">MakeMirrorByAxis</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an object, symmetrical to the given one relatively the given axis.  <a href="#73733650d7b37eb8aec0df9aca0c9a63"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#56e053740bed5b65670cf9cc10df4d8d">MakeMirrorByPoint</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an object, symmetrical to the given one relatively the given point.  <a href="#56e053740bed5b65670cf9cc10df4d8d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c100ca3b5ccdbd133df55b331cf33c42">MakePosition</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Modify the Location of the given object by LCS, creating its copy before the setting.  <a href="#c100ca3b5ccdbd133df55b331cf33c42"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1c9ca22c504f4190f49f3e222fadeff0">MakeOffset</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create new object as offset of the given one.  <a href="#1c9ca22c504f4190f49f3e222fadeff0"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#ab11f2929f8585eee3f3e29ed9b6fe51">MakeMultiTranslation1D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate the given object along the given vector a given number times.  <a href="#ab11f2929f8585eee3f3e29ed9b6fe51"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#4a96d7c7ad41b4cb66f2bc544085c659">MakeMultiTranslation2D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Conseqently apply two specified translations to theObject specified number of times.  <a href="#4a96d7c7ad41b4cb66f2bc544085c659"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#6c50d3ab9f6be4fee93abec171a89cfc">MultiRotate1D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotate the given object around the given axis a given number times.  <a href="#6c50d3ab9f6be4fee93abec171a89cfc"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#b004cf2bbff7b8dfa28a96aadc6bc456">MultiRotate2D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Rotate the given object around the given axis on the given angle a given number times and multi-translate each rotation result.  <a href="#b004cf2bbff7b8dfa28a96aadc6bc456"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#fe6bb49b0e4f150327729f063bdec2cd">MakeMultiRotation1D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The same, as <a class="el" href="namespacegeompy.html#6c50d3ab9f6be4fee93abec171a89cfc">MultiRotate1D()</a>, but axis is given by direction and point.  <a href="#fe6bb49b0e4f150327729f063bdec2cd"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#5e677bcf6d3c8190778f05e6c7e871d3">MakeMultiRotation2D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The same, as <a class="el" href="namespacegeompy.html#b004cf2bbff7b8dfa28a96aadc6bc456">MultiRotate2D()</a>, but axis is given by direction and point.  <a href="#5e677bcf6d3c8190778f05e6c7e871d3"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#3f2ecc9ca30a3017c7f8d22a9c6ca6fb">MakeFilletAll</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform a fillet on all edges of the given shape.  <a href="#3f2ecc9ca30a3017c7f8d22a9c6ca6fb"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#86bbdb543ba06469c1ffe95cb7950f46">MakeFillet</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform a fillet on the specified edges/faces of the given shape.  <a href="#86bbdb543ba06469c1ffe95cb7950f46"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#92091fbfdb19e6532aaf8cbc76f271a1">MakeChamferAll</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform a symmetric chamfer on all edges of the given shape.  <a href="#92091fbfdb19e6532aaf8cbc76f271a1"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#6afb8427fde5f6ca2dbc51a51869f7ca">MakeChamferEdge</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform a chamfer on edges, common to the specified faces, with distance D1 on the Face1.  <a href="#6afb8427fde5f6ca2dbc51a51869f7ca"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#2018b56951c34682fa0df214a3b1d7f2">MakeChamferFaces</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform a chamfer on all edges of the specified faces, with distance D1 on the first specified face (if several for one edge).  <a href="#2018b56951c34682fa0df214a3b1d7f2"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1d1b85c082445f89293b614b23695a19">MakeChamfer</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="namespacegeompy.html#6afb8427fde5f6ca2dbc51a51869f7ca">MakeChamferEdge()</a> and <a class="el" href="namespacegeompy.html#2018b56951c34682fa0df214a3b1d7f2">MakeChamferFaces()</a>.  <a href="#1d1b85c082445f89293b614b23695a19"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#dd1ebfcc03ea50d9701fc0fdff388cd8">Archimede</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform an Archimde operation on the given shape with given parameters.  <a href="#dd1ebfcc03ea50d9701fc0fdff388cd8"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#e10a7c1c972b5629fcd9d4b459ccf13b">PointCoordinates</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get point coordinates.  <a href="#e10a7c1c972b5629fcd9d4b459ccf13b"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#ab1609df1740aca9735eb455b5ad7947">BasicProperties</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get summarized length of all wires, area of surface and volume of the given shape.  <a href="#ab1609df1740aca9735eb455b5ad7947"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1aa8eba3c44a5230cd457b3f97eea57a">BoundingBox</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get parameters of bounding box of the given shape.  <a href="#1aa8eba3c44a5230cd457b3f97eea57a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#139df343f817141a8b074cd7389a44b1">Inertia</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get inertia matrix and moments of inertia of theShape.  <a href="#139df343f817141a8b074cd7389a44b1"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#ef044d33ebbe02c75bb62d44ec8570bc">MinDistance</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get minimal distance between the given shapes.  <a href="#ef044d33ebbe02c75bb62d44ec8570bc"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#8f1e2eb8fa61d0e7aebc04a641f020fb">Tolerance</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get min and max tolerances of sub-shapes of theShape.  <a href="#8f1e2eb8fa61d0e7aebc04a641f020fb"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#6c1a6120cbbf69d13c02b9ade0ba98eb">WhatIs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain description of the given shape (number of sub-shapes of each type).  <a href="#6c1a6120cbbf69d13c02b9ade0ba98eb"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#d9e158674b690b397e20e788b7622da0">MakeCDG</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a point, situated at the centre of mass of theShape.  <a href="#d9e158674b690b397e20e788b7622da0"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#35d111502e0280fee475e86270792565">CheckShape</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check a topology of the given shape.  <a href="#35d111502e0280fee475e86270792565"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1f93405313fd378a4383ea9833dab3de">GetPosition</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get position (LCS) of theShape.  <a href="#1f93405313fd378a4383ea9833dab3de"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#a0571beb5ffbacb42ce92195309820d0">Import</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Import a shape from the BREP or IGES or STEP file (depends on given format) with given name.  <a href="#a0571beb5ffbacb42ce92195309820d0"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#10f157e05c0e20acd86f78090bfec351">ImportBREP</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="namespacegeompy.html#a0571beb5ffbacb42ce92195309820d0">Import()</a> for BREP format.  <a href="#10f157e05c0e20acd86f78090bfec351"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#2968cc7bf89d54bee34ee3f560bd7f4f">ImportIGES</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="namespacegeompy.html#a0571beb5ffbacb42ce92195309820d0">Import()</a> for IGES format.  <a href="#2968cc7bf89d54bee34ee3f560bd7f4f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#a232e7dafb6fd10ade8e601d54fd63c2">ImportSTEP</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="namespacegeompy.html#a0571beb5ffbacb42ce92195309820d0">Import()</a> for STEP format.  <a href="#a232e7dafb6fd10ade8e601d54fd63c2"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#499e87da00bb3be6123cf73136127bfc">Export</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Export the given shape into a file with given name.  <a href="#499e87da00bb3be6123cf73136127bfc"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#87cb97db967c38695f7b820dbcff30bd">ExportBREP</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="namespacegeompy.html#499e87da00bb3be6123cf73136127bfc">Export()</a> for BREP format.  <a href="#87cb97db967c38695f7b820dbcff30bd"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1fecea070929464aee6bf9887dae144a">ExportIGES</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="namespacegeompy.html#499e87da00bb3be6123cf73136127bfc">Export()</a> for IGES format.  <a href="#1fecea070929464aee6bf9887dae144a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#96a04d9dac65752cc513b4fdf70c5ea0">ExportSTEP</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shortcut to <a class="el" href="namespacegeompy.html#499e87da00bb3be6123cf73136127bfc">Export()</a> for STEP format.  <a href="#96a04d9dac65752cc513b4fdf70c5ea0"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#6e740378fa27a55a0605f11ed68d5c13">MakeQuad</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a quadrangle face from four edges.  <a href="#6e740378fa27a55a0605f11ed68d5c13"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#b459a4cca585b6d0ae962fcc533e2233">MakeQuad2Edges</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a quadrangle face on two edges.  <a href="#b459a4cca585b6d0ae962fcc533e2233"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#b4a45d1dd409b770f143758e8bc2f80d">MakeQuad4Vertices</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a quadrangle face with specified corners.  <a href="#b4a45d1dd409b770f143758e8bc2f80d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#d9eb183f135341b2c5151e5d31c8d07c">MakeHexa</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a hexahedral solid, bounded by the six given faces.  <a href="#d9eb183f135341b2c5151e5d31c8d07c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c612949da56e4e28d2f52f7022e8f270">MakeHexa2Faces</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a hexahedral solid between two given faces.  <a href="#c612949da56e4e28d2f52f7022e8f270"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1d89799285c4b0a50c8edd0276a45e00">GetPoint</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a vertex, found in the given shape by its coordinates.  <a href="#1d89799285c4b0a50c8edd0276a45e00"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#3e02dfbb79bbe2739ffe382a10a83902">GetEdge</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get an edge, found in the given shape by two given vertices.  <a href="#3e02dfbb79bbe2739ffe382a10a83902"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#294c21fa51645e8cc18199dfb4622174">GetEdgeNearPoint</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find an edge of the given shape, which has minimal distance to the given point.  <a href="#294c21fa51645e8cc18199dfb4622174"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#5d9f4778acda236b2595a93f3443269f">GetFaceByPoints</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a face, found in the given shape by four given corner vertices.  <a href="#5d9f4778acda236b2595a93f3443269f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f7154a6930bffcd3f249e32e360bf161">GetFaceByEdges</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a face of block, found in the given shape by two given edges.  <a href="#f7154a6930bffcd3f249e32e360bf161"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#5367485e4a8a35c32d746723fee905bb">GetOppositeFace</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a face, opposite to the given one in the given block.  <a href="#5367485e4a8a35c32d746723fee905bb"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#12a77345f9e987f83ffd294cd7efcb0b">GetFaceNearPoint</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a face of the given shape, which has minimal distance to the given point.  <a href="#12a77345f9e987f83ffd294cd7efcb0b"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#ccf6906ed06251948bb9ab80a394a04e">GetFaceByNormale</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a face of block, whose outside normale has minimal angle with the given vector.  <a href="#ccf6906ed06251948bb9ab80a394a04e"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9b3b633e1484b00d74d4115aecba634c">CheckCompoundOfBlocks</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check, if the compound of blocks is given.  <a href="#9b3b633e1484b00d74d4115aecba634c"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#4c8f85c9a412a5460e48313ee9dc428b">RemoveExtraEdges</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove all seam and degenerated edges from <em>theShape</em>.  <a href="#4c8f85c9a412a5460e48313ee9dc428b"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f690cd52d196cb4eca5a57aebcd4827b">CheckAndImprove</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check, if the given shape is a blocks compound.  <a href="#f690cd52d196cb4eca5a57aebcd4827b"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#261f5525946b6b9abd3033d058f2c077">MakeBlockExplode</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get all the blocks, contained in the given compound.  <a href="#261f5525946b6b9abd3033d058f2c077"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#850464c8254224a9fca8df8121378442">GetBlockNearPoint</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find block, containing the given point inside its volume or on boundary.  <a href="#850464c8254224a9fca8df8121378442"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#3b644c68c91ba34eb232add9c16ad26d">GetBlockByParts</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find block, containing all the elements, passed as the parts, or maximum quantity of them.  <a href="#3b644c68c91ba34eb232add9c16ad26d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#87b5b6632b97d3da1d447e02d4b169a9">GetBlocksByParts</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return all blocks, containing all the elements, passed as the parts.  <a href="#87b5b6632b97d3da1d447e02d4b169a9"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f01d36e0b2eb11c0e5abc141691d2eee">MakeMultiTransformation1D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multi-transformate block and glue the result.  <a href="#f01d36e0b2eb11c0e5abc141691d2eee"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#4592c6223d08418649f48113913103fb">MakeMultiTransformation2D</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Multi-transformate block and glue the result.  <a href="#4592c6223d08418649f48113913103fb"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#066548557397df1e539909427054d601">Propagate</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Build all possible propagation groups.  <a href="#066548557397df1e539909427054d601"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#d34dca22784f06782d577a35ebb767a6">CreateGroup</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new group which will store sub shapes of theMainShape.  <a href="#d34dca22784f06782d577a35ebb767a6"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#a2dbd1e5c34e091747e208cd6b63eba1">AddObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a sub object with ID theSubShapeId to the group.  <a href="#a2dbd1e5c34e091747e208cd6b63eba1"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1153343bde9e7e07a9571123d1440d3b">RemoveObject</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes a sub object with ID <em>theSubShapeId</em> from the group.  <a href="#1153343bde9e7e07a9571123d1440d3b"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#00450556247ac647a69506a1776a125d">UnionList</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds to the group all the given shapes.  <a href="#00450556247ac647a69506a1776a125d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#5e1f46dae5dc0b01e997278cf186d73d">UnionIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but argument theSubShapes here is a list of sub-shapes indices.  <a href="#5e1f46dae5dc0b01e997278cf186d73d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#5514b5a8b24702828eed0f6b39fe8f9a">DifferenceList</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes from the group all the given shapes.  <a href="#5514b5a8b24702828eed0f6b39fe8f9a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#78ccd39b2263ea213805869fbe4c3bc3">DifferenceIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Works like the above method, but argument theSubShapes here is a list of sub-shapes indices.  <a href="#78ccd39b2263ea213805869fbe4c3bc3"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c076d5e58ceb4d210f7a43e1acea8ca5">GetObjectIDs</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a list of sub objects ID stored in the group.  <a href="#c076d5e58ceb4d210f7a43e1acea8ca5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#05095c0349fe3889ab06235f265c1ea9">GetType</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a type of sub objects stored in the group.  <a href="#05095c0349fe3889ab06235f265c1ea9"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#4c9609d803e34c25427e59e4ab2ddb42">GetMainShape</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns a main shape associated with the group.  <a href="#4c9609d803e34c25427e59e4ab2ddb42"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c6b2d69f3d03206b73ce0c0bbfb56eae">GetEdgesByLength</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create group of edges of theShape, whose length is in range [min_length, max_length].  <a href="#c6b2d69f3d03206b73ce0c0bbfb56eae"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#ae1cbdb4fcaa8ac1a7c826580b99fc5f">SelectEdges</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create group of edges of selected shape, whose length is in range [min_length, max_length].  <a href="#ae1cbdb4fcaa8ac1a7c826580b99fc5f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">def&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9c05eb3e0ffbdd757e288d3204422dc5">addPath</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add Path to load python scripts from.  <a href="#9c05eb3e0ffbdd757e288d3204422dc5"></a><br></td></tr>
 <tr><td colspan="2"><br><h2>Variables</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">tuple&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#8b6a0245f3cf8c1ef6de94487433fc0c">g</a> = lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, &quot;GEOM&quot;)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">tuple&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#96bc383a8e96df6d938b485e9e1b5e11">geom</a> = g._narrow( GEOM.GEOM_Gen )</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f01ae5049e69c6da96bdc94d5b1c6d38">myBuilder</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9857c81d89e1dd436e4da52b0884ef94">myStudyId</a> = 0</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#0f6146a8fb62ad5221da4dc2e8a7a8f7">father</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#58b9182cc4b7d927dda2cd6a2f2e677b">BasicOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c319490ec26550ef4fd0b787f183a323">CurvesOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#7dd8908de955a347609b4f9cbca99686">PrimOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#39a05853eb7e4dc664d7acaa5536e610">ShapesOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9b6b150d33cb71f2ab6380f143cc37b6">HealOp</a> = None</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">tuple&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#96bc383a8e96df6d938b485e9e1b5e11">geom</a> = lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, &quot;GEOM&quot;)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1293220280565f0b9256d382d2ea882a">InsertOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#51777a574318dcf4c9025d03b0cfb1a1">BoolOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#921e4ec0a8e80b1c61bd8b156ba8cfb7">TrsfOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#37bbe3bd9771d58b547723e6436bed81">LocalOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#eb30abfc8b306d15adc2f50c48064054">MeasuOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#4e06888ee75ecc7a54f0c8bad501a0c2">BlocksOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c809d5d73246f177ee010c4fe497d342">GroupOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">dictionary&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#269cf26d7d10b8f6b4a20789ed8233a0">ShapeType</a> = {&quot;COMPOUND&quot;:0, &quot;COMPSOLID&quot;:1, &quot;SOLID&quot;:2, &quot;SHELL&quot;:3, &quot;FACE&quot;:4, &quot;WIRE&quot;:5, &quot;EDGE&quot;:6, &quot;VERTEX&quot;:7, &quot;SHAPE&quot;:8}</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">tuple&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#8b6a0245f3cf8c1ef6de94487433fc0c">g</a> = lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, &quot;GEOM&quot;)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">tuple&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#96bc383a8e96df6d938b485e9e1b5e11">geom</a> = g._narrow( GEOM.GEOM_Gen )</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#f01ae5049e69c6da96bdc94d5b1c6d38">myBuilder</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9857c81d89e1dd436e4da52b0884ef94">myStudyId</a> = 0</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#0f6146a8fb62ad5221da4dc2e8a7a8f7">father</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#58b9182cc4b7d927dda2cd6a2f2e677b">BasicOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c319490ec26550ef4fd0b787f183a323">CurvesOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#7dd8908de955a347609b4f9cbca99686">PrimOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#39a05853eb7e4dc664d7acaa5536e610">ShapesOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#9b6b150d33cb71f2ab6380f143cc37b6">HealOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#1293220280565f0b9256d382d2ea882a">InsertOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#51777a574318dcf4c9025d03b0cfb1a1">BoolOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#921e4ec0a8e80b1c61bd8b156ba8cfb7">TrsfOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#37bbe3bd9771d58b547723e6436bed81">LocalOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#eb30abfc8b306d15adc2f50c48064054">MeasuOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#4e06888ee75ecc7a54f0c8bad501a0c2">BlocksOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#c809d5d73246f177ee010c4fe497d342">GroupOp</a> = None</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">dictionary&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompy.html#269cf26d7d10b8f6b4a20789ed8233a0">ShapeType</a> = {&quot;COMPOUND&quot;:0, &quot;COMPSOLID&quot;:1, &quot;SOLID&quot;:2, &quot;SHELL&quot;:3, &quot;FACE&quot;:4, &quot;WIRE&quot;:5, &quot;EDGE&quot;:6, &quot;VERTEX&quot;:7, &quot;SHAPE&quot;:8}</td></tr>
-
-</table>
-<hr><h2>Function Documentation</h2>
-<a class="anchor" name="4a5618a690db0aecbe5989cb55d74ece"></a><!-- doxytag: member="geompy::init_geom" ref="4a5618a690db0aecbe5989cb55d74ece" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::init_geom           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theStudy</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="5ece84ce1ea01c0cb42f69399817bbc3"></a><!-- doxytag: member="geompy::SubShapeName" ref="5ece84ce1ea01c0cb42f69399817bbc3" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SubShapeName           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aSubObj</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aMainObj</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
 </table>
-<a class="anchor" name="fd40f7d59da81b22862298666f807f7d"></a><!-- doxytag: member="geompy::addToStudy" ref="fd40f7d59da81b22862298666f807f7d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::addToStudy           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aName</em></td>
-        </tr>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="96bc383a8e96df6d938b485e9e1b5e11"></a><!-- doxytag: member="geompy::geom" ref="96bc383a8e96df6d938b485e9e1b5e11" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
         <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
+          <td class="memname">tuple <a class="el" href="namespacegeompy.html#96bc383a8e96df6d938b485e9e1b5e11">geompy.geom</a> = lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, &quot;GEOM&quot;)<code> [static]</code>          </td>
         </tr>
       </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
+</div>
+<div class="memdoc">
 
 <p>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="82aab9da423d1401a3ddfd0eb4b0c49d"></a><!-- doxytag: member="geompy::addToStudyInFather" ref="82aab9da423d1401a3ddfd0eb4b0c49d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::addToStudyInFather           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aFather</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aName</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
 
-<p>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="9310c6377485b0bcfcfab87ab49d7e9a"></a><!-- doxytag: member="geompy::MakeVertex" ref="9310c6377485b0bcfcfab87ab49d7e9a" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeVertex           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theX</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theY</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theZ</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theX</em>&nbsp;</td><td>The X coordinate of the point. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theY</em>&nbsp;</td><td>The Y coordinate of the point. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theZ</em>&nbsp;</td><td>The Z coordinate of the point. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created point.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="0218cb2daa9ac5dc1eb4e26471e8b4d2"></a><!-- doxytag: member="geompy::MakeVertexWithRef" ref="0218cb2daa9ac5dc1eb4e26471e8b4d2" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeVertexWithRef           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theReference</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theX</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theY</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theZ</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theReference</em>&nbsp;</td><td>The referenced point. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theX</em>&nbsp;</td><td>Displacement from the referenced point along OX axis. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theY</em>&nbsp;</td><td>Displacement from the referenced point along OY axis. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theZ</em>&nbsp;</td><td>Displacement from the referenced point along OZ axis. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created point.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="792541ac8429b9ba33ed099d822f7020"></a><!-- doxytag: member="geompy::MakeVertexOnCurve" ref="792541ac8429b9ba33ed099d822f7020" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeVertexOnCurve           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRefCurve</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theParameter</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theRefCurve</em>&nbsp;</td><td>The referenced curve. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theParameter</em>&nbsp;</td><td>Value of parameter on the referenced curve. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created point.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="0b1d6768182d2d8302c359f2ec853952"></a><!-- doxytag: member="geompy::MakeTangentOnCurve" ref="0b1d6768182d2d8302c359f2ec853952" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeTangentOnCurve           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRefCurve</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theParameter</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theRefCurve</em>&nbsp;</td><td>The referenced curve. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theParameter</em>&nbsp;</td><td>Value of parameter on the referenced curve. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created tangent. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="e7edc072e7e7b74feee2983e40b3f727"></a><!-- doxytag: member="geompy::MakeVectorDXDYDZ" ref="e7edc072e7e7b74feee2983e40b3f727" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeVectorDXDYDZ           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theDX</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theDY</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theDZ</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theDX</em>&nbsp;</td><td>X component of the vector. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theDY</em>&nbsp;</td><td>Y component of the vector. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theDZ</em>&nbsp;</td><td>Z component of the vector. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created vector.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="93a57241f7e0c8666fa64effb24d95eb"></a><!-- doxytag: member="geompy::MakeVector" ref="93a57241f7e0c8666fa64effb24d95eb" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeVector           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>Start point for the vector. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>End point for the vector. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created vector. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="ace7c6d8f49b69b3b9d1cf87b0c42a87"></a><!-- doxytag: member="geompy::MakeLine" ref="ace7c6d8f49b69b3b9d1cf87b0c42a87" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeLine           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theDir</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Point. The resulting line will pass through it. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theDir</em>&nbsp;</td><td>Direction. The resulting line will be parallel to it. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created line.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="d05c89e50645bfcb9180c9a1f0cd495b"></a><!-- doxytag: member="geompy::MakeLineTwoPnt" ref="d05c89e50645bfcb9180c9a1f0cd495b" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeLineTwoPnt           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>First of two points, defining the line. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Second of two points, defining the line. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created line.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="b99b3d9ec2a1839a5b3e43139da67559"></a><!-- doxytag: member="geompy::MakePlane" ref="b99b3d9ec2a1839a5b3e43139da67559" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePlane           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theVec</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTrimSize</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Point, the plane has to pass through. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theVec</em>&nbsp;</td><td>Vector, defining the plane normal direction. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theTrimSize</em>&nbsp;</td><td>Half size of a side of quadrangle face, representing the plane. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created plane.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="91603b64526fd345b2255907f179fffb"></a><!-- doxytag: member="geompy::MakePlaneThreePnt" ref="91603b64526fd345b2255907f179fffb" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePlaneThreePnt           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt3</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTrimSize</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>First of three points, defining the plane. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Second of three points, defining the plane. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePnt3</em>&nbsp;</td><td>Fird of three points, defining the plane. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theTrimSize</em>&nbsp;</td><td>Half size of a side of quadrangle face, representing the plane. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created plane.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="0d2356927fd4fcff47597d7c3170a3af"></a><!-- doxytag: member="geompy::MakePlaneFace" ref="0d2356927fd4fcff47597d7c3170a3af" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePlaneFace           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFace</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTrimSize</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theFace</em>&nbsp;</td><td>Referenced plane or LCS(Marker). </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theTrimSize</em>&nbsp;</td><td>New half size of a side of quadrangle face, representing the plane. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created plane.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="f054185ef572c0277eb37e6a98956f92"></a><!-- doxytag: member="geompy::MakeMarker" ref="f054185ef572c0277eb37e6a98956f92" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMarker           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>OX</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>OY</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>OZ</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>XDX</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>XDY</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>XDZ</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>YDX</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>YDY</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>YDZ</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>OX,OY,OZ</em>&nbsp;</td><td>Three coordinates of coordinate system origin. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>XDX,XDY,XDZ</em>&nbsp;</td><td>Three components of OX direction </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>YDX,YDY,YDZ</em>&nbsp;</td><td>Three components of OY direction </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created coordinate system.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="6fc5a0f21295d06cc796dce166c1dbea"></a><!-- doxytag: member="geompy::MakeMarkerPntTwoVec" ref="6fc5a0f21295d06cc796dce166c1dbea" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMarkerPntTwoVec           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theOrigin</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theXVec</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theYVec</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theOrigin</em>&nbsp;</td><td>Point of coordinate system origin. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theXVec</em>&nbsp;</td><td>Vector of X direction </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theYVec</em>&nbsp;</td><td>Vector of Y direction </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created coordinate system. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="09d23236d0b3ac8260d44baf9dd9e510"></a><!-- doxytag: member="geompy::MakeArc" ref="09d23236d0b3ac8260d44baf9dd9e510" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeArc           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt3</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>Start point of the arc. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Middle point of the arc. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePnt3</em>&nbsp;</td><td>End point of the arc. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created arc.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="f2ced5604e1b7822fd976c4d5acd86a1"></a><!-- doxytag: member="geompy::MakeCircle" ref="f2ced5604e1b7822fd976c4d5acd86a1" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeCircle           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theVec</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Circle center. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theVec</em>&nbsp;</td><td>Vector, normal to the plane of the circle. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Circle radius. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created circle.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="6bec7e48f6a69ab9c37652efc3192ece"></a><!-- doxytag: member="geompy::MakeCircleThreePnt" ref="6bec7e48f6a69ab9c37652efc3192ece" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeCircleThreePnt           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt3</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt1,thePnt2,thePnt3</em>&nbsp;</td><td>Points, defining the circle. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created circle.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="491d5983ad5315aaa451c0dab9aa53de"></a><!-- doxytag: member="geompy::MakeEllipse" ref="491d5983ad5315aaa451c0dab9aa53de" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeEllipse           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theVec</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRMajor</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRMinor</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Ellipse center. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theVec</em>&nbsp;</td><td>Vector, normal to the plane of the ellipse. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theRMajor</em>&nbsp;</td><td>Major ellipse radius. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theRMinor</em>&nbsp;</td><td>Minor ellipse radius. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created ellipse.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="ab3518c19dae07433e912237cb6d87e3"></a><!-- doxytag: member="geompy::MakePolyline" ref="ab3518c19dae07433e912237cb6d87e3" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePolyline           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>thePoints</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePoints</em>&nbsp;</td><td>Sequence of points for the polyline. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created polyline.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="bac3b24c01efafd46ff55745c114c218"></a><!-- doxytag: member="geompy::MakeBezier" ref="bac3b24c01efafd46ff55745c114c218" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeBezier           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>thePoints</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePoints</em>&nbsp;</td><td>Sequence of points for the bezier curve. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created bezier curve.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="9d256f55a31d4caea356df5e9a36b491"></a><!-- doxytag: member="geompy::MakeInterpol" ref="9d256f55a31d4caea356df5e9a36b491" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeInterpol           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>thePoints</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePoints</em>&nbsp;</td><td>Sequence of points for the B-Spline curve. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created B-Spline curve.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="2e0cfe9c8a9c1456a882f3b1fd118c1a"></a><!-- doxytag: member="geompy::MakeSketcher" ref="2e0cfe9c8a9c1456a882f3b1fd118c1a" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeSketcher           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theCommand</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWorkingPlane</em> = <code>[0</code></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<br>
- Edges of the resulting wire or face will be arcs of circles and/or linear segments. <br>
- Format of the description string have to be the following:<p>
-"Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"<p>
-Where:<ul>
-<li>x1, y1 are coordinates of the first sketcher point (zero by default),</li><li>CMD is one of<ul>
-<li>"R angle" : Set the direction by angle</li><li>"D dx dy" : Set the direction by DX &amp; DY</li></ul>
-<br>
-<ul>
-<li>"TT x y" : Create segment by point at X &amp; Y</li><li>"T dx dy" : Create segment by point with DX &amp; DY</li><li>"L length" : Create segment by direction &amp; Length</li><li>"IX x" : Create segment by direction &amp; Intersect. X</li><li>"IY y" : Create segment by direction &amp; Intersect. Y</li></ul>
-<br>
-<ul>
-<li>"C radius length" : Create arc by direction, radius and length(in degree)</li></ul>
-<br>
-<ul>
-<li>"WW" : Close Wire (to finish)</li><li>"WF" : Close Wire and build face (to finish)</li></ul>
-</li></ul>
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theCommand</em>&nbsp;</td><td>String, defining the sketcher in local coordinates of the working plane. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theWorkingPlane</em>&nbsp;</td><td>Nine double values, defining origin, OZ and OX directions of the working plane. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created wire.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c6d246779168cbe8a976bfd23268ab9f"></a><!-- doxytag: member="geompy::MakeSketcherOnPlane" ref="c6d246779168cbe8a976bfd23268ab9f" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeSketcherOnPlane           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theCommand</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWorkingPlane</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<br>
- For format of the description string see the previous method.<br>
- <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theCommand</em>&nbsp;</td><td>String, defining the sketcher in local coordinates of the working plane. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theWorkingPlane</em>&nbsp;</td><td>Planar Face or LCS(Marker) of the working plane. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created wire. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="7e4d346b1fc5ee4887e8356abb864987"></a><!-- doxytag: member="geompy::MakeBox" ref="7e4d346b1fc5ee4887e8356abb864987" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeBox           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>x1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>y1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>z1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>x2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>y2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>z2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="3935ab1a312d87952e0661e539cb3861"></a><!-- doxytag: member="geompy::MakeBoxDXDYDZ" ref="3935ab1a312d87952e0661e539cb3861" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeBoxDXDYDZ           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theDX</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theDY</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theDZ</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Center of the box will be at point (DX/2, DY/2, DZ/2). <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theDX</em>&nbsp;</td><td>Length of Box edges, parallel to OX axis. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theDY</em>&nbsp;</td><td>Length of Box edges, parallel to OY axis. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theDZ</em>&nbsp;</td><td>Length of Box edges, parallel to OZ axis. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created box.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="f887eae04ea14936c8f2ccc08e530e12"></a><!-- doxytag: member="geompy::MakeBoxTwoPnt" ref="f887eae04ea14936c8f2ccc08e530e12" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeBoxTwoPnt           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>First of two opposite vertices. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Second of two opposite vertices. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created box.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="5f544551dab0053b491618b11f72d8a7"></a><!-- doxytag: member="geompy::MakeCylinder" ref="5f544551dab0053b491618b11f72d8a7" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeCylinder           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAxis</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theH</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Central point of cylinder base. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Cylinder axis. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Cylinder radius. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theH</em>&nbsp;</td><td>Cylinder height. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created cylinder.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="e4afae782eac7eda170ca1580985025c"></a><!-- doxytag: member="geompy::MakeCylinderRH" ref="e4afae782eac7eda170ca1580985025c" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeCylinderRH           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theH</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Axis of the cylinder will be collinear to the OZ axis of the coordinate system. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Cylinder radius. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theH</em>&nbsp;</td><td>Cylinder height. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created cylinder.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="2ef7fabed1a4c83cfd9dfe41f54fe03e"></a><!-- doxytag: member="geompy::MakeSpherePntR" ref="2ef7fabed1a4c83cfd9dfe41f54fe03e" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeSpherePntR           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Sphere center. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Sphere radius. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created sphere.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="39ecaa363c5555638718f4564aa1258d"></a><!-- doxytag: member="geompy::MakeSphere" ref="39ecaa363c5555638718f4564aa1258d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeSphere           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>x</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>y</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>z</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>x,y,z</em>&nbsp;</td><td>Coordinates of sphere center. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Sphere radius. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created sphere.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="207bec566af2333662e49b0e054ebedc"></a><!-- doxytag: member="geompy::MakeSphereR" ref="207bec566af2333662e49b0e054ebedc" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeSphereR           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theR</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Sphere radius. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created sphere.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="d77fe2cf4d96f17663434ef1fd4c286d"></a><!-- doxytag: member="geompy::MakeCone" ref="d77fe2cf4d96f17663434ef1fd4c286d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeCone           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAxis</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theH</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Central point of the first cone base. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Cone axis. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theR1</em>&nbsp;</td><td>Radius of the first cone base. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theR2</em>&nbsp;</td><td>Radius of the second cone base. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Note:</b></dt><dd>If both radiuses are non-zero, the cone will be truncated. <p>
-If the radiuses are equal, a cylinder will be created instead. </dd></dl>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theH</em>&nbsp;</td><td>Cone height. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created cone.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="59944e0c2a98bacfb06ddd4f861681b0"></a><!-- doxytag: member="geompy::MakeConeR1R2H" ref="59944e0c2a98bacfb06ddd4f861681b0" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeConeR1R2H           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theH</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Axis of the cone will be collinear to the OZ axis of the coordinate system. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theR1</em>&nbsp;</td><td>Radius of the first cone base. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theR2</em>&nbsp;</td><td>Radius of the second cone base. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Note:</b></dt><dd>If both radiuses are non-zero, the cone will be truncated. <p>
-If the radiuses are equal, a cylinder will be created instead. </dd></dl>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theH</em>&nbsp;</td><td>Cone height. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created cone.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="9cceaba104b3811113f6f7b368eb6633"></a><!-- doxytag: member="geompy::MakeTorus" ref="9cceaba104b3811113f6f7b368eb6633" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeTorus           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theVec</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRMajor</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRMinor</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Torus central point. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theVec</em>&nbsp;</td><td>Torus axis of symmetry. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theRMajor</em>&nbsp;</td><td>Torus major radius. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theRMinor</em>&nbsp;</td><td>Torus minor radius. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created torus.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="9a8c604450bd29216630ac33284017c6"></a><!-- doxytag: member="geompy::MakeTorusRR" ref="9a8c604450bd29216630ac33284017c6" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeTorusRR           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRMajor</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRMinor</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theRMajor</em>&nbsp;</td><td>Torus major radius. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theRMinor</em>&nbsp;</td><td>Torus minor radius. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created torus.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c0a12052d81f3e8d755dd5b97fbdcf3d"></a><!-- doxytag: member="geompy::MakePrism" ref="c0a12052d81f3e8d755dd5b97fbdcf3d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePrism           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBase</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theBase</em>&nbsp;</td><td>Base shape to be extruded. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint1</em>&nbsp;</td><td>First end of extrusion vector. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint2</em>&nbsp;</td><td>Second end of extrusion vector. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created prism.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="32ecfc039f58048b0b3a23ab8e433765"></a><!-- doxytag: member="geompy::MakePrismVecH" ref="32ecfc039f58048b0b3a23ab8e433765" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePrismVecH           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBase</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theVec</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theH</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-all the space, transfixed by the base shape during its translation along the vector on the given distance. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theBase</em>&nbsp;</td><td>Base shape to be extruded. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theVec</em>&nbsp;</td><td>Direction of extrusion. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theH</em>&nbsp;</td><td>Prism dimension along theVec. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created prism.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="cd033b39f4be052111ab3ec8d27cd9ee"></a><!-- doxytag: member="geompy::MakePipe" ref="cd033b39f4be052111ab3ec8d27cd9ee" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePipe           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBase</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePath</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-The path shape can be a wire or an edge. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theBase</em>&nbsp;</td><td>Base shape to be extruded. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePath</em>&nbsp;</td><td>Path shape to extrude the base shape along it. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created pipe.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="4c093c166272f508454e8eb03133e020"></a><!-- doxytag: member="geompy::MakeRevolution" ref="4c093c166272f508454e8eb03133e020" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeRevolution           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBase</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAxis</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAngle</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-all the space, transfixed by the base shape during its rotation around the axis on the given angle. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theBase</em>&nbsp;</td><td>Base shape to be rotated. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Rotation axis. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAngle</em>&nbsp;</td><td>Rotation angle in radians. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created revolution.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="45564231762e3f8b99b58cd149b48a62"></a><!-- doxytag: member="geompy::MakeThruSections" ref="45564231762e3f8b99b58cd149b48a62" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeThruSections           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theSeqSections</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theModeSolid</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePreci</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRuled</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theSeqSections</em>&nbsp;</td><td>- set of specified sections. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theModeSolid</em>&nbsp;</td><td>- mode defining building solid or shell </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePreci</em>&nbsp;</td><td>- precision 3D used for smoothing by default 1.e-6 </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theRuled</em>&nbsp;</td><td>- mode defining type of the result surfaces (ruled or smoothed). </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created shell or solid.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c4d4d9f9b338502dadd6342d3adb941d"></a><!-- doxytag: member="geompy::MakePipeWithDifferentSections" ref="c4d4d9f9b338502dadd6342d3adb941d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePipeWithDifferentSections           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theSeqBases</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theLocations</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePath</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWithContact</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWithCorrection</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-The path shape can be a wire or an edge. the several profiles can be specified in the several locations of path. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theSeqBases</em>&nbsp;</td><td>- list of Bases shape to be extruded. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theLocations</em>&nbsp;</td><td>- 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. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePath</em>&nbsp;</td><td>- Path shape to extrude the base shape along it. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theWithContact</em>&nbsp;</td><td>- the mode defining that the section is translated to be in contact with the spine. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>-</em>&nbsp;</td><td>WithCorrection - defining that the section is rotated to be orthogonal to the spine tangent in the correspondent point </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created pipe.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="328df6d3aa2acd5dd367fd1ff0f02b90"></a><!-- doxytag: member="geompy::MakeEdge" ref="328df6d3aa2acd5dd367fd1ff0f02b90" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeEdge           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>thePnt1</em>&nbsp;</td><td>Point for the first end of edge. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePnt2</em>&nbsp;</td><td>Point for the second end of edge. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created edge.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="6e231ee2830c5d1292b8e8f80a1b570d"></a><!-- doxytag: member="geompy::MakeWire" ref="6e231ee2830c5d1292b8e8f80a1b570d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeWire           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theEdgesAndWires</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theEdgesAndWires</em>&nbsp;</td><td>List of edges and/or wires. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created wire.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="1fa655542cb7d7f0ca7239246e4020a4"></a><!-- doxytag: member="geompy::MakeFace" ref="1fa655542cb7d7f0ca7239246e4020a4" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeFace           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWire</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>isPlanarWanted</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theWire</em>&nbsp;</td><td>closed Wire or Edge to build the face on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>isPlanarWanted</em>&nbsp;</td><td>If TRUE, only planar face will be built. If impossible, NULL object will be returned. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created face.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="377a2b2ff79598724ae3547e0f8f887e"></a><!-- doxytag: member="geompy::MakeFaceWires" ref="377a2b2ff79598724ae3547e0f8f887e" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeFaceWires           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWires</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>isPlanarWanted</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theWires</em>&nbsp;</td><td>List of closed wires or edges to build the face on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>isPlanarWanted</em>&nbsp;</td><td>If TRUE, only planar face will be built. If impossible, NULL object will be returned. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created face.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="7900487f71fcbe9b74df16fe1de23aac"></a><!-- doxytag: member="geompy::MakeFaces" ref="7900487f71fcbe9b74df16fe1de23aac" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeFaces           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWires</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>isPlanarWanted</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="bcfb3334446b48ec3a59707341df3e38"></a><!-- doxytag: member="geompy::MakeShell" ref="bcfb3334446b48ec3a59707341df3e38" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeShell           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theFacesAndShells</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theFacesAndShells</em>&nbsp;</td><td>List of faces and/or shells. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created shell.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="3e4434784c3ec97093321c16599f7590"></a><!-- doxytag: member="geompy::MakeSolid" ref="3e4434784c3ec97093321c16599f7590" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeSolid           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShells</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShells</em>&nbsp;</td><td>Sequence of bounding shells. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created solid.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="6f23e242d8a3b1dbe445eb2f7f5b5bf6"></a><!-- doxytag: member="geompy::MakeCompound" ref="6f23e242d8a3b1dbe445eb2f7f5b5bf6" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeCompound           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShapes</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShapes</em>&nbsp;</td><td>List of shapes to put in compound. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created compound.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="0ade4b552865ad0a4df9580145f0736e"></a><!-- doxytag: member="geompy::NumberOfFaces" ref="0ade4b552865ad0a4df9580145f0736e" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::NumberOfFaces           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to count faces of. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>Quantity of faces.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="730e50a690deccae3599792c202db613"></a><!-- doxytag: member="geompy::NumberOfEdges" ref="730e50a690deccae3599792c202db613" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::NumberOfEdges           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to count edges of. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>Quantity of edges.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="278e8ebac370fcf80a92b857a54d830d"></a><!-- doxytag: member="geompy::ChangeOrientation" ref="278e8ebac370fcf80a92b857a54d830d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::ChangeOrientation           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be reversed. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>The reversed copy of theShape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c13bcdc1219e63398e9d2bbd27271370"></a><!-- doxytag: member="geompy::OrientationChange" ref="c13bcdc1219e63398e9d2bbd27271370" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::OrientationChange           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="0d2c067d179c0008d035c42b9013283c"></a><!-- doxytag: member="geompy::GetFreeFacesIDs" ref="0d2c067d179c0008d035c42b9013283c" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetFreeFacesIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Free face is a face, which is not shared between two shells of the shape. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find free faces in. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of IDs of all free faces, contained in theShape.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="a19d88b97b5f1cf8c63bd8386f5e9476"></a><!-- doxytag: member="geompy::GetSharedShapes" ref="a19d88b97b5f1cf8c63bd8386f5e9476" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetSharedShapes           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape1</em>&nbsp;</td><td>Shape to find sub-shapes in. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShape2</em>&nbsp;</td><td>Shape to find shared sub-shapes with. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of sub-shapes of theShape1, shared with theShape2.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="e089332bc7ff498c6c6669836989383a"></a><!-- doxytag: member="geompy::GetShapesOnPlane" ref="e089332bc7ff498c6c6669836989383a" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnPlane           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAx1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAx1</em>&nbsp;</td><td>Vector (or line, or linear edge), specifying normal direction and location of the plane to find shapes on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="1ec8a4c4f37f881676de67fbb185a1a7"></a><!-- doxytag: member="geompy::GetShapesOnPlaneIDs" ref="1ec8a4c4f37f881676de67fbb185a1a7" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnPlaneIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAx1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="43c25e4a08b30b59dcd18696effb3394"></a><!-- doxytag: member="geompy::GetShapesOnPlaneWithLocation" ref="43c25e4a08b30b59dcd18696effb3394" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnPlaneWithLocation           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAx1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAx1</em>&nbsp;</td><td>Vector (or line, or linear edge), specifying normal direction of the plane to find shapes on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePnt</em>&nbsp;</td><td>Point specifying location of the plane to find shapes on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="7e017a6cd1e9103c7d6f4d3897e36ae5"></a><!-- doxytag: member="geompy::GetShapesOnPlaneWithLocationIDs" ref="7e017a6cd1e9103c7d6f4d3897e36ae5" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnPlaneWithLocationIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAx1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePnt</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="e472f5764a1014dc9c60778cb02ce970"></a><!-- doxytag: member="geompy::GetShapesOnCylinder" ref="e472f5764a1014dc9c60778cb02ce970" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnCylinder           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAxis</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRadius</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Vector (or line, or linear edge), specifying axis of the cylinder to find shapes on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theRadius</em>&nbsp;</td><td>Radius of the cylinder to find shapes on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="338736dab175669a89da003c8cf45552"></a><!-- doxytag: member="geompy::GetShapesOnCylinderIDs" ref="338736dab175669a89da003c8cf45552" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnCylinderIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAxis</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRadius</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="926ea88b412800140f45270a3ae89345"></a><!-- doxytag: member="geompy::GetShapesOnSphere" ref="926ea88b412800140f45270a3ae89345" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnSphere           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theCenter</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRadius</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theCenter</em>&nbsp;</td><td>Point, specifying center of the sphere to find shapes on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theRadius</em>&nbsp;</td><td>Radius of the sphere to find shapes on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c5e58a6957bf2695fd8a974da75718f6"></a><!-- doxytag: member="geompy::GetShapesOnSphereIDs" ref="c5e58a6957bf2695fd8a974da75718f6" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnSphereIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theCenter</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theRadius</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="6b18a78d643167b99cc95ddd59874b10"></a><!-- doxytag: member="geompy::GetShapesOnQuadrangle" ref="6b18a78d643167b99cc95ddd59874b10" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnQuadrangle           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTopLeftPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTopRigthPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBottomLeftPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBottomRigthPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theTopLeftPoint</em>&nbsp;</td><td>Point, specifying top left corner of a quadrangle </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theTopRigthPoint</em>&nbsp;</td><td>Point, specifying top right corner of a quadrangle </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theBottomLeftPoint</em>&nbsp;</td><td>Point, specifying bottom left corner of a quadrangle </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theBottomRigthPoint</em>&nbsp;</td><td>Point, specifying bottom right corner of a quadrangle </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="db16045827aa23070ef98eca038ecd2c"></a><!-- doxytag: member="geompy::GetShapesOnQuadrangleIDs" ref="db16045827aa23070ef98eca038ecd2c" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnQuadrangleIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTopLeftPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTopRigthPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBottomLeftPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBottomRigthPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="94c97c957d04ebd433cb5b3d94e8c8ac"></a><!-- doxytag: member="geompy::GetShapesOnBox" ref="94c97c957d04ebd433cb5b3d94e8c8ac" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnBox           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBox</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theBox</em>&nbsp;</td><td>Shape for relative comparing. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theState</em>&nbsp;</td><td>The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of all found sub-shapes. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="c7b1da4e965bf551fc87b72ebd6afde7"></a><!-- doxytag: member="geompy::GetShapesOnBoxIDs" ref="c7b1da4e965bf551fc87b72ebd6afde7" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetShapesOnBoxIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBox</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theState</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="2695635fc745e6aa6cda4545e2133c41"></a><!-- doxytag: member="geompy::GetInPlace" ref="2695635fc745e6aa6cda4545e2133c41" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetInPlace           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeWhere</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeWhat</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShapeWhere</em>&nbsp;</td><td>Shape to find sub-shapes of. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeWhat</em>&nbsp;</td><td>Shape, specifying what to find. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>Group of all found sub-shapes or a single found sub-shape.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="808c0723c1cc2c641a02aeaa0d0b45c6"></a><!-- doxytag: member="geompy::GetSame" ref="808c0723c1cc2c641a02aeaa0d0b45c6" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetSame           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeWhere</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeWhat</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShapeWhere</em>&nbsp;</td><td>Shape to find sub-shape of. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeWhat</em>&nbsp;</td><td>Shape, specifying what to find. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New <a class="el" href="classGEOM__Object.html">GEOM_Object</a> for found sub-shape. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="67706610dda0d5005ee1cdfe2e8362a2"></a><!-- doxytag: member="geompy::GetSubShape" ref="67706610dda0d5005ee1cdfe2e8362a2" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetSubShape           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListOfID</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="d7ee9f96e4b5b4303c7d20f0fc42d67d"></a><!-- doxytag: member="geompy::GetSubShapeID" ref="d7ee9f96e4b5b4303c7d20f0fc42d67d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetSubShapeID           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aSubShape</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="e4ee5a20fdb33779f2dc5f1686fd3d8a"></a><!-- doxytag: member="geompy::SubShapeAll" ref="e4ee5a20fdb33779f2dc5f1686fd3d8a" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SubShapeAll           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aType</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be exploded. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of sub-shapes of type theShapeType, contained in theShape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="d19aeb7b8759ebd877154239fb4c1d7f"></a><!-- doxytag: member="geompy::SubShapeAllIDs" ref="d19aeb7b8759ebd877154239fb4c1d7f" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SubShapeAllIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aType</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be exploded. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of IDs of sub-shapes. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="7991c614f21498c03545d58f0e1e6049"></a><!-- doxytag: member="geompy::SubShapeAllSorted" ref="7991c614f21498c03545d58f0e1e6049" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SubShapeAllSorted           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aType</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Sub-shapes will be sorted by coordinates of their gravity centers. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be exploded. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of sub-shapes of type theShapeType, contained in theShape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="0da304f589070498b79851370436094e"></a><!-- doxytag: member="geompy::SubShapeAllSortedIDs" ref="0da304f589070498b79851370436094e" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SubShapeAllSortedIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aType</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Sub-shapes will be sorted by coordinates of their gravity centers. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be exploded. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of sub-shapes to be retrieved. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of IDs of sub-shapes. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="f7265ff90cecdffb35a75b7968d834a1"></a><!-- doxytag: member="geompy::SubShape" ref="f7265ff90cecdffb35a75b7968d834a1" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SubShape           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListOfInd</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]<p>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="0566156543b9ae4bb4dacbdc660802e0"></a><!-- doxytag: member="geompy::SubShapeSorted" ref="0566156543b9ae4bb4dacbdc660802e0" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SubShapeSorted           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListOfInd</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]<p>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="4ec92460ad70a2086a228cc8f5c53546"></a><!-- doxytag: member="geompy::ProcessShape" ref="4ec92460ad70a2086a228cc8f5c53546" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::ProcessShape           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theOperators</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theParameters</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theValues</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be processed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theOperators</em>&nbsp;</td><td>List of names of operators ("FixShape", "SplitClosedFaces", etc.). </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theParameters</em>&nbsp;</td><td>List of names of parameters ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.). </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theValues</em>&nbsp;</td><td>List of values of parameters, in the same order as parameters are listed in <em>theParameters</em> list. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
-Example: see GEOM_TestHealing.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="e97025dce42f920c90940e317d4346df"></a><!-- doxytag: member="geompy::SuppressFaces" ref="e97025dce42f920c90940e317d4346df" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SuppressFaces           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFaces</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theFaces</em>&nbsp;</td><td>Indices of faces to be removed, if EMPTY then the method removes ALL faces of the given object. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
-Example: see GEOM_TestHealing.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="af901778584daa351bf152dea8e45103"></a><!-- doxytag: member="geompy::MakeSewing" ref="af901778584daa351bf152dea8e45103" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeSewing           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTolerance</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestHealing.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="2053611e91ad644a537b94f7746aad83"></a><!-- doxytag: member="geompy::Sew" ref="2053611e91ad644a537b94f7746aad83" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::Sew           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTolerance</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theTolerance</em>&nbsp;</td><td>Required tolerance value. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
-Example: see <a class="el" href="namespacegeompy.html#af901778584daa351bf152dea8e45103">MakeSewing()</a> above     </td>
-  </tr>
-</table>
-<a class="anchor" name="1b508c8014392c17a40634ed0ea098fc"></a><!-- doxytag: member="geompy::SuppressInternalWires" ref="1b508c8014392c17a40634ed0ea098fc" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SuppressInternalWires           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWires</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theWires</em>&nbsp;</td><td>Indices of wires to be removed, if EMPTY then the method removes ALL internal wires of the given object. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
-Example: see GEOM_TestHealing.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="415a551ef50c5a35815080451c459a53"></a><!-- doxytag: member="geompy::SuppressHoles" ref="415a551ef50c5a35815080451c459a53" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SuppressHoles           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWires</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theWires</em>&nbsp;</td><td>Indices of wires to be removed, if EMPTY then the method removes ALL internal holes of the given object </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
-Example: see GEOM_TestHealing.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="19eec790d224fe44a21855073733c61a"></a><!-- doxytag: member="geompy::CloseContour" ref="19eec790d224fe44a21855073733c61a" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::CloseContour           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWires</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>isCommonVertex</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theWires</em>&nbsp;</td><td>Indexes of edge(s) and wire(s) to be closed within <em>theObject</em>'s shape, if -1, then theObject itself is a wire. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>isCommonVertex</em>&nbsp;</td><td>If TRUE : closure by creation of a common vertex, If FALS : closure by creation of an edge between ends. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
-Example: see GEOM_TestHealing.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="3d0753cc00225c3c2432f64d2439de2c"></a><!-- doxytag: member="geompy::DivideEdge" ref="3d0753cc00225c3c2432f64d2439de2c" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::DivideEdge           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theEdgeIndex</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theValue</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>isByParameter</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theEdgeIndex</em>&nbsp;</td><td>Index of edge to be divided within theObject's shape, if -1, then theObject itself is the edge. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theValue</em>&nbsp;</td><td>Value of parameter on edge or length parameter, depending on <em>isByParameter</em>. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>isByParameter</em>&nbsp;</td><td>If TRUE : <em>theValue</em> is treated as a curve parameter [0..1], if FALSE : <em>theValue</em> is treated as a length parameter [0..1] </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape.</dd></dl>
-Example: see GEOM_TestHealing.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="9c5759e7397aafa57af929453a3db08e"></a><!-- doxytag: member="geompy::ChangeOrientationShell" ref="9c5759e7397aafa57af929453a3db08e" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::ChangeOrientationShell           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theObject</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed.  given shape </td></tr>
-  </table>
-</dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="e82647674a4c63cda4dc8527712818e2"></a><!-- doxytag: member="geompy::ChangeOrientationShellCopy" ref="e82647674a4c63cda4dc8527712818e2" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::ChangeOrientationShellCopy           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theObject</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be processed. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing processed shape. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="65e1cf2711f524b98cd4596e53dda798"></a><!-- doxytag: member="geompy::GetFreeBoundary" ref="65e1cf2711f524b98cd4596e53dda798" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetFreeBoundary           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theObject</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to get free boundary of. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
-Example: see GEOM_TestHealing.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="33f1df4161bf5f34dcad843ed3380404"></a><!-- doxytag: member="geompy::MakeCopy" ref="33f1df4161bf5f34dcad843ed3380404" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeCopy           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theOriginal</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="cbe2949bf5461726223a97ee80d1c3ec"></a><!-- doxytag: member="geompy::MakeFilling" ref="cbe2949bf5461726223a97ee80d1c3ec" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeFilling           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theMinDeg</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theMaxDeg</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTol2D</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTol3D</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theNbIter</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>the compound of contours </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theMinDeg</em>&nbsp;</td><td>a minimal degree </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theMaxDeg</em>&nbsp;</td><td>a maximal degree </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theTol2D</em>&nbsp;</td><td>a 2d tolerance </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theTol3D</em>&nbsp;</td><td>a 3d tolerance </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theNbIter</em>&nbsp;</td><td>a number of iteration </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created filling surface.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="e5d9467bd086e6cac983986d2d5f88fb"></a><!-- doxytag: member="geompy::MakeGlueFaces" ref="e5d9467bd086e6cac983986d2d5f88fb" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeGlueFaces           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theTolerance</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Initial shape. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theTolerance</em>&nbsp;</td><td>Maximum distance between faces, which can be considered as coincident. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing a copy of theShape without coincident faces.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="f226efc56d8eff7b56c2d1cfaafa9f29"></a><!-- doxytag: member="geompy::MakeBoolean" ref="f226efc56d8eff7b56c2d1cfaafa9f29" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeBoolean           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theOperation</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape1</em>&nbsp;</td><td>First argument for boolean operation. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShape2</em>&nbsp;</td><td>Second argument for boolean operation. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theOperation</em>&nbsp;</td><td>Indicates the operation to be done: 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="cd8f27d201b21e0fece9d01b8b4b1380"></a><!-- doxytag: member="geompy::MakeCommon" ref="cd8f27d201b21e0fece9d01b8b4b1380" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeCommon           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>s1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>s2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="03dd2a576cc3add2d3de4d0dd49e543d"></a><!-- doxytag: member="geompy::MakeCut" ref="03dd2a576cc3add2d3de4d0dd49e543d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeCut           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>s1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>s2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="d901649467a5a346eada63b49cf6303e"></a><!-- doxytag: member="geompy::MakeFuse" ref="d901649467a5a346eada63b49cf6303e" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeFuse           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>s1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>s2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="eedaf0e56fe5240f4c7c6b9054fc97c8"></a><!-- doxytag: member="geompy::MakeSection" ref="eedaf0e56fe5240f4c7c6b9054fc97c8" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeSection           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>s1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>s2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="56f48212a436f46c02722f627d27e7f2"></a><!-- doxytag: member="geompy::MakePartition" ref="56f48212a436f46c02722f627d27e7f2" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePartition           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListShapes</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListTools</em> = <code>[]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListKeepInside</em> = <code>[]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListRemoveInside</em> = <code>[]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>Limit</em> = <code><a class="el" href="namespacegeompy.html#269cf26d7d10b8f6b4a20789ed8233a0">ShapeType</a>[&quot;SHAPE&quot;]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>RemoveWebs</em> = <code>0</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListMaterials</em> = <code>[]</code></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>ListShapes</em>&nbsp;</td><td>Shapes to be intersected. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>ListTools</em>&nbsp;</td><td>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.</td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>Limit</em>&nbsp;</td><td>Type of resulting shapes (corresponding to TopAbs_ShapeEnum). </td></tr>
-  </table>
-</dl>
-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: <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>ListKeepInside</em>&nbsp;</td><td>Shapes, outside which the results will be deleted. Each shape from theKeepInside must belong to theShapes also. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>ListRemoveInside</em>&nbsp;</td><td>Shapes, inside which the results will be deleted. Each shape from theRemoveInside must belong to theShapes also. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>RemoveWebs</em>&nbsp;</td><td>If TRUE, perform Glue 3D algorithm. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>ListMaterials</em>&nbsp;</td><td>Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.</td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shapes.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="85a4e715d0d0e4c8c9960372bfeb5327"></a><!-- doxytag: member="geompy::MakePartitionNonSelfIntersectedShape" ref="85a4e715d0d0e4c8c9960372bfeb5327" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePartitionNonSelfIntersectedShape           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListShapes</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListTools</em> = <code>[]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListKeepInside</em> = <code>[]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListRemoveInside</em> = <code>[]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>Limit</em> = <code><a class="el" href="namespacegeompy.html#269cf26d7d10b8f6b4a20789ed8233a0">ShapeType</a>[&quot;SHAPE&quot;]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>RemoveWebs</em> = <code>0</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListMaterials</em> = <code>[]</code></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-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.<p>
-Description of all parameters as in previous method <a class="el" href="namespacegeompy.html#56f48212a436f46c02722f627d27e7f2">MakePartition()</a><p>
-!!!NOTE: Passed compounds (via ListShapes or via ListTools) have to consist of nonintersecting shapes.<p>
-<dl compact><dt><b>Returns:</b></dt><dd>New <a class="el" href="classGEOM__Object.html">GEOM_Object</a>, containing the result shapes. </dd></dl>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="f1fc43bc5612514bcc2f6d772c3d38db"></a><!-- doxytag: member="geompy::Partition" ref="f1fc43bc5612514bcc2f6d772c3d38db" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::Partition           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListShapes</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListTools</em> = <code>[]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListKeepInside</em> = <code>[]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListRemoveInside</em> = <code>[]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>Limit</em> = <code><a class="el" href="namespacegeompy.html#269cf26d7d10b8f6b4a20789ed8233a0">ShapeType</a>[&quot;SHAPE&quot;]</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>RemoveWebs</em> = <code>0</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListMaterials</em> = <code>[]</code></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="d5389c13cb51ad6b6d15780d7e648e69"></a><!-- doxytag: member="geompy::MakeHalfPartition" ref="d5389c13cb51ad6b6d15780d7e648e69" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeHalfPartition           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePlane</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be intersected. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePlane</em>&nbsp;</td><td>Tool shape, to intersect theShape. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c305e3f931c4ead2aae3b64ccfe5d350"></a><!-- doxytag: member="geompy::MakeTranslationTwoPoints" ref="c305e3f931c4ead2aae3b64ccfe5d350" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeTranslationTwoPoints           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be translated. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint1</em>&nbsp;</td><td>Start point of translation vector. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint2</em>&nbsp;</td><td>End point of translation vector. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the translated object.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="daa3f61a507374c1f673619c49485751"></a><!-- doxytag: member="geompy::MakeTranslation" ref="daa3f61a507374c1f673619c49485751" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeTranslation           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theDX</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theDY</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theDZ</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be translated. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theDX,theDY,theDZ</em>&nbsp;</td><td>Components of translation vector. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the translated object.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c70936f9c902aef0c6dbd5510bdc7f03"></a><!-- doxytag: member="geompy::MakeTranslationVector" ref="c70936f9c902aef0c6dbd5510bdc7f03" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeTranslationVector           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theVector</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be translated. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theVector</em>&nbsp;</td><td>The translation vector. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the translated object.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="3363966f33171e6415e1a1b5d4a8e9fa"></a><!-- doxytag: member="geompy::MakeRotation" ref="3363966f33171e6415e1a1b5d4a8e9fa" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeRotation           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAxis</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAngle</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be rotated. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Rotation axis. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAngle</em>&nbsp;</td><td>Rotation angle in radians. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the rotated object.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="6bcb1680b597f1491d371fa2a9242342"></a><!-- doxytag: member="geompy::MakeRotationThreePoints" ref="6bcb1680b597f1491d371fa2a9242342" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeRotationThreePoints           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theCentPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be rotated. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theCentPoint</em>&nbsp;</td><td>central point - the axis is the vector perpendicular to the plane containing the three points. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint1</em>&nbsp;</td><td>and thePoint2 - in a perpendicular plan of the axis. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the rotated object.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="7ad2fdeeef570ba29c86ba28d3da09f7"></a><!-- doxytag: member="geompy::MakeScaleTransform" ref="7ad2fdeeef570ba29c86ba28d3da09f7" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeScaleTransform           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFactor</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be scaled. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint</em>&nbsp;</td><td>Center point for scaling. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theFactor</em>&nbsp;</td><td>Scaling factor value. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the scaled shape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="fab9bb8ede1f587c47cd1d981e966cdd"></a><!-- doxytag: member="geompy::MakeMirrorByPlane" ref="fab9bb8ede1f587c47cd1d981e966cdd" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMirrorByPlane           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePlane</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be mirrored. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePlane</em>&nbsp;</td><td>Plane of symmetry. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the mirrored shape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="73733650d7b37eb8aec0df9aca0c9a63"></a><!-- doxytag: member="geompy::MakeMirrorByAxis" ref="73733650d7b37eb8aec0df9aca0c9a63" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMirrorByAxis           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAxis</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be mirrored. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Axis of symmetry. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the mirrored shape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="56e053740bed5b65670cf9cc10df4d8d"></a><!-- doxytag: member="geompy::MakeMirrorByPoint" ref="56e053740bed5b65670cf9cc10df4d8d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMirrorByPoint           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be mirrored. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint</em>&nbsp;</td><td>Point of symmetry. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the mirrored shape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c100ca3b5ccdbd133df55b331cf33c42"></a><!-- doxytag: member="geompy::MakePosition" ref="c100ca3b5ccdbd133df55b331cf33c42" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakePosition           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theStartLCS</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theEndLCS</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be displaced. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theStartLCS</em>&nbsp;</td><td>Coordinate system to perform displacement from it. If <em>theStartLCS</em> is NULL, displacement will be performed from global CS. If <em>theObject</em> itself is used as <em>theStartLCS</em>, its location will be changed to <em>theEndLCS</em>. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theEndLCS</em>&nbsp;</td><td>Coordinate system to perform displacement to it. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the displaced shape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="1c9ca22c504f4190f49f3e222fadeff0"></a><!-- doxytag: member="geompy::MakeOffset" ref="1c9ca22c504f4190f49f3e222fadeff0" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeOffset           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theOffset</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The base object for the offset. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theOffset</em>&nbsp;</td><td>Offset value. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the offset object.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="ab11f2929f8585eee3f3e29ed9b6fe51"></a><!-- doxytag: member="geompy::MakeMultiTranslation1D" ref="ab11f2929f8585eee3f3e29ed9b6fe51" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMultiTranslation1D           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theVector</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theStep</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theNbTimes</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be translated. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theVector</em>&nbsp;</td><td>Direction of the translation. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theStep</em>&nbsp;</td><td>Distance to translate on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theNbTimes</em>&nbsp;</td><td>Quantity of translations to be done. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing compound of all the shapes, obtained after each translation.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="4a96d7c7ad41b4cb66f2bc544085c659"></a><!-- doxytag: member="geompy::MakeMultiTranslation2D" ref="4a96d7c7ad41b4cb66f2bc544085c659" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMultiTranslation2D           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theVector1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theStep1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theNbTimes1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theVector2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theStep2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theNbTimes2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be translated. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theVector1</em>&nbsp;</td><td>Direction of the first translation. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theStep1</em>&nbsp;</td><td>Step of the first translation. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theNbTimes1</em>&nbsp;</td><td>Quantity of translations to be done along theVector1. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theVector2</em>&nbsp;</td><td>Direction of the second translation. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theStep2</em>&nbsp;</td><td>Step of the second translation. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theNbTimes2</em>&nbsp;</td><td>Quantity of translations to be done along theVector2. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing compound of all the shapes, obtained after each translation.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="6c50d3ab9f6be4fee93abec171a89cfc"></a><!-- doxytag: member="geompy::MultiRotate1D" ref="6c50d3ab9f6be4fee93abec171a89cfc" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MultiRotate1D           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAxis</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theNbTimes</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Rotation angle will be 2*PI/theNbTimes. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be rotated. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>The rotation axis. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theNbTimes</em>&nbsp;</td><td>Quantity of rotations to be done. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing compound of all the shapes, obtained after each rotation.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="b004cf2bbff7b8dfa28a96aadc6bc456"></a><!-- doxytag: member="geompy::MultiRotate2D" ref="b004cf2bbff7b8dfa28a96aadc6bc456" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MultiRotate2D           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAxis</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theAngle</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theNbTimes1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theStep</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theNbTimes2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Translation direction passes through center of gravity of rotated shape and its projection on the rotation axis. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>The object to be rotated. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAxis</em>&nbsp;</td><td>Rotation axis. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theAngle</em>&nbsp;</td><td>Rotation angle in graduces. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theNbTimes1</em>&nbsp;</td><td>Quantity of rotations to be done. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theStep</em>&nbsp;</td><td>Translation distance. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theNbTimes2</em>&nbsp;</td><td>Quantity of translations to be done. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing compound of all the shapes, obtained after each transformation.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="fe6bb49b0e4f150327729f063bdec2cd"></a><!-- doxytag: member="geompy::MakeMultiRotation1D" ref="fe6bb49b0e4f150327729f063bdec2cd" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMultiRotation1D           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aDir</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aNbTimes</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="5e677bcf6d3c8190778f05e6c7e871d3"></a><!-- doxytag: member="geompy::MakeMultiRotation2D" ref="5e677bcf6d3c8190778f05e6c7e871d3" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMultiRotation2D           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aDir</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aPoint</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>anAngle</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>nbtimes1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aStep</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>nbtimes2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="3f2ecc9ca30a3017c7f8d22a9c6ca6fb"></a><!-- doxytag: member="geompy::MakeFilletAll" ref="3f2ecc9ca30a3017c7f8d22a9c6ca6fb" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeFilletAll           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to perform fillet on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Fillet radius. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="86bbdb543ba06469c1ffe95cb7950f46"></a><!-- doxytag: member="geompy::MakeFillet" ref="86bbdb543ba06469c1ffe95cb7950f46" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeFillet           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theR</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theListShapes</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to perform fillet on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theR</em>&nbsp;</td><td>Fillet radius. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>Type of shapes in &lt;theListShapes&gt;. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theListShapes</em>&nbsp;</td><td>Global indices of edges/faces to perform fillet on. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Note:</b></dt><dd>Global index of sub-shape can be obtained, using method <a class="el" href="namespacegeompy.html#d7ee9f96e4b5b4303c7d20f0fc42d67d">geompy.GetSubShapeID()</a>. </dd></dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="92091fbfdb19e6532aaf8cbc76f271a1"></a><!-- doxytag: member="geompy::MakeChamferAll" ref="92091fbfdb19e6532aaf8cbc76f271a1" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeChamferAll           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theD</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to perform chamfer on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theD</em>&nbsp;</td><td>Chamfer size along each face. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="6afb8427fde5f6ca2dbc51a51869f7ca"></a><!-- doxytag: member="geompy::MakeChamferEdge" ref="6afb8427fde5f6ca2dbc51a51869f7ca" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeChamferEdge           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theD1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theD2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFace1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFace2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to perform chamfer on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theD1</em>&nbsp;</td><td>Chamfer size along <em>theFace1</em>. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theD2</em>&nbsp;</td><td>Chamfer size along <em>theFace2</em>. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theFace1,theFace2</em>&nbsp;</td><td>Global indices of two faces of <em>theShape</em>. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Note:</b></dt><dd>Global index of sub-shape can be obtained, using method <a class="el" href="namespacegeompy.html#d7ee9f96e4b5b4303c7d20f0fc42d67d">geompy.GetSubShapeID()</a>. </dd></dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="2018b56951c34682fa0df214a3b1d7f2"></a><!-- doxytag: member="geompy::MakeChamferFaces" ref="2018b56951c34682fa0df214a3b1d7f2" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeChamferFaces           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theD1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theD2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFaces</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to perform chamfer on. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theD1</em>&nbsp;</td><td>Chamfer size along face from <em>theFaces</em>. If both faces, connected to the edge, are in <em>theFaces</em>, <em>theD1</em> will be get along face, which is nearer to <em>theFaces</em> beginning. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theD2</em>&nbsp;</td><td>Chamfer size along another of two faces, connected to the edge. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theFaces</em>&nbsp;</td><td>Sequence of global indices of faces of <em>theShape</em>. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Note:</b></dt><dd>Global index of sub-shape can be obtained, using method <a class="el" href="namespacegeompy.html#d7ee9f96e4b5b4303c7d20f0fc42d67d">geompy.GetSubShapeID()</a>. </dd></dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="1d1b85c082445f89293b614b23695a19"></a><!-- doxytag: member="geompy::MakeChamfer" ref="1d1b85c082445f89293b614b23695a19" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeChamfer           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>d1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>d2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>aShapeType</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>ListShape</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="dd1ebfcc03ea50d9701fc0fdff388cd8"></a><!-- doxytag: member="geompy::Archimede" ref="dd1ebfcc03ea50d9701fc0fdff388cd8" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::Archimede           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWeight</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theWaterDensity</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theMeshDeflection</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-The object presenting the resulting face is returned. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be put in water. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theWeight</em>&nbsp;</td><td>Weight og the shape. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theWaterDensity</em>&nbsp;</td><td>Density of the water. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theMeshDeflection</em>&nbsp;</td><td>Deflection of the mesh, using to compute the section. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing a section of <em>theShape</em> by a plane, corresponding to water level.</dd></dl>
-Example: see GEOM_TestAll.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="e10a7c1c972b5629fcd9d4b459ccf13b"></a><!-- doxytag: member="geompy::PointCoordinates" ref="e10a7c1c972b5629fcd9d4b459ccf13b" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::PointCoordinates           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>Point</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Returns:</b></dt><dd>[x, y, z]</dd></dl>
-Example: see GEOM_TestMeasures.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="ab1609df1740aca9735eb455b5ad7947"></a><!-- doxytag: member="geompy::BasicProperties" ref="ab1609df1740aca9735eb455b5ad7947" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::BasicProperties           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to define properties of. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
-Example: see GEOM_TestMeasures.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="1aa8eba3c44a5230cd457b3f97eea57a"></a><!-- doxytag: member="geompy::BoundingBox" ref="1aa8eba3c44a5230cd457b3f97eea57a" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::BoundingBox           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to obtain bounding box of. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
-Example: see GEOM_TestMeasures.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="139df343f817141a8b074cd7389a44b1"></a><!-- doxytag: member="geompy::Inertia" ref="139df343f817141a8b074cd7389a44b1" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::Inertia           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to calculate inertia of. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
-Example: see GEOM_TestMeasures.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="ef044d33ebbe02c75bb62d44ec8570bc"></a><!-- doxytag: member="geompy::MinDistance" ref="ef044d33ebbe02c75bb62d44ec8570bc" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MinDistance           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape1,theShape2</em>&nbsp;</td><td>Shapes to find minimal distance between. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>Value of the minimal distance between the given shapes.</dd></dl>
-Example: see GEOM_TestMeasures.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="8f1e2eb8fa61d0e7aebc04a641f020fb"></a><!-- doxytag: member="geompy::Tolerance" ref="8f1e2eb8fa61d0e7aebc04a641f020fb" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::Tolerance           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape, to get tolerances of. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
-Example: see GEOM_TestMeasures.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="6c1a6120cbbf69d13c02b9ade0ba98eb"></a><!-- doxytag: member="geompy::WhatIs" ref="6c1a6120cbbf69d13c02b9ade0ba98eb" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::WhatIs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to be described. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>Description of the given shape.</dd></dl>
-Example: see GEOM_TestMeasures.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="d9e158674b690b397e20e788b7622da0"></a><!-- doxytag: member="geompy::MakeCDG" ref="d9e158674b690b397e20e788b7622da0" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeCDG           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to define centre of mass of. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created point.</dd></dl>
-Example: see GEOM_TestMeasures.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="35d111502e0280fee475e86270792565"></a><!-- doxytag: member="geompy::CheckShape" ref="35d111502e0280fee475e86270792565" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::CheckShape           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theIsCheckGeom</em> = <code>0</code></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to check validity of. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theIsCheckGeom</em>&nbsp;</td><td>If FALSE, only the shape's topology will be checked, if TRUE, the shape's geometry will be checked also. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>TRUE, if the shape "seems to be valid". If theShape is invalid, prints a description of problem.</dd></dl>
-Example: see GEOM_TestMeasures.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="1f93405313fd378a4383ea9833dab3de"></a><!-- doxytag: member="geompy::GetPosition" ref="1f93405313fd378a4383ea9833dab3de" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetPosition           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-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.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to calculate position of. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>[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.</dd></dl>
-Example: see GEOM_TestMeasures.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="a0571beb5ffbacb42ce92195309820d0"></a><!-- doxytag: member="geompy::Import" ref="a0571beb5ffbacb42ce92195309820d0" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::Import           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFileName</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFormatName</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theFileName</em>&nbsp;</td><td>The file, containing the shape. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theFormatName</em>&nbsp;</td><td>Specify format for the file reading. Available formats can be obtained with InsertOp.ImportTranslators() method. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the imported shape.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="10f157e05c0e20acd86f78090bfec351"></a><!-- doxytag: member="geompy::ImportBREP" ref="10f157e05c0e20acd86f78090bfec351" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::ImportBREP           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theFileName</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="2968cc7bf89d54bee34ee3f560bd7f4f"></a><!-- doxytag: member="geompy::ImportIGES" ref="2968cc7bf89d54bee34ee3f560bd7f4f" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::ImportIGES           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theFileName</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="a232e7dafb6fd10ade8e601d54fd63c2"></a><!-- doxytag: member="geompy::ImportSTEP" ref="a232e7dafb6fd10ade8e601d54fd63c2" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::ImportSTEP           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theFileName</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="499e87da00bb3be6123cf73136127bfc"></a><!-- doxytag: member="geompy::Export" ref="499e87da00bb3be6123cf73136127bfc" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::Export           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFileName</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFormatName</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theObject</em>&nbsp;</td><td>Shape to be stored in the file. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theFileName</em>&nbsp;</td><td>Name of the file to store the given shape in. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theFormatName</em>&nbsp;</td><td>Specify format for the shape storage. Available formats can be obtained with InsertOp.ImportTranslators() method.</td></tr>
-  </table>
-</dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="87cb97db967c38695f7b820dbcff30bd"></a><!-- doxytag: member="geompy::ExportBREP" ref="87cb97db967c38695f7b820dbcff30bd" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::ExportBREP           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFileName</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="1fecea070929464aee6bf9887dae144a"></a><!-- doxytag: member="geompy::ExportIGES" ref="1fecea070929464aee6bf9887dae144a" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::ExportIGES           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFileName</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="96a04d9dac65752cc513b4fdf70c5ea0"></a><!-- doxytag: member="geompy::ExportSTEP" ref="96a04d9dac65752cc513b4fdf70c5ea0" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::ExportSTEP           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theObject</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFileName</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="6e740378fa27a55a0605f11ed68d5c13"></a><!-- doxytag: member="geompy::MakeQuad" ref="6e740378fa27a55a0605f11ed68d5c13" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeQuad           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>E1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>E2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>E3</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>E4</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Order of Edges is not important. It is not necessary that edges share the same vertex. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>E1,E2,E3,E4</em>&nbsp;</td><td>Edges for the face bound. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created face.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="b459a4cca585b6d0ae962fcc533e2233"></a><!-- doxytag: member="geompy::MakeQuad2Edges" ref="b459a4cca585b6d0ae962fcc533e2233" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeQuad2Edges           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>E1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>E2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-The missing edges will be built by creating the shortest ones. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>E1,E2</em>&nbsp;</td><td>Two opposite edges for the face. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created face.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="b4a45d1dd409b770f143758e8bc2f80d"></a><!-- doxytag: member="geompy::MakeQuad4Vertices" ref="b4a45d1dd409b770f143758e8bc2f80d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeQuad4Vertices           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>V1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>V2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>V3</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>V4</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-The missing edges will be built by creating the shortest ones. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>V1,V2,V3,V4</em>&nbsp;</td><td>Corner vertices for the face. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created face.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="d9eb183f135341b2c5151e5d31c8d07c"></a><!-- doxytag: member="geompy::MakeHexa" ref="d9eb183f135341b2c5151e5d31c8d07c" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeHexa           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>F1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>F2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>F3</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>F4</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>F5</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>F6</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Order of faces is not important. It is not necessary that Faces share the same edge. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>F1,F2,F3,F4,F5,F6</em>&nbsp;</td><td>Faces for the hexahedral solid. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created solid.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c612949da56e4e28d2f52f7022e8f270"></a><!-- doxytag: member="geompy::MakeHexa2Faces" ref="c612949da56e4e28d2f52f7022e8f270" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeHexa2Faces           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>F1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>F2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-The missing faces will be built by creating the smallest ones. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>F1,F2</em>&nbsp;</td><td>Two opposite faces for the hexahedral solid. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the created solid.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="1d89799285c4b0a50c8edd0276a45e00"></a><!-- doxytag: member="geompy::GetPoint" ref="1d89799285c4b0a50c8edd0276a45e00" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetPoint           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theX</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theY</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theZ</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theEpsilon</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theX,theY,theZ</em>&nbsp;</td><td>Coordinates of the sought vertex. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theEpsilon</em>&nbsp;</td><td>Maximum allowed distance between the resulting vertex and point with the given coordinates. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found vertex.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="3e02dfbb79bbe2739ffe382a10a83902"></a><!-- doxytag: member="geompy::GetEdge" ref="3e02dfbb79bbe2739ffe382a10a83902" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetEdge           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint1,thePoint2</em>&nbsp;</td><td>Points, close to the ends of the desired edge. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found edge.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="294c21fa51645e8cc18199dfb4622174"></a><!-- doxytag: member="geompy::GetEdgeNearPoint" ref="294c21fa51645e8cc18199dfb4622174" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetEdgeNearPoint           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint</em>&nbsp;</td><td>Point, close to the desired edge. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found edge.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="5d9f4778acda236b2595a93f3443269f"></a><!-- doxytag: member="geompy::GetFaceByPoints" ref="5d9f4778acda236b2595a93f3443269f" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetFaceByPoints           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint3</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint4</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint1-thePoint4</em>&nbsp;</td><td>Points, close to the corners of the desired face. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found face.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="f7154a6930bffcd3f249e32e360bf161"></a><!-- doxytag: member="geompy::GetFaceByEdges" ref="f7154a6930bffcd3f249e32e360bf161" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetFaceByEdges           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theEdge1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theEdge2</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theEdge1,theEdge2</em>&nbsp;</td><td>Edges, close to the edges of the desired face. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found face.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="5367485e4a8a35c32d746723fee905bb"></a><!-- doxytag: member="geompy::GetOppositeFace" ref="5367485e4a8a35c32d746723fee905bb" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetOppositeFace           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBlock</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theFace</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theBlock</em>&nbsp;</td><td>Must be a hexahedral solid. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theFace</em>&nbsp;</td><td>Face of <em>theBlock</em>, opposite to the desired face. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found face.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="12a77345f9e987f83ffd294cd7efcb0b"></a><!-- doxytag: member="geompy::GetFaceNearPoint" ref="12a77345f9e987f83ffd294cd7efcb0b" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetFaceNearPoint           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint</em>&nbsp;</td><td>Point, close to the desired face. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found face.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="ccf6906ed06251948bb9ab80a394a04e"></a><!-- doxytag: member="geompy::GetFaceByNormale" ref="ccf6906ed06251948bb9ab80a394a04e" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetFaceByNormale           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theBlock</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theVector</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Block or a compound of blocks. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theVector</em>&nbsp;</td><td>Vector, close to the normale of the desired face. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found face.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="9b3b633e1484b00d74d4115aecba634c"></a><!-- doxytag: member="geompy::CheckCompoundOfBlocks" ref="9b3b633e1484b00d74d4115aecba634c" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::CheckCompoundOfBlocks           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theCompound</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-To be considered as a compound of blocks, the given shape must satisfy the following conditions:<ul>
-<li>Each element of the compound should be a Block (6 faces and 12 edges).</li><li>A connection between two Blocks should be an entire quadrangle face or an entire edge.</li><li>The compound should be connexe.</li><li>The glue between two quadrangle faces should be applied. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>The compound to check. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>TRUE, if the given shape is a compound of blocks. If theCompound is not valid, prints all discovered errors.</dd></dl>
-Example: see GEOM_Spanner.py </li></ul>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="4c8f85c9a412a5460e48313ee9dc428b"></a><!-- doxytag: member="geompy::RemoveExtraEdges" ref="4c8f85c9a412a5460e48313ee9dc428b" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::RemoveExtraEdges           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Unite faces and edges, sharing one surface. It means that this faces must have references to one C++ surface object (handle). <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>The compound or single solid to remove irregular edges from. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>Improved shape.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="f690cd52d196cb4eca5a57aebcd4827b"></a><!-- doxytag: member="geompy::CheckAndImprove" ref="f690cd52d196cb4eca5a57aebcd4827b" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::CheckAndImprove           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Fix all detected errors. <dl compact><dt><b>Note:</b></dt><dd>Single block can be also fixed by this method. </dd></dl>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>The compound to check and improve. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>Improved compound.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="261f5525946b6b9abd3033d058f2c077"></a><!-- doxytag: member="geompy::MakeBlockExplode" ref="261f5525946b6b9abd3033d058f2c077" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeBlockExplode           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theCompound</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theMinNbFaces</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theMaxNbFaces</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>The compound to explode. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theMinNbFaces</em>&nbsp;</td><td>If solid has lower number of faces, it is not a block. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theMaxNbFaces</em>&nbsp;</td><td>If solid has higher number of faces, it is not a block. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Note:</b></dt><dd>If theMaxNbFaces = 0, the maximum number of faces is not restricted. </dd></dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of GEOM_Objects, containing the retrieved blocks.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="850464c8254224a9fca8df8121378442"></a><!-- doxytag: member="geompy::GetBlockNearPoint" ref="850464c8254224a9fca8df8121378442" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetBlockNearPoint           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theCompound</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>thePoint</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>Compound, to find block in. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>thePoint</em>&nbsp;</td><td>Point, close to the desired block. If the point lays on boundary between some blocks, we return block with nearest center. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found block.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="3b644c68c91ba34eb232add9c16ad26d"></a><!-- doxytag: member="geompy::GetBlockByParts" ref="3b644c68c91ba34eb232add9c16ad26d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetBlockByParts           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theCompound</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theParts</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>Compound, to find block in. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theParts</em>&nbsp;</td><td>List of faces and/or edges and/or vertices to be parts of the found block. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the found block.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="87b5b6632b97d3da1d447e02d4b169a9"></a><!-- doxytag: member="geompy::GetBlocksByParts" ref="87b5b6632b97d3da1d447e02d4b169a9" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetBlocksByParts           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theCompound</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theParts</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theCompound</em>&nbsp;</td><td>Compound, to find blocks in. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theParts</em>&nbsp;</td><td>List of faces and/or edges and/or vertices to be parts of the found blocks. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of GEOM_Objects, containing the found blocks.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="f01d36e0b2eb11c0e5abc141691d2eee"></a><!-- doxytag: member="geompy::MakeMultiTransformation1D" ref="f01d36e0b2eb11c0e5abc141691d2eee" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMultiTransformation1D           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>Block</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>DirFace1</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>DirFace2</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>NbTimes</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Transformation is defined so, as to superpose direction faces. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>Block</em>&nbsp;</td><td>Hexahedral solid to be multi-transformed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>DirFace1</em>&nbsp;</td><td>ID of First direction face. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>DirFace2</em>&nbsp;</td><td>ID of Second direction face. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NbTimes</em>&nbsp;</td><td>Quantity of transformations to be done. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Note:</b></dt><dd>Unique ID of sub-shape can be obtained, using method <a class="el" href="namespacegeompy.html#d7ee9f96e4b5b4303c7d20f0fc42d67d">GetSubShapeID()</a>. </dd></dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="4592c6223d08418649f48113913103fb"></a><!-- doxytag: member="geompy::MakeMultiTransformation2D" ref="4592c6223d08418649f48113913103fb" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::MakeMultiTransformation2D           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>Block</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>DirFace1U</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>DirFace2U</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>NbTimesU</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>DirFace1V</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>DirFace2V</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>NbTimesV</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>Block</em>&nbsp;</td><td>Hexahedral solid to be multi-transformed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>DirFace1U,DirFace2U</em>&nbsp;</td><td>IDs of Direction faces for the first transformation. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>DirFace1V,DirFace2V</em>&nbsp;</td><td>IDs of Direction faces for the second transformation. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>NbTimesU,NbTimesV</em>&nbsp;</td><td>Quantity of transformations to be done. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>New GEOM_Object, containing the result shape.</dd></dl>
-Example: see GEOM_Spanner.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="066548557397df1e539909427054d601"></a><!-- doxytag: member="geompy::Propagate" ref="066548557397df1e539909427054d601" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::Propagate           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theShape</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-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. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theShape</em>&nbsp;</td><td>Shape to build propagation groups on. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>List of GEOM_Objects, each of them is a propagation group.</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="d34dca22784f06782d577a35ebb767a6"></a><!-- doxytag: member="geompy::CreateGroup" ref="d34dca22784f06782d577a35ebb767a6" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::CreateGroup           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theMainShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShapeType</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theMainShape</em>&nbsp;</td><td>is a GEOM object on which the group is selected </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theShapeType</em>&nbsp;</td><td>defines a shape type of the group </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>a newly created GEOM group</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="a2dbd1e5c34e091747e208cd6b63eba1"></a><!-- doxytag: member="geompy::AddObject" ref="a2dbd1e5c34e091747e208cd6b63eba1" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::AddObject           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theGroup</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theSubShapeID</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group to which the new sub shape is added </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theSubShapeID</em>&nbsp;</td><td>is a sub shape ID in the main object. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Note:</b></dt><dd>Use method <a class="el" href="namespacegeompy.html#d7ee9f96e4b5b4303c7d20f0fc42d67d">GetSubShapeID()</a> to get an unique ID of the sub shape</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="1153343bde9e7e07a9571123d1440d3b"></a><!-- doxytag: member="geompy::RemoveObject" ref="1153343bde9e7e07a9571123d1440d3b" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::RemoveObject           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theGroup</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theSubShapeID</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group from which the new sub shape is removed </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theSubShapeID</em>&nbsp;</td><td>is a sub shape ID in the main object. </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Note:</b></dt><dd>Use method <a class="el" href="namespacegeompy.html#d7ee9f96e4b5b4303c7d20f0fc42d67d">GetSubShapeID()</a> to get an unique ID of the sub shape</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="00450556247ac647a69506a1776a125d"></a><!-- doxytag: member="geompy::UnionList" ref="00450556247ac647a69506a1776a125d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::UnionList           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theGroup</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theSubShapes</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-No errors, if some shapes are alredy included. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group to which the new sub shapes are added. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theSubShapes</em>&nbsp;</td><td>is a list of sub shapes to be added.</td></tr>
-  </table>
-</dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="5e1f46dae5dc0b01e997278cf186d73d"></a><!-- doxytag: member="geompy::UnionIDs" ref="5e1f46dae5dc0b01e997278cf186d73d" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::UnionIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theGroup</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theSubShapes</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="5514b5a8b24702828eed0f6b39fe8f9a"></a><!-- doxytag: member="geompy::DifferenceList" ref="5514b5a8b24702828eed0f6b39fe8f9a" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::DifferenceList           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theGroup</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theSubShapes</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-No errors, if some shapes are not included. <dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group from which the sub-shapes are removed. </td></tr>
-    <tr><td valign="top"></td><td valign="top"><em>theSubShapes</em>&nbsp;</td><td>is a list of sub-shapes to be removed.</td></tr>
-  </table>
-</dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="78ccd39b2263ea213805869fbe4c3bc3"></a><!-- doxytag: member="geompy::DifferenceIDs" ref="78ccd39b2263ea213805869fbe4c3bc3" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::DifferenceIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theGroup</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>theSubShapes</em></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c076d5e58ceb4d210f7a43e1acea8ca5"></a><!-- doxytag: member="geompy::GetObjectIDs" ref="c076d5e58ceb4d210f7a43e1acea8ca5" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetObjectIDs           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theGroup</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group for which a list of IDs is requested</td></tr>
-  </table>
-</dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="05095c0349fe3889ab06235f265c1ea9"></a><!-- doxytag: member="geompy::GetType" ref="05095c0349fe3889ab06235f265c1ea9" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetType           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theGroup</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group which type is returned.</td></tr>
-  </table>
-</dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="4c9609d803e34c25427e59e4ab2ddb42"></a><!-- doxytag: member="geompy::GetMainShape" ref="4c9609d803e34c25427e59e4ab2ddb42" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetMainShape           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>theGroup</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
-  <table border="0" cellspacing="2" cellpadding="0">
-    <tr><td valign="top"></td><td valign="top"><em>theGroup</em>&nbsp;</td><td>is a GEOM group for which a main shape object is requested </td></tr>
-  </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>a GEOM object which is a main shape for theGroup</dd></dl>
-Example: see GEOM_TestOthers.py     </td>
-  </tr>
-</table>
-<a class="anchor" name="c6b2d69f3d03206b73ce0c0bbfb56eae"></a><!-- doxytag: member="geompy::GetEdgesByLength" ref="c6b2d69f3d03206b73ce0c0bbfb56eae" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::GetEdgesByLength           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>theShape</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>min_length</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>max_length</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>include_min</em> = <code>1</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>include_max</em> = <code>1</code></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="ae1cbdb4fcaa8ac1a7c826580b99fc5f"></a><!-- doxytag: member="geompy::SelectEdges" ref="ae1cbdb4fcaa8ac1a7c826580b99fc5f" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::SelectEdges           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname" nowrap> <em>min_length</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>max_length</em>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>include_min</em> = <code>1</code>, </td>
-        </tr>
-        <tr>
-          <td class="md" nowrap align="right"></td>
-          <td class="md"></td>
-          <td class="md" nowrap>&nbsp;</td>
-          <td class="mdname" nowrap> <em>include_max</em> = <code>1</code></td>
-        </tr>
-        <tr>
-          <td class="md"></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9c05eb3e0ffbdd757e288d3204422dc5"></a><!-- doxytag: member="geompy::addPath" ref="9c05eb3e0ffbdd757e288d3204422dc5" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">def geompy::addPath           </td>
-          <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap> <em>Path</em>          </td>
-          <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap></td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<hr><h2>Variable Documentation</h2>
-<a class="anchor" name="8b6a0245f3cf8c1ef6de94487433fc0c"></a><!-- doxytag: member="geompy::g" ref="8b6a0245f3cf8c1ef6de94487433fc0c" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">tuple <a class="el" href="namespacegeompy.html#8b6a0245f3cf8c1ef6de94487433fc0c">geompy.g</a> = lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, &quot;GEOM&quot;)<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="96bc383a8e96df6d938b485e9e1b5e11"></a><!-- doxytag: member="geompy::geom" ref="96bc383a8e96df6d938b485e9e1b5e11" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">tuple <a class="el" href="namespacegeompy.html#96bc383a8e96df6d938b485e9e1b5e11">geompy.geom</a> = g._narrow( GEOM.GEOM_Gen )<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="f01ae5049e69c6da96bdc94d5b1c6d38"></a><!-- doxytag: member="geompy::myBuilder" ref="f01ae5049e69c6da96bdc94d5b1c6d38" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#f01ae5049e69c6da96bdc94d5b1c6d38">geompy.myBuilder</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9857c81d89e1dd436e4da52b0884ef94"></a><!-- doxytag: member="geompy::myStudyId" ref="9857c81d89e1dd436e4da52b0884ef94" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">int <a class="el" href="namespacegeompy.html#9857c81d89e1dd436e4da52b0884ef94">geompy.myStudyId</a> = 0<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="0f6146a8fb62ad5221da4dc2e8a7a8f7"></a><!-- doxytag: member="geompy::father" ref="0f6146a8fb62ad5221da4dc2e8a7a8f7" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#0f6146a8fb62ad5221da4dc2e8a7a8f7">geompy.father</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="58b9182cc4b7d927dda2cd6a2f2e677b"></a><!-- doxytag: member="geompy::BasicOp" ref="58b9182cc4b7d927dda2cd6a2f2e677b" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#58b9182cc4b7d927dda2cd6a2f2e677b">geompy.BasicOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="c319490ec26550ef4fd0b787f183a323"></a><!-- doxytag: member="geompy::CurvesOp" ref="c319490ec26550ef4fd0b787f183a323" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#c319490ec26550ef4fd0b787f183a323">geompy.CurvesOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="7dd8908de955a347609b4f9cbca99686"></a><!-- doxytag: member="geompy::PrimOp" ref="7dd8908de955a347609b4f9cbca99686" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#7dd8908de955a347609b4f9cbca99686">geompy.PrimOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="39a05853eb7e4dc664d7acaa5536e610"></a><!-- doxytag: member="geompy::ShapesOp" ref="39a05853eb7e4dc664d7acaa5536e610" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#39a05853eb7e4dc664d7acaa5536e610">geompy.ShapesOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9b6b150d33cb71f2ab6380f143cc37b6"></a><!-- doxytag: member="geompy::HealOp" ref="9b6b150d33cb71f2ab6380f143cc37b6" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#9b6b150d33cb71f2ab6380f143cc37b6">geompy.HealOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="1293220280565f0b9256d382d2ea882a"></a><!-- doxytag: member="geompy::InsertOp" ref="1293220280565f0b9256d382d2ea882a" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#1293220280565f0b9256d382d2ea882a">geompy.InsertOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="51777a574318dcf4c9025d03b0cfb1a1"></a><!-- doxytag: member="geompy::BoolOp" ref="51777a574318dcf4c9025d03b0cfb1a1" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#51777a574318dcf4c9025d03b0cfb1a1">geompy.BoolOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="921e4ec0a8e80b1c61bd8b156ba8cfb7"></a><!-- doxytag: member="geompy::TrsfOp" ref="921e4ec0a8e80b1c61bd8b156ba8cfb7" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#921e4ec0a8e80b1c61bd8b156ba8cfb7">geompy.TrsfOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="37bbe3bd9771d58b547723e6436bed81"></a><!-- doxytag: member="geompy::LocalOp" ref="37bbe3bd9771d58b547723e6436bed81" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#37bbe3bd9771d58b547723e6436bed81">geompy.LocalOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="eb30abfc8b306d15adc2f50c48064054"></a><!-- doxytag: member="geompy::MeasuOp" ref="eb30abfc8b306d15adc2f50c48064054" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#eb30abfc8b306d15adc2f50c48064054">geompy.MeasuOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="4e06888ee75ecc7a54f0c8bad501a0c2"></a><!-- doxytag: member="geompy::BlocksOp" ref="4e06888ee75ecc7a54f0c8bad501a0c2" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#4e06888ee75ecc7a54f0c8bad501a0c2">geompy.BlocksOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="c809d5d73246f177ee010c4fe497d342"></a><!-- doxytag: member="geompy::GroupOp" ref="c809d5d73246f177ee010c4fe497d342" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#c809d5d73246f177ee010c4fe497d342">geompy.GroupOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="269cf26d7d10b8f6b4a20789ed8233a0"></a><!-- doxytag: member="geompy::ShapeType" ref="269cf26d7d10b8f6b4a20789ed8233a0" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">dictionary <a class="el" href="namespacegeompy.html#269cf26d7d10b8f6b4a20789ed8233a0">geompy.ShapeType</a> = {&quot;COMPOUND&quot;:0, &quot;COMPSOLID&quot;:1, &quot;SOLID&quot;:2, &quot;SHELL&quot;:3, &quot;FACE&quot;:4, &quot;WIRE&quot;:5, &quot;EDGE&quot;:6, &quot;VERTEX&quot;:7, &quot;SHAPE&quot;:8}<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="8b6a0245f3cf8c1ef6de94487433fc0c"></a><!-- doxytag: member="geompy::g" ref="8b6a0245f3cf8c1ef6de94487433fc0c" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">tuple <a class="el" href="namespacegeompy.html#8b6a0245f3cf8c1ef6de94487433fc0c">geompy.g</a> = lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, &quot;GEOM&quot;)<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="96bc383a8e96df6d938b485e9e1b5e11"></a><!-- doxytag: member="geompy::geom" ref="96bc383a8e96df6d938b485e9e1b5e11" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">tuple <a class="el" href="namespacegeompy.html#96bc383a8e96df6d938b485e9e1b5e11">geompy.geom</a> = g._narrow( GEOM.GEOM_Gen )<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="f01ae5049e69c6da96bdc94d5b1c6d38"></a><!-- doxytag: member="geompy::myBuilder" ref="f01ae5049e69c6da96bdc94d5b1c6d38" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#f01ae5049e69c6da96bdc94d5b1c6d38">geompy.myBuilder</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9857c81d89e1dd436e4da52b0884ef94"></a><!-- doxytag: member="geompy::myStudyId" ref="9857c81d89e1dd436e4da52b0884ef94" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">int <a class="el" href="namespacegeompy.html#9857c81d89e1dd436e4da52b0884ef94">geompy.myStudyId</a> = 0<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="0f6146a8fb62ad5221da4dc2e8a7a8f7"></a><!-- doxytag: member="geompy::father" ref="0f6146a8fb62ad5221da4dc2e8a7a8f7" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#0f6146a8fb62ad5221da4dc2e8a7a8f7">geompy.father</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="58b9182cc4b7d927dda2cd6a2f2e677b"></a><!-- doxytag: member="geompy::BasicOp" ref="58b9182cc4b7d927dda2cd6a2f2e677b" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#58b9182cc4b7d927dda2cd6a2f2e677b">geompy.BasicOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="c319490ec26550ef4fd0b787f183a323"></a><!-- doxytag: member="geompy::CurvesOp" ref="c319490ec26550ef4fd0b787f183a323" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#c319490ec26550ef4fd0b787f183a323">geompy.CurvesOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="7dd8908de955a347609b4f9cbca99686"></a><!-- doxytag: member="geompy::PrimOp" ref="7dd8908de955a347609b4f9cbca99686" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#7dd8908de955a347609b4f9cbca99686">geompy.PrimOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="39a05853eb7e4dc664d7acaa5536e610"></a><!-- doxytag: member="geompy::ShapesOp" ref="39a05853eb7e4dc664d7acaa5536e610" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#39a05853eb7e4dc664d7acaa5536e610">geompy.ShapesOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="9b6b150d33cb71f2ab6380f143cc37b6"></a><!-- doxytag: member="geompy::HealOp" ref="9b6b150d33cb71f2ab6380f143cc37b6" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#9b6b150d33cb71f2ab6380f143cc37b6">geompy.HealOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="1293220280565f0b9256d382d2ea882a"></a><!-- doxytag: member="geompy::InsertOp" ref="1293220280565f0b9256d382d2ea882a" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#1293220280565f0b9256d382d2ea882a">geompy.InsertOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="51777a574318dcf4c9025d03b0cfb1a1"></a><!-- doxytag: member="geompy::BoolOp" ref="51777a574318dcf4c9025d03b0cfb1a1" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#51777a574318dcf4c9025d03b0cfb1a1">geompy.BoolOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="921e4ec0a8e80b1c61bd8b156ba8cfb7"></a><!-- doxytag: member="geompy::TrsfOp" ref="921e4ec0a8e80b1c61bd8b156ba8cfb7" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#921e4ec0a8e80b1c61bd8b156ba8cfb7">geompy.TrsfOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="37bbe3bd9771d58b547723e6436bed81"></a><!-- doxytag: member="geompy::LocalOp" ref="37bbe3bd9771d58b547723e6436bed81" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#37bbe3bd9771d58b547723e6436bed81">geompy.LocalOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="eb30abfc8b306d15adc2f50c48064054"></a><!-- doxytag: member="geompy::MeasuOp" ref="eb30abfc8b306d15adc2f50c48064054" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#eb30abfc8b306d15adc2f50c48064054">geompy.MeasuOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="4e06888ee75ecc7a54f0c8bad501a0c2"></a><!-- doxytag: member="geompy::BlocksOp" ref="4e06888ee75ecc7a54f0c8bad501a0c2" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#4e06888ee75ecc7a54f0c8bad501a0c2">geompy.BlocksOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="c809d5d73246f177ee010c4fe497d342"></a><!-- doxytag: member="geompy::GroupOp" ref="c809d5d73246f177ee010c4fe497d342" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top"><a class="el" href="namespacegeompy.html#c809d5d73246f177ee010c4fe497d342">geompy.GroupOp</a> = None<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
-<a class="anchor" name="269cf26d7d10b8f6b4a20789ed8233a0"></a><!-- doxytag: member="geompy::ShapeType" ref="269cf26d7d10b8f6b4a20789ed8233a0" args="" --><p>
-<table class="mdTable" cellpadding="2" cellspacing="0">
-  <tr>
-    <td class="mdRow">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td class="md" nowrap valign="top">dictionary <a class="el" href="namespacegeompy.html#269cf26d7d10b8f6b4a20789ed8233a0">geompy.ShapeType</a> = {&quot;COMPOUND&quot;:0, &quot;COMPSOLID&quot;:1, &quot;SOLID&quot;:2, &quot;SHELL&quot;:3, &quot;FACE&quot;:4, &quot;WIRE&quot;:5, &quot;EDGE&quot;:6, &quot;VERTEX&quot;:7, &quot;SHAPE&quot;:8}<code> [static]</code>          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing="5" cellpadding="0" border="0">
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-    </td>
-  </tr>
-</table>
+</div>
+</div><p>
 </DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 12:28:15 2007 for SALOME - GEOM - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
 </BODY>
 </HTML>
diff --git a/doc/salome/gui/GEOM/geompy_doc/namespacegeompyDC.html b/doc/salome/gui/GEOM/geompy_doc/namespacegeompyDC.html
new file mode 100644 (file)
index 0000000..313f21f
--- /dev/null
@@ -0,0 +1,65 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
+   <title>Main Page</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+&nbsp;
+</body>
+</html>
+<!-- Generated by Doxygen 1.4.7 -->
+<h1>Package geompyDC</h1>
+<p>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1info.html">info</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeompyDC_1_1geompyDC.html">geompyDC</a></td></tr>
+
+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">dictionary&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompyDC.html#d85aa7c933dca679752d28c67018a43c">ShapeType</a> = {&quot;COMPOUND&quot;:0, &quot;COMPSOLID&quot;:1, &quot;SOLID&quot;:2, &quot;SHELL&quot;:3, &quot;FACE&quot;:4, &quot;WIRE&quot;:5, &quot;EDGE&quot;:6, &quot;VERTEX&quot;:7, &quot;SHAPE&quot;:8}</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacegeompyDC.html#55ea9fd7f9b97796036ae6996f4c0a83">kind</a> = GEOM.GEOM_IKindOfShape</td></tr>
+
+</table>
+<hr><h2>Variable Documentation</h2>
+<a class="anchor" name="d85aa7c933dca679752d28c67018a43c"></a><!-- doxytag: member="geompyDC::ShapeType" ref="d85aa7c933dca679752d28c67018a43c" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">dictionary <a class="el" href="namespacegeompyDC.html#d85aa7c933dca679752d28c67018a43c">geompyDC.ShapeType</a> = {&quot;COMPOUND&quot;:0, &quot;COMPSOLID&quot;:1, &quot;SOLID&quot;:2, &quot;SHELL&quot;:3, &quot;FACE&quot;:4, &quot;WIRE&quot;:5, &quot;EDGE&quot;:6, &quot;VERTEX&quot;:7, &quot;SHAPE&quot;:8}<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+<a class="anchor" name="55ea9fd7f9b97796036ae6996f4c0a83"></a><!-- doxytag: member="geompyDC::kind" ref="55ea9fd7f9b97796036ae6996f4c0a83" args="" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="namespacegeompyDC.html#55ea9fd7f9b97796036ae6996f4c0a83">geompyDC.kind</a> = GEOM.GEOM_IKindOfShape<code> [static]</code>          </td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+
+</div>
+</div><p>
+</DIV>
+<DIV class="div-footer">
+Generated on Thu Jun 21 12:28:15 2007 for SALOME - GEOM - v.4.0.0 by&nbsp;<A href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></A> 1.4.7</DIV>
+</BODY>
+</HTML>
diff --git a/doc/salome/gui/GEOM/glue_faces.htm b/doc/salome/gui/GEOM/glue_faces.htm
deleted file mode 100755 (executable)
index 9cdc1db..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Glue Faces</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:25px; height:24px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; text-indent:-68px; margin-left:72px; font-weight:normal; }
-p.whs4 { font-size:12pt; text-indent:-68px; margin-left:72px; }
-p.whs5 { font-size:12pt; text-indent:-68px; margin-left:112px; }
-img_whs6 { border:none; width:312px; height:315px; float:none; border-style:none; }
-p.whs7 { font-size:12pt; margin-left:112px; text-indent:-112px; }
-p.whs8 { font-size:12pt; text-indent:-112px; margin-left:152px; }
-img_whs9 { border:none; float:none; width:292px; height:239px; border-style:none; }
-img_whs10 { border:none; float:none; width:275px; height:239px; border-style:none; }
-p.whs11 { font-size:12pt; text-indent:-40px; margin-left:80px; }
-p.whs12 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs3 {text-indent:1pt; }";
-  strNSS += "p.whs4 {text-indent:1pt; }";
-  strNSS += "p.whs5 {text-indent:1pt; }";
-  strNSS += "p.whs7 {text-indent:1pt; }";
-  strNSS += "p.whs8 {text-indent:1pt; }";
-  strNSS += "p.whs11 {text-indent:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nGlue Faces");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="image61.gif" width="25px" height="24px" border="0" class="img_whs1"> </font></span>Glue Faces</h1>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: normal;">T</b>o 
- Glue Faces in the Main Menu select Repair - &gt; Glue Faces.</font></span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><b style="font-weight: normal;">This operation 
- g</b>lues faces that are coincident with respect to the given tolerance 
- value.</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs2"><b><span style="font-weight: normal;">T</span></b><b><span 
- style="font-weight: normal;">he</span> Result <span style="font-weight: normal;">will 
- be a</span></b><b> <span style="font-weight: bold;"><B>GEOM_Object. </B></span></b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><b>TUI Command : </b><span style="font-style: italic;"><I>geompy.MakeGlueFaces(theShape, 
- theTolerance)</I></span>, where theShape is a compound of shapes to be glued, 
- theTolerance is a maximum distance between two faces, which can be considered 
- as coincident.</p>
-
-<p class="whs4"><b style="font-weight: bold;">Arguments: 
- <span style="font-weight: normal;">Name +</span> </b>1 <i><span style="font-style: normal;">Compound 
- + Tolerance value</span></i></p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs5"><img src="pics/repair7.png" x-maintain-ratio="TRUE" width="312px" height="315px" border="0" class="img_whs6"></p>
-
-<p class="whs7">&nbsp;</p>
-
-<p class="whs7"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs7">&nbsp;</p>
-
-<p class="whs8"><img src="pics/glue_faces1.png" x-maintain-ratio="TRUE" width="292px" height="239px" border="0" class="img_whs9"> &nbsp;&nbsp;<img src="pics/glue_faces2.png" x-maintain-ratio="TRUE" width="275px" height="239px" border="0" class="img_whs10"></p>
-
-<p class="whs11">&nbsp;</p>
-
-<p class="whs11">&nbsp;</p>
-
-<p class="whs12"><span style="font-weight: normal;">Our</span> 
- TUI Scripts <span style="font-weight: normal;">provide you with useful 
- examples of the use of</span> <a href="repairing_operations.htm#bookmark6">Repairing 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/groups.htm b/doc/salome/gui/GEOM/groups.htm
deleted file mode 100755 (executable)
index 6cabf41..0000000
+++ /dev/null
@@ -1,327 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Groups</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nCreating Geometric Objects\nWorking with Groups");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Groups</h1>
-
-<h3>Creation of a group</h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create two vertices</p>
-
-<p class="whs1">p0 = geompy.MakeVertex(0. 
- &nbsp;, 0. &nbsp;, 
- 0. &nbsp;)</p>
-
-<p class="whs1">p200 = geompy.MakeVertex(200., 
- 200., 200.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a box from two points</p>
-
-<p class="whs1">Box = geompy.MakeBoxTwoPnt(p0, 
- p200)</p>
-
-<p>&nbsp;</p>
-
-<p># create a group from the faces of the box</p>
-
-<p class="whs1">group = geompy.CreateGroup(Box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p>&nbsp;</p>
-
-<p># add objects to the group</p>
-
-<p class="whs1">SubFaceList = geompy.SubShapeAllSorted(Box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">for i in [0, 3, 5] 
- :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;FaceID 
- = geompy.GetSubShapeID(Box, SubFaceList[i])</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.AddObject(group, 
- FaceID)</p>
-
-<p>&nbsp;</p>
-
-<p># add all selected shapes from the list to the group </p>
-
-<p># (the program doesn't raise error, if some shapes are already included)</p>
-
-<p class="whs1">geompy.UnionList(group, 
- [SubFaceList[0], SubFaceList[2], SubFaceList[5]])</p>
-
-<p>&nbsp;</p>
-
-<p># remove an object from the group</p>
-
-<p class="whs1">geompy.RemoveObject(group, 
- FaceID)</p>
-
-<p>&nbsp;</p>
-
-<p># remove all selected shapes from the group </p>
-
-<p># (the program doesn't raise error, if some shapes are not included)</p>
-
-<p class="whs1">geompy.DifferenceList(group, 
- [SubFaceList[2], SubFaceList[3], SubFaceList[4]])</p>
-
-<p class="whs1">id_group1 = geompy.addToStudy(group, 
- &quot;Group1&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the contents of the group</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_group1)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<h3>Adding an object to the group.</h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create two vertices</p>
-
-<p class="whs1">p0 = geompy.MakeVertex(0. 
- &nbsp;, 0. &nbsp;, 
- 0. &nbsp;)</p>
-
-<p class="whs1">p200 = geompy.MakeVertex(200., 
- 200., 200.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a box from two points</p>
-
-<p class="whs1">Box = geompy.MakeBoxTwoPnt(p0, 
- p200)</p>
-
-<p>&nbsp;</p>
-
-<p># create a group from the faces of the box</p>
-
-<p class="whs1">group = geompy.CreateGroup(Box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p>&nbsp;</p>
-
-<p># add objects to the group</p>
-
-<p class="whs1">SubFaceList = geompy.SubShapeAllSorted(Box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">for i in [0, 3, 5] 
- :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;FaceID 
- = geompy.GetSubShapeID(Box, SubFaceList[i])</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.AddObject(group, 
- FaceID)</p>
-
-<p class="whs1">id_group1 = geompy.addToStudy(group, 
- &quot;Group1&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the contents of the group</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_group1)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3>Removing an object from the group</h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create two vertices</p>
-
-<p class="whs1">p0 = geompy.MakeVertex(0. 
- &nbsp;, 0. &nbsp;, 
- 0. &nbsp;)</p>
-
-<p class="whs1">p200 = geompy.MakeVertex(200., 
- 200., 200.)</p>
-
-<p>&nbsp;</p>
-
-<p># create a box from two points</p>
-
-<p class="whs1">Box = geompy.MakeBoxTwoPnt(p0, 
- p200)</p>
-
-<p>&nbsp;</p>
-
-<p># create a group from the faces of the box</p>
-
-<p class="whs1">group = geompy.CreateGroup(Box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p>&nbsp;</p>
-
-<p># add objects to the group</p>
-
-<p class="whs1">SubFaceList = geompy.SubShapeAllSorted(Box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">for i in [0, 3, 5] 
- :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;FaceID 
- = geompy.GetSubShapeID(Box, SubFaceList[i])</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.AddObject(group, 
- FaceID)</p>
-
-<p>&nbsp;</p>
-
-<p># add all selected shapes from the list to the group </p>
-
-<p># (the program doesn't raise errors, if some shapes are already included)</p>
-
-<p class="whs1">geompy.UnionList(group, 
- [SubFaceList[0], SubFaceList[2], SubFaceList[5]])</p>
-
-<p>&nbsp;</p>
-
-<p># remove an object from the group</p>
-
-<p class="whs1">geompy.RemoveObject(group, 
- FaceID)</p>
-
-<p class="whs1">id_group1 = geompy.addToStudy(group, 
- &quot;Group1&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the contents of the group</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_group1)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/i_blue.jpg b/doc/salome/gui/GEOM/i_blue.jpg
deleted file mode 100755 (executable)
index ed3acfa..0000000
Binary files a/doc/salome/gui/GEOM/i_blue.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image1.gif b/doc/salome/gui/GEOM/image1.gif
deleted file mode 100755 (executable)
index 2f2fe9a..0000000
Binary files a/doc/salome/gui/GEOM/image1.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image1.jpg b/doc/salome/gui/GEOM/image1.jpg
deleted file mode 100755 (executable)
index 8e5d78b..0000000
Binary files a/doc/salome/gui/GEOM/image1.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image10.gif b/doc/salome/gui/GEOM/image10.gif
deleted file mode 100755 (executable)
index 01327b7..0000000
Binary files a/doc/salome/gui/GEOM/image10.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image109.jpg b/doc/salome/gui/GEOM/image109.jpg
deleted file mode 100755 (executable)
index de4e1e1..0000000
Binary files a/doc/salome/gui/GEOM/image109.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image110.jpg b/doc/salome/gui/GEOM/image110.jpg
deleted file mode 100755 (executable)
index 45f72b5..0000000
Binary files a/doc/salome/gui/GEOM/image110.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image112.jpg b/doc/salome/gui/GEOM/image112.jpg
deleted file mode 100755 (executable)
index 33399b3..0000000
Binary files a/doc/salome/gui/GEOM/image112.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image113.jpg b/doc/salome/gui/GEOM/image113.jpg
deleted file mode 100755 (executable)
index fa01cfb..0000000
Binary files a/doc/salome/gui/GEOM/image113.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image145.jpg b/doc/salome/gui/GEOM/image145.jpg
deleted file mode 100755 (executable)
index a035c8d..0000000
Binary files a/doc/salome/gui/GEOM/image145.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image15.jpg b/doc/salome/gui/GEOM/image15.jpg
deleted file mode 100755 (executable)
index 50a9c9e..0000000
Binary files a/doc/salome/gui/GEOM/image15.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image154.jpg b/doc/salome/gui/GEOM/image154.jpg
deleted file mode 100755 (executable)
index 5129007..0000000
Binary files a/doc/salome/gui/GEOM/image154.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image156.jpg b/doc/salome/gui/GEOM/image156.jpg
deleted file mode 100755 (executable)
index f2d7185..0000000
Binary files a/doc/salome/gui/GEOM/image156.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image16.jpg b/doc/salome/gui/GEOM/image16.jpg
deleted file mode 100755 (executable)
index 42f79d3..0000000
Binary files a/doc/salome/gui/GEOM/image16.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image160.jpg b/doc/salome/gui/GEOM/image160.jpg
deleted file mode 100755 (executable)
index a88429f..0000000
Binary files a/doc/salome/gui/GEOM/image160.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image167.jpg b/doc/salome/gui/GEOM/image167.jpg
deleted file mode 100755 (executable)
index 775496f..0000000
Binary files a/doc/salome/gui/GEOM/image167.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image168.jpg b/doc/salome/gui/GEOM/image168.jpg
deleted file mode 100755 (executable)
index f69d2b8..0000000
Binary files a/doc/salome/gui/GEOM/image168.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image18.gif b/doc/salome/gui/GEOM/image18.gif
deleted file mode 100755 (executable)
index 511bd44..0000000
Binary files a/doc/salome/gui/GEOM/image18.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image180.jpg b/doc/salome/gui/GEOM/image180.jpg
deleted file mode 100755 (executable)
index 1c57ef0..0000000
Binary files a/doc/salome/gui/GEOM/image180.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image181.jpg b/doc/salome/gui/GEOM/image181.jpg
deleted file mode 100755 (executable)
index d0171df..0000000
Binary files a/doc/salome/gui/GEOM/image181.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image185.jpg b/doc/salome/gui/GEOM/image185.jpg
deleted file mode 100755 (executable)
index 7fb6ef6..0000000
Binary files a/doc/salome/gui/GEOM/image185.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image193.jpg b/doc/salome/gui/GEOM/image193.jpg
deleted file mode 100755 (executable)
index dc184f5..0000000
Binary files a/doc/salome/gui/GEOM/image193.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image2.gif b/doc/salome/gui/GEOM/image2.gif
deleted file mode 100755 (executable)
index 8334107..0000000
Binary files a/doc/salome/gui/GEOM/image2.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image2.jpg b/doc/salome/gui/GEOM/image2.jpg
deleted file mode 100755 (executable)
index ddfeaa1..0000000
Binary files a/doc/salome/gui/GEOM/image2.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image204.jpg b/doc/salome/gui/GEOM/image204.jpg
deleted file mode 100755 (executable)
index ce23e6a..0000000
Binary files a/doc/salome/gui/GEOM/image204.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image206.jpg b/doc/salome/gui/GEOM/image206.jpg
deleted file mode 100755 (executable)
index 85e9e80..0000000
Binary files a/doc/salome/gui/GEOM/image206.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image26.gif b/doc/salome/gui/GEOM/image26.gif
deleted file mode 100755 (executable)
index cb7f53a..0000000
Binary files a/doc/salome/gui/GEOM/image26.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image27.gif b/doc/salome/gui/GEOM/image27.gif
deleted file mode 100755 (executable)
index 52d87e2..0000000
Binary files a/doc/salome/gui/GEOM/image27.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image28.gif b/doc/salome/gui/GEOM/image28.gif
deleted file mode 100755 (executable)
index e8ce5a3..0000000
Binary files a/doc/salome/gui/GEOM/image28.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image29.gif b/doc/salome/gui/GEOM/image29.gif
deleted file mode 100755 (executable)
index bb00746..0000000
Binary files a/doc/salome/gui/GEOM/image29.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image3.gif b/doc/salome/gui/GEOM/image3.gif
deleted file mode 100755 (executable)
index a3cdf64..0000000
Binary files a/doc/salome/gui/GEOM/image3.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image3.jpg b/doc/salome/gui/GEOM/image3.jpg
deleted file mode 100755 (executable)
index 4aacee4..0000000
Binary files a/doc/salome/gui/GEOM/image3.jpg and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image30.gif b/doc/salome/gui/GEOM/image30.gif
deleted file mode 100755 (executable)
index a773887..0000000
Binary files a/doc/salome/gui/GEOM/image30.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image32.gif b/doc/salome/gui/GEOM/image32.gif
deleted file mode 100755 (executable)
index bbdf48a..0000000
Binary files a/doc/salome/gui/GEOM/image32.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image33.gif b/doc/salome/gui/GEOM/image33.gif
deleted file mode 100755 (executable)
index 53de533..0000000
Binary files a/doc/salome/gui/GEOM/image33.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image34.gif b/doc/salome/gui/GEOM/image34.gif
deleted file mode 100755 (executable)
index d7f8089..0000000
Binary files a/doc/salome/gui/GEOM/image34.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image35.gif b/doc/salome/gui/GEOM/image35.gif
deleted file mode 100755 (executable)
index 30f430a..0000000
Binary files a/doc/salome/gui/GEOM/image35.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image36.gif b/doc/salome/gui/GEOM/image36.gif
deleted file mode 100755 (executable)
index 8b6955c..0000000
Binary files a/doc/salome/gui/GEOM/image36.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image37.gif b/doc/salome/gui/GEOM/image37.gif
deleted file mode 100755 (executable)
index 8c1a2c5..0000000
Binary files a/doc/salome/gui/GEOM/image37.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image38.gif b/doc/salome/gui/GEOM/image38.gif
deleted file mode 100755 (executable)
index db1f51c..0000000
Binary files a/doc/salome/gui/GEOM/image38.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image4.gif b/doc/salome/gui/GEOM/image4.gif
deleted file mode 100755 (executable)
index 385de8f..0000000
Binary files a/doc/salome/gui/GEOM/image4.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image40.gif b/doc/salome/gui/GEOM/image40.gif
deleted file mode 100755 (executable)
index b24e58c..0000000
Binary files a/doc/salome/gui/GEOM/image40.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image41.gif b/doc/salome/gui/GEOM/image41.gif
deleted file mode 100755 (executable)
index 6e3661f..0000000
Binary files a/doc/salome/gui/GEOM/image41.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image42.gif b/doc/salome/gui/GEOM/image42.gif
deleted file mode 100755 (executable)
index 1e4003c..0000000
Binary files a/doc/salome/gui/GEOM/image42.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image43.gif b/doc/salome/gui/GEOM/image43.gif
deleted file mode 100755 (executable)
index f1b0f9d..0000000
Binary files a/doc/salome/gui/GEOM/image43.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image44.gif b/doc/salome/gui/GEOM/image44.gif
deleted file mode 100755 (executable)
index 5166279..0000000
Binary files a/doc/salome/gui/GEOM/image44.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image47.gif b/doc/salome/gui/GEOM/image47.gif
deleted file mode 100755 (executable)
index 6e6cbea..0000000
Binary files a/doc/salome/gui/GEOM/image47.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image49.gif b/doc/salome/gui/GEOM/image49.gif
deleted file mode 100755 (executable)
index a54a22e..0000000
Binary files a/doc/salome/gui/GEOM/image49.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image5.gif b/doc/salome/gui/GEOM/image5.gif
deleted file mode 100755 (executable)
index 77b19a2..0000000
Binary files a/doc/salome/gui/GEOM/image5.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image51.gif b/doc/salome/gui/GEOM/image51.gif
deleted file mode 100755 (executable)
index d04ebd0..0000000
Binary files a/doc/salome/gui/GEOM/image51.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image52.gif b/doc/salome/gui/GEOM/image52.gif
deleted file mode 100755 (executable)
index 94537e0..0000000
Binary files a/doc/salome/gui/GEOM/image52.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image53.gif b/doc/salome/gui/GEOM/image53.gif
deleted file mode 100755 (executable)
index c976b6d..0000000
Binary files a/doc/salome/gui/GEOM/image53.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image56.gif b/doc/salome/gui/GEOM/image56.gif
deleted file mode 100755 (executable)
index 049e1eb..0000000
Binary files a/doc/salome/gui/GEOM/image56.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image57.gif b/doc/salome/gui/GEOM/image57.gif
deleted file mode 100755 (executable)
index e0f9e31..0000000
Binary files a/doc/salome/gui/GEOM/image57.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image59.gif b/doc/salome/gui/GEOM/image59.gif
deleted file mode 100755 (executable)
index f470df2..0000000
Binary files a/doc/salome/gui/GEOM/image59.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/image61.gif b/doc/salome/gui/GEOM/image61.gif
deleted file mode 100755 (executable)
index 0a7efcd..0000000
Binary files a/doc/salome/gui/GEOM/image61.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/images/angle.png b/doc/salome/gui/GEOM/images/angle.png
new file mode 100755 (executable)
index 0000000..fbe7538
Binary files /dev/null and b/doc/salome/gui/GEOM/images/angle.png differ
diff --git a/doc/salome/gui/GEOM/images/arc.png b/doc/salome/gui/GEOM/images/arc.png
new file mode 100755 (executable)
index 0000000..260a5fb
Binary files /dev/null and b/doc/salome/gui/GEOM/images/arc.png differ
diff --git a/doc/salome/gui/GEOM/images/arc2.png b/doc/salome/gui/GEOM/images/arc2.png
new file mode 100644 (file)
index 0000000..2bced2a
Binary files /dev/null and b/doc/salome/gui/GEOM/images/arc2.png differ
diff --git a/doc/salome/gui/GEOM/images/archimede.png b/doc/salome/gui/GEOM/images/archimede.png
new file mode 100755 (executable)
index 0000000..cd62002
Binary files /dev/null and b/doc/salome/gui/GEOM/images/archimede.png differ
diff --git a/doc/salome/gui/GEOM/images/archimedesn1.png b/doc/salome/gui/GEOM/images/archimedesn1.png
new file mode 100755 (executable)
index 0000000..4020920
Binary files /dev/null and b/doc/salome/gui/GEOM/images/archimedesn1.png differ
diff --git a/doc/salome/gui/GEOM/images/archimedesn2.png b/doc/salome/gui/GEOM/images/archimedesn2.png
new file mode 100755 (executable)
index 0000000..b3b84b1
Binary files /dev/null and b/doc/salome/gui/GEOM/images/archimedesn2.png differ
diff --git a/doc/salome/gui/GEOM/images/archimedesn3.png b/doc/salome/gui/GEOM/images/archimedesn3.png
new file mode 100755 (executable)
index 0000000..da57c0f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/archimedesn3.png differ
diff --git a/doc/salome/gui/GEOM/images/arcsn.png b/doc/salome/gui/GEOM/images/arcsn.png
new file mode 100755 (executable)
index 0000000..4131e41
Binary files /dev/null and b/doc/salome/gui/GEOM/images/arcsn.png differ
diff --git a/doc/salome/gui/GEOM/images/arcsn1.png b/doc/salome/gui/GEOM/images/arcsn1.png
new file mode 100644 (file)
index 0000000..564f12e
Binary files /dev/null and b/doc/salome/gui/GEOM/images/arcsn1.png differ
diff --git a/doc/salome/gui/GEOM/images/arcsn2.png b/doc/salome/gui/GEOM/images/arcsn2.png
new file mode 100644 (file)
index 0000000..f2bec5d
Binary files /dev/null and b/doc/salome/gui/GEOM/images/arcsn2.png differ
diff --git a/doc/salome/gui/GEOM/images/bezier.png b/doc/salome/gui/GEOM/images/bezier.png
new file mode 100755 (executable)
index 0000000..3c0e8df
Binary files /dev/null and b/doc/salome/gui/GEOM/images/bezier.png differ
diff --git a/doc/salome/gui/GEOM/images/block1.png b/doc/salome/gui/GEOM/images/block1.png
new file mode 100755 (executable)
index 0000000..71a93b0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/block1.png differ
diff --git a/doc/salome/gui/GEOM/images/block2.png b/doc/salome/gui/GEOM/images/block2.png
new file mode 100755 (executable)
index 0000000..c66dd7f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/block2.png differ
diff --git a/doc/salome/gui/GEOM/images/block3.png b/doc/salome/gui/GEOM/images/block3.png
new file mode 100755 (executable)
index 0000000..61aad9b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/block3.png differ
diff --git a/doc/salome/gui/GEOM/images/block4.png b/doc/salome/gui/GEOM/images/block4.png
new file mode 100755 (executable)
index 0000000..d0661b6
Binary files /dev/null and b/doc/salome/gui/GEOM/images/block4.png differ
diff --git a/doc/salome/gui/GEOM/images/block5.png b/doc/salome/gui/GEOM/images/block5.png
new file mode 100755 (executable)
index 0000000..9810f6f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/block5.png differ
diff --git a/doc/salome/gui/GEOM/images/block_explodesn.png b/doc/salome/gui/GEOM/images/block_explodesn.png
new file mode 100755 (executable)
index 0000000..372de3f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/block_explodesn.png differ
diff --git a/doc/salome/gui/GEOM/images/bool1.png b/doc/salome/gui/GEOM/images/bool1.png
new file mode 100755 (executable)
index 0000000..3f997a7
Binary files /dev/null and b/doc/salome/gui/GEOM/images/bool1.png differ
diff --git a/doc/salome/gui/GEOM/images/bool2.png b/doc/salome/gui/GEOM/images/bool2.png
new file mode 100755 (executable)
index 0000000..4e9b968
Binary files /dev/null and b/doc/salome/gui/GEOM/images/bool2.png differ
diff --git a/doc/salome/gui/GEOM/images/bool3.png b/doc/salome/gui/GEOM/images/bool3.png
new file mode 100755 (executable)
index 0000000..af409a1
Binary files /dev/null and b/doc/salome/gui/GEOM/images/bool3.png differ
diff --git a/doc/salome/gui/GEOM/images/box1.png b/doc/salome/gui/GEOM/images/box1.png
new file mode 100755 (executable)
index 0000000..812027d
Binary files /dev/null and b/doc/salome/gui/GEOM/images/box1.png differ
diff --git a/doc/salome/gui/GEOM/images/box2.png b/doc/salome/gui/GEOM/images/box2.png
new file mode 100755 (executable)
index 0000000..85a737a
Binary files /dev/null and b/doc/salome/gui/GEOM/images/box2.png differ
diff --git a/doc/salome/gui/GEOM/images/boxes.png b/doc/salome/gui/GEOM/images/boxes.png
new file mode 100755 (executable)
index 0000000..f2fad49
Binary files /dev/null and b/doc/salome/gui/GEOM/images/boxes.png differ
diff --git a/doc/salome/gui/GEOM/images/chamfer1.png b/doc/salome/gui/GEOM/images/chamfer1.png
new file mode 100755 (executable)
index 0000000..fdbe02f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/chamfer1.png differ
diff --git a/doc/salome/gui/GEOM/images/chamfer2.png b/doc/salome/gui/GEOM/images/chamfer2.png
new file mode 100755 (executable)
index 0000000..24d6e12
Binary files /dev/null and b/doc/salome/gui/GEOM/images/chamfer2.png differ
diff --git a/doc/salome/gui/GEOM/images/chamfer3.png b/doc/salome/gui/GEOM/images/chamfer3.png
new file mode 100755 (executable)
index 0000000..801f8db
Binary files /dev/null and b/doc/salome/gui/GEOM/images/chamfer3.png differ
diff --git a/doc/salome/gui/GEOM/images/chamfer4.png b/doc/salome/gui/GEOM/images/chamfer4.png
new file mode 100755 (executable)
index 0000000..14476b4
Binary files /dev/null and b/doc/salome/gui/GEOM/images/chamfer4.png differ
diff --git a/doc/salome/gui/GEOM/images/chamfer_all.png b/doc/salome/gui/GEOM/images/chamfer_all.png
new file mode 100755 (executable)
index 0000000..c398cb0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/chamfer_all.png differ
diff --git a/doc/salome/gui/GEOM/images/chamfer_edge.png b/doc/salome/gui/GEOM/images/chamfer_edge.png
new file mode 100755 (executable)
index 0000000..8ed8fc0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/chamfer_edge.png differ
diff --git a/doc/salome/gui/GEOM/images/chamfer_faces.png b/doc/salome/gui/GEOM/images/chamfer_faces.png
new file mode 100755 (executable)
index 0000000..961cf03
Binary files /dev/null and b/doc/salome/gui/GEOM/images/chamfer_faces.png differ
diff --git a/doc/salome/gui/GEOM/images/changeorientation.png b/doc/salome/gui/GEOM/images/changeorientation.png
new file mode 100755 (executable)
index 0000000..95322ed
Binary files /dev/null and b/doc/salome/gui/GEOM/images/changeorientation.png differ
diff --git a/doc/salome/gui/GEOM/images/circle1.png b/doc/salome/gui/GEOM/images/circle1.png
new file mode 100755 (executable)
index 0000000..21933a5
Binary files /dev/null and b/doc/salome/gui/GEOM/images/circle1.png differ
diff --git a/doc/salome/gui/GEOM/images/circle2.png b/doc/salome/gui/GEOM/images/circle2.png
new file mode 100755 (executable)
index 0000000..7729952
Binary files /dev/null and b/doc/salome/gui/GEOM/images/circle2.png differ
diff --git a/doc/salome/gui/GEOM/images/circle3.png b/doc/salome/gui/GEOM/images/circle3.png
new file mode 100755 (executable)
index 0000000..39aa5b1
Binary files /dev/null and b/doc/salome/gui/GEOM/images/circle3.png differ
diff --git a/doc/salome/gui/GEOM/images/circles.png b/doc/salome/gui/GEOM/images/circles.png
new file mode 100755 (executable)
index 0000000..dc367ce
Binary files /dev/null and b/doc/salome/gui/GEOM/images/circles.png differ
diff --git a/doc/salome/gui/GEOM/images/colorsn.png b/doc/salome/gui/GEOM/images/colorsn.png
new file mode 100755 (executable)
index 0000000..f0c4401
Binary files /dev/null and b/doc/salome/gui/GEOM/images/colorsn.png differ
diff --git a/doc/salome/gui/GEOM/images/commonsn.png b/doc/salome/gui/GEOM/images/commonsn.png
new file mode 100755 (executable)
index 0000000..e5c0c41
Binary files /dev/null and b/doc/salome/gui/GEOM/images/commonsn.png differ
diff --git a/doc/salome/gui/GEOM/images/compoundsn.png b/doc/salome/gui/GEOM/images/compoundsn.png
new file mode 100755 (executable)
index 0000000..33e1012
Binary files /dev/null and b/doc/salome/gui/GEOM/images/compoundsn.png differ
diff --git a/doc/salome/gui/GEOM/images/cone1.png b/doc/salome/gui/GEOM/images/cone1.png
new file mode 100755 (executable)
index 0000000..f5a9592
Binary files /dev/null and b/doc/salome/gui/GEOM/images/cone1.png differ
diff --git a/doc/salome/gui/GEOM/images/cone2.png b/doc/salome/gui/GEOM/images/cone2.png
new file mode 100755 (executable)
index 0000000..1b05821
Binary files /dev/null and b/doc/salome/gui/GEOM/images/cone2.png differ
diff --git a/doc/salome/gui/GEOM/images/cones.png b/doc/salome/gui/GEOM/images/cones.png
new file mode 100755 (executable)
index 0000000..4c8108c
Binary files /dev/null and b/doc/salome/gui/GEOM/images/cones.png differ
diff --git a/doc/salome/gui/GEOM/images/curve.png b/doc/salome/gui/GEOM/images/curve.png
new file mode 100755 (executable)
index 0000000..a9541de
Binary files /dev/null and b/doc/salome/gui/GEOM/images/curve.png differ
diff --git a/doc/salome/gui/GEOM/images/cutsn.png b/doc/salome/gui/GEOM/images/cutsn.png
new file mode 100755 (executable)
index 0000000..eda9bb7
Binary files /dev/null and b/doc/salome/gui/GEOM/images/cutsn.png differ
diff --git a/doc/salome/gui/GEOM/images/cylinder1.png b/doc/salome/gui/GEOM/images/cylinder1.png
new file mode 100755 (executable)
index 0000000..71b619d
Binary files /dev/null and b/doc/salome/gui/GEOM/images/cylinder1.png differ
diff --git a/doc/salome/gui/GEOM/images/cylinder2.png b/doc/salome/gui/GEOM/images/cylinder2.png
new file mode 100755 (executable)
index 0000000..ee6ed12
Binary files /dev/null and b/doc/salome/gui/GEOM/images/cylinder2.png differ
diff --git a/doc/salome/gui/GEOM/images/cylinders.png b/doc/salome/gui/GEOM/images/cylinders.png
new file mode 100755 (executable)
index 0000000..fc0d432
Binary files /dev/null and b/doc/salome/gui/GEOM/images/cylinders.png differ
diff --git a/doc/salome/gui/GEOM/images/dialog.png b/doc/salome/gui/GEOM/images/dialog.png
new file mode 100755 (executable)
index 0000000..63f984b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/dialog.png differ
diff --git a/doc/salome/gui/GEOM/images/disp_mode1sn.png b/doc/salome/gui/GEOM/images/disp_mode1sn.png
new file mode 100755 (executable)
index 0000000..b5b7e8f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/disp_mode1sn.png differ
diff --git a/doc/salome/gui/GEOM/images/disp_mode2sn.png b/doc/salome/gui/GEOM/images/disp_mode2sn.png
new file mode 100755 (executable)
index 0000000..3622327
Binary files /dev/null and b/doc/salome/gui/GEOM/images/disp_mode2sn.png differ
diff --git a/doc/salome/gui/GEOM/images/distance.png b/doc/salome/gui/GEOM/images/distance.png
new file mode 100755 (executable)
index 0000000..141ec8e
Binary files /dev/null and b/doc/salome/gui/GEOM/images/distance.png differ
diff --git a/doc/salome/gui/GEOM/images/edgesn.png b/doc/salome/gui/GEOM/images/edgesn.png
new file mode 100755 (executable)
index 0000000..9de8df9
Binary files /dev/null and b/doc/salome/gui/GEOM/images/edgesn.png differ
diff --git a/doc/salome/gui/GEOM/images/editgroup.png b/doc/salome/gui/GEOM/images/editgroup.png
new file mode 100755 (executable)
index 0000000..db3e235
Binary files /dev/null and b/doc/salome/gui/GEOM/images/editgroup.png differ
diff --git a/doc/salome/gui/GEOM/images/ellipse.png b/doc/salome/gui/GEOM/images/ellipse.png
new file mode 100755 (executable)
index 0000000..0888b50
Binary files /dev/null and b/doc/salome/gui/GEOM/images/ellipse.png differ
diff --git a/doc/salome/gui/GEOM/images/ellipsesn.png b/doc/salome/gui/GEOM/images/ellipsesn.png
new file mode 100755 (executable)
index 0000000..1c42154
Binary files /dev/null and b/doc/salome/gui/GEOM/images/ellipsesn.png differ
diff --git a/doc/salome/gui/GEOM/images/extrusion1.png b/doc/salome/gui/GEOM/images/extrusion1.png
new file mode 100755 (executable)
index 0000000..673e863
Binary files /dev/null and b/doc/salome/gui/GEOM/images/extrusion1.png differ
diff --git a/doc/salome/gui/GEOM/images/extrusion2.png b/doc/salome/gui/GEOM/images/extrusion2.png
new file mode 100755 (executable)
index 0000000..b56dc5d
Binary files /dev/null and b/doc/salome/gui/GEOM/images/extrusion2.png differ
diff --git a/doc/salome/gui/GEOM/images/facesn1.png b/doc/salome/gui/GEOM/images/facesn1.png
new file mode 100755 (executable)
index 0000000..c78703a
Binary files /dev/null and b/doc/salome/gui/GEOM/images/facesn1.png differ
diff --git a/doc/salome/gui/GEOM/images/facesn2.png b/doc/salome/gui/GEOM/images/facesn2.png
new file mode 100755 (executable)
index 0000000..59403a0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/facesn2.png differ
diff --git a/doc/salome/gui/GEOM/images/facesn3.png b/doc/salome/gui/GEOM/images/facesn3.png
new file mode 100755 (executable)
index 0000000..7c95d11
Binary files /dev/null and b/doc/salome/gui/GEOM/images/facesn3.png differ
diff --git a/doc/salome/gui/GEOM/images/fillet1.png b/doc/salome/gui/GEOM/images/fillet1.png
new file mode 100755 (executable)
index 0000000..7fd3db5
Binary files /dev/null and b/doc/salome/gui/GEOM/images/fillet1.png differ
diff --git a/doc/salome/gui/GEOM/images/fillet2.png b/doc/salome/gui/GEOM/images/fillet2.png
new file mode 100755 (executable)
index 0000000..2eab875
Binary files /dev/null and b/doc/salome/gui/GEOM/images/fillet2.png differ
diff --git a/doc/salome/gui/GEOM/images/fillet3.png b/doc/salome/gui/GEOM/images/fillet3.png
new file mode 100755 (executable)
index 0000000..6e46e05
Binary files /dev/null and b/doc/salome/gui/GEOM/images/fillet3.png differ
diff --git a/doc/salome/gui/GEOM/images/fillet_all.png b/doc/salome/gui/GEOM/images/fillet_all.png
new file mode 100755 (executable)
index 0000000..c1650b9
Binary files /dev/null and b/doc/salome/gui/GEOM/images/fillet_all.png differ
diff --git a/doc/salome/gui/GEOM/images/fillet_edge.png b/doc/salome/gui/GEOM/images/fillet_edge.png
new file mode 100755 (executable)
index 0000000..9572abb
Binary files /dev/null and b/doc/salome/gui/GEOM/images/fillet_edge.png differ
diff --git a/doc/salome/gui/GEOM/images/fillet_prism.png b/doc/salome/gui/GEOM/images/fillet_prism.png
new file mode 100755 (executable)
index 0000000..3a44a07
Binary files /dev/null and b/doc/salome/gui/GEOM/images/fillet_prism.png differ
diff --git a/doc/salome/gui/GEOM/images/filling.png b/doc/salome/gui/GEOM/images/filling.png
new file mode 100755 (executable)
index 0000000..418c224
Binary files /dev/null and b/doc/salome/gui/GEOM/images/filling.png differ
diff --git a/doc/salome/gui/GEOM/images/filling_compoundsn.png b/doc/salome/gui/GEOM/images/filling_compoundsn.png
new file mode 100755 (executable)
index 0000000..9d3846b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/filling_compoundsn.png differ
diff --git a/doc/salome/gui/GEOM/images/fillingsn.png b/doc/salome/gui/GEOM/images/fillingsn.png
new file mode 100755 (executable)
index 0000000..2446e89
Binary files /dev/null and b/doc/salome/gui/GEOM/images/fillingsn.png differ
diff --git a/doc/salome/gui/GEOM/images/fusesn1.png b/doc/salome/gui/GEOM/images/fusesn1.png
new file mode 100755 (executable)
index 0000000..e0118cb
Binary files /dev/null and b/doc/salome/gui/GEOM/images/fusesn1.png differ
diff --git a/doc/salome/gui/GEOM/images/fusesn2.png b/doc/salome/gui/GEOM/images/fusesn2.png
new file mode 100755 (executable)
index 0000000..f8a2b01
Binary files /dev/null and b/doc/salome/gui/GEOM/images/fusesn2.png differ
diff --git a/doc/salome/gui/GEOM/images/geomcreategroup.png b/doc/salome/gui/GEOM/images/geomcreategroup.png
new file mode 100755 (executable)
index 0000000..f51ab22
Binary files /dev/null and b/doc/salome/gui/GEOM/images/geomcreategroup.png differ
diff --git a/doc/salome/gui/GEOM/images/geomexport.png b/doc/salome/gui/GEOM/images/geomexport.png
new file mode 100755 (executable)
index 0000000..c377139
Binary files /dev/null and b/doc/salome/gui/GEOM/images/geomexport.png differ
diff --git a/doc/salome/gui/GEOM/images/geomimport.png b/doc/salome/gui/GEOM/images/geomimport.png
new file mode 100755 (executable)
index 0000000..516a819
Binary files /dev/null and b/doc/salome/gui/GEOM/images/geomimport.png differ
diff --git a/doc/salome/gui/GEOM/images/glue1.png b/doc/salome/gui/GEOM/images/glue1.png
new file mode 100644 (file)
index 0000000..54fa5bf
Binary files /dev/null and b/doc/salome/gui/GEOM/images/glue1.png differ
diff --git a/doc/salome/gui/GEOM/images/glue2.png b/doc/salome/gui/GEOM/images/glue2.png
new file mode 100644 (file)
index 0000000..475e54f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/glue2.png differ
diff --git a/doc/salome/gui/GEOM/images/glue3.png b/doc/salome/gui/GEOM/images/glue3.png
new file mode 100644 (file)
index 0000000..a8c6d88
Binary files /dev/null and b/doc/salome/gui/GEOM/images/glue3.png differ
diff --git a/doc/salome/gui/GEOM/images/glue_faces1.png b/doc/salome/gui/GEOM/images/glue_faces1.png
new file mode 100755 (executable)
index 0000000..787c9b0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/glue_faces1.png differ
diff --git a/doc/salome/gui/GEOM/images/glue_faces2.png b/doc/salome/gui/GEOM/images/glue_faces2.png
new file mode 100755 (executable)
index 0000000..d336613
Binary files /dev/null and b/doc/salome/gui/GEOM/images/glue_faces2.png differ
diff --git a/doc/salome/gui/GEOM/images/glue_faces3.png b/doc/salome/gui/GEOM/images/glue_faces3.png
new file mode 100644 (file)
index 0000000..dab9c89
Binary files /dev/null and b/doc/salome/gui/GEOM/images/glue_faces3.png differ
diff --git a/doc/salome/gui/GEOM/images/image1.gif b/doc/salome/gui/GEOM/images/image1.gif
new file mode 100755 (executable)
index 0000000..2f2fe9a
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image1.gif differ
diff --git a/doc/salome/gui/GEOM/images/image109.jpg b/doc/salome/gui/GEOM/images/image109.jpg
new file mode 100755 (executable)
index 0000000..de4e1e1
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image109.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image110.jpg b/doc/salome/gui/GEOM/images/image110.jpg
new file mode 100755 (executable)
index 0000000..45f72b5
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image110.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image112.jpg b/doc/salome/gui/GEOM/images/image112.jpg
new file mode 100755 (executable)
index 0000000..33399b3
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image112.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image113.jpg b/doc/salome/gui/GEOM/images/image113.jpg
new file mode 100755 (executable)
index 0000000..fa01cfb
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image113.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image145.jpg b/doc/salome/gui/GEOM/images/image145.jpg
new file mode 100755 (executable)
index 0000000..a035c8d
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image145.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image15.jpg b/doc/salome/gui/GEOM/images/image15.jpg
new file mode 100755 (executable)
index 0000000..50a9c9e
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image15.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image154.jpg b/doc/salome/gui/GEOM/images/image154.jpg
new file mode 100755 (executable)
index 0000000..5129007
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image154.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image156.jpg b/doc/salome/gui/GEOM/images/image156.jpg
new file mode 100755 (executable)
index 0000000..f2d7185
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image156.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image16.jpg b/doc/salome/gui/GEOM/images/image16.jpg
new file mode 100755 (executable)
index 0000000..42f79d3
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image16.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image160.jpg b/doc/salome/gui/GEOM/images/image160.jpg
new file mode 100755 (executable)
index 0000000..a88429f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image160.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image167.jpg b/doc/salome/gui/GEOM/images/image167.jpg
new file mode 100755 (executable)
index 0000000..775496f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image167.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image168.jpg b/doc/salome/gui/GEOM/images/image168.jpg
new file mode 100755 (executable)
index 0000000..f69d2b8
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image168.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image18.gif b/doc/salome/gui/GEOM/images/image18.gif
new file mode 100755 (executable)
index 0000000..511bd44
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image18.gif differ
diff --git a/doc/salome/gui/GEOM/images/image180.jpg b/doc/salome/gui/GEOM/images/image180.jpg
new file mode 100755 (executable)
index 0000000..1c57ef0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image180.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image181.jpg b/doc/salome/gui/GEOM/images/image181.jpg
new file mode 100755 (executable)
index 0000000..d0171df
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image181.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image185.jpg b/doc/salome/gui/GEOM/images/image185.jpg
new file mode 100755 (executable)
index 0000000..7fb6ef6
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image185.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image193.jpg b/doc/salome/gui/GEOM/images/image193.jpg
new file mode 100755 (executable)
index 0000000..dc184f5
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image193.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image2.gif b/doc/salome/gui/GEOM/images/image2.gif
new file mode 100755 (executable)
index 0000000..8334107
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image2.gif differ
diff --git a/doc/salome/gui/GEOM/images/image2.jpg b/doc/salome/gui/GEOM/images/image2.jpg
new file mode 100755 (executable)
index 0000000..ddfeaa1
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image2.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image204.jpg b/doc/salome/gui/GEOM/images/image204.jpg
new file mode 100755 (executable)
index 0000000..ce23e6a
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image204.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image206.jpg b/doc/salome/gui/GEOM/images/image206.jpg
new file mode 100755 (executable)
index 0000000..85e9e80
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image206.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image26.gif b/doc/salome/gui/GEOM/images/image26.gif
new file mode 100755 (executable)
index 0000000..cb7f53a
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image26.gif differ
diff --git a/doc/salome/gui/GEOM/images/image3.jpg b/doc/salome/gui/GEOM/images/image3.jpg
new file mode 100755 (executable)
index 0000000..4aacee4
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image3.jpg differ
diff --git a/doc/salome/gui/GEOM/images/image30.gif b/doc/salome/gui/GEOM/images/image30.gif
new file mode 100755 (executable)
index 0000000..a773887
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image30.gif differ
diff --git a/doc/salome/gui/GEOM/images/image33.gif b/doc/salome/gui/GEOM/images/image33.gif
new file mode 100755 (executable)
index 0000000..53de533
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image33.gif differ
diff --git a/doc/salome/gui/GEOM/images/image34.gif b/doc/salome/gui/GEOM/images/image34.gif
new file mode 100755 (executable)
index 0000000..d7f8089
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image34.gif differ
diff --git a/doc/salome/gui/GEOM/images/image36.gif b/doc/salome/gui/GEOM/images/image36.gif
new file mode 100755 (executable)
index 0000000..8b6955c
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image36.gif differ
diff --git a/doc/salome/gui/GEOM/images/image38.gif b/doc/salome/gui/GEOM/images/image38.gif
new file mode 100755 (executable)
index 0000000..db1f51c
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image38.gif differ
diff --git a/doc/salome/gui/GEOM/images/image4.gif b/doc/salome/gui/GEOM/images/image4.gif
new file mode 100755 (executable)
index 0000000..385de8f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image4.gif differ
diff --git a/doc/salome/gui/GEOM/images/image40.gif b/doc/salome/gui/GEOM/images/image40.gif
new file mode 100755 (executable)
index 0000000..b24e58c
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image40.gif differ
diff --git a/doc/salome/gui/GEOM/images/image47.gif b/doc/salome/gui/GEOM/images/image47.gif
new file mode 100755 (executable)
index 0000000..6e6cbea
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image47.gif differ
diff --git a/doc/salome/gui/GEOM/images/image56.gif b/doc/salome/gui/GEOM/images/image56.gif
new file mode 100755 (executable)
index 0000000..049e1eb
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image56.gif differ
diff --git a/doc/salome/gui/GEOM/images/image57.gif b/doc/salome/gui/GEOM/images/image57.gif
new file mode 100755 (executable)
index 0000000..e0f9e31
Binary files /dev/null and b/doc/salome/gui/GEOM/images/image57.gif differ
diff --git a/doc/salome/gui/GEOM/images/interpol.png b/doc/salome/gui/GEOM/images/interpol.png
new file mode 100755 (executable)
index 0000000..ac77ddf
Binary files /dev/null and b/doc/salome/gui/GEOM/images/interpol.png differ
diff --git a/doc/salome/gui/GEOM/images/isos_u12_v12sn.png b/doc/salome/gui/GEOM/images/isos_u12_v12sn.png
new file mode 100755 (executable)
index 0000000..10a13ce
Binary files /dev/null and b/doc/salome/gui/GEOM/images/isos_u12_v12sn.png differ
diff --git a/doc/salome/gui/GEOM/images/line.png b/doc/salome/gui/GEOM/images/line.png
new file mode 100755 (executable)
index 0000000..3c931a1
Binary files /dev/null and b/doc/salome/gui/GEOM/images/line.png differ
diff --git a/doc/salome/gui/GEOM/images/lines.png b/doc/salome/gui/GEOM/images/lines.png
new file mode 100755 (executable)
index 0000000..de12c11
Binary files /dev/null and b/doc/salome/gui/GEOM/images/lines.png differ
diff --git a/doc/salome/gui/GEOM/images/measures1.png b/doc/salome/gui/GEOM/images/measures1.png
new file mode 100755 (executable)
index 0000000..6d5d698
Binary files /dev/null and b/doc/salome/gui/GEOM/images/measures1.png differ
diff --git a/doc/salome/gui/GEOM/images/measures10.png b/doc/salome/gui/GEOM/images/measures10.png
new file mode 100755 (executable)
index 0000000..33023cc
Binary files /dev/null and b/doc/salome/gui/GEOM/images/measures10.png differ
diff --git a/doc/salome/gui/GEOM/images/measures3.png b/doc/salome/gui/GEOM/images/measures3.png
new file mode 100755 (executable)
index 0000000..9a55aad
Binary files /dev/null and b/doc/salome/gui/GEOM/images/measures3.png differ
diff --git a/doc/salome/gui/GEOM/images/measures4.png b/doc/salome/gui/GEOM/images/measures4.png
new file mode 100755 (executable)
index 0000000..ea243e8
Binary files /dev/null and b/doc/salome/gui/GEOM/images/measures4.png differ
diff --git a/doc/salome/gui/GEOM/images/measures5.png b/doc/salome/gui/GEOM/images/measures5.png
new file mode 100755 (executable)
index 0000000..a323426
Binary files /dev/null and b/doc/salome/gui/GEOM/images/measures5.png differ
diff --git a/doc/salome/gui/GEOM/images/measures8.png b/doc/salome/gui/GEOM/images/measures8.png
new file mode 100755 (executable)
index 0000000..94bed32
Binary files /dev/null and b/doc/salome/gui/GEOM/images/measures8.png differ
diff --git a/doc/salome/gui/GEOM/images/measures9.png b/doc/salome/gui/GEOM/images/measures9.png
new file mode 100755 (executable)
index 0000000..7d42d29
Binary files /dev/null and b/doc/salome/gui/GEOM/images/measures9.png differ
diff --git a/doc/salome/gui/GEOM/images/mirror_axissn1.png b/doc/salome/gui/GEOM/images/mirror_axissn1.png
new file mode 100755 (executable)
index 0000000..86be83e
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mirror_axissn1.png differ
diff --git a/doc/salome/gui/GEOM/images/mirror_axissn2.png b/doc/salome/gui/GEOM/images/mirror_axissn2.png
new file mode 100755 (executable)
index 0000000..6009fa7
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mirror_axissn2.png differ
diff --git a/doc/salome/gui/GEOM/images/mirror_planesn1.png b/doc/salome/gui/GEOM/images/mirror_planesn1.png
new file mode 100755 (executable)
index 0000000..969f0e0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mirror_planesn1.png differ
diff --git a/doc/salome/gui/GEOM/images/mirror_planesn2.png b/doc/salome/gui/GEOM/images/mirror_planesn2.png
new file mode 100755 (executable)
index 0000000..e9eb496
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mirror_planesn2.png differ
diff --git a/doc/salome/gui/GEOM/images/mirror_pointsn1.png b/doc/salome/gui/GEOM/images/mirror_pointsn1.png
new file mode 100755 (executable)
index 0000000..675b0bf
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mirror_pointsn1.png differ
diff --git a/doc/salome/gui/GEOM/images/mirror_pointsn2.png b/doc/salome/gui/GEOM/images/mirror_pointsn2.png
new file mode 100755 (executable)
index 0000000..ab62359
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mirror_pointsn2.png differ
diff --git a/doc/salome/gui/GEOM/images/mtrans1.png b/doc/salome/gui/GEOM/images/mtrans1.png
new file mode 100755 (executable)
index 0000000..7dfe730
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mtrans1.png differ
diff --git a/doc/salome/gui/GEOM/images/mtrans2.png b/doc/salome/gui/GEOM/images/mtrans2.png
new file mode 100755 (executable)
index 0000000..62b35bb
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mtrans2.png differ
diff --git a/doc/salome/gui/GEOM/images/mtransf1.png b/doc/salome/gui/GEOM/images/mtransf1.png
new file mode 100755 (executable)
index 0000000..207e920
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mtransf1.png differ
diff --git a/doc/salome/gui/GEOM/images/mtransf2.png b/doc/salome/gui/GEOM/images/mtransf2.png
new file mode 100755 (executable)
index 0000000..3435f0f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mtransf2.png differ
diff --git a/doc/salome/gui/GEOM/images/mtransf3.png b/doc/salome/gui/GEOM/images/mtransf3.png
new file mode 100755 (executable)
index 0000000..628d8b0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mtransf3.png differ
diff --git a/doc/salome/gui/GEOM/images/mtransf4.png b/doc/salome/gui/GEOM/images/mtransf4.png
new file mode 100755 (executable)
index 0000000..cbe9044
Binary files /dev/null and b/doc/salome/gui/GEOM/images/mtransf4.png differ
diff --git a/doc/salome/gui/GEOM/images/multi_rotation1d1.png b/doc/salome/gui/GEOM/images/multi_rotation1d1.png
new file mode 100755 (executable)
index 0000000..4085f43
Binary files /dev/null and b/doc/salome/gui/GEOM/images/multi_rotation1d1.png differ
diff --git a/doc/salome/gui/GEOM/images/multi_rotation1d2.png b/doc/salome/gui/GEOM/images/multi_rotation1d2.png
new file mode 100755 (executable)
index 0000000..8089092
Binary files /dev/null and b/doc/salome/gui/GEOM/images/multi_rotation1d2.png differ
diff --git a/doc/salome/gui/GEOM/images/multi_rotation2d1.png b/doc/salome/gui/GEOM/images/multi_rotation2d1.png
new file mode 100755 (executable)
index 0000000..1bdd253
Binary files /dev/null and b/doc/salome/gui/GEOM/images/multi_rotation2d1.png differ
diff --git a/doc/salome/gui/GEOM/images/multi_rotation2d2.png b/doc/salome/gui/GEOM/images/multi_rotation2d2.png
new file mode 100755 (executable)
index 0000000..aa61ca6
Binary files /dev/null and b/doc/salome/gui/GEOM/images/multi_rotation2d2.png differ
diff --git a/doc/salome/gui/GEOM/images/multi_transformationsn1d.png b/doc/salome/gui/GEOM/images/multi_transformationsn1d.png
new file mode 100755 (executable)
index 0000000..dfcc440
Binary files /dev/null and b/doc/salome/gui/GEOM/images/multi_transformationsn1d.png differ
diff --git a/doc/salome/gui/GEOM/images/multi_transformationsn2d.png b/doc/salome/gui/GEOM/images/multi_transformationsn2d.png
new file mode 100755 (executable)
index 0000000..f0fc127
Binary files /dev/null and b/doc/salome/gui/GEOM/images/multi_transformationsn2d.png differ
diff --git a/doc/salome/gui/GEOM/images/multi_translation1dsn.png b/doc/salome/gui/GEOM/images/multi_translation1dsn.png
new file mode 100755 (executable)
index 0000000..436a816
Binary files /dev/null and b/doc/salome/gui/GEOM/images/multi_translation1dsn.png differ
diff --git a/doc/salome/gui/GEOM/images/multi_translation2dsn.png b/doc/salome/gui/GEOM/images/multi_translation2dsn.png
new file mode 100755 (executable)
index 0000000..f44c852
Binary files /dev/null and b/doc/salome/gui/GEOM/images/multi_translation2dsn.png differ
diff --git a/doc/salome/gui/GEOM/images/multi_translation_initialsn.png b/doc/salome/gui/GEOM/images/multi_translation_initialsn.png
new file mode 100755 (executable)
index 0000000..0b7b70a
Binary files /dev/null and b/doc/salome/gui/GEOM/images/multi_translation_initialsn.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-basicprop.png b/doc/salome/gui/GEOM/images/neo-basicprop.png
new file mode 100755 (executable)
index 0000000..2a9d7ca
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-basicprop.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-detect2.png b/doc/salome/gui/GEOM/images/neo-detect2.png
new file mode 100755 (executable)
index 0000000..f0dabe3
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-detect2.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-isos.png b/doc/salome/gui/GEOM/images/neo-isos.png
new file mode 100755 (executable)
index 0000000..dbbcf8e
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-isos.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-localcs1.png b/doc/salome/gui/GEOM/images/neo-localcs1.png
new file mode 100755 (executable)
index 0000000..9bdacaf
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-localcs1.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-localcs2.png b/doc/salome/gui/GEOM/images/neo-localcs2.png
new file mode 100755 (executable)
index 0000000..3fc54a6
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-localcs2.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-localcs3.png b/doc/salome/gui/GEOM/images/neo-localcs3.png
new file mode 100755 (executable)
index 0000000..01c8e24
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-localcs3.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-mrot1.png b/doc/salome/gui/GEOM/images/neo-mrot1.png
new file mode 100755 (executable)
index 0000000..6cf2ab9
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-mrot1.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-mrot2.png b/doc/salome/gui/GEOM/images/neo-mrot2.png
new file mode 100755 (executable)
index 0000000..e2f37e0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-mrot2.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-obj1.png b/doc/salome/gui/GEOM/images/neo-obj1.png
new file mode 100755 (executable)
index 0000000..88a7a8b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-obj1.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-obj2.png b/doc/salome/gui/GEOM/images/neo-obj2.png
new file mode 100755 (executable)
index 0000000..c940eaa
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-obj2.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-obj3.png b/doc/salome/gui/GEOM/images/neo-obj3.png
new file mode 100755 (executable)
index 0000000..d773938
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-obj3.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-obj4.png b/doc/salome/gui/GEOM/images/neo-obj4.png
new file mode 100755 (executable)
index 0000000..5ac05dc
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-obj4.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-obj5.png b/doc/salome/gui/GEOM/images/neo-obj5.png
new file mode 100755 (executable)
index 0000000..e1579f0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-obj5.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-obj6.png b/doc/salome/gui/GEOM/images/neo-obj6.png
new file mode 100755 (executable)
index 0000000..b6b3be4
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-obj6.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-obj7.png b/doc/salome/gui/GEOM/images/neo-obj7.png
new file mode 100755 (executable)
index 0000000..15dfa23
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-obj7.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-point2.png b/doc/salome/gui/GEOM/images/neo-point2.png
new file mode 100755 (executable)
index 0000000..3bc59b8
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-point2.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-scetcher1.png b/doc/salome/gui/GEOM/images/neo-scetcher1.png
new file mode 100755 (executable)
index 0000000..7130e8b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-scetcher1.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-scetcher2.png b/doc/salome/gui/GEOM/images/neo-scetcher2.png
new file mode 100755 (executable)
index 0000000..330e1e3
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-scetcher2.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-section.png b/doc/salome/gui/GEOM/images/neo-section.png
new file mode 100755 (executable)
index 0000000..0d58ad2
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-section.png differ
diff --git a/doc/salome/gui/GEOM/images/neo-transparency.png b/doc/salome/gui/GEOM/images/neo-transparency.png
new file mode 100755 (executable)
index 0000000..ec1fb7f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/neo-transparency.png differ
diff --git a/doc/salome/gui/GEOM/images/new-tolerance.png b/doc/salome/gui/GEOM/images/new-tolerance.png
new file mode 100755 (executable)
index 0000000..796115b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/new-tolerance.png differ
diff --git a/doc/salome/gui/GEOM/images/normaletoface.png b/doc/salome/gui/GEOM/images/normaletoface.png
new file mode 100755 (executable)
index 0000000..5f8a343
Binary files /dev/null and b/doc/salome/gui/GEOM/images/normaletoface.png differ
diff --git a/doc/salome/gui/GEOM/images/offsetsn.png b/doc/salome/gui/GEOM/images/offsetsn.png
new file mode 100755 (executable)
index 0000000..6404310
Binary files /dev/null and b/doc/salome/gui/GEOM/images/offsetsn.png differ
diff --git a/doc/salome/gui/GEOM/images/partition1.png b/doc/salome/gui/GEOM/images/partition1.png
new file mode 100755 (executable)
index 0000000..440dc3c
Binary files /dev/null and b/doc/salome/gui/GEOM/images/partition1.png differ
diff --git a/doc/salome/gui/GEOM/images/partition2.png b/doc/salome/gui/GEOM/images/partition2.png
new file mode 100755 (executable)
index 0000000..a67ec9d
Binary files /dev/null and b/doc/salome/gui/GEOM/images/partition2.png differ
diff --git a/doc/salome/gui/GEOM/images/partitionsn1.png b/doc/salome/gui/GEOM/images/partitionsn1.png
new file mode 100755 (executable)
index 0000000..fa8404d
Binary files /dev/null and b/doc/salome/gui/GEOM/images/partitionsn1.png differ
diff --git a/doc/salome/gui/GEOM/images/partitionsn2.png b/doc/salome/gui/GEOM/images/partitionsn2.png
new file mode 100755 (executable)
index 0000000..b7480a4
Binary files /dev/null and b/doc/salome/gui/GEOM/images/partitionsn2.png differ
diff --git a/doc/salome/gui/GEOM/images/pipe.png b/doc/salome/gui/GEOM/images/pipe.png
new file mode 100755 (executable)
index 0000000..e773731
Binary files /dev/null and b/doc/salome/gui/GEOM/images/pipe.png differ
diff --git a/doc/salome/gui/GEOM/images/pipe_wire_edgesn.png b/doc/salome/gui/GEOM/images/pipe_wire_edgesn.png
new file mode 100755 (executable)
index 0000000..4424b6b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/pipe_wire_edgesn.png differ
diff --git a/doc/salome/gui/GEOM/images/pipesn.png b/doc/salome/gui/GEOM/images/pipesn.png
new file mode 100755 (executable)
index 0000000..11ac109
Binary files /dev/null and b/doc/salome/gui/GEOM/images/pipesn.png differ
diff --git a/doc/salome/gui/GEOM/images/plane1.png b/doc/salome/gui/GEOM/images/plane1.png
new file mode 100755 (executable)
index 0000000..47a9b8b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/plane1.png differ
diff --git a/doc/salome/gui/GEOM/images/plane2.png b/doc/salome/gui/GEOM/images/plane2.png
new file mode 100755 (executable)
index 0000000..f4b880b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/plane2.png differ
diff --git a/doc/salome/gui/GEOM/images/plane3.png b/doc/salome/gui/GEOM/images/plane3.png
new file mode 100755 (executable)
index 0000000..1727e3b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/plane3.png differ
diff --git a/doc/salome/gui/GEOM/images/plane_on_face.png b/doc/salome/gui/GEOM/images/plane_on_face.png
new file mode 100755 (executable)
index 0000000..5df8823
Binary files /dev/null and b/doc/salome/gui/GEOM/images/plane_on_face.png differ
diff --git a/doc/salome/gui/GEOM/images/planes1.png b/doc/salome/gui/GEOM/images/planes1.png
new file mode 100755 (executable)
index 0000000..c9a594c
Binary files /dev/null and b/doc/salome/gui/GEOM/images/planes1.png differ
diff --git a/doc/salome/gui/GEOM/images/point1.png b/doc/salome/gui/GEOM/images/point1.png
new file mode 100755 (executable)
index 0000000..39bca25
Binary files /dev/null and b/doc/salome/gui/GEOM/images/point1.png differ
diff --git a/doc/salome/gui/GEOM/images/point3.png b/doc/salome/gui/GEOM/images/point3.png
new file mode 100755 (executable)
index 0000000..0a2e325
Binary files /dev/null and b/doc/salome/gui/GEOM/images/point3.png differ
diff --git a/doc/salome/gui/GEOM/images/points.png b/doc/salome/gui/GEOM/images/points.png
new file mode 100755 (executable)
index 0000000..547b277
Binary files /dev/null and b/doc/salome/gui/GEOM/images/points.png differ
diff --git a/doc/salome/gui/GEOM/images/polyline.png b/doc/salome/gui/GEOM/images/polyline.png
new file mode 100755 (executable)
index 0000000..bd259e1
Binary files /dev/null and b/doc/salome/gui/GEOM/images/polyline.png differ
diff --git a/doc/salome/gui/GEOM/images/prisms_basessn.png b/doc/salome/gui/GEOM/images/prisms_basessn.png
new file mode 100755 (executable)
index 0000000..d6a0700
Binary files /dev/null and b/doc/salome/gui/GEOM/images/prisms_basessn.png differ
diff --git a/doc/salome/gui/GEOM/images/prismssn.png b/doc/salome/gui/GEOM/images/prismssn.png
new file mode 100755 (executable)
index 0000000..80c9af3
Binary files /dev/null and b/doc/salome/gui/GEOM/images/prismssn.png differ
diff --git a/doc/salome/gui/GEOM/images/remove_extra_edges.png b/doc/salome/gui/GEOM/images/remove_extra_edges.png
new file mode 100644 (file)
index 0000000..50538dd
Binary files /dev/null and b/doc/salome/gui/GEOM/images/remove_extra_edges.png differ
diff --git a/doc/salome/gui/GEOM/images/remove_extra_edges1.png b/doc/salome/gui/GEOM/images/remove_extra_edges1.png
new file mode 100644 (file)
index 0000000..3737f97
Binary files /dev/null and b/doc/salome/gui/GEOM/images/remove_extra_edges1.png differ
diff --git a/doc/salome/gui/GEOM/images/remove_extra_edges2.png b/doc/salome/gui/GEOM/images/remove_extra_edges2.png
new file mode 100644 (file)
index 0000000..3302eb1
Binary files /dev/null and b/doc/salome/gui/GEOM/images/remove_extra_edges2.png differ
diff --git a/doc/salome/gui/GEOM/images/repair1.png b/doc/salome/gui/GEOM/images/repair1.png
new file mode 100755 (executable)
index 0000000..2b47fa5
Binary files /dev/null and b/doc/salome/gui/GEOM/images/repair1.png differ
diff --git a/doc/salome/gui/GEOM/images/repair10.png b/doc/salome/gui/GEOM/images/repair10.png
new file mode 100755 (executable)
index 0000000..c3c7716
Binary files /dev/null and b/doc/salome/gui/GEOM/images/repair10.png differ
diff --git a/doc/salome/gui/GEOM/images/repair2.png b/doc/salome/gui/GEOM/images/repair2.png
new file mode 100755 (executable)
index 0000000..488a6a4
Binary files /dev/null and b/doc/salome/gui/GEOM/images/repair2.png differ
diff --git a/doc/salome/gui/GEOM/images/repair3.png b/doc/salome/gui/GEOM/images/repair3.png
new file mode 100755 (executable)
index 0000000..4c2a41f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/repair3.png differ
diff --git a/doc/salome/gui/GEOM/images/repair4.png b/doc/salome/gui/GEOM/images/repair4.png
new file mode 100755 (executable)
index 0000000..2af7cba
Binary files /dev/null and b/doc/salome/gui/GEOM/images/repair4.png differ
diff --git a/doc/salome/gui/GEOM/images/repair5.png b/doc/salome/gui/GEOM/images/repair5.png
new file mode 100755 (executable)
index 0000000..b99fbcb
Binary files /dev/null and b/doc/salome/gui/GEOM/images/repair5.png differ
diff --git a/doc/salome/gui/GEOM/images/repair6.png b/doc/salome/gui/GEOM/images/repair6.png
new file mode 100755 (executable)
index 0000000..5123d1f
Binary files /dev/null and b/doc/salome/gui/GEOM/images/repair6.png differ
diff --git a/doc/salome/gui/GEOM/images/repair7.png b/doc/salome/gui/GEOM/images/repair7.png
new file mode 100755 (executable)
index 0000000..2b553b9
Binary files /dev/null and b/doc/salome/gui/GEOM/images/repair7.png differ
diff --git a/doc/salome/gui/GEOM/images/repair8.png b/doc/salome/gui/GEOM/images/repair8.png
new file mode 100755 (executable)
index 0000000..f001683
Binary files /dev/null and b/doc/salome/gui/GEOM/images/repair8.png differ
diff --git a/doc/salome/gui/GEOM/images/repair9.png b/doc/salome/gui/GEOM/images/repair9.png
new file mode 100755 (executable)
index 0000000..7f5d4f5
Binary files /dev/null and b/doc/salome/gui/GEOM/images/repair9.png differ
diff --git a/doc/salome/gui/GEOM/images/revolution.png b/doc/salome/gui/GEOM/images/revolution.png
new file mode 100755 (executable)
index 0000000..c02c859
Binary files /dev/null and b/doc/salome/gui/GEOM/images/revolution.png differ
diff --git a/doc/salome/gui/GEOM/images/revolutionsn.png b/doc/salome/gui/GEOM/images/revolutionsn.png
new file mode 100755 (executable)
index 0000000..7242c67
Binary files /dev/null and b/doc/salome/gui/GEOM/images/revolutionsn.png differ
diff --git a/doc/salome/gui/GEOM/images/rotationsn1.png b/doc/salome/gui/GEOM/images/rotationsn1.png
new file mode 100755 (executable)
index 0000000..697dcde
Binary files /dev/null and b/doc/salome/gui/GEOM/images/rotationsn1.png differ
diff --git a/doc/salome/gui/GEOM/images/rotationsn2.png b/doc/salome/gui/GEOM/images/rotationsn2.png
new file mode 100755 (executable)
index 0000000..741d00c
Binary files /dev/null and b/doc/salome/gui/GEOM/images/rotationsn2.png differ
diff --git a/doc/salome/gui/GEOM/images/scale_transformsn1.png b/doc/salome/gui/GEOM/images/scale_transformsn1.png
new file mode 100755 (executable)
index 0000000..5af3909
Binary files /dev/null and b/doc/salome/gui/GEOM/images/scale_transformsn1.png differ
diff --git a/doc/salome/gui/GEOM/images/scale_transformsn2.png b/doc/salome/gui/GEOM/images/scale_transformsn2.png
new file mode 100755 (executable)
index 0000000..fa76d41
Binary files /dev/null and b/doc/salome/gui/GEOM/images/scale_transformsn2.png differ
diff --git a/doc/salome/gui/GEOM/images/sectionsn.png b/doc/salome/gui/GEOM/images/sectionsn.png
new file mode 100755 (executable)
index 0000000..8e636ee
Binary files /dev/null and b/doc/salome/gui/GEOM/images/sectionsn.png differ
diff --git a/doc/salome/gui/GEOM/images/selectcolor.png b/doc/salome/gui/GEOM/images/selectcolor.png
new file mode 100755 (executable)
index 0000000..70800b2
Binary files /dev/null and b/doc/salome/gui/GEOM/images/selectcolor.png differ
diff --git a/doc/salome/gui/GEOM/images/shellsn.png b/doc/salome/gui/GEOM/images/shellsn.png
new file mode 100755 (executable)
index 0000000..c7f22f3
Binary files /dev/null and b/doc/salome/gui/GEOM/images/shellsn.png differ
diff --git a/doc/salome/gui/GEOM/images/solidsn.png b/doc/salome/gui/GEOM/images/solidsn.png
new file mode 100755 (executable)
index 0000000..297fc06
Binary files /dev/null and b/doc/salome/gui/GEOM/images/solidsn.png differ
diff --git a/doc/salome/gui/GEOM/images/sphere1.png b/doc/salome/gui/GEOM/images/sphere1.png
new file mode 100755 (executable)
index 0000000..377f1c9
Binary files /dev/null and b/doc/salome/gui/GEOM/images/sphere1.png differ
diff --git a/doc/salome/gui/GEOM/images/sphere2.png b/doc/salome/gui/GEOM/images/sphere2.png
new file mode 100755 (executable)
index 0000000..dd2cadb
Binary files /dev/null and b/doc/salome/gui/GEOM/images/sphere2.png differ
diff --git a/doc/salome/gui/GEOM/images/spheres.png b/doc/salome/gui/GEOM/images/spheres.png
new file mode 100755 (executable)
index 0000000..2b79050
Binary files /dev/null and b/doc/salome/gui/GEOM/images/spheres.png differ
diff --git a/doc/salome/gui/GEOM/images/supp_int_wires1.png b/doc/salome/gui/GEOM/images/supp_int_wires1.png
new file mode 100755 (executable)
index 0000000..5f76056
Binary files /dev/null and b/doc/salome/gui/GEOM/images/supp_int_wires1.png differ
diff --git a/doc/salome/gui/GEOM/images/supp_int_wires2.png b/doc/salome/gui/GEOM/images/supp_int_wires2.png
new file mode 100755 (executable)
index 0000000..e6dc314
Binary files /dev/null and b/doc/salome/gui/GEOM/images/supp_int_wires2.png differ
diff --git a/doc/salome/gui/GEOM/images/suppress_faces1.png b/doc/salome/gui/GEOM/images/suppress_faces1.png
new file mode 100755 (executable)
index 0000000..7534ebe
Binary files /dev/null and b/doc/salome/gui/GEOM/images/suppress_faces1.png differ
diff --git a/doc/salome/gui/GEOM/images/suppress_faces2.png b/doc/salome/gui/GEOM/images/suppress_faces2.png
new file mode 100755 (executable)
index 0000000..d38a4ad
Binary files /dev/null and b/doc/salome/gui/GEOM/images/suppress_faces2.png differ
diff --git a/doc/salome/gui/GEOM/images/torus1.png b/doc/salome/gui/GEOM/images/torus1.png
new file mode 100755 (executable)
index 0000000..28e18af
Binary files /dev/null and b/doc/salome/gui/GEOM/images/torus1.png differ
diff --git a/doc/salome/gui/GEOM/images/torus2.png b/doc/salome/gui/GEOM/images/torus2.png
new file mode 100755 (executable)
index 0000000..8877f1c
Binary files /dev/null and b/doc/salome/gui/GEOM/images/torus2.png differ
diff --git a/doc/salome/gui/GEOM/images/toruses.png b/doc/salome/gui/GEOM/images/toruses.png
new file mode 100755 (executable)
index 0000000..721bae2
Binary files /dev/null and b/doc/salome/gui/GEOM/images/toruses.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation1.png b/doc/salome/gui/GEOM/images/transformation1.png
new file mode 100755 (executable)
index 0000000..8dbf8fe
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation1.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation10.png b/doc/salome/gui/GEOM/images/transformation10.png
new file mode 100755 (executable)
index 0000000..0847a5e
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation10.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation11.png b/doc/salome/gui/GEOM/images/transformation11.png
new file mode 100755 (executable)
index 0000000..b78acec
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation11.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation2.png b/doc/salome/gui/GEOM/images/transformation2.png
new file mode 100755 (executable)
index 0000000..5697527
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation2.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation3.png b/doc/salome/gui/GEOM/images/transformation3.png
new file mode 100755 (executable)
index 0000000..96a1f1e
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation3.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation4.png b/doc/salome/gui/GEOM/images/transformation4.png
new file mode 100755 (executable)
index 0000000..323c3d0
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation4.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation4a.png b/doc/salome/gui/GEOM/images/transformation4a.png
new file mode 100644 (file)
index 0000000..64d2d41
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation4a.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation5.png b/doc/salome/gui/GEOM/images/transformation5.png
new file mode 100755 (executable)
index 0000000..8d1cf92
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation5.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation6.png b/doc/salome/gui/GEOM/images/transformation6.png
new file mode 100755 (executable)
index 0000000..3e3828b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation6.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation7.png b/doc/salome/gui/GEOM/images/transformation7.png
new file mode 100755 (executable)
index 0000000..03a16fe
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation7.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation8.png b/doc/salome/gui/GEOM/images/transformation8.png
new file mode 100755 (executable)
index 0000000..77d0303
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation8.png differ
diff --git a/doc/salome/gui/GEOM/images/transformation9.png b/doc/salome/gui/GEOM/images/transformation9.png
new file mode 100755 (executable)
index 0000000..c7f6194
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transformation9.png differ
diff --git a/doc/salome/gui/GEOM/images/translationsn1.png b/doc/salome/gui/GEOM/images/translationsn1.png
new file mode 100755 (executable)
index 0000000..42e008c
Binary files /dev/null and b/doc/salome/gui/GEOM/images/translationsn1.png differ
diff --git a/doc/salome/gui/GEOM/images/translationsn2.png b/doc/salome/gui/GEOM/images/translationsn2.png
new file mode 100755 (executable)
index 0000000..01d6959
Binary files /dev/null and b/doc/salome/gui/GEOM/images/translationsn2.png differ
diff --git a/doc/salome/gui/GEOM/images/transparencysn.png b/doc/salome/gui/GEOM/images/transparencysn.png
new file mode 100755 (executable)
index 0000000..0b3638e
Binary files /dev/null and b/doc/salome/gui/GEOM/images/transparencysn.png differ
diff --git a/doc/salome/gui/GEOM/images/vector1.png b/doc/salome/gui/GEOM/images/vector1.png
new file mode 100755 (executable)
index 0000000..46e3b20
Binary files /dev/null and b/doc/salome/gui/GEOM/images/vector1.png differ
diff --git a/doc/salome/gui/GEOM/images/vector2.png b/doc/salome/gui/GEOM/images/vector2.png
new file mode 100755 (executable)
index 0000000..bb5c64c
Binary files /dev/null and b/doc/salome/gui/GEOM/images/vector2.png differ
diff --git a/doc/salome/gui/GEOM/images/wiresn.png b/doc/salome/gui/GEOM/images/wiresn.png
new file mode 100755 (executable)
index 0000000..623ae3b
Binary files /dev/null and b/doc/salome/gui/GEOM/images/wiresn.png differ
diff --git a/doc/salome/gui/GEOM/images/workplane4.png b/doc/salome/gui/GEOM/images/workplane4.png
new file mode 100755 (executable)
index 0000000..00835eb
Binary files /dev/null and b/doc/salome/gui/GEOM/images/workplane4.png differ
diff --git a/doc/salome/gui/GEOM/images/workplane5.png b/doc/salome/gui/GEOM/images/workplane5.png
new file mode 100755 (executable)
index 0000000..925ac57
Binary files /dev/null and b/doc/salome/gui/GEOM/images/workplane5.png differ
diff --git a/doc/salome/gui/GEOM/images/workplane6.png b/doc/salome/gui/GEOM/images/workplane6.png
new file mode 100755 (executable)
index 0000000..1f65862
Binary files /dev/null and b/doc/salome/gui/GEOM/images/workplane6.png differ
diff --git a/doc/salome/gui/GEOM/index.htm b/doc/salome/gui/GEOM/index.htm
deleted file mode 100755 (executable)
index 54c41df..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-<html>
-<head>
-<title>Geometry Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whstub.js"></script><script language="javascript1.2" src="whstart.js"></script>
-<script language="javascript">
-<!--
-var strDefaultTopic = "about:blank";
-var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:Noframeset
-var bNoApplet  = false;
-var strPaneDHTML  = "whd_nvp10.htm";           //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.
-var strPaneApplet = "whd_nvp20.htm";
-var strPaneList   = "whgdata/whnvp30.htm";
-
-var strHTML = "";
-var strPane = "";
-var nViewFrameType = -1;
-
-function CMRServer()
-{
-  this.m_cAgents = new Array;
-}
-var cMRServer = new CMRServer;
-
-//figure out which mode is the best
-if (!window.gAgent)
-{
-       // low end browser, we don't even try to determine it.
-       document.location = "whnjs.htm";
-}
-else
-{
-       if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)
-               document.location = "whnjs.htm";
-       else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))
-               document.location = "whnjs.htm";
-       else if (gbMac && gbIE4 && !gbIE5)
-               document.location = "whnjs.htm";
-       //figure out which mode is the best
-       else 
-       {
-               nViewFrameType=nWebhelpNavPaneMode;
-               if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)
-               {
-                       var gbDHTML=(nWebhelpNavPaneMode==1);
-                       if (gbNav4)                                                                             nViewFrameType = 2;
-                       if (gbNav4&&(gnVerMinor < 4.1))                                         nViewFrameType = 3;
-                       if (gbNav4&&(gnVerMinor == 4.6))                                        nViewFrameType = 3;
-                       if (gbIE4&&gbDHTML)                                                                     nViewFrameType = 1;
-                       if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2)                     nViewFrameType = 3;
-                       if (gbNav6&&gbDHTML)                                                            nViewFrameType = 1;
-                       if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2)         nViewFrameType = 3;
-                       if (gbMac)                                                                                      nViewFrameType = 3;
-                       if (gbOpera7&&nViewFrameType == 2)                                      nViewFrameType = 3;
-                       if ((bNoApplet)&&(nViewFrameType == 2))                         nViewFrameType = 3;
-               }
-       }
-}
-
-if (nViewFrameType!=-1)
-{
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
-       //The colordepth of the 16 color on Windows is 1. 
-       if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))
-       {
-          alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");
-          nViewFrameType = 3;
-       }
-
-       //figure out which one is navpane
-       if (nViewFrameType == 1)
-               strPane = strPaneDHTML;
-       else if (nViewFrameType == 2)
-               strPane = strPaneApplet;
-       else 
-               strPane = strPaneList;
-
-       var oParam = new Object();
-       oParam.sTopic = "";
-       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, window, 1, oParam);
-       if (SendMessage(oMsg) && oParam.sTopic != "")
-               strDefaultTopic =  oParam.sTopic;
-
-
-       if (nViewFrameType == 1)
-       {
-               //DHTML (iframe or xml based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" frameborder=\"1\">";
-               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane + "\" scrolling=\"no\"></frame>";
-               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
-       }
-       else if (nViewFrameType == 2)
-       {
-               //applet (xml based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" framespacing=\"0\" frameborder=\"0\" border=\"0\">";
-               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane+ "\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\"></frame>";
-               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
-       }
-       else if (nViewFrameType == 3)
-       {
-               //generic html (pure html based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\">";
-               strHTML += "<frame title=\"navigation frame\" src=\"" + strPane + "\" name=\"bsscleft\"  scrolling=\"no\"></frame>";
-               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" scrolling=\"auto\"></frame>";
-               strHTML += "</frameset>";
-       } 
-       else if (nViewFrameType == 4)
-       {
-               //no navipane at all
-               strHTML += "<frameset  id=\"whPfset\" border=\"0\" cols=\"100%,*\">";
-               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";
-               strHTML += "</frameset>";
-       }
-
-       document.write(strHTML);
-
-       RegisterListener2(window, WH_MSG_SHOWPANE);
-       RegisterListener2(window, WH_MSG_HIDEPANE);
-       RegisterListener2(window, WH_MSG_ISPANEVISIBLE);
-       window.onunload = window_unload;
-}
-
-function window_unload()
-{
-       UnRegisterListener2(window, WH_MSG_SHOWPANE);
-       UnRegisterListener2(window, WH_MSG_HIDEPANE);
-       UnRegisterListener2(window, WH_MSG_ISPANEVISIBLE);
-}
-
-
-function onSendMessage(oMsg)
-{
-       var nMsgId = oMsg.nMessageId;
-       if (nMsgId == WH_MSG_SHOWPANE)
-       {
-               getElement("whPfset").cols = "260,*";
-               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");
-               SendMessage(onMsg);
-               onMsg = new whMessage(WH_MSG_GETPANEINFO, this, 1, "");
-               if (SendMessage(onMsg))
-               {
-                       onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, onMsg.oParam);
-                       SendMessage(onMsg);
-               }
-               return false;
-       }
-       else if (nMsgId == WH_MSG_HIDEPANE)
-       {
-               getElement("whPfset").cols = "0,*";
-               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");
-               SendMessage(onMsg);
-               onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, "");
-               SendMessage(onMsg);
-               return false;
-       }
-       else if (nMsgId == WH_MSG_ISPANEVISIBLE)
-       {
-               var n = parseInt(getElement("whPfset").cols);
-               if (n > 0)
-               {
-                       oMsg.oParam.bVisible = true;
-               }
-               return false;
-       }
-       return true;
-}
-//-->
-</script>
-<body>
-<noscript>
-       <p> It seems javascript is disabled in your browser, please enable it and reload again, or click <a href="whnjs.htm">here</a> to view without javascript</p>
-</noscript>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/index_csh.htm b/doc/salome/gui/GEOM/index_csh.htm
deleted file mode 100755 (executable)
index 631f73d..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<html>
-<head>
-<title>Geometry Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whutils.js"></script>
-<script language="javascript">
-<!--
-var gCSHFileName   = "whc_data.htm";
-var gCSHSuffixName1 = "_csh.html";
-var gCSHSuffixName2 = "_csh.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-gCSHFileName="cshdat_webhelp.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-var gasProj = new Array();
-gasProj[0] = _getPath(document.location.href);
-var gCurrent = 0;
-
-function addProject(strProj)
-{
-       var len  = gasProj.length;
-       if (strProj)
-       {
-               strProj = _replaceSlash(strProj);
-               if (strProj.lastIndexOf("/") != strProj.length - 1)
-                       strProj += "/";
-               var strPPath = _getFullPath(_getPath(document.location.href), strProj);
-               var bFound = false;
-               for (var i = 0; i < len; i ++)
-               {
-                       if (isSamePath(gasProj[i], strPPath))
-                       {
-                               bFound = true;
-                               break;
-                       }
-               }
-               if (!bFound)
-                       gasProj[len] = strPPath;
-       }
-}
-
-function isSamePath(strPath1, strPath2)
-{
-       return strPath1.toLowerCase() == strPath2.toLowerCase();
-}
-
-function goNext()
-{
-       gCurrent ++;
-       var len = gasProj.length;
-       if (gCurrent >= len)
-               return getHomePage()
-       else
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;
-       return "";
-}
-
-function getRelHomePage(strLocation)
-{
-       var strCurPPath = _getPath(strLocation);
-       var strOriPPath = _getPath(getHomePage());
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);
-       var strURL = getHomePage() + "#" + strRelPath;
-       return strURL;
-}
-
-function getHomePage()
-{
-       var strHomePage;
-       var strTmp = location.toString();
-       var nPos = strTmp.indexOf("#");
-       if (nPos != -1)
-       {
-          strHomePage = strTmp.substring(0, nPos);
-       }
-       else
-       {
-          strHomePage = strTmp;
-       }
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);
-       if (nPos != -1)
-       {
-          strHomePage = strHomePage.substring(0,nPos);
-          if (nPos1 != -1)
-            strHomePage += ".html";
-          else
-            strHomePage += ".htm";
-       }
-       return strHomePage;
-}
-//-->
-</script>
-</head>
-<frameset rows="1,*">
-<frame name="dumb" src="about:blank"></frame>
-<frame name="csh" src="cshdat_webhelp.htm"></frame>            
-</frameset>
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/index_rhc.htm b/doc/salome/gui/GEOM/index_rhc.htm
deleted file mode 100755 (executable)
index 4598330..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<html>
-<head>
-<title>Geometry Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whutils.js"></script>
-<script language="javascript">
-<!--
-var gCSHFileName   = "whc_data.htm";
-var gCSHSuffixName1 = "_rhc.html";
-var gCSHSuffixName2 = "_rhc.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-gCSHFileName="cshdat_robohelp.htm";
-//-->
-</script>
-<script language="javascript">
-<!--
-var gasProj = new Array();
-gasProj[0] = _getPath(document.location.href);
-var gCurrent = 0;
-
-function addProject(strProj)
-{
-       var len  = gasProj.length;
-       if (strProj)
-       {
-               strProj = _replaceSlash(strProj);
-               if (strProj.lastIndexOf("/") != strProj.length - 1)
-                       strProj += "/";
-               var strPPath = _getFullPath(_getPath(document.location.href), strProj);
-               var bFound = false;
-               for (var i = 0; i < len; i ++)
-               {
-                       if (isSamePath(gasProj[i], strPPath))
-                       {
-                               bFound = true;
-                               break;
-                       }
-               }
-               if (!bFound)
-                       gasProj[len] = strPPath;
-       }
-}
-
-function isSamePath(strPath1, strPath2)
-{
-       return strPath1.toLowerCase() == strPath2.toLowerCase();
-}
-
-function goNext()
-{
-       gCurrent ++;
-       var len = gasProj.length;
-       if (gCurrent >= len)
-               return getHomePage()
-       else
-               frames["csh"].location = gasProj[gCurrent] + gCSHFileName;
-       return "";
-}
-
-function getRelHomePage(strLocation)
-{
-       var strCurPPath = _getPath(strLocation);
-       var strOriPPath = _getPath(getHomePage());
-       var strRelPath = _getRelativeFileName(strOriPPath, strCurPPath);
-       var strURL = getHomePage() + "#" + strRelPath;
-       return strURL;
-}
-
-function getHomePage()
-{
-       var strHomePage;
-       var strTmp = location.toString();
-       var nPos = strTmp.indexOf("#");
-       if (nPos != -1)
-       {
-          strHomePage = strTmp.substring(0, nPos);
-       }
-       else
-       {
-          strHomePage = strTmp;
-       }
-       var nPos1 = strHomePage.indexOf(gCSHSuffixName1);
-       var nPos = strHomePage.indexOf(gCSHSuffixName2);
-       if (nPos != -1)
-       {
-          strHomePage = strHomePage.substring(0,nPos);
-          if (nPos1 != -1)
-            strHomePage += ".html";
-          else
-            strHomePage += ".htm";
-       }
-       return strHomePage;
-}
-//-->
-</script>
-</head>
-<frameset rows="1,*">
-<frame name="dumb" src="about:blank"></frame>
-<frame name="csh" src="cshdat_robohelp.htm"></frame>           
-</frameset>
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/add_point_on_edge_operation.doc b/doc/salome/gui/GEOM/input/add_point_on_edge_operation.doc
new file mode 100644 (file)
index 0000000..00951bc
--- /dev/null
@@ -0,0 +1,36 @@
+/*!
+
+\page add_point_on_edge_operation_page Add Point on Edge
+
+\n To <b>Add Point on Edge</b> in the <b>Main Menu</b> select
+<b>Repair - > Add Point on Edge</b>.
+
+\n This operation splits an edge in two in accordance with the
+specified mode (by length or by parameter) and a value specifying the
+position of the point on edge (for example val =0.5; mode =
+Length). This operation is available in <b>OCC Viewer</b> only.
+
+\n The \b Result will be a \b GEOM_Object.
+
+\n <b>TUI Command:</b> <em>geompy.DivideEdge(Shape, EdgeID, Value,
+IsByParameter), </em> where \em Shape is a shape which contains an edge to
+be divided, \em EdgeID is the ID of the edge to be divided, if it = -1,
+then Shape is an edge, \em Value is a paramter on the edge or a
+length. \em IsByParameter if it is True then Value is the edge parameter
+in the range [0:1] otherwise it is a part of the length of the edge in the range
+[0: full length of the edge]
+\n <b>Arguments:</b> Name + 1 Edge + 1 value setting the position of
+the point according to one of the selected modes.
+
+\image html repair8.png
+
+\n <b>Example:</b>
+
+\image html image167.jpg
+
+\image html image168.jpg
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..6019112
--- /dev/null
@@ -0,0 +1,34 @@
+/*!
+
+\page archimede_page Archimede
+
+\n To produce an \b Archimede operation in the <b>Main Menu</b> select
+<b>Operations - > Archimede</b>
+
+\n This operation creates a plane corresponding to the modeled
+water-line of the object plunged into the water (in Z direction).
+
+\n The \b Result will be any \b GEOM_Object.
+
+\n <b>TUI Command:</b>
+<em>geompy.Archimede(Shape,Weight,WaterDensity,MeshingDeflection),</em>
+ where \em Shape is a shape to put into the water, \em Weight is a weight of
+the shape, \em WaterDensity  is density of water, \em MeshingDeflection is a
+deflection of the mesh, using to compute the section.
+\n <b>Arguments:</b> Name + 1 shape  + 3 values (Weight, Water Density
+& Meshing Deflection).
+
+\image html archimede.png
+
+\n <b>Example:</b>
+
+\image html archimedesn1.png
+
+\image html archimedesn2.png
+
+\image html archimedesn3.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of 
+\ref tui_archimede "Basic Operations".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/basic_operations.doc b/doc/salome/gui/GEOM/input/basic_operations.doc
new file mode 100644 (file)
index 0000000..a0dc155
--- /dev/null
@@ -0,0 +1,10 @@
+/*!
+
+\page basic_operations_page Basic Operations
+
+<ul>
+<li>\subpage partition_page</li>
+<li>\subpage archimede_page</li>
+</ul>
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..8fe02df
--- /dev/null
@@ -0,0 +1,11 @@
+/*!
+
+\page blocks_operations_page Blocks Operations
+
+<ul>
+<li>\subpage multi_transformation_operation_page</li>
+<li>\subpage explode_on_blocks_operation_page</li> 
+<li>\subpage propagate_operation_page</li>
+</ul>
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..80d560e
--- /dev/null
@@ -0,0 +1,13 @@
+/*!
+
+\page boolean_operations_page Boolean Operations
+
+<ul>
+<li>\subpage using_boolean_operations_page</li>
+<li>\subpage fuse_operation_page</li>
+<li>\subpage common_operation_page</li>
+<li>\subpage cut_operation_page</li>
+<li>\subpage section_opeartion_page</li>
+</ul>
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..d3964ec
--- /dev/null
@@ -0,0 +1,116 @@
+/*!
+
+\page build_by_blocks_page Building by blocks
+
+<h2>Introduction</h2>
+
+Below are some general notions about blocks:
+
+A block is a an elementary geometric solid that has specific
+geometric constraints oriented for meshing. In the hexahedral case,
+blocks have 6 faces and each face has 4 edges.
+
+Tetrahedral Block - is a block with constraints for tetrahedral
+meshing.
+
+Hexahedral Block - is a block with constraints for hexahedral meshing.
+
+Block Compound - is a compound composed of blocks only.
+
+These functionalities are available from the main menu via <em>New
+Entity / Blocks</em>.
+
+<ul>
+<li>\ref quad_face_anchor "Quadrangle face"</li>
+<li>\ref hexa_solid_anchor "Hexahedral solid"</li>
+</ul>
+
+<br>
+\anchor quad_face_anchor
+<h2>Quadrangle face</h2>
+
+\n <b>Description:</b> Builds a face using the below mentioned
+arguments. This operation allows to build a face bypassing the
+intermediate stage of building edges and wires (in the case of
+building by 4 points) or wires (in the case of building by 4 or 2
+edges).
+
+\n The \b Result of the operation will be a \b GEOM_Object (face).
+
+\n <b>TUI Command:</b>
+<ul>
+<li><em>geompy.MakeQuad4Vertices(V1, V2, V3, V4),</em> where V1, V2,
+V3, V4 are four vertices from which a face is constructed. Edges are
+created automatically.</li>
+<li><em>geompy.MakeQuad2Edges(E1, E2),</em> where E1, E2 are edges from
+which the face is constructed, two other edges are created
+automatically.</li>
+<li><em>geompy.MakeQuad(E1, E2, E3, E4),</em> where E1, E2, E3, E4 are
+four edges from which the face is constructed.</li>
+</ul>
+
+<b>Arguments:</b>
+<ul>
+<li>Name + 4 Points, or</li>
+<li>Name + 2 Edges, or</li>
+<li>Name + 4 Edges.</li>
+</ul>
+
+\n <b>Dialog Box:</b>
+
+\image html block1.png
+
+\image html block2.png
+
+\image html block3.png
+
+\n <b>Example:</b>
+\image html image185.jpg
+
+
+<br><br>
+\anchor hexa_solid_anchor
+<h2>Hexahedral solid</h2>
+
+\n <b>Description:</b> Builds a hexahedral solid. either of the below
+mentioned arguments. This operation allows to build a solid bypassing
+the intermediate stage of building a shell and 4 faces (in the case of
+building by 2 faces) or just a shell (in the case of building by 6
+faces).
+
+\n The \b Result of the operation will be a \b GEOM_Object (solid).
+
+\n <b>TUI Command:</b>
+<ul>
+<li><em>geompy.MakeHexa2Faces(F1, F2),</em> where F1 and F2 are faces
+from which the hexahedron is constructed, other four faces are created
+automatically.</li>
+<li><em>geompy.MakeHexa(F1, F2, F3, F4, F5, F6),</em> where F1 &mdash; F6 are six faces from which the hexahedron is constructed.</li>
+</ul>
+
+\n <b>Arguments:</b>
+<ul>
+<li>Name + 2 Faces, or</li>
+<li>Name + 6 Faces.</li>
+</ul>
+
+\n <b>Dialog Box:</b>
+
+\image html block4.png
+
+
+
+\image html block5.png
+
+\n <b>Example:</b>
+
+\image html image180.jpg
+<center>Hexahedral Solid built on the base of six Faces</center>
+
+\image html image181.jpg
+<center>Hexahedral Solid built on the base of two Faces</center>
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..53e1140
--- /dev/null
@@ -0,0 +1,87 @@
+/*!
+
+\page chamfer_operation_page Chamfer
+
+\n To produce a \b Chamfer in the <b>Main Menu</b> select 
+<b>Operations - > Transformation - > Chamfer</b>
+
+\n This operation allows you to make chamfer of the edges of a Shape.
+\n The \b Result will be a \b GEOM_Object.
+
+\n To create chamfer on all edges of the given shape, you need to
+define the <b>Main Object</b> to create a chamfer on and the \b
+Dimension (radius) of the chamfer.
+\n <b>TUI Command:</b> <em>geompy.MakeChamferAll(Shape, D)</em>
+\n <b>Arguments:</b> Name + 1 SHAPE + 1 value (Chamfer dimension).
+
+\image html chamfer1.png
+
+\image html chamfer_all.png
+
+\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
+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
+the offset on the first face, and the \b Angle, which is the angle
+between the first face and the chamfer plane.   
+
+
+\n To create chamfer on the specified edges of the given shape,  you
+need to define the <b>Main Object</b> to create a fillet on, select
+the two faces to which belongs the necessary common edge in the viewer
+and define the \b Dimension of the Chamfer.
+\n <b>TUI Command:</b> <em>geompy.MakeChamferEdge(Shape, D1, D2,
+Face1, Face2),</em> where \em Shape is a shape to create a chamfer on,
+\em D1 is a chamfer size along \em Face1, \em D2 is a chamfer size
+along \em Face2, \em Face1 and \em Face2 are indices of faces in
+Shape.
+
+\n <b>Alternative TUI Command:</b> <em>geompy.MakeChamferEdge(Shape, D, Angle,
+Face1, Face2),</em> where \em D1 is a chamfer size along \em Face1 and
+\em Angle is the angle between Face1 and the chamfer plane.
+
+\image html chamfer2.png
+
+\image html chamfer_edge.png
+
+\n To create chamfer on the specified faces of the given shape,  you need
+to define the <b>Main Object</b> to create a fillet on, select the
+necessary faces the OCC Viewer and define the \b Dimension of the
+Chamfer.
+\n <b>TUI Command:</b> <em>geompy.MakeChamferFaces(Shape, D1, D2,
+ListOfFaceID),</em> where \em Shape is a shape to create chamfer on,
+\em D1 and D2 are chamfer sizes along faces from  \em
+ListOfFaceID. For each Edge Face1 and Face2 are defined basing
+on their indices.
+
+\n <b>Alternative TUI Command:</b> <em>geompy.MakeChamferFaces(Shape, D, Angle,
+ListOfFaceID),</em> where \em D1 is a chamfer size along \em Face1 and
+\em Angle is the angle between Face1 and the chamfer plane.
+
+\image html chamfer3.png
+
+\image html chamfer_faces.png
+
+\n To create chamfer on an arbitrary set of edges of the given shape
+to define the <b>Main Object</b> to create a fillet on, select the
+necessary edges the OCC Viewer and define the \b Dimension of the
+Chamfer.
+\n <b>TUI Command:</b> <em>geompy.MakeChamferEdges(Shape, D1, D2,
+ListOfEdgeID),</em> where \em Shape is a shape to create chamfer on,
+\em D1 and D2 are chamfer sizes along faces defined by the algorithm
+basing on \em ListOfEdgeID, which is a list of indices of edges in
+\em Shape. For each Edge the algorithm selects Face1 and Face2 basing
+on their indices.
+
+\n <b>Alternative TUI Command:</b> <em>geompy.MakeChamferEdges(Shape, D, Angle,
+ListOfEdgeID),</em> where \em D1 is a chamfer size along \em Face1 and
+\em Angle is the angle between Face1 and the chamfer plane. 
+
+\image html chamfer4.png 
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_chamfer "Transformation Operations".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/change_orientation_operation.doc b/doc/salome/gui/GEOM/input/change_orientation_operation.doc
new file mode 100644 (file)
index 0000000..ecb0103
--- /dev/null
@@ -0,0 +1,25 @@
+/*!
+
+\page change_orientation_operation_page Change Orientation
+
+\n To <b>Change Orientation</b> in the <b>Main Menu</b> select <b>Repair - > Change Orientation</b>.
+\n This operation reverses the normals of selected faces or the normal
+of faces composing composing the selected opened shell.
+
+\n <b>TUI Command:</b> <em>geompy.ChangeOrientation(shape)</em>
+\n <b>Arguments:</b> Name + one or several objects (face(s)), opened shell(s).
+\n Uncheck <b>Create a copy</b> checkbox if you don't wish to leave
+the initial object in the project (<b>Result name</b> field will be
+locked).
+
+\image html changeorientation.png
+
+\n <b>Example:</b>
+
+\image html image38.gif
+<center><em>Inward orientation</em></center>
+
+\image html image40.gif
+<center><em>Outward orientation</em></center>
+
+*/
diff --git a/doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc b/doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc
new file mode 100644 (file)
index 0000000..f586dde
--- /dev/null
@@ -0,0 +1,29 @@
+/*!
+
+\page check_free_boundaries_operation_page Check Free Boundaries
+
+\n To <b>Check Free Boundaries</b> in the <b>Main Menu</b> select <b>Repair - > Check Free Boundaries</b>.
+
+\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 <b>TUI Command:</b> <em>(NoError, ClosedWires, OpenWires) =
+geompy.GetFreeBoundary(Shape),</em> 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 <b>Example:</b>
+
+\image html free_boudaries1.png
+
+\image html free_boudaries2.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..acf9d54
--- /dev/null
@@ -0,0 +1,27 @@
+/*!
+
+\page check_free_faces_operation_page Check Free Faces
+
+\n To <b>Check Free Faces</b> in the <b>Main Menu</b> select <b>Repair - > Check Free Faces</b>.
+\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 <b>TUI Command:</b> <em>GetFreeFacesIDs(Shape),</em> where \em Shape is
+a shape to be checked.
+
+\image html repair10.png
+
+\n <b>Example:</b>
+
+\image html free_faces1.png
+
+\image html free_faces2.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_check_free_faces "Repairing Operations".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/close_contour_operation.doc b/doc/salome/gui/GEOM/input/close_contour_operation.doc
new file mode 100644 (file)
index 0000000..54a2579
--- /dev/null
@@ -0,0 +1,35 @@
+/*!
+
+\page close_contour_operation_page Close Contour
+
+\n To produce a <b>Close Contour</b> operation in the <b>Main Menu</b>
+select <b>Repair - > Close Contour</b>.
+
+\n This operation closes an open contour and modifies the underlying
+face (if needed) in accordance with user specified mode:
+<ul>
+<li>By common vertex &ndash; a vertex is created between the end points
+of the contour and its tolerance is increased to a value of the gap
+between the ends of the contour;</li>
+<li>By new edge &ndash; a new edge is inserted between the end points of the contour.</li>
+</ul>
+This operation is available in <b>OCC Viewer</b> only.
+
+\n The \b Result will be a \b GEOM_Object.
+
+\n <b>TUI Command:</b> <em>geompy.CloseContour(Shape, Wires,
+IsCommonVertex),</em> where \em Shape is a shape to be processed, \em Wires is
+a list of edges or wires ID's which has to be closed within the
+shape (if the list contains only one element = -1, the shape itself is
+considered as a wire), \em IsCommonVertex if this parameter is True a
+closure has to be done by creation of a common vertex, otherwise an
+edge is added between the end vertices.
+\n <b>Arguments:</b> Name + 1 shape + contour (Wire, or a set of
+Edges) + mode of closure (by vertex or by edge)
+
+\image html repair3.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_close_contour "Repairing Operations".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/color.doc b/doc/salome/gui/GEOM/input/color.doc
new file mode 100644 (file)
index 0000000..fcaff6f
--- /dev/null
@@ -0,0 +1,16 @@
+/*!
+
+\page color_page Color
+
+\n You can change the filling color of your object in the standard
+<b>Select Color</b> menu accessible by right-clicking on an object and
+selecting \b Color in the pop-up menu box.
+
+\n <b>TUI Command:</b> <em>gg.setColor(ID, Short, Short, Short)</em>
+
+\image html selectcolor.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of 
+\ref tui_change_color "Changing Display Parameters".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/common_operation.doc b/doc/salome/gui/GEOM/input/common_operation.doc
new file mode 100644 (file)
index 0000000..21cd277
--- /dev/null
@@ -0,0 +1,24 @@
+/*!
+
+\page common_operation_page Common
+
+\n To produce a \b Common operation in the <b>Main Menu</b> select <b>Operations - > Boolean - > Common</b>
+
+\n This operation cuts the common part of two shapes and transforms it into an independent geometrical object.
+
+\n The \b Result will be any \b GEOM_Object.
+\n <b>TUI Command:</b> <em>geompy.MakeCommon(s1, s2)</em>
+\n <b>Arguments:</b> Name + 2 shapes.
+
+\image html bool2.png
+
+\n <b>Example:</b>
+
+\image html fusesn1.png
+
+\image html commonsn.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_common "Boolean Operations".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/creating_adv_obj.doc b/doc/salome/gui/GEOM/input/creating_adv_obj.doc
new file mode 100644 (file)
index 0000000..ebaf38a
--- /dev/null
@@ -0,0 +1,15 @@
+/*!
+
+\page create_adv_obj_page Creating Advanced Geometrical Objects
+
+<ul>
+<li>\subpage create_explode_page</li>
+<li>\subpage create_edge_page</li>
+<li>\subpage create_wire_page</li>
+<li>\subpage create_face_page</li>
+<li>\subpage create_shell_page</li>
+<li>\subpage create_solid_page</li>
+<li>\subpage create_compound_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_arc.doc b/doc/salome/gui/GEOM/input/creating_arc.doc
new file mode 100644 (file)
index 0000000..8ee49ca
--- /dev/null
@@ -0,0 +1,43 @@
+/*!
+
+\page create_arc_page Arc
+
+To create an \b Arc in the <b>Main Menu</b> select <b>New Entity - >
+Basic - > Arc</b>
+
+\n There are 2 algorithms to create an \b Arc in the 3D space.
+\n The \b Result of each operation will be a GEOM_Object (edge).
+
+\n Firstly, you can define an \b Arc by three \b Points that lie on it,
+where Point1 is the starting point, Point2 is a middle point of the
+arc and Point3 is the ending point of the arc.
+\n <b>TUI Command:</b> <em>geompy.MakeArc(Point1, Point2, Point3)</em>
+\n <b>Arguments:</b> Name + 3 vertices.
+
+\image html arc.png
+
+\n Secondly, you can define an \b Arc by \b Center, \b Start and \b End
+points. The arc is built from the \b Start point to the \b End point. The
+radius of the arc is defined by the distance between the \b Center point
+and the \b Start point. The \b End point defines the angle of the arc. If
+the distance between the \b Center point and the \b End point is not equal
+to the radius, the arc will be built anyway.
+\n \b Reverse radio button allows to change the direction of the arc.
+\n <b>TUI Command:</b> <em>geompy.MakeArcCenter(Center Point, Start
+Point, End Point, boolean Sense)</em>
+\n <b>Arguments:</b> Name + 3 vertices + Boolean.
+
+\image html arc2.png
+
+\n <b>Examples:</b>
+
+\image html arcsn.png
+<center>Arc by three points lying on it.</center>
+
+\image html arcsn1.png
+<center>Arc by Start, End and Center.</center>
+
+\image html arcsn2.png
+<center>Reversed arc.</center>
+
+*/
diff --git a/doc/salome/gui/GEOM/input/creating_basic_go.doc b/doc/salome/gui/GEOM/input/creating_basic_go.doc
new file mode 100644 (file)
index 0000000..a9a1cb3
--- /dev/null
@@ -0,0 +1,18 @@
+/*!
+
+\page create_basic_geom_obj_page Creating Basic Geometric Objects
+
+<ul>
+<li>\subpage create_point_page</li>
+<li>\subpage create_line_page</li>
+<li>\subpage create_circle_page</li>
+<li>\subpage create_ellipse_page</li>
+<li>\subpage create_arc_page</li>
+<li>\subpage create_curve_page</li>
+<li>\subpage create_vector_page</li>
+<li>\subpage create_plane_page</li>
+<li>\subpage create_wplane_page</li>
+<li>\subpage create_lcs_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_box.doc b/doc/salome/gui/GEOM/input/creating_box.doc
new file mode 100644 (file)
index 0000000..7c8268b
--- /dev/null
@@ -0,0 +1,41 @@
+/*!
+
+\page create_box_page Box
+
+To create a \b Box in the <b>Main Menu</b> select <b>New Entity - >
+Primitives - > Box</b>
+
+\n There are 2 algorithms for creation of a \b Box.
+\n The \b Result of each operation will be a GEOM_Object (SOLID).
+
+\n Firstly, you can define a \b Box by two specified \b Vertices (its
+opposite corners). The edges of the box will be parallel to the
+coordinate axes.
+\n <b>TUI Command:</b> <em>geompy.MakeBoxTwoPnt(Point1, Point2)</em>
+\n <b>Arguments:</b> Name + 2 vertices (opposite corners of the box).
+
+\image html box1.png
+
+\n Secondly, you can define a \b Box by specified dimensions along the
+coordinate axes and with edges, parallel to them.  The center of the
+box will be at point (DX/2, DY/2, DZ/2).
+\n <b>TUI Command:</b> <em>geompy.MakeBoxDXDYDZ(DX, DY, DZ)</em>
+\n <b>Arguments:</b> Name + 3 values (dimensions at origin).
+
+\image html box2.png
+
+\b NB! There is a third way to create a \b Box, which is currently
+accessible only via \b TUI commands.
+\n You can define a \b Box by the coordinates of two \b Vertices (in
+this way you don't need to create them in advance).
+\n <b>TUI Command:</b> <em>geompy.MakeBox(x1,y1,z1,x2,y2,z2)</em>
+\n <b>Arguments:</b> Name + X, Y and Z coordinates of both points.
+
+<b>Example:</b>
+
+\image html boxes.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..153c610
--- /dev/null
@@ -0,0 +1,42 @@
+/*!
+
+\page create_circle_page Circle
+
+To create a \b Circle in the <b>Main Menu</b> select <b>New Entity - >
+Basic - > Circle</b>
+
+\n There are 3 algorithms to create a \b Circle in the 3D space. 
+\n The \b Result of each operation will be a GEOM_Object (edge).
+
+\n Firstly, you can define a \b Circle by a <b>Center Point</b>, a \b
+Vector giving the circle's normal and a \b Radius.
+\n <b>TUI Command:</b> <em>geompy.MakeCircle(Point, Vector,
+Radius)</em>
+\n <b>Arguments:</b> Name + 1 vertex (for the center) + 1 edge (for
+the direction) + Radius.
+
+\image html circle1.png
+
+\n Secondly, you can define a \b Circle by three \b Points that lie on it. 
+\n <b>TUI Command:</b> <em>geompy.MakeCircleThreePnt(Point1, Point2, Point3)</em>
+\n <b>Arguments:</b> Name + 3 points which will form the circle.
+
+\image html circle2.png
+
+<b>Example:</b>
+\image html circles.png
+
+\n Finally, you can define a circle by a <b>Center Point</b> and two
+\b Points.  
+\n <b>TUI Command:</b> <em>geompy.MakeCircleCenter2Pnt(Point1, Point2,
+Point3)</em>, where Point1 is the center of the circle, the distance
+between point1 and Point2 is the radius of the circle and Point3 helps
+to define the plane where the circle lies.
+\n <b>Arguments:</b> Name + 3 points.
+
+\image html circle3.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..23927a4
--- /dev/null
@@ -0,0 +1,12 @@
+/*!
+
+\page create_complex_obj_page Creating Complex Objects
+
+<ul>
+<li>\subpage create_extrusion_page</li>
+<li>\subpage create_revolution_page</li>
+<li>\subpage creaet_filling_page</li>
+<li>\subpage create_extrusion_alongpath_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_compound.doc b/doc/salome/gui/GEOM/input/creating_compound.doc
new file mode 100644 (file)
index 0000000..30d685b
--- /dev/null
@@ -0,0 +1,23 @@
+/*!
+
+\page create_compound_page Compound
+
+\n To create a \b Compound in the <b>Main Menu</b> select <b>New
+Entity - > Build - > Compound</b>.
+
+\n You can create a compound from a list of shells.
+\n The \b Result will be a \b GEOM_Object (COMPOUND).
+
+\n <b>TUI Command:</b> <em>geompy.MakeCompound(ListOfShape)</em>
+\n <b>Arguments:</b> Name + List of shapes.
+
+\image html neo-obj7.png
+
+\n <b>Example:</b>
+
+\image html compoundsn.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..827db86
--- /dev/null
@@ -0,0 +1,41 @@
+/*!
+
+\page create_cone_page Cone
+
+\n To create a \b Cone in the <b>Main Menu</b> select <b>New Entity - > Primitives - > Cone</b>
+
+\n There are two algorithms for creation of a \b Cone.
+\n The \b Result of each operation will be a GEOM_Object (SOLID).
+
+
+\n Firstly, you can define a \b Cone by the <b>Base Point</b> (the
+central point of the cone base), the \b Axis, the \b Height and the
+first and the second \b Radiuses.
+\n <b>TUI Command:</b> <em>geompy.MakeCone(Point, Axis, Radius1,
+Radius2, height)</em>
+\n <b>Arguments:</b> Name + 1 vertex + 1 vector (for direction) + 3
+values (Radius of the base part, radius of the upper part, height).
+
+\image html cone1.png
+
+\n Secondly, you can define a \b Cone with the center at the origin of
+coordinates by its \b Height and \b Radiuses. The \b Axis of the \b
+Cone will be collinear to the OZ axis of the coordinate system.
+\n <b>TUI Command:</b> <em>geompy.MakeConeR1R2H(Radius1, Radius2, Height)</em>
+\n <b>Arguments:</b> Name + 3 values (Radius of the base part, radius
+of the upper part, height).
+
+\image html cone2.png
+
+\note If both radiuses are non-zero, the \b Cone will be truncated. If
+the radiuses are equal, a \b Cylinder will be created instead.
+
+<b>Example:</b>
+
+\image html cones.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of 
+\ref tui_creation_cone "Primitives".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/creating_curve.doc b/doc/salome/gui/GEOM/input/creating_curve.doc
new file mode 100644 (file)
index 0000000..e442851
--- /dev/null
@@ -0,0 +1,41 @@
+/*!
+
+\page create_curve_page Curve
+
+To create a \b Curve in the <b>Main Menu</b> select <b>New Entity - >
+Basic - > Curve</b>
+
+\n There are three algorithms to create a \b Curve in the 3D space. Each
+time you define it by a list of \b Points through which the curve
+passes. The three <b>Curve Construction</b> menu choices correspond to three
+possible types of curves: Polyline, Besier or B-spline (Interpolated).
+\n The \b Result of each operation will be a GEOM_Object (edge).
+
+\n <b>TUI Commands:</b>
+<ul>
+<li><em>geompy.MakePolyline(ListOfShapes)</em></li>
+<li><em>geompy.MakeBezier(ListOfShapes)</em></li>
+<li><em>geompy.MakeInterpol(ListOfShapes)</em></li>
+</ul>
+ListOfShape is a list of points through which the curve passes.
+
+<b>Arguments:</b> Name + at least 2 points which will serve as nodes
+on the curve.
+
+\image html curve.png
+
+<b>Examples:</b>
+
+\image html polyline.png
+<center>Polyline</center>
+
+\image html bezier.png
+<center>Bezier</center>
+
+\image html interpol.png
+<center>B-Spline</center>
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of 
+\ref tui_creation_curve "Basic Geometric Objects".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_cylinder.doc b/doc/salome/gui/GEOM/input/creating_cylinder.doc
new file mode 100644 (file)
index 0000000..d6debda
--- /dev/null
@@ -0,0 +1,36 @@
+/*!
+
+\page create_cylinder_page Cylinder
+
+\n To create a \b Cylinder in the <b>Main Menu</b> select <b>New
+Entity - > Primitives - > Cylinder</b>
+
+\n There are 2 algorithms for creation of a \b Cylinder.
+\n The \b Result of each operation will be a GEOM_Object (SOLID).
+
+\n Firstly, you can define a \b Cylinder by the <b>Base Point</b> (the central
+point of the cylinder base), the \b Vector (the axis of the cylinder),
+and its dimensions: the Radius and the Height.
+\n <b>TUI Command:</b> <em>geompy.MakeCylinder(Point, Axis, Radius, Height)</em>
+\n <b>Arguments:</b>  Name + 1 vertex + 1 vector + 2 values
+(Dimensions: radius and height).
+
+\image html cylinder1.png
+
+\n Secondly, you can define a \b Cylinder by the given radius and the
+height at  the origin of coordinate system. The axis of the cylinder
+will be collinear to the OZ axis of the coordinate system.
+\n <b>TUI Command:</b> <em>geompy.MakeCylinderRH(Radius, Height)</em>
+\n <b>Arguments:</b> Name + 2 values (Dimensions at origin: radius and
+height).
+
+\image html cylinder2.png
+
+<b>Example:</b>
+
+\image html cylinders.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of 
+\ref tui_creation_cylinder "Primitives".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_edge.doc b/doc/salome/gui/GEOM/input/creating_edge.doc
new file mode 100644 (file)
index 0000000..fb4cebf
--- /dev/null
@@ -0,0 +1,26 @@
+/*!
+
+\page create_edge_page Edge
+
+\n To create an \b Edge in the <b>Main Menu</b> select <b>New Entity- > Build - > Edge</b> 
+
+\n You can create an \b Edge from two points (\b Point1 and \b Point2), being the first and the last vertices of the edge.
+
+The \b Result  will be a \b GEOM_Object (EDGE).
+
+<b>TUI Command:</b> <em>geompy.MakeEdge(Vertex1, Vertex2),</em> where
+Vertex1 and Vertex2 are correspondingly the first and the last vertex
+of the edge.
+
+<b>Arguments:</b> Name + 2 vertices.
+
+\image html neo-obj2.png
+
+\n <b>Example:</b>
+
+\image html edgesn.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of 
+\ref tui_creation_edge "Advanced Geometric Objects".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_ellipse.doc b/doc/salome/gui/GEOM/input/creating_ellipse.doc
new file mode 100644 (file)
index 0000000..7897218
--- /dev/null
@@ -0,0 +1,24 @@
+/*!
+
+\page create_ellipse_page Ellipse
+
+To create an \b Ellipse in the <b>Main Menu</b> select <b>New Entity - > Basic - > Ellipse</b>
+
+\n You can define an \b Ellipse by its <b>Center Point</b>, a \b
+Vector giving its normal, and its <b>Major & Minor Radiuses</b>.
+\n The \b Result of the operation will be a GEOM_Object (edge).
+
+\n <b>TUI Command:</b> <em>geompy.MakeEllipse(Point, Vector, RadiusMajor, RadiusMinor)</em>
+\n <b>Arguments:</b> Name + 1 vertex (for the center) + 1 edge (for
+the direction) + 1 X Radius + 1 Y Radius.
+
+\image html ellipse.png
+
+<b>Example:</b>
+
+\image html ellipsesn.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..515978e
--- /dev/null
@@ -0,0 +1,43 @@
+/*!
+
+\page create_explode_page Explode
+
+\n To \b Explode an object into subshapes, in the <b>Main Menu</b>
+select <b>New Entity > Explode</b>.
+
+\n To create a list of  subshapes (vertices, edges, wires etc.) of the
+given shape using the \b Explode operation, you need to define the <b>Main
+Object</b>, which will be exploded and the <b>Type of Subshapes</b> you wish to
+obtain from it.
+\n The \b Result of the operation will be a List of \b GEOM_Objects
+(vertexes, edges, wires, faces, shells or solids).
+
+\n Using <b>TUI Commands</b> you can perform this operation in a
+variety of ways:
+<ul>
+<li><em>geompy.SubShapeAll(Shape, Type)</em> explodes a Shape on
+subshapes of a given Type and returns a List of sub-shapes.</li>
+<li><em>geompy.SubShapeAllIDs(Shape, Type)</em> explodes a Shape on
+subshapes of a given Type and returns a List of IDs of
+sub-shapes.</li>
+<li><em>geompy.SubShapeAllSorted(Shape, Type)</em> xplodes a shape on
+subshapes of a given type and sorts them by coordinates of their
+gravity centers, returning      a list of sub-shapes.</li>
+<li><em>geompy.SubShapeAllSortedIDs(Shape, Type)</em> explodes a shape
+on subshapes of a given type and sorts them by coordinates of their
+gravity centers,  returning a List of IDs of sub-shapes.</li>
+<li><em>geompy.SubShape(Shape, Type, ListOfInd)</em> allows to obtain
+a compound of sub-shapes of  the Shape,  selected by they indices in a
+list of all sub-shapes of the given Type. Each index is in the range
+[1, Nb_Sub-Shapes_Of_Given_Type].</li>
+<li><em>geompy.SubShapeSorted(Shape, Type, ListOfInd)</em> allows to
+obtain a compound of sub-shapes of the Shape, selected by they indices
+in sorted list of all sub-shapes of the given Type. Each index is in
+the range [1, Nb_Sub-Shapes_Of_Given_Type]</li>
+</ul>
+
+\n <b>Arguments:</b>1 SHAPE + 1 type of SubShape.
+
+\image html neo-obj1.png
+
+*/
diff --git a/doc/salome/gui/GEOM/input/creating_extrusion.doc b/doc/salome/gui/GEOM/input/creating_extrusion.doc
new file mode 100644 (file)
index 0000000..4b2c0ac
--- /dev/null
@@ -0,0 +1,42 @@
+/*!
+
+\page create_extrusion_page Extrusion
+
+\n To generate an \b Extrusion on an object in the <b>Main Menu</b>
+select <b>New Entity - > Generation  - > Extrusion</b>
+
+\n There are 2 algorithms for creation of an \b Extrusion (Prism).
+\n The \b Result of the operation will be a GEOM_Object (edge, face, shell
+solid or compsolid).
+
+\n Firstly, you can define the <b>Base Shape</b> (a basis of the
+extrusion), the \b Vector (a direction of the extrusion) and the \b
+Height of extrusion.
+\b <b>TUI Command:</b> <em>geompy.MakePrismVecH(Base, Vector, Height)</em>
+\n <b>Arguments:</b> Name + 1 shape (vertex, edge, planar wire, face or
+shell) serving as base object + 1 vector (for direction of the
+extrusion) + 1 value (dimension).
+
+\image html extrusion1.png
+
+\n Secondly, you can define the \b Extrusion by the <b>Base Shape</b>
+and the \b Start and <b>End Point</b> of the \b Vector (in this way
+you don't need to create it in advance).
+\n <b>TUI Command:</b> <em>geompy.MakePrism(Base, Point1, Point2)</em>
+\n <b>Arguments:</b> Name + 1 shape (vertex, edge, planar wire, face or
+shell) serving as base object + 2 vertices.
+
+\image html extrusion2.png
+
+<b>Examples:</b>
+
+\image html prisms_basessn.png
+<center>Base Shape</center>
+
+\image html prismssn.png
+<center>Prisms</center>
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of
+\ref tui_creation_prism "Complex Geometric Objects".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/creating_extrusion_alongpath.doc b/doc/salome/gui/GEOM/input/creating_extrusion_alongpath.doc
new file mode 100644 (file)
index 0000000..77e4531
--- /dev/null
@@ -0,0 +1,30 @@
+/*!
+
+\page create_extrusion_alongpath_page Pipe Construction
+
+To generate a \b Pipe in the <b>Main Menu</b> select <b>New Entity - > Generation  - > Extrusion along a path</b>
+
+\n To create an extruded \b Pipe shape, you need to define the <b>Base
+Object</b> (vertex, edge, planar wire, face or shell), which will be extruded
+and the <b>Path Object</b> (edge or wire) along which the <b>Base 
+Object</b> will be extruded.
+\n The \b Result of the operation will be a GEOM_Object (edge, face, shell,
+solid or compsolid).
+
+\n <b>TUI Command:</b> <em>geompy.MakePipe(baseShape, pathShape)</em>
+\n <b>Arguments:</b> Name + 1 shape (vertex, edge, planar wire, face or
+shell) serving as base object + 1 shape (edge or wire) for
+definition of the path.
+
+\image html pipe.png
+
+<b>Example:</b>
+
+\image html pipe_wire_edgesn.png
+
+\image html pipesn.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..bdf6164
--- /dev/null
@@ -0,0 +1,38 @@
+/*!
+
+\page create_face_page Face
+
+To create a \b Face in the <b>Main Menu</b> select <b>New Entity - >
+Build - > Face</b>
+
+\n To create a \b Face you need to select input shape(s). The list of
+input shapes can include shapes of any type; if the shapes are nor
+wires or edges, the algorithm extracts all edges from
+the input shapes and works on the obtaineed edges.
+\n The edges and wires do not necessarily have to be closed, the
+algorithm automatically builds a wire of maximum length from all
+given edges and wires. If it founds multiple closed wires, it can
+build a face with holes or some separate faces, depending on the
+placement of the wires. If some resulting wires remain open, they will
+be added in the resulting compound "as is".
+\n Check <b>Try to create a planar face</b> to create a planar
+face or nothing if it is impossible.
+\n The \b Result will be a \b GEOM_Object (FACE).
+
+\n <b>TUI Command:</b> <em>geompy.MakeFaceWires([list of Shapes], isPlanarWanted)</em>
+\n <b>Arguments:</b> Name + 1 wire.
+
+\image html neo-obj4.png
+
+\n <b>Example:</b>
+
+\image html facesn1.png
+
+\image html facesn2.png
+
+\image html facesn3.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of 
+\ref tui_creation_face "Advanced Geometric Objects".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/creating_filling.doc b/doc/salome/gui/GEOM/input/creating_filling.doc
new file mode 100644 (file)
index 0000000..25c9939
--- /dev/null
@@ -0,0 +1,28 @@
+/*!
+
+\page creaet_filling_page Filling Surface with Edges
+
+To generate a \b Filling in the <b>Main Menu</b> select <b>New Entity - > Generation  - > Filling</b>
+
+\n To create a curving face using several edges you need to define the
+<b>Edges Compound</b>, \b Minimum and <b>Maximum Degree</b>, \b
+Tolerance for \b 2D and for \b 3D  and the <b>Number of Iterations</b>.
+\n The \b Result of the operation will be a GEOM_Object (face).
+
+\n <b>TUI Command:</b> <em>geompy.MakeFilling(Edges, MinDegree, MaxDegree, Tol2D, Tol3D, NbIter)</em>
+\n <b>Arguments:</b> Name + 1 List of edges + 5 Parameters
+(Min. degree, Max. degree, Number of iterations, 2D tolerance, 3D
+tolerance, Number of iterations).
+
+\image html filling.png
+
+<b>Example:</b>
+
+\image html filling_compoundsn.png
+
+\image html fillingsn.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..bc66bed
--- /dev/null
@@ -0,0 +1,49 @@
+/*!
+
+\page create_geom_obj_page Creating geometrical objects
+
+<ul>
+<li>\subpage create_basic_geom_obj_page</li>
+<ul>
+<li>\ref create_point_page</li>
+<li>\ref create_line_page</li>
+<li>\ref create_circle_page</li>
+<li>\ref create_ellipse_page</li>
+<li>\ref create_arc_page</li>
+<li>\ref create_curve_page</li>
+<li>\ref create_vector_page</li>
+<li>\ref create_plane_page</li>
+<li>\ref create_wplane_page</li>
+<li>\ref create_lcs_page</li>
+</ul>
+<li>\subpage create_primitives_page</li>
+<ul>
+<li>\ref create_box_page</li>
+<li>\ref create_cylinder_page</li>
+<li>\ref create_sphere_page</li>
+<li>\ref create_torus_page </li>
+<li>\ref create_cone_page </li>
+</ul>
+<li>\subpage create_complex_obj_page</li>
+<ul>
+<li>\ref create_extrusion_page</li>
+<li>\ref create_revolution_page</li>
+<li>\ref creaet_filling_page</li>
+<li>\ref create_extrusion_alongpath_page</li>
+</ul>
+<li>\subpage work_with_groups_page</li>
+<li>\subpage build_by_blocks_page</li>
+<li>\subpage create_sketcher_page</li>
+<li>\subpage create_adv_obj_page</li>
+<ul>
+<li>\ref create_explode_page</li>
+<li>\ref create_edge_page</li>
+<li>\ref create_wire_page</li>
+<li>\ref create_face_page</li>
+<li>\ref create_shell_page</li>
+<li>\ref create_solid_page</li>
+<li>\ref create_compound_page</li>
+</ul>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_lcs.doc b/doc/salome/gui/GEOM/input/creating_lcs.doc
new file mode 100644 (file)
index 0000000..106effc
--- /dev/null
@@ -0,0 +1,40 @@
+/*!
+
+\page create_lcs_page Local Coordinate System
+
+To create a <b>Local Coordinate System</b> in the <b>Main Menu</b> select <b>New Entity - > Basic - > Local Coordinate System</b>
+\n There are three algorithms to choose from.
+
+\n Firstly, you can define the values of X, Y, and Z coordinates of origin and the directions of X and Y axes directly in the menu.
+\n <b>TUI command:</b> <em>geompy.MakeMarker(OX, OY, OZ, XDX, XDY, XDZ,
+YDX, YDY, YDZ)</em>, where OX, OY, OZ are coordinates of the origin of
+LCS, XDX, XDY, XDZ is a vector of OX  direction of the LCS and YDX,
+YDY, YDZ is a a vector of OY direction of the LCS.
+\n <b>Arguments:</b> Name + Coordinates of origin, X axis direction, Y axis direction.
+
+\image html neo-localcs1.png
+
+\n Secondly, you can simply select any object in the object browser or
+3D viewer, in this case the coordinates of origin and axes direction
+of the LCS are calculated automatically basing on the selected object.
+\n <b>Arguments:</b> Name + reference object.
+
+\image html neo-localcs2.png
+
+\n The last algorithm of LCS construction allows to define the
+coordinates of origin by a point and axes directions by a line or a
+vector.
+\n <b>Arguments:</b> Name + 1 point of origin + X axis direction, Y
+axis direction.
+
+\image html neo-localcs3.png
+
+Press Â«OK» or Â«Apply» button to create an LCS at the location with the
+specified coordinates. The new object is shown in the Object Browser
+and in 3D viewer.
+
+<b>Example:</b>
+
+\image html image145.jpg
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..befde32
--- /dev/null
@@ -0,0 +1,30 @@
+/*!
+
+\page create_line_page Line
+
+To create a \b Line in the <b>Main Menu</b> select <b>New Entity - >Basic - > Line</b>
+
+\n To create a \b Line you should define \b Point1 and \b Point2,
+which are the points through  which the \b Line passes.
+\n The \b Result of the operation will be a GEOM_Object (edge).
+
+\n <b>TUI Command:</b> <em>geompy.MakeLineTwoPnt(Point1, Point2)</em>
+\n <b>Arguments:</b> Name + 2 vertices.
+
+\image html line.png
+
+<b>Example:</b>
+
+\image html lines.png
+
+\b NB! There is another way to create a line, which is currently
+accessible only via \b TUI commands.
+
+You can define a line  passing through the given \b Point and parallel
+to the given \b Vector.
+\n <b>TUI Command:</b> <em>geompy.MakeLine(Point, Vector)</em>
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of
+\ref tui_creation_line "Basic Geometric Objects".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_plane.doc b/doc/salome/gui/GEOM/input/creating_plane.doc
new file mode 100644 (file)
index 0000000..d7c9e8f
--- /dev/null
@@ -0,0 +1,48 @@
+/*!
+
+\page create_plane_page Plane
+
+To create a \b Plane in the <b>Main Menu</b> select <b>New Entity - >
+Basic - > Plane</b>
+
+\n There are three algorithms to create a plane in the 3D space.
+\n The \b Result of each operation will be a GEOM_Object (face).
+
+\n Firstly, you can define a \b Plane by a \b Point through which  the
+plane passes, a \b Vector giving a normal of the plane and a <b>Size
+of the Plane</b> (size of a side of quadrangle face, representing the
+plane).
+\n <b>TUI Command:</b> <em>geompy.MakePlane(Point, Vector, TrimSize)</em>
+\n <b>Arguments:</b> Name + 1 vertex + 1 vector  + 1 value (to define
+the size of the plane).
+
+\image html plane1.png
+
+\n Secondly, you can define a \b Plane by three \b Points through
+which  the plane passes and a <b>Size of the Plane</b>.
+\n <b>TUI Command:</b> <em>geompy.MakePlaneThreePnt(Point1, Point2, Point3, TrimSize)</em>
+\n <b>Arguments:</b> Name + 3 vertices + 1 value (to define the size
+of the plane).
+
+\image html plane2.png
+
+\n Finally, you can define a \b Plane by another \b Plane or <b>Local
+Coordinate System</b> and a <b>Size of the Plane</b>.
+\n <b>TUI Command:</b> <em>geompy.MakePlaneFace(Face, TrimSize)</em>
+\n <b>Arguments:</b> Name + 1 face + 1 value (to define the size of
+the plane).
+
+\image html plane3.png
+
+<b>Examples:</b>
+
+\image html planes1.png
+<center>Planes created on the basis of the Global Coordinate System</center>
+
+\image html plane_on_face.png
+<center>A Plane created on a Face of another Shape</center>
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of
+\ref tui_creation_plane "Basic Geometric Objects".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/creating_point.doc b/doc/salome/gui/GEOM/input/creating_point.doc
new file mode 100644 (file)
index 0000000..0f91a0f
--- /dev/null
@@ -0,0 +1,44 @@
+/*!
+
+\page create_point_page Point
+
+To create a \b Point in the <b>Main Menu</b> select <b>New Entity - >
+Basic - > Point</b>
+
+\n There are three 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).
+
+\n Firstly, we can define a point by setting its X, Y and Z \b Coordinates. 
+\n <b>TUI Command:</b> <em>geompy.MakeVertex(X, Y, Z)</em>
+\n \b Arguments: Name (Vertex_n by default) + X, Y and Z coordinates of
+the point.
+
+\image html point1.png
+
+\n Secondly,  we can define a point by a \b Reference to another point
+and the shift of the coordinates of the new point regarding the
+coordinates of the old one.
+\n <b>TUI Command:</b> <em>geompy.MakeVertexWithRef(Reference, X,Y,Z).</em>
+\n <b>Arguments:</b> Name + 1 reference point + 3 coordinates defining
+the position of this point regarding the reference one.
+
+\image html neo-point2.png
+
+\n Finally, we can define a point by an \b Edge and a \b Parameter
+indicating its position on the Edge, ranging from 0.0 to 1.0. For example, 0.5 means that the
+point is located in the middle of the edge.
+\n <b>TUI Command:</b> <em>geompy.MakeVertexOnCurve(Edge,Parameter).</em>
+\n <b>Arguments:</b> Name + 1 edge  + 1 Parameter defining the
+position of the point on the given edge.
+
+\image html point3.png
+
+<b>Example:</b>
+
+\image html points.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..d13a5ee
--- /dev/null
@@ -0,0 +1,13 @@
+/*!
+
+\page create_primitives_page Creating Primitives
+
+<ul>
+<li>\subpage create_box_page</li>
+<li>\subpage create_cylinder_page</li>
+<li>\subpage create_sphere_page</li>
+<li>\subpage create_torus_page</li>
+<li>\subpage create_cone_page</li>
+</ul>
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..dfe8c7c
--- /dev/null
@@ -0,0 +1,26 @@
+/*!
+
+\page create_revolution_page Revolution
+
+To create an extruded shape by \b Revolution in the <b>Main Menu</b>
+select <b>New Entity - > Generation  - > Revolution</b>
+
+\n To create an extruded shape by \b Revolution you need to define the
+source \b Object to rotate, the \b Axis of revolution and the \b Angle by which
+the \b Shape has to be rotated around the \b Axis (in degrees).
+\n The \b Result of the operation will be a GEOM_Object (edge, face, shell,
+solid or compsolid).
+
+\n <b>TUI Command:</b> <em>geompy.MakeRevolution(Shape, Axis, Angle).</em>
+\n <b>Arguments:</b> Name + 1 shape (vertex, edge, planar wire, face or shell) serving as base object + 1 vector (for direction) + 1 value (angle).
+
+\image html revolution.png
+
+<b>Example:</b>
+
+\image html revolutionsn.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..7c87d3d
--- /dev/null
@@ -0,0 +1,23 @@
+/*!
+
+\page create_shell_page Shell
+
+To create a \b Shell in the <b>Main Menu</b> select <b>New Entity - >
+Build - > Shell</b>
+
+\n You can create a \b Shell from a list of faces and (or) shells.
+\n The \b Result will be a \b GEOM_Object (shell).
+
+\n <b>TUI Command:</b> <em>geompy.MakeShell(ListOfShape)</em>
+\n <b>Arguments:</b> Name + List of faces having connected edges.
+
+\image html neo-obj5.png
+
+\n <b>Example:</b>
+
+\image html shellsn.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of 
+\ref tui_creation_shell "Advanced Geometric Objects".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_sketcher.doc b/doc/salome/gui/GEOM/input/creating_sketcher.doc
new file mode 100644 (file)
index 0000000..8862927
--- /dev/null
@@ -0,0 +1,70 @@
+/*!
+
+\page create_sketcher_page Sketcher
+
+Sketcher allows to create curves of 2 types: line segment and arc.
+By default the start point of the curve is located at the point of
+origin of the reference coordinate system and the curve lies in the
+plane XOY.  The end of the curve is defined by
+means of "destination", which can be a destination point (for segment
+only) or destination direction coupled with length of a segment or
+angle and radius of an arc.
+
+\n Sketcher is able to create planar curves only. Therefore, it is
+necessary to select a working plane before starting a sketch (by
+default, XOY plane is used). Sketcher creates curves lying in the
+current working plane (New Entity -> Basic -> Working Plane).
+
+\n This functionality is available from the main menu via <em>New
+Entity / Sketch</em>.
+
+\n The Result of the operation will be a \b GEOM_Object.
+
+\n <b>TUI Command:</b> <em>geompy.MakeSketcher(Command, WorkingPlane)</em>
+\n This algorithm creates a sketcher (wire or face), following the
+textual description, passed through the Command argument. The edges of
+the resulting wire or face will be arcs of circles and/or linear
+segments.
+\n \em Command is a string, defining the sketcher by the coordinates of
+points in the local working plane.
+\n <em>WorkingPlane</em> can be a plane or a planar face. The plane is
+defined by the XYZ coordinates of three non-coincident points. The
+planar face is an existing GEOM_Object.
+
+\n <b>Arguments:</b>
+<ol>
+<li>Element type (segment or arc).</li>
+<li>Destination type (point or direction).</li>
+<li>Destination point by means of:</li>
+<ul>
+<li>absolute coordinates X,Y;</li>
+<li>relative coordinates DX, DY (with respect to the current point);</li>
+<li>selection of an existing point.</li>
+</ul>
+<li>Destination direction by means of:</li>
+<ul>
+<li>angle between the new segment and the previous one;</li>
+<li>perpendicular to the previous segment (same as previous, but angle
+is predefined and is equal to 90 degrees);</li>
+<li>tangent to the previous segment;</li>
+<li>vector components DX, DY.</li>
+</ul>
+<li>Parameters of an element (for segment : length or target X or Y coordinate value, for arc : radius and angle).</li>
+</ol>
+
+\n <b>Dialog Box:</b>
+
+\image html neo-scetcher1.png
+
+\image html neo-scetcher2.png
+
+\n <b>Example:</b>
+
+\image html image204.jpg
+
+\image html image206.jpg
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..139dbfe
--- /dev/null
@@ -0,0 +1,25 @@
+/*!
+
+\page create_solid_page Solid
+
+\n To create a \b Solid in the <b>Main Menu</b> select <b>New Entity - > Build - >
+Solid</b>.
+
+You can create a \b Solid from a list of shells.
+
+The \b Result will be a  \b GEOM_Object (SOLID).
+
+\n <b>TUI Command:</b> <em>geompy.MakeSolid(ListOfShape),</em> where
+ListOfShape is a list of shells from which the solid is constructed.
+\n <b>Arguments:</b> Name + A closed shell or a list of closed shells.
+
+\image html neo-obj6.png
+
+\n <b>Example:</b>
+
+\image html solidsn.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..c4437ca
--- /dev/null
@@ -0,0 +1,36 @@
+/*!
+
+\page create_sphere_page Sphere
+
+\n To create a \b Sphere in the <b>Main Menu</b> select <b>New Entity - > Primitives - > Sphere</b>
+
+\n There are two algorithms for creation of a \b Sphere.
+\n The \b Result of each operation will be a GEOM_Object (SOLID).
+
+\n Firstly, you can define a \b Sphere by the <b>Center Point</b> and the \b Radius.
+\n <b>TUI Command:</b> <em>geompy.MakeSphere(Point, Radius)</em>
+\n <b>Arguments:</b> Name + 1 vertex + 1 value (Radius).
+
+\image html sphere1.png
+
+\n Secondly, you can define a \b Sphere with the center at the origin of
+coordinate system by the \b Radius.
+\n <b>TUI Command:</b> <em>geompy. MakeSphereR(Radius)</em>
+\n <b>Arguments:</b> Name + 1  value (Radius from the origin).
+
+\image html sphere2.png
+
+\n <b>NB!</b> The is another way to create a\b  Sphere, which is
+currently accessible only via \b TUI commands.
+\n You can define the \b Sphere by the coordinates of the <b>Center
+Point</b> and its \b Radius (in this way you don't need to create it in advance).
+\n <b>TUI Command:</b> <em>geompy.MakeSphere(X, Y, Z, Radius)</em>
+
+<b>Example:</b>
+
+\image html spheres.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of 
+\ref tui_creation_sphere "Primitives".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_torus.doc b/doc/salome/gui/GEOM/input/creating_torus.doc
new file mode 100644 (file)
index 0000000..dd8b634
--- /dev/null
@@ -0,0 +1,32 @@
+/*!
+
+\page create_torus_page Torus
+
+To create a \b Torus in the <b>Main Menu</b> select <b>New Entity - > Primitives - > Torus</b>
+
+\n There are two algorithms for creation of a \b Torus.
+\n The \b Result of each operation will be a GEOM_Object (SOLID).
+
+\n Firstly, you can define a \b Torus by the given <b>Base Point</b>,
+the normal \b Vector and the Major and Minor \b Radiuses.
+\n <b>TUI Command:</b> <em>geompy.MakeTorus(Point, Vector, RadiusMajor, RadiusMinor)</em>
+\n <b>Arguments:</b> Name + 1 vertex + 1 vector (for direction) + 2
+values (1 & 2 Radius).
+
+\image html torus1.png
+
+\n Secondly, you can define a \b Torus with the center at the origin
+of coordinates by its Major and Minor \b Radiuses.
+\n <b>TUI Command:</b> <em>geompy.MakeTorusRR(RadiusMajor, RadiusMinor)</em>
+\n <b>Arguments:</b> Name + 2 values (1 & 2 Radius from the origin).
+
+\image html torus2.png
+
+<b>Example:</b>
+
+\image html toruses.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of 
+\ref tui_creation_torus "Primitives".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_vector.doc b/doc/salome/gui/GEOM/input/creating_vector.doc
new file mode 100644 (file)
index 0000000..0a914be
--- /dev/null
@@ -0,0 +1,31 @@
+/*!
+
+\page create_vector_page Vector
+
+To create a \b Vector in the <b>Main Menu</b> select <b>New Entity - >
+Basic - > Vector</b>
+
+\n There are 2 algorithms to create a \b Vector in the 3D space.
+\n The \b Result of each operation will be a GEOM_Object (edge).
+
+\n Firstly, you can define a Vector by its \b Start and <b>End Points</b>.
+\n <b>TUI Command:</b> <em>geompy.MakeVector(Point1, Point2)</em>
+\n <b>Arguments:</b> Name + 2 vertices.
+
+\image html vector1.png
+
+\n Secondly, you can define a \b Vector starting in the <b>Origin of
+coordinates</b> by its <b>End Point</b>.
+\n <b>TUI Command:</b> <em>geompy.MakeVectorDXDYDZ(DX, DY, DZ)</em>
+\n <b>Arguments:</b> Name + 3 values
+
+\image html vector2.png
+
+<b>Example:</b>
+
+\image html image34.gif
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of 
+\ref tui_creation_vector "Basic Geometric Objects".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_wire.doc b/doc/salome/gui/GEOM/input/creating_wire.doc
new file mode 100644 (file)
index 0000000..34a24b0
--- /dev/null
@@ -0,0 +1,27 @@
+/*!
+
+\page create_wire_page Wire
+
+\n To create a \b Wire in the <b>Main Menu</b> select <b>New Entity - > Build - > Wire</b>
+
+\n You can create a \b Wire from several connected edges and wires by
+selecting them in the object browser or in the viewer holding Shift
+button.
+\n The \b Result  will be a \b GEOM_Object (WIRE).
+
+\n <b>TUI Command:</b> <em>geompy.MakeWire(ListOfShape)</em>
+
+<b>Arguments:</b> Name + List of connected wires or edges.
+
+\n <b>Dialog Box:</b>
+
+\image html neo-obj3.png
+
+\n <b>Example:</b>
+
+\image html wiresn.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of creation of 
+\ref tui_creation_wire "Advanced Geometric Objects".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/creating_wplane.doc b/doc/salome/gui/GEOM/input/creating_wplane.doc
new file mode 100644 (file)
index 0000000..bb453c8
--- /dev/null
@@ -0,0 +1,40 @@
+/*!
+
+\page create_wplane_page Working Plane
+
+Definition of a <b>Working Plane</b> is necessary for work with 
+\ref create_sketcher_page "Sketcher".
+
+\n To create a <b>Working Plane</b> in the <b>Main Menu</b> select
+<b>New Entity - > Basic - > Working Plane</b>
+
+\n There is a number of algorithms to set the <b>Working Plane</b> and the
+Camera Position.
+
+\n Firstly, you can select a \b Plane, a <b>Planar Face</b> or a <b>Local Coordinate System</b> to be your <b>Working Plane</b>.
+\n <b>Arguments:</b> Name + 1 selection (plane or planar face).
+
+\image html workplane4.png
+
+\n Secondly, you can define a <b>Working Plane</b> by two <b>Vectors</b>.
+\n <b>Arguments:</b> Name +  2 vectors.
+
+\image html workplane5.png
+
+\n Finally, you can select one of three basic projections of XYZ
+coordinate system to be your <b>Working Plane</b>.
+
+\image html workplane6.png
+
+<b>Reverse the plane normal</b> checkbox allows changing the direction
+of the working plane.
+
+<b>Example:</b> Working plane on the upper face of a box.  
+
+\image html image36.gif
+<center>Normal Direction</center>
+
+\image html image47.gif
+<center>Reversed Direction</center>
+
+*/
diff --git a/doc/salome/gui/GEOM/input/cut_operation.doc b/doc/salome/gui/GEOM/input/cut_operation.doc
new file mode 100644 (file)
index 0000000..1ccc84b
--- /dev/null
@@ -0,0 +1,24 @@
+/*!
+
+\page cut_operation_page Cut
+
+\n To produce a \b Cut operation in the <b>Main Menu</b> select <b>Operations - > Boolean - > Cut</b>
+
+\n This operation cuts a shape with another one.
+\n The \b Result will be any \b GEOM_Object.
+\n <b>Arguments:</b> Name + 2 shapes.
+
+\n <b>Dialog Box:</b>
+
+\image html bool3.png
+
+\n <b>Example:</b>
+
+\image html fusesn1.png
+
+\image html cutsn.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of 
+\ref tui_cut "Boolean Operations".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/display_mode.doc b/doc/salome/gui/GEOM/input/display_mode.doc
new file mode 100644 (file)
index 0000000..8fe2d92
--- /dev/null
@@ -0,0 +1,26 @@
+/*!
+
+\page display_mode_page Display Mode
+
+\n This option is relevant for viewing 3D objects. Wireframe mode means
+that you can see only  edges of the object, while its shells remain
+transparent. Shading mode means that the shells are filled with color.
+
+\n To change the display mode right-click on this geometrical object
+in the viewer and from the pop-up menu select <b>Display mode -->
+Wireframe</b> or <b>Shading</b>.
+
+\n <b>TUI Command:</b> <em>gg.setDisplayMode(ID, Short)</em>
+
+\n <b>Examples:</b>
+
+\image html disp_mode1sn.png
+<center><em>Wireframe</em></center>
+
+\image html /disp_mode2sn.png
+<center><em>Shading</em></center>
+
+Our <b>TUI Scripts</b> provide you with useful examples of 
+\ref tui_change_disp_mode "Changing Display Parameters".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/explode_on_blocks_operation.doc b/doc/salome/gui/GEOM/input/explode_on_blocks_operation.doc
new file mode 100644 (file)
index 0000000..635f705
--- /dev/null
@@ -0,0 +1,32 @@
+/*!
+
+\page explode_on_blocks_operation_page Explode on Blocks
+
+\n To produce an <b>Explode on Blocks</b> operation in the <b>Main
+Menu</b> select <b>Operations - > Blocks - > Explode on Blocks</b>.
+
+\n This operation returns blocks of the given compound. The user may
+define the type of blocks to be extracted by setting the minimum and
+maximum number of faces in the target block. By checking the
+corresponding box the user may also interactively choose the blocks
+from a compound.
+
+\n The \b Result will be a \b GEOM_Object.
+
+\n <b>TUI Command:</b> <em>geompy.MakeBlockExplode(Compound,
+MinNbFaces, MaxNbFaces),</em> where \em Compound is a compound to be
+exploded into the blocks, \em MinNbFaces, \em MaxNbFaces are correspondingly
+the minimal and  the maximal number of faces of the resulting blocks.
+\n <b>Arguments:</b> 1 compound + 2 integers (min. and max. number of
+faces in the block to be extracted).
+
+\image html mtransf3.png
+
+\n <b>Example:</b>
+
+\image html block_explodesn.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_explode_on_blocks "Blocks Operations".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/fillet_operation.doc b/doc/salome/gui/GEOM/input/fillet_operation.doc
new file mode 100644 (file)
index 0000000..8bf2ee1
--- /dev/null
@@ -0,0 +1,50 @@
+/*!
+
+\page fillet_operation_page Fillet
+
+\n To produce a \b Fillet in the <b>Main Menu</b> select 
+<b>Operations - > Transformation - > Fillet</b>
+
+\n This operation creates fillets on the edges of a shape.
+\n The \b Result will be a \b GEOM_Object.
+
+\n To create fillets on all edges of the given shape, you need to
+select the <b>Main Object</b> to create a fillet on and to define the \b Radius of the
+Fillet.
+\n <b>TUI Command:</b> <em>geompy.MakeFilletAll(Shape, R)</em>
+\n <b>Arguments:</b> Name + 1 shape + 1 value (fillet radius).
+
+\image html fillet1.png
+
+\n To create fillets on the specified edges or faces of the given
+shape, you need to define the <b>Main Object</b> to create a fillet
+on, select the necessary edges or faces in the OCC Viewer and define
+the \b Radius of the Fillet.
+\n <b>TUI Command:</b> <em>geompy.MakeFillet(Shape, R, ShapeType, ListShapes)</em>
+\n <b>Arguments:</b> Name + 1 shape + one or several edges (or faces)
++ 1 value (Fillet radius).
+
+\n Alternatively, there is a possibility to create a fillet with a
+variable radius.  For this, toggle the lower radio button and define
+\b R1 (the radius at the start of the selected edge(s)) and \b R2 
+(the radius at the end of the selected edge(s))
+
+\image html fillet2.png
+
+\image html fillet3.png
+
+\n <b>Examples:</b>
+
+\image html fillet_all.png
+<center><em>Fillet on all</em></center>
+
+\image html fillet_edge.png
+<center><em>Fillet on an edge</em></center>
+
+\image html fillet_prism.png
+<center><em>Fillet on a Face</em></center>
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_fillet "Transformation Operations".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/fuse_operation.doc b/doc/salome/gui/GEOM/input/fuse_operation.doc
new file mode 100644 (file)
index 0000000..5eb168b
--- /dev/null
@@ -0,0 +1,25 @@
+/*!
+
+\page fuse_operation_page Fuse
+
+\n To produce a \b Fuse operation in the <b>Main Menu</b> select
+<b>Operations - > Boolean - > Fuse</b>
+
+\n This operation creates a shape from two shapes.
+
+\n The \b Result will be any \b GEOM_Object.
+\n <b>Arguments:</b> Name + 2 shapes.
+\n <b>TUI Command:</b> <em>geompy.MakeFuse(s1, s2)</em>
+
+\image html bool1.png
+
+\n <b>Example:</b>
+
+\image html fusesn1.png
+
+\image html fusesn2.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..cde054c
--- /dev/null
@@ -0,0 +1,7 @@
+/*!
+
+\page geompy_page Python Interface geompy.py
+
+\n Please, see \ref geompyDC::geompyDC "documentation for geompy.py"
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/glue_faces_operation.doc b/doc/salome/gui/GEOM/input/glue_faces_operation.doc
new file mode 100644 (file)
index 0000000..340f4af
--- /dev/null
@@ -0,0 +1,48 @@
+/*!
+
+\page glue_faces_operation_page Glue Faces
+
+\n To <b>Glue Faces</b> in the <b>Main Menu</b> select <b>Repair - > Glue Faces</b>.
+
+\n This operation glues faces that are coincident with respect to the
+given tolerance value.
+
+\n The \b Result will be a \b GEOM_Object.
+
+\n <b>TUI Command:</b> <em>geompy.MakeGlueFaces(theShape,
+theTolerance),</em> 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 <b>Arguments:</b> Name + Compound of solids + Tolerance value.
+
+\image html glue1.png
+
+\n It is also possible to manually select the faces that will be 
+glued - select the shape, specify the tolerance and press \b Detect button.
+
+\image html glue2.png
+
+\n \b Geometry module detects the faces where gluing can be performed and
+displays a notification.
+
+\image html glue3.png
+
+\n The faces that can be glued are colored in red.  It is possible to
+select the faces for gluing in the 3D viewer. The selected faces will
+be marked in white.
+
+\n <b>Example:</b>
+
+\image html glue_faces1.png
+<center><em>Object that needs gluing</em></center>
+
+\image html glue_faces2.png
+<center><em>Glued object</em></center>
+
+\image html glue_faces3.png
+<center><em>Manual selection of faces for gluing</em></center>
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_glue_faces "Repairing Operations".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/import_export.doc b/doc/salome/gui/GEOM/input/import_export.doc
new file mode 100644 (file)
index 0000000..8a5219e
--- /dev/null
@@ -0,0 +1,39 @@
+/*!
+
+\page import_export_geom_obj_page 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).
+
+<em>To import geometrical objects from a BREP, IGES, STEP file:</em>
+
+\par
+From the \b File menu choose \b Import. In the opening dialog box \b Import
+select the required format of the file for importation and search for
+a *.brep, *.iges or *.step  file.
+
+\image html geomimport.png
+
+\par 
+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 <b>Object Browser</b>.
+
+\n <em>To export geometrical objects into a BREP, IGES, STEP
+file:</em>
+
+\par
+Select the object you wish to export, then from the \b File menu choose
+\b Export. In the opening dialog box \b Export define the required format,
+the name and the location of the file for exportation.
+
+\image html geomexport.png
+
+\par
+Click \b Save to confirm your exportation.
+
+*/
+
diff --git a/doc/salome/gui/GEOM/input/index.doc b/doc/salome/gui/GEOM/input/index.doc
new file mode 100644 (file)
index 0000000..3d2d5d1
--- /dev/null
@@ -0,0 +1,137 @@
+/*!
+
+\mainpage Geometry Module Reference Documentation
+
+<ul>
+<li>\subpage introduction_page</li>
+<li>\subpage import_export_geom_obj_page</li>
+<li>\subpage create_geom_obj_page</li>
+<ul>
+<li>\ref create_basic_geom_obj_page</li>
+<ul>
+<li>\ref create_point_page</li>
+<li>\ref create_line_page</li>
+<li>\ref create_circle_page</li>
+<li>\ref create_ellipse_page</li>
+<li>\ref create_arc_page</li>
+<li>\ref create_curve_page</li>
+<li>\ref create_vector_page</li>
+<li>\ref create_plane_page</li>
+<li>\ref create_wplane_page</li>
+<li>\ref create_lcs_page</li>
+</ul>
+<li>\ref create_primitives_page</li>
+<ul>
+<li>\ref create_box_page</li>
+<li>\ref create_cylinder_page</li>
+<li>\ref create_sphere_page</li>
+<li>\ref create_torus_page </li>
+<li>\ref create_cone_page </li>
+</ul>
+<li>\ref create_complex_obj_page</li>
+<ul>
+<li>\ref create_extrusion_page</li>
+<li>\ref create_revolution_page</li>
+<li>\ref creaet_filling_page</li>
+<li>\ref create_extrusion_alongpath_page</li>
+</ul>
+<li>\ref work_with_groups_page</li>
+<li>\ref build_by_blocks_page</li>
+<li>\ref create_sketcher_page</li>
+<li>\ref create_adv_obj_page</li>
+<ul>
+<li>\ref create_explode_page</li>
+<li>\ref create_edge_page</li>
+<li>\ref create_wire_page</li>
+<li>\ref create_face_page</li>
+<li>\ref create_shell_page</li>
+<li>\ref create_solid_page</li>
+<li>\ref create_compound_page</li>
+</ul>
+</ul>
+<li>\subpage view_geom_obj_chapter_page</li>
+<ul>
+<li>\ref view_geom_obj_page</li>
+<li>\ref display_mode_page</li>
+<li>\ref color_page</li>
+<li>\ref transparency_page</li>
+<li>\ref isolines_page</li>
+</ul>
+<li>\subpage transform_geom_obj_page</li>
+<ul>
+<li>\ref basic_operations_page</li>
+<ul>
+<li>\ref partition_page</li>
+<li>\ref archimede_page</li>
+</ul>
+<li>\ref boolean_operations_page</li>
+<ul>
+<li>\ref using_boolean_operations_page</li>
+<li>\ref fuse_operation_page</li>
+<li>\ref common_operation_page</li>
+<li>\ref cut_operation_page</li>
+<li>\ref section_opeartion_page</li>
+</ul>
+<li>\ref transformation_operations_page</li>
+<ul>
+<li>\ref translation_operation_page</li>
+<li>\ref rotation_operation_page</li>
+<li>\ref modify_location_operation_page</li>
+<li>\ref mirror_operation_page</li>
+<li>\ref scale_operation_page</li>
+<li>\ref offset_operation_page</li>
+<li>\ref multi_translation_operation_page</li>
+<li>\ref multi_rotation_operation_page</li>
+<li>\ref fillet_operation_page</li>
+<li>\ref chamfer_operation_page</li>
+</ul>
+<li>\ref blocks_operations_page</li>
+<ul>
+<li>\ref multi_transformation_operation_page</li>
+<li>\ref explode_on_blocks_operation_page</li>
+<li>\ref propagate_operation_page</li>
+</ul>
+<li>\ref repairing_operations_page</li>
+<ul>
+<li>\ref shape_processing_operation_page</li>
+<li>\ref suppress_faces_operation_page</li>
+<li>\ref close_contour_operation_page</li>
+<li>\ref suppress_internal_wires_operation_page</li>
+<li>\ref suppress_holes_operation_page</li>
+<li>\ref sewing_operation_page</li>
+<li>\ref glue_faces_operation_page</li>
+<li>\ref add_point_on_edge_operation_page</li>
+<li>\ref check_free_boundaries_operation_page</li>
+<li>\ref check_free_faces_operation_page</li>
+<li>\ref change_orientation_operation_page</li>
+<li>\ref remove_extra_edges_operation_page</li>
+</ul>
+</ul>
+<li>\subpage using_measurement_tools_page</li>
+<li>\subpage geompy_page</li>
+<li>\subpage tui_scripts_page</li>
+<ul>
+<li>\ref tui_viewing_geom_objs_page</li>
+<li>\ref tui_creating_geom_objs_page</li>
+<ul>
+<li>\ref tui_basic_geom_objs_page</li>
+<li>\ref tui_primitives_page</li>
+<li>\ref tui_complex_objs_page</li>
+<li>\ref tui_working_with_groups_page</li>
+<li>\ref tui_building_by_blocks_page</li>
+<li>\ref tui_sketcher_page</li>
+<li>\ref tui_advanced_geom_objs_page</li>
+</ul>
+<li>\ref tui_transformation_page</li>
+<ul>
+<li>\ref tui_basic_operations_page</li>
+<li>\ref tui_boolean_operations_page</li>
+<li>\ref tui_transformation_operations_page</li>
+<li>\ref tui_blocks_operations_page</li>
+<li>\ref tui_repairing_operations_page</li>
+</ul>
+<li>\ref tui_measurement_tools_page</li>
+</ul>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/introduction.doc b/doc/salome/gui/GEOM/input/introduction.doc
new file mode 100644 (file)
index 0000000..e1005c6
--- /dev/null
@@ -0,0 +1,26 @@
+/*!
+
+\page introduction_page Introduction to Geometry
+
+\b Geometry module of SALOME is destined for:
+<ul>
+<li>Import and export of geometrical models in IGES, BREP and STEP formats.</li>
+<li>Construction and optimization of geometrical models using a wide
+range of  CAD functions:</li>
+<ul>
+<li>Creation of basic geometrical objects</li>
+<li>Construction of primitives</li>
+<li>Building shapes</li>
+<li>Generation of complex shapes</li>
+<li>Working with groups</li>
+<li>Geometrical repairing of objects</li>
+<li>Geometrical boolean operations</li>
+<li>Geometrical transformations</li>
+<li>Building by blocks</li>
+</ul>
+</ul>
+
+\image html image3.jpg
+
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/isolines.doc b/doc/salome/gui/GEOM/input/isolines.doc
new file mode 100644 (file)
index 0000000..10862f0
--- /dev/null
@@ -0,0 +1,17 @@
+/*!
+
+\page isolines_page Isolines
+
+\n In this menu you can change the number of isolines displayed within
+a shape.
+\n <b>Arguments:</b>2 values (number of isolines).
+
+\image html neo-isos.png
+
+\n <b>Example:</b>
+
+\image html colorsn.png
+
+\image html isos_u12_v12sn.png
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..f852902
--- /dev/null
@@ -0,0 +1,48 @@
+/*!
+
+\page mirror_operation_page Mirror Image
+
+\n To produce a <b>Mirror Image</b> in the <b>Main Menu</b> select 
+<b>Operations - > Transformation - > Mirror Image</b>
+
+\n This operation creates a symmetrical copy of an \b Object, which
+can be mirrored in three different ways.
+\n <b>Create a copy</b> checkbox allows to keep the initial object,
+otherwise it will be removed.
+\n The \b Result will be a \b GEOM_Object.
+
+\n Firstly an \b Object can be mirrored through a \b Point of symmetry
+\n <b>TUI Command:</b> <em>geompy.MakeMirrorByPoint(Object, Point)</em>
+\n <b>Arguments:</b> Name + one or several objects + 1 vertex.
+
+\image html transformation7.png
+
+\image html mirror_pointsn1.png
+
+\image html mirror_pointsn2.png
+
+\n Secondly an \b Object can be mirrored through an \b Axis of
+symmetry
+\n <b>TUI Command:</b> <em>geompy.MakeMirrorByAxis(Object, Axis)</em>
+\n <b>Arguments:</b> Name + one or several objects + 1 vector.
+
+\image html transformation8.png
+
+\image html mirror_axissn1.png
+
+\image html mirror_axissn2.png
+
+\n Finally an \b Object can be mirrored through a \b Plane of symmetry
+\n <b>TUI Command:</b> <em>geompy.MakeMirrorByPlane(Shape, Plane)</em>
+\n <b>Arguments:</b> Name + one or several objects + 1 plane
+
+\image html transformation9.png
+
+\image html mirror_planesn1.png
+
+\image html mirror_planesn2.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..c25e087
--- /dev/null
@@ -0,0 +1,61 @@
+/*!
+
+\page modify_location_operation_page Modify the Location
+
+\n To <b>Modify the Location</b> in the <b>Main Menu</b> select 
+<b>Operations - > Transformation - > Modify the Location</b>.
+
+\n This operation modifies the \b Location of \b Objects.
+
+\n The first algorithm places the object(s) so that its center coincides
+with the origin of the Local Coordinate System. 
+\n <b>Create a copy</b> checkbox allows to keep the initial objects, otherwise they
+will be removed.
+\n <b>Arguments:</b> Name + one or several objects + End Coordinate System.
+
+\image html transformation5.png
+
+\n In the picture the initial cube with the global coordinate system
+is to the right and the modified cube with the Local Coordinate
+System in the center of it is to the left .
+
+\image html image30.gif
+
+\n The second algorithm  modifies the location of an object using Start
+and End LSC, although the final position of the object will not
+coincide with the center of  either of the two systems. In this method
+the object is shifted from its initial position by the value of the
+remainder after subtraction of the coordinates of the Start LSC from
+the coordinates of the End LSC.
+\n <b>Create a copy</b> checkbox allows to keep the initial object,
+otherwise it will be removed.
+\n <b>Arguments:</b> Name + one or several objects + Start Coordinate System + End
+Coordinate System.
+
+\image html transformation6.png
+
+In this picture we see the initial cube with the global coordinate
+system and two LCS: LocalCS1 (GCS+100 along x-axis) and LocalCS2
+(GCS+200 along x-axis)
+
+\image html image1.gif
+
+Selecting Start LCS = LCS1 and End LCS = LCS2, we obtain the
+translated cube at the position (100;0;0)
+
+\image html image2.gif
+
+Selecting Start LCS = LCS2 and End LCS = LCS1, we obtain the
+translated cube at the position (-100;0;0)
+
+\image html image4.gif
+
+\n <b>TUI Command:</b> <em>geompy.MakePosition(theObject, theStartLCS,
+theEndLCS),</em>  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 <b>TUI Scripts</b> provide you with useful examples of the use
+of \ref tui_translation "Transformation Operations".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/multi_rotation_operation.doc b/doc/salome/gui/GEOM/input/multi_rotation_operation.doc
new file mode 100644 (file)
index 0000000..7ad469f
--- /dev/null
@@ -0,0 +1,56 @@
+/*!
+
+\page multi_rotation_operation_page Multi Rotation
+
+\n To produce a <b>Multi Rotation</b> in the <b>Main Menu</b> select
+<b>Operations - > Transformation - > Multi Rotation</b>
+
+\n This operation creates several geometrical objects rotated in one
+or two dimensions basing on the initial geometrical object.
+\n The \b Result will be one or several \b GEOM_Objects (compound).
+
+\n To produce a <b>Simple Multi Rotation</b> (in one dimension) you
+need to define a \b Shape to be rotated, an \b Axis of rotation and a
+<b>Number of Times</b> the shape must be rotated. <b>Rotation Angle</b> will
+be 2*PI/NbTimes
+\n <b>TUI Command:</b> <em>geompy.MultiRotate1D(Shape, Axis, NbTimes)</em>
+\n <b>Arguments:</b> Name + 1 shape + 1 vector for direction + 1 value
+(repetition).
+
+\b <b>NB!</b> There is another way to execute a Multi-rotation
+operation, which is currently accessible only via TUI commands:
+<em>geompy.MakeMultiRotation1D(Shape, Dir, Point, NbTimes)</em> which works in
+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_rotation1d2.png
+
+\n <b>Double Multi Rotation</b> (in two dimensions) rotates the given
+\b Object around the given \b Axis on the given \b Angle a given
+<b>Number of Times</b> and multi-translates each rotation
+result. Translation direction passes through the center of gravity of
+the rotated shape and its projection on the rotation axis.
+\b Reverse checkbox allows to set the direction of rotation.
+\n <b>TUI Command:</b> <em>geompy.MultiRotate2D(Shape, Axis, Angle, NbTimes1, Step, NbTimes2)</em>
+\n <b>Arguments:</b> Name + 1 shape + 1 vector for direction + 1 angle
++ 1 value (repetition) + 1 step value + 1 value (repetition).
+
+<b>NB!</b> There is another way to execute a Double Multi-rotation
+operation, which is currently accessible only via TUI commands: 
+<em>geompy.MakeMultiRotation2D(Shape, Dir, Point, Angle, nbtimes1, Step,nbtimes2)</em>
+which works in the same way,
+but the Axis is defined  by direction and point.
+
+\image html neo-mrot2.png
+
+\image html multi_rotation2d1.png
+
+\image html multi_rotation2d2.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..2bb30e7
--- /dev/null
@@ -0,0 +1,46 @@
+/*!
+
+\page multi_transformation_operation_page Block Multi Transformation
+
+\n To produce a <b>Multi Transformation</b> operation in the <b>Main
+Menu</b> select <b>Operations - > Blocks - > Multi Transformation</b>
+
+\n This operation makes several translations of a block (solid) in one
+or two directions depending on the arguments specified by the user.
+\n The \b Result in both cases will be a \b GEOM_Object.
+
+<br><h2>Simple Multi Transformation (in one direction)</h2>
+
+\n <b>TUI Command:</b> <em> geompy. MakeMultiTransformation1D(Block,
+DirFaceID1, DirFaceID2, NbTimes),</em> where \em Block is a block to be
+transformed, \em DirFaceID1 is an ID of the face which defines the first
+direction of transformation, \em DirFaceID2 is an ID of the face which
+defines the second direction of transformation, \em NbTimes is a number of
+transformations.
+\n <b>Arguments:</b> Name + 1 hexahedral solid + 1 or 2 faces + 1
+integer (number of blocks).
+
+\image html mtransf1.png
+
+\image html multi_transformationsn1d.png
+
+<br><h2>Double Multi Transformation (in two directions)</h2>
+
+\n <b>TUI Command:</b> <em>geompy. MakeMultiTransformation2D(Block,
+DirFaceID1U, DirFaceID2U, NbTimesU, DirFaceID1V, DirFaceID2V,
+NbTimesV),</em> where \em Block is a block to be transformed, \em DirFaceID1U
+and \em DirFaceID2U are IDs of the faces, which define directions of the
+first transformation, \em DirFaceID1V and \em DirFaceID2V are ID's of the
+faces which define directions of the second transformation, \em NbTimesU
+and \em NbTimesV are numbers of transformations.
+\n <b>Arguments:</b> Name + 1 hexahedral solid + 2, 3 or 4 faces + 2
+integers (number of blocks).
+
+\image html mtransf2.png
+
+\image html multi_transformationsn2d.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_multi_transformation "Blocks Operations".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/multi_translation_operation.doc b/doc/salome/gui/GEOM/input/multi_translation_operation.doc
new file mode 100644 (file)
index 0000000..5bd20ff
--- /dev/null
@@ -0,0 +1,50 @@
+/*!
+
+\page multi_translation_operation_page Multi Translation
+
+\n To produce a <b>Multi Translation</b> in the <b>Main Menu</b>
+select <b>Operations - > Transformation - > Multi Translation</b>
+
+\n This operation makes several translations of a shape in \b one or \b
+two directions.
+\n The \b Result will be one or several \b GEOM_Objects (compound).
+
+\n To produce a <b>Simple Multi Translation</b> (in one direction) you
+need to indicate an \b Object to be translated, a \b Vector of
+translation, a \b Step of translation and a <b>Number of Times</b> the
+Object should be duplicated.
+\n <b>TUI Command:</b> <em>geompy.MakeMultiTranslation1D(Shape, Dir,
+Step, NbTimes)</em>
+\n <b>Arguments:</b> Name + 1 shape + 1 vector (for direction) + 1
+step value + 1 value (repetition).
+
+\image html mtrans1.png
+
+\image html multi_translation_initialsn.png
+
+\image html multi_translation1dsn.png
+
+\n To produce a <b>Double Multi Translation</b> (in two directions) you need to
+indicate an \b Object to be translated, and, for both axes, a \b
+Vector of translation, a \b Step of translation and a <b>Number of Times</b> the shape must be duplicated.
+
+\n <b>TUI Command:</b> <em>geompy.MakeMultiTranslation2D(Shape, Dir1,
+Step1, NbTimes1, Dir2, Step2, NbTimes2),</em> where \em Shape is a shape
+to be translated, \em Dir1 is the first direction of translation, \em Step1 of
+the first translation, \em NbTimes1 is a number of translations to be done
+along \em Dir1, \em Dir2 is the second direction of translation, \em Step2 of the
+second translation, \em NbTimes2 is a number of translations to be done
+along \em Dir2.
+\n <b>Arguments:</b> Name + 1 shape + 2 vectors defining the direction
++ 2 step values + 2 values (repetitions).
+
+\image html mtrans2.png
+
+\image html multi_translation_initialsn.png
+
+\image html multi_translation2dsn.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..d2b4b67
--- /dev/null
@@ -0,0 +1,28 @@
+/*!
+
+\page offset_operation_page Offset Surface
+
+\n To produce an <b>Offset Surface</b> in the <b>Main Menu</b> select
+<b>Operations - > Transformation - > Offset Surface</b>
+
+\n This operation translates each point of an \b Object (a set of
+Objects) along a local normal by a given \b Offset distance (signed
+number, negative value meaning inner offset).
+\n \b Offset operation is applicable to faces, shells and solids.
+\n The \b Result will be a \b GEOM_Object 
+\n <b>TUI Command:</b> <em>geompy.MakeOffset(Shape, Offset),</em>
+where Shape is a shape(s) which has to be an offset, Offset is a value of
+the offset.
+\n <b>Arguments:</b> Name + Object (face(s), shell(s), solid(s)) +
+Offset value
+
+\image html transformation11.png
+
+\n <b>Example:</b>
+
+\image html offsetsn.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..7dfc531
--- /dev/null
@@ -0,0 +1,52 @@
+/*!
+
+\page partition_page Partition
+
+\n To produce a \b Partition in the <b>Main Menu</b> select <b>Operations - > Partition</b>
+
+\n This operation builds a compound by intersection of several shapes with a tool object or a plane.
+\n The \b Result will be any \b GEOM_Object.
+
+<br><h2>Intersection of two shapes.</h2>
+
+\n As far as the intersection of two objects can produce any type of
+geometrical objects, <b>Reconstruction Limit</b> box allows choosing the
+preferrable result, i.e. a solid, a shell, a list of faces, etc.
+\n <b>TUI Command:</b> <em>geompy.MakePartition(ListOfShapes,
+ListOfTools, ListOfKeepInside, ListOfRemoveInside, Limit, RemoveWebs,
+ListOfMaterials),</em> where where \em ListOfShapes is a list of shapes to
+be intersected and \em ListOfTools is a list of shapes to intersect the
+shapes from ListOfShapes.
+\n Since the implementation of a new version of PartitionAlgo other
+parameters are ignored by the current functionality and remain there
+only to support the old scripts.
+\n <b>Arguments:</b> Name + 2 lists of shapes (the shapes from the
+first list will be intersected with the shapes from the second list) +
+reconstruction limit.
+
+\image html partition1.png
+
+<b>Keep nonlimit shapes</b> checkbox allows building geometrical objects of
+all types at the same time i.e. no reconstruction limit is applied.
+
+
+<br><h2>Intersection of a Shape and a Plane.</h2>
+
+\n <b>TUI Command:</b> <em> geompy.MakeHalfPartition(Shapes,
+Plane),</em> where \em Shapes are a list of Shapes to be intersected
+and \em Plane is a Tool shape, to intersect the \em Shapes.
+\n <b>Arguments:</b> Name + a list of shapes which will be intersected
++ 1 cutting plane.
+
+\image html partition2.png
+
+\n <b>Example:</b>
+
+\image html partitionsn1.png
+
+\image html partitionsn2.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..3882ee7
--- /dev/null
@@ -0,0 +1,28 @@
+/*!
+
+\page propagate_operation_page Propagate
+
+\n To produce a \b Propagate operation in the <b>Main Menu</b> select
+<b>Operations - > Blocks - > Propagate</b>
+
+\n This operation breaks a multitude of edges of a shape into groups
+(builds all possible propagation groups).
+\n The \b Result will be a <b>List of GEOM_Objects</b>. Each Geom
+Object will contain a group of edges.
+
+\n <b>TUI Command:</b> <em>geompy.Propagate(Shape),</em> where \em Shape
+is a shape to build propagation groups on.
+\n <b>Arguments:</b> 1 Shape.
+
+\image html mtransf4.png
+
+\n <b>Example:</b>
+
+\image html image15.jpg
+
+\image html image16.jpg
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_propagate "Blocks Operations".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/remove_extra_edges_operation.doc b/doc/salome/gui/GEOM/input/remove_extra_edges_operation.doc
new file mode 100644 (file)
index 0000000..3be4c4d
--- /dev/null
@@ -0,0 +1,24 @@
+/*!
+
+\page remove_extra_edges_operation_page Remove Extra Edges
+
+\n To <b>Remove extra edges</b> in the <b>Main Menu</b> select
+<b>Repair - > Remove extra edges</b>.
+\n This operation removes all seam and degenerated edges from a given
+shape and unites faces and edges, sharing one surface.
+
+\n <b>TUI Command:</b> <em>geompy.RemoveExtraEdges(theShape)</em>,
+there <em>theShape</em> is a compound or a single solid to remove irregular edges from.
+\n <b>Arguments:</b> Name + one shape.
+
+\image html remove_extra_edges.png
+
+\n <b>Example:</b>
+
+\image html remove_extra_edges1.png
+<center><em>Shape with extra edges</em></center>
+
+\image html remove_extra_edges2.png
+<center><em>Improved shape</em></center>
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..cb41f81
--- /dev/null
@@ -0,0 +1,18 @@
+/*!
+
+\page repairing_operations_page Repairing Operations
+
+<ul>
+<li>\subpage shape_processing_operation_page</li>
+<li>\subpage suppress_faces_operation_page</li>
+<li>\subpage close_contour_operation_page</li>
+<li>\subpage suppress_internal_wires_operation_page</li>
+<li>\subpage suppress_holes_operation_page</li>
+<li>\subpage sewing_operation_page</li>
+<li>\subpage glue_faces_operation_page</li>
+<li>\subpage add_point_on_edge_operation_page</li>
+<li>\subpage change_orientation_operation_page</li>
+<li>\subpage remove_extra_edges_operation_page</li>
+</ul>
+
+*/
diff --git a/doc/salome/gui/GEOM/input/rotation_operation.doc b/doc/salome/gui/GEOM/input/rotation_operation.doc
new file mode 100644 (file)
index 0000000..e546f00
--- /dev/null
@@ -0,0 +1,42 @@
+/*!
+
+\page rotation_operation_page Rotation
+
+\n To produce a \b Rotation in the <b>Main Menu</b> select 
+<b>Operations - > Transformation - > Rotation</b>
+
+\n This operation \b rotates the initial shape.
+
+\n The first \b Rotation algorithm needs you to define an \b Object to
+be rotated, an \b Axis of rotation and an \b Angle of rotation.
+\n <b>TUI Command:</b> <em>geompy.MakeRotation(Shape, Axis, Angle)</em>
+\n <b>Arguments:</b> Name + one or several objects + 1 vector for direction of rotation + 1
+angle.
+
+\image html transformation4.png
+
+\b Reverse checkbox allows to specify the direction of rotation.
+\n <b>Create a copy</b> checkbox allows to keep the initial object,
+otherwise it will be removed.
+\n The \b Result will be any \b GEOM_Object.
+
+\n The second algorithm allows to define the rotated \b Object by
+three points. Rotation axis will pass through the <b>Central Point</b>
+and will be will be orthogonal to a plane defned by three points. In
+this case rotation \b Angle is the angle between two vectors directed
+from the first point to the second and to the third.
+\n <b>TUI Command:</b> <em>geompy.MakeRotationThreePoints(Shape, CentralPoint, Point1, Point2)</em>
+\n <b>Arguments:</b> 1 shape + 3 points.
+
+\image html transformation4a.png
+
+\n <b>Example:</b>
+
+\image html rotationsn1.png
+
+\image html rotationsn2.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..65d8d95
--- /dev/null
@@ -0,0 +1,26 @@
+/*!
+
+\page scale_operation_page Scale Transform
+
+\n To produce a <b>Scale Transform</b> in the <b>Main Menu</b> select
+<b>Operations - > Transformation - > Scale Transform</b>
+
+\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
+<b>Central Point</b> of scale and the Scale Factor.
+\n The \b Result will be a \b GEOM_Object.
+\n <b>TUI Command:</b> <em>geompy.MakeScaleTransform(Shape, CenterOfScale, Factor)</em>
+\n <b>Arguments:</b> Name + 1 shape(s) + 1 vertex + 1 Scale Factor.
+
+\image html transformation10.png
+
+\n <b>Example:</b>
+
+\image html scale_transformsn1.png
+
+\image html scale_transformsn2.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_scale "Transformation Operations".
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..911b765
--- /dev/null
@@ -0,0 +1,25 @@
+/*!
+
+\page section_opeartion_page Section
+
+\n To produce a \b Section operation in the <b>Main Menu</b> select
+<b>Operations - > Boolean - > Section</b>
+
+\n This operation creates the section between 2 shapes.
+
+\n The \b Result will be any \b GEOM_Object (EDGE or WIRE).
+\n <b>TUI Command:</b> <em>geompy.MakeSection(s1, s2)</em>
+\n <b>Arguments:</b> Name + 2 shapes.
+
+\image html neo-section.png
+
+\n <b>Example:</b>
+
+\image html fusesn1.png
+
+\image html sectionsn.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..69da059
--- /dev/null
@@ -0,0 +1,33 @@
+/*!
+
+\page sewing_operation_page Sewing
+
+\n To produce a \b Sewing operation in the <b>Main Menu</b> select <b>Repair - > Sewing</b>.
+
+\n This operation allows to sew several faces or shells.
+
+\n The \b Result will be a \b GEOM_Object. 
+
+\n <b>TUI Command:</b> <em>geompy.MakeSewing(ListOfShape, Precision),</em>
+ where \em ListOfShape is list of faces or shells to be sewed, \em Precision is a
+precision for sewing.
+
+\image html repair6.png
+
+\n <b>Arguments:</b> Name + 1 or more shapes + 1 value (sew
+precision).
+\n \b Detect button allows to display the number of free boundaries in
+your shape:
+
+\image html neo-detect2.png
+
+\n <b>Example:</b>
+
+\image html image112.jpg
+
+\image html image113.jpg
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_sewing "Repairing Operations".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/shape_processing_operation.doc b/doc/salome/gui/GEOM/input/shape_processing_operation.doc
new file mode 100644 (file)
index 0000000..ca438ad
--- /dev/null
@@ -0,0 +1,158 @@
+/*!
+
+\page shape_processing_operation_page Shape Processing
+
+\n To produce a <b>Shape Processing</b> operation in the <b>Main Menu</b> 
+select <b>Repair - > Shape Processing</b>.
+\n This operation processes one or more shapes using various operators.
+
+\n The \b Result will be a \b GEOM_Object.
+
+\n <b>TUI Command:</b> <em>geompy.ProcessShape(Shape, Operators,
+Parameters, Values),</em> where \em Shape is a processed shape, \em Operators
+is a list of operators ("FixShape", "SplitClosedFaces", etc.),
+\em Parameters is a list of parameters ("FixShape.Tolerance3d",
+etc), \em Values is a list of values of parameters placed in the same
+order as in the list of Parameters.
+
+\n In this dialog box you can select the object that you need to
+process, define its name and operators applied to it during
+processing.
+
+\image html repair1.png
+
+<b>Operators and Parameters</b> (TUI names are given in brackets):
+
+<ul>
+<li><b>Fix Shape</b> (FixShape) - corrects invalid shapes.</li>
+<ul>
+<li><b>3D Tolerance</b> (FixShape.Tolerance3d) - work tolerance for
+detection of the problems and correction of them.</li>
+<li><b>Max 3D Tolerance</b> (FixShape.MaxTolerance3d)  - maximal
+possible tolerance of the shape after correction.</li>
+</ul>
+<li><b>Fix Face Size</b> (FixFaceSize) - removes small faces, such as
+spots and strips.</li>
+<ul>
+<li><b>Tolerance</b> (FixFaceSize.Tolerance) - defines minimum
+possible face size.</li>
+</ul>
+<li><b>Drop Small Edges</b> (DropSmallEdges) - removes edges, which
+merge with neighbouring edges.</li>
+<ul>
+<li><b>3D Tolerance</b> (DropSmallEdges.Tolerance3d) - defines minimum
+possible distance between two parallel edges.</li>
+</ul>
+<li><b>Split Angle</b> (SplitAngle) - splits faces based on conical
+surfaces, surfaces of revolution and cylindrical surfaces in segments
+using a certain angle.</li>
+<ul>
+<li><b>Angle</b> (SplitAngle.Angle) - the central angle of the
+resulting segments (i.e. we obtain two segments if Angle=180, four if
+Angle=90, etc).</li>
+<li><b>Max. Tolerance</b> (SplitAngle.MaxTolerance) - maximum possible
+tolerance among the resulting segments.</li>
+</ul>
+<li><b>Split Closed Faces</b> (SplitClosedFaces) - splits closed faces
+in segments. The number of segments depends on the number of splitting
+points.</li>
+<ul>
+<li><b>Number of splitting points</b> (SplitClosedFaces.NbSplitPoints) - the number of splitting points.</li>
+</ul>
+<li><b>Split Continuity</b> (SplitContinuity) - splits shapes to
+reduce continuities of curves and surfaces.</li>
+<ul>
+<li><b>3D Tolerance</b> (SplitContinuity.Tolerance3d) - 3D tolerance for correction of geometry.</li>
+<li><b>Surface Continuity</b> (SplitContinuity.SurfaceContinuity) - required continuity for surfaces.</li>
+<li><b>Curve Continuity</b> (SplitContinuity.CurveContinuity) - required continuity for curves.</li>
+</ul>
+\n This and the previous parameters can take the following values:
+\par
+<b>Parametric Continuity</b>
+\n \b C0 (Positional Continuity): curves are joined (the end positions
+of curves or surfaces are coincidental. The curves or surfaces may
+still meet at an angle, giving rise to a sharp corner or edge).
+\n \b C1 (Tangential Continuity): first derivatives are equal (the end
+vectors of curves or surfaces are parallel, ruling out sharp edges).
+\n \b C2 (Curvature Continuity): first and second derivatives are
+equal (the end vectors of curves or surfaces are of the same
+magnitude).
+\n \b CN N-th derivatives are equal (both the direction and the
+magnitude of the Nth derivatives of curves or surfaces (d/du C(u)) are
+the same at junction.
+\par
+<b>Geometric Continuity</b>
+\n \b G1: first derivatives are proportional at junction.
+\n The curve tangents thus have the same direction, but not necessarily
+the same magnitude. i.e., C1'(1) = (a,b,c) and C2'(0) = (k*a, k*b,
+k*c).
+\n \b G2: first and second derivatives are proportional at junction.
+\n As the names imply, geometric continuity requires the geometry to
+be continuous, while parametric continuity requires that the
+underlying parameterization was continuous as well.
+\n Parametric continuity of order n implies geometric continuity of
+order n, but not vice-versa. 
+
+<li><b>Bspline Restriction</b> (BsplineRestriction) - converts curves
+and surfaces to Bsplines and processes them with the following
+parameters:</li>
+<ul>
+<li><b>Surface Mode</b> (BSplineRestriction.SurfaceMode) -
+approximation of surfaces if restriction is necessary.</li>
+<li><b>3D Curve Mode</b> (BSplineRestriction.Curve3dMode) - conversion
+of any 3D curve to BSpline and approximation.</li>
+<li><b>2D Curve Mode</b> (BSplineRestriction.Curve2dMode) - conversion
+of any 2D curve to BSpline and approximation.</li>
+<li><b>3D Tolerance</b> (BSplineRestriction.Tolerance3d) - defines the
+possibility of surfaces and 3D curves approximation with the specified
+parameters.</li>
+<li><b>2D Tolerance</b> (BSplineRestriction.Tolerance2d) - defines the
+possibility of surfaces and 2D curves approximation with the specified
+parameters.</li>
+<li><b>Required Degree</b> (BSplineRestriction.RequiredDegree) -
+required degree of the resulting BSplines.</li>
+<li><b>Required number of segments</b>
+(BSplineRestriction.RequiredNbSegments) - required maximum number of
+segments of resultant BSplines.</li>
+<li><b>3D Continuity</b> (BSplineRestriction.Continuity3d) -
+continuity of the resulting surfaces and 3D curves.</li>
+<li><b>2D Continuity</b> (BSplineRestriction.Continuity2d) -
+continuity of the resulting 2D curves.</li>
+</ul>
+<li><b>To Bezier</b> (ToBezier) - converts curves and surfaces of any
+type to Bezier curves and surfaces.</li>
+<ul>
+<li><b>Surface Mode</b> (ToBezier.SurfaceMode) - if checked in, allows
+conversion of surfaces.</li>
+<li><b>3D Curve Mode</b> (ToBezier.Curve3dMode) - if checked in,
+allows conversion of 3D curves.</li>
+<li><b>2D Curve Mode</b> (ToBezier.Curve2dMode) - if checked in,
+allows conversion of 2D curves.</li>
+<li><b>Max Tolerance</b> (ToBezier.MaxTolerance) - defines tolerance
+for detection and correction of problems.</li>
+</ul>
+<li><b>Same Parameter</b> (SameParameter) - fixes edges of 2D and 3D
+curves not having the same parameter.</li>
+<ul>
+<li><b>3D Tolerance</b> (SameParameter.Tolerance3d) - defines tolerance for fixing of edges.</li>
+</ul>
+</ul>
+
+\n <b>Example:</b>
+
+\image html image154.jpg
+<center><em>Shape before applying Shape Processing (FixShape
+operator). View # 1.</em></center>
+
+\image html image156.jpg
+<center><em>Shape before applying Shape Processing (FixShape
+operator). View # 2.</em></center>
+
+\image html image160.jpg
+<center><em>The same shape after applying Shape
+Processing.</em></center>
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_shape_processing "Repairing Operations".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/suppress_faces_operation.doc b/doc/salome/gui/GEOM/input/suppress_faces_operation.doc
new file mode 100644 (file)
index 0000000..2d7569e
--- /dev/null
@@ -0,0 +1,30 @@
+/*!
+
+\page suppress_faces_operation_page Suppress Faces
+
+\n To produce a <b>Suppress Faces</b> operation in the <b>Main
+Menu</b> select <b>Repair - > Suppress Faces</b>.
+
+\n This operation suppresses a face of a shape. This operation is
+available in <b>OCC Viewer</b> only.
+
+\n The \b Result will be a \b GEOM_Object (ListOfGeomShapes).
+
+\n <b>TUI Command:</b> <em>geompy.SuppressFaces(Shape, ListOfID),</em>
+where \em Shape is a shape to be processed, \em ListOfID is a list of faces
+ID's to be removed.
+\n <b>Arguments:</b> Name + Faces which should be removed (you can
+select them in the 3D viewer).
+
+\image html repair2.png
+
+\n <b>Example:</b>
+
+\image html suppress_faces1.png
+
+\image html suppress_faces2.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+\ref tui_suppress_faces "Repairing Operations".
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/suppress_holes_operation.doc b/doc/salome/gui/GEOM/input/suppress_holes_operation.doc
new file mode 100644 (file)
index 0000000..b9e25e0
--- /dev/null
@@ -0,0 +1,35 @@
+/*!
+
+\page suppress_holes_operation_page Suppress Holes
+
+\n To <b>Suppress Holes</b> in the <b>Main Menu</b> select <b>Repair - > Suppress Holes</b>.
+
+\n This operation removes holes with free boundaries on a selected
+shell or face. This operation is available in <b>OCC Viewer</b> only.
+
+\n The \b Result will be a \b GEOM_Object.
+
+\n <b>TUI Command:</b> <em>geompy.SuppressHoles(Shape,
+ListOfWireID),</em> where \em Shape is a shell or face, where holes
+with free boundaries must be removed, \em ListOfWireID is a list of wire sub shapes ID's. If it is
+empty, then all holes are removed.
+
+\image html repair5.png
+
+\n <b>Arguments:</b> Name + 1 shape + Wires which should be removed.
+\n <b>Remove all holes</b> checkbox allows to fill all holes of a definite shape.
+\n \b Detect button allows to display the number of free boundaries in
+your shape:
+
+\image html neo-detect2.png
+
+\n <b>Example:</b>
+
+\image html image109.jpg
+
+\image html image110.jpg
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..8aa245d
--- /dev/null
@@ -0,0 +1,39 @@
+/*!
+
+\page suppress_internal_wires_operation_page Suppress Internal Wires
+
+\n To <b>Suppress Internal Wires</b> in the <b>Main Menu</b> select
+<b>Repair - > Suppress Internal Wires</b>.
+
+\n This operation removes all internal wires or specified internal
+wires from user specified shapes. This operation is available in <b>OCC
+Viewer</b> only.
+
+\n The \b Result will be a \b GEOM_Object. 
+
+\n <b>TUI Command:</b> <em>geompy.SuppressInternalWires(Shape, Wires),
+</em> where \em Shape is a shape where wires are to be removed, \em Wires is a
+list of wires ID's to be removed; if the list is empty then all
+internal wires are removed.
+
+<b>Arguments:</b>
+<ul>
+<li>Name of the resulting object</li>
+<li>User specified shape</li>
+<li>User specified internal wires (lying on this shape except for its
+boundary), or all internal wires if <b>Remove all internal wires</b> box is
+checked </li>
+</ul>
+
+\image html repair4.png
+
+\n <b>Example:</b>
+
+\image html supp_int_wires1.png
+
+\image html supp_int_wires2.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..efb331f
--- /dev/null
@@ -0,0 +1,18 @@
+/*!
+
+\page transformation_operations_page Transformation Operations
+
+<ul>
+<li>\subpage translation_operation_page</li>
+<li>\subpage rotation_operation_page</li>
+<li>\subpage modify_location_operation_page</li>
+<li>\subpage mirror_operation_page</li>
+<li>\subpage scale_operation_page</li>
+<li>\subpage offset_operation_page</li>
+<li>\subpage multi_translation_operation_page</li>
+<li>\subpage multi_rotation_operation_page</li>
+<li>\subpage fillet_operation_page</li>
+<li>\subpage chamfer_operation_page</li>
+</ul>
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..4873873
--- /dev/null
@@ -0,0 +1,55 @@
+/*!
+
+\page transform_geom_obj_page Transforming geometrical objects
+
+<ul>
+<li>\subpage basic_operations_page</li>
+<ul>
+<li>\ref partition_page</li>
+<li>\ref archimede_page</li>
+</ul>
+<li>\subpage boolean_operations_page</li>
+<ul>
+<li>\ref using_boolean_operations_page</li>
+<li>\ref fuse_operation_page</li>
+<li>\ref common_operation_page</li>
+<li>\ref cut_operation_page</li>
+<li>\ref section_opeartion_page</li>
+</ul>
+<li>\subpage transformation_operations_page</li>
+<ul>
+<li>\ref translation_operation_page</li>
+<li>\ref rotation_operation_page</li>
+<li>\ref modify_location_operation_page</li>
+<li>\ref mirror_operation_page</li>
+<li>\ref scale_operation_page</li>
+<li>\ref offset_operation_page</li>
+<li>\ref multi_translation_operation_page</li>
+<li>\ref multi_rotation_operation_page</li>
+<li>\ref fillet_operation_page</li>
+<li>\ref chamfer_operation_page</li>
+</ul>
+<li>\subpage blocks_operations_page</li>
+<ul>
+<li>\ref multi_transformation_operation_page</li>
+<li>\ref explode_on_blocks_operation_page</li>
+<li>\ref propagate_operation_page</li>
+</ul>
+<li>\subpage repairing_operations_page</li>
+<ul>
+<li>\ref shape_processing_operation_page</li>
+<li>\ref suppress_faces_operation_page</li>
+<li>\ref close_contour_operation_page</li>
+<li>\ref suppress_internal_wires_operation_page</li>
+<li>\ref suppress_holes_operation_page</li>
+<li>\ref sewing_operation_page</li>
+<li>\ref glue_faces_operation_page</li>
+<li>\ref add_point_on_edge_operation_page</li>
+<li>\ref check_free_boundaries_operation_page</li>
+<li>\ref check_free_faces_operation_page</li>
+<li>\ref change_orientation_operation_page</li>
+<li>\ref remove_extra_edges_operation_page</li>
+</ul>
+</ul>
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..caf1fd7
--- /dev/null
@@ -0,0 +1,45 @@
+/*!
+
+\page translation_operation_page Translation
+
+\n To produce a \b Translation in the <b>Main Menu</b> select
+<b>Operations - > Transformation - > Translation</b>
+
+This Operation makes a translation of an \b Object. To translate a
+shape you need to define the base shape and the coordinates of the
+vector of translation. <b>Create a copy</b> checkbox allows to keep the
+initial object, otherwise it will be removed.
+\n The \b Result of all operations will be any \b GEOM_Object.
+
+\n Firstly you can define an \b Object and the vector coordinates along the
+axes.
+\n <b>TUI Command:</b> <em>geompy.MakeTranslation(Shape, DX, DY,
+DZ),</em> where Shape is a shape to be translated, DX, DY, DZ are
+components of translation vector.
+\n <b>Arguments:</b> Name + one or several objects + 3 values (coordinates).
+
+\image html transformation1.png
+
+\n Secondly you can define an \b Object and the start and the end points
+of the vector.
+\n <b>TUI Command:</b> <em>geompy.MakeTranslationTwoPoints(Object, Point1, Point2)</em>
+\n <b>Arguments:</b> Name + one or several objects + 2 vertices
+
+\image html transformation2.png
+
+\n Finally you can define an \b Object and the vector  
+\n <b>TUI Command:</b> <em>geompy.MakeTranslationVector(Object, Vector)</em>
+\n <b>Arguments:</b> Name + one or several objects + 1 vector.
+
+\image html transformation3.png
+
+\n <b>Example:</b>
+
+\image html translationsn1.png
+
+\image html translationsn2.png
+
+Our <b>TUI Scripts</b> 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
new file mode 100644 (file)
index 0000000..9586c95
--- /dev/null
@@ -0,0 +1,25 @@
+/*!
+
+\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)
+in the following dialog box.
+
+\image html neo-transparency.png
+
+or using a <b>TUI Command:</b> <em>gg.setTransparency(ID, Double)</em>
+
+\n <b>Examples:</b>
+
+\image html colorsn.png
+<center><em>Opaque</em></center>
+
+\image html transparencysn.png
+<center><em>50% Transparent</em></center>
+
+Our <b>TUI Scripts</b> provide you with useful examples of 
+\ref tui_change_transparency "Changing Display Parameters".
+
+*/
+
diff --git a/doc/salome/gui/GEOM/input/tui_advanced_geom_objs.doc b/doc/salome/gui/GEOM/input/tui_advanced_geom_objs.doc
new file mode 100644 (file)
index 0000000..21efff9
--- /dev/null
@@ -0,0 +1,221 @@
+/*!
+
+\page tui_advanced_geom_objs_page Advanced Geometrical Objects
+
+\anchor tui_creation_edge
+<br><h2>Creation of an Edge</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p0   = geompy.MakeVertex(0.  , 0.  , 0.  )
+pxyz = geompy.MakeVertex(100., 100., 100.)
+
+# create an edge
+edge = geompy.MakeEdge(p0, pxyz)
+
+# add object in the study
+id_edge = geompy.addToStudy(edge,"Edge")
+
+# display an edge
+gg.createAndDisplayGO(id_edge) 
+\endcode
+\anchor tui_creation_wire
+<br><h2>Creation of a Wire</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+px   = geompy.MakeVertex(100., 0.  , 0.  )
+py   = geompy.MakeVertex(0.  , 100., 0.  )
+pz   = geompy.MakeVertex(0.  , 0.  , 100.)
+
+# create a vector from two points
+vxy = geompy.MakeVector(px, py)
+
+# create an arc from three points
+arc = geompy.MakeArc(py, pz, px)
+
+# create a wire
+wire = geompy.MakeWire([vxy, arc])
+
+# add an object in the study
+id_wire = geompy.addToStudy(wire,"Wire")
+
+# display the wire
+gg.createAndDisplayGO(id_wire) 
+\endcode
+\anchor tui_creation_face
+<br><h2>Creation of a Face</h2>
+
+\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.)
+pxyz = geompy.MakeVertex(100., 100., 100.)
+
+# create a vector from two points
+vxy = geompy.MakeVector(px, py)
+
+# create an arc from three points
+arc = geompy.MakeArc(py, pz, px)
+
+# create a wire
+wire = geompy.MakeWire([vxy, arc])
+
+# create sketchers
+sketcher1 = 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])
+sketcher2 = geompy.MakeSketcher("Sketcher:F 0 0:TT 70 0:TT 70 70:TT 0 70:WW")
+sketcher3 = geompy.MakeSketcher("Sketcher:F 20 20:TT 50 20:TT 50 50:TT 20 50:WW")
+isPlanarFace = 1
+
+# create a face from the wire
+face1 = geompy.MakeFace(wire, isPlanarFace)
+
+# create faces from two wires
+face2 = geompy.MakeFaceWires([wire, sketcher1],isPlanarFace)
+face3 = geompy.MakeFaces([sketcher2, sketcher3],isPlanarFace)
+
+# add objects in the study
+id_face1 = geompy.addToStudy(face1,"Face1")
+id_face2 = geompy.addToStudy(face2,"Face2")
+id_face3 = geompy.addToStudy(face3,"Face3")
+
+# display the faces
+gg.createAndDisplayGO(id_face1)
+gg.setDisplayMode(id_face1,1)
+gg.setTransparency(id_face1,0.2)
+gg.createAndDisplayGO(id_face2)
+gg.setDisplayMode(id_face2,1)
+gg.setTransparency(id_face2,0.2)
+gg.createAndDisplayGO(id_face3)
+gg.setDisplayMode(id_face3,1)
+gg.setTransparency(id_face3,0.2) 
+\endcode
+\anchor tui_creation_shell
+<br><h2>Creation of a Shell</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+#create vertices
+p0   = geompy.MakeVertex( 0.,  0.,  0.)
+pxyz = geompy.MakeVertex( 5.,  5., 40.)
+
+# create sketchers
+sketcher1 = geompy.MakeSketcher("Sketcher:F 0 0:TT 70 0:TT 70 70:TT 0 70:WW")
+sketcher2 = geompy.MakeSketcher("Sketcher:F 20 20:TT 50 20:TT 50 50:TT 20 50:WW")
+isPlanarFace = 1
+
+# create a face from two wires
+face = geompy.MakeFaces([sketcher1, sketcher2],isPlanarFace)
+
+# create a prism
+prism = geompy.MakePrism(face, p0, pxyz)
+
+# explode the prism into faces
+prism_faces = geompy.SubShapeAllSorted(prism, geompy.ShapeType["FACE"])
+
+# create a shell from a set of faces
+shell = geompy.MakeShell([prism_faces[0], prism_faces[2], prism_faces[3],
+                          prism_faces[7], prism_faces[9]])
+
+# add objects in the study
+id_shell = geompy.addToStudy(shell,"Shell")
+
+# display the shell
+gg.createAndDisplayGO(id_shell)
+gg.setDisplayMode(id_shell,1) 
+\endcode
+\anchor tui_creation_solid
+<br><h2>Creation of a Solid</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+#create vertices
+p0 = geompy.MakeVertex( 0.,  0.,  0.)
+pz = geompy.MakeVertex( 0.,  0., 40.)
+
+# create sketchers
+sketcher = geompy.MakeSketcher("Sketcher:F -50 -50:TT 100 -50:R 0:C 50 70:R 0:L 100:WW")
+
+# create faces from two wires
+face = geompy.MakeFace(sketcher,1)
+
+# create a prism
+prism = geompy.MakePrism(face, p0, pz)
+
+# explode the prism into faces
+prism_faces = geompy.SubShapeAllSorted(prism, geompy.ShapeType["FACE"])
+
+# create a shell from a set of faces
+shell = geompy.MakeShell([prism_faces[0], prism_faces[1],
+                          prism_faces[3], prism_faces[4],
+                          prism_faces[5], prism_faces[2]])
+
+# create a solid, bounded by the given shells
+solid = geompy.MakeSolid([shell])
+
+# add objects in the study
+id_solid = geompy.addToStudy(solid,"Solid")
+
+# display the solid
+gg.createAndDisplayGO(id_solid)
+gg.setDisplayMode(id_solid,1) 
+\endcode
+\anchor tui_creation_compound
+<br><h2>Creation of a Compound</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(  -30.,  -30.,  50.)
+p2 = geompy.MakeVertex(  -60.,  -60.,  30.)
+p3 = geompy.MakeVertex(  -30.,  -30.,  10.)
+
+# create an arc from three points
+arc = geompy.MakeArc(p1, p2, p3)
+ShapeListCompound = []
+i = 0
+while i <= 3 :
+    S = geompy.MakeTranslation(arc, i * 50., 0., 0.)
+    ShapeListCompound.append(S)
+    i = i + 1
+
+# create a compund of the given shapes
+compound = geompy.MakeCompound(ShapeListCompound)
+
+# add object in the study
+id_compound = geompy.addToStudy(compound,"Compound")
+
+# display the compound
+gg.createAndDisplayGO(id_compound) 
+\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
new file mode 100644 (file)
index 0000000..d9c30a2
--- /dev/null
@@ -0,0 +1,272 @@
+/*!
+
+\page tui_basic_geom_objs_page Basic Geometrical Objects
+
+\anchor tui_creation_point
+<br><h2>Creation of a Point</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p0 = geompy.MakeVertex(0., 0., 0.)
+p100 = geompy.MakeVertexWithRef(p0, 100., 100., 100.)
+px = geompy.MakeVertex(100., 0., 0.)
+py = geompy.MakeVertex(0., 100., 0.)
+pz = geompy.MakeVertex(0., 0., 100.)
+
+# create a curve and a vertex on it
+Arc = geompy.MakeArc(py, pz, px)
+p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25)
+
+# add objects in the study
+id_p0       = geompy.addToStudy(p0,   "Vertex 0")
+id_p100     = geompy.addToStudy(p100, "Vertex 100")
+id_px       = geompy.addToStudy(px,   "Vertex X")
+id_py       = geompy.addToStudy(py,   "Vertex Y")
+id_pz       = geompy.addToStudy(pz,   "Vertex Z")
+id_Arc      = geompy.addToStudy(Arc,  "Arc")
+id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc")
+
+# display vertices
+gg.createAndDisplayGO(id_p0)
+gg.createAndDisplayGO(id_p100)
+gg.createAndDisplayGO(id_Arc)
+gg.createAndDisplayGO(id_p_on_arc) 
+\endcode
+
+\anchor tui_creation_line
+<br><h2>Creation of a Line</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p0 = geompy.MakeVertex(0., 0., 0.)
+p100 = geompy.MakeVertexWithRef(p0, 100., 100., 100.)
+px = geompy.MakeVertex(100., 0.  , 0.  )
+py = geompy.MakeVertex(0.  , 100., 0.  )
+pz = geompy.MakeVertex(0.  , 0.  , 100.)
+
+# create a vector from two points
+vxy  = geompy.MakeVector(px, py)
+
+# create a line from a point and a vector
+line1 = geompy.MakeLine(pz, vxy)
+
+#create a line from two points
+line2 = geompy.MakeLineTwoPnt(p0, p100)
+
+# add objects in the study
+id_vxy      = geompy.addToStudy(vxy,  "Vector")
+id_line1    = geompy.addToStudy(line1,"Line1")
+id_line2    = geompy.addToStudy(line2,"Line2")
+
+# display lines
+gg.createAndDisplayGO(id_vxy)
+gg.createAndDisplayGO(id_line1)
+gg.createAndDisplayGO(id_line2) 
+\endcode
+
+\anchor tui_creation_circle
+<br><h2>Creation of a Circle</h2>
+
+\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 circle from a point, a vector and a radius
+circle1 = geompy.MakeCircle(pz, vxy, 30)
+
+#create a circle from three points
+circle2 = geompy.MakeCircleThreePnt(p0, px, py)
+
+# add objects in the study
+id_vxy      = geompy.addToStudy(vxy,    "Vector")
+id_circle1  = geompy.addToStudy(circle1,"Circle1")
+id_circle2  = geompy.addToStudy(circle2,"Circle2")
+
+# display circles
+gg.createAndDisplayGO(id_vxy)
+gg.createAndDisplayGO(id_circle1)
+gg.createAndDisplayGO(id_circle2)
+\endcode
+
+\anchor tui_creation_ellipse
+<br><h2>Creation of an Ellipse</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p0 = geompy.MakeVertex(0., 0., 0.)
+p50 = geompy.MakeVertex(50., 50., 50.)
+
+# create a vector from two points
+vector  = geompy.MakeVector(p0, p50)
+
+# create an ellipse from a point, a vector and radiuses
+ellipse = geompy.MakeEllipse(p50, vector, 50, 25)
+
+# add objects in the study
+id_vector  = geompy.addToStudy(vector, "Vector")
+id_ellipse = geompy.addToStudy(ellipse,"Ellipse")
+
+# display the ellipse and its normal vector
+gg.createAndDisplayGO(id_vector)
+gg.createAndDisplayGO(id_ellipse)
+\endcode
+\anchor tui_creation_curve
+<br><h2>Creation of a Curve</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p0 = geompy.MakeVertex(0.  , 0.  , 0.  )
+p1 = geompy.MakeVertex(50. , 100., 200.)
+p2 = geompy.MakeVertex(150.,  50., 100.)
+p3 = geompy.MakeVertex(100., 150., 170.)
+p4 = geompy.MakeVertex(200., 200., 150.)
+
+# create a polyline from a list of points
+polyline = geompy.MakePolyline([p0, p1, p2, p3, p4])
+
+# create a bezier curve from a list of points
+bezier = geompy.MakeBezier([p0, p1, p2, p3, p4])
+
+#create a b-spline curve from a list of points
+interpol = geompy.MakeInterpol([p0, p1, p2, p3, p4])
+
+# add objects in the study
+id_p0       = geompy.addToStudy(p0,       "Point1")
+id_p1       = geompy.addToStudy(p1,       "Point2")
+id_p2       = geompy.addToStudy(p2,       "Point3")
+id_p3       = geompy.addToStudy(p3,       "Point4")
+id_p4       = geompy.addToStudy(p4,       "Point5")
+id_polyline = geompy.addToStudy(polyline, "Polyline")
+id_bezier   = geompy.addToStudy(bezier,   "Bezier")
+id_interpol = geompy.addToStudy(interpol, "Interpol")
+
+# display the points and the curves
+gg.createAndDisplayGO(id_p0)
+gg.createAndDisplayGO(id_p1)
+gg.createAndDisplayGO(id_p2)
+gg.createAndDisplayGO(id_p3)
+gg.createAndDisplayGO(id_p4)
+gg.createAndDisplayGO(id_polyline)
+gg.createAndDisplayGO(id_bezier)
+gg.createAndDisplayGO(id_interpol) 
+\endcode
+
+\anchor tui_creation_vector
+<br><h2>Creation of a Vector</h2>
+
+\code
+mport geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p1 = geompy.MakeVertex(10., 50., 20.)
+p2 = geompy.MakeVertex(70., 70., 70.)
+
+# create a vector from two points
+vector1 = geompy.MakeVector(p1, p2)
+
+# create a vector from the given components
+vector2 = geompy.MakeVectorDXDYDZ(30, 30, 100)
+
+# add objects in the study
+id_p1      = geompy.addToStudy(p1,     "Point1")
+id_p2      = geompy.addToStudy(p2,     "Point2")
+id_vector1 = geompy.addToStudy(vector1,"Vector1")
+id_vector2 = geompy.addToStudy(vector2,"Vector2")
+
+# display the points and the vectors
+gg.createAndDisplayGO(id_p1)
+gg.createAndDisplayGO(id_p2)
+gg.createAndDisplayGO(id_vector1)
+gg.createAndDisplayGO(id_vector2) 
+\endcode
+
+\anchor tui_creation_plane
+<br><h2>Creation of a Plane</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p1 = geompy.MakeVertex(  0.,   0., 100.)
+p2 = geompy.MakeVertex(100.,   0.,   0.)
+p3 = geompy.MakeVertex(200., 200., 200.)
+p4 = geompy.MakeVertex(100., 100.,   0.)
+p5 = geompy.MakeVertex(0.  , 100.,   0.)
+
+# create a vector from the given components
+vector = geompy.MakeVectorDXDYDZ(100., 100., 100.)
+
+# create a vector from two points
+vector_arc = geompy.MakeVector(p2, p5)
+
+# create an arc from three points
+arc = geompy.MakeArc(p2, p4, p5)
+
+# create a wire
+wire = geompy.MakeWire([vector_arc, arc])
+
+# create a face
+isPlanarWanted = 1
+face = geompy.MakeFace(wire, isPlanarWanted)
+trimsize = 1000.
+
+# create a plane from a point, a vector and a trimsize
+plane1 = geompy.MakePlane(p1, vector, trimsize)
+
+# create a plane from three points and a trimsize
+plane2 = geompy.MakePlaneThreePnt(p1, p2, p3, trimsize)
+
+# create a plane from the given face
+plane3 = geompy.MakePlaneFace(face, trimsize)
+
+# add objects in the study
+id_face   = geompy.addToStudy(face,  "Face")
+id_plane1 = geompy.addToStudy(plane1,"Plane1")
+id_plane2 = geompy.addToStudy(plane2,"Plane2")
+id_plane3 = geompy.addToStudy(plane3,"Plane3")
+
+# display the points and the vectors
+gg.createAndDisplayGO(id_face)
+gg.createAndDisplayGO(id_plane1)
+gg.createAndDisplayGO(id_plane2)
+gg.createAndDisplayGO(id_plane3)
+gg.setDisplayMode(id_plane1,1)
+gg.setTransparency(id_plane1,0.5)
+gg.setDisplayMode(id_plane2,1)
+gg.setTransparency(id_plane2,0.5)
+gg.setDisplayMode(id_plane3,1)
+gg.setTransparency(id_plane3,0.5) 
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/tui_basic_operations.doc b/doc/salome/gui/GEOM/input/tui_basic_operations.doc
new file mode 100644 (file)
index 0000000..14f7c07
--- /dev/null
@@ -0,0 +1,82 @@
+/*!
+
+\page tui_basic_operations_page Basic Operations
+
+\anchor tui_partition
+<br><h2>Partition</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p0   = geompy.MakeVertex(  0.,   0.,   0.)
+p200 = geompy.MakeVertex(200., 200., 200.)
+pz   = geompy.MakeVertex(  0.,   0., 100.)
+
+# create a vector
+vxyz = geompy.MakeVectorDXDYDZ(100., 100., 100.)
+
+# create a box from two points
+box = geompy.MakeBoxTwoPnt(p0, p200)
+
+# create a plane
+trimsize  = 500.
+plane = geompy.MakePlane(pz, vxyz, trimsize)
+
+# create partition objects
+partition1 = geompy.MakePartition([box], [plane])
+partition2 = geompy.Partition([box], [plane])
+partition3 = geompy.MakeHalfPartition(box, plane)
+
+# add objects in the study
+id_box = geompy.addToStudy(box,"Box")
+id_plane = geompy.addToStudy(plane,"Plane")
+id_partition1 = geompy.addToStudy(partition1,"MakePartition")
+id_partition2 = geompy.addToStudy(partition2,"Partition")
+id_partition3 = geompy.addToStudy(partition3,"MakeHalfPartition")
+
+# display the partition objects and the plane
+gg.createAndDisplayGO(id_box)
+gg.setDisplayMode(id_box,1)
+gg.createAndDisplayGO(id_plane)
+gg.setDisplayMode(id_plane,1)
+gg.createAndDisplayGO(id_partition1)
+gg.createAndDisplayGO(id_partition2)
+gg.createAndDisplayGO(id_partition3)
+\endcode
+
+\anchor tui_archimede
+<br><h2>Archimede</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p0   = geompy.MakeVertex(  0.,   0.,   0.)
+p200 = geompy.MakeVertex(200., 200., 200.)
+
+# create a box from two points
+box = geompy.MakeBoxTwoPnt(p0, p200)
+
+# perform an Archimede operation on the selected shape with selected parameters
+weight  = 1000000.
+waterdensity = 1.
+meshingdeflection = 0.01
+archimede  = geompy.Archimede(box, weight, waterdensity, meshingdeflection)
+
+# add objects in the study
+id_box = geompy.addToStudy(box,"Box")
+id_archimede = geompy.addToStudy(archimede,"Archimede")
+
+# display the box and the result of Archimede operation
+gg.createAndDisplayGO(id_box)
+gg.setDisplayMode(id_box,1)
+gg.createAndDisplayGO(id_archimede)
+gg.setDisplayMode(id_archimede,1) 
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/tui_blocks_operations.doc b/doc/salome/gui/GEOM/input/tui_blocks_operations.doc
new file mode 100644 (file)
index 0000000..8544667
--- /dev/null
@@ -0,0 +1,98 @@
+/*!
+
+\page tui_blocks_operations_page Blocks Operations
+
+\anchor tui_multi_transformation
+<br><h2>Multi Transformation</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p_25_25_50 = geompy.MakeVertex(25., 25., 50.)
+p_50_25_25 = geompy.MakeVertex(50., 25., 25.)
+p_25_50_25 = geompy.MakeVertex(25., 50., 25.)
+
+box = geompy.MakeBoxDXDYDZ(50, 50, 50)
+
+top_face = geompy.GetFaceNearPoint(box, p_25_25_50)
+yz_face = geompy.GetFaceNearPoint(box, p_50_25_25)
+xz_face = geompy.GetFaceNearPoint(box, p_25_50_25)
+
+top_face_ind = geompy.GetSubShapeID(box, top_face)
+yz_face_ind = geompy.GetSubShapeID(box, yz_face)
+xz_face_ind = geompy.GetSubShapeID(box, xz_face)
+
+# Multi-transformate block and glue the result
+box_tr1 = geompy.MakeMultiTransformation1D(box, yz_face_ind, top_face_ind, 3)
+box_tr2 = geompy.MakeMultiTransformation2D(box, xz_face_ind, yz_face_ind, 3, top_face_ind, 0, 2)
+
+# add objects in the study
+id_box = geompy.addToStudy(box, "Box")
+id_box_tr1 = geompy.addToStudy(box_tr1, "Multi-transformed Block 1D")
+id_box_tr2 = geompy.addToStudy(box_tr2, "Multi-transformed Block 2D")
+
+# display the results
+gg.createAndDisplayGO(id_box)
+gg.setDisplayMode(id_box,1)
+gg.createAndDisplayGO(id_box_tr1)
+gg.createAndDisplayGO(id_box_tr2) 
+\endcode
+
+\anchor tui_explode_on_blocks
+<br><h2>Explode on Blocks</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a box and a sphere
+box = geompy.MakeBoxDXDYDZ(200, 200, 200)
+sphere = geompy.MakeSphereR(100)
+
+# make a compound
+compound = geompy.MakeCompound([box, sphere])
+
+# get all the blocks of the given compound, by criteria: min_nb_faces <= nb. of faces <= max_nb_faces
+min_nb_faces = 6
+max_nb_faces = 6
+make_block_explode = geompy.MakeBlockExplode(compound, min_nb_faces, max_nb_faces)
+
+# add objects in the study
+id_compound = geompy.addToStudy(compound, "Compound")
+id_make_block_explode = geompy.addToStudyInFather(compound, make_block_explode[0], "MakeBlockExplode")
+
+# display the results
+gg.createAndDisplayGO(id_compound)
+gg.createAndDisplayGO(id_make_block_explode)
+gg.setDisplayMode(id_make_block_explode,1) 
+\endcode
+
+\anchor tui_propagate
+<br><h2>Propagate</h2>
+
+\code
+import geompy
+import salome
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(200, 200, 200)
+
+# build all possible propagation groups
+listChains = geompy.Propagate(check_box)
+
+# add objects in the study
+geompy.addToStudy(check_box, "Box")
+ii = 1
+for chain in listChains:
+    geompy.addToStudyInFather(check_box, chain, "propagation chain " + `ii`)
+    ii = ii + 1
+    pass
+
+salome.sg.updateObjBrowser(1) 
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/tui_boolean_operations.doc b/doc/salome/gui/GEOM/input/tui_boolean_operations.doc
new file mode 100644 (file)
index 0000000..f88047f
--- /dev/null
@@ -0,0 +1,139 @@
+/*!
+
+\page tui_boolean_operations_page Boolean Operations
+
+\anchor tui_fuse
+<br><h2>Fuse</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(25, 55, 0)
+p2 = geompy.MakeVertex( 0,  0, 0)
+v = geompy.MakeVector(p1, p2)
+
+# create a cylinder
+height = 35
+radius1 = 20
+cylinder = geompy.MakeCylinder(p1, v, radius1, height)
+
+# create a sphere
+sphere = geompy.MakeSphereR(40)
+
+# fuse
+fuse = geompy.MakeFuse(cylinder, sphere)
+
+# add objects in the study
+id_cylinder = geompy.addToStudy(cylinder, "Cylinder")
+id_sphere = geompy.addToStudy(sphere, "Sphere")
+id_fuse = geompy.addToStudy(fuse, "Fuse")
+
+# 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)
+\endcode
+
+\anchor tui_common
+<br><h2>Common</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(25, 55, 0)
+p2 = geompy.MakeVertex( 0,  0, 0)
+v = geompy.MakeVector(p1, p2)
+
+# create a cylinder
+height = 35
+radius1 = 20
+cylinder = geompy.MakeCylinder(p1, v, radius1, height)
+
+# create a sphere
+sphere = geompy.MakeSphereR(40)
+
+# make common
+common = geompy.MakeCommon(cylinder, sphere)
+
+# add objects in the study
+id_common = geompy.addToStudy(common, "Common")
+
+# display the results
+gg.createAndDisplayGO(id_common)
+gg.setDisplayMode(id_common,1)
+\endcode
+
+\anchor tui_cut
+<br><h2>Cut</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(25, 55, 0)
+p2 = geompy.MakeVertex( 0,  0, 0)
+v = geompy.MakeVector(p1, p2)
+
+# create a cylinder
+height = 35
+radius1 = 20
+cylinder = geompy.MakeCylinder(p1, v, radius1, height)
+
+# create a sphere
+sphere = geompy.MakeSphereR(40)
+
+#cut
+cut = geompy.MakeCut(cylinder, sphere)
+
+# add objects in the study
+id_cut = geompy.addToStudy(cut, "Cut")
+
+# display the results
+gg.createAndDisplayGO(id_cut)
+gg.setDisplayMode(id_cut,1) 
+\endcode
+
+\anchor tui_section 
+<br><h2>Section</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(25, 55, 0)
+p2 = geompy.MakeVertex( 0,  0, 0)
+v = geompy.MakeVector(p1, p2)
+
+# create a cylinder
+height = 35
+radius1 = 20
+cylinder = geompy.MakeCylinder(p1, v, radius1, height)
+
+# create a sphere
+sphere = geompy.MakeSphereR(40)
+
+# make a section
+section = geompy.MakeSection(cylinder, sphere)
+
+# add objects in the study
+id_section = geompy.addToStudy(section, "Section")
+
+# display the results
+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_building_by_blocks.doc b/doc/salome/gui/GEOM/input/tui_building_by_blocks.doc
new file mode 100644 (file)
index 0000000..3584c7e
--- /dev/null
@@ -0,0 +1,120 @@
+/*!
+
+\page tui_building_by_blocks_page Building by Blocks
+
+<br><h2>Quadrangle Face</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p1 = geompy.MakeVertex(  0.,   0.,   0.)
+p2 = geompy.MakeVertex(150.,  30.,   0.)
+p3 = geompy.MakeVertex(  0., 120.,  50.)
+p4 = geompy.MakeVertex(  0.,  40.,  70.)
+
+# create edges
+edge1 = geompy.MakeEdge(p1, p2)
+edge2 = geompy.MakeEdge(p2, p3)
+edge3 = geompy.MakeEdge(p3, p4)
+edge4 = geompy.MakeEdge(p4, p1)
+
+# create a quadrangle face from four edges
+qface1 = geompy.MakeQuad(edge1, edge2, edge3, edge4)
+
+# create a quadrangle face from two edges
+qface2 = geompy.MakeQuad2Edges(edge1, edge3)
+
+# create a quadrangle from four points in its corners
+qface3 = geompy.MakeQuad4Vertices(p1, p2, p3, p4)
+
+# add objects in the study
+id_p1 = geompy.addToStudy(p1,"Point1")
+id_p2 = geompy.addToStudy(p2,"Point2")
+id_p3 = geompy.addToStudy(p3,"Point3")
+id_p4 = geompy.addToStudy(p4,"Point4")
+id_edge1 = geompy.addToStudy(edge1,"Edge1")
+id_edge2 = geompy.addToStudy(edge2,"Edge2")
+id_edge3 = geompy.addToStudy(edge3,"Edge3")
+id_edge4 = geompy.addToStudy(edge4,"Edge4")
+id_qface1 = geompy.addToStudy(qface1,"Qface1")
+id_qface2 = geompy.addToStudy(qface2,"Qface2")
+id_qface3 = geompy.addToStudy(qface3,"Qface3")
+
+# display the vertices, the edges and the quadrangle faces
+gg.createAndDisplayGO(id_p1)
+gg.createAndDisplayGO(id_p2)
+gg.createAndDisplayGO(id_p3)
+gg.createAndDisplayGO(id_p4)
+gg.createAndDisplayGO(id_edge1)
+gg.createAndDisplayGO(id_edge2)
+gg.createAndDisplayGO(id_edge3)
+gg.createAndDisplayGO(id_edge4)
+gg.createAndDisplayGO(id_qface1)
+gg.setDisplayMode(id_qface1,1)
+gg.createAndDisplayGO(id_qface2)
+gg.setDisplayMode(id_qface2,1)
+gg.createAndDisplayGO(id_qface3)
+gg.setDisplayMode(id_qface3,1)
+\endcode
+
+<br><h2>Hexagonal Solid</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p0  = geompy.MakeVertex(  0.,   0.,   0.)
+p1  = geompy.MakeVertex(  0.,   0.,  40.)
+p2  = geompy.MakeVertex( 70., -15.,   0.)
+p3  = geompy.MakeVertex( 70., -15.,  70.)
+
+p4  = geompy.MakeVertex(  0.,  70.,   0.)
+p5  = geompy.MakeVertex(  0.,  70.,  40.)
+p6  = geompy.MakeVertex( 70.,  70.,   0.)
+p7  = geompy.MakeVertex( 70.,  70.,  70.)
+
+p8  = geompy.MakeVertex(  0., -50.,   0.)
+p9  = geompy.MakeVertex(  0., -50.,  40.)
+p10 = geompy.MakeVertex( 70., -35.,   0.)
+p11 = geompy.MakeVertex( 70., -35.,  70.)
+
+# create faces
+qface1 = geompy.MakeQuad4Vertices(p0, p1, p2, p3)
+qface2 = geompy.MakeQuad4Vertices(p4, p5, p6, p7)
+qface3 = geompy.MakeQuad4Vertices(p0, p1, p4, p5)
+qface4 = geompy.MakeQuad4Vertices(p2, p3, p6, p7)
+qface5 = geompy.MakeQuad4Vertices(p0, p2, p4, p6)
+qface6 = geompy.MakeQuad4Vertices(p1, p3, p5, p7)
+qface7 = geompy.MakeQuad4Vertices(p8, p9, p10, p11)
+
+# create a hexahedral solid between two given faces
+solid1 = geompy.MakeHexa2Faces(qface1, qface7)
+
+# create a hexahedral solid, bounded by six given faces
+solid2 = geompy.MakeHexa(qface1, qface2, qface3, qface4, qface5, qface6)
+
+# add objects in the study
+geompy.addToStudy(qface1,"qface1")
+geompy.addToStudy(qface2,"qface2")
+geompy.addToStudy(qface3,"qface3")
+geompy.addToStudy(qface4,"qface4")
+geompy.addToStudy(qface5,"qface5")
+geompy.addToStudy(qface6,"qface6")
+geompy.addToStudy(qface7,"qface7")
+
+id_solid1 = geompy.addToStudy(solid1,"Solid1")
+id_solid2 = geompy.addToStudy(solid2,"Solid2")
+
+# display solids
+gg.createAndDisplayGO(id_solid1)
+gg.setDisplayMode(id_solid1, 1)
+gg.createAndDisplayGO(id_solid2)
+gg.setDisplayMode(id_solid2, 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
new file mode 100644 (file)
index 0000000..29813a9
--- /dev/null
@@ -0,0 +1,189 @@
+/*!
+
+\page tui_complex_objs_page Complex Objects
+
+\anchor tui_creation_prism
+<br><h2>Creation of a Prism</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(   0.,   0.,   0.)
+p2 = geompy.MakeVertex( 100.,   0.,   0.)
+p3 = geompy.MakeVertex( 100., 100.,   0.)
+p4 = geompy.MakeVertex(   0., 100.,   0.)
+p5 = geompy.MakeVertex(   0.,   0.,  60.)
+p6 = geompy.MakeVertex(-100.,   0.,   0.)
+p7 = geompy.MakeVertex(-100.,-100.,   0.)
+p8 = geompy.MakeVertex(   0.,-100.,   0.)
+
+# create a vector from the given components
+vector = geompy.MakeVectorDXDYDZ(50., 50., 50.)
+
+#create vectors from two points
+vector1_arc1 = geompy.MakeVector(p1, p2)
+vector2_arc1 = geompy.MakeVector(p1, p4)
+vector1_arc2 = geompy.MakeVector(p1, p6)
+vector2_arc2 = geompy.MakeVector(p1, p8)
+
+# create arcs from three points
+arc1 = geompy.MakeArc(p2, p3, p4)
+arc2 = geompy.MakeArc(p6, p7, p8)
+
+# create wires
+wire1 = geompy.MakeWire([vector1_arc1, arc1, vector2_arc1])
+wire2 = geompy.MakeWire([vector1_arc2, arc2, vector2_arc2])
+
+# create faces
+isPlanarWanted = 1
+face1 = geompy.MakeFace(wire1, isPlanarWanted)
+face2 = geompy.MakeFace(wire2, isPlanarWanted)
+
+# create prisms
+prism1 = geompy.MakePrism(face2, p1, p5)
+prism2 = geompy.MakePrismVecH(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")
+
+# display cylinders
+gg.createAndDisplayGO(id_face1)
+gg.setDisplayMode(id_face1,1)
+gg.createAndDisplayGO(id_face2)
+gg.setDisplayMode(id_face2,1)
+gg.createAndDisplayGO(id_prism1)
+gg.setDisplayMode(id_prism1,1)
+gg.createAndDisplayGO(id_prism2)
+gg.setDisplayMode(id_prism2,1) 
+\endcode
+
+\anchor tui_creation_revolution
+<br><h2>Creation of a Revolution</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(  10.,  10.,  10.)
+p2 = geompy.MakeVertex(  15.,  15.,  50.)
+p3 = geompy.MakeVertex(  40.,  40.,   0.)
+
+#create vectors from two points
+vector1 = geompy.MakeVector(p1, p2)
+vector2 = geompy.MakeVector(p1, p3)
+
+# create a vector from the given components
+vector3 = geompy.MakeVectorDXDYDZ(-20., -20., 100.)
+
+# create a wire
+wire = geompy.MakeWire([vector1, vector2])
+
+# create a revolution
+revolution = geompy.MakeRevolution(wire, vector3, 2.3)
+
+# add objects in the study
+id_vector3    = geompy.addToStudy(vector3,"Axis")
+id_wire       = geompy.addToStudy(wire,"Wire")
+id_revolution = geompy.addToStudy(revolution,"Revolution")
+
+# display the vector, the wire and the revolution
+gg.createAndDisplayGO(id_vector3)
+gg.createAndDisplayGO(id_wire)
+gg.createAndDisplayGO(id_revolution)
+gg.setDisplayMode(id_revolution,1) 
+\endcode
+
+\anchor tui_creation_filling
+<br><h2>Creation of a Filling</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+mindeg = 2
+maxdeg = 5
+tol3d  = 0.0001
+tol2d  = 0.0001
+nbiter = 5
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(  -30.,  -30.,  50.)
+p2 = geompy.MakeVertex(  -60.,  -60.,  30.)
+p3 = geompy.MakeVertex(  -30.,  -30.,  10.)
+
+# create an arc from three points
+arc = geompy.MakeArc(p1, p2, p3)
+ShapeListCompound = []
+i = 0
+while i <= 3 :
+    S = geompy.MakeTranslation(arc, i * 50., 0., 0.)
+    ShapeListCompound.append(S)
+    i = i + 1
+
+compound = geompy.MakeCompound(ShapeListCompound)
+
+# create a filling
+filling = geompy.MakeFilling(compound, mindeg, maxdeg, tol3d, tol2d, nbiter)
+
+# add objects in the study
+id_compound = geompy.addToStudy(compound,"Compound")
+id_filling = geompy.addToStudy(filling,"Filling")
+
+# display the compound and the filling
+gg.createAndDisplayGO(id_compound)
+gg.createAndDisplayGO(id_filling)
+gg.setDisplayMode(id_filling,1) 
+\endcode
+\anchor tui_creation_pipe
+<br><h2>Creation of a Pipe</h2>
+
+\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.)
+pxyz = geompy.MakeVertex(100., 100., 100.)
+
+# create a vector from two points
+vxy = geompy.MakeVector(px, py)
+
+# create an arc from three points
+arc = geompy.MakeArc(py, pz, px)
+
+# create a wire
+wire = geompy.MakeWire([vxy, arc])
+
+# create an edge
+edge = geompy.MakeEdge(p0, pxyz)
+
+# create a pipe
+pipe = geompy.MakePipe(wire, edge)
+
+# add objects in the study
+id_wire = geompy.addToStudy(wire,"Wire")
+id_edge = geompy.addToStudy(edge,"Edge")
+id_pipe = geompy.addToStudy(pipe,"Pipe")
+
+# display the wire, the edge (path) and the pipe
+gg.createAndDisplayGO(id_wire)
+gg.createAndDisplayGO(id_edge)
+gg.createAndDisplayGO(id_pipe)
+gg.setDisplayMode(id_pipe,1) 
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/tui_creating_geom_objs.doc b/doc/salome/gui/GEOM/input/tui_creating_geom_objs.doc
new file mode 100644 (file)
index 0000000..7ba4445
--- /dev/null
@@ -0,0 +1,15 @@
+/*!
+
+\page tui_creating_geom_objs_page Creating Geometric Objects
+
+<ul>
+<li>\subpage tui_basic_geom_objs_page</li>
+<li>\subpage tui_primitives_page</li>
+<li>\subpage tui_complex_objs_page</li>
+<li>\subpage tui_working_with_groups_page</li>
+<li>\subpage tui_building_by_blocks_page</li>
+<li>\subpage tui_sketcher_page</li>
+<li>\subpage tui_advanced_geom_objs_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/tui_measurement_tools.doc b/doc/salome/gui/GEOM/input/tui_measurement_tools.doc
new file mode 100644 (file)
index 0000000..2748370
--- /dev/null
@@ -0,0 +1,363 @@
+/*!
+
+\page tui_measurement_tools_page Measurement Tools
+
+<br><h2>Point Coordinates</h2>
+
+\code
+import math
+import geompy
+
+# create a point
+point = geompy.MakeVertex(15., 23., 80.)
+
+# get the coordinates of the point and check its values
+coords = geompy.PointCoordinates(point)
+
+# check the obtained coordinate values
+tolerance = 1.e-07
+def IsEqual(val1, val2): return (math.fabs(val1 - val2) < tolerance)
+
+if IsEqual(coords[0], 15.) and IsEqual(coords[1], 23.) and IsEqual(coords[2], 80.):
+    print "All values are OK."
+else :
+    print "Coordinates of point must be (15, 23, 80), but returned (",
+    print coords[0], ", ", coords[1], ", ", coords[2], ")"
+    pass 
+\endcode
+
+<br><h2>Basic Properties</h2>
+
+\code
+import geompy
+import math
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(100,30,100)
+props = geompy.BasicProperties(box)
+print "\nBox 100x30x100 Basic Properties:"
+print " Wires length: ", props[0]
+print " Surface area: ", props[1]
+print " Volume      : ", props[2]
+length = math.sqrt((props[0] - 1840)*(props[0] - 1840))
+area = math.sqrt((props[1] - 32000)*(props[1] - 32000))
+volume = math.sqrt((props[2] - 300000)*(props[2] - 300000))
+if length > 1e-7 or area > 1e-7 or volume > 1e-7:
+    print "While must be:"
+    print " Wires length: ", 1840
+    print " Surface area: ", 32000
+    print " Volume      : ", 300000.
+\endcode
+
+<br><h2>Center of masses</h2>
+
+\code
+import geompy
+import math
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(100,30,100)
+cm = geompy.MakeCDG(box)
+if cm is None:
+    raise RuntimeError, "MakeCDG(box) failed"
+else:
+    print "\nCentre of gravity of box has been successfully obtained:"
+    coords = geompy.PointCoordinates(cm)
+    print "(", coords[0], ", ", coords[1], ", ", coords[2], ")"
+    dx = math.sqrt((coords[0] - 50)*(coords[0] - 50))
+    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)" 
+\endcode
+
+<br><h2>Inertia</h2>
+
+\code
+import geompy
+import math
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(100,30,100)
+In = geompy.Inertia(box)
+print "\nInertia matrix of box 100x30x100:"
+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] 
+\endcode
+
+<br><h2>Check Free Boundaries</h2>
+
+\code
+import os
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create boxes
+box1 = geompy.MakeBox(0,0,0,100,50,100)
+box2 = geompy.MakeBox(100,0,0,250,50,100)
+
+# make a compound
+compound = geompy.MakeCompound([box1, box2])
+
+# import from *.brep
+ImportFromBREP = geompy.ImportBREP(os.getenv("DATA_DIR")+"/Shapes/Brep/flight_solid.brep")
+
+# get a face
+faces = geompy.SubShapeAllSorted(ImportFromBREP, geompy.ShapeType["FACE"])
+
+# get the free boundary for face 32
+Res = geompy.GetFreeBoundary(faces[32])
+isSuccess   = Res[0]
+ClosedWires = Res[1]
+OpenWires   = Res[2]
+
+if isSuccess == 1 :
+    print "Checking free boudaries is OK."
+else :
+    print "Checking free boudaries is KO!"
+print "len(ClosedWires) = ", len(ClosedWires)
+
+i = 0
+for wire in ClosedWires :
+    wire_name = "Face 32 -> Close wires : WIRE %d"%(i+1)
+    geompy.addToStudy(ClosedWires[i], wire_name)
+    if i < len(ClosedWires) :
+        i = i+ 1
+
+print "len(OpenWires) = ", len(OpenWires)
+
+i = 0
+for wire in OpenWires :
+    wire_name = "Face 32 -> Open wires : WIRE %d"%(i+1)
+    geompy.addToStudy(OpenWires[i], wire_name)
+    if i < len(OpenWires) :
+        i = i+ 1
+
+# get the free boundary for face 41
+Res = geompy.GetFreeBoundary(faces[41])
+isSuccess   = Res[0]
+ClosedWires = Res[1]
+OpenWires   = Res[2]
+
+if isSuccess == 1 :
+    print "Checking free boudaries is OK."
+else :
+    print "Checking free boudaries is KO!"
+print "len(ClosedWires) = ", len(ClosedWires)
+
+i = 0
+for wire in ClosedWires :
+    wire_name = "Face 41 -> Close wires : WIRE %d"%(i+1)
+    geompy.addToStudy(ClosedWires[i], wire_name)
+    if i < len(ClosedWires) :
+        i = i+ 1
+
+print "len(OpenWires) = ", len(OpenWires)
+
+i = 0
+for wire in OpenWires :
+    wire_name = "Face 41 -> Open wires : WIRE %d"%(i+1)
+    geompy.addToStudy(OpenWires[i], wire_name)
+    if i < len(OpenWires) :
+        i = i+ 1
+
+# add the imported object to the study
+id_ImportFromBREP = geompy.addToStudy(ImportFromBREP, "ImportFromBREP")
+salome.sg.updateObjBrowser(1)
+\endcode
+
+
+<br><h2>Check Free Faces</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(35, 35, 0)
+p2 = geompy.MakeVertex(35, 35, 50)
+v = geompy.MakeVector(p1, p2)
+
+# create a cylinder
+cylinder = geompy.MakeCone(p1, v, 30, 20, 20)
+
+# create a cone
+cone = geompy.MakeCone(p1, v, 70, 40, 60)
+
+# make cut
+cut = geompy.MakeCut(cone, cylinder)
+
+# get faces as sub-shapes
+faces = []
+faces = geompy.SubShapeAllSorted(cut, geompy.ShapeType["FACE"])
+f_2 = geompy.GetSubShapeID(cut, faces[0])
+
+# remove one face from the shape
+cut_without_f_2 = geompy.SuppressFaces(cut, [f_2])
+
+# suppress the specified wire
+result = geompy.GetFreeFacesIDs(cut_without_f_2)
+print "A number of free faces is ", len(result)
+
+# add objects in the study
+all_faces = geompy.SubShapeAllSorted(cut_without_f_2, geompy.ShapeType["FACE"])
+for face in all_faces :
+    sub_shape_id = geompy.GetSubShapeID(cut_without_f_2, face)
+    if result.count(sub_shape_id) > 0 :
+        face_name = "Free face %d"%(sub_shape_id)
+        geompy.addToStudy(face, face_name)
+
+# in this example all faces from cut_without_f_2 are free
+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) 
+\endcode
+
+
+
+<br><h2>Bounding Box</h2>
+
+\code
+import geompy
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(100,30,100)
+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] 
+\endcode
+
+<br><h2>Minimal Distance</h2>
+
+\code
+import geompy
+
+# create boxes
+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 
+\endcode
+<br><h2>Tolerance</h2>
+
+\code
+import geompy
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(100,30,100)
+Toler = geompy.Tolerance(box)
+print "\nBox 100x30x100 tolerance:"
+print " Face min. tolerance: ", Toler[0]
+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] 
+\endcode
+
+<br><h2>Angle</h2>
+
+\code
+import salome
+salome.salome_init()
+
+import math
+import geompy
+geompy.init_geom(salome.myStudy)
+
+OX  = geompy.MakeVectorDXDYDZ(10, 0,0)
+OXY = geompy.MakeVectorDXDYDZ(10,10,0)
+
+# in one plane
+Angle = geompy.GetAngle(OX, OXY)
+
+print "\nAngle between OX and OXY = ", Angle
+if math.fabs(Angle - 45.0) > 1e-05:
+    print "  Error: returned angle is", Angle, "while must be 45.0"
+    pass
+
+# not in one plane
+OXY_shift = geompy.MakeTranslation(OXY,10,-10,20)
+Angle = geompy.GetAngle(OX, OXY_shift)
+
+print "Angle between OX and OXY_shift = ", Angle
+if math.fabs(Angle - 45.0) > 1e-05:
+    print "  Error: returned angle is", Angle, "while must be 45.0"
+    pass
+
+# not linear
+pnt1 = geompy.MakeVertex(0, 0, 0)
+pnt2 = geompy.MakeVertex(10, 0, 0)
+pnt3 = geompy.MakeVertex(20, 10, 0)
+arc  = geompy.MakeArc(pnt1, pnt2, pnt3)
+Angle = geompy.GetAngle(OX, arc)
+
+if (math.fabs(Angle + 1.0) > 1e-6 or geompy.MeasuOp.IsDone()):
+    print "Error. Angle must not be computed on curvilinear edges"
+    pass
+
+\endcode
+
+
+<br><h2>What Is</h2>
+
+\code
+import geompy
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(100,30,100)
+Descr = geompy.WhatIs(box)
+print "\nBox 100x30x100 description:"
+print Descr 
+\endcode
+
+<br><h2>Check Shape</h2>
+
+\code
+import geompy
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(100,30,100)
+IsValid = geompy.CheckShape(box)
+if IsValid == 0:
+    raise RuntimeError, "Invalid box created"
+else:
+    print "\nBox is valid" 
+\endcode
+<br><h2>Check Compound of Blocks</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create boxes
+box1 = geompy.MakeBox(0,0,0,100,50,100)
+box2 = geompy.MakeBox(100,0,0,250,50,100)
+
+# make a compound
+compound = geompy.MakeCompound([box1, box2])
+
+# glue the faces of the compound
+tolerance = 1e-5
+glue = geompy.MakeGlueFaces(compound, tolerance)
+IsValid = geompy.CheckCompoundOfBlocks(glue)
+if IsValid == 0:
+    raise RuntimeError, "Invalid compound created"
+else:
+    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
new file mode 100644 (file)
index 0000000..8278256
--- /dev/null
@@ -0,0 +1,159 @@
+/*!
+
+\page tui_primitives_page Primitives
+
+\anchor tui_creation_box
+<br><h2>Creation of a Box</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p0 = geompy.MakeVertex(15, 25, 35)
+p70 = geompy.MakeVertex(70, 70, 70)
+
+# create boxes
+box1 = geompy.MakeBoxDXDYDZ(10, 20, 30)
+box2 = geompy.MakeBox(10,20,30, 15,25,35)
+box3 = geompy.MakeBoxTwoPnt(p0, p70)
+
+# add objects in the study
+id_box1 = geompy.addToStudy(box1,"Box1")
+id_box2 = geompy.addToStudy(box2,"Box2")
+id_box3 = geompy.addToStudy(box3,"Box3")
+
+# display the boxes
+gg.createAndDisplayGO(id_box1)
+gg.setDisplayMode(id_box1,1)
+gg.createAndDisplayGO(id_box2)
+gg.setDisplayMode(id_box2,1)
+gg.createAndDisplayGO(id_box3)
+gg.setDisplayMode(id_box3,1)
+\endcode
+
+\anchor tui_creation_cylinder
+<br><h2>Creation of a Cylinder</h2>
+
+\code
+import geompy
+import salome
+
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(25, 35, 45)
+p2 = geompy.MakeVertex(70, 70, 70)
+v = geompy.MakeVector(p1, p2)
+
+# create cylinders
+height = 40
+
+radius1 = 15
+cylinder1 = geompy.MakeCylinder(p1, v, radius1, height)
+
+radius2 = 30
+cylinder2 = geompy.MakeCylinderRH(radius2, height)
+
+# add objects in the study
+id_cylinder1 = geompy.addToStudy(cylinder1,"Cylinder1")
+id_cylinder2 = geompy.addToStudy(cylinder2,"Cylinder2")
+
+# display the cylinders
+gg.createAndDisplayGO(id_cylinder1)
+gg.setDisplayMode(id_cylinder1,1)
+gg.createAndDisplayGO(id_cylinder2)
+gg.setDisplayMode(id_cylinder2,1) 
+\endcode
+
+\anchor tui_creation_sphere
+<br><h2>Creation of a Sphere</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex
+p = geompy.MakeVertex(55, 45, 25)
+
+# create spheres
+radius1 = 20
+sphere1 = geompy.MakeSpherePntR(p, radius1)
+radius2 = 15
+sphere2 = geompy.MakeSphere(0, 0, 45, radius2)
+radius3 = 30
+sphere3 = geompy.MakeSphereR(radius3)
+
+# add objects in the study
+id_sphere1 = geompy.addToStudy(sphere1,"Sphere1")
+id_sphere2 = geompy.addToStudy(sphere2,"Sphere2")
+id_sphere3 = geompy.addToStudy(sphere3,"Sphere3")
+
+# display spheres
+gg.createAndDisplayGO(id_sphere1)
+gg.setDisplayMode(id_sphere1,1)
+gg.createAndDisplayGO(id_sphere2)
+gg.setDisplayMode(id_sphere2,1)
+gg.createAndDisplayGO(id_sphere3)
+gg.setDisplayMode(id_sphere3,1) 
+\endcode
+
+\anchor tui_creation_torus 
+<br><h2>Creation of a Torus</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(35, 40, 45)
+p2 = geompy.MakeVertex(35, 45, 70)
+v = geompy.MakeVector(p1, p2)
+
+# create toruses
+torus1 = geompy.MakeTorus(p1, v, 20, 10)
+torus2 = geompy.MakeTorusRR(30, 15)
+
+# add objects in the study
+id_torus1 = geompy.addToStudy(torus1,"Torus1")
+id_torus2 = geompy.addToStudy(torus2,"Torus2")
+
+# display toruses
+gg.createAndDisplayGO(id_torus1)
+gg.setDisplayMode(id_torus1,1)
+gg.createAndDisplayGO(id_torus2)
+gg.setDisplayMode(id_torus2,1) 
+\endcode
+
+\anchor tui_creation_cone
+<br><h2>Creation of a Cone</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(35, 35, 0)
+p2 = geompy.MakeVertex(35, 35, 70)
+v = geompy.MakeVector(p1, p2)
+
+# create cones
+cone1 = geompy.MakeCone(p1, v, 17, 1, 20)
+cone2 = geompy.MakeConeR1R2H(30, 10, 30)
+
+# add objects in the study
+id_cone1 = geompy.addToStudy(cone1,"Cone1")
+id_cone2 = geompy.addToStudy(cone2,"Cone2")
+
+# display cones
+gg.createAndDisplayGO(id_cone1)
+gg.setDisplayMode(id_cone1,1)
+gg.createAndDisplayGO(id_cone2)
+gg.setDisplayMode(id_cone2,1) 
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/tui_repairing_operations.doc b/doc/salome/gui/GEOM/input/tui_repairing_operations.doc
new file mode 100644 (file)
index 0000000..98dccc6
--- /dev/null
@@ -0,0 +1,324 @@
+/*!
+
+\page tui_repairing_operations_page Repairing Operations
+
+\anchor tui_shape_processing
+<br><h2>Shape Processing</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices, an edge, an arc, a wire, a face and a prism
+p1 = geompy.MakeVertex(0,0,0)
+p2 = geompy.MakeVertex(200,0,0)
+p3 = geompy.MakeVertex(100,150,0)
+edge = geompy.MakeEdge(p1,p2)
+arc  = geompy.MakeArc(p1,p3,p2)
+wire = geompy.MakeWire([edge,arc])
+face = geompy.MakeFace(wire, 1)
+theShape = geompy.MakePrismVecH(face, edge, 130)
+
+# check the shape at the beginning
+print "Before ProcessShape:"
+isValid = geompy.CheckShape(theShape)
+if isValid == 0:
+    print "The shape is not valid"
+else:
+    print "The shape seems to be valid"
+
+# process the Shape
+Operators = ["FixShape"]
+Parameters = ["FixShape.Tolerance3d"]
+Values = ["1e-7"]
+PS = geompy.ProcessShape(theShape, Operators, Parameters, Values)
+
+# check the shape at the end
+print "After ProcessShape:"
+isValid = geompy.CheckShape(PS)
+if isValid == 0:
+    print "The shape is not valid"
+    raise RuntimeError, "It seems, that the ProcessShape() has failed"
+else:
+    print "The shape seems to be valid"
+
+# add in the study and display
+Id_Shape = geompy.addToStudy(theShape, "Invalid Shape")
+Id_PS    = geompy.addToStudy(PS, "Processed Shape")
+gg.createAndDisplayGO(Id_Shape)
+gg.setDisplayMode(Id_Shape,1)
+gg.createAndDisplayGO(Id_PS)
+gg.setDisplayMode(Id_PS,1) 
+\endcode
+
+\anchor tui_suppress_faces
+<br><h2>Suppress Faces</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(200, 200, 200)
+
+# The list of IDs (IDList) for suppress faces
+sup_faces = []
+sup_faces = geompy.SubShapeAllSorted(box, geompy.ShapeType["FACE"])
+
+# get indices of the sub-shape
+f1_id = geompy.GetSubShapeID(box, sup_faces[3])
+
+# remove faces from the given object (shape)
+result = geompy.SuppressFaces(box, [f1_id])
+
+# add objects in the study
+id_box = geompy.addToStudy(box, "Box")
+id_result = geompy.addToStudy(result, "Result")
+
+# display the results
+gg.createAndDisplayGO(id_box)
+gg.setDisplayMode(id_box,1)
+gg.createAndDisplayGO(id_result)
+gg.setDisplayMode(id_result,1)
+\endcode
+
+\anchor tui_close_contour
+<br><h2>Close Contour</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices and vectors
+p0  = geompy.MakeVertex(  0.,   0.,   0.)
+px  = geompy.MakeVertex(100.,   0.,   0.)
+py  = geompy.MakeVertex(  0., 100.,   0.)
+py1 = geompy.MakeVertex(  0., 140.,   0.)
+pz  = geompy.MakeVertex(  0.,   0., 100.)
+vxy = geompy.MakeVector(px, py)
+
+# create an arc
+arc = geompy.MakeArc(py1, pz, px)
+
+# create a wire
+wire = geompy.MakeWire([vxy, arc])
+
+# close an open wire by creation of an edge between ends
+wire_close = geompy.CloseContour(wire, [1], 0)
+
+# add objects in the study
+id_wire = geompy.addToStudy(wire, "Wire")
+id_wire_close = geompy.addToStudy(wire_close, "Wire close")
+
+# display the results
+gg.createAndDisplayGO(id_wire)
+gg.createAndDisplayGO(id_wire_close) 
+\endcode
+
+\anchor tui_suppress_internal_wires 
+<br><h2>Suppress Internal Wires</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(55, 65, 50)
+p2 = geompy.MakeVertex(55,  0, 50)
+v = geompy.MakeVector(p1, p2)
+
+# create a cylinder
+height = 100
+radius1 = 40
+cylinder = geompy.MakeCylinder(p1, v, radius1, height)
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(100, 100, 100)
+
+# make a cut
+cut = geompy.MakeCut(box, cylinder)
+
+# suppress all internal wires
+result = geompy.SuppressInternalWires(cut, [])
+
+# add objects in the study
+id_cut = geompy.addToStudy(cut, "Cut")
+id_result = geompy.addToStudy(result, "Result")
+
+# display the results
+gg.createAndDisplayGO(id_cut)
+gg.setDisplayMode(id_cut,1)
+gg.createAndDisplayGO(id_result)
+gg.setDisplayMode(id_result,1) 
+\endcode
+
+\anchor tui_suppress_holes
+<br><h2>Suppress Holes</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(35, 35, 0)
+p2 = geompy.MakeVertex(35, 35, 50)
+v = geompy.MakeVector(p1, p2)
+
+# create a cylinder
+height = 20
+radius1 = 20
+cylinder = geompy.MakeCylinder(p1, v, radius1, height)
+
+# create a cone
+cone = geompy.MakeCone(p1, v, 70, 0, 80)
+
+# make a cut
+cut = geompy.MakeCut(cone, cylinder)
+
+# get faces as sub-shapes
+faces = []
+faces = geompy.SubShapeAllSorted(cut, geompy.ShapeType["FACE"])
+f_2 = geompy.GetSubShapeID(cut, faces[2])
+
+# remove one face from the shape
+cut_without_f_2 = geompy.SuppressFaces(cut, [f_2])
+
+# get wires as sub-shapes
+wires = []
+wires = geompy.SubShapeAllSorted(cut_without_f_2, geompy.ShapeType["WIRE"])
+w_0 = geompy.GetSubShapeID(cut_without_f_2, wires[0])
+
+# suppress the selected wire
+result = geompy.SuppressHoles(cut_without_f_2, [w_0])
+
+# add objects in the study
+id_cut = geompy.addToStudy(cut, "Cut")
+id_cut_without_f_2 = geompy.addToStudy(cut_without_f_2, "Cut without f_2")
+id_result = geompy.addToStudy(result, "Result")
+
+# display the results
+gg.createAndDisplayGO(id_cut)
+gg.setDisplayMode(id_cut,1)
+gg.createAndDisplayGO(id_cut_without_f_2)
+gg.setDisplayMode(id_cut_without_f_2,1)
+gg.createAndDisplayGO(id_result)
+gg.setDisplayMode(id_result,1) 
+\endcode
+
+\anchor tui_sewing
+<br><h2>Sewing</h2>
+
+\code
+import geompy
+import salome
+import math
+gg = salome.ImportComponentGUI("GEOM")
+
+# create base points
+px = geompy.MakeVertex(100., 0., 0.)
+py = geompy.MakeVertex(0., 100., 0.)
+pz = geompy.MakeVertex(0., 0., 100.)
+
+# create base geometry 2D & 3D
+vector = geompy.MakeVector(px, py)
+arc = geompy.MakeArc(py, pz, px)
+
+# create base objects
+angle = 45. * math.pi / 180
+WantPlanarFace = 1 #True
+wire = geompy.MakeWire([vector, arc])
+face = geompy.MakeFace(wire, WantPlanarFace)
+face_rot = geompy.MakeRotation(face, vector, angle)
+
+# make sewing
+precision = 0.00001
+sewing = geompy.MakeSewing([face, face_rot], precision)
+
+# add objects in the study
+id_face = geompy.addToStudy(face, "Face")
+id_face_rot = geompy.addToStudy(face_rot, "Face rotation")
+id_sewing = geompy.addToStudy(sewing, "Sewing")
+
+# display the results
+gg.createAndDisplayGO(id_face)
+gg.setDisplayMode(id_face,1)
+gg.createAndDisplayGO(id_face_rot)
+gg.setDisplayMode(id_face_rot,1)
+gg.createAndDisplayGO(id_sewing)
+gg.setDisplayMode(id_sewing,1) 
+\endcode
+
+\anchor tui_glue_faces
+<br><h2>Glue Faces</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create boxes
+box1 = geompy.MakeBox(0,0,0,100,50,100)
+box2 = geompy.MakeBox(100,0,0,250,50,100)
+
+# make compound
+compound = geompy.MakeCompound([box1, box2])
+
+# glue compound's faces
+tolerance = 1e-5
+glue = geompy.MakeGlueFaces(compound, tolerance)
+
+# add objects in study
+id_box1 = geompy.addToStudy(box1, "Box1")
+id_box2 = geompy.addToStudy(box2, "Box2")
+id_compound = geompy.addToStudy(compound, "Compound")
+id_glue = geompy.addToStudy(glue, "Glue faces")
+
+# display results
+gg.createAndDisplayGO(id_box1)
+gg.setDisplayMode(id_box1,1)
+gg.createAndDisplayGO(id_box2)
+gg.setDisplayMode(id_box2,1)
+gg.createAndDisplayGO(id_compound)
+gg.setDisplayMode(id_compound,1)
+gg.createAndDisplayGO(id_glue)
+gg.setDisplayMode(id_glue,1) 
+\endcode
+
+\anchor tui_add_point_on_edge
+<br><h2>Add Point on Edge</h2>
+
+\code
+import geompy
+import salome
+
+# create vertices
+p1 = geompy.MakeVertex(0,0,50)
+p2 = geompy.MakeVertex(60,0,50)
+
+# make an edge
+edge = geompy.MakeEdge(p1, p2) #geompy.GetSubShape(box, edge_ind)
+
+# divide an edge
+divide = geompy.DivideEdge(edge, -1, 0.5, 0)
+
+# add objects in the study
+id_edge = geompy.addToStudy(edge, "Edge")
+edge_points = geompy.SubShapeAllSorted(edge, geompy.ShapeType["VERTEX"])
+for point in edge_points:
+    geompy.addToStudyInFather(edge, point, "Edge's point")
+
+id_divide = geompy.addToStudy(divide, "Divided edge")
+edge_points = geompy.SubShapeAllSorted(divide, geompy.ShapeType["VERTEX"])
+for point in edge_points:
+    geompy.addToStudyInFather(divide, point, "Edge's point after divide")
+
+salome.sg.updateObjBrowser(1) 
+\endcode
+
+
+*/
diff --git a/doc/salome/gui/GEOM/input/tui_scripts.doc b/doc/salome/gui/GEOM/input/tui_scripts.doc
new file mode 100644 (file)
index 0000000..08195e6
--- /dev/null
@@ -0,0 +1,28 @@
+/*!
+
+\page tui_scripts_page TUI Scripts
+
+<ul>
+<li>\subpage tui_viewing_geom_objs_page</li>
+<li>\subpage tui_creating_geom_objs_page</li>
+<ul>
+<li>\ref tui_basic_geom_objs_page</li>
+<li>\ref tui_primitives_page</li>
+<li>\ref tui_complex_objs_page</li>
+<li>\ref tui_working_with_groups_page</li>
+<li>\ref tui_building_by_blocks_page</li>
+<li>\ref tui_sketcher_page</li>
+<li>\ref tui_advanced_geom_objs_page</li>
+</ul>
+<li>\subpage tui_transformation_page</li>
+<ul>
+<li>\ref tui_basic_operations_page</li>
+<li>\ref tui_boolean_operations_page</li>
+<li>\ref tui_transformation_operations_page</li>
+<li>\ref tui_blocks_operations_page</li>
+<li>\ref tui_repairing_operations_page</li>
+</ul>
+<li>\subpage tui_measurement_tools_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/tui_sketcher.doc b/doc/salome/gui/GEOM/input/tui_sketcher.doc
new file mode 100644 (file)
index 0000000..31c576f
--- /dev/null
@@ -0,0 +1,48 @@
+/*!
+
+\page tui_sketcher_page Sketcher
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices
+p1 = geompy.MakeVertex(70.,  0.,  0.)
+p2 = geompy.MakeVertex(70., 70., 80.)
+p3 = geompy.MakeVertex( 0., 70.,  0.)
+
+#create a vector from two points
+vector_arc = geompy.MakeVector(p1, p3)
+
+# create an arc from three points
+arc = geompy.MakeArc(p1, p2, p3)
+
+# create a wire
+wire = geompy.MakeWire([vector_arc, arc])
+
+# create a planar face
+isPlanarWanted = 1
+face = geompy.MakeFace(wire, isPlanarWanted)
+
+# create a sketcher (face), following the textual description
+sketcher1 = geompy.MakeSketcher("Sketcher:F -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WF",
+                                [100,0,0, 1,1,1, -1,1,0])
+
+# create a sketcher (wire) on the given face
+sketcher2 = geompy.MakeSketcherOnPlane("Sketcher:F 10 -30:R 10:C 20 180:R 15:L 50:WW", face)
+
+# add objects in the study
+id_face = geompy.addToStudy(face,"Face")
+id_sketcher1 = geompy.addToStudy(sketcher1,"Sketcher1")
+id_sketcher2 = geompy.addToStudy(sketcher2,"Sketcher2")
+
+# display the first sketcher and the second sketcher with its planar face
+gg.createAndDisplayGO(id_face)
+gg.setDisplayMode(id_face,1)
+gg.setTransparency(id_face,0.5)
+gg.createAndDisplayGO(id_sketcher1)
+gg.createAndDisplayGO(id_sketcher2) 
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/tui_transformation.doc b/doc/salome/gui/GEOM/input/tui_transformation.doc
new file mode 100644 (file)
index 0000000..df8636f
--- /dev/null
@@ -0,0 +1,13 @@
+/*!
+
+\page tui_transformation_page Transformation
+
+<ul>
+<li>\subpage tui_basic_operations_page</li>
+<li>\subpage tui_boolean_operations_page</li>
+<li>\subpage tui_transformation_operations_page</li>
+<li>\subpage tui_blocks_operations_page</li>
+<li>\subpage tui_repairing_operations_page</li>
+</ul>
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/tui_transformation_operations.doc b/doc/salome/gui/GEOM/input/tui_transformation_operations.doc
new file mode 100644 (file)
index 0000000..a05846a
--- /dev/null
@@ -0,0 +1,464 @@
+/*!
+
+\page tui_transformation_operations_page Transformation Operations
+
+\anchor tui_translation
+<br><h2>Translation</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(10, 40, 0)
+p2 = geompy.MakeVertex( 0,  0, 50)
+p3 = geompy.MakeVertex(50, 80, 0)
+v = geompy.MakeVector(p1, p2)
+vt = geompy.MakeVector(p1, p3)
+
+# create a cylinder
+height = 35
+radius1 = 20
+cylinder = geompy.MakeCylinder(p1, v, radius1, height)
+
+# translate the given object along the vector, specified by its end points
+# (all three functions produce the same result)
+translation1 = geompy.MakeTranslationTwoPoints(cylinder, p1, p3)
+translation2 = geompy.MakeTranslation(cylinder, 40, 40, 0)
+translation3 = geompy.MakeTranslationVector(cylinder, vt)
+
+# 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")
+
+# display the results
+gg.createAndDisplayGO(id_cylinder)
+gg.setDisplayMode(id_cylinder,1)
+gg.createAndDisplayGO(id_translation1)
+gg.setDisplayMode(id_translation1,1)
+gg.createAndDisplayGO(id_translation2)
+gg.setDisplayMode(id_translation2,1)
+gg.createAndDisplayGO(id_translation3)
+gg.setDisplayMode(id_translation3,1) 
+\endcode
+
+\anchor tui_rotation
+<br><h2>Rotation</h2>
+
+\code
+import geompy
+import salome
+import math
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(10, 40,  0)
+p2 = geompy.MakeVertex( 0,  0, 50)
+p3 = geompy.MakeVertex(10, 50,-20)
+p4 = geompy.MakeVertex(10, 50, 60)
+v = geompy.MakeVector(p1, p2)
+vr = geompy.MakeVector(p3, p4)
+
+# create a cylinder
+height = 35
+radius1 = 20
+cylinder = geompy.MakeCylinder(p1, v, radius1, height)
+
+# rotate the given object around the given axis by the given angle
+rotation1 = geompy.MakeRotation(cylinder, vr, math.pi)
+rotation2 = geompy.MakeRotationThreePoints(cylinder, p4, p1, p2)
+
+# add objects in the study
+id_vr = geompy.addToStudy(vr, "Rotation 1 axis")
+id_p4 = geompy.addToStudy(p4, "Rotation 2 center")
+id_p1 = geompy.addToStudy(p1, "Rotation 2 point 1")
+id_p2 = geompy.addToStudy(p2, "Rotation 2 point 2")
+id_cylinder = geompy.addToStudy(cylinder, "Cylinder")
+id_rotation1 = geompy.addToStudy(rotation1, "Rotation 1")
+id_rotation2 = geompy.addToStudy(rotation2, "Rotation 2")
+
+# display the results
+gg.createAndDisplayGO(id_vr)
+gg.createAndDisplayGO(id_p4)
+gg.createAndDisplayGO(id_p1)
+gg.createAndDisplayGO(id_p2)
+gg.createAndDisplayGO(id_cylinder)
+gg.setDisplayMode(id_cylinder,1)
+gg.createAndDisplayGO(id_rotation1)
+gg.createAndDisplayGO(id_rotation2)
+gg.setDisplayMode(id_rotation1,1)
+gg.setDisplayMode(id_rotation2,1)
+\endcode
+
+\anchor tui_modify_location 
+<br><h2>Modify Location</h2>
+
+\code
+import geompy
+import salome
+import math
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(10, 40, 0)
+p2 = geompy.MakeVertex( 0,  0, 50)
+v = geompy.MakeVector(p1, p2)
+
+# create a cylinder
+height = 35
+radius1 = 20
+cylinder = geompy.MakeCylinder(p1, v, radius1, height)
+
+# create local coordinate systems
+cs1 = geompy.MakeMarker( 0, 0, 0, 1,0,0, 0,1,0)
+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)
+
+# 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_position = geompy.addToStudy(position, "Position")
+
+# display the results
+gg.createAndDisplayGO(id_cylinder)
+gg.setDisplayMode(id_cylinder,1)
+gg.createAndDisplayGO(id_position)
+gg.setDisplayMode(id_position,1)
+\endcode
+
+\anchor tui_mirror
+<br><h2>Mirror Image</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a box
+box = geompy.MakeBoxDXDYDZ(200, 200, 200)
+
+# create an object, symmetrical to another object through the given plane
+p1 = geompy.MakeVertex( 0, 25,  0)
+p2 = geompy.MakeVertex( 5, 25,  0)
+p3 = geompy.MakeVertex( 0,-30, 40)
+plane = geompy.MakePlaneThreePnt(p1, p2, p3, 1000.)
+mirror1 = geompy.MakeMirrorByPlane(box, plane)
+
+# create an object, symmetrical to another object through the given axis
+p4 = geompy.MakeVertex( 210, 210, -20)
+p5 = geompy.MakeVertex( 210, 210, 220)
+axis = geompy.MakeVector(p4, p5)
+mirror2 = geompy.MakeMirrorByAxis(box, axis)
+
+# create an object, symmetrical to another object through the given point
+mirror3 = geompy.MakeMirrorByPoint(box, p4)
+
+# add objects in the study
+id_box = geompy.addToStudy(box, "Box")
+id_plane = geompy.addToStudy(plane, "Plane")
+id_mirror1 = geompy.addToStudy(mirror1, "Mirror plane")
+id_axis = geompy.addToStudy(axis, "Axis")
+id_mirror2 = geompy.addToStudy(mirror2, "Mirror axis")
+id_p4 = geompy.addToStudy(p4, "Point")
+id_mirror3 = geompy.addToStudy(mirror3, "Mirror point")
+
+# display the results
+gg.createAndDisplayGO(id_box)
+gg.setDisplayMode(id_box,1)
+gg.createAndDisplayGO(id_plane)
+gg.createAndDisplayGO(id_mirror1)
+gg.setDisplayMode(id_mirror1,1)
+gg.createAndDisplayGO(id_axis)
+gg.createAndDisplayGO(id_mirror2)
+gg.setDisplayMode(id_mirror2,1)
+gg.createAndDisplayGO(id_p4)
+gg.createAndDisplayGO(id_mirror3)
+gg.setDisplayMode(id_mirror3,1) 
+\endcode
+
+\anchor tui_scale
+<br><h2>Scale Transform</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a box and a sphere
+box = geompy.MakeBoxDXDYDZ(200, 200, 200)
+
+# scale the given object by the factor
+p0 = geompy.MakeVertex(100, 100, 100)
+factor = 0.5
+scale = geompy.MakeScaleTransform(box, p0, factor)
+
+# add objects in the study
+id_box = geompy.addToStudy(box, "Box")
+id_scale = geompy.addToStudy(scale, "Scale")
+
+# display the results
+gg.createAndDisplayGO(id_box)
+gg.setDisplayMode(id_box,1)
+gg.setTransparency(id_box,0.5)
+gg.createAndDisplayGO(id_scale)
+gg.setDisplayMode(id_scale,1)
+\endcode
+
+\anchor tui_offset 
+<br><h2>Offset Surface</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a box and a sphere
+box = geompy.MakeBox(20, 20, 20, 200, 200, 200)
+
+# create a new object as offset of the given object
+offset = geompy.MakeOffset(box, 70.)
+
+# add objects in the study
+id_box = geompy.addToStudy(box, "Box")
+id_offset = geompy.addToStudy(offset, "Offset")
+
+# display the results
+gg.createAndDisplayGO(id_box)
+gg.setDisplayMode(id_box,1)
+gg.createAndDisplayGO(id_offset) 
+\endcode
+
+\anchor tui_multi_translation 
+<br><h2>Multi Translation</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices and vectors
+p0  = geompy.MakeVertex( 0.,  0.,  0.)
+px  = geompy.MakeVertex(20.,  0.,  0.)
+py  = geompy.MakeVertex( 0., 20.,  0.)
+pz  = geompy.MakeVertex( 0.,  0., 20.)
+pxy = geompy.MakeVertex( 50., 0., 0.)
+pxyz = geompy.MakeVertex( 50., 50., 50.)
+vz  = geompy.MakeVector(p0, pz)
+vxy = geompy.MakeVector(px, py)
+vtr1d = geompy.MakeVector(p0, pxyz)
+vtr2d = geompy.MakeVector(p0, pxy)
+
+# create an arc
+arc = geompy.MakeArc(py, pz, px)
+
+# create a wire
+wire = geompy.MakeWire([vxy, arc])
+
+# create a planar face
+face = geompy.MakeFace(wire, 1)
+
+# create a prism
+prism = geompy.MakePrismVecH(face, vz, 20.0)
+
+# translate the given object along the given vector a given number of times
+tr1d = geompy.MakeMultiTranslation1D(prism, vtr1d, 20, 4)
+
+# consequently apply two specified translations to the object a given number of times
+tr2d = geompy.MakeMultiTranslation2D(prism, vtr1d, 20, 4, vtr2d, 80, 3)
+
+# add objects in the study
+id_prism = geompy.addToStudy(prism,"Prism")
+id_tr1d = geompy.addToStudy(tr1d,"Translation 1D")
+id_tr2d = geompy.addToStudy(tr2d,"Translation 2D")
+
+# display the prism and the results of fillet operation
+gg.createAndDisplayGO(id_prism)
+gg.setDisplayMode(id_prism,1)
+gg.createAndDisplayGO(id_tr1d)
+gg.setDisplayMode(id_tr1d,1)
+gg.createAndDisplayGO(id_tr2d)
+gg.setDisplayMode(id_tr2d,1) 
+\endcode
+
+\anchor tui_multi_rotation
+<br><h2>Multi Rotation</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create vertices and vectors
+p0  = geompy.MakeVertex( 0.,  0.,  0.)
+px  = geompy.MakeVertex(20.,  0.,  0.)
+py  = geompy.MakeVertex( 0., 20.,  0.)
+pz  = geompy.MakeVertex( 0.,  0., 20.)
+pxyz = geompy.MakeVertex( 50., 50., 10.)
+vz  = geompy.MakeVector(p0, pz)
+vxy = geompy.MakeVector(px, py)
+vrot1d = geompy.MakeVector(p0, pxyz)
+
+# create an arc
+arc = geompy.MakeArc(py, pz, px)
+
+# create a wire
+wire = geompy.MakeWire([vxy, arc])
+
+# create a planar face
+face = geompy.MakeFace(wire, 1)
+
+# create a prism
+prism = geompy.MakePrismVecH(face, vz, 20.0)
+
+# rotate the given object around the given axis by the given angle a given number of times
+rot1d = geompy.MultiRotate1D(prism, vrot1d, 4)
+
+# rotate the given object around the given axis by the given angle a given number of times
+# and multi-translate the result of each rotation
+rot2d = geompy.MultiRotate2D(prism, vrot1d, 60, 4, 50, 5)
+
+# add objects in the study
+id_prism = geompy.addToStudy(prism,"Prism")
+id_rot1d = geompy.addToStudy(rot1d,"Rotation 1D")
+id_rot2d = geompy.addToStudy(rot2d,"Rotation 2D")
+
+# display the prism and the results of fillet operation
+gg.createAndDisplayGO(id_prism)
+gg.setDisplayMode(id_prism,1)
+gg.createAndDisplayGO(id_rot1d)
+gg.setDisplayMode(id_rot1d,1)
+gg.createAndDisplayGO(id_rot2d)
+gg.setDisplayMode(id_rot2d,1) 
+\endcode
+
+\anchor tui_fillet
+<br><h2>Fillet</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+radius  = 10.
+ShapeTypeEdge = geompy.ShapeType["EDGE"]
+
+# create vertices and vectors
+p0  = geompy.MakeVertex(  0.,   0.,   0.)
+px  = geompy.MakeVertex(100.,   0.,   0.)
+py  = geompy.MakeVertex(  0., 100.,   0.)
+pz  = geompy.MakeVertex(  0.,   0., 100.)
+vz  = geompy.MakeVector(p0, pz)
+vxy = geompy.MakeVector(px, py)
+
+# create an arc
+arc = geompy.MakeArc(py, pz, px)
+
+# create a wire
+wire = geompy.MakeWire([vxy, arc])
+
+# create a planar face
+face = geompy.MakeFace(wire, 1)
+
+# create a prism
+prism = geompy.MakePrismVecH(face, vz, 100.0)
+
+# get the list of IDs (IDList) for the fillet
+prism_edges = geompy.SubShapeAllSorted(prism, ShapeTypeEdge)
+IDlist_e = []
+IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[0]))
+IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[1]))
+IDlist_e.append(geompy.GetSubShapeID(prism, prism_edges[2]))
+
+# make a fillet on the specified edges of the given shape
+fillet = geompy.MakeFillet(prism, radius, ShapeTypeEdge, IDlist_e)
+
+# make a fillet on all edges of the given shape
+filletall = geompy.MakeFilletAll(prism, radius)
+
+# add objects in the study
+id_prism = geompy.addToStudy(prism,"Prism")
+id_fillet = geompy.addToStudy(fillet,"Fillet")
+id_filletall = geompy.addToStudy(filletall,"Fillet all")
+
+# display the prism and the results of fillet operation
+gg.createAndDisplayGO(id_prism)
+gg.setDisplayMode(id_prism,1)
+gg.createAndDisplayGO(id_fillet)
+gg.setDisplayMode(id_fillet,1)
+gg.createAndDisplayGO(id_filletall)
+gg.setDisplayMode(id_filletall,1) 
+\endcode
+
+\anchor tui_chamfer
+<br><h2>Chamfer</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+d1 = 10.
+d2 = 10.
+ShapeTypeFace = geompy.ShapeType["FACE"]
+
+# create vertices and vectors
+p0  = geompy.MakeVertex(  0.,   0.,   0.)
+px  = geompy.MakeVertex(100.,   0.,   0.)
+py  = geompy.MakeVertex(  0., 100.,   0.)
+pz  = geompy.MakeVertex(  0.,   0., 100.)
+vz  = geompy.MakeVector(p0, pz)
+vxy = geompy.MakeVector(px, py)
+
+# create an arc
+arc = geompy.MakeArc(py, pz, px)
+
+# create a wire
+wire = geompy.MakeWire([vxy, arc])
+
+# create a planar face
+face = geompy.MakeFace(wire, 1)
+
+# create a prism
+prism = geompy.MakePrismVecH(face, vz, 100.0)
+
+# get the list of IDs (IDList) for the chamfer
+prism_faces = geompy.SubShapeAllSorted(prism, ShapeTypeFace)
+f_ind_1 = geompy.GetSubShapeID(prism, prism_faces[0])
+f_ind_2 = geompy.GetSubShapeID(prism, prism_faces[1])
+IDlist_f = [f_ind_1, f_ind_2]
+
+# perform a chamfer on the edges common to the specified faces
+chamfer_e = geompy.MakeChamferEdge(prism, d1, d2, f_ind_1, f_ind_2)
+
+# perform a chamfer on all edges of the specified faces
+chamfer_f = geompy.MakeChamferFaces(prism, d1, d2, IDlist_f)
+chamfer_f1 = geompy.MakeChamfer(prism, d1, d2, ShapeTypeFace, IDlist_f)
+
+# perform a symmetric chamfer on all edges of the given shape
+chamfer_all = geompy.MakeChamferAll(prism, d1)
+
+# add objects in the study
+id_prism = geompy.addToStudy(prism,"Prism")
+id_chamfer_e = geompy.addToStudy(chamfer_e,"Chamfer edge")
+id_chamfer_f = geompy.addToStudy(chamfer_f,"Chamfer faces")
+id_chamfer_f1 = geompy.addToStudy(chamfer_f1,"Chamfer faces 1")
+id_chamfer_all = geompy.addToStudy(chamfer_all,"Chamfer all")
+
+# display the prism and the results of chamfer operation
+gg.createAndDisplayGO(id_prism)
+gg.setDisplayMode(id_prism,1)
+gg.createAndDisplayGO(id_chamfer_e)
+gg.setDisplayMode(id_chamfer_e,1)
+gg.createAndDisplayGO(id_chamfer_f)
+gg.setDisplayMode(id_chamfer_f,1)
+gg.createAndDisplayGO(id_chamfer_f1)
+gg.setDisplayMode(id_chamfer_f1,1)
+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/tui_viewing_geom_objs.doc b/doc/salome/gui/GEOM/input/tui_viewing_geom_objs.doc
new file mode 100644 (file)
index 0000000..146bd33
--- /dev/null
@@ -0,0 +1,60 @@
+/*!
+
+\page tui_viewing_geom_objs_page Viewing Geometrical Objects
+
+\anchor tui_change_disp_mode
+<br><h2>Changing Display Mode</h2>
+
+\code
+import salome
+import geompy
+box = geompy.MakeBox(0,0,0, 50,50,50)
+
+sphere = geompy.MakeSphere(50,50,50, 30)
+fuse = geompy.MakeBoolean(box,sphere,3)
+fuse_id = geompy.addToStudy(fuse,"Fuse")
+
+gg = salome.ImportComponentGUI("GEOM")
+gg.createAndDisplayGO(fuse_id)
+gg.setDisplayMode(fuse_id,1) 
+\endcode
+
+\anchor tui_change_color 
+<br><h2> Changing Color</h2>
+
+\code
+import salome
+import geompy
+box = geompy.MakeBox(0,0,0, 50,50,50)
+
+sphere = geompy.MakeSphere(50,50,50, 30)
+fuse = geompy.MakeBoolean(box,sphere,3)
+fuse_id = geompy.addToStudy(fuse,"Fuse")
+
+gg = salome.ImportComponentGUI("GEOM")
+gg.createAndDisplayGO(fuse_id)
+gg.setDisplayMode(fuse_id,1)
+gg.setColor(fuse_id,218,165,31) 
+\endcode
+
+\anchor tui_change_transparency
+<br><h2>Changing Transparency</h2>
+
+\code
+import salome
+import geompy
+
+box = geompy.MakeBox(0,0,0, 50,50,50)
+sphere = geompy.MakeSphere(50,50,50, 30)
+
+fuse = geompy.MakeBoolean(box,sphere,3)
+fuse_id = geompy.addToStudy(fuse,"Fuse")
+
+gg = salome.ImportComponentGUI("GEOM")
+gg.createAndDisplayGO(fuse_id)
+gg.setDisplayMode(fuse_id,1)
+gg.setColor(fuse_id,218,165,31)
+gg.setTransparency(fuse_id,0.5) 
+\endcode
+
+*/
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/input/tui_working_with_groups.doc b/doc/salome/gui/GEOM/input/tui_working_with_groups.doc
new file mode 100644 (file)
index 0000000..786e818
--- /dev/null
@@ -0,0 +1,110 @@
+/*!
+
+\page tui_working_with_groups_page Working with Groups
+
+<br><h2>Creation of a group</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create two vertices
+p0 = geompy.MakeVertex(0.  , 0.  , 0.  )
+p200 = geompy.MakeVertex(200., 200., 200.)
+
+# create a box from two points
+Box = geompy.MakeBoxTwoPnt(p0, p200)
+
+# create a group from the faces of the box
+group = geompy.CreateGroup(Box, geompy.ShapeType["FACE"])
+
+# add objects to the group
+SubFaceList = geompy.SubShapeAllSorted(Box, geompy.ShapeType["FACE"])
+for i in [0, 3, 5] :
+    FaceID = geompy.GetSubShapeID(Box, SubFaceList[i])
+    geompy.AddObject(group, FaceID)
+
+# add all selected shapes from the list to the group
+# (the program doesn't raise error, if some shapes are already included)
+geompy.UnionList(group, [SubFaceList[0], SubFaceList[2], SubFaceList[5]])
+
+# remove an object from the group
+geompy.RemoveObject(group, FaceID)
+
+# remove all selected shapes from the group
+# (the program doesn't raise error, if some shapes are not included)
+geompy.DifferenceList(group, [SubFaceList[2], SubFaceList[3], SubFaceList[4]])
+id_group1 = geompy.addToStudy(group, "Group1")
+
+# display the contents of the group
+gg.createAndDisplayGO(id_group1)
+salome.sg.updateObjBrowser(1)
+\endcode
+
+<br><h2>Adding an object to the group</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create two vertices
+p0 = geompy.MakeVertex(0.  , 0.  , 0.  )
+p200 = geompy.MakeVertex(200., 200., 200.)
+
+# create a box from two points
+Box = geompy.MakeBoxTwoPnt(p0, p200)
+
+# create a group from the faces of the box
+group = geompy.CreateGroup(Box, geompy.ShapeType["FACE"])
+
+# add objects to the group
+SubFaceList = geompy.SubShapeAllSorted(Box, geompy.ShapeType["FACE"])
+for i in [0, 3, 5] :
+    FaceID = geompy.GetSubShapeID(Box, SubFaceList[i])
+    geompy.AddObject(group, FaceID)
+id_group1 = geompy.addToStudy(group, "Group1")
+
+# display the contents of the group
+gg.createAndDisplayGO(id_group1)
+salome.sg.updateObjBrowser(1) 
+\endcode
+
+<br><h2>Removing an object from the group</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create two vertices
+p0 = geompy.MakeVertex(0.  , 0.  , 0.  )
+p200 = geompy.MakeVertex(200., 200., 200.)
+
+# create a box from two points
+Box = geompy.MakeBoxTwoPnt(p0, p200)
+
+# create a group from the faces of the box
+group = geompy.CreateGroup(Box, geompy.ShapeType["FACE"])
+
+# add objects to the group
+SubFaceList = geompy.SubShapeAllSorted(Box, geompy.ShapeType["FACE"])
+for i in [0, 3, 5] :
+    FaceID = geompy.GetSubShapeID(Box, SubFaceList[i])
+    geompy.AddObject(group, FaceID)
+
+# add all selected shapes from the list to the group
+# (the program doesn't raise errors, if some shapes are already included)
+geompy.UnionList(group, [SubFaceList[0], SubFaceList[2], SubFaceList[5]])
+
+# remove an object from the group
+geompy.RemoveObject(group, FaceID)
+id_group1 = geompy.addToStudy(group, "Group1")
+
+# display the contents of the group
+gg.createAndDisplayGO(id_group1)
+salome.sg.updateObjBrowser(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
new file mode 100644 (file)
index 0000000..88152d5
--- /dev/null
@@ -0,0 +1,42 @@
+/*!
+
+\page using_boolean_operations_page Using Boolean Operations
+
+\n You can use the following boolean operations for construction of more
+complex geometrical objects (2D & 3D elements):
+
+<ul>
+<li>\ref fuse_operation_page "Fuse"</li>
+<li>\ref common_operation_page "Common"</li>
+<li>\ref cut_operation_page "Cut"</li>
+<li>\ref section_opeartion_page "Section"</li>
+</ul>
+
+There is a general TUI command covering all these operations, which
+can be used alongside with separate commands for each operation.
+\par
+<em>geompy.MakeBoolean(Shape1, Shape2, Operation),</em> where \em
+Shape1 is the first argument and \em Shape2 is the second argument of
+Boolean operation, \em Operation is a type of the Boolean operation (1
+&mdash; Common, 2 &mdash; Cut, 3 &mdash; Fuse, 4 &mdash; Section).
+
+
+Besides, you can use advanced TUI commands performing these operations
+independently from each other:
+\par
+<em>geompy.MakeFuse(Shape1, Shape2)</em>, where \em Shape1 and \em
+Shape2 is the second argument of Fuse operation; 
+\par
+<em>geompy.MakeCommon(Shape1, Shape2)</em>, where \em Shape1 and \em
+Shape2 is the second argument of Common operation;
+\par
+<em>geompy.MakeCut(Shape1, Shape2)</em>, where \em Shape1 and \em
+Shape2 is the second argument of Cut operation;
+\par
+<em>geompy.MakeSection(Shape1, Shape2)</em>, where \em Shape1 and \em
+Shape2 is the second argument of Section operation;
+
+\n Our <b>TUI Scripts</b> provide you with useful examples of the use of 
+\ref tui_boolean_operations_page "Boolean Operations".
+
+*/
diff --git a/doc/salome/gui/GEOM/input/using_measurement_tools.doc b/doc/salome/gui/GEOM/input/using_measurement_tools.doc
new file mode 100644 (file)
index 0000000..d7dbee6
--- /dev/null
@@ -0,0 +1,223 @@
+/*!
+
+\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:
+
+<ul>
+<li>\ref point_coord_anchor "Point coordinates"</li>
+<li>\ref basic_prop_anchor "Basic properties"</li>
+<li>\ref center_mass_anchor "Center of mass"</li>
+<li>\ref inertia_anchor "Inertia"</li>
+<li>\ref normale_anchor "Normal to a Face"</li>
+<li>\ref boundaries_anchor "Check Free Boundaries"</li>
+<li>\ref faces_anchor "Check Faces"</li>
+<li>\ref bounding_box_anchor "Bounding box"</li>
+<li>\ref min_distance_anchor "Min. distance"</li>
+<li>\ref angle_anchor "Angle"</li>
+<li>\ref tolerance_anchor "Tolerance"</li>
+<li>\ref whatis_anchor "WhatIs"</li>
+<li>\ref check_anchor "Check"</li>
+<li>\ref check_compound_anchor "Check compound of blocks"</li>
+</ul>
+
+\n Our <b>TUI Scripts</b> show how to use 
+\ref tui_measurement_tools_page "Measurement Tools" with <b>TUI
+commands</b>.
+
+\n <em>To use measurement tools:</em> 
+\par
+In the <b>Main menu</b> select \b Measures submenu.
+
+\anchor point_coord_anchor
+<br><h2>Point coordinates</h2>
+
+\n Returns the coordinates of a point.
+
+\n <b>Result:</b> Point coordinates (X, Y, Z) in 3D space in the form of Python Tuple.
+\n <b>TUI Command:</b> <em>geompy.PointCoordinates(Point),</em> 
+where \em Point is a point whose coordinates are inquired.
+
+\image html measures1.png
+
+\anchor basic_prop_anchor
+<br><h2>Basic properties</h2>
+
+\n Returns the properties (Length, Surface & Volume) for the selected
+geometrical object.
+
+\n <b>Result:</b> Display Length, Surface & Volume in the form of
+Python Tuple.
+\n <b>TUI Command:</b> <em>geompy.BasicProperties(Shape),</em> where
+\em Shape is a shape whose properties are inquired.
+
+\image html neo-basicprop.png
+
+\anchor center_mass_anchor
+<br><h2>Center of mass</h2>
+
+\n Calculates and returns the coordinates of the gravity center for
+the selected geometrical object.
+
+\n <b>Result:</b> GEOM_Object (vertex).
+\n <b>TUI Command:</b> <em> geompy.MakeCDG(Shape),</em> where \em Shape is
+the shape for which a center of gravity is computed.
+
+\image html measures3.png
+
+\anchor inertia_anchor
+<br><h2>Inertia</h2>
+
+Returns the axial moments of inertia for the selected geometrical object.
+
+\n <b>Result:</b> Displays the matrix of the own moments of inertia and
+the relative moments of inertia in the form of Python Tuple
+ <center>(I11, I12, I13,</center>
+                     <center>I21, I22, I23,</center>
+                     <center>I31, I32, I33,</center>
+                     <center>Ix, Iy, Iz).</center>
+\n <b>TUI Command:</b> <em>geompy.Inertia(Shape),</em> 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
+<br><h2>Normal to a Face</h2>
+
+\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
+<br><h2>Check Free Boundaries</h2>
+
+\n Detects and highlights  wires and edges that are not shared between
+two faces and are considered a shape's boundary.
+
+\n <b>TUI Command:</b> <em>(NoError, ClosedWires, OpenWires) =
+geompy.GetFreeBoundary(Shape),</em> 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
+<br><h2>Check Free Faces</h2>
+
+\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 <b>TUI Command:</b> <em>GetFreeFacesIDs(Shape),</em> where \em Shape is
+a shape to be checked.
+
+\image html repair10.png
+
+\anchor bounding_box_anchor
+<br><h2>Bounding box</h2>
+
+\n Returns the dimensions of the bounding box for the selected
+geometrical object.
+
+\n <b>Result:</b> Displays the dimensions of the bounding box of a
+geometrical object in the form of Python Tuple (Xmin, Xmax, Ymin,
+Ymax, Zmin, Zmax).
+\n <b>TUI Command:</b> <em>geompy.BoundingBox(Shape),</em> where \em Shape
+is a shape for which a bounding box is computed.
+
+\image html measures5.png
+
+\anchor min_distance_anchor
+<br><h2>Min. distance</h2>
+
+\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 <b>TUI Command:</b> <em>geompy.MinDistance(Shape1, Shape2),</em>
+where \em Shape1 and \em Shape2 are shapes between which the minimal
+distance is computed.
+
+\image html distance.png
+
+\anchor angle_anchor
+<br><h2>Angle</h2>
+
+\n Returns the angle between two lines or linear edges
+\n <b>TUI Command:</b> <em>geompy.GetAngle(shape1, shape2),</em> where
+Shape1 and Shape2 are shapes between which the angle is computed. 
+
+\image html angle.png
+\anchor tolerance_anchor
+<br><h2>Tolerance</h2>
+
+\n Returns the maximum and the minimum tolerance for the selected
+geometrical object.
+
+\n <b>Result:</b> Displays the tolerance values (FaceMinTol,
+FaceMaxTol, EgdeMinTol, EgdeMaxTol, VertexMinTol, VertexMaxTol).
+\n <b>TUI Command:</b> <em>geompy.Tolerance(Shape),</em> where \em Shape
+is a shape for which minimal and maximal tolerances are returned.
+
+\image html new-tolerance.png
+
+\anchor whatis_anchor
+<br><h2>WhatIs</h2>
+
+\n Displays types and quantities of all elements composing the
+selected geometrical object.
+
+\n <b>TUI Command:</b> <em>geompy.WhatIs(Shape),</em> where \em Shape is a
+shape from which a description is returned.
+
+\image html measures8.png
+
+\anchor check_anchor
+<br><h2>Check</h2>
+
+\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 <b>Result:</b> Boolean.
+\n <b>TUI Command:</b> <em>geompy.(theShape, theIsCheckGeom = 0),</em>
+where is theShape is the shape checked for validity.
+
+\image html measures9.png
+
+\anchor check_compound_anchor
+<br><h2>Check compound of blocks</h2>
+
+\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:
+<ul>
+<li>Each element of the compound should be a Block (6 faces and 12 edges);</li>
+<li>A connection between two Blocks should be an entire quadrangle face or an entire edge;</li>
+<li>The compound should be connected;</li>
+<li>Two quadrangle faces should be glued.</li>
+</ul>
+
+\n Informs of the following possible errors:
+<ul>
+<li>not a block;</li>
+<li>not glued;</li>
+<li>not connected;</li>
+<li>extra or degenerated edge.</li>
+</ul>
+
+\n <b>Result:</b> Boolean; highlight in the viewer.
+\n <b>TUI Command:</b>
+<em>geompy.CheckCompoundOfBlocks(Compound).</em> 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/viewing_geom_obj.doc b/doc/salome/gui/GEOM/input/viewing_geom_obj.doc
new file mode 100644 (file)
index 0000000..a9e42b2
--- /dev/null
@@ -0,0 +1,55 @@
+/*!
+
+\page view_geom_obj_page Overview
+
+\n Newly created geometrical objects are automatically displayed in
+the <b>OCC 3D Viewer</b>.
+
+\n <b>OCC 3D Viewer</b> is described in the documentation on <b>GUI
+module</b>.
+\n After the object has appeared in the Viewer, you can select it with
+left mouse click to change its presentation parameters and access to
+other useful options by right-clicking on the selected object.
+
+\image html dialog.png
+
+<ul>
+<li><b>Rename</b> - allows to change the name of the geometric
+object.</li>
+<li><b>Delete</b> - irreversibly deletes the selected object from the
+viewer and from the Object Browser.</li> 
+<li>\ref display_mode_page "Display Mode" - allows to select between
+Wireframe and Shading presentation.</li>
+<li>\ref color_page "Color" - allows to change the filling color in
+the standard <b>Select Color</b> menu.</li>
+<li>\ref transparency_page "Transparency" - allows to change the
+transparency of geometrical objects.</li>
+<li>\ref isolines_page "Isos" - allows to change the number of
+isolines displayed within a shape.</li>
+<li><b>Hide</b> - allows to hide the selected geometrical object from the
+viewer. TUI Command : <em>sg.EraseOnly(ID)</em>
+\n \image html image18.gif
+</li>
+<li><b>Hide all</b> - allows to hide all objects from the viewer. TUI
+Command: <em>sg.EraseAll()</em>
+\n \image html image26.gif
+</li>
+<li><b>Display Only</b> - allows to display only the selected
+geometrical object. TUI Command: <em>sg.DisplayOnly(ID)</em>
+\n \image html image33.gif
+</li>
+<li><b>Update</b> - refreshes the presentation of your geometrical object in the
+Object Browser, applying all recent changes.</li>
+<li><b>Dump view</b> - exports an object from the viewer in bmp, png,
+jpg or jpeg image format.</li>
+<li><b>Change background</b> - allows to redefine the background
+color. By default it is black.
+\n\n Some of these functionalities are available through right-clicking
+on the viewer background:
+
+\image html image2.jpg <br></li>
+
+<li><b>Select Only</b> provides a filter for exclusive selection of objects of a certain type.</li>
+</ul>
+
+*/
diff --git a/doc/salome/gui/GEOM/input/viewing_geom_obj_chapter.doc b/doc/salome/gui/GEOM/input/viewing_geom_obj_chapter.doc
new file mode 100644 (file)
index 0000000..c6eec72
--- /dev/null
@@ -0,0 +1,13 @@
+/*!
+
+\page view_geom_obj_chapter_page Viewing Geometrical Objects
+
+<ul>
+<li>\subpage view_geom_obj_page</li>
+<li>\subpage display_mode_page</li>
+<li>\subpage color_page</li>
+<li>\subpage transparency_page</li>
+<li>\subpage isolines_page</li>
+</ul>
+
+*/
\ 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
new file mode 100644 (file)
index 0000000..ed09094
--- /dev/null
@@ -0,0 +1,89 @@
+/*!
+
+\page work_with_groups_page Working with groups
+
+Creation and editing groups of subshapes of a geometrical object makes
+handling subshapes much easier. This functionality is available in OCC
+viewer only.
+
+<br><h2>Create a group</h2>
+
+\image html image56.gif
+
+To create a group of subshapes of a geometrical object in the main
+menu select <b>New entity > Group > Create</b>
+\n The following menu will appear:
+
+\image html geomcreategroup.png
+
+In this Menu:
+
+<ul>
+<li><b>Shape Type</b> radio button define the type of elements for the
+group (points, wires, faces, shells or solids).</li>
+<li><b>Group Name</b> - here you can enter the name of the group, by
+default, it is Group_n.</li>
+<li>Then, using the "Select" button, select the <b>Main Shape</b> (a
+geometrical object on which the group will be created). You can select
+the elements of your group in two ways: </li>
+<ul>
+<li>Clicking <b>Select Sub-Shapes</b> 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.</li>
+<li>Clicking <b>Select All</b> 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.</li>
+</ul>
+<li>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.</li>
+</ul>
+
+\n The Result of the operation will be a \b GEOM_Object.
+
+\n <b>TUI Command:</b> <em>geompy.CreateGroup(MainShape,
+ShapeType),</em> where MainShape is a shape for which the group is
+created, ShapeType is a type of shapes in the created group.
+\n <b>Arguments:</b> 1 Shape + Type of subshape.
+
+<b>Example:</b>
+
+\image html image193.jpg
+
+
+<br><h2>Edit a group</h2>
+
+\image html image57.gif
+
+To \b Edit an existing group in the main menu select <b>New entity >
+Group > Edit</b>. This menu is designed in the same way as the
+<b>Create a group</b> menu.
+
+\n The \b Result of the operation will be a \b GEOM_Object.
+
+\n <b>TUI Command:</b>
+<ul>
+<li><em>geompy.AddObject(Group, SubShapeID),</em> where Group is a
+group to which a sub shape has to be added, SubShapeID is an ID of the
+sub shape to be added to the group.</li>
+<li><em>geompy.RemoveObject(Group, SubShapeID),</em> where Group is a
+group from which a sub shape has to be removed, SubShapeID is an ID of
+the sub shape to be removed from the group.</li>
+<li><em>geompy.GetObjectIDs(Group),</em> where Group is a group for which its object's are returned.
+\n Returns: List of IDs.</li>
+</ul>
+
+\n <b>Arguments:</b> 1 Shape + its subshapes.
+
+\n <b>Dialog Box:</b> 
+
+\image html editgroup.png
+
+Our <b>TUI Scripts</b> provide you with useful examples of 
+\ref tui_working_with_groups_page "Working with Groups".
+
+*/
diff --git a/doc/salome/gui/GEOM/isos.htm b/doc/salome/gui/GEOM/isos.htm
deleted file mode 100755 (executable)
index d2eae1b..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Isos</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-size:12pt; }
-p.whs2 { font-size:12pt; margin-left:40px; }
-img_whs3 { border:none; width:255px; height:150px; float:none; border-style:none; }
-img_whs4 { border:none; width:400px; height:420px; float:none; border-style:none; }
-p.whs5 { font-family:'Times New Roman' , serif; font-size:12pt; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nViewing geometrical objects\nIsolines");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Isolines</h1>
-
-<p class="whs1">In this menu you can change the number of isolines 
- displayed within a shape.</p>
-
-<p class="whs1"><b style="font-weight: bold;">Arguments:</b> 
- 2 values (number of isolines).</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><img src="pics/neo-isos.png" x-maintain-ratio="TRUE" width="255px" height="150px" border="0" class="img_whs3"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs1"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><img src="pics/colorsn.png" x-maintain-ratio="TRUE" width="400px" height="420px" border="0" class="img_whs4"> &nbsp;<img src="pics/isos_u12_v12sn.png" x-maintain-ratio="TRUE" width="400px" height="420px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/line.htm b/doc/salome/gui/GEOM/line.htm
deleted file mode 100755 (executable)
index 0ad6efe..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Line</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:26px; height:23px; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:324px; float:none; border-style:none; }
-p.whs5 { color:#808080; font-size:12pt; }
-p.whs6 { font-size:12pt; color:#000000; }
-p.whs7 { color:#808080; font-size:12pt; margin-left:40px; }
-img_whs8 { border:none; width:357px; height:322px; float:none; border-style:none; }
-p.whs9 { font-size:12pt; font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Basic Geometric Objects\nLine");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="image5.gif" width="26px" height="23px" border="0" class="img_whs1"> </font></span></b>Line</h1>
-
-<p>To create a <span style="font-weight: bold;"><B>Line</B></span> in the <span 
- style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>New 
- Entity - &gt; Basic - &gt; Line</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">To create a <span style="font-weight: bold;"><B>Line</B></span> 
- you should define <span style="font-weight: bold;"><B>Point1</B></span> and <span 
- style="font-weight: bold;"><B>Point2</B></span>, which are the points through 
- &nbsp;which the 
- <span style="font-weight: bold;"><B>Line</B></span> passes.</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of the operation will be a</span></b> 
- GEOM_Object (edge).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b> 
- <span style="font-style: italic;"><I>geompy.MakeLineTwoPnt(Point1, Point2)</I></span> 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 2 vertices.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/line.png" x-maintain-ratio="TRUE" width="312px" height="324px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs6"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs7"><img src="pics/lines.png" x-maintain-ratio="TRUE" width="357px" height="322px" border="0" class="img_whs8"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs9">NB! <span style="font-weight: normal;">There 
- is another way to create a line, which is currently accessible only via</span> 
- TUI <span style="font-weight: normal;">commands.</span></p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"><span style="font-weight: normal;">You 
- can define a line &nbsp;passing 
- through the given</span> Point <span style="font-weight: normal;">and 
- parallel to the given</span> Vector. </p>
-
-<p class="whs9"><b style="font-weight: bold;">TUI 
- Command:</b> <span style="font-weight: normal; font-style: italic;"><I>geompy.MakeLine(Point, 
- Vector)</I></span> </p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs2">Our <span style="font-weight: bold;"><B>TUI Scripts</B></span> 
- provide you with useful examples of creation of <a href="basic_geometrical_objects.htm#bookmark1">Basic 
- Geometric Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/local_coordinate_system.htm b/doc/salome/gui/GEOM/local_coordinate_system.htm
deleted file mode 100755 (executable)
index 8e9387c..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Local Coordinate System</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:16px; height:16px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-weight:bold; font-size:14pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:391px; float:none; border-style:none; }
-p.whs5 { font-weight:bold; font-size:14pt; }
-p.whs6 { font-size:12pt; font-weight:normal; }
-img_whs7 { border:none; width:312px; height:289px; float:none; border-style:none; }
-p.whs8 { font-size:12pt; font-weight:bold; }
-img_whs9 { border:none; width:312px; height:359px; float:none; border-style:none; }
-p.whs10 { font-weight:bold; text-indent:-40px; font-size:14pt; margin-left:40px; }
-p.whs11 { font-weight:bold; margin-left:80px; text-indent:-80px; font-size:12pt; }
-p.whs12 { font-weight:bold; text-indent:-80px; font-size:12pt; margin-left:120px; }
-img_whs13 { border:none; width:200px; height:219px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs10 {text-indent:1pt; }";
-  strNSS += "p.whs11 {text-indent:1pt; }";
-  strNSS += "p.whs12 {text-indent:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Basic Geometric Objects\nLocal Coordinate System");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="image35.gif" width="16px" height="16px" border="0" class="img_whs1"></font></span>Local Coordinate 
- System</h1>
-
-<p>To create a <span style="font-weight: bold;"><B>Local Coordinate System</B></span> 
- in the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span 
- style="font-weight: bold;"><B>New Entity - &gt; Basic - &gt; Local Coordinate 
- System</B></span></p>
-
-<p class="whs2">There are three algorithms to choose from.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Firstly, you can define the values of X, Y, 
- and Z coordinates of origin and the directions of X and Y axes directly 
- in the menu.</p>
-
-<p class="whs2"><span style="font-weight: bold;"><B>TUI command:</B></span> 
- <span style="font-style: italic;"><I>geompy.MakeMarker(OX, OY, OZ, XDX, XDY, 
- XDZ, YDX, YDY, YDZ)</I></span>, where OX, OY, OZ are coordinates of the origin 
- of LCS, XDX, XDY, XDZ is a vector of OX &nbsp;direction 
- of the LCS and YDX, YDY, YDZ is a a vector of OY direction of the LCS.</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + Coordinates of origin, X axis direction, Y axis direction.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/neo-localcs1.png" x-maintain-ratio="TRUE" width="312px" height="391px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs6">Secondly, you can simply 
- select any object in the object browser or 3D viewer, in this case the 
- coordinates of origin and axes direction of the LCS are calculated automatically 
- basing on the selected object. </p>
-
-<p class="whs6"><b style="font-weight: bold;">Arguments: 
- </b>Name + reference object.</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs3"><img src="pics/neo-localcs2.png" x-maintain-ratio="TRUE" width="312px" height="289px" border="0" class="img_whs7"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">The last algorithm of LCS construction allows 
- to define the coordinates of origin by a point and axes directions by 
- a line or a vector. </p>
-
-<p class="whs8"><b style="font-weight: bold;">Arguments:</b> 
- <span style="font-weight: normal;">Name + 1 point of origin + X axis direction, 
- Y axis direction.</span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/neo-localcs3.png" x-maintain-ratio="TRUE" width="312px" height="359px" border="0" class="img_whs9"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Press Â«OK» or Â«Apply» button to create an LCS 
- at the location with the specified coordinates. The new object is shown 
- in the Object Browser and in 3D viewer.</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs11">Example:</p>
-
-<p class="whs12"><img src="image145.jpg" width="200px" height="219px" border="0" class="img_whs13"></p>
-
-<p class="whs12">&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/measurement_tools.htm b/doc/salome/gui/GEOM/measurement_tools.htm
deleted file mode 100755 (executable)
index 122025f..0000000
+++ /dev/null
@@ -1,452 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Measurement Tools</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
-p.whs2 { font-family:'Times New Roman' , serif; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nMeasurement Tools");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Measurement Tools</h1>
-
-<h3>Point Coordinates</h3>
-
-<p class="whs1">import math</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a point</p>
-
-<p class="whs1">point = geompy.MakeVertex(15., 
- 23., 80.)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># get the coordinates 
- of the point and check its values</p>
-
-<p class="whs1">coords = geompy.PointCoordinates(point)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># check the obtained 
- coordinate values </p>
-
-<p class="whs1">tolerance = 1.e-07</p>
-
-<p class="whs1">def IsEqual(val1, 
- val2): return (math.fabs(val1 - val2) &lt; tolerance)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">if IsEqual(coords[0], 
- 15.) and IsEqual(coords[1], 23.) and IsEqual(coords[2], 80.):</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;All values are OK.&quot;</p>
-
-<p class="whs1">else :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Coordinates of point must be (15, 23, 80), but returned (&quot;,</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- coords[0], &quot;, &quot;, coords[1], &quot;, &quot;, coords[2], &quot;)&quot;</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">&nbsp;&nbsp;&nbsp;&nbsp;pass</span> 
- </p>
-
-<h3>Basic Properties</h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import math</p>
-
-<p>&nbsp;</p>
-
-<p># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(100,30,100)</p>
-
-<p class="whs1">props = geompy.BasicProperties(box)</p>
-
-<p class="whs1">print &quot;\nBox 
- 100x30x100 Basic Properties:&quot;</p>
-
-<p class="whs1">print &quot; Wires 
- length: &quot;, props[0]</p>
-
-<p class="whs1">print &quot; Surface 
- area: &quot;, props[1]</p>
-
-<p class="whs1">print &quot; Volume 
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, props[2]</p>
-
-<p class="whs1">length = math.sqrt((props[0] 
- - 1840)*(props[0] - 1840))</p>
-
-<p class="whs1">area = math.sqrt((props[1] 
- - 32000)*(props[1] - 32000))</p>
-
-<p class="whs1">volume = math.sqrt((props[2] 
- - 300000)*(props[2] - 300000))</p>
-
-<p class="whs1">if length &gt; 1e-7 
- or area &gt; 1e-7 or volume &gt; 1e-7:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;While must be:&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot; Wires length: &quot;, 1840</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot; Surface area: &quot;, 32000</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot; Volume &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: 
- &quot;, 300000.</p>
-
-<h3>Center of masses</h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import math</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(100,30,100)</p>
-
-<p class="whs1">cm = geompy.MakeCDG(box)</p>
-
-<p class="whs1">if cm is None:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
- RuntimeError, &quot;MakeCDG(box) failed&quot;</p>
-
-<p class="whs1">else:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;\nCentre of gravity of box has been successfully obtained:&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;coords 
- = geompy.PointCoordinates(cm)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;(&quot;, coords[0], &quot;, &quot;, coords[1], &quot;, &quot;, coords[2], 
- &quot;)&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;dx 
- = math.sqrt((coords[0] - 50)*(coords[0] - 50))</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;dy 
- = math.sqrt((coords[1] - 15)*(coords[1] - 15))</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;dz 
- = math.sqrt((coords[2] - 50)*(coords[2] - 50))</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;if 
- dx &gt; 1e-7 or dy &gt; 1e-7 or dz &gt; 1e-7:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;But must be (50, 15, 50)&quot; </p>
-
-<h3>Inertia</h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import math</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(100,30,100)</p>
-
-<p class="whs1">In = geompy.Inertia(box)</p>
-
-<p class="whs1">print &quot;\nInertia 
- matrix of box 100x30x100:&quot;</p>
-
-<p class="whs1">print &quot; (&quot;, 
- In[0], &quot;, &quot;, In[1], &quot;, &quot;, In[2], &quot;)&quot;</p>
-
-<p class="whs1">print &quot; (&quot;, 
- In[3], &quot;, &quot;, In[4], &quot;, &quot;, In[5], &quot;)&quot;</p>
-
-<p class="whs1">print &quot; (&quot;, 
- In[6], &quot;, &quot;, In[7], &quot;, &quot;, In[8], &quot;)&quot;</p>
-
-<p class="whs1">print &quot;Main moments 
- of inertia of box 100x30x100:&quot;</p>
-
-<p class="whs1">print &quot; Ix = 
- &quot;, In[9], &quot;, Iy = &quot;, In[10], &quot;, Iz = &quot;, In[11] 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3>Bounding Box</h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(100,30,100)</p>
-
-<p class="whs1">bb = geompy.BoundingBox(box)</p>
-
-<p class="whs1">print &quot;\nBounding 
- Box of box 100x30x100:&quot;</p>
-
-<p class="whs1">print &quot; Xmin 
- = &quot;, bb[0], &quot;, Xmax = &quot;, bb[1]</p>
-
-<p class="whs1">print &quot; Ymin 
- = &quot;, bb[2], &quot;, Ymax = &quot;, bb[3]</p>
-
-<p class="whs1">print &quot; Zmin 
- = &quot;, bb[4], &quot;, Zmax = &quot;, bb[5] </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3>Minimal Distance </h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create boxes</p>
-
-<p class="whs1">box1 = geompy.MakeBoxDXDYDZ(100,30,100)</p>
-
-<p class="whs1">box2 = geompy.MakeBox(105,0,0,200,30,100)</p>
-
-<p class="whs1">min_dist = geompy.MinDistance(box1,box2)</p>
-
-<p class="whs1">print &quot;\nMinimal 
- distance between box1 and box2 = &quot;, min_dist </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3>Tolerance</h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(100,30,100)</p>
-
-<p class="whs1">Toler = geompy.Tolerance(box)</p>
-
-<p class="whs1">print &quot;\nBox 
- 100x30x100 tolerance:&quot;</p>
-
-<p class="whs1">print &quot; Face 
- min. tolerance: &quot;, Toler[0]</p>
-
-<p class="whs1">print &quot; Face 
- max. tolerance: &quot;, Toler[1]</p>
-
-<p class="whs1">print &quot; Edge 
- min. tolerance: &quot;, Toler[2]</p>
-
-<p class="whs1">print &quot; Edge 
- max. tolerance: &quot;, Toler[3]</p>
-
-<p class="whs1">print &quot; Vertex 
- min. tolerance: &quot;, Toler[4]</p>
-
-<p class="whs1">print &quot; Vertex 
- max. tolerance: &quot;, Toler[5] </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3>What Is</h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(100,30,100)</p>
-
-<p class="whs1">Descr = geompy.WhatIs(box)</p>
-
-<p class="whs1">print &quot;\nBox 
- 100x30x100 description:&quot;</p>
-
-<p class="whs1">print Descr </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3>Check Shape</h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(100,30,100)</p>
-
-<p class="whs1">IsValid = geompy.CheckShape(box)</p>
-
-<p class="whs1">if IsValid == 0:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
- RuntimeError, &quot;Invalid box created&quot;</p>
-
-<p class="whs1">else:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;\nBox is valid&quot; </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3>Check Compound of Blocks</h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create boxes</p>
-
-<p class="whs1">box1 = geompy.MakeBox(0,0,0,100,50,100)</p>
-
-<p class="whs1">box2 = geompy.MakeBox(100,0,0,250,50,100)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># make a compound</p>
-
-<p class="whs1">compound = geompy.MakeCompound([box1, 
- box2])</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># glue the faces of the 
- compound</p>
-
-<p class="whs1">tolerance = 1e-5</p>
-
-<p class="whs1">glue = geompy.MakeGlueFaces(compound, 
- tolerance)</p>
-
-<p class="whs1">IsValid = geompy.CheckCompoundOfBlocks(glue)</p>
-
-<p class="whs1">if IsValid == 0:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
- RuntimeError, &quot;Invalid compound created&quot;</p>
-
-<p class="whs1">else:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;\nCompound is valid&quot; </p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/mirror_image.htm b/doc/salome/gui/GEOM/mirror_image.htm
deleted file mode 100755 (executable)
index dce4702..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Mirror Image</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-size:12pt; }
-p.whs2 { font-size:12pt; margin-left:40px; }
-img_whs3 { border:none; width:312px; height:350px; float:none; border-style:none; }
-img_whs4 { border:none; width:174px; height:233px; float:none; border-style:none; }
-img_whs5 { border:none; float:none; width:174px; height:233px; border-style:none; }
-img_whs6 { border:none; width:227px; height:176px; float:none; border-style:none; }
-img_whs7 { border:none; float:none; width:199px; height:177px; border-style:none; }
-img_whs8 { border:none; float:none; width:250px; height:350px; border-style:none; }
-img_whs9 { border:none; float:none; width:248px; height:349px; border-style:none; }
-p.whs10 { list-style:disc; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs10 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nTransformation Operations\nMirror Image");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Mirror Image</h1>
-
-<p class="whs1"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Mirror Image</B></span> in the Main Menu 
- select <span style="font-weight: bold;"><B>Operations - &gt; Transformation 
- - &gt; Mirror Image</B></span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">This operation creates a symmetrical copy of 
- an <span style="font-weight: bold;"><B>Object, </B></span>which can be mirrored 
- in three different ways.<span style="font-weight: bold;"><B> Create a copy 
- </B></span>checkbox allows to keep the initial object, otherwise it will be 
- removed.</p>
-
-<p class="whs1"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b> GEOM_Object.</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Firstly an Object 
- can be mirrored through a Point of symmetry</font></span></p>
-
-<p class="whs1"><b style="font-weight: bold;">TUI Command: 
- </b><span style="font-style: italic;"><I>geompy.MakeMirrorByPoint(Object, 
- Point)</I></span> </p>
-
-<p class="whs1"><b style="font-weight: bold;">Arguments: <span 
- style="font-weight: normal;">Name + </span></b>1 shape + 1 vertex.</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><img src="pics/transformation7.png" x-maintain-ratio="TRUE" width="312px" height="350px" border="0" class="img_whs3"> &nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><img src="pics/mirror_pointsn1.png" x-maintain-ratio="TRUE" width="174px" height="233px" border="0" class="img_whs4"> &nbsp;<img src="pics/mirror_pointsn2.png" x-maintain-ratio="TRUE" width="174px" height="233px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Secondly an 
- Object can be mirrored through an Axis of symmetry </font></span></p>
-
-<p class="whs1"><b style="font-weight: bold;">TUI Command: 
- </b><span style="font-style: italic;"><I>geompy.MakeMirrorByAxis(Object, 
- Axis)</I></span> </p>
-
-<p class="whs1"><b style="font-weight: bold;">Arguments: <span 
- style="font-weight: normal;">Name + </span></b>1 shape + 1 vector.</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><img src="pics/transformation8.png" x-maintain-ratio="TRUE" width="312px" height="350px" border="0" class="img_whs3"> &nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><img src="pics/mirror_axissn1.png" x-maintain-ratio="TRUE" width="227px" height="176px" border="0" class="img_whs6"> &nbsp;<img src="pics/mirror_axissn2.png" x-maintain-ratio="TRUE" width="199px" height="177px" border="0" class="img_whs7"></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">Finally an <span style="font-weight: bold;"><B>Object</B></span> 
- can be mirrored through a <span style="font-weight: bold;"><B>Plane</B></span> 
- of symmetry </p>
-
-<p class="whs1"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeMirrorByPlane(Shape, 
- Plane)</I></span>, </p>
-
-<p class="whs1"><b style="font-weight: bold;">Arguments:</b> 
- <b><span style="font-weight: normal;">Name + </span></b>1 shape + 1 plane</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><img src="pics/transformation9.png" x-maintain-ratio="TRUE" width="312px" height="350px" border="0" class="img_whs3"> &nbsp;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"><img src="pics/mirror_planesn1.png" x-maintain-ratio="TRUE" width="250px" height="350px" border="0" class="img_whs8"> &nbsp;<img src="pics/mirror_planesn2.png" x-maintain-ratio="TRUE" width="248px" height="349px" border="0" class="img_whs9"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs10">&nbsp;&nbsp;<span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our </font></span><span 
- style="font-weight: bold;"><B>TUI Scripts</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of <a href="transformation_operations.htm#bookmark5">Transformation 
- Operations</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/modify_the_location.htm b/doc/salome/gui/GEOM/modify_the_location.htm
deleted file mode 100755 (executable)
index 2db2e84..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Modify the Location</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:25px; height:22px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:350px; float:none; border-style:none; }
-img_whs5 { border:none; width:431px; height:233px; border-style:none; }
-img_whs6 { border:none; width:312px; height:385px; float:none; border-style:none; }
-img_whs7 { border:none; width:214px; height:222px; border-style:none; }
-table.whs8 { x-cell-content-align:top; width:100%; border-spacing:0px; }
-col.whs9 { width:50%; }
-tr.whs10 { x-cell-content-align:top; }
-td.whs11 { width:50%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }
-td.whs12 { width:50%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
-td.whs13 { width:50%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; }
-img_whs14 { border:none; width:238px; height:218px; border-style:none; }
-td.whs15 { width:50%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; }
-img_whs16 { border:none; width:316px; height:215px; border-style:none; }
-p.whs17 { list-style:disc; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs17 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nTransformation Operations\nModify the Location");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="image59.gif" width="25px" height="22px" border="0" class="img_whs1"> </font></span>Modify the Location</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o<span 
- style="font-weight: bold;"><B> Modify the Location</B></span> in the Main Menu 
- select <span style="font-weight: bold;"><B>Operations - &gt; Transformation 
- - &gt; Modify the Location.</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">This operation modifies the <span style="font-weight: bold;"><B>Location</B></span> 
- of an <span style="font-weight: bold;"><B>Object. </B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">The first algorithm places the object so that 
- its center coincides with the center of an End Local Coordinate System.</p>
-
-<p class="whs2"><span style="font-weight: bold;"><B>Create a copy 
- </B></span>checkbox allows to keep the initial object, otherwise it will be 
- removed.</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><span><b style="font-weight: bold;">A</span>rguments:</b> 
- Name + 1 Object + End Coordinate System.</font></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs3"><img src="pics/transformation5.png" x-maintain-ratio="TRUE" width="312px" height="350px" border="0" class="img_whs4"> &nbsp;&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">In the picture the initial cube with the global 
- coordinate system is &nbsp;to 
- the right and the modified cube with the Local Coordinate System in the 
- center of it is to the left . </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="image30.gif" width="431px" height="233px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">The second algorithm &nbsp;modifies 
- the location of an object using Start and End LSC, although the final 
- position of the object will not coincide with the center of &nbsp;either 
- of the two systems. In this method the object is shifted from its initial 
- position by the value of the remainder after subtraction of the coordinates 
- of the Start LSC from the coordinates of the End LSC. </p>
-
-<p class="whs2"><span style="font-weight: bold;"><B>Create a copy 
- </B></span>checkbox allows to keep the initial object, otherwise it will be 
- removed.</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 Object + Start Coordinate System + End Coordinate System.</font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/transformation6.png" x-maintain-ratio="TRUE" width="312px" height="385px" border="0" class="img_whs6"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">In this picture we see the initial cube with 
- the global coordinate system and two LCS: LocalCS1 (GCS+100 along x-axis) 
- and LocalCS2 (GCS+200 along x-axis) &nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="image1.gif" width="214px" height="222px" border="0" class="img_whs7"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<table x-use-null-cells cellspacing="0" width="100%" class="whs8">
-<col class="whs9">
-<col class="whs9">
-
-<tr valign="top" class="whs10">
-<td width="50%" class="whs11">
-<p class="whs2">Selecting Start LCS = LCS1 and End LCS = LCS2, 
- we obtain the translated cube at the position (100;0;0)</p>
-<p>&nbsp;</td>
-<td width="50%" class="whs12">
-<p class="whs2">Selecting Start LCS = LCS2 and End LCS = LCS1, 
- we obtain the translated cube at the position (-100;0;0)</td></tr>
-
-<tr valign="top" class="whs10">
-<td width="50%" class="whs13">
-<p><img src="image2.gif" width="238px" height="218px" border="0" class="img_whs14"></td>
-<td width="50%" class="whs15">
-<p><img src="image4.gif" width="316px" height="215px" border="0" class="img_whs16"></td></tr>
-</table>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- geompy.MakePosition(theObject, theStartLCS, theEndLCS), </i>where&nbsp;theObject 
- is a shape, location of which is modified, theStartLCS is a location to 
- move the shape from, theEndLCS is a location to move the shape to.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs17"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our </font></span><span 
- style="font-weight: bold;"><B>TUI Scripts</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of <a href="transformation_operations.htm#bookmark2">Transformation 
- Operations</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/multi_rotation.htm b/doc/salome/gui/GEOM/multi_rotation.htm
deleted file mode 100755 (executable)
index c42f36e..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Multi Rotation</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; font-weight:bold; }
-p.whs4 { font-size:12pt; font-weight:normal; }
-p.whs5 { font-size:12pt; margin-left:40px; }
-img_whs6 { border:none; width:312px; height:346px; float:none; border-style:none; }
-img_whs7 { border:none; float:none; width:315px; height:260px; border-style:none; }
-img_whs8 { border:none; float:none; width:301px; height:260px; border-style:none; }
-img_whs9 { border:none; width:312px; height:450px; float:none; border-style:none; }
-img_whs10 { border:none; float:none; width:310px; height:405px; border-style:none; }
-img_whs11 { border:none; float:none; width:337px; height:405px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nTransformation Operations\nMulti Rotation");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image133.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</font></span>Multi 
- Rotation</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Multi Rotation</B></span> in the Main Menu 
- select <span style="font-weight: bold;"><B>Operations - &gt; Transformation 
- - &gt; Multi Rotation</B></span> </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">This operation creates several geometrical 
- objects rotated in <span style="font-weight: bold;"><B>one </B></span>or <span 
- style="font-weight: bold;"><B>two </B></span>dimensions basing on the initial 
- geometrical object. </p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><span 
- style="font-weight: normal;">The</span> Result <span style="font-weight: normal;">will 
- be one or several</span></b> GEOM_Objects (compound).</font></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">To produce a <span style="font-weight: bold;"><B>Simple 
- Multi Rotation</B></span> (in one dimension) you need to define a <span style="font-weight: bold;"><B>Shape</B></span> 
- to be rotated, an <span style="font-weight: bold;"><B>Axis</B></span> of rotation 
- and a <span style="font-weight: bold;"><B>Number of Times</B></span> the shape 
- must be rotated. <span style="font-weight: bold;"><B>Rotation Angle</B></span> 
- will be 2*PI/NbTimes</p>
-
-<p class="whs3"><b style="font-weight: bold;">TUI 
- Command: </b><span style="font-style: italic; font-weight: normal;"><I>geompy.MultiRotate1D(Shape, 
- Axis, NbTimes)</I></span></p>
-
-<p class="whs3"><b style="font-weight: bold;">Arguments: 
- </b><span style="font-weight: normal;">Name + 1 shape + 1 vector for direction 
- + 1 value (repetition).</span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4">There is a <span style="font-weight: bold;"><B>TUI</B></span>-only<span 
- style="font-weight: bold;"> <B></B></span>command <span style="font-style: italic;"><I>geompy.MakeMultiRotation1D(Shape, 
- Dir, Point, NbTimes)</I></span> which works in the same way, but the Axis 
- is defined &nbsp;by 
- direction and point. </p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs5"><img src="pics/neo-mrot1.png" x-maintain-ratio="TRUE" width="312px" height="346px" border="0" class="img_whs6"> </p>
-
-<p class="whs5"><img src="pics/multi_rotation1d1.png" x-maintain-ratio="TRUE" width="315px" height="260px" border="0" class="img_whs7"> &nbsp;<img src="pics/multi_rotation1d2.png" x-maintain-ratio="TRUE" width="301px" height="260px" border="0" class="img_whs8"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-weight: bold;"><B>Double Multi 
- Rotation</B></span> (in two dimensions) rotates the given <span style="font-weight: bold;"><B>Object</B></span> 
- around the given <span style="font-weight: bold;"><B>Axis</B></span> on the given 
- <span style="font-weight: bold;"><B>Angle</B></span> a given <span style="font-weight: bold;"><B>Number 
- of Times</B></span> and multi-translates each rotation result. &nbsp;Translation 
- direction passes through the center of gravity of the rotated shape and 
- its projection on the rotation axis. <span style="font-weight: bold;"><B>Reverse 
- </B></span>checkbox allows to set the direction of rotation.</p>
-
-<p class="whs2"><b style="font-weight: bold;">T<span style="font-weight: bold;"><B>UI 
- Command: </B></span><span style="font-weight: normal;">g</span></b><span style="font-style: italic;"><I>eompy.MultiRotate2D(Shape, 
- Axis, Angle, NbTimes1, Step, NbTimes2)</I></span></p>
-
-<p class="whs2"><span style="font-style: italic;"><I><b style="font-weight: bold;">A</I></span><span 
- style="font-weight: bold;"><B>rguments: </B></span></b>Name + 1 shape + 1 vector 
- for direction + 1 angle + 1 value (repetition) + 1 step value + 1 value 
- (repetition);</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">There is a <span style="font-weight: bold;"><B>TUI</B></span>-only 
- command <span style="font-style: italic;"><I>geompy.MakeMultiRotation2D(Shape, 
- Dir, Point, Angle, nbtimes1, Step, nbtimes2)</I></span> which works in the 
- same way, but the Axis is defined &nbsp;by 
- direction and point. </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5"><img src="pics/neo-mrot2.png" x-maintain-ratio="TRUE" width="312px" height="450px" border="0" class="img_whs9"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><img src="pics/multi_rotation2d1.png" x-maintain-ratio="TRUE" width="310px" height="405px" border="0" class="img_whs10"> &nbsp;<img src="pics/multi_rotation2d2.png" x-maintain-ratio="TRUE" width="337px" height="405px" border="0" class="img_whs11"></p>
-
-<p class="whs2">&nbsp;&nbsp;<span 
- style="font-size: 12pt; margin-left: 40px;"><font size=3 style="font-size:12pt;">&nbsp;&nbsp;&nbsp;&nbsp;</font></span></p>
-
-<p class="whs5">Our <span style="font-weight: bold;"><B>TUI 
- Scripts</B></span> provide you with useful examples of the use of <a href="transformation_operations.htm#bookmark9">Transformation 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/multi_transformation.htm b/doc/salome/gui/GEOM/multi_transformation.htm
deleted file mode 100755 (executable)
index 3362e1f..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Multi Transformation</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:24px; height:22px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; font-weight:bold; }
-p.whs4 { font-size:12pt; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:381px; float:none; border-style:none; }
-img_whs6 { border:none; width:301px; height:306px; float:none; border-style:none; }
-img_whs7 { border:none; width:312px; height:494px; float:none; border-style:none; }
-img_whs8 { border:none; width:277px; height:304px; float:none; border-style:none; }
-p.whs9 { font-weight:bold; }
-p.whs10 { font-size:12pt; text-indent:-40px; font-weight:bold; margin-left:80px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs10 {text-indent:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nBlocks Operations\nMulti Transformation");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><img src="image52.gif" width="24px" height="22px" border="0" class="img_whs1"> Block Multi Transformation</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Multi Transformation</B></span> operation 
- in the Main Menu select <span style="font-weight: bold;"><B>Operations - 
- &gt; Blocks - &gt; Multi Transformation</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">This operation makes several translations of 
- a block (solid) in <span style="font-weight: bold;"><B>one</B></span> or <span 
- style="font-weight: bold;"><B>two</B></span> directions depending on the arguments 
- specified by the user.</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result<span style="font-weight: normal;"> in both cases will be a</span></b> 
- GEOM_Object.</p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Simple Multi 
- Transformation (in one direction).</b></p>
-
-<p class="whs3"><b style="font-weight: bold;">TUI 
- Command:</b><i> </i><span style="font-style: italic; font-weight: normal;"><I>geompy. 
- MakeMultiTransformation1D(Block, DirFaceID1, DirFaceID2, NbTimes), </I></span><span 
- style="font-weight: normal;">where</span><span style="font-style: italic; font-weight: normal;"><I> 
- Block </I></span><span style="font-weight: normal;">is a block to be transformed,</span><span 
- style="font-style: italic; font-weight: normal;"><I> DirFaceID1 </I></span><span 
- style="font-weight: normal;">is an ID of the face which defines the first 
- direction of transformation,</span><span style="font-style: italic; font-weight: normal;"><I> 
- DirFaceID2 </I></span><span style="font-weight: normal;">is an ID of the face 
- which defines the second direction of transformation,</span><span style="font-style: italic; font-weight: normal;"><I> 
- NbTimes </I></span><span style="font-weight: normal;">is a number of transformations.</span></p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: </b>Name 
- + 1 hexahedral solid + 1 or 2 faces + 1 integer (number of blocks).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/mtransf1.png" x-maintain-ratio="TRUE" width="312px" height="381px" border="0" class="img_whs5"> &nbsp;&nbsp;<img src="pics/multi_transformationsn1d.png" x-maintain-ratio="TRUE" width="301px" height="306px" border="0" class="img_whs6"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Double 
- Multi Transformation (in two directions).</b></font></span></p>
-
-<p class="whs2"><span style="font-weight: bold;"><B><b style="font-weight: bold;">TUI 
- Command:</b><i> </i></B></span><span style="font-size: 12pt; font-style: italic;"><font size=3 style="font-size:12pt;"><I>geompy. 
- MakeMultiTransformation2D(Block, DirFaceID1U, DirFaceID2U, NbTimesU, DirFaceID1V, 
- DirFaceID2V, NbTimesV)</I></font></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">, where Block 
- is a block to be transformed, DirFaceID1U and DirFaceID2U are IDs of the 
- faces, which define directions of the first transformation, DirFaceID1V 
- and DirFaceID2V are ID\92s of the faces which define directions of the second 
- transformation, NbTimesU and NbTimesV are numbers of transformations.</font></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: &nbsp;</b><span 
- style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">Name 
- + 1 hexahedral solid + 2, 3 or 4 faces + 2 integers (number of blocks).</font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/mtransf2.png" x-maintain-ratio="TRUE" width="312px" height="494px" border="0" class="img_whs7"> &nbsp;<img src="pics/multi_transformationsn2d.png" x-maintain-ratio="TRUE" width="277px" height="304px" border="0" class="img_whs8"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs9">&nbsp;&nbsp;&nbsp;<span 
- style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">Our</font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> TUI Scripts</font></span><span style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of</font></span><span style="font-size: 12pt;"> 
- <font size=3 style="font-size:12pt;"><a href="blocks_operations.htm#bookmark4">Blocks Operations</a>. </font></span></p>
-
-<p class="whs9">&nbsp;&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p class="whs10">&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/multi_translation.htm b/doc/salome/gui/GEOM/multi_translation.htm
deleted file mode 100755 (executable)
index 05449ca..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Multi Translation</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:398px; float:none; border-style:none; }
-img_whs5 { border:none; height:203px; float:none; width:282px; border-style:none; }
-img_whs6 { border:none; width:291px; height:202px; float:none; border-style:none; }
-img_whs7 { border:none; width:312px; height:509px; float:none; border-style:none; }
-img_whs8 { border:none; float:none; width:292px; height:209px; border-style:none; }
-img_whs9 { border:none; width:288px; height:209px; float:none; border-style:none; }
-p.whs10 { list-style:disc; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs10 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nTransformation Operations\nMulti Translation");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image132.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Multi Translation</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Multi Translation</B></span> in the Main 
- Menu select <span style="font-weight: bold;"><B>Operations - &gt; Transformation 
- - &gt; Multi Translation</B></span> </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: normal;">This operation</b> 
- makes several translations of a shape in <span style="font-weight: bold;"><B>one</B></span> 
- or <span style="font-weight: bold;"><B>two</B></span> directions.</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be one or several</span></b> 
- GEOM_Objects (compound).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">To produce a <span style="font-weight: bold;"><B>Simple 
- Multi Translation</B></span> (in one direction) you need to indicate a <span 
- style="font-weight: bold;"><B>Shape</B></span> to be translated, a <span style="font-weight: bold;"><B>Vector</B></span> 
- of translation, a <span style="font-weight: bold;"><B>Step</B></span> of translation 
- and a <span style="font-weight: bold;"><B>Number of Times</B></span> the shape 
- must be moved.</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command: 
- </b><span style="font-style: italic;"><I>geompy.MakeMultiTranslation1D(Shape, 
- Dir, Step, NbTimes)</I></span></p>
-
-<p class="whs2"><b>A<span style="font-weight: bold;"><B>rguments: 
- </B></span></b>Name + 1 shape + 1 vector (for direction) + 1 step value + 
- 1 value (repetition).</p>
-
-<p class="whs3"><img src="pics/mtrans1.png" x-maintain-ratio="TRUE" width="312px" height="398px" border="0" class="img_whs4"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><img src="pics/multi_translation_initialsn.png" x-maintain-ratio="TRUE" height="203px" width="282px" border="0" class="img_whs5"> &nbsp;&nbsp;<img src="pics/multi_translation1dsn.png" x-maintain-ratio="TRUE" width="291px" height="202px" border="0" class="img_whs6"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">To produce a 
- </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Double Multi 
- Translation</B></font></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> (in two directions) 
- you need to indicate a </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Shape</B></font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> to be translated and a </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Vector</B></font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> of translation, a </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Step</B></font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> of translation and a </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Number 
- of Times</B></font></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> the shape must be moved 
- along each axis.</font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command: 
- <span style="font-style: italic; font-weight: normal;"><I>g</I></span></b><span 
- style="font-style: italic;"><I>eompy.MakeMultiTranslation2D(Shape, Dir1, 
- Step1, NbTimes1, Dir2, Step2, NbTimes2)</I></span>, where <span style="font-style: italic;"><I>Shape</I></span> 
- is a shape to be translated, <span style="font-style: italic;"><I>Dir1</I></span> 
- is the first direction of translation, <span style="font-style: italic;"><I>Step1</I></span> 
- of the first translation, <span style="font-style: italic;"><I>NbTimes1</I></span> 
- is a number of translations to be done along <span style="font-style: italic;"><I>Dir1</I></span>, 
- <span style="font-style: italic;"><I>Dir2</I></span> is the second direction 
- of translation, <span style="font-style: italic;"><I>Step2</I></span> of the 
- second translation, <span style="font-style: italic;"><I>NbTimes2</I></span> 
- is a number of translations to be done along <span style="font-style: italic;"><I>Dir2</I></span>.</p>
-
-<p class="whs2"><b style="font-weight: bold;">A<span style="font-weight: bold;"><B>rguments: 
- </B></span></b>Name + 1 shape + 2 vectors defining the direction + 2 step 
- values + 2 values (repetitions).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/mtrans2.png" x-maintain-ratio="TRUE" width="312px" height="509px" border="0" class="img_whs7"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><img src="pics/multi_translation_initialsn.png" x-maintain-ratio="TRUE" width="292px" height="209px" border="0" class="img_whs8"> &nbsp;&nbsp;&nbsp;<img src="pics/multi_translation2dsn.png" x-maintain-ratio="TRUE" width="288px" height="209px" border="0" class="img_whs9"></p>
-
-<p class="whs2">&nbsp;<span style="list-style: disc;
-       margin-left: 0in;
-       margin-right: 0in;
-       margin-top: 0px;
-       margin-bottom: 0px;">&nbsp;</span></p>
-
-<p class="whs10"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our </font></span><span 
- style="font-weight: bold;"><B>TUI Scripts</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of <a href="transformation_operations.htm#bookmark8">Transformation 
- Operations</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/newentity_blocks.htm b/doc/salome/gui/GEOM/newentity_blocks.htm
deleted file mode 100755 (executable)
index 1fcbf4c..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Blocks</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-size:14pt; font-weight:bold; }
-img_whs2 { border:none; float:none; width:30px; height:30px; border-style:none; }
-ul.whs3 { list-style:disc; }
-img_whs4 { border:none; width:23px; height:22px; border-style:none; }
-p.whs5 { font-size:12pt; }
-p.whs6 { font-size:12pt; font-style:italic; font-weight:normal; }
-table.whs7 { x-cell-content-align:top; width:66.515%; border-spacing:0px; }
-col.whs8 { width:32.996%; }
-col.whs9 { width:33.052%; }
-col.whs10 { width:33.952%; }
-tr.whs11 { x-cell-content-align:top; }
-td.whs12 { width:32.996%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
-img_whs13 { border:none; width:312px; height:410px; float:none; border-style:none; }
-td.whs14 { width:33.052%; padding-right:10px; padding-left:10px; border-right-style:none; border-top-style:none; border-bottom-style:none; }
-td.whs15 { width:33.952%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
-p.whs16 { font-weight:bold; }
-p.whs17 { margin-left:40px; }
-img_whs18 { border:none; width:250px; height:195px; border-style:none; }
-img_whs19 { border:none; width:24px; height:22px; border-style:none; }
-table.whs20 { x-cell-content-align:top; width:40.406%; border-spacing:0px; }
-col.whs21 { width:49.761%; }
-col.whs22 { width:50.239%; }
-td.whs23 { width:49.761%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
-img_whs24 { border:none; width:312px; height:324px; float:none; border-style:none; }
-td.whs25 { width:50.239%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
-img_whs26 { border:none; width:312px; height:464px; float:none; border-style:none; }
-td.whs27 { width:49.761%; padding-right:10px; padding-left:10px; border-left-style:none; border-right-style:none; border-bottom-style:none; }
-td.whs28 { width:50.239%; padding-right:10px; padding-left:10px; border-right-style:none; border-bottom-style:none; }
-p.whs29 { font-size:12pt; font-weight:bold; }
-p.whs30 { font-size:12pt; font-weight:bold; margin-left:0px; }
-img_whs31 { border:none; width:300px; height:234px; float:none; border-style:none; }
-img_whs32 { border:none; width:251px; height:234px; border-style:none; }
-p.whs33 { font-size:12pt; margin-left:40px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs30 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nBuilding by blocks");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Building by blocks</h1>
-
-<p class="whs1"><span style="font-size: 14pt; font-weight: bold;"><font size=4 style="font-size:14pt;"><B>Introduction.</B></font></span></p>
-
-<p>&nbsp;</p>
-
-<p>Below are some general notions about blocks:</p>
-
-<p>&nbsp;</p>
-
-<p><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><img src="i_blue.jpg" x-maintain-ratio="TRUE" x-save-file="TRUE" x-save-method="compute-relative" width="30px" height="30px" border="0" class="img_whs2"></b></font></span>A block is a an elementary geometric solid that 
- has specific geometric constraints oriented for meshing. In the hexahedral 
- case, blocks have 6 faces and each face has 4 edges. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p>Tetrahedral Block - is a block with constraints for tetrahedral meshing. 
- </p>
-
-<p>&nbsp;</p>
-
-<p>Hexahedral Block - is a block with constraints for hexahedral meshing.</p>
-
-<p>&nbsp;</p>
-
-<p>Block Compound - is a compound composed of blocks only.</p>
-
-<p>&nbsp;</p>
-
-<p>These functionalities are available from the main menu via <span style="font-style: italic;"><I>New 
- Entity / Blocks.</I></span></p>
-
-<p>&nbsp;</p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p><a href="#QuadrangleFace">Quadrangle face</a></p></li>
-       
-       <li class=kadov-p><p><a href="#HexahedralSolid">Hexahedral solid</a></p></li>
-</ul>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p><a name=QuadrangleFace><img src="image29.gif" width="23px" height="22px" border="0" class="img_whs4"><span style="font-size: 14pt; font-weight: bold;"><font size=4 style="font-size:14pt;"><B>Quadrangle 
- face</B></font></span></a></p>
-
-<p>&nbsp;</p>
-
-<p class="whs5"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Description:</b> 
- Builds a face using the below mentioned arguments. This operation allows 
- to build a face bypassing the intermediate stage of building edges and 
- wires (in the case of building by 4 points) or wires (in the case of building 
- by 4 or 2 edges).</font></span></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><b><span style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">T</b><b>he</font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> Result </font></span><span style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">of 
- the operation will be a</font></span></b><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b> GEOM_Object</b></font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> (face).</font></span></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;">TUI Command:</b></p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs6"><b style="font-weight: normal;">geompy.MakeQuad4Vertices(V1, 
- V2, V3, V4), <span style="font-style: normal;">where V1, V2, V3, V4 are 
- four vertices from which a face is constructed. Edges are created automatically.</span></b></p></li>
-       
-       <li class=kadov-p><p class="whs5"><span style="font-style: italic;"><I>geompy.MakeQuad2Edges(E1, 
- E2)</I></span>, where E1, E2 are edges from which the face is constructed, 
- two other edges are created automatically.</p></li>
-       
-       <li class=kadov-p><p class="whs5"><b style="font-weight: normal;"><span 
- style="font-style: italic;"><I>g</b>eompy.MakeQuad(E1, E2, E3, E4)</I></span>, 
- where E1, E2, E3, E4 are four edges from which the face is constructed.</p></li>
-</ul>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;">Arguments:</b> 
- </p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs5">Name + 4 Points, or</p></li>
-       
-       <li class=kadov-p><p class="whs5">Name + 2 Edges, or </p></li>
-       
-       <li class=kadov-p><p class="whs5">Name + 4 Edges.</p></li>
-</ul>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;">Dialog Box:</b></p>
-
-<table x-use-null-cells cellspacing="0" width="66.515%" class="whs7">
-<col class="whs8">
-<col class="whs9">
-<col class="whs10">
-
-<tr valign="top" class="whs11">
-<td width="32.996%" class="whs12">
-<p><img src="pics/block1.png" x-maintain-ratio="TRUE" width="312px" height="410px" border="0" class="img_whs13"></td>
-<td width="33.052%" class="whs14">
-<p><img src="pics/block2.png" x-maintain-ratio="TRUE" width="312px" height="410px" border="0" class="img_whs13"></td>
-<td width="33.952%" class="whs15">
-<p><img src="pics/block3.png" x-maintain-ratio="TRUE" width="312px" height="410px" border="0" class="img_whs13"></td></tr>
-</table>
-
-<p class="whs5">&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p class="whs16">Example:</p>
-
-<p class="whs16">&nbsp;</p>
-
-<p class="whs17"><img src="image185.jpg" width="250px" height="195px" border="0" class="img_whs18"> </p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<p><a name=HexahedralSolid><img src="image51.gif" width="24px" height="22px" border="0" class="img_whs19"> <span style="font-size: 14pt; font-weight: bold;"><font size=4 style="font-size:14pt;"><B>Hexahedral 
- solid</B></font></span></a></p>
-
-<p>&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;">Description:</b> 
- Builds a hexahedral solid. either of the below mentioned arguments. This 
- operation allows to build a solid bypassing the intermediate stage of 
- building a shell and 4 faces (in the case of building by 2 faces) or just 
- a shell (in the case of building by 6 faces).</p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result<span style="font-weight: normal;"> of the operation will be a</span></b><b> 
- GEOM_Object</b> (solid).</p>
-
-<p>&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;">TUI Command:</b></p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs5"><span style="font-style: italic;"><I>geompy.MakeHexa2Faces(F1, 
- F2)</I></span><span style="font-style: italic;"><I>, where F1 and F2 are faces 
- from which the hexahedron is constructed, other four faces are created 
- automatically.</I></span></p></li>
-       
-       <li class=kadov-p><p class="whs5"><span style="font-style: italic;"><I>geompy.MakeHexa(F1, 
- F2, F3, F4, F5, F6)</I></span>, where F1 \96 F6 are six faces from which the 
- hexahedron is constructed.</p></li>
-</ul>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;">Arguments:</b> 
- </p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs5">Name + 2 Faces, or </p></li>
-       
-       <li class=kadov-p><p class="whs5">Name + 6 Faces.</p></li>
-</ul>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5"><b style="font-weight: bold;">Dialog Box:</b></p>
-
-<p class="whs5">&nbsp;</p>
-
-<table x-use-null-cells cellspacing="0" width="40.406%" class="whs20">
-<col class="whs21">
-<col class="whs22">
-
-<tr valign="top" class="whs11">
-<td width="49.761%" class="whs23">
-<p class="whs5"><b style="font-weight: bold;">&nbsp;<img src="pics/block4.png" x-maintain-ratio="TRUE" width="312px" height="324px" border="0" class="img_whs24"></b></td>
-<td width="50.239%" class="whs25">
-<p><img src="pics/block5.png" x-maintain-ratio="TRUE" width="312px" height="464px" border="0" class="img_whs26"></td></tr>
-
-<tr valign="top" class="whs11">
-<td colspan="1" rowspan="1" width="49.761%" class="whs27">
-<p class="whs5">&nbsp;</td>
-<td colspan="1" rowspan="1" width="50.239%" class="whs28">
-<p>&nbsp;</td></tr>
-</table>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs29">Example:</p>
-
-<p class="whs29">&nbsp;</p>
-
-<p class="whs30"><img src="image180.jpg" x-maintain-ratio="TRUE" width="300px" height="234px" border="0" class="img_whs31"> &nbsp;&nbsp;&nbsp;<img src="image181.jpg" width="251px" height="234px" border="0" class="img_whs32"> &nbsp;</p>
-
-<p class="whs33"><b style="font-weight: bold;">&nbsp;&nbsp;&nbsp;</b>&nbsp;&nbsp;</p>
-
-<p class="whs5">Our <span style="font-weight: bold;"><B>TUI Scripts</B></span> 
- provide you with useful examples of <a href="building_by_blocks.htm">Building 
- by Blocks</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/offset_surface.htm b/doc/salome/gui/GEOM/offset_surface.htm
deleted file mode 100755 (executable)
index 776c23f..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Offset Surface</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:24px; height:22px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; font-weight:bold; }
-img_whs4 { border:none; width:312px; height:315px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; font-weight:bold; }
-p.whs6 { font-size:12pt; margin-left:40px; }
-img_whs7 { border:none; width:235px; height:236px; float:none; border-style:none; }
-p.whs8 { list-style:disc; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs8 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nTransformation Operations\nOffset Surface");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="image37.gif" width="24px" height="22px" border="0" class="img_whs1"></font></span>Offset Surface</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- an <span style="font-weight: bold;"><B>Offset Surface</B></span> in the Main 
- Menu select <span style="font-weight: bold;"><B>Operations - &gt; Transformation 
- - &gt;</B></span> <span style="font-weight: bold;"><B>Offset Surface</B></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">This operation<span style="font-weight: bold;"> 
- <B></B></span>translates each point of an<span style="font-weight: bold;"><B> Object</B></span> 
- (a set of Objects) along a local normal by a given <span style="font-weight: bold;"><B>Offset</B></span> 
- distance (signed number, negative value meaning inner offset). <span style="font-weight: bold;"><B>Offset</B></span> 
- operation is applicable to faces, shells and solids.</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b> GEOM_Object 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: bold;"><B>T</B></span>UI 
- Command: </b><span style="font-style: italic;"><I>geompy.MakeOffset(Shape, 
- Offset)</I></span>, where Shape is a shape which has to be an offset, Offset 
- is a value of the offset.</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: </b><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Name + Object (face, shell, solid, compound) 
- + Offset value </font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/transformation11.png" x-maintain-ratio="TRUE" width="312px" height="315px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5">Example:</p>
-
-<p class="whs6"><img src="pics/offsetsn.png" x-maintain-ratio="TRUE" width="235px" height="236px" border="0" class="img_whs7"></p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs8">&nbsp;&nbsp;<span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our </font></span><span 
- style="font-weight: bold;"><B>TUI Scripts</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of <a href="transformation_operations.htm#bookmark7">Transformation 
- Operations</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/partition.htm b/doc/salome/gui/GEOM/partition.htm
deleted file mode 100755 (executable)
index cd5a9e6..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Partition</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; font-weight:normal; }
-p.whs4 { font-weight:bold; font-size:14pt; }
-p.whs5 { font-size:12pt; margin-left:40px; }
-img_whs6 { border:none; width:400px; height:350px; float:none; border-style:none; }
-img_whs7 { border:none; width:400px; height:324px; float:none; border-style:none; }
-img_whs8 { border:none; float:none; width:297px; height:245px; border-style:none; }
-img_whs9 { border:none; float:none; width:273px; height:245px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nBasic Operations\nPartition");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image87.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</font></span></b>Partition</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Partition</B></span> in the <span style="font-weight: bold;"><B>Main 
- Menu</B></span> select <span style="font-weight: bold;"><B>Operations - &gt; 
- Partition</B></span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><b><span style="font-weight: normal;">This 
- operation </b>builds a shape by intersection of two shapes or a shape 
- and a plane.</span></p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be any</span> </b>GEOM_Object.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><b><span style="font-weight: bold;"><B>Intersection 
- of two shapes.</B></span></b></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">As far as the intersection 
- of two objects can produce any type of geometrical objects, <span style="font-weight: bold;"><B>Reconstruction 
- Limit</B></span> box allows to choose the preferrable result, i.e. a solid, 
- a shell, a list of faces, etc.</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakePartition(ListOfShapes, 
- ListOfTools, ListOfKeepInside, ListOfRemoveInside, Limit, RemoveWebs, 
- ListOfMaterials)</I></span>, where <span style="font-style: italic;"><I>ListOfShapes</I></span> 
- is a list of shapes to be intersected and &nbsp;<span 
- style="font-style: italic;"><I>ListOfTools</I></span> 
- is a list of shapes to intersect the shapes from ListOfShapes. </p>
-
-<p class="whs2">Since the implementation of a new version of 
- PartitionAlgo other parameters are ignored by the current functionality 
- and remain there only to support the old scripts. &nbsp;</p>
-
-<p class="whs2"><b>Arguments:</b> Name + 2 lists of shapes 
- (the shapes from the first list will be intersected with the shapes from 
- the second list) + reconstruction limit.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5"><img src="pics/partition1.png" x-maintain-ratio="TRUE" width="400px" height="350px" border="0" class="img_whs6"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4">Intersection of a Shape 
- and a Plane.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-weight: bold;"><B>TUI Command</B></span> 
- &nbsp;<span style="font-style: italic;"><I>geompy.MakeHalfPartition(Shape, 
- Plane), </I></span>where<span style="font-style: italic;"><I> Shape</I></span> is 
- a Shape to be intersected and <span style="font-style: italic;"><I>Plane</I></span> 
- is a Tool shape, to intersect the <span style="font-style: italic;"><I>Shape</I></span>.</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: </b>Name 
- + 1 shape which will be intersected + 1 cutting face.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5"><img src="pics/partition2.png" x-maintain-ratio="TRUE" width="400px" height="324px" border="0" class="img_whs7"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5"><img src="pics/partitionsn1.png" x-maintain-ratio="TRUE" width="297px" height="245px" border="0" class="img_whs8"> &nbsp;<img src="pics/partitionsn2.png" x-maintain-ratio="TRUE" width="273px" height="245px" border="0" class="img_whs9"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of the use of <a href="basic_operations.htm#bookmark">Basic Operations</a>. 
- </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/pics/angle.png b/doc/salome/gui/GEOM/pics/angle.png
new file mode 100755 (executable)
index 0000000..fbe7538
Binary files /dev/null and b/doc/salome/gui/GEOM/pics/angle.png differ
index 94fedcd124181fc169e0b0978bcadb428ad93431..fdbe02fbddc47452c30825303dec964cfc33be82 100755 (executable)
Binary files a/doc/salome/gui/GEOM/pics/chamfer1.png and b/doc/salome/gui/GEOM/pics/chamfer1.png differ
index b2c09870e95c1ffde3dec3c9b9173c33367b9dea..24d6e124e7f5d56888f68e6190b27cd0cc925326 100755 (executable)
Binary files a/doc/salome/gui/GEOM/pics/chamfer2.png and b/doc/salome/gui/GEOM/pics/chamfer2.png differ
index 84b52e5c69dcb1cf71f4d15a48b88fdb128c1ae0..801f8db2f47e19d0e855f91d6dd781ae5fc13402 100755 (executable)
Binary files a/doc/salome/gui/GEOM/pics/chamfer3.png and b/doc/salome/gui/GEOM/pics/chamfer3.png differ
diff --git a/doc/salome/gui/GEOM/pics/chamfer4.png b/doc/salome/gui/GEOM/pics/chamfer4.png
new file mode 100755 (executable)
index 0000000..14476b4
Binary files /dev/null and b/doc/salome/gui/GEOM/pics/chamfer4.png differ
diff --git a/doc/salome/gui/GEOM/pics/circle3.png b/doc/salome/gui/GEOM/pics/circle3.png
new file mode 100755 (executable)
index 0000000..39aa5b1
Binary files /dev/null and b/doc/salome/gui/GEOM/pics/circle3.png differ
diff --git a/doc/salome/gui/GEOM/pics/dialog.png b/doc/salome/gui/GEOM/pics/dialog.png
new file mode 100755 (executable)
index 0000000..63f984b
Binary files /dev/null and b/doc/salome/gui/GEOM/pics/dialog.png differ
index 7466fc424f50c9678e0c0aaeee180b70e0fe1644..141ec8e5aa6f67876c3912bbb9170f61960113e5 100755 (executable)
Binary files a/doc/salome/gui/GEOM/pics/distance.png and b/doc/salome/gui/GEOM/pics/distance.png differ
index d42e333ea9644111482f3cc4d1374008755d970b..2eab8754b284f6d54dc8cc271ef0ba6695c7838b 100755 (executable)
Binary files a/doc/salome/gui/GEOM/pics/fillet2.png and b/doc/salome/gui/GEOM/pics/fillet2.png differ
index 73e453339fe5d8b1c920bcbf1473519e1015b437..6e46e05dd4dacc2e2678721516bf0d288c7f6e25 100755 (executable)
Binary files a/doc/salome/gui/GEOM/pics/fillet3.png and b/doc/salome/gui/GEOM/pics/fillet3.png differ
diff --git a/doc/salome/gui/GEOM/pics/normaletoface.png b/doc/salome/gui/GEOM/pics/normaletoface.png
new file mode 100755 (executable)
index 0000000..51bc43a
Binary files /dev/null and b/doc/salome/gui/GEOM/pics/normaletoface.png differ
diff --git a/doc/salome/gui/GEOM/pipe_creation.htm b/doc/salome/gui/GEOM/pipe_creation.htm
deleted file mode 100755 (executable)
index 4d392fe..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Pipe Creation</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:324px; float:none; border-style:none; }
-img_whs5 { border:none; width:260px; height:200px; float:none; border-style:none; }
-img_whs6 { border:none; float:none; width:260px; height:200px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Complex Objects\nPipe");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image59.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Pipe Construction</h1>
-
-<p><b><span style="font-weight: normal;">T</b>o</span> <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">generate 
- a </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Pipe</B></font></span> 
- in the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span 
- style="font-weight: bold;"><B>New Entity - &gt; Generation &nbsp;- 
- &gt; Extrusion along a path</B></span></p>
-
-<p>&nbsp;</p>
-
-<p>To create an extruded <span style="font-weight: bold;"><B>Pipe</B></span> shape, 
- you need to define the <span style="font-weight: bold;"><B>Base Object </B></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;">(vertex, edge, wire, face or shell)</font></span><span 
- style="font-weight: bold;"><B>,</B></span> which will be extruded and the <span 
- style="font-weight: bold;"><B>Path Object</B></span> <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">(edge, 
- face or shell) </font></span>along which the Base Object will be extruded. </p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of the operation will be a</span></b> 
- GEOM_Object (edge, face, solid or compsolid).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakePipe(baseShape, pathShape)</I></span> 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 shape (vertex, edge, wire, face or shell) serving as base object 
- + 1 shape (edge, face or shell) for definition of the path.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/pipe.png" x-maintain-ratio="TRUE" width="312px" height="324px" border="0" class="img_whs4"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/pipe_wire_edgesn.png" x-maintain-ratio="TRUE" width="260px" height="200px" border="0" class="img_whs5"> &nbsp;<img src="pics/pipesn.png" x-maintain-ratio="TRUE" width="260px" height="200px" border="0" class="img_whs6"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="complex_objects.htm#bookmark3">Complex Geometric 
- Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/plane.htm b/doc/salome/gui/GEOM/plane.htm
deleted file mode 100755 (executable)
index 2bd4559..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Plane</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:346px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; font-weight:bold; }
-img_whs6 { border:none; width:312px; height:385px; float:none; border-style:none; }
-img_whs7 { border:none; width:400px; height:315px; float:none; }
-table.whs8 { x-cell-content-align:top; width:72.604%; border-spacing:0px; }
-col.whs9 { width:32.089%; }
-col.whs10 { width:32.008%; }
-col.whs11 { width:35.903%; }
-tr.whs12 { x-cell-content-align:top; }
-td.whs13 { width:32.089%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-top-style:none; border-bottom-style:none; }
-img_whs14 { border:none; width:258px; height:249px; float:none; border-style:none; }
-td.whs15 { width:32.008%; padding-right:10px; padding-left:10px; border-right-style:none; border-top-style:none; border-bottom-style:none; }
-img_whs16 { border:none; width:291px; height:181px; float:none; border-style:none; }
-td.whs17 { width:35.903%; padding-right:10px; padding-left:10px; border-top-style:none; border-bottom-style:none; border-right-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Basic Geometric Objects\nPlane");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image33.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span></b>Plane</h1>
-
-<p>To create a <span style="font-weight: bold;"><B>Plane</B></span> in the <span 
- style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>New 
- Entity - &gt; Basic - &gt; Plane</B></span></p>
-
-<p>&nbsp;</p>
-
-<p>There are three algorithms to <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">create 
- a plane in the 3D space.</font></span></p>
-
-<p><b style="font-weight: bold;"><span style="font-weight: normal;">The</span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> Result </font></span><span style="font-weight: normal;">of 
- each operation will be a</span></b><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> GEOM_Object 
- (face).</font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Firstly, you can define a <span style="font-weight: bold;"><B>Plane</B></span> 
- by a <span style="font-weight: bold;"><B>Point </B></span>through which &nbsp;the 
- plane passes, a <span style="font-weight: bold;"><B>Vector </B></span>giving 
- a normal of the plane and a <span style="font-weight: bold;"><B>Size of the 
- Plane</B></span> (size of a side of quadrangle face, representing the plane).</p>
-
-<p class="whs2"><span style="font-weight: bold;"><B><b style="font-weight: bold;">TUI 
- Command:</b> </B></span><span style="font-style: italic;"><I>geompy.MakePlane(Point, 
- Vector, TrimSize)</I></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: </b>Name 
- + 1 vertex + 1 vector &nbsp;+ 
- 1 value (to define the size of the plane).</p>
-
-<p class="whs3"><b style="font-weight: bold;"><img src="pics/plane1.png" x-maintain-ratio="TRUE" width="312px" height="346px" border="0" class="img_whs4"></b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Secondly, you can define a <span style="font-weight: bold;"><B>Plane</B></span> 
- by three <span style="font-weight: bold;"><B>Points </B></span>through which 
- &nbsp;the plane 
- passes and a <span style="font-weight: bold;"><B>Size of the Plane</B></span>.</p>
-
-<p class="whs5"><b style="font-weight: bold;">TUI 
- Command:</b> <span style="font-weight: normal; font-style: italic;"><I>geompy.MakePlaneThreePnt(Point1, 
- Point2, Point3, TrimSize)</I></span> </p>
-
-<p class="whs5"><b style="font-weight: bold;">Arguments: 
- </b><span style="font-weight: normal;">Name + 3 vertices + 1 value (to 
- define the size of the plane).</span></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs3"><img src="pics/plane2.png" x-maintain-ratio="TRUE" width="312px" height="385px" border="0" class="img_whs6"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Finally, you can define a <span style="font-weight: bold;"><B>Plane 
- </B></span>by another <span style="font-weight: bold;"><B>Plane</B></span> or <span 
- style="font-weight: bold;"><B>Local Coordinate System</B></span> and a <span 
- style="font-weight: bold;"><B>Size of the Plane</B></span>. </p>
-
-<p class="whs2"><span style="font-weight: bold;"><B><b style="font-weight: bold;">TUI 
- Command:</b> </B></span>geompy.MakePlaneFace(Face, TrimSize) </p>
-
-<p class="whs2"><b>Arguments: </b>Name + 1 face + 1 value (to 
- define the size of the plane).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/plane3.png" x-maintain-ratio="TRUE" width="400px" height="315px" border="0" class="img_whs7"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5">Examples:</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5"><span style="font-weight: normal; font-style: italic;"><I>Planes</I></span> 
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span 
- style="font-weight: normal; font-style: italic;"><I>A 
- Plane created on a Plane of another size</I></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<table x-use-null-cells cellspacing="0" width="72.604%" class="whs8">
-<col class="whs9">
-<col class="whs10">
-<col class="whs11">
-
-<tr valign="top" class="whs12">
-<td width="32.089%" class="whs13">
-<p class="whs2"><img src="pics/planes1.png" x-maintain-ratio="TRUE" width="258px" height="249px" border="0" class="img_whs14"></td>
-<td width="32.008%" class="whs15">
-<p class="whs2"><img src="pics/plane_on_face.png" x-maintain-ratio="TRUE" width="291px" height="181px" border="0" class="img_whs16"></td>
-<td width="35.903%" class="whs17">
-<p class="whs2">&nbsp;</td></tr>
-</table>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="basic_geometrical_objects.htm#bookmark6">Basic 
- Geometric Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/point.htm b/doc/salome/gui/GEOM/point.htm
deleted file mode 100755 (executable)
index 6400c29..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Point</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:332px; float:none; border-style:none; }
-img_whs5 { border:none; width:312px; height:473px; float:none; border-style:none; }
-p.whs6 { font-size:12pt; margin-left:120px; }
-p.whs7 { font-size:12pt; margin-left:0px; }
-p.whs8 { font-size:12pt; font-style:italic; margin-left:0px; }
-img_whs9 { border:none; width:312px; height:421px; float:none; border-style:none; }
-p.whs10 { font-size:12pt; color:#000000; }
-p.whs11 { color:#808080; font-size:12pt; }
-img_whs12 { border:none; width:354px; height:326px; float:none; border-style:none; }
-p.whs13 { color:#808080; font-size:12pt; margin-left:40px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs7 {margin-left:1pt; }";
-  strNSS += "p.whs8 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Basic Geometric Objects\nPoint");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image27.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span></b>Point</h1>
-
-<p>To create a <span style="font-weight: bold;"><B>Point</B></span> in the <span 
- style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>New 
- Entity - &gt; Basic - &gt; Point</B></span></p>
-
-<p>&nbsp;</p>
-
-<p>There are three algorithms to <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">create 
- a </font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Point</B></font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> in the 3D space.</font></span></p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">Each 
- time the</span> Result <span style="font-weight: normal;">of the operation 
- will be a</span></b> GEOM_Object (vertex).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">Firstly, 
- we can define a point by setting its X, Y and Z </span><span style="font-weight: bold;"><B>C</B></span></b><b><span 
- style="font-weight: bold;"><B>oordinates</B></span><span style="font-weight: normal;">.</span> 
- </b></p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command :</b> 
- &nbsp;&nbsp;<span style="font-style: italic;"><I>g</I></span>eompy.MakeVertex(X, 
- Y, Z) </p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: </b>Name 
- <b><span style="font-weight: normal;">(Vertex_n by default) </span></b>+ 
- X, Y and Z coordinates of the point.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/point1.png" x-maintain-ratio="TRUE" width="312px" height="332px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Secondly, &nbsp;we 
- can define a point by a <span style="font-weight: bold;"><B>Reference</B></span> 
- to another point and the shift of the coordinates of the new point regarding 
- the coordinates of the old one. </p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command :</b> 
- &nbsp;&nbsp;<span style="font-style: italic;"><I>geompy.MakeVertexWithRef(Reference, 
- X, Y, Z).</I></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: </b>Name 
- + 1 reference point + 3 coordinates defining the position of this point 
- regarding the reference one.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><span style="font-style: italic;"><I><img src="pics/neo-point2.png" x-maintain-ratio="TRUE" width="312px" height="473px" border="0" class="img_whs5"></I></span></p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs7">Finally, we can define a 
- point by an <span style="font-weight: bold;"><B>Edge</B></span> and a <span style="font-weight: bold;"><B>Parameter</B></span> 
- &nbsp;indicating 
- its position on the Edge. For example, 0.5 means that the point is located 
- in the middle of the edge.<span style="font-style: italic;"> <I></I></span></p>
-
-<p class="whs8"><span style="font-style: italic;"><I><b style="font-weight: bold; font-style: normal;">TUI 
- Command :</b> &nbsp;&nbsp;geompy.MakeVertexOnCurve(Edge, 
- Parameter).</I></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: N</b>ame 
- + 1 edge &nbsp;+ 
- 1 Parameter defining the position of the point on the given edge.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><span style="font-style: italic;"><I><b 
- style="font-weight: bold;"><img src="pics/point3.png" x-maintain-ratio="TRUE" width="312px" height="421px" border="0" class="img_whs9"></b></I></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs10"><span style="font-style: italic;"><I><span 
- style="font-size: 12pt; color: #000000;"><font size=3 color=black style="font-size:12.000000pt;"><b style="font-weight: bold;"><b 
- style="font-weight: bold;">E</b>xample:</b></font></span></I></span></p>
-
-<p class="whs11">&nbsp;</p>
-
-<p class="whs3"><span style="font-style: italic;"><I><b 
- style="font-weight: bold;"><img src="pics/points.png" x-maintain-ratio="TRUE" width="354px" height="326px" border="0" class="img_whs12"></b></I></span></p>
-
-<p class="whs13">&nbsp;</p>
-
-<p class="whs2">Our <span style="font-weight: bold;"><B>TUI Scripts</B></span> 
- provide you with useful examples of creation of <a href="basic_geometrical_objects.htm#bookmark" style="font-style: normal;">Basic 
- Geometric Objects</a>. </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/primitives.htm b/doc/salome/gui/GEOM/primitives.htm
deleted file mode 100755 (executable)
index 3c1d4eb..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Primitives</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nCreating Geometric Objects\nPrimitives");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Primitives</h1>
-
-<h3><a name=bookmark>Creation of a Box</a></h3>
-
-<p>i<span style="font-family: 'Lucida Console', monospace;">mport geompy</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p0 = geompy.MakeVertex(15, 
- 25, 35)</p>
-
-<p class="whs1">p70 = geompy.MakeVertex(70, 
- 70, 70)</p>
-
-<p>&nbsp;</p>
-
-<p># create boxes</p>
-
-<p class="whs1">box1 = geompy.MakeBoxDXDYDZ(10, 
- 20, 30)</p>
-
-<p class="whs1">box2 = geompy.MakeBox(10,20,30, 
- 15,25,35)</p>
-
-<p class="whs1">box3 = geompy.MakeBoxTwoPnt(p0, 
- p70)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_box1 = geompy.addToStudy(box1,&quot;Box1&quot;)</p>
-
-<p class="whs1">id_box2 = geompy.addToStudy(box2,&quot;Box2&quot;)</p>
-
-<p class="whs1">id_box3 = geompy.addToStudy(box3,&quot;Box3&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the boxes</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box2)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box2,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box3)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_box3,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark1>Creation of a Cylinder</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(25, 
- 35, 45)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(70, 
- 70, 70)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create cylinders</p>
-
-<p class="whs1">height = 40</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">radius1 = 15</p>
-
-<p class="whs1">cylinder1 = geompy.MakeCylinder(p1, 
- v, radius1, height)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">radius2 = 30</p>
-
-<p class="whs1">cylinder2 = geompy.MakeCylinderRH(radius2, 
- height)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_cylinder1 = geompy.addToStudy(cylinder1,&quot;Cylinder1&quot;)</p>
-
-<p class="whs1">id_cylinder2 = geompy.addToStudy(cylinder2,&quot;Cylinder2&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the cylinders</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cylinder1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_cylinder1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cylinder2)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_cylinder2,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark2>Creation of a Sphere</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex</p>
-
-<p class="whs1">p = geompy.MakeVertex(55, 
- 45, 25)</p>
-
-<p>&nbsp;</p>
-
-<p># create spheres</p>
-
-<p class="whs1">radius1 = 20</p>
-
-<p class="whs1">sphere1 = geompy.MakeSpherePntR(p, 
- radius1)</p>
-
-<p class="whs1">radius2 = 15</p>
-
-<p class="whs1">sphere2 = geompy.MakeSphere(0, 
- 0, 45, radius2)</p>
-
-<p class="whs1">radius3 = 30</p>
-
-<p class="whs1">sphere3 = geompy.MakeSphereR(radius3)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_sphere1 = geompy.addToStudy(sphere1,&quot;Sphere1&quot;)</p>
-
-<p class="whs1">id_sphere2 = geompy.addToStudy(sphere2,&quot;Sphere2&quot;)</p>
-
-<p class="whs1">id_sphere3 = geompy.addToStudy(sphere3,&quot;Sphere3&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display spheres</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_sphere1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_sphere1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_sphere2)</p>
-
-<p class="whs1">gg.setDisplayMode(id_sphere2,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_sphere3)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_sphere3,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark3>Creation of a Torus</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(35, 
- 40, 45)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(35, 
- 45, 70)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create toruses</p>
-
-<p class="whs1">torus1 = geompy.MakeTorus(p1, 
- v, 20, 10)</p>
-
-<p class="whs1">torus2 = geompy.MakeTorusRR(30, 
- 15)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_torus1 = geompy.addToStudy(torus1,&quot;Torus1&quot;)</p>
-
-<p class="whs1">id_torus2 = geompy.addToStudy(torus2,&quot;Torus2&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display toruses</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_torus1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_torus1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_torus2)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_torus2,1)</span> 
- </p>
-
-<h3><a name=bookmark4>Creation of a Cone</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(35, 
- 35, 0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(35, 
- 35, 70)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create cones</p>
-
-<p class="whs1">cone1 = geompy.MakeCone(p1, 
- v, 17, 1, 20)</p>
-
-<p class="whs1">cone2 = geompy.MakeConeR1R2H(30, 
- 10, 30)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_cone1 = geompy.addToStudy(cone1,&quot;Cone1&quot;)</p>
-
-<p class="whs1">id_cone2 = geompy.addToStudy(cone2,&quot;Cone2&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display cones</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cone1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_cone1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cone2)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_cone2,1)</span> 
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/propagate.htm b/doc/salome/gui/GEOM/propagate.htm
deleted file mode 100755 (executable)
index fc07f3b..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Propagate</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:23px; height:21px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { margin-left:40px; font-size:12pt; }
-img_whs4 { border:none; width:312px; height:230px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; margin-left:40px; text-indent:-40px; }
-p.whs6 { font-size:12pt; margin-left:40px; text-indent:-40px; font-weight:bold; }
-p.whs7 { font-size:12pt; text-indent:-40px; font-weight:bold; margin-left:80px; }
-img_whs8 { border:none; width:250px; height:236px; border-style:none; }
-img_whs9 { border:none; width:250px; height:233px; border-style:none; }
-p.whs10 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs5 {text-indent:1pt; }";
-  strNSS += "p.whs6 {text-indent:1pt; }";
-  strNSS += "p.whs7 {text-indent:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nBlocks Operations\nPropagate");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><img src="image3.gif" width="23px" height="21px" border="0" class="img_whs1"> Propagate</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Propagate</B></span> operation in the Main 
- Menu select <span style="font-weight: bold;"><B>Operations - &gt; Blocks 
- - &gt;</B></span> <span style="font-weight: bold;"><B>Propagate</B></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">This operation breaks a multitude of edges 
- of a shape into groups (builds all possible propagation groups).</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b> List of 
- GEOM_Objects. Each Geom Object will contain a group of edges.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.Propagate(Shape)</I></span>, 
- where Shape is a shape to build propagation groups on.</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: <span 
- style="font-weight: normal;">1 Shape.</span></b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/mtransf4.png" x-maintain-ratio="TRUE" width="312px" height="230px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs6">Example:</p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs7"><img src="image15.jpg" width="250px" height="236px" border="0" class="img_whs8"> &nbsp;&nbsp;<img src="image16.jpg" width="250px" height="233px" border="0" class="img_whs9"> &nbsp;&nbsp;</p>
-
-<p class="whs7">&nbsp;</p>
-
-<p class="whs10">&nbsp;&nbsp;&nbsp;<span 
- style="font-weight: normal;">Our</span> TUI 
- Scripts<span style="font-weight: normal;"> provide you with useful examples 
- of the use of</span> <a href="blocks_operations.htm#bookmark6">Blocks 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/repairing_operations.htm b/doc/salome/gui/GEOM/repairing_operations.htm
deleted file mode 100755 (executable)
index 60a5c82..0000000
+++ /dev/null
@@ -1,1058 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Repairing Operations</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
-p.whs2 { font-family:'Times New Roman' , serif; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nTransformation\nRepairing Operations");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Repairing Operations</h1>
-
-<h3><a name=bookmark>Shape Processing</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices, an edge, an arc, a wire, a face and a prism</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(0,0,0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(200,0,0)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex(100,150,0)</p>
-
-<p class="whs1">edge = geompy.MakeEdge(p1,p2)</p>
-
-<p class="whs1">arc &nbsp;= 
- geompy.MakeArc(p1,p3,p2)</p>
-
-<p class="whs1">wire = geompy.MakeWire([edge,arc])</p>
-
-<p class="whs1">face = geompy.MakeFace(wire, 
- 1)</p>
-
-<p class="whs1">theShape = geompy.MakePrismVecH(face, 
- edge, 130)</p>
-
-<p>&nbsp;</p>
-
-<p># check the shape at the beginning</p>
-
-<p class="whs1">print &quot;Before 
- ProcessShape:&quot;</p>
-
-<p class="whs1">isValid = geompy.CheckShape(theShape)</p>
-
-<p class="whs1">if isValid == 0:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;The shape is not valid&quot;</p>
-
-<p class="whs1">else:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;The shape seems to be valid&quot;</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p># process the Shape</p>
-
-<p class="whs1">Operators = [&quot;FixShape&quot;]</p>
-
-<p class="whs1">Parameters = [&quot;FixShape.Tolerance3d&quot;]</p>
-
-<p class="whs1">Values = [&quot;1e-7&quot;]</p>
-
-<p class="whs1">PS = geompy.ProcessShape(theShape, 
- Operators, Parameters, Values)</p>
-
-<p>&nbsp;</p>
-
-<p># check the shape at the end</p>
-
-<p class="whs1">print &quot;After 
- ProcessShape:&quot;</p>
-
-<p class="whs1">isValid = geompy.CheckShape(PS)</p>
-
-<p class="whs1">if isValid == 0:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;The shape is not valid&quot;</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
- RuntimeError, &quot;It seems, that the ProcessShape() has failed&quot;</p>
-
-<p class="whs1">else:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;The shape seems to be valid&quot;</p>
-
-<p>&nbsp;</p>
-
-<p># add in the study and display</p>
-
-<p class="whs1">Id_Shape = geompy.addToStudy(theShape, 
- &quot;Invalid Shape&quot;)</p>
-
-<p class="whs1">Id_PS &nbsp;&nbsp;&nbsp;= 
- geompy.addToStudy(PS, &quot;Processed Shape&quot;)</p>
-
-<p class="whs1">gg.createAndDisplayGO(Id_Shape)</p>
-
-<p class="whs1">gg.setDisplayMode(Id_Shape,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(Id_PS)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(Id_PS,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark1>Suppress Faces</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(200, 
- 200, 200)</p>
-
-<p>&nbsp;</p>
-
-<p># The list of IDs (IDList) for suppress faces</p>
-
-<p class="whs1">sup_faces = []</p>
-
-<p class="whs1">sup_faces = geompy.SubShapeAllSorted(box, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p>&nbsp;</p>
-
-<p># get indices of the sub-shape </p>
-
-<p class="whs1">f1_id = geompy.GetSubShapeID(box, 
- sup_faces[3])</p>
-
-<p>&nbsp;</p>
-
-<p># remove faces from the given object (shape)</p>
-
-<p class="whs1">result = geompy.SuppressFaces(box, 
- [f1_id])</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_box = geompy.addToStudy(box, 
- &quot;Box&quot;)</p>
-
-<p class="whs1">id_result = geompy.addToStudy(result, 
- &quot;Result&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_result)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_result,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark2>Close Contour</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices and vectors</p>
-
-<p class="whs1">p0 &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">px &nbsp;= 
- geompy.MakeVertex(100., &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">py &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- 100., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">py1 = geompy.MakeVertex( 
- &nbsp;0., 140., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">pz &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- 100.)</p>
-
-<p class="whs1">vxy = geompy.MakeVector(px, 
- py)</p>
-
-<p>&nbsp;&nbsp;</p>
-
-<p># create an arc</p>
-
-<p class="whs1">arc = geompy.MakeArc(py1, 
- pz, px)</p>
-
-<p>&nbsp;</p>
-
-<p># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vxy, 
- arc])</p>
-
-<p>&nbsp;</p>
-
-<p># close an open wire by creation of an edge between ends</p>
-
-<p class="whs1">wire_close = geompy.CloseContour(wire, 
- [1], 0)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_wire = geompy.addToStudy(wire, 
- &quot;Wire&quot;)</p>
-
-<p class="whs1">id_wire_close = geompy.addToStudy(wire_close, 
- &quot;Wire close&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_wire)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_wire_close)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark3>Suppress Internal Wires</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(55, 
- 65, 50)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(55, 
- &nbsp;0, 50)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cylinder</p>
-
-<p class="whs1">height = 100</p>
-
-<p class="whs1">radius1 = 40</p>
-
-<p class="whs1">cylinder = geompy.MakeCylinder(p1, 
- v, radius1, height)</p>
-
-<p>&nbsp;</p>
-
-<p># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(100, 
- 100, 100)</p>
-
-<p>&nbsp;</p>
-
-<p># make a cut</p>
-
-<p class="whs1">cut = geompy.MakeCut(box, 
- cylinder)</p>
-
-<p>&nbsp;</p>
-
-<p># suppress all internal wires</p>
-
-<p class="whs1">result = geompy.SuppressInternalWires(cut, 
- [])</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_cut = geompy.addToStudy(cut, 
- &quot;Cut&quot;)</p>
-
-<p class="whs1">id_result = geompy.addToStudy(result, 
- &quot;Result&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cut)</p>
-
-<p class="whs1">gg.setDisplayMode(id_cut,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_result)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_result,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark4>Suppress Holes</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(35, 
- 35, 0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(35, 
- 35, 50)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cylinder</p>
-
-<p class="whs1">height = 20</p>
-
-<p class="whs1">radius1 = 20</p>
-
-<p class="whs1">cylinder = geompy.MakeCylinder(p1, 
- v, radius1, height)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cone</p>
-
-<p class="whs1">cone = geompy.MakeCone(p1, 
- v, 70, 0, 80)</p>
-
-<p>&nbsp;</p>
-
-<p># make a cut</p>
-
-<p class="whs1">cut = geompy.MakeCut(cone, 
- cylinder)</p>
-
-<p>&nbsp;</p>
-
-<p># get faces as sub-shapes</p>
-
-<p class="whs1">faces = []</p>
-
-<p class="whs1">faces = geompy.SubShapeAllSorted(cut, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">f_2 = geompy.GetSubShapeID(cut, 
- faces[2])</p>
-
-<p>&nbsp;</p>
-
-<p># remove one face from the shape</p>
-
-<p class="whs1">cut_without_f_2 = 
- geompy.SuppressFaces(cut, [f_2])</p>
-
-<p>&nbsp;</p>
-
-<p># get wires as sub-shapes</p>
-
-<p class="whs1">wires = []</p>
-
-<p class="whs1">wires = geompy.SubShapeAllSorted(cut_without_f_2, 
- geompy.ShapeType[&quot;WIRE&quot;])</p>
-
-<p class="whs1">w_0 = geompy.GetSubShapeID(cut_without_f_2, 
- wires[0])</p>
-
-<p>&nbsp;</p>
-
-<p># suppress the selected wire</p>
-
-<p class="whs1">result = geompy.SuppressHoles(cut_without_f_2, 
- [w_0])</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_cut = geompy.addToStudy(cut, 
- &quot;Cut&quot;)</p>
-
-<p class="whs1">id_cut_without_f_2 
- = geompy.addToStudy(cut_without_f_2, &quot;Cut without f_2&quot;)</p>
-
-<p class="whs1">id_result = geompy.addToStudy(result, 
- &quot;Result&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cut)</p>
-
-<p class="whs1">gg.setDisplayMode(id_cut,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cut_without_f_2)</p>
-
-<p class="whs1">gg.setDisplayMode(id_cut_without_f_2,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_result)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_result,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark5>Sewing</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import math</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create base points</p>
-
-<p class="whs1">px = geompy.MakeVertex(100., 
- 0., 0.)</p>
-
-<p class="whs1">py = geompy.MakeVertex(0., 
- 100., 0.)</p>
-
-<p class="whs1">pz = geompy.MakeVertex(0., 
- 0., 100.)</p>
-
-<p>&nbsp;</p>
-
-<p># create base geometry 2D &amp; 3D</p>
-
-<p class="whs1">vector = geompy.MakeVector(px, 
- py)</p>
-
-<p class="whs1">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p>&nbsp;</p>
-
-<p># create base objects</p>
-
-<p class="whs1">angle = 45. * math.pi 
- / 180</p>
-
-<p class="whs1">WantPlanarFace = 1 
- #True</p>
-
-<p class="whs1">wire = geompy.MakeWire([vector, 
- arc])</p>
-
-<p class="whs1">face = geompy.MakeFace(wire, 
- WantPlanarFace)</p>
-
-<p class="whs1">face_rot = geompy.MakeRotation(face, 
- vector, angle)</p>
-
-<p>&nbsp;</p>
-
-<p># make sewing</p>
-
-<p class="whs1">precision = 0.00001</p>
-
-<p class="whs1">sewing = geompy.MakeSewing([face, 
- face_rot], precision)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_face = geompy.addToStudy(face, 
- &quot;Face&quot;)</p>
-
-<p class="whs1">id_face_rot = geompy.addToStudy(face_rot, 
- &quot;Face rotation&quot;)</p>
-
-<p class="whs1">id_sewing = geompy.addToStudy(sewing, 
- &quot;Sewing&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_face)</p>
-
-<p class="whs1">gg.setDisplayMode(id_face,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_face_rot)</p>
-
-<p class="whs1">gg.setDisplayMode(id_face_rot,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_sewing)</p>
-
-<p class="whs1">gg.setDisplayMode(id_sewing,1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark6>Glue Faces</a></h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create boxes</p>
-
-<p class="whs1">box1 = geompy.MakeBox(0,0,0,100,50,100)</p>
-
-<p class="whs1">box2 = <span style="font-family: 'Lucida Console', monospace;">geompy.MakeBox(100,0,0,250,50,100)</span></p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># make compound</p>
-
-<p class="whs1">compound = geompy.MakeCompound([box1, 
- box2])</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># glue compound's faces</p>
-
-<p class="whs1">tolerance = 1e-5</p>
-
-<p class="whs1">glue = geompy.MakeGlueFaces(compound, 
- tolerance)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add objects in study</p>
-
-<p class="whs1">id_box1 = geompy.addToStudy(box1, 
- &quot;Box1&quot;)</p>
-
-<p class="whs1">id_box2 = geompy.addToStudy(box2, 
- &quot;Box2&quot;)</p>
-
-<p class="whs1">id_compound = geompy.addToStudy(compound, 
- &quot;Compound&quot;)</p>
-
-<p class="whs1">id_glue = geompy.addToStudy(glue, 
- &quot;Glue faces&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># display results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box2)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box2,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_compound)</p>
-
-<p class="whs1">gg.setDisplayMode(id_compound,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_glue)</p>
-
-<p class="whs1">gg.setDisplayMode(id_glue,1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark7>Add Point on Edge</a></h3>
-
-<p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import 
- geompy</span></p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create vertices</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(0,0,50)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(60,0,50)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># make an edge</p>
-
-<p class="whs1">edge = geompy.MakeEdge(p1, 
- p2) #geompy.GetSubShape(box, edge_ind)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># divide an edge</p>
-
-<p class="whs1">divide = geompy.DivideEdge(edge, 
- -1, 0.5, 0)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add objects in the 
- study</p>
-
-<p class="whs1">id_edge = geompy.addToStudy(edge, 
- &quot;Edge&quot;)</p>
-
-<p class="whs1">edge_points = geompy.SubShapeAllSorted(edge, 
- geompy.ShapeType[&quot;VERTEX&quot;])</p>
-
-<p class="whs1">for point in edge_points:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudyInFather(edge, 
- point, &quot;Edge's point&quot;)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>
-
-<p class="whs1">id_divide = geompy.addToStudy(divide, 
- &quot;Divided edge&quot;)</p>
-
-<p class="whs1">edge_points = geompy.SubShapeAllSorted(divide, 
- geompy.ShapeType[&quot;VERTEX&quot;])</p>
-
-<p class="whs1">for point in edge_points:</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudyInFather(divide, 
- point, &quot;Edge's point after divide&quot;)</p>
-
-<p class="whs1">&nbsp;&nbsp;</p>
-
-<p class="whs1">salome.sg.updateObjBrowser(1) 
- </p>
-
-<p class="whs2">&nbsp;</p>
-
-<h3><a name=bookmark8>Check Free Boundaries</a></h3>
-
-<p class="whs1">import os</p>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># create boxes</p>
-
-<p class="whs1">box1 = geompy.MakeBox(0,0,0,100,50,100)</p>
-
-<p class="whs1">box2 = geompy.MakeBox(100,0,0,250,50,100)</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># make a compound</p>
-
-<p class="whs1">compound = geompy.MakeCompound([box1, 
- box2])</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># import from *.brep</p>
-
-<p class="whs1">ImportBREP = geompy.ImportBREP(&quot;<span 
- style="font-family: 'Lucida Console', monospace;">os.getenv(&quot;DATA_DIR&quot;)+&quot;/Shapes/Brep/flight_solid.brep&quot;)</span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># get a face</p>
-
-<p class="whs1">faces = geompy.SubShapeAllSorted(ImportBREP, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># get the free boundary 
- for face 32</p>
-
-<p class="whs1">Res = geompy.GetFreeBoundary(faces[32])</p>
-
-<p class="whs1">isSuccess &nbsp;&nbsp;= 
- Res[0]</p>
-
-<p class="whs1">ClosedWires = Res[1]</p>
-
-<p class="whs1">OpenWires &nbsp;&nbsp;= 
- Res[2]</p>
-
-<p class="whs2">&nbsp;&nbsp;</p>
-
-<p class="whs2">i<span style="font-family: 'Lucida Console', monospace;">f 
- isSuccess == 1 :</span></p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Checking free boudaries is OK.&quot;</p>
-
-<p class="whs1">else :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Checking free boudaries is KO!&quot;</p>
-
-<p class="whs1">print &quot;len(ClosedWires) 
- = &quot;, len(ClosedWires)</p>
-
-<p class="whs1">i = 0</p>
-
-<p class="whs1">for wire in ClosedWires 
- :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;wire_name 
- = &quot;Face 32 -&gt; Close wires : WIRE %d&quot;%(i+1)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudy(ClosedWires[i], 
- wire_name)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;if 
- i &lt; len(ClosedWires) :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i 
- = i+ 1</p>
-
-<p class="whs1">print &quot;len(OpenWires) 
- = &quot;, len(OpenWires)</p>
-
-<p class="whs1">i = 0</p>
-
-<p class="whs1">for wire in OpenWires 
- :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;wire_name 
- = &quot;Face 32 -&gt; Open wires : WIRE %d&quot;%(i+1)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudy(OpenWires[i], 
- wire_name)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;if 
- i &lt; len(OpenWires) :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i 
- = i+ 1</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"># get the free boundary 
- for face 41</p>
-
-<p class="whs1">Res = geompy.GetFreeBoundary(faces[41])</p>
-
-<p class="whs1">isSuccess &nbsp;&nbsp;= 
- Res[0]</p>
-
-<p class="whs1">ClosedWires = Res[1]</p>
-
-<p class="whs1">OpenWires &nbsp;&nbsp;= 
- Res[2]</p>
-
-<p class="whs1">&nbsp;&nbsp;</p>
-
-<p class="whs1">if isSuccess == 1 
- :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Checking free boudaries is OK.&quot;</p>
-
-<p class="whs1">else :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print 
- &quot;Checking free boudaries is KO!&quot;</p>
-
-<p class="whs1">print &quot;len(ClosedWires) 
- = &quot;, len(ClosedWires)</p>
-
-<p class="whs1">i = 0</p>
-
-<p class="whs1">for wire in ClosedWires 
- :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;wire_name 
- = &quot;Face 41 -&gt; Close wires : WIRE %d&quot;%(i+1)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudy(ClosedWires[i], 
- wire_name)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;if 
- i &lt; len(ClosedWires) :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i 
- = i+ 1</p>
-
-<p class="whs1">print &quot;len(OpenWires) 
- = &quot;, len(OpenWires)</p>
-
-<p class="whs1">i = 0</p>
-
-<p class="whs1">for wire in OpenWires 
- :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;wire_name 
- = &quot;Face 41 -&gt; Open wires : WIRE %d&quot;%(i+1)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudy(OpenWires[i], 
- wire_name)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;if 
- i &lt; len(OpenWires) :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i 
- = i+ 1</p>
-
-<p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
-
-<p class="whs2"># add the imported object 
- to the study</p>
-
-<p class="whs1">id_ImportBREP = geompy.addToStudy(ImportBREP, 
- &quot;ImportBREP&quot;)</p>
-
-<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
- </p>
-
-<p class="whs2">&nbsp;</p>
-
-<h3><a name=bookmark9>Check Free Faces</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(35, 
- 35, 0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(35, 
- 35, 50)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cylinder</p>
-
-<p class="whs1">cylinder = geompy.MakeCone(p1, 
- v, 30, 20, 20)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cone</p>
-
-<p class="whs1">cone = geompy.MakeCone(p1, 
- v, 70, 40, 60)</p>
-
-<p>&nbsp;</p>
-
-<p># make cut</p>
-
-<p class="whs1">cut = geompy.MakeCut(cone, 
- cylinder)</p>
-
-<p>&nbsp;</p>
-
-<p># get faces as sub-shapes</p>
-
-<p class="whs1">faces = []</p>
-
-<p class="whs1">faces = geompy.SubShapeAllSorted(cut, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">f_2 = geompy.GetSubShapeID(cut, 
- faces[0])</p>
-
-<p>&nbsp;</p>
-
-<p># remove one face from the shape</p>
-
-<p class="whs1">cut_without_f_2 = 
- geompy.SuppressFaces(cut, [f_2])</p>
-
-<p>&nbsp;</p>
-
-<p># suppress the specified wire</p>
-
-<p class="whs1">result = geompy.GetFreeFacesIDs(cut_without_f_2)</p>
-
-<p class="whs1">print &quot;A number 
- of free faces is &quot;, len(result)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">all_faces = geompy.SubShapeAllSorted(cut_without_f_2, 
- geompy.ShapeType[&quot;FACE&quot;])</p>
-
-<p class="whs1">for face in all_faces 
- :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;sub_shape_id 
- = geompy.GetSubShapeID(cut_without_f_2, face)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;if 
- result.count(sub_shape_id) &gt; 0 :</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;face_name 
- = &quot;Free face %d&quot;%(sub_shape_id)</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudy(face, 
- face_name)</p>
-
-<p>&nbsp;</p>
-
-<p># in this example all faces from cut_without_f_2 are free</p>
-
-<p class="whs1">id_cut_without_f_2 
- = geompy.addToStudy(cut_without_f_2, &quot;Cut without f_2&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cut_without_f_2)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_cut_without_f_2,1)</span> 
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/revolution.htm b/doc/salome/gui/GEOM/revolution.htm
deleted file mode 100755 (executable)
index 316aed9..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Revolution</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:350px; float:none; border-style:none; }
-img_whs5 { border:none; width:268px; height:275px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Complex Objects\nRevolution");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image57.gif" width="20px" height="20px" border="0" class="img_whs1"></font></span>Revolution</h1>
-
-<p><b><span style="font-weight: normal;">T</span></b><b><span style="font-weight: normal;">o</span> 
- <span style="font-weight: normal; font-size: 12pt;"><font size=3 style="font-size:12pt;">create an extruded 
- shape by</font></span><span style="font-size: 12pt;"> <font size=3 style="font-size:12pt;"></font></span><span style="font-size: 12pt; font-weight: bold;"><font size=3 style="font-size:12pt;"><B>Revolution</B></font></span><span 
- style="font-weight: normal;"> in the </span><span style="font-weight: bold;"><B>Main 
- Menu</B></span><span style="font-weight: normal;"> select </span><span style="font-weight: bold;"><B>New 
- Entity - &gt; Generation &nbsp;- 
- &gt; Revolution</B></span></b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">To create an extruded shape by <span style="font-weight: bold;"><B>Revolution</B></span> 
- you need to define the source <span style="font-weight: bold;"><B>Object</B></span> 
- to rotate, the <span style="font-weight: bold;"><B>Axis</B></span> of revolution 
- and the <span style="font-weight: bold;"><B>Angle</B></span> by which the Shape 
- has to be rotated around the <span style="font-weight: bold;"><B>Axis</B></span> 
- (in degrees).</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><span 
- style="font-weight: normal;">The</span> Result <span style="font-weight: normal;">of 
- the operation will be a</span></b> GEOM_Object (edge, face, solid or compsolid).</font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeRevolution(Shape, Axis, 
- Angle)</I></span>.</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 shape (vertex, edge, wire, face or shell) serving as base object 
- + 1 vector (for direction) + 1 value (angle).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/revolution.png" x-maintain-ratio="TRUE" width="312px" height="350px" border="0" class="img_whs4"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/revolutionsn.png" x-maintain-ratio="TRUE" width="268px" height="275px" border="0" class="img_whs5"> &nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Our <span style="font-weight: bold;"><B>TUI Scripts</B></span> 
- provide you with useful examples of creation of <a href="complex_objects.htm#bookmark1">Complex 
- Geometric Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/rotation.htm b/doc/salome/gui/GEOM/rotation.htm
deleted file mode 100755 (executable)
index 5487b9d..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Rotation</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:400px; height:388px; float:none; border-style:none; }
-p.whs5 { font-weight:bold; font-size:12pt; }
-p.whs6 { font-size:12pt; margin-left:0px; }
-img_whs7 { border:none; width:400px; height:432px; float:none; border-style:none; }
-p.whs8 { margin-left:40px; }
-img_whs9 { border:none; width:247px; height:292px; float:none; border-style:none; }
-img_whs10 { border:none; width:257px; height:291px; float:none; border-style:none; }
-p.whs11 { list-style:disc; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs6 {margin-left:1pt; }";
-  strNSS += "p.whs11 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nTransformation Operations\nRotation");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image129.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Rotation</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Rotation</B></span> in the Main Menu select 
- <span style="font-weight: bold;"><B>Operations - &gt; Transformation - &gt; 
- Rotation</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">This operation <span style="font-weight: bold;"><B>rotates</B></span> 
- the initial shape. </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The 
- first</span> </b><span style="font-weight: bold;"><B>Rotation</B></span> algorithm 
- needs you to define an <span style="font-weight: bold;"><B>Object</B></span> 
- &nbsp;to be rotated, 
- an <span style="font-weight: bold;"><B>Axis</B></span> of rotation and an <span 
- style="font-weight: bold;"><B>Angle</B></span> of rotation.</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeRotation(Shape, Axis, 
- Angle)</I></span> </p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- 1 shape + 1 vector for direction of rotation + 1 angle.</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><img src="pics/transformation4.png" x-maintain-ratio="TRUE" width="400px" height="388px" border="0" class="img_whs4"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs5"><span style="font-weight: bold; font-size: 12pt;"><font size=3 style="font-size:12pt;"><B>Reverse 
- <span style="font-weight: normal;">checkbox allows to specify the direction 
- of rotation.</span></B></font></span></p>
-
-<p class="whs2"><span style="font-weight: bold;"><B>Create a copy 
- </B></span>checkbox allows to keep the initial object, otherwise it will be 
- removed.</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be any</span> </b>GEOM_Object.</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs6">The second algorithm allows 
- to define the rotated <span style="font-weight: bold;"><B>Object</B></span> by 
- three points. Rotation axis will pass through the <span style="font-weight: bold;"><B>Central 
- Point</B></span> and will be will be orthogonal to a plane defned by three 
- points. In this case rotation <span style="font-weight: bold;"><B>Angle</B></span> 
- is the angle between two vectors directed from the first point to the 
- second and to the third.</p>
-
-<p class="whs6"><span style="font-weight: bold;"><B>TUI 
- Command:</B></span> <span style="font-style: italic;"><I>geompy.MakeRotationThreePoints(Shape, 
- CentralPoint, Point1, Point2).</I></span></p>
-
-<p class="whs6"><span style="font-weight: bold;"><B>Arguments:</B></span> 
- 1 shape + 3 points. </p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs3"><img src="pics/transformation4a.png" x-maintain-ratio="TRUE" width="400px" height="432px" border="0" class="img_whs7"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs8"><img src="pics/rotationsn1.png" x-maintain-ratio="TRUE" width="247px" height="292px" border="0" class="img_whs9"> &nbsp;<img src="pics/rotationsn2.png" x-maintain-ratio="TRUE" width="257px" height="291px" border="0" class="img_whs10"></p>
-
-<p class="whs11">&nbsp;&nbsp;</p>
-
-<p class="whs11"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our </font></span><span 
- style="font-weight: bold;"><B>TUI Scripts</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of <a href="transformation_operations.htm#bookmark1">Transformation 
- Operations</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image13.gif b/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image13.gif
deleted file mode 100755 (executable)
index 0ec8b67..0000000
Binary files a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image13.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image14.gif b/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image14.gif
deleted file mode 100755 (executable)
index aff608b..0000000
Binary files a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image14.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image15.gif b/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image15.gif
deleted file mode 100755 (executable)
index 1a0f0f9..0000000
Binary files a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image15.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image16.gif b/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image16.gif
deleted file mode 100755 (executable)
index b364ba7..0000000
Binary files a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image16.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image17.gif b/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image17.gif
deleted file mode 100755 (executable)
index 587e81b..0000000
Binary files a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image17.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image18.gif b/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image18.gif
deleted file mode 100755 (executable)
index bda961e..0000000
Binary files a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image18.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image19.gif b/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image19.gif
deleted file mode 100755 (executable)
index dd4046c..0000000
Binary files a/doc/salome/gui/GEOM/salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image19.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/scale_transform.htm b/doc/salome/gui/GEOM/scale_transform.htm
deleted file mode 100755 (executable)
index 0c1c633..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Scale Transform</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:350px; float:none; border-style:none; }
-p.whs5 { margin-left:40px; font-size:12pt; }
-img_whs6 { border:none; width:206px; height:233px; float:none; border-style:none; }
-img_whs7 { border:none; float:none; width:216px; height:234px; border-style:none; }
-p.whs8 { list-style:disc; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs8 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nTransformation Operations\nScale Transform");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image131.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</font></span>Scale 
- Transform</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Scale Transform</B></span> in the Main 
- Menu select <span style="font-weight: bold;"><B>Operations - &gt; Transformation 
- - &gt; Scale Transform</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">This operation creates a scaled shape basing 
- on the initial shape. For this, you need to define the <span style="font-weight: bold;"><B>Shape</B></span> 
- to be scaled, the <span style="font-weight: bold;"><B>Central Point</B></span> 
- of scale and the Scale Factor.</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b> GEOM_Object.</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeScaleTransform(Shape, 
- CenterOfScale, Factor)</I></span>, </p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 shape(s) + 1 vertex + 1 Scale Factor.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/transformation10.png" x-maintain-ratio="TRUE" width="312px" height="350px" border="0" class="img_whs4"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5"><img src="pics/scale_transformsn1.png" x-maintain-ratio="TRUE" width="206px" height="233px" border="0" class="img_whs6"> &nbsp;<img src="pics/scale_transformsn2.png" x-maintain-ratio="TRUE" width="216px" height="234px" border="0" class="img_whs7"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs8">&nbsp;&nbsp;<span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our </font></span><span 
- style="font-weight: bold;"><B>TUI Scripts</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of <a href="transformation_operations.htm#bookmark6">Transformation 
- Operations</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/section.htm b/doc/salome/gui/GEOM/section.htm
deleted file mode 100755 (executable)
index fd55db0..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Section</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
-p.whs4 { font-size:12pt; margin-right:0in; margin-top:0px; margin-bottom:0px; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:324px; float:none; border-style:none; }
-img_whs6 { border:none; width:253px; height:266px; float:none; border-style:none; }
-img_whs7 { border:none; width:215px; height:265px; float:none; border-style:none; }
-p.whs8 { list-style:disc; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs3 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs4 {margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs8 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nBoolean Operations\nSection");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image4.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Section</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Section</B></span> operation in the Main 
- Menu select <span style="font-weight: bold;"><B>Operations - &gt; Boolean 
- - &gt; Section</B></span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><b style="font-weight: bold;"><span style="font-weight: normal;">This 
- operation creates</span> </b>the section between 2 shapes. </p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span> </b>GEOM_Object 
- (COMPOUND).</p>
-
-<p class="whs3"><span style="font-weight: bold;"><B>TUI Command:</B></span> 
- &nbsp;<span style="font-style: italic;"><I>geompy.MakeSection(s1, 
- s2)</I></span> </p>
-
-<p class="whs3"><b style="font-weight: bold;">Arguments:</b> 
- Name + 2 shapes.</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><img src="pics/neo-section.png" x-maintain-ratio="TRUE" width="312px" height="324px" border="0" class="img_whs5"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><img src="pics/fusesn1.png" x-maintain-ratio="TRUE" width="253px" height="266px" border="0" class="img_whs6"> &nbsp;<img src="pics/sectionsn.png" x-maintain-ratio="TRUE" width="215px" height="265px" border="0" class="img_whs7"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs8">&nbsp;&nbsp;<span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our </font></span><span 
- style="font-weight: bold;"><B>TUI Scripts</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of <a href="boolean_operations.htm#bookmark3">Boolean 
- Operations</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/selectcolor.png b/doc/salome/gui/GEOM/selectcolor.png
deleted file mode 100755 (executable)
index 70800b2..0000000
Binary files a/doc/salome/gui/GEOM/selectcolor.png and /dev/null differ
diff --git a/doc/salome/gui/GEOM/sewing.htm b/doc/salome/gui/GEOM/sewing.htm
deleted file mode 100755 (executable)
index 6851c44..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Sewing</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-family:'Times New Roman' , serif; font-size:12pt; }
-p.whs4 { font-size:12pt; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:346px; float:none; border-style:none; }
-img_whs6 { border:none; width:343px; height:123px; float:none; border-style:none; }
-img_whs7 { border:none; width:150px; height:132px; border-style:none; }
-p.whs8 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nSewing");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><b style="font-weight: bold;"><img src="files/salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image119.gif" width="20px" height="20px" border="0" class="img_whs1"> </b></font></span>Sewing</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Sewing</B></span> operation in the Main 
- Menu select <span style="font-weight: bold;"><B>Repair - &gt; Sewing</B></span>.</p>
-
-<p>&nbsp;</p>
-
-<p class="whs3">This 
- operation allows to sew several &nbsp;shapes.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><b><span 
- style="font-weight: normal;">T</b>he</span> Result <span style="font-weight: normal;">will 
- be a</span></b><b> <span style="font-weight: bold;"><B>GEOM_Object. </B></span></b></font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command :</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeSewing(ListOfShape, Precision)</I></span>, 
- where ListOfShape is list of shapes to be sewed, Precision is a precision 
- for sewing.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/repair6.png" x-maintain-ratio="TRUE" width="312px" height="346px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 or more shapes + 1 value (sew precision).</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><span style="font-weight: bold;"><B>Detect 
- </B></span>button allows to display the number of free boundaries in your 
- shape:</font></span></p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs4"><img src="pics/neo-detect2.png" x-maintain-ratio="TRUE" width="343px" height="123px" border="0" class="img_whs6"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="image112.jpg" width="150px" height="132px" border="0" class="img_whs7"> &nbsp;<img src="image113.jpg" width="150px" height="132px" border="0" class="img_whs7"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs8"><span style="font-weight: normal;">Our</span> 
- TUI Scripts<span style="font-weight: normal;"> provide you with useful 
- examples of the use of</span> <a href="repairing_operations.htm#bookmark5">Repairing 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/shape_processing.htm b/doc/salome/gui/GEOM/shape_processing.htm
deleted file mode 100755 (executable)
index 9355a95..0000000
+++ /dev/null
@@ -1,388 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Shape Processing</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:25px; height:24px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:403px; height:469px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; font-weight:bold; }
-ul.whs6 { list-style:disc; }
-p.whs7 { font-size:12pt; margin-left:48px; }
-p.whs8 { font-size:12pt; margin-left:0px; }
-p.whs9 { font-size:12pt; margin-left:0px; font-weight:bold; }
-p.whs10 { font-size:12pt; font-weight:bold; margin-left:48px; }
-p.whs11 { font-size:12pt; margin-left:48px; font-weight:normal; }
-p.whs12 { font-size:12pt; margin-left:88px; font-weight:normal; }
-p.whs13 { font-size:12pt; margin-left:0px; font-weight:normal; }
-p.whs14 { font-size:12pt; margin-left:48px; font-weight:bold; }
-p.whs15 { font-size:12pt; font-weight:bold; margin-left:0px; }
-img_whs16 { border:none; width:300px; height:214px; border-style:none; }
-img_whs17 { border:none; width:244px; height:214px; border-style:none; }
-p.whs18 { font-family:'Times New Roman' , serif; font-size:14pt; }
-p.whs19 { font-family:'Times New Roman' , serif; font-size:12pt; }
-img_whs20 { border:none; width:239px; height:214px; border-style:none; }
-p.whs21 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs8 {margin-left:1pt; }";
-  strNSS += "p.whs9 {margin-left:1pt; }";
-  strNSS += "p.whs13 {margin-left:1pt; }";
-  strNSS += "p.whs15 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nShape Processing");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><img src="image41.gif" width="25px" height="24px" border="0" class="img_whs1"></font></span>Shape Processing</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Shape Processing</B></span> operation in 
- the Main Menu select <span style="font-weight: bold;"><B>Repair - &gt;</B></span> 
- <span style="font-weight: bold;"><B>Shape Processing.</B></span></p>
-
-<p class="whs2">This operation processes one or more shapes 
- using various operators.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b><b> <span 
- style="font-weight: bold;"><B>GEOM_Object</b>.</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.ProcessShape(Shape, Operators, 
- Parameters, Values)</I></span>, where Shape is a processed shape, Operators 
- is a list of operators (&quot;FixShape&quot;, &quot;SplitClosedFaces&quot;, 
- etc.), Parameters is a list of parameters (\93FixShape.Tolerance3d\94, etc), 
- Values is a list of values of parameters placed in the same order as in 
- the list of Parameters .</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">In this dialog box you can select the object 
- that you need to process, define its name and operators applied to it 
- during processing. </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/repair1.png" x-maintain-ratio="TRUE" width="403px" height="469px" border="0" class="img_whs4"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs5">Operators and Parameters<span 
- style="font-weight: normal;"> (TUI names are given in brackets)</span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<ul type="disc" class="whs6">
-       
-       <li class=kadov-p><p class="whs2"><span style="font-weight: bold;"><B>Fix 
- Shape</B></span> (FixShape) - corrects invalid shapes. </p></li>
-       
-       <li class=kadov-p><p class="whs7"><span 
- style="font-weight: bold;"><B>3D Tolerance</B></span> (FixShape.Tolerance3d) 
- - work tolerance for detection of the problems and correction of them.</p></li>
-       
-       <li class=kadov-p><p class="whs7"><span 
- style="font-weight: bold;"><B>Max 3D Tolerance</B></span> (FixShape.MaxTolerance3d) 
- &nbsp;- maximal 
- possible tolerance of the shape after correction.</p></li>
-       
-       <li class=kadov-p><p class="whs8"><span 
- style="font-weight: bold;"><B>Fix Face Size</B></span> (FixFaceSize) - removes 
- small faces, such as spots and strips. </p></li>
-       
-       <li class=kadov-p><p class="whs7"><span 
- style="font-weight: bold;"><B>Tolerance</B></span> (FixFaceSize.Tolerance) - 
- defines minimum possible face size.</p></li>
-       
-       <li class=kadov-p><p class="whs8"><span 
- style="font-weight: bold;"><B>Drop Small Edges</B></span> (DropSmallEdges) - 
- removes edges, which merge with neighbouring edges.</p></li>
-       
-       <li class=kadov-p><p class="whs7"><span 
- style="font-weight: bold;"><B>3D Tolerance</B></span> (DropSmallEdges.Tolerance3d) 
- - defines minimum possible distance between two parallel edges.</p></li>
-       
-       <li class=kadov-p><p class="whs8"><span 
- style="font-weight: bold;"><B>Split Angle</B></span> (SplitAngle) - splits faces 
- based on conical surfaces, surfaces of revolution and cylindrical surfaces 
- in segments using a certain angle . &nbsp;</p></li>
-       
-       <li class=kadov-p><p class="whs7"><span 
- style="font-weight: bold;"><B>Angle</B></span> (SplitAngle.Angle) - the central 
- angle of the resulting segments (i.e. we obtain two segments if Angle=180, 
- four if Angle=90, etc).</p></li>
-       
-       <li class=kadov-p><p class="whs7"><span 
- style="font-weight: bold;"><B>Max. Tolerance</B></span> (SplitAngle.MaxTolerance) 
- - maximum possible tolerance among the resulting segments.</p></li>
-       
-       <li class=kadov-p><p class="whs9">Split Closed Faces 
- <span style="font-weight: normal;">(SplitClosedFaces)</span> - <span style="font-weight: normal;">splits 
- closed faces in segments. The number of segments depends on the number 
- of splitting points.</span></p></li>
-       
-       <li class=kadov-p><p class="whs7"><span 
- style="font-weight: bold;"><B>Number of splitting points</B></span> (SplitClosedFaces.NbSplitPoints) 
- - the number of splitting points.</p></li>
-       
-       <li class=kadov-p><p class="whs9">Split Continuity<span 
- style="font-weight: normal;"> (SplitContinuity) - splits shapes to reduce 
- continuities of curves and surfaces.</span></p></li>
-       
-       <li class=kadov-p><p class="whs10">3D Tolerance<span style="font-weight: normal;"> 
- (SplitContinuity.Tolerance3d) - 3D tolerance for correction of geometry.</span></p></li>
-       
-       <li class=kadov-p><p class="whs10">Surface Continuity<span 
- style="font-weight: normal;"> (SplitContinuity.SurfaceContinuity) - required 
- continuity for surfaces.</span></p></li>
-       
-       <li class=kadov-p><p class="whs10">Curve Continuity <span 
- style="font-weight: normal;">(SplitContinuity.CurveContinuity)</span> 
- - <span style="font-weight: normal;">required continuity for curves.</span></p></li>
-</ul>
-
-<p class="whs11">This and the previous parameters can 
- take the following values:</p>
-
-<p class="whs12"><span style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;"><span 
- style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">P</font></span>arametric Continuity 
- </font></span></p>
-
-<p class="whs12"><span style="font-weight: bold;"><B>C0</B></span> 
- (Positional Continuity): curves are joined (the end positions of curves 
- or surfaces are coincidental. The curves or surfaces may still meet at 
- an angle, giving rise to a sharp corner or edge).</p>
-
-<p class="whs12"><span style="font-weight: bold;"><B>C1</B></span> 
- (Tangential Continuity): first derivatives are equal (the end vectors 
- of curves or surfaces are parallel, ruling out sharp edges). </p>
-
-<p class="whs12"><span style="font-weight: bold;"><B>C2</B></span> 
- (Curvature Continuity): first and second derivatives are equal (the end 
- vectors of curves or surfaces are of the same magnitude).</p>
-
-<p class="whs12"><span style="font-weight: bold;"><B>CN</B></span> 
- N-th derivatives are equal (both the direction and the magnitude of the 
- Nth derivatives of curves or surfaces (d/du C(u)) are the same at junction.</p>
-
-<p class="whs12">Geometric Continuity </p>
-
-<p class="whs12"><span style="font-weight: bold;"><B>G1</B></span>: 
- first derivatives are proportional at junction</p>
-
-<p class="whs12">The curve tangents thus have the same 
- direction, but not necessarily the same magnitude. i.e., C1'(1) = (a,b,c) 
- and C2'(0) = (k*a, k*b, k*c). </p>
-
-<p class="whs12"><span style="font-weight: bold;"><B>G2</B></span>: 
- first and second derivatives are proportional at junction </p>
-
-<p class="whs12">As the names imply, geometric continuity 
- requires the geometry to be continuous, while parametric continuity requires 
- that the underlying parameterization was continuous as well. </p>
-
-<p class="whs12">Parametric continuity of order n implies 
- geometric continuity of order n, but not vice-versa. </p>
-
-<ul type="disc" class="whs6">
-       
-       <li class=kadov-p><p class="whs13"><span style="font-weight: bold;"><B>Bspline 
- Restriction</B></span> (BsplineRestriction) - converts curves and surfaces 
- to Bsplines and processes them with the following parameters:</p></li>
-       
-       <li class=kadov-p><p class="whs14">Surface Mode<span style="font-weight: normal;"> 
- (BSplineRestriction.SurfaceMode) - approximation of surfaces if restriction 
- is necessary.</span></p></li>
-       
-       <li class=kadov-p><p class="whs14">3D Curve Mode<span 
- style="font-weight: normal;"> (BSplineRestriction.Curve3dMode) - conversion 
- of any 3D curve to BSpline and approximation.</span></p></li>
-       
-       <li class=kadov-p><p class="whs14">2D Curve Mode<span 
- style="font-weight: normal;"> (BSplineRestriction.Curve2dMode) -</span> 
- <span style="font-weight: normal;">conversion of any 2D curve to BSpline 
- and approximation.</span></p></li>
-       
-       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>3D 
- Tolerance</B></span> (BSplineRestriction.Tolerance3d) - defines the possibility 
- of surfaces and 3D curves approximation with the specified parameters.</p></li>
-       
-       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>2D 
- Tolerance</B></span> (BSplineRestriction.Tolerance2d) - defines the possibility 
- of surfaces and 2D curves approximation with the specified parameters.</p></li>
-       
-       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Required 
- Degree</B></span> (BSplineRestriction.RequiredDegree) - required degree of 
- the resulting BSplines.</p></li>
-       
-       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>Required 
- number of segments</B></span> (BSplineRestriction.RequiredNbSegments) - required 
- maximum number of segments of resultant BSplines</p></li>
-       
-       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>3D 
- Continuity</B></span> (BSplineRestriction.Continuity3d) - continuity of the 
- resulting surfaces and 3D curves.</p></li>
-       
-       <li class=kadov-p><p class="whs11"><span style="font-weight: bold;"><B>2D 
- Continuity</B></span> (BSplineRestriction.Continuity2d) - continuity of the 
- resulting 2D curves.</p></li>
-       
-       <li class=kadov-p><p class="whs8"><span 
- style="font-weight: bold;"><B>To Bezier</B></span> (ToBezier) - converts curves 
- and surfaces of any type to Bezier curves and surfaces. </p></li>
-       
-       <li class=kadov-p><p class="whs14">Surface Mode<span style="font-weight: normal;"> 
- (ToBezier.SurfaceMode) - if checked in, allows conversion of surfaces.</span></p></li>
-       
-       <li class=kadov-p><p class="whs14">3D Curve Mode <span 
- style="font-weight: normal;">(ToBezier.Curve3dMode) - if checked in, allows 
- conversion of 2D curves.</span></p></li>
-       
-       <li class=kadov-p><p class="whs14">2D Curve Mode <span 
- style="font-weight: normal;">(ToBezier.Curve2dMode) - if checked in, allows 
- conversion of 3D curves.</span></p></li>
-       
-       <li class=kadov-p><p class="whs14">Max Tolerance<span 
- style="font-weight: normal;"> (ToBezier.MaxTolerance) </span>- <span style="font-weight: normal;">defines</span> 
- <span style="font-weight: normal;">tolerance for detection and correction 
- of problems.</span> </p></li>
-       
-       <li class=kadov-p><p class="whs15">Same Parameter<span 
- style="font-weight: normal;"> (SameParameter) \96 &nbsp;fixes 
- edges of 2D and 3D curves not having the same parameter.</span> </p></li>
-       
-       <li class=kadov-p><p class="whs7"><span 
- style="font-weight: bold;"><B>3D Tolerance</B></span> (SameParameter.Tolerance3d) 
\96 defines<span style="font-weight: bold;"> <B></B></span>tolerance for fixing 
- of edges.<span style="font-weight: bold;"> <B></B></span></p></li>
-</ul>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Dialog Box:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/repair1.png" x-maintain-ratio="TRUE" width="403px" height="469px" border="0" class="img_whs4"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">Shape before applying Shape Processing (FixShape 
- operator).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="image154.jpg" width="300px" height="214px" border="0" class="img_whs16"> &nbsp;&nbsp;&nbsp;<img src="image156.jpg" width="244px" height="214px" border="0" class="img_whs17"></p>
-
-<p class="whs18">&nbsp;</p>
-
-<p class="whs19">The 
- same shape after applying Shape Processing.</p>
-
-<p class="whs18">&nbsp;</p>
-
-<p class="whs3"><img src="image160.jpg" width="239px" height="214px" border="0" class="img_whs20"></p>
-
-<p class="whs21">&nbsp;</p>
-
-<p class="whs21"><span style="font-weight: normal;">Our</span> 
- TUI Scripts<span style="font-weight: normal;"> provide you with useful 
- examples of the use of</span> <a href="repairing_operations.htm#bookmark">Repairing 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/shell.htm b/doc/salome/gui/GEOM/shell.htm
deleted file mode 100755 (executable)
index ede2274..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Shell</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:289px; float:none; border-style:none; }
-img_whs5 { border:none; width:188px; height:178px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Advanced Geometrical Objects\nShell");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image17.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Shell</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o create 
- a <span style="font-weight: bold;"><B>Shell</B></span> in the Main Menu select 
- <span style="font-weight: bold;"><B>New Entity - &gt; Build - &gt; Shell</B></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">You 
- can</span> <span style="font-weight: normal;">c</span></b>reate a <span 
- style="font-weight: bold;"><B>Shell</B></span> from a list of faces and (or) 
- shells.</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result<span style="font-weight: normal;"> will be a </b>&nbsp;</span>GEOM_Object 
- (shell).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeShell(ListOfShape)</I></span> 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">List of faces having connected edges.</font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/neo-obj5.png" x-maintain-ratio="TRUE" width="312px" height="289px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/shellsn.png" x-maintain-ratio="TRUE" width="188px" height="178px" border="0" class="img_whs5"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="geometrical_objects.htm#bookmark2">Advanced Geometric 
- Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/sketcher.htm b/doc/salome/gui/GEOM/sketcher.htm
deleted file mode 100755 (executable)
index 1bff414..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Sketcher</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; float:none; width:30px; height:30px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { margin-left:108px; font-size:12pt; }
-ul.whs4 { list-style:disc; }
-p.whs5 { margin-left:40px; font-size:12pt; }
-img_whs6 { border:none; width:321px; height:496px; float:none; border-style:none; }
-p.whs7 { font-size:12pt; margin-left:40px; text-indent:-40px; }
-p.whs8 { font-size:12pt; margin-left:40px; text-indent:-40px; font-weight:bold; }
-p.whs9 { font-size:12pt; text-indent:-40px; font-weight:bold; margin-left:80px; }
-img_whs10 { border:none; width:200px; height:200px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs7 {text-indent:1pt; }";
-  strNSS += "p.whs8 {text-indent:1pt; }";
-  strNSS += "p.whs9 {text-indent:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nSketcher");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Sketcher</h1>
-
-<p><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><img src="i_blue.jpg" x-maintain-ratio="TRUE" x-save-file="TRUE" x-save-method="compute-relative" width="30px" height="30px" border="0" class="img_whs1"></b></font></span>Sketcher allows to create curves of 2 types: line 
- segment and arc. &nbsp;The 
- curve is created from the current point (center of coordinates when the 
- sketcher is started). &nbsp;The 
- end of the curve is defined by means of &quot;destination&quot;, which 
- can be a destination point (for segment only) or destination direction 
- coupled with length of a segment or angle and radius of an arc.</p>
-
-<p>&nbsp;</p>
-
-<p>Sketcher is able to create planar curves only. Therefore, it is necessary 
- to select a working plane before starting a sketch (by default, XOY plane 
- is used). Sketcher creates curves lying in the current working plane (New 
- Entity -&gt; Basic -&gt; Working Plane).</p>
-
-<p>&nbsp;</p>
-
-<p>This functionality is available from the main menu via <span style="font-style: italic;"><I>New 
- Entity / Sketch.</I></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><b><span style="font-weight: normal;">T</span></b><b><span 
- style="font-weight: normal;">he</span> Result <span style="font-weight: normal;">of 
- the operation will be a</span></b><b> <span style="font-weight: bold;"><B>GEOM_Object</b>.</B></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeSketcher(Command, WorkingPlane)</I></span></p>
-
-<p class="whs3">This algorithm creates 
- a sketcher (wire or face), following the textual description, passed through 
- the Command argument. The edges of the resulting wire or face will be 
- arcs of circles and/or linear segments.</p>
-
-<p class="whs3"><span style="font-style: italic;"><I>Command</I></span> 
- is a string, defining the sketcher by the coordinates of points in the 
- local working plane.</p>
-
-<p class="whs3"><span style="font-style: italic;"><I>WorkingPlane</I></span> 
- is a planar face of the working plane (a list of 9 doubles which are coordinates 
- of OZ and OX of the local working plane).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- </p>
-
-<p class="whs2"><span><font size=3 style="font-size:12pt;">1. Element type (segment or arc).</font></span></p>
-
-<p class="whs2">2. Destination type (point or direction).</p>
-
-<p class="whs2">3. <span>Destination point by means of:</span></p>
-
-<ul type="disc" class="whs4">
-       
-       <li class=kadov-p><p class="whs2">absolute coordinates 
- X,Y;</p></li>
-       
-       <li class=kadov-p><p class="whs2">relative coordinates 
- DX, DY (with respect to the current point);</p></li>
-       
-       <li class=kadov-p><p class="whs2">selection of an existing 
- point.</p></li>
-</ul>
-
-<p class="whs2">4. Destination direction by means of:</p>
-
-<ul type="disc" class="whs4">
-       
-       <li class=kadov-p><p class="whs2">angle between the new 
- segment and the previous one;</p></li>
-       
-       <li class=kadov-p><p class="whs2">perpendicular to the 
- previous segment (same as previous, but angle is predefined and is equal 
- to 90 degrees);</p></li>
-       
-       <li class=kadov-p><p class="whs2">tangent to the previous 
- segment;</p></li>
-       
-       <li class=kadov-p><p class="whs2">vector components DX, 
- DY.</p></li>
-</ul>
-
-<p class="whs2">5. Parameters of an element (for segment : 
- length or target X or Y coordinate value, for arc : radius and angle).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Dialog Box:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5"><img src="pics/neo-scetcher1.png" x-maintain-ratio="TRUE" width="321px" height="496px" border="0" class="img_whs6"> &nbsp;&nbsp;<img src="pics/neo-scetcher2.png" x-maintain-ratio="TRUE" width="321px" height="496px" border="0" class="img_whs6"></p>
-
-<p class="whs7">&nbsp;</p>
-
-<p class="whs8">Example:</p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs9"><img src="image204.jpg" width="200px" height="200px" border="0" class="img_whs10"> &nbsp;&nbsp;<img src="image206.jpg" width="200px" height="200px" border="0" class="img_whs10"></p>
-
-<p class="whs9">&nbsp;</p>
-
-<p class="whs2">Our <span style="font-weight: bold;"><B>TUI Scripts</B></span> 
- provide you with useful examples of the use of <a href="sketcher_tui.htm">Sketcher</a>. 
- </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/sketcher_tui.htm b/doc/salome/gui/GEOM/sketcher_tui.htm
deleted file mode 100755 (executable)
index 2294988..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Sketcher</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
-p.whs2 { font-family:'MS Sans Serif' , sans-serif; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nCreating Geometric Objects\nSketcher");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Sketcher</h1>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(70., 
- &nbsp;0., &nbsp;0.)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex(70., 
- 70., 80.)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex( 
- 0., 70., &nbsp;0.)</p>
-
-<p>&nbsp;</p>
-
-<p>#create a vector from two points</p>
-
-<p class="whs1">vector_arc = geompy.MakeVector(p1, 
- p3)</p>
-
-<p>&nbsp;</p>
-
-<p># create an arc from three points</p>
-
-<p class="whs1">arc = geompy.MakeArc(p1, 
- p2, p3)</p>
-
-<p>&nbsp;</p>
-
-<p># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vector_arc, 
- arc])</p>
-
-<p>&nbsp;</p>
-
-<p># create a planar face</p>
-
-<p class="whs1">isPlanarWanted = 1</p>
-
-<p class="whs1">face = geompy.MakeFace(wire, 
- isPlanarWanted)</p>
-
-<p>&nbsp;</p>
-
-<p># create a sketcher (face), following the textual description</p>
-
-<p class="whs1">sketcher1 = geompy.MakeSketcher(&quot;Sketcher:F 
- -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WF&quot;,</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[100,0,0, 
- 1,1,1, -1,1,0])</p>
-
-<p>&nbsp;</p>
-
-<p># create a sketcher (wire) on the given face</p>
-
-<p class="whs1">sketcher2 = geompy.MakeSketcherOnPlane(&quot;Sketcher:F 
- 10 -30:R 10:C 20 180:R 15:L 50:WW&quot;,</p>
-
-<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;face)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs2">id_face = geompy.addToStudy(face,&quot;Face&quot;)</p>
-
-<p class="whs2">id_sketcher1 = geompy.addToStudy(sketcher1,&quot;Sketcher1&quot;)</p>
-
-<p class="whs2">id_sketcher2 = geompy.addToStudy(sketcher2,&quot;Sketcher2&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the first sketcher and the second sketcher with its planar 
- face</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_face)</p>
-
-<p class="whs1">gg.setDisplayMode(id_face,1)</p>
-
-<p class="whs1">gg.setTransparency(id_face,0.5)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_sketcher1)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_sketcher2)</span> 
- </p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/solid.htm b/doc/salome/gui/GEOM/solid.htm
deleted file mode 100755 (executable)
index a46e8a2..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Solid</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; font-weight:bold; }
-p.whs4 { font-size:12pt; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:315px; float:none; border-style:none; }
-img_whs6 { border:none; width:215px; height:190px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Advanced Geometrical Objects\nSolid");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image18.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</font></span>Solid</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o create 
- a <span style="font-weight: bold;"><B>Solid</B></span> in the Main Menu select 
- <span style="font-weight: bold;"><B>New Entity - &gt; Build - &gt; Solid.</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><span style="font-weight: normal;">You 
- can create a</span> Solid <span style="font-weight: normal;">from a list 
- of shells.</span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span><span style="font-weight: normal;"> 
- </b>&nbsp;</span>GEOM_Object 
- (SOLID).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeSolid(ListOfShape)</I></span>, 
- where ListOfShape is a list of shells from which the solid is constructed.</p>
-
-<p class="whs2"><b>Arguments:</b> Name + A closed shell or 
- a list of shells.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/neo-obj6.png" x-maintain-ratio="TRUE" width="312px" height="315px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3">Example:</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><img src="pics/solidsn.png" x-maintain-ratio="TRUE" width="215px" height="190px" border="0" class="img_whs6"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="geometrical_objects.htm#bookmark3">Advanced Geometric 
- Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/sphere.htm b/doc/salome/gui/GEOM/sphere.htm
deleted file mode 100755 (executable)
index b23ecdc..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Sphere</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { margin-left:40px; }
-img_whs4 { border:none; width:312px; height:315px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; font-weight:bold; }
-img_whs6 { border:none; width:286px; height:284px; float:none; border-style:none; }
-p.whs7 { margin-left:40px; font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Primitives\nSphere");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image101.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</font></span>Sphere</h1>
-
-<p><b><span style="font-weight: normal;">T</b>o</span> create a <span style="font-weight: bold;"><B>Sphere</B></span> 
- in the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span 
- style="font-weight: bold;"><B>New Entity - &gt; Primitives - &gt; Sphere</B></span></p>
-
-<p>&nbsp;</p>
-
-<p>There are two algorithms for creation of a <span style="font-weight: bold;"><B>Sphere</B></span>. 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of each operation will be a</span></b> 
- GEOM_Object (SOLID).</p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">Firstly, you can define a <span style="font-weight: bold;"><B>Sphere</B></span> 
- by the <span style="font-weight: bold;"><B>Center Point</B></span> and the <span 
- style="font-weight: bold;"><B>Radius</B></span>.</p>
-
-<p><b style="font-weight: bold;">TUI Command:</b> <span style="font-style: italic;"><I>geompy.MakeSphere(Point, 
- Radius)</I></span></p>
-
-<p><b style="font-weight: bold;">Arguments:</b> <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Name 
- + </font></span>1 vertex + 1 value (Radius).</p>
-
-<p class="whs3"><b style="font-weight: bold;"><img src="pics/sphere1.png" x-maintain-ratio="TRUE" width="312px" height="315px" border="0" class="img_whs4"></b></p>
-
-<p>&nbsp;</p>
-
-<p><b style="font-weight: bold;"><span style="font-weight: normal;">Secondly, 
- you can define a</span> Sphere <span style="font-weight: normal;">with 
- the center at the origin of coordinate system by the</span> Radius.</b></p>
-
-<p><b style="font-weight: bold;">TUI Command: <span style="font-weight: normal; font-style: italic;"><I>geompy. 
- MakeSphereR(Radius)</I></span></b></p>
-
-<p><b style="font-weight: bold;">Arguments:</b> <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Name 
- + </font></span>1 &nbsp;value 
- (Radius from the origin).</p>
-
-<p class="whs3"><img src="pics/sphere2.png" x-maintain-ratio="TRUE" width="312px" height="315px" border="0" class="img_whs4"></p>
-
-<p class="whs5">&nbsp;</p>
-
-<p class="whs5">NB! <span style="font-weight: normal;">The 
- is another way to create a </span>Sphere<span style="font-weight: normal;">, 
- which is currently accessible only via</span> TUI <span style="font-weight: normal;">commands.</span></p>
-
-<p class="whs5"><span style="font-weight: normal;">You 
- can define the</span> Sphere <span style="font-weight: normal;">by the 
- coordinates of the</span> Center Point <span style="font-weight: normal;">and 
- its</span> Radius <span style="font-weight: normal;">(in this way you 
- don't need to create it in advance).</span> </p>
-
-<p class="whs5"><b style="font-weight: bold;">TUI 
- Command:</b> <span style="font-weight: normal; font-style: italic;"><I>geompy.MakeSphere(X, 
- Y, Z, Radius)</I></span></p>
-
-<p>&nbsp;</p>
-
-<p><b style="font-weight: bold;">Example:</b></p>
-
-<p>&nbsp;</p>
-
-<p class="whs3"><img src="pics/spheres.png" x-maintain-ratio="TRUE" width="286px" height="284px" border="0" class="img_whs6"></p>
-
-<p class="whs7">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="primitives.htm#bookmark2">Primitives</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/static/doxygen.css b/doc/salome/gui/GEOM/static/doxygen.css
new file mode 100755 (executable)
index 0000000..88e613d
--- /dev/null
@@ -0,0 +1,170 @@
+H1 { 
+   text-align: center; 
+}
+
+CAPTION { 
+   font-weight: bold 
+}
+
+/* Link in the top navbar */
+A.qindex {}
+
+A.qindexRef {}
+
+/* Link to any cross-referenced Doxygen element */
+A.el { 
+   text-decoration: none; 
+   font-weight: bold 
+}
+
+A.elRef { 
+   font-weight: bold 
+}
+
+/* Link to any cross-referenced Doxygen element inside a code section 
+   (ex: header)
+*/
+A.code { 
+   text-decoration: none; 
+   font-weight: normal; 
+   color: #4444ee 
+}
+
+A.codeRef { 
+   font-weight: normal; 
+   color: #4444ee 
+}
+
+A:hover { 
+   text-decoration: none; 
+   background-color: lightblue 
+}
+
+DL.el { 
+   margin-left: -1cm 
+}
+
+/* A code fragment (ex: header) */
+DIV.fragment { 
+   width: 100%; 
+   border: none; 
+   background-color: #CCCCCC 
+}
+
+/* In the alpha list (coumpound index), style of an alphabetical index letter */
+DIV.ah { 
+   background-color: #CCCCCC; 
+   font-weight: bold; 
+   color: #ffffff; 
+   margin-bottom: 3px; 
+   margin-top: 3px 
+}
+
+/* Method name (+ type) */
+TD.md { 
+   background-color: lightblue; 
+   font-weight: bold; 
+}
+
+/* Method parameter (some of them) */
+TD.mdname1 { 
+   background-color: lightblue; 
+   font-weight: bold; color: #602020; 
+}
+
+/* Method parameter (some of them) */
+TD.mdname { 
+   background-color: lightblue; 
+   font-weight: bold; 
+   color: #602020; 
+   width: 600px; 
+}
+
+/* Separator between methods group (usually empty, seems not supported by IE) */
+DIV.groupHeader { 
+   margin-left: 16px; 
+   margin-top: 12px; 
+   margin-bottom: 6px; 
+   font-weight: bold 
+}
+
+DIV.groupText { 
+   margin-left: 16px; 
+   font-style: italic; 
+   font-size: smaller 
+}
+
+BODY { 
+   background: #FFFFFF;
+}
+
+/*div.div-page { 
+  background-color: #FFFFFF; 
+  margin-left: 1em;
+  margin-right: 1em;
+  margin-top: 1em;
+  margin-bottom: 0.1em;
+
+  padding-left: 1em;
+  padding-right: 1em;
+  padding-top: 0.5em;
+  padding-bottom: 0.5em;
+
+  border: 2px solid #0D299A; 
+  border-width: 2px;
+  border-color: #0D299A; 
+}*/
+
+div.tabs { 
+  text-align: justify; 
+  margin-left    : 2px;         
+  margin-right   : 2px;  
+  margin-top     : 2px; 
+  margin-bottom  : 2px
+  font-weight: bold;
+  color: #FFFFFF;
+}
+
+DIV.div-footer { 
+  margin-left: 1em;
+  margin-right: 1em;
+  margin-bottom: 0.2em;
+  text-align: right;
+  font-size: 9pt; 
+}
+
+/* In File List, Coumpound List, etc, 1st column of the index */
+TD.indexkey { 
+   background-color: #CCCCCC; 
+   font-weight: bold; 
+   padding-right  : 10px; 
+   padding-top    : 2px; 
+   padding-left   : 10px; 
+   padding-bottom : 2px; 
+   margin-left    : 0px; 
+   margin-right   : 0px; 
+   margin-top     : 2px; 
+   margin-bottom  : 2px  
+}
+
+/* In File List, Coumpound List, etc, 2nd column of the index */
+TD.indexvalue { 
+   background-color: #CCCCCC; 
+   font-style: italic; 
+   padding-right  : 10px; 
+   padding-top    : 2px; 
+   padding-left   : 10px; 
+   padding-bottom : 2px; 
+   margin-left    : 0px; 
+   margin-right   : 0px; 
+   margin-top     : 2px; 
+   margin-bottom  : 2px  
+}
+
+span.keyword       { color: #008000 }
+span.keywordtype   { color: #604020 }
+span.keywordflow   { color: #e08000 }
+span.comment       { color: #800000 }
+span.preprocessor  { color: #806020 }
+span.stringliteral { color: #002080 }
+span.charliteral   { color: #008080 }
diff --git a/doc/salome/gui/GEOM/static/footer.html b/doc/salome/gui/GEOM/static/footer.html
new file mode 100755 (executable)
index 0000000..56d52a6
--- /dev/null
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+</head>
+<body>
+<hr style="width: 100%; height: 2px;">
+<div style="text-align: center;">Copyright &copy; 2003-2007 CEA, EDF<br>
+</div>
+</body>
+</html>
diff --git a/doc/salome/gui/GEOM/static/header.html b/doc/salome/gui/GEOM/static/header.html
new file mode 100755 (executable)
index 0000000..a70a95e
--- /dev/null
@@ -0,0 +1,12 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+   <title>$title</title>
+   <link href="doxygen.css" rel="stylesheet" type="text/css">
+</head>
+<hr>
+<center>
+SALOME documentation central
+</center>
+<hr>
diff --git a/doc/salome/gui/GEOM/suppress_faces.htm b/doc/salome/gui/GEOM/suppress_faces.htm
deleted file mode 100755 (executable)
index 1322bdd..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Suppress Faces</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:289px; float:none; border-style:none; }
-img_whs5 { border:none; float:none; width:222px; height:213px; border-style:none; }
-img_whs6 { border:none; float:none; width:210px; height:214px; border-style:none; }
-p.whs7 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nSuppress Faces");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image121.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Suppress Faces</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Suppress Faces</B></span> operation in 
- the Main Menu select <span style="font-weight: bold;"><B>Repair - &gt; Suppress 
- Faces</B></span>.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">This operation suppresses a face of a shape. 
- This operation is available in <span style="font-weight: bold;"><B>OCC Viewer</B></span> 
- only. </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b><b> <span 
- style="font-weight: bold;"><B>GEOM_Object </B></span></b>(ListOfGeomShapes).<span 
- style="font-weight: bold;"><B>.</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b>TUI Command:</b><i> </i><span style="font-style: italic;"><I>geompy.SuppressFaces(Shape, 
- ListOfID)</I></span>, where Shape is a shape to be processed, ListOfID is 
- a list of faces ID's to be removed.</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + Faces which should be removed (you can select them in the 3D viewer).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/repair2.png" x-maintain-ratio="TRUE" width="312px" height="289px" border="0" class="img_whs4"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/suppress_faces1.png" x-maintain-ratio="TRUE" width="222px" height="213px" border="0" class="img_whs5"> &nbsp;<img src="pics/suppress_faces2.png" x-maintain-ratio="TRUE" width="210px" height="214px" border="0" class="img_whs6"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs7"><span style="font-weight: normal;">Our</span> 
- TUI Scripts <span style="font-weight: normal;">provide you with useful 
- examples of the use of</span> <a href="repairing_operations.htm#bookmark1">Repairing 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/suppress_holes.htm b/doc/salome/gui/GEOM/suppress_holes.htm
deleted file mode 100755 (executable)
index 1ced853..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Suppress Holes</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:381px; float:none; border-style:none; }
-img_whs5 { border:none; width:343px; height:123px; float:none; border-style:none; }
-img_whs6 { border:none; width:150px; height:136px; border-style:none; }
-p.whs7 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nSuppress Holes");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image122.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Suppress Holes</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o <span 
- style="font-weight: bold;"><B>Suppress Holes</B></span> in the Main Menu select 
- <span style="font-weight: bold;"><B>Repair - &gt; Suppress Holes</B></span>.</p>
-
-<p>&nbsp;</p>
-
-<p>This operation removes holes on a selected shape. <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">This 
- operation is available in </font></span><span style="font-weight: bold;"><B>OCC 
- Viewer</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> only. </font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;"><b><span 
- style="font-weight: normal;">T</b>he</span> Result <span style="font-weight: normal;">will 
- be a</span></b><b> <span style="font-weight: bold;"><B>GEOM_Object. </B></span></b></font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.SuppressHoles(Shape, ListOfWireID)</I></span>, 
- where Shape is a shape where holes must be removed, ListOfWireID is a 
- list of wire sub shapes ID\92s. If it is empty, then all holes are removed.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/repair5.png" x-maintain-ratio="TRUE" width="312px" height="381px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments: </b>Name 
- + 1 shape + Wires which should be removed.</p>
-
-<p class="whs2"><span style="font-weight: bold;"><B>Remove all 
- holes </B></span>checkbox allows to fill all holes of a definite shape.</p>
-
-<p class="whs2"><span style="font-weight: bold;"><B>Detect </B></span>button 
- allows to display the number of free boundaries in your shape:</p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3"><img src="pics/neo-detect2.png" x-maintain-ratio="TRUE" width="343px" height="123px" border="0" class="img_whs5"></p>
-
-<p class="whs3">&nbsp;&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs3">&nbsp;<img src="image109.jpg" width="150px" height="136px" border="0" class="img_whs6"> &nbsp;<img src="image110.jpg" width="150px" height="136px" border="0" class="img_whs6"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs7"><span style="font-weight: normal;">Our</span> 
- TUI Scripts<span style="font-weight: normal;"> provide you with useful 
- examples of the use of</span> <a href="repairing_operations.htm#bookmark4">Repairing 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/suppress_internal_wires.htm b/doc/salome/gui/GEOM/suppress_internal_wires.htm
deleted file mode 100755 (executable)
index 53228dc..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Suppress Internal Wires</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-ul.whs3 { list-style:disc; }
-p.whs4 { font-size:12pt; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:350px; float:none; border-style:none; }
-p.whs6 { font-size:12pt; font-weight:bold; }
-img_whs7 { border:none; width:225px; height:268px; float:none; border-style:none; }
-img_whs8 { border:none; float:none; width:234px; height:267px; border-style:none; }
-p.whs9 { font-weight:bold; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nRepairing Operations\nSuppress Internal Wires");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image121.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Suppress Internal 
- Wires</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o <span 
- style="font-weight: bold;"><B>Suppress Internal Wires</B></span> in the Main 
- Menu select <span style="font-weight: bold;"><B>Repair - &gt; Suppress Internal 
- Wires</B></span>.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">This operation removes all internal wires or 
- specified internal wires from user specified faces. This operation is 
- available in <span style="font-weight: bold;"><B>OCC Viewer</B></span> only. 
- </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">will be a</span></b><b> <span 
- style="font-weight: bold;"><B>GEOM_Object. </B></span></b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.SuppressInternalWires(Shape, 
- Wires)</I></span>, where Shape is a shape where wires are to be removed, Wires 
- is a list of wires ID\92s to be removed; if the list is empty then all internal 
- wires are removed.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b></p>
-
-<ul type="disc" class="whs3">
-       
-       <li class=kadov-p><p class="whs2">Name of the resulting 
- object</p></li>
-       
-       <li class=kadov-p><p class="whs2">User specified face</p></li>
-       
-       <li class=kadov-p><p class="whs2">User specified internal 
- wires (lying on this face except for its boundary), or, in case the <span 
- style="font-weight: bold;"><B>Remove all internal wires</B></span> box is checked, 
- all internal wires</p></li>
-</ul>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/repair4.png" x-maintain-ratio="TRUE" width="312px" height="350px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs6">Example:</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/supp_int_wires1.png" x-maintain-ratio="TRUE" width="225px" height="268px" border="0" class="img_whs7"> &nbsp;&nbsp;&nbsp;<img src="pics/supp_int_wires2.png" x-maintain-ratio="TRUE" width="234px" height="267px" border="0" class="img_whs8"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs9"><span style="font-weight: normal;">Our</span> 
- TUI Scripts<span style="font-weight: normal;"> provide you with useful 
- examples of the use of</span> <a href="repairing_operations.htm#bookmark3">Repairing 
- Operations</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/transformation_operations.htm b/doc/salome/gui/GEOM/transformation_operations.htm
deleted file mode 100755 (executable)
index b5f37ef..0000000
+++ /dev/null
@@ -1,1070 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Transformation Operations</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-family:'Lucida Console' , monospace; }
-p.whs2 { font-family:'Times New Roman' , serif; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTUI Scripts\nTransformation\nTransformation Operations");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Transformation Operations</h1>
-
-<h3><a name=bookmark>Translation</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(10, 
- 40, 0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- 0, &nbsp;0, 50)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex(50, 
- 80, 0)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p class="whs1">vt = geompy.MakeVector(p1, 
- p3)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cylinder</p>
-
-<p class="whs1">height = 35</p>
-
-<p class="whs1">radius1 = 20</p>
-
-<p class="whs1">cylinder = geompy.MakeCylinder(p1, 
- v, radius1, height)</p>
-
-<p>&nbsp;</p>
-
-<p># translate the given object along the vector, specified by its end 
- points</p>
-
-<p># (all three functions produce the same result)</p>
-
-<p class="whs1">translation1 = geompy.MakeTranslationTwoPoints(cylinder, 
- p1, p3)</p>
-
-<p class="whs1">translation2 = geompy.MakeTranslation(cylinder, 
- 40, 40, 0)</p>
-
-<p class="whs1">translation3 = geompy.MakeTranslationVector(cylinder, 
- vt)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_cylinder = geompy.addToStudy(cylinder, 
- &quot;Cylinder&quot;)</p>
-
-<p class="whs1">id_translation1 = 
- geompy.addToStudy(translation1, &quot;Translation1&quot;)</p>
-
-<p class="whs1">id_translation2 = 
- geompy.addToStudy(translation2, &quot;Translation2&quot;)</p>
-
-<p class="whs1">id_translation3 = 
- geompy.addToStudy(translation3, &quot;Translation3&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cylinder)</p>
-
-<p class="whs1">gg.setDisplayMode(id_cylinder,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_translation1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_translation1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_translation2)</p>
-
-<p class="whs1">gg.setDisplayMode(id_translation2,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_translation3)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_translation3,1)</span> 
- </p>
-
-<h3><a name=bookmark1>Rotation</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import math</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(10, 40, &nbsp;0)</p>
-<p class="whs1">p2 = geompy.MakeVertex(&nbsp;0, &nbsp;0, 50)</p>
-<p class="whs1">p3 = geompy.MakeVertex(10, 50,-20)</p>
-<p class="whs1">p4 = geompy.MakeVertex(10, 50, 60)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, p2)</p>
-<p class="whs1">vr = geompy.MakeVector(p3, p4)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cylinder</p>
-
-<p class="whs1">height = 35</p>
-<p class="whs1">radius1 = 20</p>
-
-<p class="whs1">cylinder = geompy.MakeCylinder(p1, v, radius1, height)</p>
-
-<p>&nbsp;</p>
-
-<p># rotate the given object around the given axis by the given angle</p>
-
-<p class="whs1">rotation1 = geompy.MakeRotation(cylinder, vr, math.pi)</p>
-<p class="whs1">rotation2 = geompy.MakeRotationThreePoints(cylinder, p4, p1, p2)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_vr = geompy.addToStudy(vr, &quot;Rotation 1 axis&quot;)</p>
-<p class="whs1">id_p4 = geompy.addToStudy(p4, &quot;Rotation 2 center&quot;)</p>
-<p class="whs1">id_p1 = geompy.addToStudy(p1, &quot;Rotation 2 point 1&quot;)</p>
-<p class="whs1">id_p2 = geompy.addToStudy(p2, &quot;Rotation 2 point 2&quot;)</p>
-<p class="whs1">id_cylinder = geompy.addToStudy(cylinder, &quot;Cylinder&quot;)</p>
-<p class="whs1">id_rotation1 = geompy.addToStudy(rotation1, &quot;Rotation 1&quot;)</p>
-<p class="whs1">id_rotation2 = geompy.addToStudy(rotation2, &quot;Rotation 2&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_vr)</p>
-<p class="whs1">gg.createAndDisplayGO(id_p4)</p>
-<p class="whs1">gg.createAndDisplayGO(id_p1)</p>
-<p class="whs1">gg.createAndDisplayGO(id_p2)</p>
-<p class="whs1">gg.createAndDisplayGO(id_cylinder)</p>
-<p class="whs1">gg.setDisplayMode(id_cylinder,1)</p>
-<p class="whs1">gg.createAndDisplayGO(id_rotation1)</p>
-<p class="whs1">gg.createAndDisplayGO(id_rotation2)</p>
-<p class="whs1">gg.setDisplayMode(id_rotation1,1)</p>
-<p class="whs1">gg.setDisplayMode(id_rotation2,1)</p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark4>Modify Location</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">import math</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a vertex and a vector</p>
-
-<p class="whs1">p1 = geompy.MakeVertex(10, 
- 40, 0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- 0, &nbsp;0, 50)</p>
-
-<p class="whs1">v = geompy.MakeVector(p1, 
- p2)</p>
-
-<p>&nbsp;</p>
-
-<p># create a cylinder</p>
-
-<p class="whs1">height = 35</p>
-
-<p class="whs1">radius1 = 20</p>
-
-<p class="whs1">cylinder = geompy.MakeCylinder(p1, 
- v, radius1, height)</p>
-
-<p>&nbsp;</p>
-
-<p># create local coordinate systems</p>
-
-<p class="whs1">cs1 = geompy.MakeMarker( 
- 0, 0, 0, 1,0,0, 0,1,0)</p>
-
-<p class="whs1">cs2 = geompy.MakeMarker(30,40,40, 
- 1,0,0, 0,1,0)</p>
-
-<p>&nbsp;</p>
-
-<p># modify the location of the given object</p>
-
-<p class="whs1">position = geompy.MakePosition(cylinder, 
- cs1, cs2)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_cs1 = geompy.addToStudy(cs1, 
- &quot;Coordinate system 1&quot;)</p>
-
-<p class="whs1">id_cs2 = geompy.addToStudy(cs2, 
- &quot;Coordinate system 2&quot;)</p>
-
-<p class="whs1">id_cylinder = geompy.addToStudy(cylinder, 
- &quot;Cylinder&quot;)</p>
-
-<p class="whs1">id_position = geompy.addToStudy(position, 
- &quot;Position&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_cylinder)</p>
-
-<p class="whs1">gg.setDisplayMode(id_cylinder,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_position)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_position,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark5>Mirror Image</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a box</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(200, 
- 200, 200)</p>
-
-<p>&nbsp;</p>
-
-<p># create an object, symmetrical to another object through the given 
- plane</p>
-
-<p class="whs1">p1 = geompy.MakeVertex( 
- 0, 25, &nbsp;0)</p>
-
-<p class="whs1">p2 = geompy.MakeVertex( 
- 5, 25, &nbsp;0)</p>
-
-<p class="whs1">p3 = geompy.MakeVertex( 
- 0,-30, 40)</p>
-
-<p class="whs1">plane = geompy.MakePlaneThreePnt(p1, 
- p2, p3, 1000.)</p>
-
-<p class="whs1">mirror1 = geompy.MakeMirrorByPlane(box, 
- plane)</p>
-
-<p>&nbsp;</p>
-
-<p># create an object, symmetrical to another object through the given 
- axis</p>
-
-<p class="whs1">p4 = geompy.MakeVertex( 
- 210, 210, -20)</p>
-
-<p class="whs1">p5 = geompy.MakeVertex( 
- 210, 210, 220)</p>
-
-<p class="whs1">axis = geompy.MakeVector(p4, 
- p5)</p>
-
-<p class="whs1">mirror2 = geompy.MakeMirrorByAxis(box, 
- axis)</p>
-
-<p>&nbsp;</p>
-
-<p># create an object, symmetrical to another object through the given 
- point</p>
-
-<p class="whs1">mirror3 = geompy.MakeMirrorByPoint(box, 
- p4)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_box = geompy.addToStudy(box, 
- &quot;Box&quot;)</p>
-
-<p class="whs1">id_plane = geompy.addToStudy(plane, 
- &quot;Plane&quot;)</p>
-
-<p class="whs1">id_mirror1 = geompy.addToStudy(mirror1, 
- &quot;Mirror plane&quot;)</p>
-
-<p class="whs1">id_axis = geompy.addToStudy(axis, 
- &quot;Axis&quot;)</p>
-
-<p class="whs1">id_mirror2 = geompy.addToStudy(mirror2, 
- &quot;Mirror axis&quot;)</p>
-
-<p class="whs1">id_p4 = geompy.addToStudy(p4, 
- &quot;Point&quot;)</p>
-
-<p class="whs1">id_mirror3 = geompy.addToStudy(mirror3, 
- &quot;Mirror point&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_plane)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_mirror1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_mirror1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_axis)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_mirror2)</p>
-
-<p class="whs1">gg.setDisplayMode(id_mirror2,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_p4)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_mirror3)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_mirror3,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark6>Scale Transform </a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># create a box and a 
- sphere</p>
-
-<p class="whs1">box = geompy.MakeBoxDXDYDZ(200, 
- 200, 200)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># scale the given object 
- by the factor</p>
-
-<p class="whs1">p0 = geompy.MakeVertex(100, 
- 100, 100)</p>
-
-<p class="whs1">factor = 0.5</p>
-
-<p class="whs1">scale = geompy.MakeScaleTransform(box, 
- p0, factor)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># add objects in the 
- study</p>
-
-<p class="whs1">id_box = geompy.addToStudy(box, 
- &quot;Box&quot;)</p>
-
-<p class="whs1">id_scale = geompy.addToStudy(scale, 
- &quot;Scale&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p class="whs2"># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box,1)</p>
-
-<p class="whs1">gg.setTransparency(id_box,0.5)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_scale)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_scale,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark7>Offset Surface</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create a box and a sphere</p>
-
-<p class="whs1">box = geompy.MakeBox(20, 
- 20, 20, 200, 200, 200)</p>
-
-<p>&nbsp;</p>
-
-<p># create a new object as offset of the given object</p>
-
-<p class="whs1">offset = geompy.MakeOffset(box, 
- 70.)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_box = geompy.addToStudy(box, 
- &quot;Box&quot;)</p>
-
-<p class="whs1">id_offset = geompy.addToStudy(offset, 
- &quot;Offset&quot;)</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p># display the results</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_box)</p>
-
-<p class="whs1">gg.setDisplayMode(id_box,1)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_offset)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark8>Multi Translation</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices and vectors</p>
-
-<p class="whs1">p0 &nbsp;= 
- geompy.MakeVertex( 0., &nbsp;0., 
- &nbsp;0.)</p>
-
-<p class="whs1">px &nbsp;= 
- geompy.MakeVertex(20., &nbsp;0., 
- &nbsp;0.)</p>
-
-<p class="whs1">py &nbsp;= 
- geompy.MakeVertex( 0., 20., &nbsp;0.)</p>
-
-<p class="whs1">pz &nbsp;= 
- geompy.MakeVertex( 0., &nbsp;0., 
- 20.)</p>
-
-<p class="whs1">pxy = geompy.MakeVertex( 
- 50., 0., 0.)</p>
-
-<p class="whs1">pxyz = geompy.MakeVertex( 
- 50., 50., 50.)</p>
-
-<p class="whs1">vz &nbsp;= 
- geompy.MakeVector(p0, pz)</p>
-
-<p class="whs1">vxy = geompy.MakeVector(px, 
- py)</p>
-
-<p class="whs1">vtr1d = geompy.MakeVector(p0, 
- pxyz)</p>
-
-<p class="whs1">vtr2d = geompy.MakeVector(p0, 
- pxy)</p>
-
-<p>&nbsp;&nbsp;</p>
-
-<p># create an arc</p>
-
-<p class="whs1">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p>&nbsp;</p>
-
-<p># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vxy, 
- arc])</p>
-
-<p>&nbsp;</p>
-
-<p># create a planar face</p>
-
-<p class="whs1">face = geompy.MakeFace(wire, 
- 1)</p>
-
-<p>&nbsp;</p>
-
-<p># create a prism</p>
-
-<p class="whs1">prism = geompy.MakePrismVecH(face, 
- vz, 20.0)</p>
-
-<p>&nbsp;</p>
-
-<p># translate the given object along the given vector a given number of 
- times</p>
-
-<p class="whs1">tr1d = geompy.MakeMultiTranslation1D(prism, 
- vtr1d, 20, 4)</p>
-
-<p>&nbsp;</p>
-
-<p># consequently apply two specified translations to the object a given 
- number of times</p>
-
-<p class="whs1">tr2d = geompy.MakeMultiTranslation2D(prism, 
- vtr1d, 20, 4, vtr2d, 80, 3)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_prism = geompy.addToStudy(prism,&quot;Prism&quot;)</p>
-
-<p class="whs1">id_tr1d = geompy.addToStudy(tr1d,&quot;Translation 
- 1D&quot;)</p>
-
-<p class="whs1">id_tr2d = geompy.addToStudy(tr2d,&quot;Translation 
- 2D&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the prism and the results of fillet operation</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_prism)</p>
-
-<p class="whs1">gg.setDisplayMode(id_prism,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_tr1d)</p>
-
-<p class="whs1">gg.setDisplayMode(id_tr1d,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_tr2d)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_tr2d,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark9>Multi Rotation</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices and vectors</p>
-
-<p class="whs1">p0 &nbsp;= 
- geompy.MakeVertex( 0., &nbsp;0., 
- &nbsp;0.)</p>
-
-<p class="whs1">px &nbsp;= 
- geompy.MakeVertex(20., &nbsp;0., 
- &nbsp;0.)</p>
-
-<p class="whs1">py &nbsp;= 
- geompy.MakeVertex( 0., 20., &nbsp;0.)</p>
-
-<p class="whs1">pz &nbsp;= 
- geompy.MakeVertex( 0., &nbsp;0., 
- 20.)</p>
-
-<p class="whs1">pxyz = geompy.MakeVertex( 
- 50., 50., 10.)</p>
-
-<p class="whs1">vz &nbsp;= 
- geompy.MakeVector(p0, pz)</p>
-
-<p class="whs1">vxy = geompy.MakeVector(px, 
- py)</p>
-
-<p class="whs1">vrot1d = geompy.MakeVector(p0, 
- pxyz)</p>
-
-<p>&nbsp;&nbsp;</p>
-
-<p># create an arc</p>
-
-<p class="whs1">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p>&nbsp;</p>
-
-<p># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vxy, 
- arc])</p>
-
-<p>&nbsp;</p>
-
-<p># create a planar face</p>
-
-<p class="whs1">face = geompy.MakeFace(wire, 
- 1)</p>
-
-<p>&nbsp;</p>
-
-<p># create a prism</p>
-
-<p class="whs1">prism = geompy.MakePrismVecH(face, 
- vz, 20.0)</p>
-
-<p>&nbsp;</p>
-
-<p># rotate the given object around the given axis by the given angle a 
- given number of times</p>
-
-<p class="whs1">rot1d = geompy.MultiRotate1D(prism, 
- vrot1d, 4)</p>
-
-<p>&nbsp;</p>
-
-<p># rotate the given object around the given axis by the given angle a 
- given number of times</p>
-
-<p># and multi-translate the result of each rotation</p>
-
-<p class="whs1">rot2d = geompy.MultiRotate2D(prism, 
- vrot1d, 60, 4, 50, 5)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_prism = geompy.addToStudy(prism,&quot;Prism&quot;)</p>
-
-<p class="whs1">id_rot1d = geompy.addToStudy(rot1d,&quot;Rotation 
- 1D&quot;)</p>
-
-<p class="whs1">id_rot2d = geompy.addToStudy(rot2d,&quot;Rotation 
- 2D&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the prism and the results of fillet operation</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_prism)</p>
-
-<p class="whs1">gg.setDisplayMode(id_prism,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_rot1d)</p>
-
-<p class="whs1">gg.setDisplayMode(id_rot1d,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_rot2d)</p>
-
-<p class="whs1">gg.setDisplayMode(id_rot2d,1) 
- </p>
-
-<p class="whs1">&nbsp;</p>
-
-<h3><a name=bookmark2>Fillet</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">radius &nbsp;= 
- 10.</p>
-
-<p class="whs1">ShapeTypeEdge = geompy.ShapeType[&quot;EDGE&quot;]</p>
-
-<p class="whs1">&nbsp;</p>
-
-<p># create vertices and vectors</p>
-
-<p class="whs1">p0 &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">px &nbsp;= 
- geompy.MakeVertex(100., &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">py &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- 100., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">pz &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- 100.)</p>
-
-<p class="whs1">vz &nbsp;= 
- geompy.MakeVector(p0, pz)</p>
-
-<p class="whs1">vxy = geompy.MakeVector(px, 
- py)</p>
-
-<p>&nbsp;&nbsp;</p>
-
-<p># create an arc</p>
-
-<p class="whs1">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p>&nbsp;</p>
-
-<p># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vxy, 
- arc])</p>
-
-<p>&nbsp;</p>
-
-<p># create a planar face</p>
-
-<p class="whs1">face = geompy.MakeFace(wire, 
- 1)</p>
-
-<p>&nbsp;</p>
-
-<p># create a prism</p>
-
-<p class="whs1">prism = geompy.MakePrismVecH(face, 
- vz, 100.0)</p>
-
-<p>&nbsp;</p>
-
-<p># get the list of IDs (IDList) for the fillet</p>
-
-<p class="whs1">prism_edges = geompy.SubShapeAllSorted(prism, 
- ShapeTypeEdge)</p>
-
-<p class="whs1">IDlist_e = []</p>
-
-<p class="whs1">IDlist_e.append(geompy.GetSubShapeID(prism, 
- prism_edges[0]))</p>
-
-<p class="whs1">IDlist_e.append(geompy.GetSubShapeID(prism, 
- prism_edges[1]))</p>
-
-<p class="whs1">IDlist_e.append(geompy.GetSubShapeID(prism, 
- prism_edges[2]))</p>
-
-<p>&nbsp;</p>
-
-<p># make a fillet on the specified edges of the given shape</p>
-
-<p class="whs1">fillet = geompy.MakeFillet(prism, 
- radius, ShapeTypeEdge, IDlist_e)</p>
-
-<p>&nbsp;</p>
-
-<p># make a fillet on all edges of the given shape</p>
-
-<p class="whs1">filletall = geompy.MakeFilletAll(prism, 
- radius)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_prism = geompy.addToStudy(prism,&quot;Prism&quot;)</p>
-
-<p class="whs1">id_fillet = geompy.addToStudy(fillet,&quot;Fillet&quot;)</p>
-
-<p class="whs1">id_filletall = geompy.addToStudy(filletall,&quot;Fillet 
- all&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the prism and the results of fillet operation</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_prism)</p>
-
-<p class="whs1">gg.setDisplayMode(id_prism,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_fillet)</p>
-
-<p class="whs1">gg.setDisplayMode(id_fillet,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_filletall)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_filletall,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<h3><a name=bookmark3>Chamfer</a></h3>
-
-<p class="whs1">import geompy</p>
-
-<p class="whs1">import salome</p>
-
-<p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>
-
-<p class="whs1">d1 = 10.</p>
-
-<p class="whs1">d2 = 10.</p>
-
-<p class="whs1">ShapeTypeFace = geompy.ShapeType[&quot;FACE&quot;]</p>
-
-<p>&nbsp;</p>
-
-<p># create vertices and vectors</p>
-
-<p class="whs1">p0 &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">px &nbsp;= 
- geompy.MakeVertex(100., &nbsp;&nbsp;0., 
- &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">py &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- 100., &nbsp;&nbsp;0.)</p>
-
-<p class="whs1">pz &nbsp;= 
- geompy.MakeVertex( &nbsp;0., 
- &nbsp;&nbsp;0., 
- 100.)</p>
-
-<p class="whs1">vz &nbsp;= 
- geompy.MakeVector(p0, pz)</p>
-
-<p class="whs1">vxy = geompy.MakeVector(px, 
- py)</p>
-
-<p>&nbsp;&nbsp;</p>
-
-<p># create an arc</p>
-
-<p class="whs1">arc = geompy.MakeArc(py, 
- pz, px)</p>
-
-<p>&nbsp;</p>
-
-<p># create a wire</p>
-
-<p class="whs1">wire = geompy.MakeWire([vxy, 
- arc])</p>
-
-<p>&nbsp;</p>
-
-<p># create a planar face</p>
-
-<p class="whs1">face = geompy.MakeFace(wire, 
- 1)</p>
-
-<p>&nbsp;</p>
-
-<p># create a prism</p>
-
-<p class="whs1">prism = geompy.MakePrismVecH(face, 
- vz, 100.0)</p>
-
-<p>&nbsp;</p>
-
-<p># get the list of IDs (IDList) for the chamfer</p>
-
-<p class="whs1">prism_faces = geompy.SubShapeAllSorted(prism, 
- ShapeTypeFace)</p>
-
-<p class="whs1">f_ind_1 = geompy.GetSubShapeID(prism, 
- prism_faces[0])</p>
-
-<p class="whs1">f_ind_2 = geompy.GetSubShapeID(prism, 
- prism_faces[1])</p>
-
-<p class="whs1">IDlist_f = [f_ind_1, 
- f_ind_2]</p>
-
-<p>&nbsp;</p>
-
-<p># perform a chamfer on the edges common to the specified faces</p>
-
-<p class="whs1">chamfer_e = geompy.MakeChamferEdge(prism, 
- d1, d2, f_ind_1, f_ind_2)</p>
-
-<p>&nbsp;</p>
-
-<p># perform a chamfer on all edges of the specified faces</p>
-
-<p class="whs1">chamfer_f = geompy.MakeChamferFaces(prism, 
- d1, d2, IDlist_f)</p>
-
-<p class="whs1">chamfer_f1 = geompy.MakeChamfer(prism, 
- d1, d2, ShapeTypeFace, IDlist_f)</p>
-
-<p>&nbsp;</p>
-
-<p># perform a symmetric chamfer on all edges of the given shape</p>
-
-<p class="whs1">chamfer_all = geompy.MakeChamferAll(prism, 
- d1)</p>
-
-<p>&nbsp;</p>
-
-<p># add objects in the study</p>
-
-<p class="whs1">id_prism = geompy.addToStudy(prism,&quot;Prism&quot;)</p>
-
-<p class="whs1">id_chamfer_e = geompy.addToStudy(chamfer_e,&quot;Chamfer 
- edge&quot;)</p>
-
-<p class="whs1">id_chamfer_f = geompy.addToStudy(chamfer_f,&quot;Chamfer 
- faces&quot;)</p>
-
-<p class="whs1">id_chamfer_f1 = geompy.addToStudy(chamfer_f1,&quot;Chamfer 
- faces 1&quot;)</p>
-
-<p class="whs1">id_chamfer_all = geompy.addToStudy(chamfer_all,&quot;Chamfer 
- all&quot;)</p>
-
-<p>&nbsp;</p>
-
-<p># display the prism and the results of chamfer operation</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_prism)</p>
-
-<p class="whs1">gg.setDisplayMode(id_prism,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_chamfer_e)</p>
-
-<p class="whs1">gg.setDisplayMode(id_chamfer_e,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_chamfer_f)</p>
-
-<p class="whs1">gg.setDisplayMode(id_chamfer_f,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_chamfer_f1)</p>
-
-<p class="whs1">gg.setDisplayMode(id_chamfer_f1,1)</p>
-
-<p class="whs1">gg.createAndDisplayGO(id_chamfer_all)</p>
-
-<p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_chamfer_all,1)</span> 
- </p>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/translation.htm b/doc/salome/gui/GEOM/translation.htm
deleted file mode 100755 (executable)
index 8ab26d9..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Translation</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; font-weight:bold; }
-p.whs4 { font-size:12pt; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:393px; float:none; border-style:none; }
-img_whs6 { border:none; width:312px; height:385px; float:none; border-style:none; }
-p.whs7 { margin-left:40px; }
-img_whs8 { border:none; width:331px; height:334px; float:none; border-style:none; }
-img_whs9 { border:none; width:320px; height:333px; float:none; border-style:none; }
-p.whs10 { list-style:disc; margin-left:0in; margin-right:0in; margin-top:0px; margin-bottom:0px; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs10 {margin-left:1pt;margin-right:1pt;margin-top:1pt;margin-bottom:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nTransforming geometrical objects\nTransformation Operations\nTranslation");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image128.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span></b>Translation</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o produce 
- a <span style="font-weight: bold;"><B>Translation</B></span> in the Main Menu 
- select <span style="font-weight: bold;"><B>Operations - &gt; Transformation 
- - &gt; Translation</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">This Operation makes a translation of an <span 
- style="font-weight: bold;"><B>Object</B></span>. To translate a shape you need 
- to define the base shape and the coordinates of the vector of translation. 
- <span style="font-weight: bold;"><B>Create a copy </B></span>checkbox allows 
- to keep the initial object, otherwise it will be removed.</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of all operations will be any</span></b> 
- GEOM_Object.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Firstly you can define an <span style="font-weight: bold;"><B>Object</B></span> 
- and the vector coordinates along the axes. </p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeTranslation(Shape, DX, 
- DY, DZ)</I></span>, where Shape is a shape to be translated, DX, DY, DZ are 
- components of translation vector.</p>
-
-<p class="whs3"><b style="font-weight: bold;">Arguments:</b> 
- <b><span style="font-weight: normal;">Name + </b>1 shape + 3 values (coordinates).</span></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs4"><img src="pics/transformation1.png" x-maintain-ratio="TRUE" width="312px" height="393px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Secondly you can define an <span style="font-weight: bold;"><B>Object</B></span> 
- and the start and the end points of the vector &nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command: 
- </b><span style="font-style: italic;"><I>geompy.MakeTranslationTwoPoints(Object, 
- Point1, Point2)</I></span> </p>
-
-<p class="whs2"><span><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Arguments</font></span>: 
- <span style="font-weight: normal;">Name + </span></b>1 shape + 2 vertices</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/transformation2.png" x-maintain-ratio="TRUE" width="312px" height="393px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><span><font size=3 style="font-size:12pt;">Finally you can define an Object and 
- the vector &nbsp;</font></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command: 
- </b>geompy.MakeTranslationVector(Object, Vector)</p>
-
-<p class="whs2"><span><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Arguments</font></span>: 
- <span style="font-weight: normal;">Name + </span></b>1 shape + 1 vector.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs4"><img src="pics/transformation3.png" x-maintain-ratio="TRUE" width="312px" height="385px" border="0" class="img_whs6"></p>
-
-<p class="whs4">&nbsp;&nbsp;&nbsp;&nbsp;</p>
-
-<p class="whs4">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs7"><img src="pics/translationsn1.png" x-maintain-ratio="TRUE" width="331px" height="334px" border="0" class="img_whs8"> &nbsp;<img src="pics/translationsn2.png" x-maintain-ratio="TRUE" width="320px" height="333px" border="0" class="img_whs9"></p>
-
-<p class="whs7">&nbsp;</p>
-
-<p class="whs10">&nbsp;&nbsp;<span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our </font></span><span 
- style="font-weight: bold;"><B>TUI Scripts</B></span><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> 
- provide you with useful examples of the use of <a href="transformation_operations.htm#bookmark">Transformation 
- Operations</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/transparency.htm b/doc/salome/gui/GEOM/transparency.htm
deleted file mode 100755 (executable)
index 9c9c05c..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Transparency</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { font-size:12pt; font-weight:normal; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:354px; height:177px; float:none; border-style:none; }
-p.whs5 { font-size:12pt; font-style:italic; font-weight:normal; }
-img_whs6 { border:none; float:none; height:430px; width:400px; border-style:none; }
-img_whs7 { border:none; height:430px; float:none; width:400px; border-style:none; }
-p.whs8 { margin-left:40px; font-size:12pt; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nViewing geometrical objects\nTransparency");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Transparency</h1>
-
-<p class="whs1">You can change the transparency 
- of a shape in the range between 0 (absolutely opaque) and 1 (absolutely 
- transparent and thus invisible) in the following dialog box.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/neo-transparency.png" x-maintain-ratio="TRUE" width="354px" height="177px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">or 
- using a</span> TUI Command:</b><i> gg.setTransparency(ID, Double)</i></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Examples:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5">Opaque &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;50% 
- Transparent</p>
-
-<p class="whs3"><img src="pics/colorsn.png" x-maintain-ratio="TRUE" height="430px" width="400px" border="0" class="img_whs6"> &nbsp;<img src="pics/transparencysn.png" x-maintain-ratio="TRUE" height="430px" width="400px" border="0" class="img_whs7"></p>
-
-<p class="whs8">&nbsp;&nbsp;</p>
-
-<p class="whs2"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Our TUI Scripts 
- provide you with useful examples of <a href="changing_display_parameters.htm#bookmark2">Changing 
- Display Parameters</a>. </font></span></p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/turus.htm b/doc/salome/gui/GEOM/turus.htm
deleted file mode 100755 (executable)
index 62b81e7..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Turus</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-weight:bold; }
-p.whs4 { font-weight:bold; margin-left:40px; }
-img_whs5 { border:none; width:312px; height:376px; float:none; border-style:none; }
-p.whs6 { margin-left:40px; }
-img_whs7 { border:none; width:272px; height:275px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Primitives\nTorus");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image102.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span>Torus</h1>
-
-<p><b><span style="font-weight: normal;">T</b>o</span> create a <span style="font-weight: bold;"><B>Torus</B></span> 
- in the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span 
- style="font-weight: bold;"><B>New Entity - &gt; Primitives - &gt; Torus</B></span></p>
-
-<p>&nbsp;</p>
-
-<p>There are two algorithms for creation of a <span style="font-weight: bold;"><B>Torus</B></span>. 
- </p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of each operation will be a</span></b> 
- GEOM_Object (SOLID).</p>
-
-<p>&nbsp;</p>
-
-<p>Firstly, you can define a <span style="font-weight: bold;"><B>Torus</B></span> 
- by the given <span style="font-weight: bold;"><B>Base Point</B></span>, the normal 
- <span style="font-weight: bold;"><B>Vector</B></span> and the Major and Minor 
- <span style="font-weight: bold;"><B>Radiuses</B></span>. </p>
-
-<p><b style="font-weight: bold;">TUI Command:</b> <span style="font-style: italic;"><I>geompy.MakeTorus(Point, 
- Vector, RadiusMajor, RadiusMinor) </I></span>, </p>
-
-<p class="whs3"><b style="font-weight: bold;">Arguments: 
- </b><span style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">Name + 1 vertex 
- + 1 vector (for direction) + 2 values (1 &amp; 2 Radius).</font></span></p>
-
-<p class="whs4"><b style="font-weight: bold;"><img src="pics/torus1.png" x-maintain-ratio="TRUE" width="312px" height="376px" border="0" class="img_whs5"></b></p>
-
-<p>&nbsp;</p>
-
-<p>Secondly, you can define a Torus with the center at the origin of coordinates 
- by its Major and Minor <span style="font-weight: bold;"><B>Radiuses</B></span>. 
- </p>
-
-<p><b style="font-weight: bold;">TUI Command:</b> g<span style="font-style: italic;"><I>eompy.MakeTorusRR(RadiusMajor, 
- RadiusMinor)</I></span> </p>
-
-<p><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Arguments: 
- </b>Name + </font></span>2 values (1 &amp; 2 Radius from the origin).</p>
-
-<p class="whs6"><img src="pics/torus2.png" x-maintain-ratio="TRUE" width="312px" height="376px" border="0" class="img_whs5"></p>
-
-<p>&nbsp;</p>
-
-<p><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs6"><img src="pics/toruses.png" x-maintain-ratio="TRUE" width="272px" height="275px" border="0" class="img_whs7"></p>
-
-<p class="whs6">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="primitives.htm#bookmark3">Primitives</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/vector.htm b/doc/salome/gui/GEOM/vector.htm
deleted file mode 100755 (executable)
index 31fc7d1..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Vector</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; font-style:italic; }
-p.whs4 { font-size:12pt; font-weight:bold; }
-p.whs5 { font-size:12pt; margin-left:40px; }
-img_whs6 { border:none; width:312px; height:324px; float:none; border-style:none; }
-img_whs7 { border:none; width:312px; height:358px; float:none; border-style:none; }
-p.whs8 { font-size:12pt; margin-left:40px; font-weight:bold; }
-img_whs9 { border:none; width:156px; height:203px; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Basic Geometric Objects\nVector");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image32.gif" width="20px" height="20px" border="0" class="img_whs1"> </font></span></b>Vector</h1>
-
-<p><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b style="font-weight: normal;">T</b></font></span>o 
- create a <span style="font-weight: bold;"><B>Vector</B></span> in the <span style="font-weight: bold;"><B>Main 
- Menu</B></span> select <span style="font-weight: bold;"><B>New Entity - &gt; 
- Basic - &gt; Vector</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">There 
- are 2 algorithms to create a</span> Vector <span style="font-weight: normal;">in 
- the 3D space.</span> </b></p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of each operation will be a</span></b> 
- GEOM_Object (edge).</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">Firstly, 
- you can define a</span> Vector <span style="font-weight: normal;">by its</span> 
- Start <span style="font-weight: normal;">and</span> End Points</b></p>
-
-<p class="whs3"><b style="font-style: normal;"><span 
- style="font-weight: bold;"><B>TUI Command:</b><b> &nbsp;</B></span><span 
- style="font-weight: normal;">g</b>eompy.MakeVector(Point1, 
- Point2)</span></p>
-
-<p class="whs4"><b style="font-weight: bold;">Arguments 
- : </b><span style="font-weight: normal;">Name + 2 vertices.</span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5"><img src="pics/vector1.png" x-maintain-ratio="TRUE" width="312px" height="324px" border="0" class="img_whs6"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Secondly, you can define a <span style="font-weight: bold;"><B>Vector</B></span> 
- starting in the <span style="font-weight: bold;"><B>Origin of coordinates</B></span> 
- by its <span style="font-weight: bold;"><B>End Point.</B></span> </p>
-
-<p class="whs2"><b><span style="font-weight: bold;"><B>TUI Command:</b><b> 
- </B></span><span style="font-weight: bold; font-style: italic;"><I><B>&nbsp;</B></I></span></b><span 
- style="font-style: italic;"><I>geompy.MakeVectorDXDYDZ(DX, 
- DY, DZ)</I></span> </p>
-
-<p class="whs2"><span><font size=3 style="font-size:12pt;"><b style="font-weight: bold;">Arguments 
- : </b></font></span>Name + 3 values </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs5"><img src="pics/vector2.png" x-maintain-ratio="TRUE" width="312px" height="358px" border="0" class="img_whs7"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs8"><img src="image34.gif" width="156px" height="203px" border="0" class="img_whs9"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="basic_geometrical_objects.htm#bookmark5">Basic 
- Geometric Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/viewing_geometrical_objects.htm b/doc/salome/gui/GEOM/viewing_geometrical_objects.htm
deleted file mode 100755 (executable)
index fe4fb81..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Viewing Geometrical Objects</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:340px; height:308px; border-style:none; }
-ul.whs2 { list-style:disc; }
-p.whs3 { font-weight:bold; }
-img_whs4 { border:none; width:26px; height:26px; border-style:none; }
-img_whs5 { border:none; width:23px; height:24px; border-style:none; }
-img_whs6 { border:none; width:279px; height:230px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nViewing geometrical objects\nViewing Geometrical Objects");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Viewing Geometrical Objects</h1>
-
-<p>Newly created geometrical objects are automatically displayed in the 
- <span style="font-weight: bold;"><B>OCC 3D Viewer</B></span>. </p>
-
-<p>&nbsp;</p>
-
-<p><span style="font-weight: bold;"><B>OCC 3D Viewer</B></span> is described in 
- the documentation on <span style="font-weight: bold;"><B>GUI module</B></span>.</p>
-
-<p>After the object has appeared in the Viewer, you can select it with 
- left mouse click to change its presentation parameters and access to other 
- useful options by right-clicking on the selected object<span style="font-weight: bold;"><B>.</B></span></p>
-
-<p>&nbsp;</p>
-
-<p><img src="image1.jpg" width="340px" height="308px" border="0" class="img_whs1"></p>
-
-<p>&nbsp;</p>
-
-<ul type="disc" class="whs2">
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Rename - </B></span>allows 
- to change the name of the geometric object.<span style="font-weight: bold;"> 
- <B></B></span></p></li>
-       
-       <li class=kadov-p><p class="whs3"><a href="wireframe_and_shading.htm">Display 
- Mode</a> - <span style="font-weight: normal;">allows to select between 
- Wireframe and Shading presentation.</span></p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="color.htm">Color</a> 
- - </B></span>allows to change the filling color in the standard<span style="font-weight: bold;"><B> 
- Select Color</B></span> menu.<span style="font-weight: bold;"> <B></B></span></p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="transparency.htm">T</B></span><span 
- style="font-weight: bold;"><B>ransparency</B></span></a> - allows to change the 
- transparency of mesh elements.</p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B><a href="isos.htm">Isos</a></B></span> 
- - allows to <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">change the number of isolines 
- displayed within a shape.</font></span></p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B><img src="image18.gif" width="26px" height="26px" border="0" class="img_whs4"> Erase</B></span> - allows to hide the selected mesh from the 
- viewer. <b><span style="font-size: 12pt; font-weight: normal;"><font size=3 style="font-size:12pt;">TUI Command</font></span><span 
- style="font-size: 12pt;"><font size=3 style="font-size:12pt;"> :</b><i> sg.EraseOnly(ID)</i></font></span></p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B><img src="image26.gif" width="26px" height="26px" border="0" class="img_whs4"> Erase all</B></span> &nbsp;- 
- allows to hide all objects from the viewer. <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b 
- style="font-weight: normal;">TUI Command:</b><i> sg.EraseAll()</i></font></span></p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B><img src="image33.gif" width="23px" height="24px" border="0" class="img_whs5"> Display Only</B></span> -allows to display only the selected 
- mesh, hiding all other from the viewer. <span style="font-size: 12pt;"><font size=3 style="font-size:12pt;"><b 
- style="font-weight: normal;">TUI Command:</b><i> sg.DisplayOnly(ID)</i></font></span></p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Update</B></span> 
- - refreshes the presentation of your mesh in the Object Browser, applying 
- all recent changes.</p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Dump view</B></span> 
- - exports an object from the viewer in bmp, 
- png, jpg or 
- jpeg image format. </p></li>
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Change background</B></span> 
- - allows to redefine the background color. By default it is black. &nbsp;</p></li>
-</ul>
-
-<p>&nbsp;</p>
-
-<p>Some of these functionalities are available through right-clicking on 
- the viewer background:</p>
-
-<p>&nbsp;</p>
-
-<p><img src="image2.jpg" width="279px" height="230px" border="0" class="img_whs6"></p>
-
-<p>&nbsp;</p>
-
-<ul type="disc" class="whs2">
-       
-       <li class=kadov-p><p><span style="font-weight: bold;"><B>Select Only</B></span> 
- provides a filter for exclusive selection of objects of a certain type. 
- </p></li>
-</ul>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/webhelp.cab b/doc/salome/gui/GEOM/webhelp.cab
deleted file mode 100755 (executable)
index b942f64..0000000
Binary files a/doc/salome/gui/GEOM/webhelp.cab and /dev/null differ
diff --git a/doc/salome/gui/GEOM/webhelp.jar b/doc/salome/gui/GEOM/webhelp.jar
deleted file mode 100755 (executable)
index 1d1697e..0000000
Binary files a/doc/salome/gui/GEOM/webhelp.jar and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whcsh_home.htm b/doc/salome/gui/GEOM/whcsh_home.htm
deleted file mode 100755 (executable)
index bc99598..0000000
+++ /dev/null
@@ -1,600 +0,0 @@
-<html>
-<script language="javascript1.2" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-if(gbIE4||gbNav61)
-{
-       document.write("<body></body>");
-}
-else
-{
-       document.write("<frameset rows=\"100%,*\"><frame name=\"data_frm\" src=\"about:blank\"><frame name=\"dumb_frm\" src=\"about:blank\"></frameset>");
-}
-var gCSHFileName="whcshdata.htm";
-
-var gHomePage="index.htm";
-var gaProj=new Array();
-gaProj[0]=new Object();
-gaProj[0].sProjPath=_replaceSlash(_getPath(document.location.href));
-gaProj[0].nLoadState=0;
-var gCurrent=0;
-
-var gsTopicURL="";
-var gnCurProj=0;
-var gnCommand=-1;
-var CMD_SHOWTOC=1;
-var CMD_SHOWINDEX=2;
-var CMD_SHOWSEARCH=3;
-var CMD_SHOWGLOSSARY=4;
-var CMD_SHOWNONE=0;
-
-var RHWO_LOCATION=0x01;                /*need location bar?*/
-var RHWO_MENUBAR=0x02;         /*need menubar?*/               
-var RHWO_RESIZABLE=0x04;       /*resizable window?*/
-var RHWO_TOOLBAR=0x08;         /*need toolbar?*/
-var RHWO_STATUS=0x10;          /*need statusbar?*/
-var RHWO_SCROLLBARS=0x20;      /*need scrollbars?*/
-
-var gsStr="";
-var gnId=-1;
-var gsWindow="";
-var gsJava="false";
-var gbUseStr=false;
-var gbURLReady=false;
-var goWnd=new Object();
-goWnd.sName="whCshDefault";
-goWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;
-goWnd.sBLeft="49%";
-goWnd.sBTop="0";
-goWnd.sBWidth="49%";
-goWnd.sBHeight="49%";
-goWnd.nPanes=1;
-var goFullWnd=new Object();
-goFullWnd.sName="whDefault";
-goFullWnd.nBOptions=RHWO_RESIZABLE|RHWO_SCROLLBARS;
-goFullWnd.sBLeft="20%";
-goFullWnd.sBTop="0";
-goFullWnd.sBWidth="79%";
-goFullWnd.sBHeight="79%";
-goFullWnd.nPanes=2;
-
-var goNewWnd=null;
-var gbLoadWnd=false;
-var gsURL="";
-
-function showCSH(sParam)
-{
-       //id=
-       //str=
-       //url=
-       //cmd=
-       //with the format #<a=xxx>>b=xxx>>c=xxx...
-       parseParam(sParam);
-       SwitchURL();
-}
-
-function IsWndReady()
-{
-       if(gaProj[0].nLoadState==0)
-       {
-               var sCshFile=_getFullPath(gaProj[0].sProjPath,gCSHFileName);
-               gaProj[0].nLoadState=1;
-               setTimeout("loadFail("+0+");",3000);
-               loadDataCsh(sCshFile);
-               gbLoadWnd=true;
-               return false;
-       }
-       else
-               return true;
-}
-
-function SwitchURL()
-{
-       if(gbURLReady)
-       {
-               var sURL="";
-               var oWnd=null;
-               if(gsTopicURL)
-               {
-                       sURL=_getPath(document.location.href)+gHomePage+"#"+gsTopicURL;
-                       oWnd=goWnd;
-               }
-               else
-               {
-                       if(gnCommand!=-1)
-                               sURL=_getPath(document.location.href)+gHomePage+"#>>cmd="+gnCommand;
-                       else
-                               sURL=_getPath(document.location.href)+gHomePage;
-                       oWnd=goFullWnd;
-               }
-               if(gsWindow)
-               {
-                       if(!IsWndReady())
-                               return false;
-                       if(gaProj[gnCurProj].aWnd)
-                       {
-                               var aWnd=gaProj[gnCurProj].aWnd;
-                               var bFound=false;
-                               for(var i=0;i<aWnd.length;i++)
-                               {
-                                       if(aWnd[i].sName.toLowerCase()==gsWindow.toLowerCase())
-                                       {
-                                               oWnd=aWnd[i];
-                                               bFound=true;
-                                               break;
-                                       }
-                               }
-                               if(!bFound&&gnCurProj!=0)
-                               {
-                                       var aWnd=gaProj[0].aWnd;
-                                       for(var j=0;j<aWnd.length;j++)
-                                       {
-                                               if(aWnd[j].sName.toLowerCase()==gsWindow.toLowerCase())
-                                               {
-                                                       oWnd=aWnd[j];
-                                                       break;
-                                               }
-                                       }
-                               }
-                       }
-               }
-
-               if(sURL&&oWnd)
-               {
-                       strURLOpt="";
-                       if(oWnd.sCaption)
-                               strURLOpt+=">>cap="+oWnd.sCaption;
-                       if(oWnd.nPanes==1)
-                               strURLOpt+=">>pan="+oWnd.nPanes;
-                       else if(oWnd.nPanes==2)
-                       {
-                               strURLOpt+=">>pan="+oWnd.nPanes;
-                               if(oWnd.nPOptions)
-                                       strURLOpt+=">>pot="+oWnd.nPOptions;
-                               if(oWnd.sPButtons)
-                                       strURLOpt+=">>pbs="+oWnd.sPButtons;
-                               if(oWnd.sPDefBtn)
-                                       strURLOpt+=">>pdb="+oWnd.sPDefBtn;
-                       }
-                       if(strURLOpt)
-                       {
-                               if(sURL.indexOf("#")==-1)
-                                       sURL+="#";
-                               sURL+=strURLOpt;
-                       }
-                       if(gsJava=="false")
-                       {
-                               var strOpt=getBrowserOptionString(oWnd);
-                               var sNewName=convertWindowName(oWnd.sName);
-                               if(gbNav4)
-                               {
-                                       if (gbNav6)
-                                       {
-                                               gsURL = sURL;
-                                               goNewWnd=window.open("about:blank",sNewName,strOpt);
-                                               setTimeout("postWindowNSOpen();",100);
-                                       }
-                                       else
-                                       {
-                                               window.open("about:blank",sNewName,strOpt);
-                                               var oNewWnd=window.open(sURL,sNewName);
-                                               window.close();
-                                               oNewWnd.focus();
-                                       }
-                               }
-                               else
-                               {
-                                       if(gbIE5)
-                                       {
-                                               window.open("about:blank",sNewName,strOpt);
-                                               goNewWnd=window.open(sURL,sNewName);
-                                       }
-                                       else
-                                       {
-                                               gsURL = sURL; // IE4 had hard time to handle bookmark.
-                                               goNewWnd=window.open("about:blank",sNewName,strOpt);
-                                       }
-                                       setTimeout("postWindowOpen();",100);
-                               }
-                       }
-                       else
-                               document.location=sURL;
-               }
-       }
-}
-
-function convertWindowName(strName)
-{
-       var strNewName = strName;
-       var strResultName = "";
-       var re=new RegExp("_","g");
-       strNewName = strName.replace(re,"__");
-       for (var i=0;i<strNewName.length;i++)
-               if (!(strNewName[i] == '_' ||
-                       (strNewName[i] <= '9' && strNewName[i] >= '0') ||
-                       (strNewName[i] <= 'z' && strNewName[i] >= 'a') ||
-                       (strNewName[i] <= 'Z' && strNewName[i] >= 'A')))
-               {
-                       strResultName += "_" + strNewName.charCodeAt(i);
-               }
-               else
-                       strResultName += strNewName[i];
-       return strResultName;
-}
-
-function postWindowNSOpen()
-{
-       if(goNewWnd)
-       {
-               if (gsURL)
-                       goNewWnd.document.location.href=gsURL;
-               window.close();
-               goNewWnd.focus();
-       }
-}
-
-function postWindowOpen()
-{
-       if(goNewWnd)
-       {
-               if (gsURL&&!gbIE5&&gbIE4)
-                       goNewWnd.document.location.href=gsURL;
-               goNewWnd.focus();
-       }
-}
-
-function parseParam(sParam)
-{
-       if(sParam)
-       {
-               var nBPos=0;
-               do
-               {
-                       var nPos=sParam.indexOf(">>",nBPos);
-                       if(nPos!=-1)
-                       {
-                               if(nPos>0)
-                               {
-                                       var sPart=sParam.substring(nBPos,nPos);
-                                       parsePart(sPart);
-                               }
-                               nBPos=nPos+2;
-                       }
-                       else
-                       {
-                               var sPart=sParam.substring(nBPos);
-                               parsePart(sPart);
-                               break;
-                       }
-               }while(nBPos<sParam.length);
-       }
-}
-
-function parsePart(sPart)
-{
-       if(sPart.toLowerCase().indexOf("id=")==0)
-       {
-               fetchURLById(sPart.substring(3));
-               gbURLReady=false;
-       }
-       else if(sPart.toLowerCase().indexOf("str=")==0)
-       {
-               fetchURLByStr(sPart.substring(4));
-               gbURLReady=false;
-       }
-       else if(sPart.toLowerCase().indexOf("url=")==0)
-       {
-               gsTopicURL=sPart.substring(4);
-               gbURLReady=true;
-       }
-       else if(sPart.toLowerCase().indexOf("cmd=")==0)
-       {
-               var sCmd=sPart.substring(4);
-               if(sCmd.toLowerCase()=="toc")
-               {
-                       gnCommand=CMD_SHOWTOC;
-               }
-               else if(sCmd.toLowerCase()=="idx")
-               {
-                       gnCommand=CMD_SHOWINDEX;
-               }
-               else if(sCmd.toLowerCase()=="fts")
-               {
-                       gnCommand=CMD_SHOWSEARCH;
-               }
-               else if(sCmd.toLowerCase()=="glo")
-               {
-                       gnCommand=CMD_SHOWGLOSSARY;
-               }
-               else if(sCmd.toLowerCase()=="none")
-               {
-                       gnCommand=CMD_SHOWNONE;
-               }
-               gbURLReady=true;
-       }
-       else if(sPart.toLowerCase().indexOf("wnd=")==0)
-       {
-               gsWindow=_browserStringToText(sPart.substring(4));
-       }
-       else if(sPart.toLowerCase().indexOf("java=")==0)
-       {
-               gsJava=sPart.substring(5);
-       }
-}
-
-function fetchURLById(sId)
-{
-       var nId=parseInt(sId);
-       gsTopicURL="";
-       fetchURL("",nId,false);
-}
-
-function fetchURLByStr(sStr)
-{
-       gsTopicURL="";
-       fetchURL(sStr,0,true);
-}
-
-function fetchURL(sStr,nId,bUseStr)
-{
-       var bNeedLoad=false;
-       var bFound=false;
-       for(var i=0;i<gaProj.length;i++)
-       {
-               if(gaProj[i].nLoadState==3)
-               {
-                       if(gaProj[i].aCsh)
-                       {
-                               for(var j=0;j<gaProj[i].aCsh.length;j++)
-                               {
-                                       var sTopicURL="";
-                                       if(bUseStr)
-                                       {
-                                               if(gaProj[i].aCsh[j].strAliasId.toLowerCase()==sStr.toLowerCase())
-                                                       sTopicURL=gaProj[i].aCsh[j].strUrl;
-                                       }
-                                       else
-                                       {
-                                               if(gaProj[i].aCsh[j].nTopicNum==nId)
-                                                       sTopicURL=gaProj[i].aCsh[j].strUrl;
-                                       }
-                                       if(sTopicURL)
-                                       {
-                                               if(i!=0)
-                                               {
-                                                       gnCurProj=i;
-                                                       if(gaProj[i].sProjPath.indexOf(gaProj[0].sProjPath)==0)
-                                                       {
-                                                               var sRelPath=gaProj[i].sProjPath.substring(gaProj[0].sProjPath.length);
-                                                               gsTopicURL=sRelPath+sTopicURL;
-                                                       }
-                                                       else
-                                                               gsTopicURL=gaProj[i].sProjPath+sTopicURL;
-                                               }
-                                               else
-                                                       gsTopicURL=sTopicURL;
-                                               bFound=true;
-                                               break;
-                                       }
-                               }
-                       }
-                       
-               }
-               else if(gaProj[i].nLoadState==0)
-               {
-                       gsStr=sStr;
-                       gnId=nId;
-                       gbUseStr=bUseStr;
-                       var sCshFile=_getFullPath(gaProj[i].sProjPath,gCSHFileName);
-                       gaProj[i].nLoadState=1;
-                       setTimeout("loadFail("+i+");",3000);
-                       loadDataCsh(sCshFile);
-                       bNeedLoad=true;
-               }
-               if(bFound||bNeedLoad)
-                       break;
-       }
-       if(!bNeedLoad)
-       {
-               gbURLReady=true;
-               SwitchURL();
-       }
-}
-
-function loadDataCsh(sFile)
-{
-       if(gbIE4||gbNav61)
-               loadData(sFile);
-       else
-       {
-               window.frames[0].location=sFile;
-       }
-}
-
-function loadFail(nProj)
-{
-       if(gaProj[nProj].nLoadState==1)
-       {
-               gaProj[nProj].nLoadState=2;
-               if(!gbLoadWnd)
-                       fetchURL(gsStr,gnId,gbUseStr);
-               else
-                       SwitchURL();
-       }
-}
-
-function putCshData(strProj,aCsh,aWnd,aRmtProj)
-{
-       if(strProj)
-       {
-               strProj=_replaceSlash(strProj);
-               if(strProj.lastIndexOf("/")!=strProj.length-1)
-                       strProj+="/";
-               for(var i=0;i<gaProj.length;i++)
-               {
-                       if(gaProj[i].sProjPath)
-                       {
-                               if(isSamePath(gaProj[i].sProjPath,strProj))
-                               {
-                                       gaProj[i].nLoadState=3;
-                                       gaProj[i].aCsh=aCsh;
-                                       gaProj[i].aWnd=aWnd;
-                                       break;
-                               }
-                       }
-               }
-               if(aRmtProj&&aRmtProj.length)
-               {
-                       for(var j=0;j<aRmtProj.length;j++)
-                       {
-                               var strRPath=_getFullPath(strProj,aRmtProj[j]);
-                               var bFound=false;
-                               for (var k=0;k<gaProj.length;k++)
-                               {
-                                       if(gaProj[k].sProjPath)
-                                       {
-                                               if(isSamePath(gaProj[k].sProjPath,strRPath))
-                                               {
-                                                       bFound=true;
-                                                       break;
-                                               }
-                                       }
-                               }
-                               if(!bFound)
-                               {
-                                       var len=gaProj.length;
-                                       gaProj[len]=new Object();
-                                       gaProj[len].sProjPath=strRPath;
-                                       gaProj[len].nLoadState=0;
-                               }
-                       }
-               }
-               if(!gbLoadWnd)
-                       fetchURL(gsStr,gnId,gbUseStr);
-               else
-                       SwitchURL();
-                       
-       }
-}
-
-function isSamePath(strPath1,strPath2)
-{
-       return strPath1.toLowerCase()==strPath2.toLowerCase();
-}
-
-function getRelHomePage(strLocation)
-{
-       var strCurPPath=_getPath(strLocation);
-       var strOriPPath=_getPath(getHomePage());
-       var strRelPath=_getRelativeFileName(strOriPPath,strCurPPath);
-       var strURL=getHomePage()+"#"+strRelPath;
-       return strURL;
-}
-
-function getHomePage()
-{
-       var strHomePage;
-       var strTmp=location.toString();
-       var nPos=strTmp.indexOf("#");
-       if(nPos!=-1)
-       {
-               strHomePage=strTmp.substring(0,nPos);
-       }
-       else
-       {
-               strHomePage=strTmp;
-       }
-       return strHomePage;
-}
-
-function getBrowserOptionString(oWnd)
-{
-       var strOpts="";
-       if(oWnd.bUseDefault)
-               return strOpts;
-       if(oWnd.nBOptions&RHWO_LOCATION)
-               strOpts+="location=yes";
-       else
-               strOpts+="location=no";
-       if(oWnd.nBOptions&RHWO_TOOLBAR)
-               strOpts+=",toolbar=yes";                
-       else
-               strOpts+=",toolbar=no";         
-       if(oWnd.nBOptions&RHWO_MENUBAR)
-               strOpts+=",menubar=yes";                
-       else
-               strOpts+=",menubar=no";
-       if(oWnd.nBOptions&RHWO_STATUS)
-               strOpts+=",status=yes";         
-       else
-               strOpts+=",status=no";          
-       if(oWnd.nBOptions&RHWO_SCROLLBARS)
-               strOpts+=",scrollbars=yes";
-       else
-               strOpts+=",scrollbars=no";      
-       if(oWnd.nBOptions&RHWO_RESIZABLE)
-               strOpts+=",resizable=yes";
-       else
-               strOpts+=",resizable=no";
-       if(oWnd.sBTop)
-       {
-               var nTop=getSValue(oWnd.sBTop,screen.height);
-               strOpts+=",top="+nTop;
-               strOpts+=",screenY="+nTop;
-       }
-       if(oWnd.sBLeft)
-       {
-               var nLeft=getSValue(oWnd.sBLeft,screen.width);
-               strOpts+=",left="+nLeft;
-               strOpts+=",screenX="+nLeft;
-       }
-       if(oWnd.sBWidth)
-       {
-               var nWidth=getSValue(oWnd.sBWidth,screen.width);
-               strOpts+=",width="+nWidth;
-               strOpts+=",outerWidth="+nWidth;
-       }
-       if(oWnd.sBHeight)
-       {
-               var nHeight=getSValue(oWnd.sBHeight,screen.height);
-               strOpts+=",height="+nHeight;
-               strOpts+=",outerHeight="+nHeight;
-       }
-       return strOpts;
-}
-
-function getSValue(sValue,nLength)
-{
-       var nValue=0;
-       var nPos=sValue.indexOf("%");
-       if(nPos!=-1)
-       {
-               if(nPos>0)
-               {
-                       var nPart=parseInt(sValue.substring(0,nPos));
-                       nValue=nLength*nPart/100;
-               }
-       }
-       else
-               nValue=parseInt(sValue);
-       return nValue;
-}
-
-
-window.onload=window_OnLoad;
-
-function window_OnLoad()
-{
-       if(document.location.hash.length>0)
-       {
-               showCSH(document.location.hash.substring(1));
-       }
-
-       if(gsJava=="false")
-               window.moveTo(screen.width,screen.height);
-}
-//-->
-</script>
-</html>
diff --git a/doc/salome/gui/GEOM/whcshdata.htm b/doc/salome/gui/GEOM/whcshdata.htm
deleted file mode 100755 (executable)
index 2f9ae70..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<html>
-<head>
-<title>Geometry Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="javascript1.2" src="whver.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="JavaScript">
-<!--
-var gaCsh=new Array();
-
-var gaWindow=new Array();
-
-var gaRmtProj=new Array();
-
-var gsProjPath=_getPath(document.location.href);
-
-function CshEntityItem(strAliasId,nTopicNum,strUrl)
-{
-       this.strAliasId=strAliasId;
-       this.nTopicNum=nTopicNum;
-       this.strUrl=strUrl;
-}
-
-function CshWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn)
-{
-       this.sName=sWName;
-       this.bUseDefault=bBUseDefault;
-       if(!this.bUseDefault)
-       {
-               this.nBOptions=nWBOptions;
-               this.sBLeft=sWBLeft;
-               this.sBTop=sWBTop;
-               this.sBWidth=sWBWidth;
-               this.sBHeight=sWBHeight;
-       }
-       this.sCaption=sWCaption;
-       this.nPanes=nWPanes;
-       if(this.nPanes==2)
-       {
-               this.nPOptions=nWPOptions;
-               this.sPButtons=sWPButtons;
-               this.sPDefBtn=sWPDefBtn;
-       }
-}
-
-function addRemoteProject(sPath)
-{
-       if(sPath.length!=0)
-       {
-               if(sPath.lastIndexOf("/")!=sPath.length-1)
-                       sPath+="/";
-               gaRmtProj[gaRmtProj.length]=sPath;      
-       }
-}
-
-//Set Context-sensitive help entity...
-function SetCsh(n,strAliasId,nTopicNum,strUrl)
-{
-       gaCsh[n]=new CshEntityItem(strAliasId,nTopicNum,strUrl);
-}
-
-function addWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn)
-{
-       gaWindow[gaWindow.length]=new CshWindow(sWName,bBUseDefault,nWBOptions,sWBLeft,sWBTop,sWBWidth,sWBHeight,sWCaption,nWPanes,nWPOptions,sWPButtons,sWPDefBtn);
-}
-
-
-
-
-
-window.onload=window_OnLoad;
-
-function window_OnLoad()
-{
-       if(parent&&parent!=this&&parent.putCshData)
-       {
-               parent.putCshData(gsProjPath,gaCsh,gaWindow,gaRmtProj);
-       }
-}
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whd_dpns.htm b/doc/salome/gui/GEOM/whd_dpns.htm
deleted file mode 100755 (executable)
index 3983ccb..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-<head>
-<title>Navigator Pane</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body border=0 topmargin=0 bottommargin=0 rightmargin=0 leftmargin=0 scroll=no>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whphost.js"></script>
-<script language="javascript1.2">
-<!--
-var gsNavReDirect="whgdata/whnvp30.htm";
-var gbReDirectThis=false;
-  var bPreferXML             = false;
-  var strProjectFileXML =  "whproj.xml";
-  var strProjectFileHTM =  "whproj.htm";       
-if(window.gbWhPHost)
-{
-         addProject(bPreferXML, strProjectFileXML, strProjectFileHTM);
-         addPane("toc","whtdhtml.htm");
-  addPane("fts","whfdhtml.htm");
-  addPane("glo","whgdhtml.htm");
-  setShowPane("toc");
-
-}
-else
-       document.location.reload();
-
-if (window.gbNav6)
-{
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
-       SendMessage(oMsg);
-}
-
-//-->
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whd_hide0.gif b/doc/salome/gui/GEOM/whd_hide0.gif
deleted file mode 100755 (executable)
index 97ea0bb..0000000
Binary files a/doc/salome/gui/GEOM/whd_hide0.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_hide1.gif b/doc/salome/gui/GEOM/whd_hide1.gif
deleted file mode 100755 (executable)
index 97ea0bb..0000000
Binary files a/doc/salome/gui/GEOM/whd_hide1.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_hide2.gif b/doc/salome/gui/GEOM/whd_hide2.gif
deleted file mode 100755 (executable)
index 97ea0bb..0000000
Binary files a/doc/salome/gui/GEOM/whd_hide2.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_next0.gif b/doc/salome/gui/GEOM/whd_next0.gif
deleted file mode 100755 (executable)
index d92dda5..0000000
Binary files a/doc/salome/gui/GEOM/whd_next0.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_next1.gif b/doc/salome/gui/GEOM/whd_next1.gif
deleted file mode 100755 (executable)
index d92dda5..0000000
Binary files a/doc/salome/gui/GEOM/whd_next1.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_next2.gif b/doc/salome/gui/GEOM/whd_next2.gif
deleted file mode 100755 (executable)
index d92dda5..0000000
Binary files a/doc/salome/gui/GEOM/whd_next2.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_nvp10.htm b/doc/salome/gui/GEOM/whd_nvp10.htm
deleted file mode 100755 (executable)
index 05b5f90..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<html>
-<head>
-<title>Navigation Pane</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-</head>
-<frameset rows="30, *" border="0" frameborder="0">
-       <frame name="navtabs" title="tab selection frame" src="whd_tabs.htm" noresize frameborder="no" scrolling="no" border="0" marginheight="0" marginwidth="0" ></frame>
-       <frame name="navpane" title="navigation frame" src="whd_dpns.htm" ></frame>
-</frameset>
-</html>
diff --git a/doc/salome/gui/GEOM/whd_nvp20.htm b/doc/salome/gui/GEOM/whd_nvp20.htm
deleted file mode 100755 (executable)
index 23c23dc..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-<html>
-<head>
-<title>navigation pane</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsInitPane="toc";
-var gsCurrentPane="";
-var gbLoading = "unknown";
-var gbTryTime = 0;
-var gbMaxTryTime = 6;
-var gbPassPhase0 = 0;
-var gbretried = 0;
-var gbmaxretry = 3;
-var gbretrytime = new Array();
-
-var origWidth = 0;
-var origHeight = 0;
-
-gbretrytime[0]= 5000;
-gbretrytime[1]= 30000;
-gbretrytime[2]= 60000;
-
-function addPane(sName, sFile)
-{
-}
-
-function setShowPane(sName)
-{
-       gsInitPane=sName;
-}
-
-  addPane("toc","whtdhtml.htm");
-  addPane("fts","whfdhtml.htm");
-  addPane("glo","whgdhtml.htm");
-  setShowPane("toc");
-
-
-function window_unload()
-{
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);
-       UnRegisterListener2(this, WH_MSG_SYNCTOC);
-       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);
-       UnRegisterListener2(this, WH_MSG_GETPANEINFO);
-}
-
-function window_OnLoad()
-{
-       var bHidePane=false;
-       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);
-       if (SendMessage(oMsg))
-       {
-               if(oMsg.oParam>0)
-               {
-                       if(oMsg.oParam==1)
-                               gsInitPane="toc";
-                       else if(oMsg.oParam==2)
-                               gsInitPane="idx";
-                       else if(oMsg.oParam==3)
-                               gsInitPane="fts";
-                       else if(oMsg.oParam==4)
-                               gsInitPane="glo";
-               }
-               else if(oMsg.oParam==0)
-               {
-                       bHidePane=true;
-               }
-       }
-       if (bHidePane)
-       {
-               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null)
-               SendMessage(oMsg);
-       }
-       else if (gsInitPane == "toc")
-       {
-               oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
-               SendMessage(oMsg);      
-       }
-       else if (gsInitPane=="idx")
-       {
-               oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
-               SendMessage(oMsg);      
-       }
-       else if (gsInitPane=="fts")
-       {
-               oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)
-               SendMessage(oMsg);      
-       }
-       else if (gsInitPane=="glo")
-       {
-               oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)
-               SendMessage(oMsg);      
-       }
-}
-
-function CheckLoadingPhase0()
-{
-       if (!gbPassPhase0) {
-               setTimeout("CheckLoadingPhase0()", 1000);
-               document.applets[0];
-               gbPassPhase0 = 1;
-       }
-       else {
-               CheckLoadingPhase1();
-       }
-}
-
-function CheckLoadingPhase1()
-{
-       if (gbNav4) {
-               if ("unknown" == gbLoading && document.readystate < 4) {
-                       setTimeout("CheckLoadingPhase1()", 1000);
-               }
-               else if ("unknown" == gbLoading) {
-                       CheckLoadingPhase2();
-               }
-       }
-}
-
-function CheckLoadingPhase2()
-{
-       if (gbNav4) {
-               gbTryTime ++;
-               if ("unknown" == gbLoading) {
-                       if (gbTryTime <= gbMaxTryTime )
-                               setTimeout("CheckLoadingPhase2()", 1000);
-                       else {
-                               if (gnVerMinor != 4.60) {
-                                       alert("Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited.");
-                               }
-                       }       
-               }
-       }
-}
-
-function CheckAppletLoaded()
-{
-       if (typeof(document.webhelp) == "undefined")
-       {
-               document.location.reload();
-               if (gbretried < gbmaxretry)
-               {
-                       gbretried ++;
-                       setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);
-               }
-       }
-}
-
-function reDo() 
-{
-       if (innerWidth != origWidth || innerHeight != origHeight)  
-       {
-               //reloaded applet if nessary
-               gbretried = 0;
-
-               if (gnVerMinor == 4.60) 
-               {
-                       //reload the applet again.
-                       document.location.reload();
-                       gbretried ++;
-               }
-               setTimeout("CheckAppletLoaded();", gbretrytime[gbretried]);
-       }
-}
-
-function onSendMessage(oMsg)
-{
-       if (oMsg)
-       {       
-               var nMsgId = oMsg.nMessageId;
-               var WebHelpApplet = null;
-               if (gbNav4)
-               {
-                       WebHelpApplet = document.applets["WebHelp"];
-                       if (!WebHelpApplet.Command)
-                               document.location="whgdata/whnvp30.htm";
-               }
-               else
-                       WebHelpApplet = WebHelp;
-
-               if(nMsgId==WH_MSG_GETPANEINFO)
-               {
-                       oMsg.oParam=gsCurrentPane;
-                       return false;
-               }
-               else if (gbLoading!="unknown"||gbNav6)
-               {
-                       if (nMsgId == WH_MSG_SHOWTOC)
-                       {
-                               gsCurrentPane="toc";
-                               WebHelpApplet .Command("Contents", null);
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");
-                               SendMessage(onMsg);
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                               SendMessage(onMsg);
-                       }
-                       else if (nMsgId == WH_MSG_SHOWIDX)
-                       {
-                               gsCurrentPane="idx";
-                               WebHelpApplet .Command("Index", null);
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");
-                               SendMessage(onMsg);
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                               SendMessage(onMsg);
-                       }
-                       else if (nMsgId == WH_MSG_SHOWFTS)
-                       {
-                               gsCurrentPane="fts";
-                               WebHelpApplet .Command("Search", null);
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
-                               SendMessage(onMsg);
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                               SendMessage(onMsg);
-                       }
-                       else if (nMsgId == WH_MSG_SHOWGLO)
-                       {
-                               gsCurrentPane="glo";
-                               WebHelpApplet .Command("Glossary", null);
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");
-                               SendMessage(onMsg);
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                               SendMessage(onMsg);
-                       }
-                       else if (nMsgId == WH_MSG_SYNCTOC)
-                       {
-                               gsCurrentPane="toc";
-                               var oTopicParam = oMsg.oParam;
-                               if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)
-                               {
-                                       var sPPath = _browserStringToText(oTopicParam.sPPath);
-                                       var sParam = "";
-                                       for (var i = 0; i < oTopicParam.aPaths.length; i ++)
-                                       {
-                                               sParam += oTopicParam.aPaths[i] + "\r\r";
-                                       }
-                                       WebHelpApplet.Command("SyncToc", sPPath,  sParam);
-                               }
-                       }
-                       else if(nMsgId==WH_MSG_SEARCHTHIS)
-                       {
-                               gsCurrentPane="fts";
-                               WebHelpApplet .Command("Search", oMsg.oParam);
-                               var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
-                               SendMessage(onMsg);
-                               onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                               SendMessage(onMsg);
-                       }
-               }
-       }
-       return true;
-}
-
-function getInitTocInfo()
-{
-       // send message ask for the first time sync toc info.
-       var oParam = new Object();
-       oParam.oTocInfo = null;
-       var oMsg = new whMessage(WH_MSG_GETTOCPATHS, this, 1, oParam);
-       if (SendMessage(oMsg ))
-       {
-               var oTopicParam = oMsg.oParam.oTocInfo;
-               if (oTopicParam && oTopicParam.aPaths && oTopicParam.aPaths.length > 0 && oTopicParam.sPPath)
-               {
-                       var sPPath = _browserStringToText(oTopicParam.sPPath);
-                       var sParam = "";
-                       for (var i = 0; i < oTopicParam.aPaths.length; i ++)
-                       {
-                               sParam += oTopicParam.aPaths[i] + "\r\r";
-                       }
-                       var WebHelpApplet;
-                       if (gbNav4)
-                               WebHelpApplet = document.applets["WebHelp"];
-                       else
-                               WebHelpApplet = WebHelp;
-                       WebHelpApplet.Command("SyncToc", sPPath,  sParam);
-               }
-       }
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
-       RegisterListener2(this, WH_MSG_SHOWTOC);
-       RegisterListener2(this, WH_MSG_SHOWIDX);
-       RegisterListener2(this, WH_MSG_SHOWFTS);
-       RegisterListener2(this, WH_MSG_SHOWGLO);
-       RegisterListener2(this, WH_MSG_SYNCTOC);
-       RegisterListener2(this, WH_MSG_SEARCHTHIS);
-       RegisterListener2(this, WH_MSG_GETPANEINFO);
-
-       window.onunload = window_unload;
-       window.onload=window_OnLoad;
-       window.onerror = null;
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
-
-       if (gbNav4 && !gbNav6 && gbWindows) {
-               setTimeout("CheckLoadingPhase0()", 1000);
-       }
-
-       if (gbNav4) 
-       {
-               origWidth = innerWidth;
-               origHeight = innerHeight;
-               onresize = reDo;
-       }
-}
-else
-       document.location.reload();
-
-if (window.gbNav6)
-{
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
-       SendMessage(oMsg);
-}
-
-//-->
-</script>
-</head>
-<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" bgcolor="c0c0c0">
-<applet code=WebHelp.class name=WebHelp  archive=webhelp.jar width=100% height=100% MAYSCRIPT hspace=0 vspace=0>
-<PARAM name=ProjectFile value=whproj.xml><PARAM name=ResourceFile value=whres.xml>
-<PARAM name=Frame value=bsscright>
-<PARAM name=cabbase value=webhelp.cab>
-</applet>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whd_prev0.gif b/doc/salome/gui/GEOM/whd_prev0.gif
deleted file mode 100755 (executable)
index 518561a..0000000
Binary files a/doc/salome/gui/GEOM/whd_prev0.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_prev1.gif b/doc/salome/gui/GEOM/whd_prev1.gif
deleted file mode 100755 (executable)
index 518561a..0000000
Binary files a/doc/salome/gui/GEOM/whd_prev1.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_prev2.gif b/doc/salome/gui/GEOM/whd_prev2.gif
deleted file mode 100755 (executable)
index 518561a..0000000
Binary files a/doc/salome/gui/GEOM/whd_prev2.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_show0.gif b/doc/salome/gui/GEOM/whd_show0.gif
deleted file mode 100755 (executable)
index 60e8e68..0000000
Binary files a/doc/salome/gui/GEOM/whd_show0.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_show1.gif b/doc/salome/gui/GEOM/whd_show1.gif
deleted file mode 100755 (executable)
index 60e8e68..0000000
Binary files a/doc/salome/gui/GEOM/whd_show1.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_show2.gif b/doc/salome/gui/GEOM/whd_show2.gif
deleted file mode 100755 (executable)
index 60e8e68..0000000
Binary files a/doc/salome/gui/GEOM/whd_show2.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_sync0.gif b/doc/salome/gui/GEOM/whd_sync0.gif
deleted file mode 100755 (executable)
index 1a9785c..0000000
Binary files a/doc/salome/gui/GEOM/whd_sync0.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_sync1.gif b/doc/salome/gui/GEOM/whd_sync1.gif
deleted file mode 100755 (executable)
index 1a9785c..0000000
Binary files a/doc/salome/gui/GEOM/whd_sync1.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_sync2.gif b/doc/salome/gui/GEOM/whd_sync2.gif
deleted file mode 100755 (executable)
index 1a9785c..0000000
Binary files a/doc/salome/gui/GEOM/whd_sync2.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_tab0.gif b/doc/salome/gui/GEOM/whd_tab0.gif
deleted file mode 100755 (executable)
index 955c42f..0000000
Binary files a/doc/salome/gui/GEOM/whd_tab0.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_tab1.gif b/doc/salome/gui/GEOM/whd_tab1.gif
deleted file mode 100755 (executable)
index b3ec41d..0000000
Binary files a/doc/salome/gui/GEOM/whd_tab1.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_tab2.gif b/doc/salome/gui/GEOM/whd_tab2.gif
deleted file mode 100755 (executable)
index 08fb0ce..0000000
Binary files a/doc/salome/gui/GEOM/whd_tab2.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_tab3.gif b/doc/salome/gui/GEOM/whd_tab3.gif
deleted file mode 100755 (executable)
index 1819c8e..0000000
Binary files a/doc/salome/gui/GEOM/whd_tab3.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_tab4.gif b/doc/salome/gui/GEOM/whd_tab4.gif
deleted file mode 100755 (executable)
index 1a6fc4f..0000000
Binary files a/doc/salome/gui/GEOM/whd_tab4.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_tab5.gif b/doc/salome/gui/GEOM/whd_tab5.gif
deleted file mode 100755 (executable)
index 9340192..0000000
Binary files a/doc/salome/gui/GEOM/whd_tab5.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_tab6.gif b/doc/salome/gui/GEOM/whd_tab6.gif
deleted file mode 100755 (executable)
index fe312d2..0000000
Binary files a/doc/salome/gui/GEOM/whd_tab6.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_tab7.gif b/doc/salome/gui/GEOM/whd_tab7.gif
deleted file mode 100755 (executable)
index 3b95ae2..0000000
Binary files a/doc/salome/gui/GEOM/whd_tab7.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_tab8.gif b/doc/salome/gui/GEOM/whd_tab8.gif
deleted file mode 100755 (executable)
index c80acc8..0000000
Binary files a/doc/salome/gui/GEOM/whd_tab8.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_tabs.htm b/doc/salome/gui/GEOM/whd_tabs.htm
deleted file mode 100755 (executable)
index e8c498c..0000000
+++ /dev/null
@@ -1,533 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>WebHelp Tabs Frame in Navigation Pane</TITLE>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<!-- WebHelp version 5.10 -->
-</HEAD>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsBgColor="#c0c0c0"
-var gsBgImage="";
-var gnCurPane=0;
-var gsFirstPane="";
-var goTocFont=null;
-var goIdxFont=null;
-var goFtsFont=null;
-var goGloFont=null;
-var gPane=new Array();
-var gShowFirst=0;
-var gnTabType=0;
-
-function window_unload()
-{
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);
-       UnRegisterListener2(this,WH_MSG_SHOWIDX);
-       UnRegisterListener2(this,WH_MSG_SHOWFTS);
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);
-}
-
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Toc") goTocFont=vFont;
-       else if(sType=="Idx") goIdxFont=vFont;
-       else if(sType=="Fts") goFtsFont=vFont;
-       else if(sType=="Glo") goGloFont=vFont;
-}
-
-function TocWriteClassStyle()
-{
-       var sStyle="<STYLE TYPE='text/css'>";
-       sStyle+=".TextTabToc {"+getFontStyle(goTocFont)+"}";
-       sStyle+=".TextTabIdx {"+getFontStyle(goIdxFont)+"}";
-       sStyle+=".TextTabFts {"+getFontStyle(goFtsFont)+"}";
-       sStyle+=".TextTabGlo {"+getFontStyle(goGloFont)+"}";
-       sStyle+="A:hover {text-decoration:underline;}";
-       sStyle+="</STYLE>";
-       document.write(sStyle);
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       if(sBgColor!=null&&sBgColor.length>0)
-               gsBgColor=sBgColor;
-}
-
-function setBackground(sBgImage)
-{
-       if(sBgImage!=null&&sBgImage.length>0)
-               gsBgImage=sBgImage;
-}
-
-function selectToc()
-{
-       var oMessage=new whMessage(WH_MSG_SHOWTOC,this,1,null);
-       SendMessage(oMessage);
-}
-
-function selectIdx()
-{
-       var oMessage=new whMessage(WH_MSG_SHOWIDX,this,1,null);
-       SendMessage(oMessage);
-}
-function selectFts()
-{
-       var oMessage=new whMessage(WH_MSG_SHOWFTS,this,1,null);
-       SendMessage(oMessage);
-}
-
-function selectGlo()
-{
-       var oMessage=new whMessage(WH_MSG_SHOWGLO,this,1,null);
-       SendMessage(oMessage);
-}
-
-
-function onSendMessage(oMsg)
-{
-       if(oMsg)
-       {
-               var nMsgId=oMsg.nMessageId;
-               if(nMsgId==WH_MSG_SHOWTOC)
-               {
-                       setTimeout("showTabByName(\"toc\");",1);
-               }
-               else if(nMsgId==WH_MSG_SHOWIDX)
-               {
-                       setTimeout("showTabByName(\"idx\");",1);
-               }
-               else if(nMsgId==WH_MSG_SHOWFTS)
-               {
-                       setTimeout("showTabByName(\"fts\");",1);
-               }
-               else if(nMsgId==WH_MSG_SHOWGLO)
-               {
-                       setTimeout("showTabByName(\"glo\");",1);
-               }
-       }
-       return true;
-}
-
-function showTabByName(sTabName)
-{
-       for(var i=0;i<gPane.length;i++)
-       {
-               if(gPane[i]==sTabName)
-               {
-                       showTab(i);
-                       break;
-               }
-       }
-}
-
-function showTab(n)
-{
-       gnCurPane=n;
-       if(gnTabType==0)
-       {
-               if(n<gPane.length)
-               {
-                       if(document.images["TocTab"]&&document.images["TocTab"]!=null){
-                               if(gPane[n]=="toc")
-                                       document.images["TocTab"].src=getBtnImage("toc",1);
-                               else
-                                       document.images["TocTab"].src=getBtnImage("toc",0);
-                       }
-                       if(document.images["IndexTab"]&&document.images["IndexTab"]!=null){
-                               if(gPane[n]=="idx")
-                                       document.images["IndexTab"].src=getBtnImage("idx",1);
-                               else
-                                       document.images["IndexTab"].src=getBtnImage("idx",0);
-                       }
-                       if(document.images["FtsTab"]&&document.images["FtsTab"]!=null){
-                               if(gPane[n]=="fts")
-                                       document.images["FtsTab"].src=getBtnImage("fts",1);
-                               else
-                                       document.images["FtsTab"].src=getBtnImage("fts",0);
-                       }
-                       if(document.images["GloTab"]&&document.images["GloTab"]!=null){
-                               if(gPane[n]=="glo")
-                                       document.images["GloTab"].src=getBtnImage("glo",1);
-                               else
-                                       document.images["GloTab"].src=getBtnImage("glo",0);
-                       }
-               }
-       }
-       else if(gnTabType==1)
-       {
-       }
-       else if(gnTabType==2)
-       {
-               if(n<gPane.length)
-               {
-                       if(document.images["tabSelection"]!=null)
-                               document.images["tabSelection"].src=getMapImage(gPane[n]);
-               }
-       }
-}
-
-function addPane(sName)
-{
-       gPane[gPane.length]=sName;
-}
-
-function setShowPane(sName)
-{
-       if(gsFirstPane!="")
-               sName=gsFirstPane;
-       for(var i=0;i<gPane.length;i++)
-       {
-               if(gPane[i]==sName)
-                       gShowFirst=i;
-       }
-}
-
-function selectDefaultTab()
-{
-       showTab(gShowFirst);
-       if(document.body)
-       {
-               if(gsBgImage&&gsBgImage.length>0)
-               {
-                       document.body.background=gsBgImage;
-               }
-               if(gsBgColor&&gsBgColor.length>0)
-               {
-                       document.body.bgColor=gsBgColor;
-               }
-       }
-}
-
-function getTabsHTML()
-{
-       var sHTML="";
-       for(var i=0;i<gPane.length;i++)
-       {
-               if(gnTabType==0)
-                       sHTML+=getTabHTML(gPane[i]);
-               else if(gnTabType==1)
-               {
-                       if(sHTML.length>0)
-                       {
-                               sHTML+=getSeparator();
-                       }
-                       sHTML+=getTabHTMLText(gPane[i]);
-               }
-
-       }
-       return sHTML;
-}
-
-function getSeparator()
-{
-       var sSep="";
-       
-       return sSep;
-}
-
-function getTabHTML(sTabName)
-{
-       if (sTabName == "toc")
-               return "<a title=\"Contents\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\" onmouseover=\"mouseOverToc();\" onmouseout=\"mouseOutToc();\"><img name=\"TocTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
-       else if (sTabName =="idx")
-               return "<a title=\"Index\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\" onmouseover=\"mouseOverIdx();\" onmouseout=\"mouseOutIdx();\"><img name=\"IndexTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
-       else if (sTabName == "fts")
-               return "<a title=\"Search\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\" onmouseover=\"mouseOverFts();\" onmouseout=\"mouseOutFts();\"><img name=\"FtsTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
-       else if (sTabName == "glo")
-               return "<a title=\"Glossary\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\"onmouseover=\"mouseOverGlo();\" onmouseout=\"mouseOutGlo();\"><img name=\"GloTab\" src=\"" + getBtnImage(sTabName, 0) + "\" border=\"0\"></a>";
-       return "";
-}
-
-function mouseOverToc()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "toc")
-       {
-               sImg = getBtnImage("toc", 3);
-       }
-       else
-       {
-               sImg = getBtnImage("toc", 2);
-       }
-       if (sImg.length > 0)
-               document.images["TocTab"].src = sImg;
-}
-
-function mouseOverIdx()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "idx")
-       {
-               sImg = getBtnImage("idx", 3);
-       }
-       else
-       {
-               sImg = getBtnImage("idx", 2);
-       }
-       if (sImg.length > 0)
-               document.images["IndexTab"].src = sImg;
-}
-
-function mouseOverFts()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "fts")
-       {
-               sImg = getBtnImage("fts", 3);
-       }
-       else
-       {
-               sImg = getBtnImage("fts", 2);
-       }
-       if (sImg.length > 0)
-               document.images["FtsTab"].src = sImg;
-}
-
-function mouseOverGlo()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "glo")
-       {
-               sImg = getBtnImage("glo", 3);
-       }
-       else
-       {
-               sImg = getBtnImage("glo", 2);
-       }
-       if (sImg.length > 0)
-               document.images["GloTab"].src = sImg;
-}
-
-function mouseOutToc()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "toc")
-       {
-               sImg = getBtnImage("toc", 1);
-       }
-       else
-       {
-               sImg = getBtnImage("toc", 0);
-       }
-       if (sImg.length > 0)
-               document.images["TocTab"].src = sImg;
-}
-
-function mouseOutIdx()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "idx")
-       {
-               sImg = getBtnImage("idx", 1);
-       }
-       else
-       {
-               sImg = getBtnImage("idx", 0);
-       }
-       if (sImg.length > 0)
-               document.images["IndexTab"].src = sImg;
-}
-
-function mouseOutFts()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "fts")
-       {
-               sImg = getBtnImage("fts", 1);
-       }
-       else
-       {
-               sImg = getBtnImage("fts", 0);
-       }
-       if (sImg.length > 0)
-               document.images["FtsTab"].src = sImg;
-}
-
-function mouseOutGlo()
-{
-       var sImg = "";
-       if (gPane[gnCurPane] == "glo")
-       {
-               sImg = getBtnImage("glo", 1);
-       }
-       else
-       {
-               sImg = getBtnImage("glo", 0);
-       }
-       if (sImg.length > 0)
-               document.images["GloTab"].src = sImg;
-}
-
-function getTabHTMLText(sTabName)
-{
-       if (sTabName == "toc")
-               return "<a class=\"TextTabToc\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">Contents</a>&nbsp;";
-       else if (sTabName =="idx")
-               return "<a class=\"TextTabIdx\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">Index</a>&nbsp;";
-       else if (sTabName == "fts")
-               return "<a class=\"TextTabFts\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">Search</a>&nbsp;";
-       else if (sTabName == "glo")
-               return "<a class=\"TextTabGlo\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">Glossary</a>&nbsp;";
-       return "";
-}
-
-function getImageMap()
-{
-       var sHTML = "<map name=\"tabSelectionMap\">";
-       for (var i = 0; i < gPane.length; i ++)
-       {
-               sHTML += getMapArea(gPane[i]);
-       }
-       sHTML += "</map>";
-       return sHTML;
-}
-
-function getMapArea(sTabName)
-{
-       if (sTabName == "toc")
-               return "<area title=\"Contents\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectToc();return false;\">";
-       else if (sTabName =="idx")
-               return "<area title=\"Index\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectIdx();return false;\">";
-       else if (sTabName == "fts")
-               return "<area title=\"Search\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectFts();return false;\">";
-       else if (sTabName == "glo")
-               return "<area title=\"Glossary\" shape=\"\" coords=\"\" href=\"javascript:void(0);\" onclick=\"selectGlo();return false;\">";
-       return "";
-}
-
-function getBtnImage(sTabName, nStatus)
-{
-       if (sTabName == "toc")
-       {
-               if (nStatus == 0)
-                       return "whd_tab2.gif";
-               else if (nStatus == 1)
-                       return "whd_tab1.gif";
-               else if (nStatus == 2)
-                       return "";
-               else if (nStatus == 3)
-                       return "";
-       }
-       else if (sTabName =="idx")
-       {
-               if (nStatus == 0)
-                       return "whd_tab4.gif";
-               else if (nStatus == 1)
-                       return "whd_tab3.gif";
-               else if (nStatus == 2)
-                       return "";
-               else if (nStatus == 3)
-                       return "";
-       }
-       else if (sTabName == "fts")
-       {
-               if (nStatus == 0)
-                       return "whd_tab6.gif";
-               else if (nStatus == 1)
-                       return "whd_tab5.gif";
-               else if (nStatus == 2)
-                       return "";
-               else if (nStatus == 3)
-                       return "";
-       }
-       else if (sTabName == "glo")
-       {
-               if (nStatus == 0)
-                       return "whd_tab8.gif";
-               else if (nStatus == 1)
-                       return "whd_tab7.gif";
-               else if (nStatus == 2)
-                       return "";
-               else if (nStatus == 3)
-                       return "";
-       }
-       return "";
-}
-
-function getMapImage(sTabName)
-{
-       if (sTabName == "toc")
-               return "";
-       else if (sTabName =="idx")
-               return "";
-       else if (sTabName == "fts")
-               return "";
-       else if (sTabName == "glo")
-               return "";
-       return "";
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
-       window.onload = selectDefaultTab;
-       RegisterListener2(this, WH_MSG_SHOWTOC);
-       RegisterListener2(this, WH_MSG_SHOWIDX);
-       RegisterListener2(this, WH_MSG_SHOWFTS);
-       RegisterListener2(this, WH_MSG_SHOWGLO);
-       window.onunload = window_unload;
-       goTocFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-       goIdxFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-       goFtsFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-       goGloFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-
-       if (navigator.currentNavPen)
-               gsFirstPane = navigator.currentNavPen;
-
-       setBackgroundcolor("");
-       setBackground("whd_tab0.gif");
-       
-       
-       
-       
-         addPane("toc","whtdhtml.htm");
-  addPane("fts","whfdhtml.htm");
-  addPane("glo","whgdhtml.htm");
-  setShowPane("toc");
-
-
-       gnTabType = 0; // 0 button. // 1 text. // 2 image mapping.
-       TocWriteClassStyle();
-       var sHTML = "<body scroll=\"no\" bgcolor=\"#c0c0c0\"    background=\"whd_tab0.gif\" style=\"margin-top:0;margin-bottom:0;margin-left:0;margin-right:0\">";
-       if (gPane.length > 0)
-       {
-               if (gnTabType == 0 || gnTabType == 1)
-               {
-                       sHTML += "<table width=\"100%\">";
-                       sHTML += "<tr>";
-                       sHTML += "<td>";
-                       sHTML += "<nobr>";
-                       sHTML += getTabsHTML();
-                       sHTML += "</nobr></td></tr>";
-                       sHTML += " <tr><td height=\"2\"></td></tr>";
-                       sHTML += "</table>";
-               }
-               else if (gnTabType == 2)
-               {
-                       sHTML += getImageMap();
-                       sHTML +="<img name=\"tabSelection\" src=\"" + getMapImage(gPane[0]) + "\" x-maintain-ratio=\"true\" usemap=\"#tabSelectionMap\"";
-                       if (gbIE)
-                               sHTML +=" style=\"border: none; width:px; height:px; float: none;\"";
-                       sHTML +=" width=\"\" height=\"\" border=\"0\">";
-               }
-       }
-       sHTML += "</body>";
-       document.write(sHTML);
-}
-else
-       document.location.reload();
-
-if (window.gbNav6)
-{
-       var oMsg=new whMessage(WH_MSG_RELOADNS6,this, 1,null);
-       SendMessage(oMsg);
-}
-//-->
-</script>
-</HTML>
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whd_toc1.gif b/doc/salome/gui/GEOM/whd_toc1.gif
deleted file mode 100755 (executable)
index 1101725..0000000
Binary files a/doc/salome/gui/GEOM/whd_toc1.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_toc2.gif b/doc/salome/gui/GEOM/whd_toc2.gif
deleted file mode 100755 (executable)
index 975e5f6..0000000
Binary files a/doc/salome/gui/GEOM/whd_toc2.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_toc3.gif b/doc/salome/gui/GEOM/whd_toc3.gif
deleted file mode 100755 (executable)
index 4b8122f..0000000
Binary files a/doc/salome/gui/GEOM/whd_toc3.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_toc4.gif b/doc/salome/gui/GEOM/whd_toc4.gif
deleted file mode 100755 (executable)
index 3f9a036..0000000
Binary files a/doc/salome/gui/GEOM/whd_toc4.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_topic.xml b/doc/salome/gui/GEOM/whd_topic.xml
deleted file mode 100755 (executable)
index b1946d7..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1' ?>
-<topictemplate>
- <topic type="normal">
-  <add tag="head" pos="endbefore" >
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_PROXY_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       ";
-         OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");
-         OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");
-         OutputInTopicNavBarDataButtons("addButton(\"%s\",%s, \"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",%d,%d);\r\n");
-       "
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       ";
-         OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");
-         OutputInTopicNavBarDataWebSearch.href("addSearchFormHref(\"%s\");\r\n");
-       "
-               autoSync(";WH_USER_OPTIONS.autosync_toc;");
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-"]]>
-  </add>
-  <add tag="body" pos="beginafter">
-    <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(";WH_WEBSKIN.topic.bar.top.pos;");
-//-->
-</script>"]]>  
-  </add>
-  <add tag="body" pos="endbefore">
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(";WH_WEBSKIN.topic.bar.bottom.pos;");
-//-->
-</script>";
-OutputInTopicNavBarDataWebSearch.form();]]>    
-  </add>
- </topic>
- <topic type="frameset">
-  <add tag="head" pos="endbefore" >
-   <![CDATA["<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_MESSAGE_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript\" src=\"";SF_VERSION_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_UTILS_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_FRAMESET_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\" src=\"";SF_TOPIC_JS;"\"></script>
-<script type=\"text/javascript\" language=\"javascript1.2\">
-<!--
-if (window.setRelStartPage)
-{
-";
-  OutputInTopicNavBarDataHomePage("setRelStartPage(\"%s\");\r\n");
-  OutputInTopicNavBarDataToc("addTocInfo(\"%s\");\r\n");
-  OutputInTopicNavBarDataBrowse("addAvenueInfo(\"%s\",\"%s\",\"%s\");\r\n");
-"
-if (window.autoSync)
-       autoSync(1);
-}
-//-->
-</script>
-"]]>
-  </add>
- </topic>
-</topictemplate>
diff --git a/doc/salome/gui/GEOM/whd_wbsh0.gif b/doc/salome/gui/GEOM/whd_wbsh0.gif
deleted file mode 100755 (executable)
index 383688e..0000000
Binary files a/doc/salome/gui/GEOM/whd_wbsh0.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_wbsh1.gif b/doc/salome/gui/GEOM/whd_wbsh1.gif
deleted file mode 100755 (executable)
index 383688e..0000000
Binary files a/doc/salome/gui/GEOM/whd_wbsh1.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whd_wbsh2.gif b/doc/salome/gui/GEOM/whd_wbsh2.gif
deleted file mode 100755 (executable)
index 383688e..0000000
Binary files a/doc/salome/gui/GEOM/whd_wbsh2.gif and /dev/null differ
diff --git a/doc/salome/gui/GEOM/whfbody.htm b/doc/salome/gui/GEOM/whfbody.htm
deleted file mode 100755 (executable)
index ea648e4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<html>
-<head>
-<title>Search Result</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<base target="bsscright">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whlang.js"></script>
-<script language="javascript1.2" src="whfhost.js"></script>
-<script language="javascript1.2">
-<!--
-if(window.gbWhFHost)
-{
-       
-       
-       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Error", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-       setActiveBgColor("#cccccc");
-       setMargin("0pt");
-       setIndent("9pt");
-       FtsWriteClassStyle();
-}
-else
-       document.location.reload();
-//-->
-</script>
-</head>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">
-</body>
-</html>
-
diff --git a/doc/salome/gui/GEOM/whfdhtml.htm b/doc/salome/gui/GEOM/whfdhtml.htm
deleted file mode 100755 (executable)
index c2e65be..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>
-<head>
-<title>Search Frame</TITLE>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script LANGUAGE="javascript1.2">
-<!--
-var gbIndexLayerInit = false;
-var strWrite="";
-if (window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)
-{
-       if (gbMac)
-               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=1>";
-       else
-               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=1>";
-       strWrite +="<FRAME SRC='whfform.htm' title='search form frame' name='ftsform' noresize='yes' scrolling='no'>";
-       strWrite +="<FRAME SRC='whfbody.htm' title='search result frame' name='ftsbody' scrolling='yes'>";
-       strWrite +="</FRAMESET>";
-       document.write(strWrite);
-}
-else
-       document.location.reload();
-//-->
-</script>
-</html>
diff --git a/doc/salome/gui/GEOM/whfform.htm b/doc/salome/gui/GEOM/whfform.htm
deleted file mode 100755 (executable)
index 0f8f90a..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<html>
-<head>
-<title>Search Form</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<style>
-<!--
-body {margin:0;}
--->
-</style>
-<body bgcolor="#c0c0c0">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whform.js"></script>
-<script language="javascript1.2">
-<!--
-var gstrInput = "";
-function ftsLookup(bCR)
-{
-       if (bCR)
-       {
-               var strInput = document.FtsInputForm.keywordField.value.toUpperCase();
-               if (strInput != "") {
-                       var oMsg = new whMessage(WH_MSG_SEARCHFTSKEY, this, 1, strInput);
-                       if (!SendMessage(oMsg))
-                       {
-                               gstrInput = strInput;
-                       }
-                       else
-                               gstrInput = "";
-               }
-
-               if (gbMac) {
-                       document.FtsInputForm.keywordField.focus();
-               }
-       }
-       return;
-}
-
-function beforeInit()
-{
-       var oParam = new Object();
-       oParam.sValue = "";
-       var oMsg = new whMessage(WH_MSG_GETSEARCHS, this, 1, oParam);
-       if (SendMessage(oMsg))
-       {
-               if (oParam.sValue != "" && oParam.sValue != "- Search -")
-               {
-                       document.FtsInputForm.keywordField.value = oParam.sValue;
-                       gfunLookUp(true);
-               }
-       }
-       init(); 
-}
-
-function window_unload()
-{
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);
-       UnRegisterListener2(this, WH_MSG_SEARCHTHIS);
-       UnRegisterListener2(this, WH_MSG_BACKUPSEARCH);
-}
-
-function onSendMessage(oMsg)
-{
-       if (oMsg.nMessageId == WH_MSG_SHOWFTS)
-       {
-               document.FtsInputForm.keywordField.focus();
-       }
-       else if (oMsg.nMessageId == WH_MSG_SHOWIDX ||
-               oMsg.nMessageId == WH_MSG_SHOWTOC || 
-               oMsg.nMessageId == WH_MSG_SHOWGLO)
-       {
-               document.FtsInputForm.keywordField.blur();
-       }
-       else if (oMsg.nMessageId == WH_MSG_SEARCHTHIS)
-       {
-               if (oMsg.oParam != "- Search -")
-               {
-                       document.FtsInputForm.keywordField.value = oMsg.oParam;
-                       gfunLookUp(true);
-               }
-       }
-       else if (oMsg.nMessageId == WH_MSG_BACKUPSEARCH)
-       {
-               if (gstrInput)
-               {
-                       oMsg.oParam = gstrInput;
-                       gstrInput = "";
-                       return false;
-               }
-       }
-       return true;
-}
-
-if (window.gbWhForm)
-{
-       RegisterListener2(this, WH_MSG_SHOWTOC);
-       RegisterListener2(this, WH_MSG_SHOWIDX);
-       RegisterListener2(this, WH_MSG_SHOWFTS);
-       RegisterListener2(this, WH_MSG_SHOWGLO);
-       RegisterListener2(this, WH_MSG_SEARCHTHIS);
-       RegisterListener2(this, WH_MSG_BACKUPSEARCH);
-       gfunLookUp = ftsLookup;
-       gfunInit = null;
-       gstrFormName = "FtsInputForm"
-       gsTitle = "Type in the word(s) to search for:";
-       gsTitle = "Type in the word(s) to search for:";
-       setGoImage1("");
-       
-       
-       
-       
-       
-       
-       setGoText("Go");
-       setFont("Title", "Arial","9pt","#000000","normal","normal","none");
-       
-       
-       document.write(getFormHTML());
-       writeFormStyle();
-       window.onload = beforeInit;
-       window.onunload=window_unload;
-}
-else
-       document.location.reload();
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whfhost.js b/doc/salome/gui/GEOM/whfhost.js
deleted file mode 100755 (executable)
index c3c7144..0000000
+++ /dev/null
@@ -1,945 +0,0 @@
-//     WebHelp 5.10.003
-var gsSK2=null;
-var gsSK=null;
-var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7";
-var gnCLF=0;
-var gsHelpCannotSearch="Cannot search for that phrase.";
-var gsNoTopics="No Topics Found.";
-var gsLoadingDivID="LoadingDiv";
-var gsLoadingMsg="Loading data, please wait...";
-var gsSearchMsg="Searching...";
-var gsResultDivID="ResultDiv";
-var gaaFCD=new Array();
-var gaaFTCD=new Array();
-var goCF=null;
-var goCTF=null;
-var gaTI=null;
-var gnCurrentOp=0;
-var gbNot=false;
-var gbReady=false;
-var gnLoadFts=1;
-var gnCacheLimits=5;
-var gaCCD=new Array();
-var gbXML=false;
-var gaData=new Array();
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var gsMargin="0pt";
-var gsIndent="0pt";
-var gsCheckKey=null;
-var gnIndexNum=0;
-var gaFtsContentsCon=null;
-var gaTopicCheckInfo=null;
-var gnTopicCheck=0;
-var goFont=null;
-var goErrFont=null;
-var goHoverFont=null;
-var gsABgColor="#cccccc";
-var gbWhFHost=false;
-var gbFirst=false;
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Normal")
-               goFont=vFont;
-       else if(sType=="Error")
-               goErrFont=vFont;
-       else if(sType=="Hover")
-               goHoverFont=vFont;
-}
-
-function setActiveBgColor(sBgColor)
-{
-       gsABgColor=sBgColor;
-}
-
-function setMargin(sMargin)
-{
-       gsMargin=sMargin;
-}
-
-function setIndent(sIndent)
-{
-       gsIndent=sIndent;
-}
-
-function updateCache(oCF)
-{
-       var len=gaCCD.length;
-       if(len<gnCacheLimits*gnCLF)
-               gaCCD[len]=oCF;
-       else{
-               gaCCD[0].aTopics=null;
-               gaCCD[0].aFtsKeys=null;
-               removeItemFromArray(gaCCD,0);
-               gaCCD[len-1]=oCF;
-       }
-}
-
-function addFtsInfo(sPPath,sDPath,sFtsFile)
-{
-       gaData[gaData.length]=new ftsInfo(sPPath,sDPath,sFtsFile);
-}
-
-function onLoadXMLError()
-{
-       if(gnLoadFts==1)
-       {
-               var aFCD=new Array();
-               var aFTCD=new Array();
-               ftsReady(aFCD,aFTCD);
-       }
-       else if(gnLoadFts==3)
-       {
-               var aTopics=new Array();
-               putFtsTData(aTopics);
-       }
-       else if(gnLoadFts==2)
-       {
-               putFtsWData(aFtsContents);
-               var aFtsContents=new Array();
-       }
-}
-
-function putDataXML(xmlDoc,sDocPath)
-{
-       if(gnLoadFts==1)
-       {
-               var node=xmlDoc.lastChild;
-               if(node)
-               {
-                       var oChild=node.firstChild;
-                       var aFCD=new Array();
-                       var aFTCD=new Array();
-                       while(oChild)
-                       {
-                               if(oChild.nodeName=="chunkinfo")
-                               {
-                                       var sURL=oChild.getAttribute("url");
-                                       var sFirst=oChild.getAttribute("first");
-                                       var sLast=oChild.getAttribute("last");
-                                       if(sURL&&sFirst&&sLast)
-                                       {
-                                               item=new Object();
-                                               item.sStartKey=sFirst;
-                                               item.sEndKey=sLast;
-                                               item.sFileName=sURL;
-                                               aFCD[aFCD.length]=item;
-                                       }
-                               }
-                               else if(oChild.nodeName=="tchunkinfo")
-                               {
-                                       var sURL=oChild.getAttribute("url");
-                                       var nB=parseInt(oChild.getAttribute("first"));
-                                       var nE=parseInt(oChild.getAttribute("last"));
-                                       if(sURL&&sFirst&&sLast)
-                                       {
-                                               item=new Object();
-                                               item.nBegin=nB;
-                                               item.nEnd=nE;
-                                               item.sFileName=sURL;
-                                               aFTCD[aFTCD.length]=item;
-                                       }
-
-                               }
-                               oChild=oChild.nextSibling;
-                       }
-                       ftsReady(aFCD,aFTCD);
-               }
-       }
-       else if(gnLoadFts==3)
-       {
-               var node=xmlDoc.lastChild;
-               if(node)
-               {
-                       var oChild=node.firstChild;
-                       var aTopics=new Array();
-                       while(oChild)
-                       {
-                               if(oChild.nodeName=="topic")
-                               {
-                                       var name=oChild.getAttribute("name");
-                                       var sURL=oChild.getAttribute("url");
-                                       if(name&&name.length>0&&sURL)
-                                       {
-                                               var topic=new Object();
-                                               topic.sTopicTitle=name;
-                                               topic.sTopicURL=sURL;
-                                               aTopics[aTopics.length]=topic;
-                                       }
-                               }
-                               oChild=oChild.nextSibling;
-                       }
-                       putFtsTData(aTopics);
-               }
-       }
-       else if(gnLoadFts==2)
-       {
-               var node=xmlDoc.lastChild;
-               if(node)
-               {
-                       var oChild=node.firstChild;
-                       var aFtsContents=new Array();
-                       while(oChild)
-                       {
-                               if(oChild.nodeName=="key")
-                               {
-                                       var name=oChild.getAttribute("name");
-                                       if(name&&name.length>0)
-                                       {
-                                               var item=new Object();
-                                               item.sItemName=name;
-                                               aFtsContents[aFtsContents.length]=item;
-                                               var oChildChild=oChild.firstChild;
-                                               while(oChildChild)
-                                               {
-                                                       if(oChildChild.nodeName=="#text")
-                                                       {
-                                                               var sIDs=oChildChild.nodeValue;
-                                                               if(sIDs)
-                                                               {
-                                                                       var nBPos=0;
-                                                                       do
-                                                                       {
-                                                                               var nPos=sIDs.indexOf(",",nBPos);
-                                                                               var sID=null;
-                                                                               if(nPos!=-1)
-                                                                                       sID=sIDs.substring(nBPos,nPos);
-                                                                               else
-                                                                                       sID=sIDs.substring(nBPos);
-
-                                                                               if(sID)
-                                                                               {
-                                                                                       var id=parseInt(sID);
-                                                                                       if(!isNaN(id))
-                                                                                       {
-                                                                                               if(!item.aTopics)
-                                                                                                       item.aTopics=new Array();
-                                                                                               item.aTopics[item.aTopics.length]=id;
-                                                                                       }
-                                                                               }
-                                                                               nBPos=nPos+1;
-                                                                       }while(nBPos!=0&&nBPos<sIDs.length);
-                                                               }
-                                                       }
-                                                       oChildChild=oChildChild.nextSibling;
-                                               }
-                                       }
-                               }
-                               oChild=oChild.nextSibling;
-                       }
-                       putFtsWData(aFtsContents);
-               }
-       }
-}
-
-function ftsInfo(sPPath,sDPath,sFtsFile)
-{
-       this.sPPath=sPPath;
-       this.sDPath=sDPath;
-       this.sFtsFile=sFtsFile;
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-       {
-               document.body.background=gsBgImage;
-       }
-       if(gsBgColor&&gsBgColor.length>0)
-       {
-               document.body.bgColor=gsBgColor;
-       }
-       writeResultDiv();
-       loadFts();
-       var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null)
-       SendMessage(oMsg);
-}
-
-function writeResultDiv()
-{
-       var sHTML="<div id=\""+gsResultDivID+"\" style=\"POSITION:absolute;\"></div>";
-       document.body.insertAdjacentHTML("beforeEnd",sHTML);
-}
-
-function loadFts()
-{
-       if(!gbReady)
-       {
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
-               if(SendMessage(oResMsg)&&oResMsg.oParam)
-               {
-                       gbReady=true;
-                       var oProj=oResMsg.oParam;
-                       var aProj=oProj.aProj;
-                       gbXML=oProj.bXML;
-                       if(aProj.length>0)
-                       {
-                               var sLangId=aProj[0].sLangId;
-                               for(var i=0;i<aProj.length;i++)
-                               {
-                                       if(aProj[i].sFts&&aProj[i].sLangId==sLangId)
-                                       {
-                                               addFtsInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sFts);
-                                       }
-                               }
-                       }
-                       loadFD();
-
-               }                               
-       }
-}
-
-function loadFD()
-{
-       if(gnCLF<gaData.length)
-       {
-               gnLoadFts=1;
-               loadData2(gaData[gnCLF].sPPath+gaData[gnCLF].sDPath+gaData[gnCLF].sFtsFile);
-       }
-       else 
-       {
-               var oMsg = new whMessage(WH_MSG_BACKUPSEARCH, this, 1, null);
-               if (SendMessage(oMsg))
-               {
-                       if (oMsg.oParam)
-                       {
-                               gsSK=oMsg.oParam.toLowerCase();
-                               findFTSKey();
-                       }
-               }
-               RegisterListener2(this, WH_MSG_SEARCHFTSKEY);
-       }
-}
-
-function loadData2(sFile)
-{
-       if(gbXML)
-               loadDataXML(sFile);
-       else
-               loadData(sFile);
-}
-
-function findFTSKey()
-{
-       gaTI=new Array();
-       gnCurrentOp=1;
-       gbNot=false;
-       displayMsg(gsSearchMsg);
-       if(gsSK!="")
-       {
-               gbFirst=true;
-               findOneKey();
-       }
-}
-
-function findOneKey()
-{
-       if(gsSK && gsSK!="")
-       {
-               var sInput=gsSK;
-               var sCW="";
-               var nS=-1;
-               var nSep=-1;
-               for(var nChar=0;nChar<gsFtsBreakChars.length;nChar++){
-                       var nFound=sInput.indexOf(gsFtsBreakChars.charAt(nChar));
-                       if((nFound!=-1)&&((nS==-1)||(nFound<nS))){
-                               nS=nFound;
-                               nSep=nChar;
-                       }
-               }
-               if(nS==-1){
-                       sCW=sInput;
-                       sInput="";
-               }else{
-                       sCW=sInput.substring(0,nS);
-                       sInput=sInput.substring(nS+1);
-               }
-
-               gsSK=sInput;
-               
-               if((sCW=="or")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){
-                       gnCurrentOp=0;
-                       gbNot=false;
-               }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){
-                       gnCurrentOp=1;
-                       gbNot=false;
-               }else if((sCW=="not")||
-                       ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){
-                       gbNot=!gbNot;
-               }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){
-                       var sCurrentStem=GetStem(sCW);
-                       gsCW=sCurrentStem;
-                       ftsFindKeyword();
-                       return;
-               }
-               findOneKey();
-       }
-       else{
-               displayTopics();
-               checkAgain();
-       }
-}
-
-function checkAgain()
-{
-       gsCheckKey = "";
-       gnIndexNum = 0;
-       gsSK=gsSK2;
-       gsSK2=null;
-       if(gsSK!=null)
-               setTimeout("findFTSKey();",1);
-}
-
-function displayTopics()
-{
-       var sHTML="";
-       var sLine="";
-       for(var i=0;i<gaTI.length;i++){
-               sLine+="<dt><nobr><a href='"+gaTI[i].sTopicURL+"'>"+_textToHtml(gaTI[i].sTopicTitle)+"</a></nobr></dt>";
-               if(i>>4<<4==i)
-               {
-                       sHTML+=sLine;
-                       sLine="";
-               }
-       }
-       if(sLine.length>0)
-               sHTML+=sLine;
-
-       if(sHTML.length==0)
-               sHTML="<P>"+gsNoTopics+"</P>"
-       else
-               sHTML="<dl>"+sHTML+"</dl>";
-
-       var resultDiv=getElement(gsResultDivID);
-       if(resultDiv)
-               resultDiv.innerHTML=sHTML;
-}
-
-function displayMsg(sErrorMsg)
-{
-       var sHTML="<P>"+sErrorMsg+"</P>";
-
-       var resultDiv=getElement(gsResultDivID);
-       if(resultDiv)
-               resultDiv.innerHTML=sHTML;
-}
-
-function ftsFindKeyword()
-{
-       var sKey=gsCW;
-       var bNeedLoad=false;
-       var aFtsContentsCon=null;
-       var s=0;
-       if(sKey==null) return;
-       if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0)
-       {
-               aFtsContentsCon=new Array();
-               gnCheck=0;
-               gsCheckKey=sKey;
-               gnTopicCheck=0;
-               gaTopicCheckInfo=null;
-       }
-       else{
-               s=gnIndexNum;
-               aFtsContentsCon=gaFtsContentsCon;
-       }
-       for(var i=gnCheck;i<gaaFCD.length;i++)
-       {
-               var oCF=getChunkedFts(i,sKey);
-               if(oCF)
-               {
-                       if(!oCF.aFtsKeys&&oCF.sFileName!=null)
-                       {
-                               bNeedLoad=true;
-                               oCF.nProjId=i;
-                               goCF=oCF;
-                               gnIndexNum=s;
-                               gnCheck=i;
-                               gaFtsContentsCon=aFtsContentsCon;
-                               gnLoadFts=2;
-                               beginLoading();
-                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCF.sFileName);
-                               break;
-                       }
-                       else{
-                               aFtsContentsCon[s++]=oCF;
-                       }
-               }
-       }
-       if(!bNeedLoad)
-       {
-               var aTI=gaTopicCheckInfo;
-               for(var m=gnTopicCheck;m<aFtsContentsCon.length;m++)
-               {
-                       var aTIPart=getTopics(aFtsContentsCon[m],sKey);
-                       if(aTIPart==null)
-                       {
-                               gnCheck=gaaFCD.length;
-                               gnTopicCheck=m;
-                               gaTopicCheckInfo=aTI;
-                               gaFtsContentsCon=aFtsContentsCon;
-                               return;
-                       }
-                       if(m==0)
-                               aTI=aTIPart;
-                       else
-                               aTI=mergeTopics(aTI,aTIPart);
-               }
-               if(mergewithPreviousResult(aTI))
-               {
-                       gbFirst=false;
-                       findOneKey();
-               }
-               else
-                       checkAgain();
-       }
-}
-
-function mergewithPreviousResult(aTI)
-{
-       if(aTI!=null&&aTI.length!=0)
-       {
-               var nNumTopics=aTI.length;
-               if(gnCurrentOp==0||gbFirst){
-                       if(gbNot){
-                               displayMsg(gsHelpCannotSearch);
-                               return false;
-                       }else{
-                               var aLS,aSS;
-                               if(gaTI.length>=aTI.length)
-                               {
-                                       aLS=gaTI;
-                                       aSS=aTI;
-                               }
-                               else
-                               {
-                                       aLS=aTI;
-                                       aSS=gaTI;
-                               }
-                               var s=0;
-                               for(var i=0;i<aSS.length;i++)
-                               {
-                                       var bAlreadyThere=false;
-                                       for(var j=s;j<aLS.length;j++)
-                                       {
-                                               if(aSS[i].equalTo(aLS[j]))
-                                               {
-                                                       bAlreadyThere=true;
-                                                       s=j;
-                                                       break;
-                                               }
-                                       }
-                                       if(!bAlreadyThere)
-                                       {
-                                               insertTopic(aLS,aSS[i]);
-                                       }
-                               }
-                               gaTI=aLS;
-                       }
-               }else if(gnCurrentOp==1){
-                       if(gbNot){
-                               var s=0;
-                               for(var i=0;i<aTI.length;i++)
-                               {
-                                       for(var j=s;j<gaTI.length;j++)
-                                       {
-                                               if(aTI[i].equalTo(gaTI[j]))
-                                               {
-                                                       removeItemFromArray(gaTI,j);
-                                                       s=j;
-                                                       break;
-                                               }
-                                       }
-                               }
-                       }else{
-                               var s=0;
-                               for(var i=0;i<gaTI.length;i++)
-                               {
-                                       var bFound=false;
-                                       for(var j=s;j<aTI.length;j++)
-                                       {
-                                               if(gaTI[i].equalTo(aTI[j]))
-                                               {
-                                                       bFound=true;
-                                                       s=j;
-                                               }
-                                       }
-                                       if(!bFound)
-                                       {
-                                               removeItemFromArray(gaTI,i);
-                                               i--;
-                                       }
-                               }                               
-                       }
-               }
-       }else{
-               if((gnCurrentOp==1)&&(!gbNot)){
-                       gaTI.length=0;
-               }else if((gnCurrentOp==0)&&(gbNot)){
-                       displayMsg(gsHelpCannotSearch);
-                       return false;
-               }
-       }
-       return true;
-}
-
-function insertTopic(aTI,oTI)
-{
-       var nB=0;
-       var nE=aTI.length-1;
-       if(nE>=0)
-       {
-               var nM;
-               var bFound=false;
-               do{
-                       nM=(nB+nE)>>1;
-                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0)
-                               nE=nM-1;
-                       else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)
-                               nB=nM+1;
-                       else
-                       {
-                               bFound=true;
-                               break;
-                       }
-               }while(nB<=nE);
-               if(bFound)
-                       insertItemIntoArray(aTI,nM,oTI);
-               else
-               {
-                       if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0)
-                               insertItemIntoArray(aTI,nM+1,oTI);
-                       else
-                               insertItemIntoArray(aTI,nM,oTI);
-               }
-       }
-       else
-               aTI[0]=oTI;
-}
-
-function mergeTopics(aTI1,aTI2)
-{
-       var i1=0;
-       var i2=0;
-       var len1=aTI1.length;
-       var len2=aTI2.length;
-       var aTopicNew=new Array();
-       var i=0;
-       while(i1<len1||i2<len2)
-       {
-               if(i1<len1&&i2<len2)
-               {
-                       if(compare(aTI1[i1].sTopicTitle,aTI2[i2].sTopicTitle)<0)
-                               aTopicNew[i++]=aTI1[i1++];
-                       else
-                               aTopicNew[i++]=aTI2[i2++];
-               }
-               else if(i1<len1)
-                       aTopicNew[i++]=aTI1[i1++];
-               else if(i2<len2)
-                       aTopicNew[i++]=aTI2[i2++];
-       }
-       return aTopicNew;
-}
-
-function getTopics(oCF,sKey)
-{
-       var aTIPart=new Array();
-       if(oCF&&oCF.aFtsKeys)
-       {
-               var keys=oCF.aFtsKeys;
-               var nB=0;
-               var nE=keys.length-1;
-               var nM=-1;
-               var bFound=false;
-               do{
-                       nM=(nB+nE)>>1;
-                       if(compare(keys[nM].sItemName,sKey)>0)
-                               nE=nM-1;
-                       else if(compare(keys[nM].sItemName,sKey)<0)
-                               nB=nM+1;
-                       else{
-                               bFound=true;
-                               break;
-                       }
-               }while(nB<=nE);
-               if(bFound)
-               {
-                       if(keys[nM].aTopics)
-                       {
-                               for(var i=0;i<keys[nM].aTopics.length;i++)
-                               {
-                                       var oTC=getTopicChunk(gaaFTCD[oCF.nProjId],keys[nM].aTopics[i]);
-                                       if(oTC.aTopics)
-                                       {
-                                               aTIPart[aTIPart.length]=
-                                                       new topicInfo(oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicTitle,
-                                                               gaData[oCF.nProjId].sPPath+oTC.aTopics[keys[nM].aTopics[i]-oTC.nBegin].sTopicURL);
-                                       }
-                                       else{
-                                               goCTF=oTC;
-                                               gnLoadFts=3;
-                                               beginLoading();
-                                               loadData2(gaData[oCF.nProjId].sPPath+gaData[oCF.nProjId].sDPath+oTC.sFileName);
-                                               return null;
-                                       }
-                               }
-                       }
-               }
-       }
-       return aTIPart;
-}
-
-function getTopicChunk(aFTCD,nTopicId)
-{
-       if(aFTCD&&aFTCD.length)
-       {
-               var nB=0;
-               var nE=aFTCD.length-1;
-               var nM=-1;
-               var bFound=false;
-               do{
-                       nM=(nB+nE)>>1;
-                       if(aFTCD[nM].nBegin>nTopicId)
-                               nE=nM-1;
-                       else if(aFTCD[nM].nEnd<nTopicId)
-                               nB=nM+1;
-                       else{
-                               bFound=true;
-                               break;
-                       }
-               }while(nB<=nE);
-               if(bFound)
-                       return aFTCD[nM];
-       }
-       return null;
-}
-
-function endLoading()
-{
-       var oDiv=getElement(gsLoadingDivID);
-       if(oDiv)
-               oDiv.style.visibility="hidden";
-}
-
-function beginLoading()
-{
-       var oDiv=getElement(gsLoadingDivID);
-       if(!oDiv)
-       {
-               document.body.insertAdjacentHTML("afterBegin",writeLoadingDiv());
-               oDiv=getElement(gsLoadingDivID);
-       }
-       
-       if(oDiv)
-       {
-               oDiv.style.top=document.body.scrollTop;
-               oDiv.style.visibility="visible";
-       }
-}
-
-function writeLoadingDiv(nIIdx)
-{
-       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
-}
-
-function topicInfo(sTopicTitle,sTopicURL)
-{
-       this.sTopicTitle=sTopicTitle;
-       this.sTopicURL=sTopicURL;
-       this.equalTo=function(oTI)
-       {
-               return ((this.sTopicTitle==oTI.sTopicTitle)&&
-                       (this.sTopicURL==oTI.sTopicURL));
-       }
-}
-
-function getChunkedFts(nIndex,sKey)
-{
-       var oCF=null;
-       if(nIndex<gaaFCD.length)
-       {
-               var len=gaaFCD[nIndex].length;
-               if(len>0)
-               {
-                       var nB=0;
-                       var nE=len-1;
-                       var bFound=false;
-                       do{
-                               var nM=(nB+nE)>>1;
-                               if(compare(sKey,gaaFCD[nIndex][nM].sEndKey)>0)
-                               {
-                                       nB=nM+1;
-                               }
-                               else if(compare(sKey,gaaFCD[nIndex][nM].sStartKey)<0)
-                               {
-                                       nE=nM-1;
-                               }
-                               else{
-                                       bFound=true;
-                                       break;
-                               }
-                       }while(nE>=nB);
-                       if(bFound)
-                               oCF=gaaFCD[nIndex][nM];
-               }
-       }
-       return oCF;
-}
-
-function ftsReady(aFCD,aFTCD)
-{
-       endLoading();
-       gaaFTCD[gnCLF]=aFTCD;
-       gaaFCD[gnCLF++]=aFCD;
-       setTimeout("loadFD();",1);
-}
-
-function putFtsTData(aTopics)
-{
-       endLoading();
-       var oCTF=goCTF;
-       if(oCTF)
-       {
-               oCTF.aTopics=aTopics;
-               setTimeout("ftsFindKeyword();",1);
-       }
-}
-
-function putFtsWData(aFtsContents)
-{
-       endLoading();
-       var oCF=goCF;
-       if(oCF)
-       {
-               updateCache(oCF);
-               oCF.aFtsKeys=aFtsContents;
-               setTimeout("ftsFindKeyword();",1);
-       }
-}
-
-function IsStopWord(sCW,aFtsStopArray)
-{
-       var nStopArrayLen=aFtsStopArray.length;
-       var nB=0;
-       var nE=nStopArrayLen-1;
-       var nM=0;
-       var bFound=false;
-       var sStopWord="";
-       while(nB<=nE){
-               nM=(nB+nE);
-               nM>>=1;
-               sStopWord=aFtsStopArray[nM];
-               if(compare(sCW,sStopWord)>0){
-                       nB=(nB==nM)?nM+1:nM;
-               }else{
-                       if(compare(sCW,sStopWord)<0){
-                               nE=(nE==nM)?nM-1:nM;
-                       }else{
-                               bFound=true;
-                               break;
-                       }
-               }
-       }
-       return bFound;
-}
-
-function GetStem(szWord)
-{
-       if(gaFtsStem==null||gaFtsStem.length==0)return szWord;
-       var aStems=gaFtsStem;
-
-       var nStemPos=0;
-       var csStem="";
-       for(var iStem=0;iStem<aStems.length;iStem++){
-
-               if(aStems[iStem].length>=szWord.length-1)       continue;
-               nStemPos=szWord.lastIndexOf(aStems[iStem]);
-               if(nStemPos>0){
-                       var cssub=szWord.substring(nStemPos);
-                       if(cssub==aStems[iStem]){
-                               csStem=szWord;
-                               if(szWord.charAt(nStemPos-2)==szWord.charAt(nStemPos-1)){
-                                       csStem=csStem.substring(0,nStemPos-1);
-                               }else{
-                                       csStem=csStem.substring(0,nStemPos);
-                               }
-                               return csStem;
-                       }
-               }
-       }
-       return szWord;
-}
-
-function FtsWriteClassStyle()
-{
-       var sStyle="<STYLE TYPE='text/css'>\n";
-       if (gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       sStyle+="P {"+getFontStyle(goErrFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
-       sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
-       sStyle+="</STYLE>";
-       document.write(sStyle);
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
-       UnRegisterListener2(this, WH_MSG_SEARCHFTSKEY);
-}
-
-
-function onSendMessage(oMsg)
-{
-       var nMsgId=oMsg.nMessageId;
-       if(nMsgId==WH_MSG_SEARCHFTSKEY)
-       {
-               if(oMsg.oParam)
-               {
-                       if(gsSK==null||gsSK=="")
-                       {
-                               gsSK=oMsg.oParam.toLowerCase();
-                               findFTSKey();
-                       }
-                       else
-                               gsSK2=oMsg.oParam.toLowerCase();
-               }
-       }
-       else if(nMsgId==WH_MSG_PROJECTREADY)
-       {
-               loadFts();
-       }
-       return true;
-}
-
-if (window.gbWhUtil&&window.gbWhLang&&window.gbWhProxy&&window.gbWhVer&&window.gbWhMsg)
-{
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-       goErrFont=new whFont("Verdana","8pt","#000000","normal","bold","none");
-       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-       window.onload=window_OnLoad;
-       window.onbeforeunload=window_BUnload;
-       window.onunload=window_Unload;
-       RegisterListener2(this,WH_MSG_PROJECTREADY);
-       gbWhFHost=true;
-}
-else
-       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whform.js b/doc/salome/gui/GEOM/whform.js
deleted file mode 100755 (executable)
index bc4ebfd..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-//     WebHelp 5.10.001
-var gfunLookUp;
-var gbInputEnable;
-var gfunInit;
-var gstrFormName= "";
-var gbWithButton = false;
-var gsTitle="";
-var gsOverImage = "";
-var gsOutImage = "";
-var gsClickImage = "";
-var gsText = "";
-var gsBgColor = "#c0c0c0";
-var gsBgImage = "";
-var gbInImage = 0;
-var gbInputEnable = 0;
-
-var goTitleFont=null;
-var goInputFont=null;
-var goNormalFont=null;
-var goHoverFont=null;
-var gnType=-1;
-var gbWhForm=false;
-
-function setBackground(sBgImage)
-{
-       if (sBgImage != null && sBgImage.length > 0)
-               gsBgImage = sBgImage;
-
-       if  (gsBgImage  && gsBgImage .length > 0)
-       {
-               document.body.background = gsBgImage ;
-       }
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       if (sBgColor != null && sBgColor.length > 0)
-               gsBgColor = sBgColor;
-
-       if (gsBgColor&& gsBgColor.length > 0)
-       {
-               document.body.bgColor = gsBgColor;
-       }
-}
-
-function setBtnType(sType)
-{
-       if (sType == "image")
-       {
-               gnType = 0;
-       }
-       else if (sType == "text")
-       {
-               gnType = 1;
-       }
-}
-
-function setGoImage1(sImage1)
-{
-       gsOutImage = sImage1;
-       if (gsOutImage && gsOutImage.length > 0)
-               gbWithButton = true;
-}
-
-function setGoImage2(sImage2)
-{
-       gsOverImage = sImage2;
-       if (gsOverImage && gsOverImage.length > 0)
-               gbWithButton = true;
-}
-
-function setGoImage3(sImage3)
-{
-       gsClickImage = sImage3;
-       if (gsClickImage && gsClickImage.length > 0)
-               gbWithButton = true;
-}
-
-function setGoText(sText)
-{
-       gsText = sText;
-       if (gsText.length > 0)
-               gbWithButton = true;
-}
-
-function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)
-{
-       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);
-       if (sType == "Title")
-       {
-               goTitleFont = vFont;
-               var vFont1 = new whFont(sFontName, sFontSize, "black", sFontStyle, sFontWeight, sFontDecoration);
-               goInputFont=vFont1;             
-       }
-       else if (sType == "Normal")
-               goNormalFont = vFont;
-       else if (sType == "Hover")
-               goHoverFont = vFont;
-}
-
-function writeFormStyle()
-{
-       var sStyle = "<style type='text/css'>";
-       sStyle += "p.title {" + getFontStyle(goTitleFont) + "margin-top:0;margin-bottom:0}\n";
-       sStyle += ".inputfield {" + getFontStyle(goInputFont) +"width:100%; }\n";
-       sStyle+="A:link {"+getFontStyle(goNormalFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goNormalFont)+"}\n";
-       sStyle +="A:hover {"+getFontStyle(goHoverFont)+"}\n";
-       sStyle+=".clsFormBackground{\n";
-       if (gsBgImage)
-               sStyle+="border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="border-top:black 1px solid;}\n";
-
-       sStyle += "</style>";
-       document.write(sStyle);
-}
-
-function lookupKeyDown()
-{
-       if (gbInputEnable)
-       {
-               if (gbIE4)
-               {
-                       if (event.keyCode == 13)        //Enter key
-                               gfunLookUp(true);
-                       else
-                               gfunLookUp(false);
-               }                       
-               else
-                       gfunLookUp(false);
-       }
-}
-
-function init()
-{
-       if (gfunInit)
-               gfunInit();
-       if (!window.Array)  return;
-               document.onkeyup = lookupKeyDown;
-}
-
-function inputSubmit()
-{
-       if ((gbInputEnable && !gbIE4)|| gbInImage)
-               gfunLookUp(true);
-}
-
-function inputEnable(bEnable)
-{
-       gbInputEnable = bEnable;
-}
-
-function inImage(bImage)
-{
-       gbInImage = bImage;
-}
-
-function getFormHTML()
-{
-       var sForm = "";
-       sForm += "<table class=\"clsFormBackground\" width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\">";
-       sForm += "<form name=\"" + gstrFormName + "\" method=\"POST\" action=\"javascript:inputSubmit()\" style=\"width:100%\">";
-       sForm += "<tr>";
-       sForm += "<td>";
-       sForm += "<p class=title><nobr>" + gsTitle + "</nobr><br><table width=\"100%\"><tr valign=\"middle\"><td width=\"100%\"><input class=\"inputfield\" type=\"text\" name=\"keywordField\" onfocus=\"inputEnable(1);\" onblur=\"inputEnable(0);\"></td>";
-       if (gbWithButton && gnType >= 0)
-       {
-               sForm += "<td><a title=\"submit button\" href=\"javascript:void(0);\" onclick=\"" + gstrFormName + ".submit(); return false;\" onfocus=\"inImage(1);\" onblur=\"inImage(0);\" onmouseup=\"onMouseUp();\" onmousedown=\"onMouseDown();\" onmouseover=\"onMouseOver();\" onmouseout=\"onMouseOut();\">"
-               if (gnType == 0)
-               {
-                       if (!gsText)
-                               gsText="Go";
-                       sForm += "<img alt=\""+gsText+"\" id=\"go\" border=\"0\" src=\"" + gsOutImage + "\">";
-               }
-               else
-                       sForm += gsText ;
-               sForm += "</a></td>";
-       }
-       sForm += "</tr></table></p></td></tr></form></table>";
-       return sForm;
-}
-
-function onMouseOver()
-{
-       if (getElement("go") && gsOverImage)
-               getElement("go").src = gsOverImage;
-}
-
-function onMouseDown()
-{
-       if (getElement("go") && gsClickImage)
-               getElement("go").src = gsClickImage;
-}
-
-function onMouseUp()
-{
-       if (getElement("go") && gsOutImage)
-               getElement("go").src = gsOutImage;
-}
-
-function onMouseOut()
-{
-       if (getElement("go") && gsOutImage)
-               getElement("go").src = gsOutImage;
-}
-
-if (window.gbWhUtil&&window.gbWhVer&&window.gbWhProxy&&window.gbWhMsg)
-{
-       goTitleFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");
-       goNormalFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "none");
-       goHoverFont=new whFont("Arial", "9pt", "#000000", "normal", "normal", "underline");
-       gbWhForm=true;
-}
-else
-       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whframes.js b/doc/salome/gui/GEOM/whframes.js
deleted file mode 100755 (executable)
index 121011e..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-//     WebHelp 5.10.001
-// this value should be identical to the value used in whproxy.js
-window.whname = "wh_stub";
-
-// this file will be used by Topic and NavBar and NavPane and other components
-// and this file is used in child frame html.
-// and the whstub.js will be used in the start page.
-// see reference in whstub.js.
-// Internal Area
-var gbInited = false;
-var gWndStubPage = null;
-function getStubPage()
-{
-       if (!gbInited)
-       {
-               gWndStubPage = getStubPage_inter(window);
-               gbInited = true;
-       }
-       return gWndStubPage;
-}
-
-function getStubPage_inter(wCurrent) {
-       if (null == wCurrent.parent || wCurrent.parent == wCurrent)
-               return null;
-
-       if (wCurrent.parent.whname && "wh_stub" == wCurrent.parent.whname) 
-               return wCurrent.parent;
-       else
-               if (wCurrent.parent.frames.length != 0 && wCurrent.parent != wCurrent)
-                       return getStubPage_inter(wCurrent.parent);
-               else 
-                       return null;
-}
-
-// Public interface begin here................
-function RegisterListener(framename, nMessageId)
-{
-       var wStartPage = getStubPage();
-       if (wStartPage && wStartPage != this) {
-               return wStartPage.RegisterListener(framename, nMessageId);
-       }
-       else 
-               return false;
-}
-
-function RegisterListener2(oframe, nMessageId)
-{
-       var wStartPage = getStubPage();
-       if (wStartPage && wStartPage != this) {
-               return wStartPage.RegisterListener2(oframe, nMessageId);
-       }
-       else 
-               return false;
-}
-
-function UnRegisterListener2(oframe, nMessageId)
-{
-       var wStartPage = getStubPage();
-       if (wStartPage && wStartPage != this && wStartPage.UnRegisterListener2) {
-               return wStartPage.UnRegisterListener2(oframe, nMessageId);
-       }
-       else 
-               return false;
-}
-
-function SendMessage(oMessage)
-{
-       var nMsgId = oMessage.nMessageId;
-       if (nMsgId == WH_MSG_ISINFRAMESET && oMessage.wSender != this)
-               return true;
-       var wStartPage = getStubPage();
-       if (wStartPage && wStartPage != this && wStartPage.SendMessage) 
-       {
-               return wStartPage.SendMessage(oMessage);
-       }
-       else 
-               return false;
-}
-var gbWhProxy=true;
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whgbody.htm b/doc/salome/gui/GEOM/whgbody.htm
deleted file mode 100755 (executable)
index 34d782d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<html>
-<head>
-<title>Glossary Term</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whlang.js"></script>
-<script language="javascript1.2" src="whhost.js"></script>
-<script language="javascript1.2" src="whghost.js"></script>
-<script language="javascript1.2">
-<!--
-if(window.gbWhGHost)
-{
-       
-       
-       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-       setActiveBgColor("#cccccc");
-       setMargin("0pt");
-       setIndent("9pt");
-       GloWriteClassStyle();
-}
-else
-       document.location.reload();
-//-->
-</script>
-</head>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white">
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whgdef.htm b/doc/salome/gui/GEOM/whgdef.htm
deleted file mode 100755 (executable)
index 5ff0f67..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<html>
-<head>
-<title>Glossary Definition</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goGloFont=null;
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this, WH_MSG_SHOWGLODEF);
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-               document.body.background=gsBgImage;
-       if(gsBgColor&&gsBgColor.length>0)
-               document.body.bgColor=gsBgColor;
-}
-
-function setFont(sType, sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration)
-{
-       var vFont = new whFont(sFontName, sFontSize, sFontColor, sFontStyle, sFontWeight, sFontDecoration);
-       if (sType == "Normal")
-               goGloFont = vFont;
-}
-
-function textToHtml_nbsp_specialcare(sText)
-{
-       if (sText == null) return null;
-       var sHTML= sText;
-       var re = new RegExp("  ","g");
-       sHTML=  sHTML.replace(re, "&nbsp; ");
-       return  sHTML;
-}
-
-function onSendMessage(oMsg)
-{
-       var nMsgId = oMsg.nMessageId;
-       if (nMsgId == WH_MSG_SHOWGLODEF)
-       {
-               document.body.innerHTML = sDefHead + textToHtml_nbsp_specialcare(oMsg.oParam.sDef) + sDefTail;
-               return true;
-       }
-}
-
-function GDefWriteClassStyle()
-{
-       var sStyle="<STYLE TYPE='text/css'>\n";
-       if (gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       sStyle+=".definition {"+getFontStyle(goGloFont)+"margin:2;}\n";
-       sStyle+="</STYLE>";
-       document.write(sStyle);
-}
-
-if (window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer)
-{
-       window.onload=window_OnLoad;
-       window.onunload = window_Unload;
-       goGloFont=new whFont("Verdana", "8pt", "#000000", "normal", "normal", "none");
-       
-       
-       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-       GDefWriteClassStyle();
-       RegisterListener2(this, WH_MSG_SHOWGLODEF);
-       var sDefHead = "<p class=\"definition\">";
-       var sDefTail = "</p>";
-}
-else
-       document.location.reload();
-//-->
-</script>
-</head>
-<body bgproperties="fixed" bgcolor="white">
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whgdhtml.htm b/doc/salome/gui/GEOM/whgdhtml.htm
deleted file mode 100755 (executable)
index d02a99f..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<html>
-<head>
-<title>Glossary</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body bgcolor=#c0c0c0 scroll=no RIGHTMARGIN=0 BOTTOMMARGIN=0 TOPMARGIN=0 LEFTMARGIN=0>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2">
-<!--
-var gsBgImage="";
-var    gsBgColor="";
-var goTitleFont=null;
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Title")
-               goTitleFont=vFont;
-}
-
-function getTermText()
-{
-       var strString="Term:";
-strString = "Term:";
-       return strString;
-}
-
-function getDefinitionText()
-{
-       var strString="Definition for:";
-strString = "Definition:";
-       return strString;
-}
-
-function getHTML()
-{
-       var sHTML="";
-       sHTML+="<P class=title><nobr>&nbsp;" + getTermText() + "</nobr></p>";
-       sHTML+="<iframe id=glossaryIFrame title=\"glossary term\" src=\"whgbody.htm\" width=100% height=200 MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";
-       sHTML+="<P class=title><nobr>&nbsp;" + getDefinitionText() + "&nbsp;<b id=Name></b></nobr></p>";
-       sHTML+="<iframe id=defIFrame title=\"glossary definition\" src=\"whgdef.htm\" width=100% height=100% MARGINHEIGHT=0 MARGINWIDTH=0></iframe>";
-       return sHTML;
-}
-
-function writeStyle()
-{
-       var sStyle="<style type='text/css'>";
-       sStyle+="p.title {" + getFontStyle(goTitleFont) + "margin-top:4;margin-bottom:4}\n";
-       if (gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       sStyle+="</style>";
-       document.write(sStyle);
-}
-
-
-function window_OnResize()
-{
-       setIFrameHeight();
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-               document.body.background=gsBgImage;
-       if(gsBgColor&&gsBgColor.length>0)
-               document.body.bgColor=gsBgColor;
-       setIFrameHeight();
-}
-
-function setIFrameHeight()
-{
-       var tH=0;
-       if(gbNav6)
-       {
-               tH=parseInt(window.innerHeight)-30;
-       }
-       else
-       {
-               tH=parseInt(document.body.clientHeight)-4;
-       }
-               
-       var oEle=getElement("glossaryIFrame");
-       if(oEle)
-       {
-               tH=tH-2*parseInt(oEle.offsetTop);
-               if(tH>0)
-               {
-                       oEle.style.height=Math.floor(tH*.6);
-                       var oEleDef=getElement("defIFrame");
-                       if(oEleDef)
-                       {
-                               oEleDef.style.height=tH-parseInt(oEle.style.height);
-                       }
-               }
-       }
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this,WH_MSG_SHOWGLODEF);
-}
-
-function onSendMessage(oMsg)
-{
-       var nMsgId=oMsg.nMessageId;
-       if(nMsgId==WH_MSG_SHOWGLODEF)
-       {
-               if(getElement("Name"))
-                       getElement("Name").innerHTML=oMsg.oParam.sName;
-               return true;
-       }
-}
-
-if(window.gbWhVer&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhProxy)
-{
-       goTitleFont=new whFont("Arial","9pt","#000000","normal","normal","none");
-       setFont("Title", "Arial","9pt","#000000","normal","normal","none");
-       
-       
-       window.onresize=window_OnResize;
-       window.onload=window_OnLoad;
-       window.onunload=window_Unload;
-       RegisterListener2(this,WH_MSG_SHOWGLODEF);
-       writeStyle();
-       document.write(getHTML());
-}
-else
-       document.location.reload();
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whghost.js b/doc/salome/gui/GEOM/whghost.js
deleted file mode 100755 (executable)
index 9ebcf24..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-//     WebHelp 5.10.004
-var gbXML=false;
-var gaDef=new Array();
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goFont=null;
-var goHoverFont=null;
-var gsMargin="2pt";
-var gsIndent="2pt";
-var gsActiveBgColor="#cccccc";
-var gbWhGHost=false;
-var gbShowDef=true;
-var gsGloId="Glo_"
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Normal")
-               goFont=vFont;
-       else if(sType=="Hover")
-               goHoverFont=vFont;
-}
-
-function setActiveBgColor(sBgColor)
-{
-       gsActiveBgColor=sBgColor;
-}
-
-function setMargin(sMargin)
-{
-       gsMargin=sMargin;
-}
-
-function setIndent(sIndent)
-{
-       gsIndent=sIndent;
-}
-
-function insertDef(sKName,sDef)
-{
-       var nLength=gaDef.length
-       var oGlo=new nameDefPair(sKName,sDef);
-       gaDef[nLength]=oGlo;
-       return nLength;
-}
-
-function showDef(nDef)
-{
-       if(nDef<gaDef.length)
-       {       
-               HighLight(nDef);
-               var oParam=gaDef[nDef];
-               var oMsg=new whMessage(WH_MSG_SHOWGLODEF,this,1,oParam);
-               SendMessage(oMsg);
-       }
-}
-
-function nameDefPair(sName,sDef)
-{
-       this.sName=sName;
-       this.sDef=sDef;
-}
-
-function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
-{
-       var sHTML="";
-       var nIdxSet=aCurIdxSet[0];
-       var nIIdx=aPos[nIdxSet];
-       var sRawKName = getItemName(aDataCon,nIdxSet,nIIdx);
-       var sKName=_textToHtml(sRawKName);
-       var sDText=_textToHtml_nonbsp(getDef(aDataCon,nIdxSet,nIIdx));
-       var sDef=sDText;
-       for(var i=1;i<nLength;i++)
-       {
-               var nIdxSeti=aCurIdxSet[i];
-               var nIIdxi=aPos[nIdxSeti];
-               var sRawKNamei = getItemName(aDataCon,nIdxSeti,nIIdxi);
-               var sKNamei=_textToHtml(sRawKNamei);
-               var sDTexti=_textToHtml_nonbsp(getDef(aDataCon,nIdxSeti,nIIdxi));
-               if (compare(sKNamei,sKName)==0)
-               {
-                       if (sDText!=sDTexti)
-                               sDef+="<br>"+sDTexti;
-               }
-       }
-       var nIndex=insertDef(sKName,sDef);
-       if(nLevel==1)
-       {
-               sHTML+="<p><nobr id=\""+getGloId(nIndex)+"\">";
-               sHTML+="<a alt=\""+sKName+"\" href=\"javascript:void(0);\" onfocus=\"HighLight("+nIndex+");\" onclick=\"showDef("+nIndex+");return false;\">"+sKName+"</a></nobr></p>";
-               oHTML.addHTML(sHTML,nLength,bDown,true,sRawKName);
-               if(gbShowDef)
-               {
-                       setTimeout("showDef(0);",100);
-                       gbShowDef = false;
-               }
-       }
-}
-
-function HighLight(nIndex)
-{
-       var oObj=getElement(getGloId(nIndex));
-       if(oObj)
-               HighLightElement(oObj,gsActiveBgColor,"transparent");
-}
-
-function getGloId(nIndex)
-{
-       return gsGloId+nIndex;
-}
-
-function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
-{
-       if(bDown)
-       {
-               for(var i=0;i<nLength;i++)
-                       aPos[aCurIdxSet[i]]++;
-       }
-       else{
-               for(var i=0;i<nLength;i++)
-                       aPos[aCurIdxSet[i]]--;
-       }
-}
-
-function getDef(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].sDef;
-       else
-               return null;
-}
-
-function getItemName(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].sName;
-       else
-               return null;
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-               document.body.background=gsBgImage;
-       if(gsBgColor&&gsBgColor.length>0)
-               document.body.bgColor=gsBgColor;
-       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
-       loadGlo();
-       var oMsg=new whMessage(WH_MSG_SHOWGLO,this,1,null)
-       SendMessage(oMsg);
-}
-
-function loadGlo()
-{
-       if(!gbReady)
-       {
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
-               if(SendMessage(oResMsg)&&oResMsg.oParam)
-               {
-                       gbReady=true;
-                       var oProj=oResMsg.oParam;
-                       var aProj=oProj.aProj;
-                       gbXML=oProj.bXML;
-                       if(aProj.length>0)
-                       {
-                               var sLangId=aProj[0].sLangId;
-                               for(var i=0;i<aProj.length;i++)
-                               {
-                                       if(aProj[i].sGlo&&aProj[i].sLangId==sLangId)
-                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sGlo);
-                               }
-                       }
-                       writeDataIFrame();
-                       enEvt();
-               }               
-       }
-}
-
-function findCKInDom()
-{
-       return true;
-}
-
-function GloWriteClassStyle()
-{
-       var sStyle="<STYLE TYPE='text/css'>\n";
-       if (gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";margin-left:"+gsIndent+";}\n";
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:active {background-color:"+gsActiveBgColor+";}\n";
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
-       sStyle+="</STYLE>";     
-       document.write(sStyle);
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);
-}
-
-function onSendMessage(oMsg)
-{
-       if(oMsg)
-       {
-               var nMsgId=oMsg.nMessageId;
-               if(nMsgId==WH_MSG_SHOWGLO)
-               {
-                       if(!gbNav6)
-                               document.body.focus();
-               }
-               else if(nMsgId==WH_MSG_PROJECTREADY)
-               {
-                       loadGlo();
-               }
-       }
-       return true;
-}
-
-if (window.gbWhUtil&&window.gbWhProxy&&window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhHost)
-{
-       RegisterListener2(this,WH_MSG_PROJECTREADY);
-       RegisterListener2(this,WH_MSG_SHOWGLO);
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-       goHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-       window.onload=window_OnLoad;
-       window.onbeforeunload=window_BUnload;
-       window.onunload=window_Unload;
-       gbWhGHost=true;
-}
-else
-       document.location.reload();
-
diff --git a/doc/salome/gui/GEOM/whhost.js b/doc/salome/gui/GEOM/whhost.js
deleted file mode 100755 (executable)
index a32225a..0000000
+++ /dev/null
@@ -1,1305 +0,0 @@
-//     WebHelp 5.10.002
-var gaChunks=new Array();
-var gaFakes=new Array();
-var gaDataCon=null;
-var gaData=new Array();
-
-var gbFindCK=false;;
-var gbNeedCalc=false;
-var gbScrl=false;
-var gbProcess=false;
-var gbReady=false;
-
-var gnCheck=0;
-var gnNum=0;
-var gnIns=-1;
-var gnLoad=0;
-var gnRef=-1;
-var gnMaxItems=0;
-var gnMaxMargin=32000;
-var gnNeeded=0;
-var gnNKI=-1;
-var gnRE=0;
-var gnScrlMgn=30;
-var gnSE=0;
-var gnVisible=0;
-var gnItems=0;
-var gnUHeight=1;
-
-var gsBCK=null;
-var gsChK=null;
-var gsCK=null;
-var gsLoadingDivID="LoadingDiv";
-var gsLoadingMsg="Loading data, please wait...";
-var gsSKA=null;
-var gsSKB=null;
-
-var gbLoadInfo=false;
-
-function onLoadXMLError()
-{
-       if(gbLoadInfo)
-       {
-               var aChunk=new Array();
-               projReady(aChunk);
-       }
-       else
-       {
-               var aData=new Array();
-               putData(aData);
-       }
-}
-
-function putDataXML(xmlDoc,sDocPath)
-{
-       if(gbLoadInfo)
-       {
-               var node=xmlDoc.lastChild;
-               if(node)
-               {
-                       var nTotal=0
-                       var aChunk=new Array();
-                       var oC=node.firstChild;
-                       while(oC)
-                       {
-                               if(oC.nodeName=="chunkinfo")
-                               {
-                                       var item=new Object();
-                                       item.sBK=oC.getAttribute("first");
-                                       item.sEK=oC.getAttribute("last");
-                                       item.sFileName=oC.getAttribute("url");
-                                       item.nNum=parseInt(oC.getAttribute("num"));
-                                       nTotal+=item.nNum;
-                                       item.nTotal=nTotal;
-                                       aChunk[aChunk.length]=item;
-                               }
-                               oC=oC.nextSibling;
-                       }
-                       projReady(aChunk);
-               }
-       }
-       else
-       {
-               var node=xmlDoc.lastChild;
-               if(node)
-               {
-                       var aData=new Array();
-                       var nPrev=0;
-                       var nNext=0;
-                       var oC=node.firstChild;
-                       while(oC)
-                       {
-                               nPrev=nNext;
-                               if(oC.nodeName=="key")
-                               {
-                                       var sName=oC.getAttribute("name");
-                                       if(sName&&sName.length>0)
-                                       {
-                                               var sTarget=oC.getAttribute("target");
-                                               var item=new Object();
-                                               item.nType=2;
-                                               item.sName=sName;
-                                               if(sTarget)
-                                                       item.sTarget=sTarget;
-                                               item.nPKOff=nPrev;
-                                               aData[aData.length]=item;
-                                               var nCurIndex=aData.length;
-                                               processKey(oC,aData,item);
-                                               nNext=aData.length-nCurIndex;
-                                               item.nNKOff=nNext;
-                                       }
-                               }
-                               else if(oC.nodeName=="letter")
-                               {
-                                       var name=oC.getAttribute("name");
-                                       if(name&&name.length>0)
-                                       {
-                                               var item=new Object();
-                                               item.nType=1;
-                                               item.sName=name;
-                                               item.nPKOff=nPrev;
-                                               nNext=0;
-                                               item.nNKOff=nNext;
-                                               aData[aData.length]=item;
-                                       }
-                               }
-                               else if(oC.nodeName=="entry")
-                               {
-                                       var name=oC.getAttribute("name");
-                                       var def=oC.getAttribute("value");
-                                       if(name&&name.length>0)
-                                       {
-                                               var item=new Object();
-                                               item.sName=name;
-                                               item.sDef=def;
-                                               item.nPKOff=nPrev;
-                                               nNext=0;
-                                               item.nNKOff=nNext;
-                                               aData[aData.length]=item;
-                                       }
-                               }
-                               oC=oC.nextSibling;
-                       }
-                       putData(aData);
-               }
-       }
-}
-
-function processKey(element,aData,item)
-{
-       var i=0;
-       var nPrev=0;
-       var nNext=0;
-       var oC=element.firstChild;
-       while(oC)
-       {
-               if(oC.nodeName=="topic")
-               {
-                       var name=oC.getAttribute("name");
-                       var url=oC.getAttribute("url");
-                       if(url&&url.length!=0)
-                       {
-                               if(!name||name.length==0)
-                                       name=url;
-                               var topic=new Object();
-                               topic.sName=name;
-                               topic.sURL=url;
-                               if(!item.aTopics)
-                                       item.aTopics=new Array();
-                               item.aTopics[item.aTopics.length]=topic;
-                       }
-               }
-               else if(oC.nodeName=="key")
-               {
-                       nPrev=nNext;
-                       var name=oC.getAttribute("name");
-                       if(name&&name.length!=0)
-                       {
-                               var subItem=new Object();
-                               subItem.sName=name;
-                               subItem.nType=3;
-                               subItem.nPKOff=nPrev;
-                               aData[aData.length]=subItem;
-                               var nCurIndex=aData.length;
-                               processKey(oC,aData,subItem);
-                               nNext=aData.length-nCurIndex;
-                               subItem.nNKOff=nNext;
-                       }
-               }
-               oC=oC.nextSibling;
-       }
-}
-
-function putData(aData)
-{
-       endLoading();
-       var oCData=goCData;
-       if(oCData)
-       {
-               oCData.aKs=aData;
-               if(gnNKI==-1)
-                       setTimeout("checkReady();",1);
-               else
-               {
-                       gsSKA=getKByIdx(oCData,gnNKI);
-                       gbNeedCalc=true;
-                       gbScrl=true;
-                       gnNKI=-1;
-                       if(gsSKA)
-                               setTimeout("checkReady();",1);
-                       else
-                       {
-                               markEnd();
-                               setTimeout("checkAgain();",50);
-                       }
-               }
-       }
-}
-
-function markEnd()
-{
-       if(gbProcess)
-               gbProcess=false;
-}
-
-function endLoading()
-{
-       var oDiv=getElement(gsLoadingDivID);
-       if(oDiv)
-               oDiv.style.visibility="hidden";
-}
-
-function markBegin()
-{
-       gbProcess=true;
-}
-
-function beginLoading()
-{
-       var oDiv=getElement(gsLoadingDivID);
-       if(oDiv)
-       {
-               oDiv.style.top=document.body.scrollTop;
-               oDiv.style.visibility="visible";
-       }
-}
-
-function indexHTMLPart()
-{
-       this.sHTML="";
-       this.nNeeded=0;
-       this.nCurrent=0;
-       this.nConsumed=0;
-       this.sFK=null;
-       this.sLK=null;
-       this.addHTML=function(sHTML,nConsumed,bDown,bK,sK){
-               if(bDown)
-                       this.sHTML+=sHTML;
-               else
-                       this.sHTML=sHTML+this.sHTML;
-               this.nCurrent++;                        
-               this.nConsumed+=nConsumed;
-               if(bK)
-               {
-                       if(!this.sFK)
-                               this.sFK=sK;
-                       if(!this.sLK)
-                               this.sLK=sK;
-                       if(bDown)
-                               this.sLK=sK;
-                       else
-                               this.sFK=sK;
-               }
-       }
-       this.appendHTML=function(oHTML,bDown){
-               this.addSubHTML(oHTML,bDown);
-               if(!this.sFK)
-                       this.sFK=oHTML.sFK;
-               if(!this.sLK)
-                       this.sLK=oHTML.sLK;
-               if(bDown)
-                       this.sLK=oHTML.sLK;
-               else
-                       this.sFK=oHTML.sFK;
-       }       
-       
-       this.addSubHTML=function(oHTML,bDown){
-               if(bDown)
-                       this.sHTML+=oHTML.sHTML;
-               else
-                       this.sHTML=oHTML.sHTML+this.sHTML;
-               this.nCurrent+=oHTML.nCurrent;
-               this.nConsumed+=oHTML.nConsumed;                        
-       }
-}
-
-function getMaxUnits()
-{
-       return Math.floor(gnMaxMargin/gnUHeight)+1;
-}
-
-function getFakeItemsHTMLbyCount(nB,nCount)
-{
-       var nMU=getMaxUnits();
-       var nNum=Math.floor(nCount/nMU);
-       var sHTML="";
-       for(var i=0;i<nNum;i++)
-               sHTML+=getFakeItemHTML(nB,nMU-1);
-               
-       var nRest=nCount%nMU;
-       sHTML+=getFakeItemHTML(nB,nRest-1);
-       return sHTML;
-}
-
-function getFakeItemHTML(nB,nNum)
-{
-       return "<h6 name=fk"+nB+" id=fk"+nB+" style=\"margin-top:"+gnUHeight*nNum+";margin-bottom:0\">&nbsp;</h6>";
-}
-
-function fakeItemsArea(nB,n,sKA,sKB,obj)
-{
-       this.nB=nB;
-       this.nNum=n;
-       this.sKA=sKA;
-       this.sKB=sKB;
-       this.obj=obj;
-       this.nMargin=(n-1)*gnUHeight;
-
-       this.setNum=function(n)
-       {
-               var nLastobj=-1;
-               var nDelta=this.nMargin;
-               this.nMargin=(n-1)*gnUHeight;
-               nDelta=nDelta-this.nMargin;
-               if(n>0)
-               {
-                       this.nNum=n;
-                       var nMU=getMaxUnits();
-                       nLastobj=Math.floor((n-1)/nMU);
-                       if(this.obj.length)
-                               this.obj[nLastobj].style.marginTop=((n-1)%nMU)*gnUHeight;
-                       else
-                               this.obj.style.marginTop=((n-1)%nMU)*gnUHeight;
-               }
-               if(this.obj.length)
-               {
-                       for(var i=this.obj.length-1;i>nLastobj;i--)
-                               removeThis(this.obj[i]);
-               }
-               else
-               {
-                       if(nLastobj==-1)
-                               removeThis(this.obj);
-               }
-               return nDelta;
-       }
-       this.insertAdjacentHTML=function(sWhere,sHTML)
-       {
-               if(sWhere=="beforeBegin")
-               {
-                       if(this.obj.length)
-                               this.obj[0].insertAdjacentHTML(sWhere,sHTML);
-                       else
-                               this.obj.insertAdjacentHTML(sWhere,sHTML);
-               }
-               else if(sWhere=="afterEnd")
-               {
-                       if(this.obj.length)
-                       {
-                               if(gbMac&&gbIE5&&this.obj[this.obj.length-1].nextSibling)
-                                       this.obj[this.obj.length-1].nextSibling.insertAdjacentHTML("beforeBegin",sHTML);
-                               else
-                                       this.obj[this.obj.length-1].insertAdjacentHTML(sWhere,sHTML);
-                       }
-                       else
-                       {
-                               if(gbMac&&gbIE5&&this.obj.nextSibling)
-                                       this.obj.nextSibling.insertAdjacentHTML("beforeBegin",sHTML);
-                               else
-                                       this.obj.insertAdjacentHTML(sWhere,sHTML);
-                       }
-               }
-       }
-       this.getBtm=function()
-       {
-               if(this.obj.length)
-                       return this.obj[this.obj.length-1].offsetTop;
-               else
-                       return this.obj.offsetTop;
-       }
-       this.getTop=function()
-       {
-               return this.getBtm()-this.nMargin;
-       }
-}
-
-function usedItems(nB,nE)
-{
-       this.nB=nB;
-       this.nE=nE;
-       this.oN=null;
-}
-
-function checkReady()
-{
-       var len=gaChunks.length;
-       var bNeedLoad=false;
-       var aDataCon;
-       var s=0;
-       var bDown=(gsSKB==null);
-       var sK=bDown?gsSKA:gsSKB;
-       if(sK==null)
-       {
-               markEnd();
-               setTimeout("checkAgain();",50);
-               return;
-       }
-       if(!gsChK||sK!=gsChK||gnNum==0)
-       {
-               gnCheck=0;
-               gsChK=sK;
-               aDataCon=new Array();
-       }
-       else{
-               s=gnNum;
-               aDataCon=gaDataCon;
-       }
-       for(var i=gnCheck;i<len;i++)
-       {
-               var oCData=getChunkedData(i,bDown,sK);
-               if(oCData)
-               {
-                       if(!oCData.aKs&&oCData.sFileName!=null)
-                       {
-                               bNeedLoad=true;
-                               goCData=oCData;
-                               gnNum=s;
-                               gnCheck=i;
-                               gaDataCon=aDataCon;
-                               oCData.nProjId=i;
-                               gbLoadInfo=false;
-                               beginLoading();
-                               loadData2(gaData[i].sPPath+gaData[i].sDPath+oCData.sFileName);
-                               return;
-                       }
-                       else{
-                               aDataCon[s++]=oCData;
-                       }
-               }
-       }
-       if(!bNeedLoad)
-       {
-               gnNum=0;
-               gsSKA=gsSKB=gsShowK=null;
-               
-               var oHTML=new indexHTMLPart();
-               var aPos=new Array();
-               var aOriPos=new Array();
-               var aMaxPos=new Array();
-               var aMinPos=new Array();
-               
-               if(gbNeedCalc||gbFindCK) gnIns=0;
-               for(i=0;i<aDataCon.length;i++)
-               {
-                       aPos[i]=getIdxPos(aDataCon[i],bDown,sK);
-                       if(gbNeedCalc||gbFindCK)
-                       {
-                               gnIns+=aPos[i]+aDataCon[i].nTotal-aDataCon[i].nNum;
-                               if(!bDown)
-                               {
-                                       if(aPos[i]!=-1)
-                                       {
-                                               if(aDataCon[i].aKs)
-                                                       gnIns+=aDataCon[i].aKs[aPos[i]].nNKOff;
-                                               else
-                                               {
-                                                       var n=aPos[i]+1;
-                                                       while(n<aDataCon[i].aKsOnly.length&&!aDataCon[i].aKsOnly[n])
-                                                               n++;
-                                                       n=n-aPos[i]-1;
-                                                       gnIns+=n;
-                                               }
-                                       }
-                               }
-                       }
-                       aOriPos[i]=aPos[i];
-                       getLimit(aDataCon,aPos,aMaxPos,aMinPos,i);
-               }
-               if((gbNeedCalc||gbFindCK)&&!bDown&&gnIns!=-1)
-               {
-                       gnIns+=(aDataCon.length-1)
-               }
-               if(gnIns!=-1||gbFindCK)
-               {
-                       oHTML.nNeeded=gnNeeded;
-                       var bDone=writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,1);
-                       if(oHTML.nConsumed!=0)
-                       {
-                               var nB;
-                               if(!bDown)
-                                       nB=gnIns-oHTML.nConsumed+1;
-                               else
-                                       nB=gnIns;
-                                       
-                               var oldScrollPos=document.body.scrollTop;
-                               if(insertIdxKs(nB,oHTML,gbScrl))
-                               {
-                                       updateUsedK(aDataCon,aOriPos,aPos,bDown);
-                                       if(!gbScrl&&gbMac)
-                                       {
-                                               while(document.body.scrollTop!=oldScrollPos)
-                                                       document.body.scrollTop=oldScrollPos;
-                                       }
-                                       gbScrl=false;
-                               }
-                               if(gbFindCK)
-                               {
-                                       gbFindCK=false;
-                                       gbNeedCalc=true;
-                                       gsSKB=oHTML.sFK;
-                                       gnIns=-1;
-                                       setTimeout("checkReady();",50);
-                                       return;
-                               }
-                       }
-                       else if(gbFindCK)
-                       {
-                               gbFindCK=false;
-                               gbNeedCalc=true;
-                               gsSKB=getFirstKeyFromPos(aDataCon,aPos);
-                               gnIns=-1;
-                               setTimeout("checkReady();",50);
-                               return;
-                       }
-                       if(!findCKInDom()) return;
-
-                       gnNeeded=gnNeeded-oHTML.nCurrent;
-                       gnIns=-1;
-                       markEnd();
-                       setTimeout("checkAgain();",50);
-                       gbNeedCalc=false;
-               }
-               else
-               {
-                       if(!findCKInDom()) return;
-                       markEnd();
-                       setTimeout("checkAgain();",50);
-               }
-       }
-}
-
-function getFirstKeyFromPos(aDataCon,aPos)
-{
-       var sCurrentK=getBiggestChar();
-       for(var i=0;i<aPos.length;i++)
-       {
-               if(aDataCon[i].aKs&&aDataCon[i].aKs.length>0&&aPos[i]>=0&&aPos[i]<aDataCon[i].aKs.length)
-               {
-                       if(sCurrentK==""||
-                               compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)
-                       {
-                               sCurrentK=aDataCon[i].aKs[aPos[i]].sName;
-                       }
-               }
-       }
-       return sCurrentK;
-}
-
-function checkAgain()
-{
-       if(!gbProcess)
-       {
-               if(gsBCK!=null)
-               {
-                       gsCK=gsBCK;
-                       gsBCK=null;
-                       findCK();
-               }
-               else
-               {
-                       markBegin();
-                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);
-               }
-       }
-       else
-               setTimeout("checkAgain()",50);
-}
-
-function getLimit(aDataCon,aPos,aMaxPos,aMinPos,i)
-{
-       aMaxPos[i]=aDataCon[i].nNum;
-       aMinPos[i]=-1;
-       var oPNode=null;
-       if(aDataCon[i].oUsedItems)
-       {
-               var oUsedItems=aDataCon[i].oUsedItems;
-               do{
-                       if(oUsedItems.nB>aPos[i])
-                       {
-                               aMaxPos[i]=oUsedItems.nB;
-                               break;
-                       }
-                       oPNode=oUsedItems;
-                       oUsedItems=oUsedItems.oN;
-               }while(oUsedItems!=null);
-               if(oPNode)
-                       aMinPos[i]=oPNode.nE;
-       }
-       else if(aDataCon[i].aKs==null)
-       {
-               aMaxPos[i]=aMinPos[i]=aPos[i];
-       }
-       if(aMinPos[i]>=aPos[i]||aMaxPos[i]<=aPos[i])
-       {
-               aMaxPos[i]=aMinPos[i]=aPos[i];
-       }
-}
-
-function getIdxPos(oIdx,bDown,sK)
-{
-       var aKs=oIdx.aKs;
-       var nIdx;
-       if(bDown)
-               nIdx=oIdx.nNum;
-       else
-               nIdx=-1;
-       if(aKs!=null)
-       {
-               for(var i=0;i<aKs.length;i++)
-               {       
-                       if(bDown)
-                       {
-                               if(compare(aKs[i].sName,sK)>0)
-                               {
-                                       nIdx=i;
-                                       break;
-                               }
-                       }
-                       else
-                       {
-                               if(compare(aKs[i].sName,sK)<0)
-                                       nIdx=i;
-                               else
-                                       break;
-                       }
-                       i+=aKs[i].nNKOff;
-               }
-       }
-       else if(oIdx.aKsOnly)
-       {
-               var aKsOnly=oIdx.aKsOnly;
-               for(var i=0;i<aKsOnly.length;i++)
-               {       
-                       if(aKsOnly[i])
-                       {
-                               if(bDown)
-                               {
-                                       if(compare(aKsOnly[i],sK)>0)
-                                       {
-                                               nIdx=i;
-                                               break;
-                                       }
-                               }
-                               else
-                               {
-                                       if(compare(aKsOnly[i],sK)<0)
-                                               nIdx=i;
-                                       else
-                                               break;
-                               }
-                       }
-               }
-       }
-       return nIdx;
-}
-
-function writeItems(oHTML,aDataCon,aPos,aMinPos,aMaxPos,bDown,nLevel)
-{
-       var aOldPos=new Array();
-       for(var i=0;i<aPos.length;i++)
-       {
-               aOldPos[i]=aPos[i];
-       }
-       var p;
-       do{
-               var sCurrentK="";
-               var aCurIdxSet=new Array();
-               p=0;
-               for(i=0;i<aDataCon.length;i++)
-               {
-                       if(aDataCon[i].aKs&&aDataCon[i].aKs.length&&aPos[i]!=-1&&
-                               (bDown&&aPos[i]<aMaxPos[i])||(!bDown&&aPos[i]>aMinPos[i]))
-                       {
-                               if(sCurrentK==""||
-                                       (bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)>0)||
-                                       (!bDown&&compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)<0))
-                               {
-                                       sCurrentK=aDataCon[i].aKs[aPos[i]].sName;
-                                       p=0;
-                                       aCurIdxSet[p++]=i;
-                               }
-                               else if(compare(sCurrentK,aDataCon[i].aKs[aPos[i]].sName)==0){
-                                       aCurIdxSet[p++]=i;
-                               }
-                       }
-                       else if(nLevel==1&&aMaxPos[i]!=aMinPos[i]){
-                               if(bDown&&aPos[i]==aMaxPos[i])
-                               {
-                                       if(aDataCon[i].aKs)
-                                       {
-                                               gsSKA=aDataCon[i].aKs[aOldPos[i]].sName;
-                                               return false;
-                                       }
-                               }
-                               else if(!bDown&&aPos[i]==aMinPos[i])
-                               {
-                                       if(aDataCon[i].aKs)
-                                       {
-                                               gsSKB=aDataCon[i].aKs[aOldPos[i]].sName;
-                                               return false;
-                                       }
-                               }
-                       }
-               }
-               if(p>=1){
-                       for(var s=0;s<p;s++)
-                       {
-                               aOldPos[aCurIdxSet[s]]=aPos[aCurIdxSet[s]];
-                       }
-                       mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,p,aPos,nLevel);
-                       adjustPosition(bDown,aDataCon,aCurIdxSet,p,aPos);
-                       
-                       if(nLevel==1&&oHTML.nNeeded<=oHTML.nCurrent){
-                               return true;
-                       }
-               }
-       }while(p>0);
-       return true;
-}
-
-function updateUsedK(aDataCon,aOriPos,aOldPos,bDown)
-{
-       for(var i=0;i<aDataCon.length;i++)
-       {
-               if (aOldPos[i]!=aOriPos[i])
-               {
-                       var nBP=0;
-                       var nEP=0;
-                       if(bDown)
-                       {
-                               nBP=aOriPos[i];
-                               nEP=aOldPos[i]-1;
-                       }
-                       else
-                       {
-                               if (aOldPos[i]!=-1)
-                                       nBP=aOldPos[i]+aDataCon[i].aKs[aOldPos[i]].nNKOff+1;
-                               else
-                                       nBP=0;
-                               nEP=aOriPos[i]+aDataCon[i].aKs[aOriPos[i]].nNKOff;
-                       }
-                       if(nBP<=nEP)
-                       {
-                               setContentsUsed(aDataCon[i],nBP,nEP);
-                               
-                               var oFirstPair=aDataCon[i].oUsedItems;
-                               if(oFirstPair.oN==null&&oFirstPair.nB==0&&oFirstPair.nE==aDataCon[i].nNum-1)
-                               {
-                                       storeKeysOnly(aDataCon[i]);
-                                       aDataCon[i].oUsedItems=aDataCon[i].aKs=aDataCon[i].sFileName=null;
-                               }
-                       }
-               }
-       }
-}
-
-function storeKeysOnly(oCData)
-{
-       oCData.aKsOnly=new Array();
-       for(var i=0;i<oCData.aKs.length;i++)
-       {
-               oCData.aKsOnly[i]=oCData.aKs[i].sName;
-               i+=oCData.aKs[i].nNKOff;
-       }
-}
-
-function setContentsUsed(oIdx,nB,nE)
-{
-       if(!oIdx.oUsedItems)
-               oIdx.oUsedItems=new usedItems(nB,nE);
-       else
-       {
-               var oUsedItems=oIdx.oUsedItems;
-               var oPNode=null;
-               do{
-                       if(oUsedItems.nB>nB)
-                       {
-                               if(oUsedItems.nB==nE+1)
-                               {
-                                       oUsedItems.nB=nB;
-                               }
-                               else{
-                                       var oNewNode=new usedItems(oUsedItems.nB,oUsedItems.nE);
-                                       oNewNode.oN=oUsedItems.oN;
-                                       oUsedItems.nB=nB;
-                                       oUsedItems.nE=nE;
-                                       oUsedItems.oN=oNewNode;
-                               }
-                               break;
-                       }
-                       oPNode=oUsedItems;
-                       oUsedItems=oUsedItems.oN;
-               }while(oUsedItems);
-               if(!oUsedItems)
-               {
-                       if(oPNode!=null)
-                               oPNode.oN=new usedItems(nB,nE);
-               }
-               if(oPNode!=null){
-                       if(oPNode.nE==oPNode.oN.nB-1)
-                       {
-                               oPNode.nE=oPNode.oN.nE;
-                               oPNode.oN=oPNode.oN.oN;
-                       }
-               }
-       }
-}
-
-function projInfo(sPPath,sDPath,sFile)
-{
-       this.sPPath=sPPath;
-       this.sDPath=sDPath;
-       this.sFile=sFile;
-}
-
-function addProjInfo(sPPath,sDPath,sFile)
-{
-       var oIdxInfo=new projInfo(sPPath,sDPath,sFile);
-       gaData[gaData.length]=oIdxInfo;
-       return oIdxInfo;
-}
-
-function writeDataIFrame()
-{
-       if(gnLoad<gaData.length)
-       {
-               gbLoadInfo=true;
-               loadData2(gaData[gnLoad].sPPath+gaData[gnLoad].sDPath+gaData[gnLoad].sFile);
-       }
-       else{
-               if(gnItems!=0)
-               {
-                       markBegin();
-                       writeFakeItems();
-                       gsSKA="";
-                       gnNeeded=gnVisible;
-                       gnIns=0;
-                       checkReady();
-               }
-       }
-}
-
-function getH6ById(nPos)
-{
-       if(document.all)
-               return document.all("fk"+nPos);
-       else if(document.getElementsByName)
-               return document.getElementsByName("fk"+nPos);
-       return null;            
-}
-
-function showItemsInEvaluation(nBP)
-{
-       var bRtn=true;
-       var fPer=nBP/gnItems;
-       var nB=Math.floor(fPer*gnMaxItems);
-       var oCData=getChunkByIdx(gnRef,nB);
-       if(oCData)
-       {
-               if(!oCData.aKs&&oCData.sFileName!=null)
-               {
-                       gnNKI=nB;
-                       goCData=oCData;
-                       oCData.nProjId=gnRef;
-                       gbLoadInfo=false;
-                       beginLoading();
-                       loadData2(gaData[gnRef].sPPath+gaData[gnRef].sDPath+oCData.sFileName);
-               }
-               else{
-                       gsSKA=getKByIdx(oCData,nB);
-                       if(gsSKA)
-                       {
-                               gsSKB=null;
-                               gbNeedCalc=true;
-                               gbScrl=true;
-                               checkReady()
-                       }
-                       else
-                       {
-                               markEnd();
-                               bRtn=false;
-                       }
-               }
-       }
-       else
-       {
-               markEnd();
-               bRtn=false;
-       }
-       return bRtn;
-}
-
-function isUsed(oCData,nPos)
-{
-       var oUsed=oCData.oUsedItems;
-       while(oUsed&&oUsed.nB<=nPos)
-       {
-               if(oUsed.nE>=nPos) return true;
-               oUsed=oUsed.oN;
-       }
-       return false;
-}
-
-function getKByIdx(oCData,nB)
-{
-       var nRelPos=nB-(oCData.nTotal-oCData.nNum);
-       var aIKs=oCData.aKs;
-       if(nRelPos>=0&&aIKs&&nRelPos<aIKs.length)
-       {
-               var oK=null;
-               do{
-                       oK=aIKs[nRelPos++];
-               }       
-               while((oK.nType==3||isUsed(oCData,nRelPos-1))&&nRelPos<aIKs.length);
-               if(oK.nType!=3)
-               {
-                       return oK.sName;
-               }
-               else{
-                       nRelPos=nB-(oCData.nTotal-oCData.nNum)-1;
-                       if(nRelPos>=0)
-                       {
-                               do{
-                                       oK=aIKs[nRelPos--];
-                               }
-                               while((oK.nType==3||isUsed(oCData,nRelPos+1))&&nRelPos>=0);
-                       }
-                       if(oK.nType!=3)
-                       {
-                               return oK.sName;
-                       }
-               }
-       }
-       return null;
-}
-
-function loadData2(sFileName)
-{
-       disEvt();
-       if(gbXML)
-               loadDataXML(sFileName);
-       else
-               loadData(sFileName);
-       enEvt();
-}
-
-function projReady(aChunk)
-{
-       gaChunks[gnLoad++]=aChunk;
-       var len=aChunk.length;
-       var nTotal=0;
-       if(len>0)
-               nTotal=aChunk[len-1].nTotal;
-       gnItems+=nTotal;
-       if(nTotal>gnMaxItems)
-       {
-               gnMaxItems=nTotal;
-               gnRef=gnLoad-1;
-       }
-       setTimeout("writeDataIFrame();",1);
-}
-
-function writeFakeItems()
-{
-       disEvt();
-       gnUHeight=15;
-       var sHTML=getFakeItemsHTMLbyCount(0,gnItems);
-       document.body.insertAdjacentHTML("beforeEnd",sHTML);
-       var obj=getH6ById(0);
-       if (document.body != null)
-       {
-               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);
-       }
-       gaFakes[0]=new fakeItemsArea(0,gnItems,"",getEndString(),obj);
-       enEvt();
-}
-
-function getEndString()
-{
-       var sBC=getBiggestChar();
-       return sBC+sBC+sBC+sBC+sBC+sBC+sBC+sBC;
-}
-
-function getUnitIdx(nScrl,nHeight)
-{
-       if(gaFakes.length==0)
-       {
-               markEnd();
-               return;
-       }
-       var nB=0;
-       var nE=gaFakes.length-1;
-       var nM=-1;
-       var nTop=0;
-       var nBtm=0;
-       var bF=false;
-       do{
-               nM=(nB+nE)>>1;
-               nBtm=gaFakes[nM].getBtm();
-               nTop=gaFakes[nM].getTop();
-                       
-               if(nTop>=nScrl+nHeight)
-                       nE=nM-1;
-               else if(nBtm<nScrl)
-                       nB=nM+1;
-               else{
-                       bF=true;
-                       break;
-               }
-       }while(nE>=nB);
-       if(bF)
-       {
-               if(nTop>=nScrl){
-                       gsSKA=gaFakes[nM].sKA;
-                       gsSKB=null;
-                       gnNeeded=Math.ceil((nHeight-nTop+nScrl)/gnUHeight);
-                       gnIns=gaFakes[nM].nB;
-                       checkReady();
-               }
-               else if(nBtm<=nScrl+nHeight){
-                       gsSKB=gaFakes[nM].sKB;
-                       gsSKA=null;
-                       gnNeeded=Math.ceil((nBtm-nScrl+gnScrlMgn)/gnUHeight);
-                       gbNeedCalc=true;
-                       checkReady();
-               }
-               else{
-                       gnNeeded=gnVisible;
-                       var nUnitIdx=gaFakes[nM].nB+Math.floor((nScrl-nTop)/gnUHeight);
-                       if (!showItemsInEvaluation(nUnitIdx))
-                       {
-                               gsSKA=gaFakes[nM].sKA;
-                               gsSKB=null;
-                               gnNeeded=Math.ceil(nHeight/gnUHeight);
-                               gnIns=gaFakes[nM].nB;
-                               checkReady();
-                       }
-               }
-       }
-       else
-               markEnd();
-}
-
-function disEvt()
-{
-       window.onscroll=null;
-       window.onresize=null;
-}
-
-function enEvt()
-{
-       window.onscroll=window_OnScroll;
-       window.onresize=window_OnResize;
-}
-
-function insertIdxKs(nIns,oHTML,bScrl)
-{
-       var bRtn=true;
-       disEvt();
-       var nCount=oHTML.nConsumed;
-       var nB=0;
-       var nE=gaFakes.length-1;
-       var nM=-1;
-       var bF=false;
-       do{
-               nM=(nB+nE)>>1;
-               if(gaFakes[nM].nB>nIns)
-                       nE=nM-1;
-               else if(gaFakes[nM].nB+gaFakes[nM].nNum<=nIns)
-                       nB=nM+1;
-               else{
-                       bF=true;
-                       break;
-               }
-       }while(nE>=nB);
-       if(bF)
-       {
-               var oFIA=gaFakes[nM];
-               var nOffsetTop=oFIA.getTop();
-               var nOffsetBottom=oFIA.getBtm();
-               var nDelta=0;
-               var nHDiff=nIns-oFIA.nB;
-               var nTDiff=oFIA.nNum+oFIA.nB-(nIns+nCount);
-               if(nHDiff>0)
-               {
-                       nDelta=oFIA.setNum(nHDiff);
-                       var sOldKBefore=oFIA.sKB;
-                       oFIA.sKB=oHTML.sFK;
-                       if(nTDiff>0)
-                       {
-                               var sHTML=getFakeItemsHTMLbyCount(nIns,nTDiff);
-                               oFIA.insertAdjacentHTML("afterEnd",sHTML);
-                               var obj=getH6ById(nIns);
-                               insertItemIntoArray(gaFakes,nM+1,new fakeItemsArea(nIns+nCount,nTDiff,oHTML.sLK,sOldKBefore,obj));
-                       }
-                       oFIA.insertAdjacentHTML("afterEnd",oHTML.sHTML);        
-                       if(bScrl)
-                       {
-                               if(gbMac&&gbIE4)
-                               {
-                                       var nScrollPos=nOffsetBottom-nDelta;
-                                       while(document.body.scrollTop!=nScrollPos)
-                                               document.body.scrollTop=nScrollPos;
-                               }
-                               else
-                                       window.scrollTo(0,nOffsetBottom-nDelta);
-                       }
-               }
-               else{
-                       oFIA.insertAdjacentHTML("beforeBegin",oHTML.sHTML);
-                       if(bScrl){
-                               if(gbMac&&gbIE4)
-                               {
-                                       var nScrollPos=nOffsetTop;
-                                       while(document.body.scrollTop!=nScrollPos)
-                                               document.body.scrollTop=nScrollPos;
-                               }
-                               else
-                                       window.scrollTo(0,nOffsetTop);
-                       }
-                                       
-                       if(nTDiff>0)
-                       {
-                               oFIA.nB=nIns+nCount;
-                               nDelta=oFIA.setNum(nTDiff);
-                               oFIA.sKA=oHTML.sLK;
-                       }       
-                       else{
-                               gaFakes[nM].setNum(0);
-                               removeItemFromArray(gaFakes,nM);
-                       }
-               }
-       }
-       else
-               bRtn=false;
-       enEvt();
-       return bRtn;
-}
-
-function window_OnScroll()
-{
-       gnSE++;
-       setTimeout("procScroll();",50); 
-}
-
-function procScroll()
-{
-       if(gnSE==1&&!gbProcess)
-       {
-               markBegin();
-               getUnitIdx(document.body.scrollTop,document.body.clientHeight);
-       }
-       gnSE--;
-}
-
-function window_OnResize()
-{
-       gnRE++;
-       setTimeout("procResize();",50);
-}
-
-function procResize()
-{
-       if(gnRE==1&&!gbProcess)
-       {
-               markBegin();
-               gnVisible=Math.ceil(document.body.clientHeight/gnUHeight);
-               if(gnIns==-1)
-                       getUnitIdx(document.body.scrollTop,document.body.clientHeight);
-       }
-       gnRE--;
-}
-
-function getChunkByIdx(nIdx,nPosition)
-{
-       var oCData=null;
-       if(nIdx<gaChunks.length)
-       {
-               var len=gaChunks[nIdx].length;
-               if(len>0)
-               {
-                       var nB=0;
-                       var nE=len-1;
-                       var bF=false;
-                       do{
-                               var nM=(nB+nE)>>1;
-                               if(nPosition<gaChunks[nIdx][nM].nTotal)
-                               {
-                                       bF=true;
-                                       nE=nM;
-                               }
-                               else
-                                       nB=nM+1;
-                       }while(nE>nB);
-                       if(bF)
-                               oCData=gaChunks[nIdx][nE];
-                       else if(nPosition<gaChunks[nIdx][nB].nTotal)
-                               oCData=gaChunks[nIdx][nB];
-               }
-       }
-       return oCData;
-}
-
-function getChunkedData(nIdx,bDown,sK)
-{
-       var oCData=null;
-       var nCandId=-1;
-       if(nIdx<gaChunks.length)
-       {
-               var len=gaChunks[nIdx].length;
-               if(len>0)
-               {
-                       var nB=0;
-                       var nE=len-1;
-                       var bF=false;
-                       do{
-                               var nM=(nB+nE+(bDown?0:1))>>1;
-                               if(bDown)
-                               {
-                                       if(compare(sK,gaChunks[nIdx][nM].sEK)<0)
-                                       {
-                                               bF=true;
-                                               nE=nM;
-                                       }
-                                       else
-                                               nB=nM+1;
-                               }
-                               else
-                               {
-                                       if(compare(sK,gaChunks[nIdx][nM].sBK)>0)
-                                       {
-                                               bF=true;
-                                               nB=nM;
-                                       }
-                                       else
-                                               nE=nM-1;
-                               }
-                       }while(nE>nB);
-                       if(bF)
-                       {
-                               if(bDown)
-                                       nCandId=nE;
-                               else
-                                       nCandId=nB;
-                       }
-                       else
-                       {
-                               if(bDown)
-                               {
-                                       if(gaChunks[nIdx].length>nB&&compare(sK,gaChunks[nIdx][nB].sEK)<0)
-                                               nCandId=nB;
-                                       else
-                                               nCandId=gaChunks[nIdx].length-1;
-                               }
-                               else
-                               {
-                                       if(0<=nE&&compare(sK,gaChunks[nIdx][nE].sBK)>0)
-                                               nCandId=nE;
-                                       else
-                                               nCandId=0;
-                               }
-                       }
-                       return gaChunks[nIdx][nCandId];
-               }
-       }
-       return null;
-}
-
-function findCK()
-{
-       if(gsCK!=null)
-       {
-               gsSKA=gsCK;
-               gbFindCK=true;
-               gnNeeded=1;
-               markBegin();
-               checkReady();
-       }
-}
-
-function writeLoadingDiv(nIIdx)
-{
-       return "<div id=\""+gsLoadingDivID+"\" style=\"position:absolute;top:0;left:0;z-index:600;visibility:hidden;padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
-}
-
-var gbWhHost=true;
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whibody.htm b/doc/salome/gui/GEOM/whibody.htm
deleted file mode 100755 (executable)
index 46aeaa2..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-<html>
-<head>
-<title>Index content</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<base target="bsscright">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whlang.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whhost.js"></script>
-<script language="javascript1.2" src="whihost.js"></script>
-<script language="javascript1.2">
-<!--
-var goPopup = null;
-var gbPopupMenuTimeoutExpired=false;
-var gBsClientWidth=640;
-var gBsClientHeight=480;
-var g_bIsPopupMenuInit=false;
-
-function WritePopupMenuLayer()
-{
-       if (!g_bIsPopupMenuInit)
-       {
-               document.write("<DIV ID='PopupMenu' STYLE='position:absolute; left:0px; top:0px; z-index:4; visibility:hidden;'></DIV>");
-               document.write("<STYLE TYPE='text/css'>");
-               if (gbMac && gbIE4) {
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:10pt; text-decoration:none;}");
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:10pt; text-decoration:none;}");
-               } else {
-                       document.write(".PopupOver {font-family:'Arial'; color:white; background:navy; font-size:8pt; text-decoration:none;}");
-                       document.write(".PopupNotOver {font-family:'Arial'; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");
-               }
-               document.write("</STYLE>");
-       }
-       g_bIsPopupMenuInit = true;
-}
-
-function PopupMenu_Invoke()
-{
-       if (gbNav6)
-               resetHighLight();
-       
-       if (!gbNav6  && document.readyState != "complete")
-               return false;
-       var fn_arguments = PopupMenu_Invoke.arguments; 
-       // Make sure we have reasonable arguments
-       var argLen = fn_arguments.length;
-       if (argLen < 3) {
-               return false;
-       }
-
-       // Check to see if we only have one target
-       var strTarget = "";
-       
-       strTarget = "TARGET='" + fn_arguments[1] + "'";
-       
-       if (argLen < 5) {
-               // Get the place that we will be putting the topic into
-               var strURL = fn_arguments[3];
-
-               if (fn_arguments[1] != null && typeof(fn_arguments[1]) != "undefined")
-                       window.open(strURL, fn_arguments[1]);
-               else
-                       window.open(strURL);
-                       
-               return false;
-       }
-       
-       var strMenu = '<TABLE STYLE="border:2px outset white;" CELLSPACING=0';
-       if (gbMac && gbIE4) {
-               strMenu += ' CELLPADDING=4';
-       } else {
-               strMenu += ' CELLPADDING=2';
-       }       
-       strMenu += ' BGCOLOR=#c0c0c0>';
-
-       // Add each of the items
-       if (gbIE55)
-       {
-               var i = 2;
-               while (i <= argLen - 1) {
-                       strMenu += '<TR><TD><NOBR>'
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A ';
-                       strMenu += ' onclick="parent.PopupMenu_2HandleClick(\'' + excapeSingleQuotandSlash(fn_arguments[i + 1]) + '\', \'' + fn_arguments[1] + '\');"';
-                       strMenu += ' onmouseover="parent.PopupMenu_Over(event);"';
-                       strMenu += ' onmouseout="parent.PopupMenu_Out(event);"';
-                       strMenu += '>';
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + fn_arguments[i] + '</SPAN>';
-                       strMenu += '</A></DIV></NOBR></TD></TR>';
-                       i += 2;
-               }
-       }
-       else
-       {
-               var i = 2;
-               while (i <= argLen - 1) {
-                       strMenu += '<TR><TD><NOBR>'
-                       strMenu += '<DIV STYLE="padding-left:3pt; padding-right:3pt;"><A HREF="' + fn_arguments[i + 1] + '" ' + strTarget;
-                       strMenu += ' onclick="PopupMenu_HandleClick(event);"';
-                       strMenu += ' onmouseover="PopupMenu_Over(event);"';
-                       strMenu += ' onmouseout="PopupMenu_Out(event);"';
-                       strMenu += '>';
-                       strMenu += '<SPAN CLASS="PopupNotOver">' + excapeSingleQuotandSlash(fn_arguments[i]) + '</SPAN>';
-                       strMenu += '</A></DIV></NOBR></TD></TR>';
-                       i += 2;
-               }
-       }
-       strMenu += "</TABLE>";
-
-       if (gbMac && gbIE4) {
-       // ie5 in mac need something. </TABLE> is one of them.
-               strMenu +="<TABLE></TABLE>";
-       }
-
-       var layerPopup = null;
-       var stylePopup = null;
-       var nEventX = 0;
-       var nEventY = 0;
-       var nWindowWidth = 0;
-       if (gbIE4||gbOpera7)
-       {
-               layerPopup = document.all["PopupMenu"];
-               layerPopup.innerHTML = strMenu;
-               stylePopup = layerPopup.style;
-
-               _BSPSGetClientSize();
-
-               // Get the position of the item causing the event (relative to its parent)
-               nEventX = window.event.clientX;
-               nEventY = window.event.clientY;
-               
-               if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) {
-                       nEventY += document.body.scrollTop + 10;
-               } else {
-                       nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20;
-               }
-               stylePopup.top = nEventY;
-
-               if (nEventX + layerPopup.scrollWidth + 20 > gBsClientWidth) {
-                       if (gBsClientWidth - layerPopup.scrollWidth < 5) {
-                               stylePopup.left = 5;
-                       } else {
-                               stylePopup.left = gBsClientWidth - layerPopup.scrollWidth - 5;
-                       }
-               } else {
-                       stylePopup.left = nEventX + document.body.scrollLeft + 20;
-               }
-
-               if (gbIE55) {
-                       var nPosX = window.event.clientX;
-                       var nPosY = window.event.clientY;
-                       if (window.event.srcElement)
-                       {
-                               nPosX = window.event.srcElement.offsetLeft + window.event.srcElement.offsetWidth - document.body.scrollLeft;
-                               nPosY = window.event.srcElement.offsetTop + window.event.srcElement.offsetHeight - document.body.scrollTop;
-                       }
-                       goPopup = window.createPopup();
-                       var oPopupBody = goPopup.document.body;
-                       goPopup.document.createStyleSheet();
-                       goPopup.document.styleSheets[0].addRule(".PopupOver", "{font-family:\"Arial\"; cursor: hand;color:white; background:navy; font-size:8pt; text-decoration:none;}");
-                       goPopup.document.styleSheets[0].addRule(".PopupNotOver", "{font-family:\"Arial\"; color:black; background:#c0c0c0; font-size:8pt; text-decoration:none;}");
-                       oPopupBody.insertAdjacentHTML("afterBegin", strMenu);
-                       goPopup.show(nPosX, nPosY, layerPopup.scrollWidth, layerPopup.scrollHeight, document.body);
-               }
-               else 
-               {
-                       stylePopup.visibility = "visible";
-                       document.onclick = PopupMenu_HandleClick;
-               }
-       } else if (gbNav6) {
-               layerPopup = document.getElementById("PopupMenu");
-               layerPopup.style.visibility = "hidden";
-       
-               var e = fn_arguments[0];
-               nEventX = e.pageX;
-               nEventY = e.pageY;
-               _BSPSGetClientSize();
-               layerPopup.innerHTML = strMenu;
-
-               if (nEventY + layerPopup.offsetHeight + 20  <  window.pageYOffset + gBsClientHeight) {
-                       nEventY += 20;
-               } else {
-                       nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20;
-               }
-
-               if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) {
-                       if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) {
-                               nEventX = 5;
-                       } else {
-                               nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20;
-                       }
-               } else {
-                       nEventX += 20;
-               }
-               layerPopup.style.top = nEventY;
-               layerPopup.style.left = nEventX;
-
-               // set again to avoid the frash in netscape 6.
-               layerPopup.innerHTML = strMenu;
-               layerPopup.style.visibility = "visible";
-               window.onclick = PopupMenu_HandleClick;
-       } 
-
-       window.gbPopupMenuTimeoutExpired = false;
-       setTimeout("PopupMenu_Timeout();", 100);
-       return false;
-}
-
-function PopupMenu_Timeout()
-{
-       window.gbPopupMenuTimeoutExpired = true;
-}
-
-function PopupMenu_Over(e)
-{
-       if (gbIE4||gbOpera7)
-               e.srcElement.className = "PopupOver";
-       else if (gbNav6)
-               e.target.parentNode.className = "PopupOver";
-}
-
-function PopupMenu_Out(e)
-{
-       if (gbIE4||gbOpera7)
-               e.srcElement.className = "PopupNotOver";
-       else if (gbNav6)
-               e.target.parentNode.className = "PopupNotOver";
-}
-
-function PopupMenu_2HandleClick(surl, starget)
-{
-       window.open(surl, starget);
-       goPopup.hide();
-}
-
-function PopupMenu_HandleClick(e)
-{
-       if (!window.gbPopupMenuTimeoutExpired) {
-               return;
-       }
-
-       var layerPopup = getElement("PopupMenu");
-       layerPopup.style.visibility = "hidden";
-
-       return;
-}
-
-//Get client size info
-function _BSPSGetClientSize()
-{
-       gBsClientWidth  = document.body.clientWidth;
-       gBsClientHeight = document.body.clientHeight;
-}
-
-if (window.gbWhIHost)
-{
-       
-       
-       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Empty", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-       setActiveBgColor("#cccccc");
-       setMargin("0pt");
-       setIndent("9pt");
-       IndexWriteClassStyle();
-}
-else
-       document.location.reload();
-//-->
-</script>
-</head>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" scroll="auto" bgcolor="white">
-<script languageE="JavaScript">
-<!--
-WritePopupMenuLayer();
-//-->
-</script>
-</body>
-</html>
-
diff --git a/doc/salome/gui/GEOM/whidhtml.htm b/doc/salome/gui/GEOM/whidhtml.htm
deleted file mode 100755 (executable)
index feb7b2b..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>
-<head>
-<title>Index</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2">
-<!--
-var gbIndexLayerInit = false;
-if (window.gbWhProxy&&window.gbWhMsg&&window.gbWhVer)
-{
-       var strWrite;
-       if (gbMac)
-               strWrite="<FRAMESET ROWS='45,100%' framespacing=0  frameborder=1>";
-       else
-               strWrite="<FRAMESET ROWS='60,100%' framespacing=0  frameborder=1>";
-       strWrite +="<FRAME SRC='whiform.htm' title='index form frame' name='idxform' noresize='yes' scrolling='no'>";
-       strWrite +="<FRAME SRC='whibody.htm' title='index content frame' name='idxbody' scrolling='yes'>";
-       strWrite +="</FRAMESET>";
-       document.write(strWrite);
-}
-else
-       document.location.reload();
-//-->
-</script>
-</html>
diff --git a/doc/salome/gui/GEOM/whiform.htm b/doc/salome/gui/GEOM/whiform.htm
deleted file mode 100755 (executable)
index d412744..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<html>
-<head>
-<title>Index form</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<style>
-<!--
-body {margin:0;}
--->
-</style>
-<body bgcolor="#c0c0c0">
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whform.js"></script>
-<script language="javascript1.2">
-<!--
-function indexLookup(bCR)
-{
-       var strInput = document.IndexInputForm.keywordField.value.toUpperCase();
-       if (strInput != "") {
-               var oParam = new Object();
-               oParam.sInput = strInput;
-               oParam.bCR = bCR;
-               var oMessage = new whMessage(WH_MSG_SEARCHINDEXKEY, this, 1, oParam);
-               SendMessage(oMessage);
-       }
-       if (gbMac) {
-               document.IndexInputForm.keywordField.focus();
-       }
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this, WH_MSG_SHOWTOC);
-       UnRegisterListener2(this, WH_MSG_SHOWIDX);
-       UnRegisterListener2(this, WH_MSG_SHOWFTS);
-       UnRegisterListener2(this, WH_MSG_SHOWGLO);
-}
-
-function onSendMessage(oMessage)
-{
-       if (oMessage.nMessageId == WH_MSG_SHOWIDX)
-       {
-               document.IndexInputForm.keywordField.focus();
-       }
-       else if (oMessage.nMessageId == WH_MSG_SHOWFTS ||
-               oMessage.nMessageId == WH_MSG_SHOWTOC || 
-               oMessage.nMessageId == WH_MSG_SHOWGLO)
-       {
-               document.IndexInputForm.keywordField.blur();
-       }
-       return true;
-}
-
-if (window.gbWhForm)
-{
-       RegisterListener2(this, WH_MSG_SHOWTOC);
-       RegisterListener2(this, WH_MSG_SHOWIDX);
-       RegisterListener2(this, WH_MSG_SHOWFTS);
-       RegisterListener2(this, WH_MSG_SHOWGLO);
-       window.onunload=window_Unload;
-       window.onload = init;
-       gfunLookUp = indexLookup;
-       gfunInit = null;
-       gstrFormName = "IndexInputForm"
-       gsTitle = "Type in the keyword to find:";
-       gsTitle = "Type in the keyword to find:";
-
-       
-       
-       
-       
-       
-       
-       setGoText("Go");
-       setFont("Title", "Arial","9pt","#000000","normal","normal","none");
-       
-       
-       document.write(getFormHTML());
-       writeFormStyle();
-}
-else
-       document.location.reload();
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whihost.js b/doc/salome/gui/GEOM/whihost.js
deleted file mode 100755 (executable)
index d48c493..0000000
+++ /dev/null
@@ -1,424 +0,0 @@
-//     WebHelp 5.10.002
-var gsDefaultTarget="bsscright";
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goIdxFont=null;
-var goIdxEmptyFont=null;
-var goIdxHoverFont=null;
-var gsIdxMargin="0pt";
-var gsIdxIndent="8pt";
-var gsIdxActiveBgColor="#cccccc";
-var gsCK = null;
-var gsBCK = null;
-var gbCR = false;
-var gbBCR = false;
-var gbWhIHost=true;
-
-function myEvent()
-{
-       this.pageX = 0;
-       this.pageY = 0;
-}
-var _event=new myEvent();
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Normal")
-               goIdxFont=vFont;
-       else if(sType=="Empty")
-               goIdxEmptyFont=vFont;
-       else if(sType=="Hover")
-               goIdxHoverFont=vFont;
-}
-
-function setActiveBgColor(sBgColor)
-{
-       gsIdxActiveBgColor=sBgColor;
-}
-
-function setMargin(sMargin)
-{
-       gsIdxMargin=sMargin;
-}
-
-function setIndent(sIndent)
-{
-       gsIdxIndent=sIndent;
-}
-
-function writeOneItem(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
-{
-       var sHTML="";
-       var nIdxSet=aCurIdxSet[0];
-       var nIIdx=aPos[nIdxSet];
-       var sKOriName=getItemName(aDataCon,nIdxSet,nIIdx);
-       var sKName=_textToHtml(sKOriName);
-
-       var nIdxIndent=parseInt(gsIdxIndent);
-       var sTopics="";
-       if(nLevel==1){
-               if(getItemType(aDataCon,nIdxSet,nIIdx)==1)
-               {
-                       sHTML+="<H6><nobr>";
-                       sHTML+="<b>"+sKName+"</b></nobr></H6>";
-               }
-               else{
-                       for(var i=0;i<nLength;i++)
-                               sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
-                       sHTML+="<p style=\"margin-left:"+gsIdxIndent+"\"><nobr>";
-                       sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";
-                       if(sTopics.length>0)
-                               sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></p>";
-                       else
-                               sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></p>";
-               }
-       }
-       else if(nLevel>=2){
-               var nIndent=nIdxIndent*nLevel;
-               for(var i=0;i<nLength;i++)
-                       sTopics+=getIdxTopics(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
-               if (nLevel==2)
-                       sHTML+="<h6 class=\"firstsub\" style=\"margin-left:"+nIndent+"pt\"><nobr>";
-               else
-                       sHTML+="<h6 style=\"margin-left:"+nIndent+"pt\"><nobr>";
-               sHTML+="<a alt=\"" + sKName + "\" href=\"javascript:void(0);\" onfocus=\"clearHighLight();\" onclick=\"PopupMenu_Invoke(event,'"+excapeSingleQuotandSlash(getTargetName(aDataCon,nIdxSet,nIIdx))+"'";
-               if(sTopics.length>0)
-                       sHTML+=sTopics+");return false;\">"+sKName+"</a></nobr></h6>";
-               else
-                       sHTML+=");return false;\" style=\""+getFontStyle(goIdxEmptyFont)+"\">"+sKName+"</a></nobr></h6>";
-       }
-       oHTML.addHTML(sHTML,nLength,bDown,(nLevel==1),sKOriName);
-}
-
-function getTargetName(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               if(aDataCon[nIdxSet].aKs[nIIdx].sTarget)
-                       return aDataCon[nIdxSet].aKs[nIIdx].sTarget;
-       return gsDefaultTarget;
-}
-
-function mergeItems(oHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel)
-{
-       var oLocalHTML=new indexHTMLPart();
-       writeOneItem(oLocalHTML,bDown,aDataCon,aCurIdxSet,nLength,aPos,nLevel);
-       
-       var aLocalPos=new Array();
-       var aMaxPos=new Array();
-       for(var i=0;i<aPos.length;i++)
-       {
-               aLocalPos[i]=aPos[i];
-               aMaxPos[i]=-1;
-       }
-       
-       for(i=0;i<nLength;i++)
-       {
-               var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aLocalPos[aCurIdxSet[i]]);
-               aLocalPos[aCurIdxSet[i]]++;
-               if(nNKOff>0)
-                       aMaxPos[aCurIdxSet[i]]=aLocalPos[aCurIdxSet[i]]+nNKOff;
-       }
-       var oSubHTML=new indexHTMLPart();
-       writeItems(oSubHTML,aDataCon,aLocalPos,null,aMaxPos,true,nLevel+1);
-       oLocalHTML.addSubHTML(oSubHTML,true);
-       oHTML.appendHTML(oLocalHTML,bDown);
-}
-
-function adjustPosition(bDown,aDataCon,aCurIdxSet,nLength,aPos)
-{
-       if(bDown)
-       {
-               for(var i=0;i<nLength;i++)
-               {
-                       var nNKOff=getNKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
-                       aPos[aCurIdxSet[i]]+=(1+nNKOff);
-               }
-       }
-       else{
-               for(var i=0;i<nLength;i++)
-               {
-                       var nPKOff=getPKOff(aDataCon,aCurIdxSet[i],aPos[aCurIdxSet[i]]);
-                       aPos[aCurIdxSet[i]]-=(1+nPKOff);
-               }
-       }
-}
-
-function getItemName(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].sName;
-       else
-               return null;
-}
-
-function getItemType(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].nType;
-       else
-               return 0;
-}
-
-function getNKOff(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].nNKOff;
-       else
-               return null;
-}
-
-function getPKOff(aDataCon,nIdxSet,nIIdx)
-{
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-               return aDataCon[nIdxSet].aKs[nIIdx].nPKOff;
-       else
-               return null;
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-       {
-               document.body.background=gsBgImage;
-       }
-       if(gsBgColor&&gsBgColor.length>0)
-       {
-               document.body.bgColor=gsBgColor;
-       }
-       document.body.insertAdjacentHTML("beforeEnd",writeLoadingDiv());
-       loadIdx();
-       var oMsg=new whMessage(WH_MSG_SHOWIDX,this,1,null)
-       SendMessage(oMsg);
-}
-
-function loadIdx()
-{
-       if(!gbReady)
-       {
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
-               if(SendMessage(oResMsg)&&oResMsg.oParam)
-               {
-                       gbReady=true;
-                       var oProj=oResMsg.oParam;
-                       var aProj=oProj.aProj;
-                       gbXML=oProj.bXML;
-                       if(aProj.length>0)
-                       {
-                               var sLangId=aProj[0].sLangId;
-                               for(var i=0;i<aProj.length;i++)
-                               {
-                                       if(aProj[i].sIdx&&aProj[i].sLangId==sLangId)
-                                       {
-                                               addProjInfo(aProj[i].sPPath,aProj[i].sDPath,aProj[i].sIdx);
-                                       }
-                               }
-                       }
-                       writeDataIFrame();
-                       enEvt();
-               }               
-       }
-}
-
-function getIdxTopics(aDataCon,nIdxSet,nIIdx)
-{
-       var sTopics="";
-       if(nIdxSet<aDataCon.length&&aDataCon[nIdxSet].aKs.length>nIIdx)
-       {
-               if(aDataCon[nIdxSet].aKs[nIIdx].aTopics)
-               {
-                       var nLen=aDataCon[nIdxSet].aKs[nIIdx].aTopics.length;
-                       var nProj=aDataCon[nIdxSet].nProjId;
-                       var sPath=gaData[nProj].sPPath;
-                       for(var i=0;i<nLen;i++)
-                       {
-                               var sURL=aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sURL;
-                               var sFullPath=_getFullPath(sPath,sURL);
-                               sTopics+=",'"+excapeSingleQuotandSlash(_textToHtml(aDataCon[nIdxSet].aKs[nIIdx].aTopics[i].sName))+"','"+excapeSingleQuotandSlash(_textToHtml_nonbsp(sFullPath))+"'";
-                       }
-               }
-       }
-       return sTopics;         
-}
-
-function findCKInDom()
-{
-       if(gsCK!=null)
-       {
-               var sK=gsCK;
-               var oP=getElementsByTag(document,"P");
-               if(!oP) return false;
-               var len=oP.length;
-               var nB=0;
-               var nE=len-1;
-               var nM=0;
-               var sItem="";
-               var bF=false;
-               while(nB<nE){
-                       nM=(nB+nE+1)>>1;
-                       sItem=getInnerText(oP[nM]);
-                       
-                       if(compare(sItem,sK)==0)
-                       {
-                               bF=true;
-                               break;
-                       }
-                       else if(compare(sItem,sK)>0)
-                               nE=nM-1;
-                       else if(compare(sItem,sK)<0)
-                               nB=nM;
-               }
-               if(!bF)
-               {
-                       if(nB==nE) nM=nB;
-               
-                       if(nM+1<len)
-                       {
-                               sItem=getInnerText(oP[nM+1]);
-                               if(compare(sItem,sK)<=0) nM++;
-                       }                       
-                       if(nM+1<len)
-                       {
-                               sItem=getInnerText(oP[nM+1]);
-                               if(compare(sItem.substring(0,sK.length),sK)==0) nM++;
-                       }                       
-               }
-       
-               var oMatch=oP[nM];
-               if(oMatch)
-               {
-                       window.scrollTo(0,oMatch.offsetTop);
-                       var tempColl=getElementsByTag(oMatch,"A");
-                       if(tempColl&&tempColl.length>0){
-                               var nbTag=getElementsByTag(oMatch,"NOBR");
-                               if(nbTag&&nbTag.length>0)
-                                       HighLightElement(nbTag[0], gsIdxActiveBgColor, "transparent");
-                               if (gbCR)
-                               {
-                                       if (gbIE4)
-                                               tempColl(0).click();
-                                       else
-                                       {
-                                               var strCommand = tempColl[0].getAttribute("onClick");
-                                               var nstrCommand = strCommand.indexOf(";");
-                                               strCommand = strCommand.substring(0, nstrCommand);
-                                               strCommand = strCommand.replace("event", "_event");
-                                               window._event.pageX = oMatch.offsetLeft ;
-                                               window._event.pageY = oMatch.offsetTop + 20;
-                                               window.setTimeout(strCommand, 100);
-                                       }
-                               }
-                       }
-               }
-               gsCK=gsBCK;
-               gbCR=gbBCR;
-               if(gsBCK!=null)
-               {
-                       gsBCK=null;
-                       gbBCR=false;
-                       findCK();
-                       return false;
-               }
-               
-       }
-       return true;
-}
-
-function clearHighLight()
-{
-       resetHighLight(gsBgColor);
-}
-
-function IndexWriteClassStyle()
-{
-       var sStyle="";
-       sStyle+="<STYLE TYPE='text/css'>";
-       if (gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       if(gbIE4&&gbMac&&!gbIE5)
-       {
-               var nMargin=parseInt(gsIdxMargin);
-               nMargin-=10;
-               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
-               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
-               sStyle+="H6.firstsub {"+getFontStyle(goIdxFont)+"margin-top:"+nMargin+"pt;margin-bottom:"+gsIdxMargin+";}\n";
-       }
-       else
-       {
-               sStyle+="P {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
-               sStyle+="H6 {"+getFontStyle(goIdxFont)+"margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
-       }
-       sStyle+="DIV {margin-top:"+gsIdxMargin+";margin-bottom:"+gsIdxMargin+";}\n";
-       sStyle+="A:link {"+getFontStyle(goIdxFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goIdxFont)+"}\n";
-       sStyle+="A:active {background-color:"+gsIdxActiveBgColor+";}\n";
-       sStyle+="A:hover {"+getFontStyle(goIdxHoverFont)+"}\n";
-       sStyle+="</STYLE>";     
-       document.write(sStyle);
-       return;
-}
-
-function window_Unload()
-{
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
-       UnRegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
-}
-
-function onSendMessage(oMsg)
-{
-       if(oMsg)
-       {
-               var nMsgId=oMsg.nMessageId;
-               if(nMsgId==WH_MSG_SEARCHINDEXKEY)
-               {
-                       if(oMsg.oParam && oMsg.oParam.sInput)
-                       {
-                               if(gsCK==null)
-                               {
-                                       gsCK=oMsg.oParam.sInput;
-                                       gbCR = oMsg.oParam.bCR;
-                                       findCK();
-                               }
-                               else
-                               {
-                                       gsBCK=oMsg.oParam.sInput;
-                                       gbBCR = oMsg.oParam.bCR;
-                               }
-                       }
-               }
-               else if(nMsgId==WH_MSG_PROJECTREADY)
-               {
-                       loadIdx();
-               }
-       }
-       return true;
-}
-
-if(window.gbWhVer&&window.gbWhLang&&window.gbWhMsg&&window.gbWhUtil&&window.gbWhHost&&window.gbWhProxy)
-{
-       RegisterListener2(this,WH_MSG_PROJECTREADY);
-       RegisterListener2(this,WH_MSG_SEARCHINDEXKEY);
-       goIdxFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-       goIdxEmptyFont=new whFont("Verdana","8pt","#666666","normal","normal","none");
-       goIdxHoverFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-
-       window.onload=window_OnLoad;
-       window.onbeforeunload=window_BUnload;
-       window.onunload=window_Unload;
-       gbWhIHost=true;
-}
-else
-       document.location.reload();
-
diff --git a/doc/salome/gui/GEOM/whlang.js b/doc/salome/gui/GEOM/whlang.js
deleted file mode 100755 (executable)
index fb848c5..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-//     WebHelp 5.10.001
-var garrSortChar=new Array();
-var gaFtsStop=new Array();
-var gaFtsStem=new Array();
-var gbWhLang=false;
-
-garrSortChar[0] = 0;
-garrSortChar[1] = 1;
-garrSortChar[2] = 2;
-garrSortChar[3] = 3;
-garrSortChar[4] = 4;
-garrSortChar[5] = 5;
-garrSortChar[6] = 6;
-garrSortChar[7] = 7;
-garrSortChar[8] = 8;
-garrSortChar[9] = 40;
-garrSortChar[10] = 41;
-garrSortChar[11] = 42;
-garrSortChar[12] = 43;
-garrSortChar[13] = 44;
-garrSortChar[14] = 9;
-garrSortChar[15] = 10;
-garrSortChar[16] = 11;
-garrSortChar[17] = 12;
-garrSortChar[18] = 13;
-garrSortChar[19] = 14;
-garrSortChar[20] = 15;
-garrSortChar[21] = 16;
-garrSortChar[22] = 17;
-garrSortChar[23] = 18;
-garrSortChar[24] = 19;
-garrSortChar[25] = 20;
-garrSortChar[26] = 21;
-garrSortChar[27] = 22;
-garrSortChar[28] = 23;
-garrSortChar[29] = 24;
-garrSortChar[30] = 25;
-garrSortChar[31] = 26;
-garrSortChar[32] = 38;
-garrSortChar[33] = 45;
-garrSortChar[34] = 46;
-garrSortChar[35] = 47;
-garrSortChar[36] = 48;
-garrSortChar[37] = 49;
-garrSortChar[38] = 50;
-garrSortChar[39] = 33;
-garrSortChar[40] = 51;
-garrSortChar[41] = 52;
-garrSortChar[42] = 53;
-garrSortChar[43] = 88;
-garrSortChar[44] = 54;
-garrSortChar[45] = 34;
-garrSortChar[46] = 55;
-garrSortChar[47] = 56;
-garrSortChar[48] = 115;
-garrSortChar[49] = 119;
-garrSortChar[50] = 121;
-garrSortChar[51] = 123;
-garrSortChar[52] = 125;
-garrSortChar[53] = 126;
-garrSortChar[54] = 127;
-garrSortChar[55] = 128;
-garrSortChar[56] = 129;
-garrSortChar[57] = 130;
-garrSortChar[58] = 57;
-garrSortChar[59] = 58;
-garrSortChar[60] = 89;
-garrSortChar[61] = 90;
-garrSortChar[62] = 91;
-garrSortChar[63] = 59;
-garrSortChar[64] = 60;
-garrSortChar[65] = 131;
-garrSortChar[66] = 148;
-garrSortChar[67] = 150;
-garrSortChar[68] = 154;
-garrSortChar[69] = 158;
-garrSortChar[70] = 168;
-garrSortChar[71] = 171;
-garrSortChar[72] = 173;
-garrSortChar[73] = 175;
-garrSortChar[74] = 185;
-garrSortChar[75] = 187;
-garrSortChar[76] = 189;
-garrSortChar[77] = 191;
-garrSortChar[78] = 193;
-garrSortChar[79] = 197;
-garrSortChar[80] = 214;
-garrSortChar[81] = 216;
-garrSortChar[82] = 218;
-garrSortChar[83] = 220;
-garrSortChar[84] = 225;
-garrSortChar[85] = 230;
-garrSortChar[86] = 240;
-garrSortChar[87] = 242;
-garrSortChar[88] = 244;
-garrSortChar[89] = 246;
-garrSortChar[90] = 252;
-garrSortChar[91] = 61;
-garrSortChar[92] = 62;
-garrSortChar[93] = 63;
-garrSortChar[94] = 64;
-garrSortChar[95] = 66;
-garrSortChar[96] = 67;
-garrSortChar[97] = 131;
-garrSortChar[98] = 148;
-garrSortChar[99] = 150;
-garrSortChar[100] = 154;
-garrSortChar[101] = 158;
-garrSortChar[102] = 168;
-garrSortChar[103] = 171;
-garrSortChar[104] = 173;
-garrSortChar[105] = 175;
-garrSortChar[106] = 185;
-garrSortChar[107] = 187;
-garrSortChar[108] = 189;
-garrSortChar[109] = 191;
-garrSortChar[110] = 193;
-garrSortChar[111] = 197;
-garrSortChar[112] = 214;
-garrSortChar[113] = 216;
-garrSortChar[114] = 218;
-garrSortChar[115] = 220;
-garrSortChar[116] = 225;
-garrSortChar[117] = 230;
-garrSortChar[118] = 240;
-garrSortChar[119] = 242;
-garrSortChar[120] = 244;
-garrSortChar[121] = 246;
-garrSortChar[122] = 252;
-garrSortChar[123] = 68;
-garrSortChar[124] = 69;
-garrSortChar[125] = 70;
-garrSortChar[126] = 71;
-garrSortChar[127] = 27;
-garrSortChar[128] = 114;
-garrSortChar[129] = 28;
-garrSortChar[130] = 82;
-garrSortChar[131] = 170;
-garrSortChar[132] = 85;
-garrSortChar[133] = 112;
-garrSortChar[134] = 109;
-garrSortChar[135] = 110;
-garrSortChar[136] = 65;
-garrSortChar[137] = 113;
-garrSortChar[138] = 223;
-garrSortChar[139] = 86;
-garrSortChar[140] = 213;
-garrSortChar[141] = 29;
-garrSortChar[142] = 255;
-garrSortChar[143] = 30;
-garrSortChar[144] = 31;
-garrSortChar[145] = 80;
-garrSortChar[146] = 81;
-garrSortChar[147] = 83;
-garrSortChar[148] = 84;
-garrSortChar[149] = 111;
-garrSortChar[150] = 36;
-garrSortChar[151] = 37;
-garrSortChar[152] = 79;
-garrSortChar[153] = 229;
-garrSortChar[154] = 222;
-garrSortChar[155] = 87;
-garrSortChar[156] = 212;
-garrSortChar[157] = 32;
-garrSortChar[158] = 254;
-garrSortChar[159] = 251;
-garrSortChar[160] = 39;
-garrSortChar[161] = 72;
-garrSortChar[162] = 97;
-garrSortChar[163] = 98;
-garrSortChar[164] = 99;
-garrSortChar[165] = 100;
-garrSortChar[166] = 73;
-garrSortChar[167] = 101;
-garrSortChar[168] = 74;
-garrSortChar[169] = 102;
-garrSortChar[170] = 133;
-garrSortChar[171] = 93;
-garrSortChar[172] = 103;
-garrSortChar[173] = 35;
-garrSortChar[174] = 104;
-garrSortChar[175] = 75;
-garrSortChar[176] = 105;
-garrSortChar[177] = 92;
-garrSortChar[178] = 122;
-garrSortChar[179] = 124;
-garrSortChar[180] = 76;
-garrSortChar[181] = 106;
-garrSortChar[182] = 107;
-garrSortChar[183] = 108;
-garrSortChar[184] = 77;
-garrSortChar[185] = 120;
-garrSortChar[186] = 199;
-garrSortChar[187] = 94;
-garrSortChar[188] = 116;
-garrSortChar[189] = 117;
-garrSortChar[190] = 118;
-garrSortChar[191] = 78;
-garrSortChar[192] = 131;
-garrSortChar[193] = 131;
-garrSortChar[194] = 131;
-garrSortChar[195] = 131;
-garrSortChar[196] = 131;
-garrSortChar[197] = 131;
-garrSortChar[198] = 131;
-garrSortChar[199] = 150;
-garrSortChar[200] = 158;
-garrSortChar[201] = 158;
-garrSortChar[202] = 158;
-garrSortChar[203] = 158;
-garrSortChar[204] = 175;
-garrSortChar[205] = 175;
-garrSortChar[206] = 175;
-garrSortChar[207] = 175;
-garrSortChar[208] = 154;
-garrSortChar[209] = 193;
-garrSortChar[210] = 197;
-garrSortChar[211] = 197;
-garrSortChar[212] = 197;
-garrSortChar[213] = 197;
-garrSortChar[214] = 197;
-garrSortChar[215] = 95;
-garrSortChar[216] = 197;
-garrSortChar[217] = 230;
-garrSortChar[218] = 230;
-garrSortChar[219] = 230;
-garrSortChar[220] = 230;
-garrSortChar[221] = 246;
-garrSortChar[222] = 227;
-garrSortChar[223] = 224;
-garrSortChar[224] = 131;
-garrSortChar[225] = 131;
-garrSortChar[226] = 131;
-garrSortChar[227] = 131;
-garrSortChar[228] = 131;
-garrSortChar[229] = 131;
-garrSortChar[230] = 131;
-garrSortChar[231] = 150;
-garrSortChar[232] = 158;
-garrSortChar[233] = 158;
-garrSortChar[234] = 158;
-garrSortChar[235] = 158;
-garrSortChar[236] = 175;
-garrSortChar[237] = 175;
-garrSortChar[238] = 175;
-garrSortChar[239] = 175;
-garrSortChar[240] = 154;
-garrSortChar[241] = 193;
-garrSortChar[242] = 197;
-garrSortChar[243] = 197;
-garrSortChar[244] = 197;
-garrSortChar[245] = 197;
-garrSortChar[246] = 197;
-garrSortChar[247] = 96;
-garrSortChar[248] = 197;
-garrSortChar[249] = 230;
-garrSortChar[250] = 230;
-garrSortChar[251] = 230;
-garrSortChar[252] = 230;
-garrSortChar[253] = 246;
-garrSortChar[254] = 227;
-garrSortChar[255] = 250;
-
-gaFtsStop[0] = "a";
-gaFtsStop[1] = "about";
-gaFtsStop[2] = "after";
-gaFtsStop[3] = "against";
-gaFtsStop[4] = "all";
-gaFtsStop[5] = "also";
-gaFtsStop[6] = "among";
-gaFtsStop[7] = "an";
-gaFtsStop[8] = "and";
-gaFtsStop[9] = "are";
-gaFtsStop[10] = "as";
-gaFtsStop[11] = "at";
-gaFtsStop[12] = "be";
-gaFtsStop[13] = "became";
-gaFtsStop[14] = "because";
-gaFtsStop[15] = "been";
-gaFtsStop[16] = "between";
-gaFtsStop[17] = "but";
-gaFtsStop[18] = "by";
-gaFtsStop[19] = "can";
-gaFtsStop[20] = "come";
-gaFtsStop[21] = "do";
-gaFtsStop[22] = "during";
-gaFtsStop[23] = "each";
-gaFtsStop[24] = "early";
-gaFtsStop[25] = "for";
-gaFtsStop[26] = "form";
-gaFtsStop[27] = "found";
-gaFtsStop[28] = "from";
-gaFtsStop[29] = "had";
-gaFtsStop[30] = "has";
-gaFtsStop[31] = "have";
-gaFtsStop[32] = "he";
-gaFtsStop[33] = "her";
-gaFtsStop[34] = "his";
-gaFtsStop[35] = "however";
-gaFtsStop[36] = "in";
-gaFtsStop[37] = "include";
-gaFtsStop[38] = "into";
-gaFtsStop[39] = "is";
-gaFtsStop[40] = "it";
-gaFtsStop[41] = "its";
-gaFtsStop[42] = "late";
-gaFtsStop[43] = "later";
-gaFtsStop[44] = "made";
-gaFtsStop[45] = "many";
-gaFtsStop[46] = "may";
-gaFtsStop[47] = "me";
-gaFtsStop[48] = "med";
-gaFtsStop[49] = "more";
-gaFtsStop[50] = "most";
-gaFtsStop[51] = "near";
-gaFtsStop[52] = "no";
-gaFtsStop[53] = "non";
-gaFtsStop[54] = "not";
-gaFtsStop[55] = "of";
-gaFtsStop[56] = "on";
-gaFtsStop[57] = "only";
-gaFtsStop[58] = "or";
-gaFtsStop[59] = "other";
-gaFtsStop[60] = "over";
-gaFtsStop[61] = "several";
-gaFtsStop[62] = "she";
-gaFtsStop[63] = "some";
-gaFtsStop[64] = "such";
-gaFtsStop[65] = "than";
-gaFtsStop[66] = "that";
-gaFtsStop[67] = "the";
-gaFtsStop[68] = "their";
-gaFtsStop[69] = "then";
-gaFtsStop[70] = "there";
-gaFtsStop[71] = "these";
-gaFtsStop[72] = "they";
-gaFtsStop[73] = "this";
-gaFtsStop[74] = "through";
-gaFtsStop[75] = "to";
-gaFtsStop[76] = "under";
-gaFtsStop[77] = "until";
-gaFtsStop[78] = "use";
-gaFtsStop[79] = "was";
-gaFtsStop[80] = "we";
-gaFtsStop[81] = "were";
-gaFtsStop[82] = "when";
-gaFtsStop[83] = "where";
-gaFtsStop[84] = "which";
-gaFtsStop[85] = "who";
-gaFtsStop[86] = "with";
-gaFtsStop[87] = "you";
-
-gaFtsStem[0] = "ed";
-gaFtsStem[1] = "es";
-gaFtsStem[2] = "er";
-gaFtsStem[3] = "e";
-gaFtsStem[4] = "s";
-gaFtsStem[5] = "ingly";
-gaFtsStem[6] = "ing";
-gaFtsStem[7] = "ly";
-
-
-// as javascript 1.3 support unicode instead of ISO-Latin-1
-// need to transfer come code back to ISO-Latin-1 for compare purpose
-// Note: Different Language(Code page) maybe need different array:
-var gaUToC=new Array();
-gaUToC[8364]=128;
-gaUToC[8218]=130;
-gaUToC[402]=131;
-gaUToC[8222]=132;
-gaUToC[8230]=133;
-gaUToC[8224]=134;
-gaUToC[8225]=135;
-gaUToC[710]=136;
-gaUToC[8240]=137;
-gaUToC[352]=138;
-gaUToC[8249]=139;
-gaUToC[338]=140;
-gaUToC[381]=142;
-gaUToC[8216]=145;
-gaUToC[8217]=146;
-gaUToC[8220]=147;
-gaUToC[8221]=148;
-gaUToC[8226]=149;
-gaUToC[8211]=150;
-gaUToC[8212]=151;
-gaUToC[732]=152;
-gaUToC[8482]=153;
-gaUToC[353]=154;
-gaUToC[8250]=155;
-gaUToC[339]=156;
-gaUToC[382]=158;
-gaUToC[376]=159;
-
-var gsBiggestChar="";
-function getBiggestChar()
-{
-       if(gsBiggestChar.length==0)
-       {
-               if(garrSortChar.length<256)
-                       gsBiggestChar=String.fromCharCode(255);
-               else
-               {
-                       var nBiggest=0;
-                       var nBigChar=0;
-                       for(var i=0;i<=255;i++)
-                       {
-                               if(garrSortChar[i]>nBiggest)
-                               {
-                                       nBiggest=garrSortChar[i];
-                                       nBigChar=i;
-                               }
-                       }
-                       gsBiggestChar=String.fromCharCode(nBigChar);
-               }
-
-       }       
-       return gsBiggestChar;
-}
-
-function getCharCode(str,i)
-{
-       var code=str.charCodeAt(i)
-       if(code>256)
-       {
-               code=gaUToC[code];
-       }
-       return code;
-}
-
-function compare(strText1,strText2)
-{
-       if(garrSortChar.length<256)
-       {
-               var strt1=strText1.toLowerCase();
-               var strt2=strText2.toLowerCase();
-               if(strt1<strt2) return -1;
-               if(strt1>strt2) return 1;
-               return 0;
-       }
-       else
-       {
-               for(var i=0;i<strText1.length&&i<strText2.length;i++)
-               {
-                       if(garrSortChar[getCharCode(strText1,i)]<garrSortChar[getCharCode(strText2,i)]) return -1;
-                       if(garrSortChar[getCharCode(strText1,i)]>garrSortChar[getCharCode(strText2,i)]) return 1;
-               }
-               if(strText1.length<strText2.length) return -1;
-               if(strText1.length>strText2.length) return 1;
-               return 0;
-       }
-}
-gbWhLang=true;
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whmozemu.js b/doc/salome/gui/GEOM/whmozemu.js
deleted file mode 100755 (executable)
index 8fd89b2..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-//     WebHelp 5.10.002
-if (! window.gbIE4 && window.gbNav6 && !document.childNodes[0].insertAdjacentHTML){
-
-HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
-{
-       switch (where){
-       case 'beforeBegin':
-               this.parentNode.insertBefore(parsedNode,this);
-               break;
-       case 'afterBegin':
-               this.insertBefore(parsedNode,this.firstChild);
-               break;
-       case 'beforeEnd':
-               this.appendChild(parsedNode);
-               break;
-       case 'afterEnd':
-               if (this.nextSibling){
-               this.parentNode.insertBefore(parsedNode,this.nextSibling);
-               } else {
-               this.parentNode.appendChild(parsedNode);
-               }
-               break;
-       }
-}
-
-HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr){
-
-       var r = this.ownerDocument.createRange();
-       r.setStartBefore(this);
-       var parsedHTML = r.createContextualFragment(htmlStr);
-       this.insertAdjacentElement(where,parsedHTML);
-}
-
-
-HTMLElement.prototype.insertAdjacentText = function(where,txtStr){
-
-       var parsedText = document.createTextNode(txtStr);
-       this.insertAdjacentElement(where,parsedText);
-}
-}
-
-function testScroll() {
-       // Initialize scrollbar cache if necessary
-       if (window._pageXOffset==null) {
-               window._pageXOffset = window.pageXOffset;
-               window._pageYOffset = window.pageYOffset;
-       }
-       // Expose Internet Explorer compatible object model
-       document.scrollTop = window.pageYOffset;
-       document.scrollLeft = window.pageXOffset;
-       window.document.scrollHeight = document.height;
-       window.document.scrollWidth = document.width;
-       window.document.clientWidth = window.innerWidth;
-       window.document.clientHeight = window.innerHeight;
-
-       // If cache!=current values, call the onscroll event
-       if (((window.pageXOffset!=window._pageXOffset) || (window.pageYOffset!=window._pageYOffset)) && (window.onscroll)) 
-               window.onscroll();
-       // Cache new values
-       window._pageXOffset = window.pageXOffset;
-       window._pageYOffset = window.pageYOffset;
-       }
-
-// Create compatibility layer for Netscape
-if (window.gbNav6 && !window.gbNav7) {
-       setInterval("testScroll()",50)
-}
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whmsg.js b/doc/salome/gui/GEOM/whmsg.js
deleted file mode 100755 (executable)
index 492114b..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-//     WebHelp 5.10.002
-var WH_MSG_RESIZEPANE          =0x0100;
-var WH_MSG_SHOWPANE                    =0x0101;
-var WH_MSG_HIDEPANE                    =0x0102;
-var WH_MSG_SYNCTOC                     =0x0103;
-var WH_MSG_NEXT                                =0x0104;
-var WH_MSG_PREV                                =0x0105;
-var WH_MSG_NOSEARCHINPUT       =0x0106;
-var WH_MSG_NOSYNC                      =0x0107;
-var WH_MSG_ENABLEWEBSEARCH     =0x0108;
-
-var WH_MSG_ISPANEVISIBLE       =0x0109;
-var WH_MSG_PANESTATUE          =0x010a;
-
-var    WH_MSG_SYNCINFO                 =0x010b;
-var WH_MSG_PANEINFO                    =0x010c;
-var WH_MSG_WEBSEARCH           =0x010d;
-
-var WH_MSG_SEARCHINDEXKEY      =0x0201;
-
-var WH_MSG_SEARCHFTSKEY        =0x020a;
-
-var WH_MSG_PROJECTREADY                =0x0301;
-var WH_MSG_GETPROJINFO                 =0x0302;
-
-var WH_MSG_SHOWTOC                     =0x0401;
-var WH_MSG_SHOWIDX                     =0x0402;
-var WH_MSG_SHOWFTS                     =0x0403;
-var WH_MSG_SHOWGLO                     =0x0404;
-
-var WH_MSG_SHOWGLODEF          =0x0500;
-
-var WH_MSG_GETTOCPATHS                 =0x0600;
-var WH_MSG_GETAVIAVENUES       =0x0601;
-var WH_MSG_GETCURRENTAVENUE =0x0602;
-var WH_MSG_GETPANEINFO         =0x0603;
-var WH_MSG_AVENUEINFO          =0x0604;
-
-var WH_MSG_GETSTARTFRAME       =0x0701;
-var WH_MSG_GETDEFAULTTOPIC     =0x0702;
-
-var WH_MSG_SEARCHTHIS          =0x0801;
-var WH_MSG_GETSEARCHS          =0x0802;
-
-var WH_MSG_ISINFRAMESET                =0x0900;
-
-var WH_MSG_TOOLBARORDER                =0x0a00;
-var WH_MSG_MINIBARORDER                =0x0a01;
-var WH_MSG_ISSYNCSSUPPORT      =0x0a02;
-var WH_MSG_ISSEARCHSUPPORT     =0x0a03;
-var WH_MSG_GETPANETYPE         =0x0a04;
-var WH_MSG_BACKUPSEARCH                =0x0a05;
-var WH_MSG_GETPANES                    =0x0a06;
-var WH_MSG_INITSEARCHSTRING =0x0a07;
-var WH_MSG_RELOADNS6           =0x0a08;
-var WH_MSG_ISAVENUESUPPORT     =0x0a09;
-
-var WH_MSG_GETCMD                      =0x0b00;
-var    WH_MSG_GETPANE                  =0x0b01;
-var WH_MSG_GETDEFPANE          =0x0b02;
-
-function whMessage(nMessageId,wSender,nVersion,oParam)
-{
-       this.nMessageId=nMessageId;
-       this.wSender=wSender;
-       this.nVersion=nVersion;
-       this.oParam=oParam;
-}
-var gbWhMsg=true;
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whnjs.htm b/doc/salome/gui/GEOM/whnjs.htm
deleted file mode 100755 (executable)
index 03659d0..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<html>
-<head>
-<title>Geometry Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whstub.js"></script>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whstart.js"></script>
-<script language="javascript1.2">
-<!--
-function window_Onload()
-{
-       if (window.gsTopic)
-               frames["bsscright"].document.location = window.gsTopic;
-}
-window.onload=window_Onload;
-//-->
-</script>
-</head>
-
-<frameset id="whPfset" cols="260,*"><noframes><p>Your browser does not support frames. We recommend that you update your browser to a version that supports frames.</p><p>To view the Help system without frames click on this<a href="whgdata/whnvp30.htm">hyperlink.</a></p></noframes><frame src="whgdata/whnvp30.htm" title="navigation pane" name="navigation pane" scrolling="no"><frame src="geometry.htm" title="topic pane" name="bsscright" scrolling="yes"></frameset>
-</html>
diff --git a/doc/salome/gui/GEOM/whphost.js b/doc/salome/gui/GEOM/whphost.js
deleted file mode 100755 (executable)
index b8f74f4..0000000
+++ /dev/null
@@ -1,581 +0,0 @@
-//     WebHelp 5.10.005
-var gaProj=new Array();
-var gnChecked=0;
-var gsProjName="";
-var gbReady=false;
-var goMan=null;
-var gbXML=false;
-var gsFirstPane="";
-var gServerEnabled=false;
-var gsPath="";
-var gbWhPHost=false;
-var goDiv = null;
-var gsHTML = "";
-
-if (navigator.currentNavPen)
-       gsFirstPane = navigator.currentNavPen;
-
-
-function delayLoad()
-{
-       if (goDiv&&gsHTML)
-       {
-               goDiv.innerHTML=gsHTML;
-               goDiv=null;
-               gsHTML="";
-       }
-}
-
-function whCom(sName,sComFile)
-{
-       this.msName=sName;
-       this.msDivId=sName+"Div";
-       this.msIFrameId=sName+"IFrame";
-       this.msComFile=sComFile;
-       this.mbloaded=false;
-       this.mbShow=false;
-       this.show=function(bShow)
-       {
-               if(this.mbShow!=bShow)
-               {
-                       if(bShow&&!this.mbloaded)
-                       {
-                               this.load();
-                       }
-
-                       var oDiv=getElement(this.msDivId);
-                       if(oDiv)
-                       {
-                               if(gbIE55||(gbIE5&&gbMac))
-                               {
-                                       var oIframe=getElement(this.msIFrameId);
-                                       if(oIframe)
-                                       {
-                                               if(bShow)
-                                               {
-                                                       oDiv.style.zIndex=3;
-                                                       if(oIframe!=null)
-                                                       {
-                                                               oIframe.style.zIndex=3;
-                                                               if (!gbIE55)
-                                                                       oIframe.style.visibility="visible";
-                                                       }
-                                               }
-                                               else
-                                               {
-                                                       oDiv.style.zIndex=2;
-                                                       if(oIframe!=null)
-                                                       {
-                                                               oIframe.style.zIndex=2;
-                                                               if (!gbIE55)
-                                                                       oIframe.style.visibility="hidden";
-                                                       }
-                                               }
-                                       }
-                               }
-                               if (!gbIE55)
-                                       oDiv.style.visibility=(bShow==true)?'visible':'hidden';
-                               this.mbShow=bShow;
-                       }
-
-               }
-       }
-       this.load=function()
-       {
-               if(!this.mbloaded)
-               {
-                       if(this.msComFile.length>0){
-                               var strFile= _getFullPath(getPath(), this.msComFile);
-                               var oDiv=getElement(this.msDivId);
-                               if(oDiv){
-                                       if(gbIE4||gbOpera7){
-                                               var nIFrameHeight=oDiv.style.pixelHeight;
-                                               var nIFrameWidth=oDiv.style.pixelWidth;
-                                               var sHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:";
-                                               if(gbMac){
-                                                       sHTML+=nIFrameWidth+"px;height:"+nIFrameHeight+"px;\"></IFRAME>";
-                                               }else{
-                                                       sHTML+="100%; height:100%;\"></IFRAME>";
-                                               }
-                                               oDiv.innerHTML=sHTML;
-                                       }else if(gbNav6){
-                                               gsHTML="<IFRAME ID="+this.msIFrameId+" title=\"" + this.msName + "\" SRC=\""+strFile+"\" BORDER=0 FRAMEBORDER=no STYLE=\"width:100%;border:0;height:100%;\"></IFRAME>";
-                                               goDiv = oDiv;
-                                               setTimeout("delayLoad()", 100);
-                                       }
-                                       this.mbloaded=true;
-                               }
-                       }
-               }
-       }
-       this.unload=function()
-       {
-               var oDiv=getElement(this.msDivId);
-               if(oDiv)
-                       oDiv.innerHTML="";
-       }
-       this.getDivHTML=function()
-       {
-               var sHTML="";
-               if(gbMac&&gbIE4)
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;margin:0;padding:0;border:0;\">";
-               else if(gbIE5)
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;\">";
-               else if(gbIE4||gbWindows)
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";
-               else
-                       sHTML+="<DIV ID="+this.msDivId+" ALIGN=left STYLE=\"position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;visibility:hidden\">";
-               sHTML+="</DIV>";
-               return sHTML;
-       }
-}  
-
-function whComMan()
-{
-       this.sName="";
-       this.maCom=new Array();
-       this.addCom=function(sName,sComFile)
-       {
-               var owhCom=new whCom(sName,sComFile);
-               this.maCom[this.maCom.length]=owhCom;
-       }
-       this.init=function()
-       {
-               var sHTML="";
-               for(var i=0;i<this.maCom.length;i++)
-               {
-                       sHTML+=this.maCom[i].getDivHTML();
-               }
-               document.body.insertAdjacentHTML("beforeEnd",sHTML);
-
-       }
-       this.showById=function(nId)
-       {
-               for(var s=0;s<this.maCom.length;s++)
-               {
-                       if(s!==nId)
-                               this.maCom[s].show(false);
-               }
-               this.maCom[nId].show(true);
-       }
-       this.show=function(sName)
-       {
-               navigator.currentNavPen = sName;
-               var bFound=false;
-               for(var i=0;i<this.maCom.length;i++)
-               {
-                       if(sName==this.maCom[i].msName)
-                       {
-                               bFound=true;
-                               break;
-                       }
-               }
-               if(bFound)
-               {
-                       this.showById(i);
-                       this.sName=sName;
-               }
-       }
-       this.unload=function()
-       {
-               for(var i=0;i<this.maCom.length;i++)
-               {
-                       this.maCom[i].unload();
-               }               
-       }
-       this.getCurrent=function()
-       {
-               return this.sName;
-       }
-}
-
-function getPath()
-{
-       if(gsPath=="")
-       {
-               gsPath=location.href;
-               gsPath=_replaceSlash(gsPath);
-               var nPosFile=gsPath.lastIndexOf("/");
-               gsPath=gsPath.substring(0,nPosFile+1);
-       }
-       return gsPath;
-}
-
-goMan=new whComMan();
-function addPane(sName,sFileName)
-{
-       var oParam=new Object();
-       oParam.sName=sName;
-       var oMsg=new whMessage(WH_MSG_GETPANE, this, 1, oParam);
-       if (SendMessage(oMsg))
-       {
-               if (oMsg.oParam.bEnable)
-                       goMan.addCom(sName,sFileName);
-       }
-       else
-               goMan.addCom(sName,sFileName);  
-}
-
-function setShowPane(sName, bForce)
-{
-       if ((gsFirstPane == "") || bForce)
-       {
-               var oMsg=new whMessage(WH_MSG_GETDEFPANE, this, 1, null);
-               if (SendMessage(oMsg))
-               {
-                       if (oMsg.oParam)
-                               gsFirstPane = oMsg.oParam;
-                       else
-                               gsFirstPane=sName;
-               }
-               else
-                       gsFirstPane=sName;
-       }
-}
-
-function window_OnLoad()
-{
-       var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);
-       var bHidePane=false;
-       if (SendMessage(oMsg))
-       {
-               if(oMsg.oParam>0)
-               {
-                       if(oMsg.oParam==1)
-                               gsFirstPane="toc";
-                       else if(oMsg.oParam==2)
-                               gsFirstPane="idx";
-                       else if(oMsg.oParam==3)
-                               gsFirstPane="fts";
-                       else if(oMsg.oParam==4)
-                               gsFirstPane="glo";
-               }
-               else if(oMsg.oParam==0)
-               {
-                       bHidePane=true;
-               }
-       }
-       goMan.init();
-       if(gsProjName!="")                      
-               loadData2(gsProjName);  
-       if (bHidePane)
-       {
-               gsFirstPane="";
-               var oMsg1=new whMessage(WH_MSG_HIDEPANE, this, 1, null)
-               SendMessage(oMsg1);
-       }
-       else
-       {
-               if(gsFirstPane!="")
-                       goMan.show(gsFirstPane);
-               else
-                       goMan.showById(0);
-       }
-}
-
-function setServerEnabled()
-{
-       gServerEnabled = true;
-}
-
-function loadData2(strFile)
-{
-       if(gbXML)
-               loadDataXML(strFile);
-       else
-               loadData(strFile);
-}
-
-function addProject(bPreferXML,sXMLName,sHTMLName)
-{
-       var bLoadXML=bPreferXML;
-       if(!gbIE4&&!gbNav6&&!gbOpera7)
-               return;
-       if(gbIE4&&!gbIE5)
-               bLoadXML=false;
-       if (gbIE5&&!gbMac)
-               bLoadXML=true;
-       if(gbIE55||gbNav6)
-               bLoadXML=true;
-       if(gbOpera7)
-               bLoadXML=false;         
-       if(bLoadXML)
-               addProjectXML(sXMLName);
-       else
-               addProjectHTML(sHTMLName);
-}
-
-function addProjectHTML(sName)
-{
-       gbXML=false;
-       gsProjName=sName;
-}
-
-function addProjectXML(sName)
-{
-       gbXML=true;
-       gsProjName=sName;
-}
-
-function window_MyBunload()
-{
-       goMan.unload();
-       window_BUnload();
-}
-
-function putDataXML(xmlDoc,sdocPath)
-{
-       if(xmlDoc!=null)
-       {
-               var projectNode=xmlDoc.getElementsByTagName("project")[0];
-               if(projectNode)
-               {
-                       var aRProj=new Array();
-                       aRProj[0]=new Object();
-                       aRProj[0].sPPath=_getPath(sdocPath);
-                       var sLangId=projectNode.getAttribute("langid");
-                       if(sLangId)
-                       {
-                               aRProj[0].sLangId=sLangId;
-                       }
-                       var sDPath=projectNode.getAttribute("datapath");
-                       if(sDPath)
-                       {
-                               if(sDPath.lastIndexOf("/")!=sDPath.length-1)
-                                       sDPath+="/";
-                               aRProj[0].sDPath=sDPath;
-                       }
-                       else
-                               aRProj[0].sDPath="";
-                       aRProj[0].sToc=projectNode.getAttribute("toc");
-                       aRProj[0].sIdx=projectNode.getAttribute("index");
-                       aRProj[0].sFts=projectNode.getAttribute("fts");
-                       aRProj[0].sGlo=projectNode.getAttribute("glossary");
-                       var RmtProject=projectNode.getElementsByTagName("remote");
-                       var nCount=1;
-                       for (var i=0;i<RmtProject.length;i++)
-                       {
-                               var sURL=RmtProject[i].getAttribute("url");
-                               if(sURL)
-                               {
-                                       if(sURL.lastIndexOf("/")!=sURL.length-1)
-                                               sURL+="/";
-                                       aRProj[nCount]=new Object();
-                                       aRProj[nCount++].sPPath=_getFullPath(aRProj[0].sPPath,sURL);
-                               }
-                       }
-                       putProjectInfo(aRProj);
-               }
-               else
-               {
-                       // on Netscape 6.0 under some situation the xml file cannot be loaded.
-                       // so we use pure html instead.
-                       if (gnChecked == 0)
-                               setTimeout("redirectToList();",100);
-                       else
-                       {
-                               gnChecked++;
-                               setTimeout("checkRemoteProject();", 1);
-                       }
-               }
-       }
-}
-
-function onLoadXMLError()
-{
-       gnChecked++;
-       setTimeout("checkRemoteProject();", 1);
-}
-
-function redirectToList()
-{
-       if(gbReDirectThis)
-               document.location=gsNavReDirect;
-       else
-               parent.document.location=gsNavReDirect;
-}
-
-function putProjectInfo(aRProj)
-{
-       if(gnChecked==0||isSamePath(gaProj[gnChecked].sPPath,aRProj[0].sPPath))
-       {
-               if(gnChecked!=0)
-               {
-                       if(aRProj[0].sLangId!=gaProj[0].sLangId)
-                               alert("The merged Help system "+aRProj[0].sPPath+" is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system.");
-               }
-               gaProj[gnChecked]=aRProj[0];
-               for(var i=1;i<aRProj.length;i++)
-               {
-                       var bFound=false;
-                       for(var j=0;j<gaProj.length;j++)
-                       {
-                               if(isSamePath(gaProj[j].sPPath,aRProj[i].sPPath))
-                               {
-                                       bFound=true;
-                                       break;
-                               }
-                       }
-                       if(!bFound)
-                       {
-                               gaProj[gaProj.length]=aRProj[i];
-                       }
-               }
-               gnChecked++;
-               setTimeout("checkRemoteProject();", 1);
-       }
-       else
-               alert("Could not load correctly, please click Refresh.");
-}
-
-function isSamePath(sPath1,sPath2)
-{
-       return (sPath1.toLowerCase()==sPath2.toLowerCase());
-}
-
-function checkRemoteProject()
-{
-       if(gaProj.length!=gnChecked)
-       {
-               setTimeout("cancelProj("+gnChecked+");",10000);
-               loadData2(gaProj[gnChecked].sPPath+gsProjName);
-       }
-       else{
-               var oMsg=new whMessage(WH_MSG_PROJECTREADY,this,1,null);
-               gbReady=true;
-               SendMessage(oMsg);
-       }
-}
-
-function cancelProj(i)
-{
-       if(i==gnChecked)
-       {
-               gnChecked++;
-               setTimeout("checkRemoteProject();", 1);
-       }       
-}
-
-function window_resize()
-{
-       for(var i=0;i<goMan.maCom.length;i++)
-       {
-               var oFrame=getElement(goMan.maCom[i].msIFrameId);
-               if(oFrame)
-               {
-                       oFrame.style.height=document.body.clientHeight;
-                       oFrame.style.width=document.body.clientWidth;
-               }
-       }
-       window_resize2();
-}
-
-function window_resize2()
-{
-       if(document.body)
-       {
-               if(document.body.clientWidth > 1 && document.body.clientHeight>1)
-               {
-                       var oMsg = new whMessage(WH_MSG_RESIZEPANE, this, 1, null);
-                       SendMessage(oMsg);
-               }
-       }
-}
-
-function window_unload()
-{
-       UnRegisterListener2(this,WH_MSG_GETPROJINFO);
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);
-       UnRegisterListener2(this,WH_MSG_SHOWIDX);
-       UnRegisterListener2(this,WH_MSG_SHOWFTS);
-       UnRegisterListener2(this,WH_MSG_SHOWGLO);
-       UnRegisterListener2(this,WH_MSG_GETPANEINFO);
-}
-
-function onSendMessage(oMsg)
-{
-       if(oMsg)
-       {
-               var nMsgId=oMsg.nMessageId;
-               if(nMsgId==WH_MSG_GETPROJINFO)
-               {
-                       if(gbReady)
-                       {
-                               var oProj=new Object();
-                               oProj.aProj=gaProj;
-                               oProj.bXML=gbXML;
-                               oMsg.oParam=oProj;
-                       }
-                       else
-                               return false;
-               }
-               else if(nMsgId==WH_MSG_SHOWTOC)
-               {
-                       if(goMan)
-                               goMan.show("toc");
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "toc");
-                       SendMessage(onMsg);
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                       SendMessage(onMsg);
-               }
-               else if(nMsgId==WH_MSG_SHOWIDX)
-               {
-                       if(goMan)
-                               goMan.show("idx");
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "idx");
-                       SendMessage(onMsg);
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                       SendMessage(onMsg);
-               }
-               else if(nMsgId==WH_MSG_SHOWFTS)
-               {
-                       if(goMan)
-                               goMan.show("fts");
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "fts");
-                       SendMessage(onMsg);
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                       SendMessage(onMsg);
-               }
-               else if(nMsgId==WH_MSG_SHOWGLO)
-               {
-                       if(goMan)
-                               goMan.show("glo");
-                       var onMsg=new whMessage(WH_MSG_PANEINFO, this, 1, "glo");
-                       SendMessage(onMsg);
-                       onMsg = new whMessage(WH_MSG_SHOWPANE, this, 1, null);
-                       SendMessage(onMsg);
-               }
-               else if(nMsgId==WH_MSG_GETPANEINFO)
-               {
-                       oMsg.oParam=goMan.getCurrent();
-                       return false;
-               }
-       }
-       return true;
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
-       RegisterListener2(this,WH_MSG_GETPROJINFO);
-       RegisterListener2(this,WH_MSG_SHOWTOC);
-       RegisterListener2(this,WH_MSG_SHOWIDX);
-       RegisterListener2(this,WH_MSG_SHOWFTS);
-       RegisterListener2(this,WH_MSG_SHOWGLO);
-       RegisterListener2(this,WH_MSG_GETPANEINFO);
-
-       if((gbMac&&gbIE4)||(gbSunOS&&gbIE5)||gbOpera7)
-       {
-               window.onresize=window_resize;
-       }
-       else if(gbIE4)
-       {
-               window.onresize=window_resize2;
-       }
-       window.onload=window_OnLoad;
-       window.onbeforeunload=window_MyBunload;
-       window.onunload=window_unload;
-       gbWhPHost=true;
-}
-else
-       document.location.reload();
-
diff --git a/doc/salome/gui/GEOM/whproj.htm b/doc/salome/gui/GEOM/whproj.htm
deleted file mode 100755 (executable)
index 2549c9a..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<html>
-<head>
-<title>project description</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whproj.js"></script>
-<script language="javascript1.2">
-<!--
-  setLangId("1033");
-  setDataPath("whdata");
-  addToc("whtoc.htm");
-
-  addFts("whfts.htm");
-  addGlo("whglo.htm");
-
-//-->
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whproj.js b/doc/salome/gui/GEOM/whproj.js
deleted file mode 100755 (executable)
index 7f607a4..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-//     WebHelp 5.10.001
-var gaProj=new Array();
-
-gaProj[0]=new project("");
-
-function setLangId(sLangId)
-{
-       gaProj[0].sLangId=sLangId;
-}
-
-function setDataPath(sPath)
-{
-       if(sPath.length!=0)
-       {
-               if(sPath.lastIndexOf("/")!=sPath.length-1)
-                       sPath+="/";
-               gaProj[0].sDPath=sPath; 
-       }
-       else
-               gaProj[0].sDPath="";
-}
-
-function addToc(sFile)
-{
-       gaProj[0].sToc=sFile;
-}
-
-function addIdx(sFile)
-{
-       gaProj[0].sIdx=sFile;
-}
-
-function addFts(sFile)
-{
-       gaProj[0].sFts=sFile;
-}
-
-function addGlo(sFile)
-{
-       gaProj[0].sGlo=sFile;
-}
-
-function addRemoteProject(sProjRelPath)
-{
-       if(sProjRelPath.lastIndexOf("/")!=sProjRelPath.length-1)
-               sProjRelPath+="/";
-       gaProj[gaProj.length]=new project(sProjRelPath);
-}
-
-function project(sPPath)
-{
-       this.sPPath=sPPath;
-       this.sLangId="";
-       this.sDPath="";
-       this.sToc="";
-       this.sIdx="";
-       this.sFts="";
-       this.sGlo="";
-}
-
-window.onload=window_OnLoad;
-
-function window_OnLoad()
-{
-       gsName=document.location.href;
-       gsName=_replaceSlash(gsName);
-       var nPos=gsName.lastIndexOf("/");
-       if(nPos!=-1)
-               gaProj[0].sPPath=gsName.substring(0,nPos+1);
-       else
-               alert("Error in Loading navigation component. Please regenerate WebHelp.");
-       patchPath(gaProj);
-       if(parent&&parent!=this&& typeof(parent.putProjectInfo)=="function")
-       {
-               parent.putProjectInfo(gaProj);
-       }
-}
-
-function patchPath(aProj)
-{
-       for(var i=1;i<aProj.length;i++)
-       {
-               aProj[i].sPPath=_getFullPath(gaProj[0].sPPath,aProj[i].sPPath);
-       }
-}
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whproj.xml b/doc/salome/gui/GEOM/whproj.xml
deleted file mode 100755 (executable)
index 10e2571..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version='1.0' encoding='windows-1252' ?>
-<project langid="1033" datapath="whxdata" toc="whtoc.xml" fts="whfts.xml" glossary="whglo.xml" >
-</project>
diff --git a/doc/salome/gui/GEOM/whproxy.js b/doc/salome/gui/GEOM/whproxy.js
deleted file mode 100755 (executable)
index 8ea8b68..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-//     WebHelp 5.10.001
-var gbInited=false;
-var gWndStubPage=null;
-function getStubPage()
-{
-       if(!gbInited)
-       {
-               gWndStubPage=getStubPage_inter(window);
-               gbInited=true;
-       }
-       return gWndStubPage;
-}
-
-function getStubPage_inter(wCurrent)
-{
-       if(null==wCurrent.parent||wCurrent.parent==wCurrent)
-               return null;
-
-       if(typeof(wCurrent.parent.whname)=="string"&&"wh_stub"==wCurrent.parent.whname)
-               return wCurrent.parent;
-       else
-               if(wCurrent.parent.frames.length!=0&&wCurrent.parent!=wCurrent)
-                       return getStubPage_inter(wCurrent.parent);
-               else
-                       return null;
-}
-
-function RegisterListener(framename,nMessageId)
-{
-       var wSP=getStubPage();
-       if(wSP&&wSP!=this)
-               return wSP.RegisterListener(framename,nMessageId);
-       else
-               return false;
-}
-
-function RegisterListener2(oframe,nMessageId)
-{
-       var wSP=getStubPage();
-       if(wSP&&wSP!=this)
-               return wSP.RegisterListener2(oframe,nMessageId);
-       else
-               return false;
-}
-
-function UnRegisterListener2(oframe,nMessageId)
-{
-       var wSP=getStubPage();
-       if(wSP&&wSP!=this&&wSP.UnRegisterListener2)
-               return wSP.UnRegisterListener2(oframe,nMessageId);
-       else
-               return false;
-}
-
-function SendMessage(oMessage)
-{
-       var wSP=getStubPage();
-       if(wSP&&wSP!=this&&wSP.SendMessage)
-               return wSP.SendMessage(oMessage);
-       else
-               return false;
-}
-
-var gbWhProxy=true;
-
-var gbPreview=false;
-gbPreview=false; 
-if (gbPreview)
-       document.oncontextmenu=contextMenu;
-
-function contextMenu()
-{
-       return false;
-}
diff --git a/doc/salome/gui/GEOM/whres.xml b/doc/salome/gui/GEOM/whres.xml
deleted file mode 100755 (executable)
index 1d279bb..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-<?xml version='1.0' encoding='windows-1252' ?>
-<resource>
-<item name="Prev" value="&lt;&lt;" />
-<item name="Hide" value="Hide" />
-<item name="SyncTocTooltip" value="Sync TOC" />
-<item name="InTopicSearchBtnText" value="Go" />
-<item name="FtsInputPrompt" value="Type in the word(s) to search for:" />
-<item name="Done" value="Done" />
-<item name="Logo/Author" value="Powered By" />
-<item name="MergeError1" value="The merged Help system" />
-<item name="JS_alert_cantLoadProject" value="Can't load project:" />
-<item name="Next" value="&gt;&gt;" />
-<item name="SyncToc" value="SyncToc" />
-<item name="MergeError2" value="is using a different language from the master Help system, which will cause the index and full-text search functionality to be disabled in the merged Help system." />
-<item name="nls_body_instruction" value="Enter your question in the text box above, then click GO." />
-<item name="ToolBarSearchBtnText" value="Go" />
-<item name="SuggestViewNoFrameMessage" value="To view the Help system without frames click on this" />
-<item name="Hide_Navigation_Component" value="Hide Navigation Component" />
-<item name="FtsBtnText" value="Go" />
-<item name="TopicsFound" value="Topics Found" />
-<item name="LoadingContentsData" value="Loading, click here to cancel..." />
-<item name="Definition" value="Definition:" />
-<item name="CompletingContents" value="Completing Contents..." />
-<item name="Seperate" value="|" />
-<item name="GeneratedBy" value="Generated by" />
-<item name="PoweredBy" value="Powered by" />
-<item name="IndexAlphabetBookmarks" value="ABCDEFGHIJKLMNOPQRSTUVWXYZ" />
-<item name="Contents" value="Contents" />
-<item name="IndexSelectTopicLabel" value="Select a topic, then click Display" />
-<item name="Disabled Prev" value="&lt;&lt;" />
-<item name="Glossary" value="Glossary" />
-<item name="Search" value="Search" />
-<item name="CantSearch" value="Cannot search for that phrase." />
-<item name="LoadingIndex" value="Loading Index..." />
-<item name="LoadingData" value="Loading data, please wait..." />
-<item name="Show_Navigation_Component" value="Show Navigation Component" />
-<item name="Book" value="Book" />
-<item name="Disabled Next" value="&gt;&gt;" />
-<item name="nls_body_empty" value="Sorry, we were unable to find a good answer for your question." />
-<item name="nls_button_go_hint" value="Go Search" />
-<item name="Find" value="Find" />
-<item name="CantOpenURLorFile" value="Can't open URL or file" />
-<item name="Print" value="Print" />
-<item name="About" value="About" />
-<item name="Author" value="Author" />
-<item name="IndexSelectTopicTitle" value="Select a Topic" />
-<item name="Blank_topic_text" value="This topic was created by WinHelp Project Conversion Wizard, and is the destination of a missing topic or broken hyperlink." />
-<item name="BrowserLimitedMessage" value="Your browser does not support frames. We recommend that you update your browser to a version that supports frames." />
-<item name="LoadingTOCItem" value="Loading Table of Contents:" />
-<item name="Display" value="Display" />
-<item name="Cancel" value="Cancel" />
-<item name="IndexSelectTopicError" value="Please select a topic." />
-<item name="nls_edit_label" value="Type in your question:" />
-<item name="SearchLabel" value="Search" />
-<item name="RelateTopicListPrompt" value="Click a topic, then click Display." />
-<item name="NextTooltip" value="Next Topic" />
-<item name="JS_alert_colorlimitation" value="WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors." />
-<item name="TopicsNotFound" value="No Topics Found." />
-<item name="Show" value="Show" />
-<item name="PreTooltip" value="Previous Topic" />
-<item name="SearchPrompt" value="- Search -" />
-<item name="IndexBtnText" value="Go" />
-<item name="JS_alert_ProjectLoadingFail" value="Could not load correctly, please click Refresh." />
-<item name="LoadingContents" value="Loading contents, please wait..." />
-<item name="Term" value="Term:" />
-<item name="WebSearchButton" value="WebSearch" />
-<item name="Remote_Page" value="Remote Page" />
-<item name="WebSearch" value="WebSearch" />
-<item name="LoadingFTS" value="Reading Search Data..." />
-<item name="Index" value="Index" />
-<item name="JS_alert_ErrorInLoading" value="Error in Loading navigation component. Please regenerate WebHelp." />
-<item name="JS_alert_appletNotLoad" value="Unable to load applet. If you are using an old version of Netscape, the prefs.js file needs to be edited." />
-<item name="IndexInputPrompt" value="Type in the keyword to find:" />
-<item name="Page" value="Page" />
-<item name="SuggestViewNoFrameMsg2" value="hyperlink." />
-<item name="nls_button_go_text" value="Go" />
-<item name="Searching" value="Searching..." />
-
-  <item name="English"   value="" />
-  <item name="langorder" value="0,1,2,3,4,5,6,7,8,40,41,42,43,44,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,38,45,46,47,48,49,50,33,51,52,53,88,54,34,55,56,115,119,121,123,125,126,127,128,129,130,57,58,89,90,91,59,60,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,61,62,63,64,66,67,131,148,150,154,158,168,171,173,175,185,187,189,191,193,197,214,216,218,220,225,230,240,242,244,246,252,68,69,70,71,27,114,28,82,170,85,112,109,110,65,113,223,86,213,29,255,30,31,80,81,83,84,111,36,37,79,229,222,87,212,32,254,251,39,72,97,98,99,100,73,101,74,102,133,93,103,35,104,75,105,92,122,124,76,106,107,108,77,120,199,94,116,117,118,78,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,95,197,230,230,230,230,246,227,224,131,131,131,131,131,131,131,150,158,158,158,158,175,175,175,175,154,193,197,197,197,197,197,96,197,230,230,230,230,246,227,250," />
-
-  <panes show="0">
-    <toc />
-    <fts />
-    <glossary />
-  </panes>
-
-  <stopwords>
-    <word name="a" />
-    <word name="about" />
-    <word name="after" />
-    <word name="against" />
-    <word name="all" />
-    <word name="also" />
-    <word name="among" />
-    <word name="an" />
-    <word name="and" />
-    <word name="are" />
-    <word name="as" />
-    <word name="at" />
-    <word name="be" />
-    <word name="became" />
-    <word name="because" />
-    <word name="been" />
-    <word name="between" />
-    <word name="but" />
-    <word name="by" />
-    <word name="can" />
-    <word name="come" />
-    <word name="do" />
-    <word name="during" />
-    <word name="each" />
-    <word name="early" />
-    <word name="for" />
-    <word name="form" />
-    <word name="found" />
-    <word name="from" />
-    <word name="had" />
-    <word name="has" />
-    <word name="have" />
-    <word name="he" />
-    <word name="her" />
-    <word name="his" />
-    <word name="however" />
-    <word name="in" />
-    <word name="include" />
-    <word name="into" />
-    <word name="is" />
-    <word name="it" />
-    <word name="its" />
-    <word name="late" />
-    <word name="later" />
-    <word name="made" />
-    <word name="many" />
-    <word name="may" />
-    <word name="me" />
-    <word name="med" />
-    <word name="more" />
-    <word name="most" />
-    <word name="near" />
-    <word name="no" />
-    <word name="non" />
-    <word name="not" />
-    <word name="of" />
-    <word name="on" />
-    <word name="only" />
-    <word name="or" />
-    <word name="other" />
-    <word name="over" />
-    <word name="several" />
-    <word name="she" />
-    <word name="some" />
-    <word name="such" />
-    <word name="than" />
-    <word name="that" />
-    <word name="the" />
-    <word name="their" />
-    <word name="then" />
-    <word name="there" />
-    <word name="these" />
-    <word name="they" />
-    <word name="this" />
-    <word name="through" />
-    <word name="to" />
-    <word name="under" />
-    <word name="until" />
-    <word name="use" />
-    <word name="was" />
-    <word name="we" />
-    <word name="were" />
-    <word name="when" />
-    <word name="where" />
-    <word name="which" />
-    <word name="who" />
-    <word name="with" />
-    <word name="you" />
-  </stopwords>
-
-  <stems>
-    <stem name="ed" />
-    <stem name="es" />
-    <stem name="er" />
-    <stem name="e" />
-    <stem name="s" />
-    <stem name="ingly" />
-    <stem name="ing" />
-    <stem name="ly" />
-  </stems>
-
-       <paneskin>
-               <background color="" img="" />
-               <font name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-               <toc>
-                       <background color="" img="" />
-                       <icons>
-                               <book open="whd_toc2.gif" close="whd_toc1.gif" />
-                               <item  local="whd_toc3.gif" remote="whd_toc4.gif" />
-                               <newbook open="whd_toc2.gif" close="whd_toc1.gif" />
-                               <newitem  local="whd_toc3.gif" remote="whd_toc4.gif" />
-                       </icons>
-                       <fonts>
-                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
-                       </fonts>
-                       <activebackgroundcolor attr="#cccccc" />
-                       <margin attr="0pt" />
-                       <indent attr="9pt" />
-               </toc>
-               <index>
-                       <form>
-                               <fonts>
-                                       <title name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               </fonts>
-                               <button normal="" hover="" />
-                               <editwith value="28" />
-                       </form>
-                       <background color="" img="" />
-                       <fonts>
-                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
-                               <empty name="Arial" size="9pt" color="#666666" style="normal" weight="normal" decoration="none" />
-                       </fonts>
-                       <activebackgroundcolor attr="#cccccc" />
-                       <margin attr="0pt" />
-                       <indent attr="9pt" />
-               </index>
-               <fts>
-                       <form>
-                               <fonts>
-                                       <title name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               </fonts>
-                               <button normal="" hover="" />
-                               <editwith value="28" />
-                       </form>
-                       <background color="" img="" />
-                       <fonts>
-                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
-                               <error name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                       </fonts>
-                       <activebackgroundcolor attr="#cccccc" />
-                       <margin attr="0pt" />
-                       <indent attr="9pt" />
-               </fts>
-               <glossary>
-                       <background color="" img="" />
-                       <fonts>
-                               <normal name="Arial" size="9pt" color="#000000" style="normal" weight="normal" decoration="none" />
-                               <hover name="Arial" size="9pt" color="#007f00" style="normal" weight="normal" decoration="underline" />
-                       </fonts>
-                       <activebackgroundcolor attr="#cccccc" />
-                       <margin attr="0pt" />
-                       <indent attr="9pt" />
-               </glossary>
-       </paneskin>
-</resource>
diff --git a/doc/salome/gui/GEOM/whskin_blank.htm b/doc/salome/gui/GEOM/whskin_blank.htm
deleted file mode 100755 (executable)
index a61ddec..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
-<head>
-<title>Blank Page</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<body>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whskin_homepage.htm b/doc/salome/gui/GEOM/whskin_homepage.htm
deleted file mode 100755 (executable)
index 54c41df..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-<html>
-<head>
-<title>Geometry Module Reference Manual</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-</head>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whstub.js"></script><script language="javascript1.2" src="whstart.js"></script>
-<script language="javascript">
-<!--
-var strDefaultTopic = "about:blank";
-var nWebhelpNavPaneMode = 1;                   //1: DHTML 2:Applet 3:PureHTML 4:Noframeset
-var bNoApplet  = false;
-var strPaneDHTML  = "whd_nvp10.htm";           //whd_nvp10.htm  if tab enabled, whnframe.htm if tab disabled.
-var strPaneApplet = "whd_nvp20.htm";
-var strPaneList   = "whgdata/whnvp30.htm";
-
-var strHTML = "";
-var strPane = "";
-var nViewFrameType = -1;
-
-function CMRServer()
-{
-  this.m_cAgents = new Array;
-}
-var cMRServer = new CMRServer;
-
-//figure out which mode is the best
-if (!window.gAgent)
-{
-       // low end browser, we don't even try to determine it.
-       document.location = "whnjs.htm";
-}
-else
-{
-       if (!gbNav4&&!gbIE4&&!gbOpera7&&!gbSafari)
-               document.location = "whnjs.htm";
-       else if (gbNav4 && !gbNav6 && ((gnVerMinor <= 4.06)))
-               document.location = "whnjs.htm";
-       else if (gbMac && gbIE4 && !gbIE5)
-               document.location = "whnjs.htm";
-       //figure out which mode is the best
-       else 
-       {
-               nViewFrameType=nWebhelpNavPaneMode;
-               if (nWebhelpNavPaneMode==1||nWebhelpNavPaneMode == 2)
-               {
-                       var gbDHTML=(nWebhelpNavPaneMode==1);
-                       if (gbNav4)                                                                             nViewFrameType = 2;
-                       if (gbNav4&&(gnVerMinor < 4.1))                                         nViewFrameType = 3;
-                       if (gbNav4&&(gnVerMinor == 4.6))                                        nViewFrameType = 3;
-                       if (gbIE4&&gbDHTML)                                                                     nViewFrameType = 1;
-                       if (gbIE4&&gbSunOS&&nWebhelpNavPaneMode==2)                     nViewFrameType = 3;
-                       if (gbNav6&&gbDHTML)                                                            nViewFrameType = 1;
-                       if (gbNav6&&!gbNav61&&nWebhelpNavPaneMode == 2)         nViewFrameType = 3;
-                       if (gbMac)                                                                                      nViewFrameType = 3;
-                       if (gbOpera7&&nViewFrameType == 2)                                      nViewFrameType = 3;
-                       if ((bNoApplet)&&(nViewFrameType == 2))                         nViewFrameType = 3;
-               }
-       }
-}
-
-if (nViewFrameType!=-1)
-{
-       var gbWindows = ((gAgent.indexOf("win") != -1) || (gAgent.indexOf("16bit") != -1));
-       //The colordepth of the 16 color on Windows is 1. 
-       if ((gbWindows) && (gbNav4) && (window.screen) && (window.screen.colorDepth <= 4))
-       {
-          alert("WebHelp has detected that your display is set to 16 colors. For full WebHelp support, please set your display to use 256 or more colors.");
-          nViewFrameType = 3;
-       }
-
-       //figure out which one is navpane
-       if (nViewFrameType == 1)
-               strPane = strPaneDHTML;
-       else if (nViewFrameType == 2)
-               strPane = strPaneApplet;
-       else 
-               strPane = strPaneList;
-
-       var oParam = new Object();
-       oParam.sTopic = "";
-       var oMsg = new whMessage(WH_MSG_GETDEFAULTTOPIC, window, 1, oParam);
-       if (SendMessage(oMsg) && oParam.sTopic != "")
-               strDefaultTopic =  oParam.sTopic;
-
-
-       if (nViewFrameType == 1)
-       {
-               //DHTML (iframe or xml based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" frameborder=\"1\">";
-               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane + "\" scrolling=\"no\"></frame>";
-               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
-       }
-       else if (nViewFrameType == 2)
-       {
-               //applet (xml based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\" framespacing=\"0\" frameborder=\"0\" border=\"0\">";
-               strHTML += "<frame name=\"bsscleft\" title=\"navigation frame\" src=\"" + strPane+ "\" scrolling=\"no\" marginwidth=\"0\" marginheight=\"0\"></frame>";
-               strHTML += "<frame name=\"bsscright\" title=\"topic frame\" src=\"" + strDefaultTopic + "\" scrolling=\"auto\"></frame></frameset>";
-       }
-       else if (nViewFrameType == 3)
-       {
-               //generic html (pure html based)
-               strHTML += "<frameset  id=\"whPfset\" cols=\"260,*\">";
-               strHTML += "<frame title=\"navigation frame\" src=\"" + strPane + "\" name=\"bsscleft\"  scrolling=\"no\"></frame>";
-               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" scrolling=\"auto\"></frame>";
-               strHTML += "</frameset>";
-       } 
-       else if (nViewFrameType == 4)
-       {
-               //no navipane at all
-               strHTML += "<frameset  id=\"whPfset\" border=\"0\" cols=\"100%,*\">";
-               strHTML += "<frame title=\"topic frame\" src=\"" + strDefaultTopic + "\" name=\"bsscright\" framespacing=\"0\" frameborder=\"0\" border=\"0\" scrolling=\"auto\">";
-               strHTML += "</frameset>";
-       }
-
-       document.write(strHTML);
-
-       RegisterListener2(window, WH_MSG_SHOWPANE);
-       RegisterListener2(window, WH_MSG_HIDEPANE);
-       RegisterListener2(window, WH_MSG_ISPANEVISIBLE);
-       window.onunload = window_unload;
-}
-
-function window_unload()
-{
-       UnRegisterListener2(window, WH_MSG_SHOWPANE);
-       UnRegisterListener2(window, WH_MSG_HIDEPANE);
-       UnRegisterListener2(window, WH_MSG_ISPANEVISIBLE);
-}
-
-
-function onSendMessage(oMsg)
-{
-       var nMsgId = oMsg.nMessageId;
-       if (nMsgId == WH_MSG_SHOWPANE)
-       {
-               getElement("whPfset").cols = "260,*";
-               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "visible");
-               SendMessage(onMsg);
-               onMsg = new whMessage(WH_MSG_GETPANEINFO, this, 1, "");
-               if (SendMessage(onMsg))
-               {
-                       onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, onMsg.oParam);
-                       SendMessage(onMsg);
-               }
-               return false;
-       }
-       else if (nMsgId == WH_MSG_HIDEPANE)
-       {
-               getElement("whPfset").cols = "0,*";
-               var onMsg = new whMessage(WH_MSG_PANESTATUE, this, 1, "invisible");
-               SendMessage(onMsg);
-               onMsg = new whMessage(WH_MSG_PANEINFO, this, 1, "");
-               SendMessage(onMsg);
-               return false;
-       }
-       else if (nMsgId == WH_MSG_ISPANEVISIBLE)
-       {
-               var n = parseInt(getElement("whPfset").cols);
-               if (n > 0)
-               {
-                       oMsg.oParam.bVisible = true;
-               }
-               return false;
-       }
-       return true;
-}
-//-->
-</script>
-<body>
-<noscript>
-       <p> It seems javascript is disabled in your browser, please enable it and reload again, or click <a href="whnjs.htm">here</a> to view without javascript</p>
-</noscript>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whskin_info.htm b/doc/salome/gui/GEOM/whskin_info.htm
deleted file mode 100755 (executable)
index 6a2b9e4..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<html>
-<head>
-<title>WebHelp 5.50 </title>
-<meta name="description" content="output from robohelp">
-<meta name="keywords" content="robohelp,webhelp,webhelp enterprise,roboinfo">
-</head>
-<body>
-<h1> WebHelp 5.50 System  Info </h1>
-<table>
-<tr><td> Start Page </td><td>index.htm</td></tr>
-<tr><td> Skin Name </td><td></td></tr>
-<tr><td> Generating Time </td><td>12:40 05/22/2006</td></tr>
-<tr><td> Language ID </td><td>1033</td></tr>
-<tr><td> Compile Script </td><td>webhelp5_compile_script.xml</td></tr>
-<tr><td> Compile Build Version </td><td>13.10.606</td></tr>
-<tr><td> Product Name </td><td>WebHelp 5.50</td></tr>
-<tr><td> Authoring Tool Name </td><td>RoboHelp X5</td></tr>
-<table>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whskin_pickup.htm b/doc/salome/gui/GEOM/whskin_pickup.htm
deleted file mode 100755 (executable)
index c3469d7..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-<html>
-<head>
-<title>Select a Topic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</title>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript">
-<!--
-var gsBgColor = "#c0c0c0";
-var gsBgImage = "";
-var gsListBgColor = "white";
-var gsListBgImage = "";
-var gsMargin="0pt";
-var gsIndent="0pt";
-var gSelectedItem = -1;
-
-
-var goFont=null;
-var goHoverFont=null;
-var goTableFont=null;
-var gsABgColor="#cccccc";
-
-function setListBackground(sBgImage)
-{
-       if (sBgImage != null && sBgImage.length > 0)
-               gsListBgImage = sBgImage;
-}
-
-function setListBackgroundcolor(sBgColor)
-{
-       if (sBgColor != null && sBgColor.length > 0)
-               gsListBgColor = sBgColor;
-}
-
-function setBackground(sBgImage)
-{
-       if (sBgImage != null && sBgImage.length > 0)
-               gsBgImage = sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       if (sBgColor != null && sBgColor.length > 0)
-               gsBgColor = sBgColor;
-}
-
-function setActiveBgColor(sBgColor)
-{
-       gsABgColor=sBgColor;
-}
-
-function setFont(sType, sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if (sType == "Normal")
-               goFont=vFont;
-       if (sType == "Hover")
-               goHoverFont=vFont;
-       else if (sType == "Table")
-               goTableFont=vFont;
-}
-
-function fnOnload()
-{
-       if( window.dialogArguments != null )
-               fnLoadOptions( window.dialogArguments );
-       var items = getElementsByTag(document, "a");
-       if (items.length > 0)
-               items[0].focus();
-}
-
-var gaOpts = new Array();
-
-function selectOption(index)
-{
-       gSelectedItem = index;
-}
-
-function displayOption(index)
-{
-       if (index < gaOpts.length)
-       {
-               returnValue = new Object();
-               returnValue.m_url = gaOpts[index];
-       }
-       else
-               returnValue = null;
-
-       window.close();
-}
-
-function fnLoadOptions( cList )
-{
-       var sHTML = "<dl>";
-       for( var i=0;i <cList.length; i++)
-       {
-               sHTML += "<dt><nobr><a href=\"javascript:void(0);\" onclick=\"return false;\" onfocus=\"selectOption(";
-               sHTML += gaOpts.length + ");return false;\" ondblclick=\"displayOption(" + gaOpts.length;
-               sHTML += ");return false;\">"+ _textToHtml(cList[i].m_sName) + "</a></nobr></dt>";
-               gaOpts[gaOpts.length] = cList[i].m_sURL;
-       }
-       sHTML += "</dl>";
-       var oDivCon=getElement("divlist");
-       if(oDivCon)
-               oDivCon.innerHTML=sHTML;
-       return true;
-}
-
-function fnOK()
-{
-       displayOption(gSelectedItem);
-}
-
-function fnCancel()
-{
-       returnValue = null;             window.close();
-}
-
-function fnOnKeypress()
-{
-       switch( event.keyCode )
-       {
-       case 13:        // enter key
-               fnOK();
-               break;
-       case 27:        // escape key
-               fnCancel();
-               break;
-       }
-}
-
-function writeStyle(bMiniBar)
-{
-       var sStyle="";
-       sStyle+="<style type='text/css'>\n";
-       sStyle+="<!--\n";
-       sStyle+="body.clsbody\n";
-       sStyle+="{\n";
-       sStyle+="margin: 4px;\n";
-       sStyle+=getFontStyle(goTableFont);
-       sStyle+="background-attachment: fixed;\n";
-       sStyle+="};\n";
-       sStyle+="P.clsNDXTD\n";
-       sStyle+="{\n";
-       sStyle+="margin:0;\n";
-       sStyle+=getFontStyle(goTableFont);
-       sStyle+="};\n";
-       sStyle+="div.clslist\n";
-       sStyle+="{\n";
-       if (gsListBgImage)
-               sStyle+="background-image:url("+gsListBgImage+");\n";
-       else if (gsListBgColor)
-               sStyle+="background-color:"+gsListBgColor+";\n";
-       sStyle+=getFontStyle(goFont);
-       sStyle+="};\n";
-       sStyle+="BUTTON.clsNDXButton\n";
-       sStyle+="{\n";
-       sStyle+=getFontStyle(goTableFont);
-       sStyle+="background-color: transparent;\n";
-       sStyle+="};\n";
-       sStyle+="dl {"+getFontStyle(goFont)+"margin-left:"+gsIndent+";margin-top:"+gsMargin+";}\n";
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";
-       sStyle+="A:hover {"+getFontStyle(goHoverFont)+"}\n";
-       sStyle+="</style>\n";
-       document.write(sStyle);
-}
-
-function window_OnLoad()
-{
-       if(document.body)
-       {
-               if(gsBgImage&&gsBgImage.length>0)
-               {
-                       document.body.background=gsBgImage;
-               }
-               if(gsBgColor&&gsBgColor.length>0)
-               {
-                       document.body.bgColor=gsBgColor;
-               }
-       }
-       fnOnload();
-       window_onResize();
-}
-
-function window_onResize()
-{
-       var oDiv = getElement("divlist");
-       var oTitle = getElement("p_title");
-       var oButton = getElement("tb_button");
-       if (oDiv && oTitle && oButton)
-       {
-               oDiv.style.height = document.body.offsetHeight - oTitle.offsetHeight - oButton.offsetHeight - 8;
-       }
-}
-goTableFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-goHoverFont=new whFont("Verdana","8pt","#666666","normal","normal","none");
-
-
-
-
-setFont("Table", "Arial","9pt","#000000","normal","normal","none");
-
-
-setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-setActiveBgColor("#cccccc");
-
-window.onload=window_OnLoad;
-window.onresize = window_onResize;
-writeStyle();
-//-->
-</script>
-</head>
-
-<body class="clsbody" scroll="no" onkeypress="fnOnKeypress()">
-<p id="p_title" class="clsNDXTD"><nobr>Select a topic, then click Display</nobr></p>
-<div id="divlist" class="clslist" style="margin:2px;position: relative;overflow:auto;width:100%;border-style:inset;border-width:2">
-</div>
-<table id="tb_button" width="100%">
-  <tr>
-    <td width="100%" align="center"><button class="clsNDXButton" name="btnOK" onclick="fnOK()">Display</button>&#32;&#32;&#32;<button class="clsNDXButton" name="btnCancel" onclick="fnCancel()">Cancel</button></td>
-  </tr>
-</table>
-
-</body>
-
-</html>
diff --git a/doc/salome/gui/GEOM/whskin_tw.htm b/doc/salome/gui/GEOM/whskin_tw.htm
deleted file mode 100755 (executable)
index 01bee59..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<html>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2">
-<!--
-var gsTopic="";
-
-if (location.hash.length > 1)
-{
-       var nPos = location.hash.indexOf(">>");
-       if (nPos>1)
-       {
-               gsTopic = location.hash.substring(1, nPos);
-               parseParam(location.hash.substring(nPos+2));
-       }
-       else
-               gsTopic = location.hash.substring(1);
-}
-
-
-       var strHtml="";
-       strHtml+="<frameset rows=\'100%,*\'>";
-       strHtml+="<frame name=\'topicwindow\' src=\'" + gsTopic +"\'></frame>";
-       strHtml+="<frame src=\'whskin_blank.htm\' noresize></frame>";
-       strHtml+="</frameset>";
-       document.write(strHtml);
-
-function parseParam(sParam)
-{
-       if (sParam)
-       {
-               var nBPos=0;
-               do 
-               {
-                       var nPos=sParam.indexOf(">>", nBPos);
-                       if (nPos!=-1)
-                       {
-                               if (nPos>0)
-                               {
-                                       var sPart=sParam.substring(nBPos, nPos);
-                                       parsePart(sPart);
-                               }
-                               nBPos = nPos + 2;
-                       }
-                       else
-                       {
-                               var sPart=sParam.substring(nBPos);
-                               parsePart(sPart);
-                               break;
-                       }
-               } while(nBPos < sParam.length);
-       }       
-}
-
-function parsePart(sPart)
-{
-       if(sPart.toLowerCase().indexOf("cap=")==0)
-       {
-               document.title=_browserStringToText(sPart.substring(4));
-       }
-}
-//-->
-</script>
-</html>
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whstart.js b/doc/salome/gui/GEOM/whstart.js
deleted file mode 100755 (executable)
index 88b813c..0000000
+++ /dev/null
@@ -1,432 +0,0 @@
-//     WebHelp 5.10.003
-RegisterListener2(this, WH_MSG_GETSTARTFRAME);
-RegisterListener2(this, WH_MSG_GETDEFAULTTOPIC);
-RegisterListener2(this, WH_MSG_MINIBARORDER);
-RegisterListener2(this, WH_MSG_TOOLBARORDER);
-RegisterListener2(this, WH_MSG_ISSEARCHSUPPORT);
-RegisterListener2(this, WH_MSG_ISSYNCSSUPPORT);
-RegisterListener2(this, WH_MSG_ISAVENUESUPPORT);
-RegisterListener2(this, WH_MSG_GETPANETYPE);
-RegisterListener2(this, WH_MSG_GETPANES);
-RegisterListener2(this, WH_MSG_RELOADNS6);
-RegisterListener2(this, WH_MSG_GETCMD);
-RegisterListener2(this, WH_MSG_GETPANE);
-RegisterListener2(this, WH_MSG_GETDEFPANE);
-
-if (gbNav6)
-{
-       var gnReload=0;
-       setTimeout("delayReload();",5000);
-}
-
-function delayReload()
-{
-       if (!(this.cMRServer && cMRServer.m_strVersion))
-       {
-               if(gnReload!=2)
-               {
-                       if(nViewFrameType&&nViewFrameType==1)
-                               document.location=document.location;
-               }
-       }
-}
-
-var gsToolbarOrder = "";
-var gsMinibarOrder = "";
-
-var gsTopic = "geometry.htm";
-var PANE_OPT_SEARCH = 1;
-var PANE_OPT_BROWSESEQ = 2;
-var gnOpts=-1;
-var gnCmd=-1;
-var gnPans=2;
-var gsBtns="invalid";
-var gsDefaultBtn="invalid";
-var gbHasTitle=false;
-
-if (location.hash.length > 1)
-{
-       var sParam = location.hash;
-       if (sParam.indexOf("#<") == 0)
-       {
-               document.location = "whcsh_home.htm#" + sParam.substring(2);
-       }
-       else if (sParam.indexOf("#>>") == 0)
-       {
-               parseParam(sParam.substring(3));
-               sParam = "#" + gsTopic + sParam.substring(1);
-       }
-       else
-       {
-               var nPos = sParam.indexOf(">>");
-               if (nPos>1)
-               {
-                       gsTopic = sParam.substring(1, nPos);
-                       parseParam(sParam.substring(nPos+2));
-               }
-               else
-                       gsTopic = sParam.substring(1);
-       }
-       if (gnPans == 1 && gsTopic)
-       {
-               var strURL=location.href;
-               if (location.hash)
-               {
-                       var nPos=location.href.indexOf(location.hash);
-                       strURL=strURL.substring(0, nPos);
-               }
-               if (gbHasTitle)
-                       document.location=_getPath(strURL)+ "whskin_tw.htm" + sParam;
-               else
-                       document.location=_getPath(strURL)+ gsTopic;
-       }
-}
-
-function parseParam(sParam)
-{
-       if (sParam)
-       {
-               var nBPos=0;
-               do 
-               {
-                       var nPos=sParam.indexOf(">>", nBPos);
-                       if (nPos!=-1)
-                       {
-                               if (nPos>0)
-                               {
-                                       var sPart=sParam.substring(nBPos, nPos);
-                                       parsePart(sPart);
-                               }
-                               nBPos = nPos + 2;
-                       }
-                       else
-                       {
-                               var sPart=sParam.substring(nBPos);
-                               parsePart(sPart);
-                               break;
-                       }
-               } while(nBPos < sParam.length);
-       }       
-}
-
-function parsePart(sPart)
-{
-       if(sPart.toLowerCase().indexOf("cmd=")==0)
-       {
-               gnCmd=parseInt(sPart.substring(4));
-       }
-       else if(sPart.toLowerCase().indexOf("cap=")==0)
-       {
-               document.title=_browserStringToText(sPart.substring(4));
-               gbHasTitle=true;
-       }
-       else if(sPart.toLowerCase().indexOf("pan=")==0)
-       {
-               gnPans=parseInt(sPart.substring(4));
-       }
-       else if(sPart.toLowerCase().indexOf("pot=")==0)
-       {
-               gnOpts=parseInt(sPart.substring(4));
-       }
-       else if(sPart.toLowerCase().indexOf("pbs=")==0)
-       {
-               var sRawBtns = sPart.substring(4);
-               var aBtns = sRawBtns.split("|");
-               for (var i=0;i<aBtns.length;i++)
-               {
-                       aBtns[i] = transferAgentNameToPaneName(aBtns[i]);
-               }
-               gsRawBtns = aBtns.join("|");
-       }
-       else if(sPart.toLowerCase().indexOf("pdb=")==0)
-       {
-               gsDefaultBtn=transferAgentNameToPaneName(sPart.substring(4));
-       }
-}
-
-function setToolbarOrder(sOrder)
-{
-       gsToolbarOrder = sOrder;
-}
-
-function setMinibarOrder(sOrder)
-{
-       gsMinibarOrder = sOrder;
-}
-
-function onSendMessageX(oMsg)
-{
-       var nMsgId = oMsg.nMessageId;
-       if (nMsgId == WH_MSG_GETSTARTFRAME)
-       {
-               oMsg.oParam.oFrame = this;
-               return false;
-       }
-       else if (nMsgId == WH_MSG_GETDEFAULTTOPIC)
-       {
-               if (this.cMRServer && cMRServer.m_strVersion)
-               {
-                       if (cMRServer.m_strURLTopic);
-                       {
-                               oMsg.oParam.sTopic = cMRServer.m_strURLTopic;
-                               return false;
-                       }
-
-               }
-               oMsg.oParam.sTopic = gsTopic;
-               return false;
-       }
-       else if (nMsgId == WH_MSG_TOOLBARORDER)
-       {
-               var oMsg1 = new whMessage(WH_MSG_GETPANES, this, 1, null);
-               if (SendMessage(oMsg1))
-               {
-                       if (oMsg1.oParam)
-                       {
-                               if (this.cMRServer && cMRServer.m_strVersion)
-                               {
-                                       var aToolbarOrder=cMRServer.m_strAgentList.split(";");
-                                       var i=0;
-                                       for (i=0;i<aToolbarOrder.length;i++)
-                                               aToolbarOrder[i]=transferANToPN2(aToolbarOrder[i]);
-                                       aToolbarOrder[aToolbarOrder.length] = "blankblock";
-                                       if (cMRServer.m_bShowSearchInput)
-                                       {
-                                               aToolbarOrder[aToolbarOrder.length] = "searchform";
-                                       }
-                                       aToolbarOrder[aToolbarOrder.length] = "banner";
-                                       var aToolbarOrderNew = new Array();
-                                       for (i=0;i<aToolbarOrder.length;i++)
-                                       {
-                                               if (isAPane(aToolbarOrder[i]))
-                                               {
-                                                       if (oMsg1.oParam.aPanes && oMsg1.oParam.aPanes.length)
-                                                       {
-                                                               for (var j=0;j<oMsg1.oParam.aPanes.length;j++)
-                                                               {
-                                                                       if (aToolbarOrder[i] == oMsg1.oParam.aPanes[j].sPaneName)
-                                                                       {
-                                                                               aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];
-                                                                               break;
-                                                                       }
-                                                               }
-                                                       }
-                                               }
-                                               else
-                                                       aToolbarOrderNew[aToolbarOrderNew.length] = aToolbarOrder[i];
-                                       }
-                                       oMsg.oParam = aToolbarOrderNew.join("|");
-                                       return false;
-                               }
-                       }
-               }
-               var sParam="";
-               if (gsBtns!="invalid")
-                       sParam=gsBtns+"|blankblock|banner";
-               else
-                       sParam = gsToolbarOrder;
-
-               if (gnOpts!=-1)
-               {
-                       var nPosForm=sParam.indexOf("|searchform|");
-                       if (gnOpts&PANE_OPT_SEARCH)
-                       {
-                               if (nPosForm == -1 && sParam.indexOf("|fts|") != -1)
-                               {
-                                       var nPos=sParam.indexOf("banner");
-                                       if (nPos!=-1)
-                                       {
-                                               sParam=sParam.substring(0, nPos) + "searchform|" + sParam.substring(nPos);
-                                       }
-                               }
-                       }
-                       else
-                       {
-                               if (nPosForm!=-1)
-                               {
-                                       sParam=sParam.substring(0,nPosForm) + sParam.substring(nPosForm+11);
-                               }
-                       }
-               }
-               oMsg.oParam=sParam;
-               return false;
-       }
-       else if (nMsgId == WH_MSG_MINIBARORDER)
-       {
-               var sMinParam=gsMinibarOrder;
-               if (gnOpts!=-1)
-               {
-                       var nPosBro=gsMinibarOrder.indexOf("avprev|avnext");
-                       if (gnOpts&PANE_OPT_BROWSESEQ)
-                       {
-                               if (nPosBro==-1)
-                               {
-                                       sMinParam ="avprev|avnext|" + gsMinibarOrder;
-                               }
-                       }
-                       else
-                       {
-                               if (nPosBro!=-1)
-                               {
-                                       if (nPosBro!=0)
-                                               sMinParam=gsMinibarOrder.substring(0, nPosBro) + gsMinibarOrder.substring(nPosBro+14);
-                                       else
-                                               sMinParam=gsMinibarOrder.substring(14);
-                               }
-                       }
-               }
-               oMsg.oParam = sMinParam;
-               return false;
-       }
-       else if (nMsgId == WH_MSG_ISSYNCSSUPPORT)
-       {
-               if (this.cMRServer && cMRServer.m_strVersion)
-               {
-                       if (cMRServer.m_bShowSync)
-                               oMsg.oParam=true;
-                       else
-                               oMsg.oParam=false;
-                       return false;
-               }
-               else
-               {
-                       if(typeof(nViewFrameType)!="undefined")
-                       {
-                               oMsg.oParam= (nViewFrameType < 3);
-                               return false;
-                       }
-               }
-       }
-       else if (nMsgId == WH_MSG_ISAVENUESUPPORT)
-       {
-               if (this.cMRServer && cMRServer.m_strVersion)
-               {
-                       if (cMRServer.m_bShowBrowseSequences)
-                               oMsg.oParam=true;
-                       else
-                               oMsg.oParam=false;
-               }
-               else
-               {
-                       oMsg.oParam=true;
-               }
-               return false;
-       }
-       else if (nMsgId == WH_MSG_ISSEARCHSUPPORT)
-       {
-               if(typeof(nViewFrameType)!="undefined")
-               {
-                       oMsg.oParam= (nViewFrameType < 3);
-                       return false;
-               }
-       }
-       else if (nMsgId == WH_MSG_GETPANETYPE)
-       {
-               if(typeof(nViewFrameType)!="undefined")
-               {
-                       var oPaneInfo = new Object();
-                       oPaneInfo.nType = nViewFrameType;
-                       oPaneInfo.sPaneURL = strPane;
-                       oMsg.oParam = oPaneInfo;
-                       return false;
-               }
-       }
-       else if (nMsgId == WH_MSG_GETPANES)
-       {
-               if (this.cMRServer && cMRServer.m_strVersion)
-               {
-                       var oPanes = new Object();
-                       var aAgentNames = null;
-                       if (cMRServer.m_strDefAgent)
-                               oPanes.sDefault = transferAgentNameToPaneName(cMRServer.m_strDefAgent);
-
-                       aPanes = new Array();
-                       for(var i=0; i< cMRServer.m_cAgents.length; i++)
-                       {
-                               var nCur = aPanes.length;
-                               aPanes[nCur] = new Object();
-                               aPanes[nCur].sPaneName = transferAgentNameToPaneName(cMRServer.m_cAgents[i].m_strID);
-                               aPanes[nCur].sPaneURL = cMRServer.m_cAgents[i].m_strURL;
-                       }
-                       oPanes.aPanes = aPanes;
-                       oMsg.oParam = oPanes;
-                       return false;
-               }
-               else
-               {
-                       oMsg.oParam = null;
-                       return false;
-               }
-       }
-       else if(nMsgId==WH_MSG_RELOADNS6)
-       {
-               if(gbNav6)
-                       gnReload++;
-               return false;
-       }
-       else if(nMsgId==WH_MSG_GETCMD)
-       {
-               oMsg.oParam=gnCmd;
-               return false;
-       }
-       else if(nMsgId==WH_MSG_GETPANE)
-       {
-               if (gsBtns!="invalid" && oMsg.oParam.sName)
-               {
-                       if(gsBtns.indexOf(oMsg.oParam.sName) != -1)
-                               oMsg.oParam.bEnable=true;
-                       else
-                               oMsg.oParam.bEnable=false;
-               }
-               else
-                       oMsg.oParam.bEnable=true;
-               return false;
-       }
-       else if(nMsgId==WH_MSG_GETDEFPANE)
-       {
-               if (gsDefaultBtn!="invalid")
-               {
-                       oMsg.oParam=gsDefaultBtn;
-               }
-               return false;
-       }
-       return true;
-}
-
-function transferANToPN2(sAN)
-{
-       if (sAN =="toc")
-               return "toc";
-       else if (sAN =="ndx")
-               return "idx";
-       else if (sAN =="nls")
-               return "fts";
-       else if (sAN =="gls")
-               return "glo";
-       else if (sAN =="WebSearch")
-               return "websearch";
-       else if (sAN.indexOf("custom_")==0);
-               return "custom" + sAN.substring(7);
-       return sAN;
-}
-
-function transferAgentNameToPaneName(sAgentName)
-{
-       if (sAgentName =="toc")
-               return "toc";
-       else if (sAgentName =="ndx")
-               return "idx";
-       else if (sAgentName =="nls")
-               return "fts";
-       else if (sAgentName =="gls")
-               return "glo";
-       return "";
-}
-
-function isAPane(sPaneName)
-{
-       if (sPaneName == "toc" || sPaneName == "idx" || sPaneName == "fts" || sPaneName == "glo")
-               return true;
-       else
-               return false;
-}
diff --git a/doc/salome/gui/GEOM/whstub.js b/doc/salome/gui/GEOM/whstub.js
deleted file mode 100755 (executable)
index a94288c..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-//     WebHelp 5.10.002
-window.whname="wh_stub";
-function getframehandle(frames,framename)
-{
-       var frame=null;
-       if(null==frames) return null;
-       for(var i=0;i<frames.length;i++)
-       {
-               if(typeof(frames[i].name)!="unknown")
-               {
-                       if(frames[i].name==framename)
-                               return frames[i];
-               }
-               if(frames[i].frames.length>0)
-               {
-                       frame=getframehandle(frames[i].frames,framename);
-                       if(null!=frame)
-                               return frame;
-               }
-       }
-       return frame;
-}
-
-function AddToArray(arr,obj)
-{
-       var bFound=false;
-       for(var i=0;i<arr.length;i++){
-               if(arr[i]==obj){
-                       bFound=true;
-                       break;
-               }
-               else if(arr[i]==null){
-                       break;
-               }
-       }
-       if(!bFound) arr[i]=obj;
-}
-
-var gArrayRegistedMessage=new Array();
-var gArrayCompoentsArray=new Array();
-
-function GetComponentsArray(nMessageId)
-{
-       var len=gArrayRegistedMessage.length;
-       for(var i=0;i<len;i++)
-       {
-               if(gArrayRegistedMessage[i]==nMessageId){
-                       if(gArrayCompoentsArray.length>i)
-                               return gArrayCompoentsArray[i];
-                       else
-                               return null;
-               }
-       }
-       return null;
-}
-
-function CreateComponentsArray(nMessageId)
-{
-       var len=gArrayRegistedMessage.length;
-       gArrayRegistedMessage[len]=nMessageId;
-       gArrayCompoentsArray[len]=new Array();
-       return gArrayCompoentsArray[len];
-}
-
-function listener(sName,oWindow)
-{
-       this.sName=sName;
-       this.oWindow=oWindow;
-}
-
-function RegisterListener(windowName,nMessageId)
-{
-       var arrayComponents=GetComponentsArray(nMessageId);
-       if(arrayComponents==null)
-               arrayComponents=CreateComponentsArray(nMessageId);
-       
-       if(arrayComponents!=null)
-       {
-               for (var i=0;i<arrayComponents.length;i++)
-               {
-                       if (arrayComponents[i].sName == windowName)
-                               return false;
-               }
-               var oListener=new listener(windowName,null);
-               AddToArray(arrayComponents,oListener);
-               return true;
-       }
-       else
-               return false;
-}
-
-function RegisterListener2(oWindow,nMessageId)
-{
-       var arrayComponents=GetComponentsArray(nMessageId);
-       if(arrayComponents==null)
-               arrayComponents=CreateComponentsArray(nMessageId);
-       
-       if(arrayComponents!=null)
-       {
-               var oListener=new listener("",oWindow);
-               AddToArray(arrayComponents,oListener);
-               return true;
-       }
-       else
-               return false;
-}
-
-function UnRegisterListener2(oWindow,nMessageId)
-{
-       var arrayComponents=GetComponentsArray(nMessageId);
-       if(arrayComponents!=null)
-       {
-               for(var i=0;i<arrayComponents.length;i++)
-               {
-                       if(arrayComponents[i].oWindow==oWindow)
-                       {
-                               removeItemFromArray(arrayComponents,i);
-                               return true;
-                       }
-               }
-       }
-       else
-               return false;
-}
-
-function SendMessage(oMessage)
-{
-       var bDelivered=false;
-       var arrayComponents=GetComponentsArray(oMessage.nMessageId);
-       if(arrayComponents!=null&&arrayComponents.length>0){
-               for(var i=0;i<arrayComponents.length;i++)
-               {
-                       if(null!=arrayComponents[i])
-                       {
-                               var pFrame;
-                               if(arrayComponents[i].oWindow==null)
-                                       pFrame=getframehandle(frames,arrayComponents[i].sName);
-                               else
-                                       pFrame=arrayComponents[i].oWindow;
-                               if(null!=pFrame)
-                               {
-                                       if(pFrame.onSendMessageX)
-                                       {
-                                               bDelivered=true;
-                                               if(!pFrame.onSendMessageX(oMessage))
-                                                       break;
-                                       }
-                                       if(pFrame.onSendMessage)
-                                       {
-                                               bDelivered=true;
-                                               if(!pFrame.onSendMessage(oMessage))
-                                                       break;
-                                       }
-                               }
-                       }
-               }
-       }
-       return bDelivered;
-}
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whtdhtml.htm b/doc/salome/gui/GEOM/whtdhtml.htm
deleted file mode 100755 (executable)
index e94f97f..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<html>
-<head>
-<title>Table of contents</title>
-
-<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
-<meta name="description" content="WebHelp 5.50">
-<base target="bsscright">
-</head>
-<script language="javascript" src="whver.js"></script>
-<script language="javascript1.2" src="whmozemu.js"></script>
-<script language="javascript1.2" src="whutils.js"></script>
-<script language="javascript1.2" src="whmsg.js"></script>
-<script language="javascript1.2" src="whproxy.js"></script>
-<script language="javascript1.2" src="whthost.js"></script>
-<script LANGUAGE="javascript1.2">
-<!--
-if (window.gbWhTHost)
-{
-       
-       
-       setFont("Normal", "Arial","9pt","#000000","normal","normal","none");
-       setFont("Hover", "Arial","9pt","#007f00","normal","normal","underline");
-       setActiveBgColor("#cccccc");
-       setMargin("0pt");
-       setIndent("9pt");
-       setIcon("BookOpen","whd_toc2.gif");
-       setIcon("BookClose","whd_toc1.gif");
-       setIcon("Item","whd_toc3.gif");
-       setIcon("RemoteItem","whd_toc4.gif");
-       setIcon("NewBookOpen","whd_toc2.gif");
-       setIcon("NewBookClose","whd_toc1.gif");
-       setIcon("NewItem","whd_toc3.gif");
-       setIcon("NewRemoteItem","whd_toc4.gif");
-       TocWriteClassStyle();
-       TocWriteFixedWidth(true,400);
-}
-else
-       document.location.reload();
-//-->
-</script>
-<body topmargin="2" leftmargin="2" marginwidth="0" marginheight="0" bgproperties="fixed" bgcolor="white" scroll="auto">
-<script LANGUAGE="javascript1.2">
-<!--
-TocWriteFixedWidth(false,400);
-TocInitPage();
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/whthost.js b/doc/salome/gui/GEOM/whthost.js
deleted file mode 100755 (executable)
index 1a864bb..0000000
+++ /dev/null
@@ -1,1504 +0,0 @@
-//     WebHelp 5.10.007
-var gaHSLoad=new Array();
-var gnMinIdx=0;
-var gnInsIdx=-1;
-var gsLoadingDivID="LoadingDiv";
-var gsLoadingMsg="Loading, click here to cancel...";
-var gaProj=null;
-var gaTocs=new Array();
-var goChunk=null;
-var gbReady=false;
-var gbToc=false;
-var gbXML=false;
-var gaRoot=new Array();
-var gnCC=-1;
-var gsTP="";
-var gaBTPs="";
-var gsCTPath="";
-var gnLT=-1;
-var gsPathSplit="\n";
-var gsBgColor="#ffffff";
-var gsBgImage="";
-var goFont=null;
-var goHFont=null;
-
-var gsMargin="0pt";
-var gsIndent="15pt";
-var gsABgColor="#cccccc";
-
-var giBookClose="";
-var giBookOpen="";
-var giBookItem="";
-var giURLItem="";
-var giNewBookClose="";
-var giNewBookOpen="";
-var giNewBookItem="";
-var giNewURLItem="";
-var gnImages=0;
-var gnLoadedImages=0;
-var gaImgs=new Array();
-var gbLoadData=false;
-var gobj=null;
-var gaTocsNs61Fix=null;
-var gbWhTHost=false;
-var gBookItems=new Array();
-var gInSync=false;
-var gbLData=false;
-var gbNeedFillStub=false;
-var gbLoadToc=false;
-
-function chunkInfoQueue()
-{
-       this.aContent=new Array();
-       this.inQueue=function(cInfo)
-       {
-               this.aContent[this.aContent.length]=cInfo;
-       }
-       this.deQueue=function()
-       {
-               var cInfo=null;
-               if(this.aContent.length>0)
-               {
-                       cInfo=this.aContent[0];
-                       for(var i=1;i<this.aContent.length;i++)
-                               this.aContent[i-1]=this.aContent[i];
-                       this.aContent.length--;
-               }
-               return cInfo;
-       }
-       this.length=function()
-       {
-               return this.aContent.length;
-       }
-}
-
-var gchunkRequestQueue=new chunkInfoQueue();
-
-function chunkInfo(nIdx, bLocal)
-{
-       this.nIdx=nIdx;
-       this.bLocal=bLocal;
-}
-
-function setBackground(sBgImage)
-{
-       gsBgImage=sBgImage;
-}
-
-function setBackgroundcolor(sBgColor)
-{
-       gsBgColor=sBgColor;
-}
-
-function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       if(sType=="Normal") goFont=vFont;
-       else if(sType=="Hover") goHFont=vFont;
-}
-
-function setActiveBgColor(sBgColor){gsABgColor=sBgColor;}
-
-function setMargin(sMargin){gsMargin=sMargin;}
-
-function setIndent(sIndent){gsIndent=sIndent;}
-
-function setIcon(sType,sURL)
-{
-       if(sType=="BookOpen")
-               giBookOpen=sURL;
-       else if(sType=="BookClose")
-               giBookClose=sURL;
-       else if(sType=="Item")
-               giBookItem=sURL;
-       else if(sType=="RemoteItem")
-               giURLItem=sURL;
-       else if(sType=="NewBookClose")
-               giNewBookClose=sURL;
-       else if(sType=="NewBookOpen")
-               giNewBookOpen=sURL;
-       else if(sType=="NewItem")
-               giNewBookItem=sURL;
-       else if(sType=="NewRemoteItem")
-               giNewURLItem=sURL;              
-}
-
-function bookItem(sTarget,sURL)
-{
-       if(sTarget)
-               this.sTarget=sTarget;
-       else
-               this.sTarget="bsscright";
-       this.sURL=sURL;
-}
-
-function addBookItem(sBookId,sTarget,sURL)
-{
-       gBookItems[sBookId]=new bookItem(sTarget,sURL);         
-}
-
-function tocChunk(sPPath,sDPath)
-{
-       this.sPPath=sPPath;
-       this.sDPath=sDPath;
-       this.nMI=-1;
-       this.aTocs=null;
-}
-
-function addTocChunk(sPPath,sDPath)
-{
-       var oChunk=new tocChunk(sPPath,sDPath);
-       gaTocs[gaTocs.length]=oChunk;
-       return oChunk;
-}
-
-function isHSLoad(nIdx)
-{
-       for(var i=0;i<gaHSLoad.length;i++)
-               if(gaHSLoad[i]==nIdx)
-                       return true;
-       return false;
-}
-
-function setHSLoad(nIdx)
-{
-       if(!isHSLoad(nIdx))
-       {
-               var len=gaHSLoad.length;
-               for(var i=0;i<len;i++)
-                       if(gaHSLoad[i]==-1)
-                       {
-                               gaHSLoad[i]=nIdx;
-                               return;
-                       }
-               gaHSLoad[len]=nIdx;
-       }
-}
-
-function setHSUnLoad(nIdx)
-{
-       if(isHSLoad(nIdx))
-       {
-               for(var i=0;i<gaHSLoad.length;i++)
-                       if(gaHSLoad[i]==nIdx)
-                       {
-                               gaHSLoad[i]=-1;
-                               return;
-                       }
-       }
-}
-
-function removeLoadingDiv()
-{
-       var eLoadingDiv=getElement(gsLoadingDivID);
-       if(eLoadingDiv)
-               removeThis(eLoadingDiv);
-}
-
-function checkBookItem(nIdx)
-{
-       if(!gInSync)
-       {
-               var sBookId=getBookId(nIdx);
-               if(gBookItems[sBookId])
-               {
-                       window.open(gBookItems[sBookId].sURL,gBookItems[sBookId].sTarget);
-               }
-       }
-}
-
-function insertBookItems(nIdx,num)
-{
-       checkBookItem(nIdx);
-       var sChildBookId=getCBId(nIdx);
-       var eChildDiv=getElement(sChildBookId);
-       if(eChildDiv){
-               if((eChildDiv.childNodes&&eChildDiv.childNodes.length==0)||
-                       (eChildDiv.all&&eChildDiv.all.length==0)){
-                       var sHTML=writeBookItems(nIdx,num);
-                       eChildDiv.innerHTML=sHTML;
-                       setTimeout("syncInit()",1);
-               }
-       }
-       ExpandIt(nIdx);
-}
-
-function isBookEmpty(nIdx)
-{
-       var num=getItemContentsNum(nIdx);
-       if (num>0)
-       {
-               var nCIdx=0;
-               do {
-                       nCIdx++;
-                       var i=nIdx+nCIdx;
-                       var nItemType=getItemType(i);
-                       if(nItemType==1){
-                               if (!isBookEmpty(i))
-                                       return false;
-                       }
-                       else if(nItemType==4){
-                               var     sSrc=getRefURL(i);
-                               var nProj=getProject(sSrc);
-                               if(nProj!=-1){
-                                       sSrc=gaRoot[nProj].sToc;
-                                       if(sSrc)
-                                               return false;
-                               }
-                       }
-                       else if(nItemType==2||nItemType==16||nItemType==8)
-                               return false;
-               } while(nCIdx<num);
-       }
-       return true;
-}
-
-function writeBook(nIdx)
-{
-       var sIcon=getBookImage(nIdx,true);
-       var sName=_textToHtml(getItemName(nIdx));
-       sIcon=_textToHtml_nonbsp(sIcon);
-       
-       var nType=getItemType(nIdx);
-       var bLocal=(nType==1);
-       var bLocalProject=(nType!=4);
-       
-       var sHTML="<div id=\""+getPBId(nIdx)+"\" class=";
-       if(bLocal)
-       {
-               if (!isBookEmpty(nIdx))
-               {
-                       sHTML+="parent><p><nobr><a id=\""+getBookId(nIdx)+"\" href=\"javascript:void(0);\" onfocus=\"markBook("+nIdx+");\" onclick=\"";
-                       sHTML+="insertBookItems("+nIdx+", "+getItemContentsNum(nIdx);
-                       sHTML+=");return false;\" title=\""+sName+"\"><img alt=\"Book\" name=\""+getBId(nIdx)+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">";
-                       sHTML+="&nbsp;"+sName+"</a></nobr></p></div>";
-                       var sURL=_textToHtml_nonbsp(getItemURL(nIdx));
-                       if(sURL!="")
-                               addBookItem(getBookId(nIdx),_textToHtml_nonbsp(getTopicTarget(nIdx)),sURL);
-                       sHTML+="<div id=\""+getCBId(nIdx)+"\" class=child></div>";
-               }
-               else
-                       sHTML="";
-       }
-       else
-       {
-               sHTML+="stub></div>";
-               gbNeedFillStub=true;
-               setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
-       }
-       return sHTML;
-}
-
-function checkFillStub()
-{
-       if(!gbLData)
-       {
-               if(gchunkRequestQueue.length()>0)
-               {
-                       var cInfo=gchunkRequestQueue.deQueue();
-                       if(cInfo)
-                       {
-                               fillStub(cInfo.nIdx,cInfo.bLocal);
-                               return;
-                       }
-               }
-       }
-       if(gbNeedFillStub)
-       {
-               gbNeedFillStub=false;
-               setTimeout("syncInit()",1);
-       }
-}
-
-function fillStub(nIdx,bLocalProject)
-{
-       if(!gbLData)
-       {
-               gbLData=true;
-               var sObj=getElement(getPBId(nIdx));
-               if(sObj!=null)
-               {
-                       tocExpandHelpSet(nIdx,bLocalProject);
-                       gbNeedFillStub=false;
-                       setTimeout("syncInit()",1);
-               }
-               else
-                       setTimeout("fillStub("+nIdx+","+bLocalProject+");",100);
-       }
-       else
-               gchunkRequestQueue.inQueue(new chunkInfo(nIdx,bLocalProject));
-}
-
-function getBookId(nIdx){return "B_"+nIdx;}
-
-function getItemId(nIdx){return "I_"+nIdx;}
-
-function markBook(nIdx)
-{
-       var obj=getElement(getItemId(nIdx));
-       if(obj==null)
-               obj=getElement(getBookId(nIdx));
-       if(gbNav6)
-       {
-               gobj=obj;
-               setTimeout("delayMarkObj();",1);
-       }
-       else
-               markObj(obj);
-}
-
-function delayMarkObj()
-{
-       if(gobj)
-       {
-               markObj(gobj);
-               gobj=null;
-       }
-}
-
-function markObj(obj)
-{
-       if(obj!=null)
-       {
-               HighLightElement(obj,gsABgColor,"transparent");
-               var sPath=calTocPath(obj);
-               if(gsCTPath!=sPath)
-                       gsCTPath=sPath;
-       }
-}
-
-function markItem(nIdx)
-{
-       var obj=getElement(getItemId(nIdx));
-       if(gbNav6)
-       {
-               gobj=obj;
-               setTimeout("delayMarkObj();",1);
-       }
-       else
-               markObj(getElement(getItemId(nIdx)));
-}
-
-function calTocPath(obj)
-{
-       var sPath=getInnerText2(obj);
-       var pObj=getParentNode(obj);
-       do
-       {
-               while(pObj!=null&&!isCBId(pObj.id)) pObj=getParentNode(pObj);
-               if(pObj!=null)
-               {
-                       var nId=getIdByCBId(pObj.id);
-                       var sObj=getElement(getPBId(nId));
-                       if(sObj!=null)
-                       {
-                               var objs=getItemsByBook(sObj);
-                               for(var i=0;i<objs.length;i++)
-                               {
-                                       var sText=getInnerText2(objs[i]);
-                                       if(sText.length!=0)
-                                       {
-                                               sPath=sText+gsPathSplit+sPath;
-                                               break;
-                                       }
-                               }
-                       }
-                       pObj=getParentNode(pObj);
-               }
-       }while(pObj!=null);
-       return sPath;
-}
-
-function writeAnItem(nIdx)
-{
-       var sTarget=_textToHtml_nonbsp(getTopicTarget(nIdx));
-       var sIcon=getItemIcon(nIdx,0);
-       if(sIcon=="")
-       {
-               var nItemType=getItemType(nIdx);
-               if(nItemType&2)
-                       sIcon=getItemImage(nIdx,false);
-               else
-                       sIcon=getItemImage(nIdx,true);
-       }
-       sIcon=_textToHtml_nonbsp(sIcon);
-       var sName=_textToHtml(getItemName(nIdx));
-       var sHTML="<p><nobr><a id=\""+getItemId(nIdx)+"\" onfocus=\"markItem("+nIdx+");\""
-       var sAltString="";
-       if(nItemType&2)
-               sAltString="Page";
-       else
-               sAltString="Remote Page";
-       if(sTarget!="")
-               sHTML+="target=\""+sTarget+"\" ";
-       sHTML+="href=\""+_textToHtml_nonbsp(getItemURL(nIdx))+"\" title=\""+sName+"\"><img alt=\""+sAltString+"\" src=\""+sIcon+"\" border=0 align=\"absmiddle\">&nbsp;"+sName+"</a></nobr></p>";
-       return sHTML;
-}
-
-function writeBookItems(nIdx,num)
-{
-       var sHTML="";
-       if(num>0){
-               var nCIdx=0;
-               do{
-                       nCIdx++;
-                       var i=nIdx+nCIdx;
-                       var nItemType=getItemType(i);
-                       if(nItemType==1||nItemType==4||nItemType==8){
-                               sHTML+=writeBook(i);    
-                               nCIdx+=getItemContentsNum(i);           
-                       }
-                       else if(nItemType==2||nItemType==16){
-                               sHTML+=writeAnItem(i);
-                       }
-               }
-               while(nCIdx<num);
-       }
-       return sHTML;
-}
-
-function tocExpandHelpSet(nIdx,bLocal)
-{
-       checkBookItem(nIdx);
-       removeLoadingDiv();
-       if(!isHSLoad(nIdx))
-       {
-               setHSLoad(nIdx);
-               var sSrc="";
-               if(bLocal){
-                       var oChunk=getChunk(nIdx);
-                       if(oChunk)
-                       {
-                               goChunk=addTocChunk(oChunk.sPPath,oChunk.sDPath);
-                               sSrc=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
-                       }
-               }
-               else{
-                       sSrc=getRefURL(nIdx);
-                       var nProj=getProject(sSrc);
-                       if(nProj!=-1)
-                       {
-                               sSrc=gaRoot[nProj].sToc;
-                               if(sSrc)
-                                       goChunk=addTocChunk(gaProj[nProj].sPPath,gaProj[nProj].sDPath);
-                               else
-                                       goChunk=null;
-                       }
-                       else
-                               goChunk=null;
-               }
-               if(goChunk)
-               {
-                       PrepareLoading(nIdx);
-                       gbToc=false;
-                       loadData2(goChunk.sPPath+goChunk.sDPath+sSrc);
-               }
-               else
-               {
-                       gbLData=false;
-                       checkFillStub();
-               }
-       }
-}
-
-function getProject(sSrc)
-{
-       for(var i=0;i<gaProj.length;i++)
-               if(isSamePath(getPath(sSrc),gaProj[i].sPPath))
-                       return i;
-       return -1;
-}
-
-function getPath(sPath)
-{
-       if(sPath!="")
-       {
-               sPath=_replaceSlash(sPath);
-               var nPosFile=sPath.lastIndexOf("/");
-               sPath=sPath.substring(0,nPosFile+1);
-       }
-       return sPath;
-}
-
-function isSamePath(sPath1,sPath2)
-{
-       return (sPath1.toLowerCase()==sPath2.toLowerCase());
-}
-
-function PrepareLoading(nIdx)
-{
-       gnInsIdx=nIdx;
-       if(!gsTP)
-       {
-               var oObj=getElement(getPBId(gnInsIdx));
-               if(oObj)
-                       oObj.insertAdjacentHTML("afterEnd",writeLoadingDiv(nIdx));
-       }
-}
-
-function writeLoadingDiv(nIdx)
-{
-       return"<div id=\""+gsLoadingDivID+"\" class=parent onclick=\"removeLoadingDiv();\" style=\"padding-left:4px;background-color:ivory;border-width:1;border-style:solid;border-color:black;width:150px;\">"+gsLoadingMsg+"</div>";
-}
-
-function getItemName(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-               return oChunk.aTocs[nIdx-oChunk.nMI].sItemName;
-       else
-               return null;
-}
-
-function getItemContentsNum(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-               return oChunk.aTocs[nIdx-oChunk.nMI].nContents;
-       else
-               return null;
-}
-
-function getItemType(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-               return oChunk.aTocs[nIdx-oChunk.nMI].nType;
-       else
-               return 0;
-}
-
-function getItemURL(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-       {
-               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sItemURL;
-               if(!(sPath==null||sPath==""))
-               {
-                       return _getFullPath(oChunk.sPPath,sPath);
-               }
-       }
-       return "";
-}
-
-function getRefURL(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-       {
-               var sPath=oChunk.aTocs[nIdx-oChunk.nMI].sRefURL;
-               if(!(sPath==null||sPath==""))
-               {
-                       return _getFullPath(oChunk.sPPath,sPath)
-               }
-       }
-       return "";
-}
-
-function getTopicTarget(nIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-       {
-               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sTarget)!="undefined")
-                       return oChunk.aTocs[nIdx-oChunk.nMI].sTarget;
-       }
-       return "";
-}
-
-function getItemIcon(nIdx,nIconIdx)
-{
-       var oChunk=getChunk(nIdx);
-       if(oChunk)
-       {
-               if(typeof(oChunk.aTocs[nIdx-oChunk.nMI].sIconRef)!="undefined")
-               {
-                       var sIconRef=oChunk.aTocs[nIdx-oChunk.nMI].sIconRef;
-                       var nIndex=sIconRef.indexOf(";");
-                       while(nIconIdx-->0&&nIndex!=-1)
-                       {
-                               sIconRef=sIconRef.substring(nIndex+1);
-                               nIndex=sIconRef.indexOf(";");
-                       }
-                       if(nIconIdx<0)
-                       {
-                               if(nIndex!=-1)
-                                       sIconRef=sIconRef.substring(0,nIndex);
-                               return _getFullPath(oChunk.sPPath,sIconRef)
-                       }
-               }
-       }
-       return "";
-}
-
-function TocWriteClassStyle()
-{
-       var sStyle="<STYLE TYPE='text/css'>\n";
-       if(gsBgImage)
-               sStyle+="body {border-top:"+gsBgColor+" 1px solid;}\n";
-       else
-               sStyle+="body {border-top:black 1px solid;}\n";
-       sStyle+="P {"+getFontStyle(goFont)+"margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
-       sStyle+="DIV {margin-top:"+gsMargin+";margin-bottom:"+gsMargin+";}\n";
-       sStyle+=".parent {margin-left:0pt;}\n";
-       sStyle+=".stub {margin-left:0pt;display:none}\n";
-       sStyle+=".child {display:none;margin-left:"+gsIndent+";}\n";
-       sStyle+="A:link {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:visited {"+getFontStyle(goFont)+"}\n";
-       sStyle+="A:active {background-color:"+gsABgColor+";}\n";
-       sStyle +="A:hover {"+getFontStyle(goHFont)+"}\n";
-       sStyle+="</STYLE>";
-       document.write(sStyle);
-}
-
-function TocWriteFixedWidth(bBegin,nWidth)
-{
-       if((gbIE4)&&(gbMac)&&(!gbIE5)){
-               if(bBegin)
-                       document.write("<table width="+nWidth+" border=0><tr><td>");
-               else
-                       document.write("</td></tr></table>");
-       }
-}
-
-function TocInitPage()
-{
-       var tempColl=getItemsByBook(document.body);
-       if(tempColl.length>0)
-               tempColl[0].focus();
-}
-
-function getItemsFromObj(obj)
-{
-       var aAnchor=new Array();
-       var tempColl=getChildrenByTag(obj,"P");
-       if(tempColl&&tempColl.length>0)
-       {
-               var anobr=new Array();
-               for(var i=0;i<tempColl.length;i++)
-               {
-                       var tempNobr=getChildrenByTag(tempColl[i],"NOBR");
-                       if(tempNobr&&tempNobr.length>0)
-                               for(var j=0;j<tempNobr.length;j++)
-                                       anobr[anobr.length]=tempNobr[j];
-               }
-               for(var s=0;s<anobr.length;s++)
-               {
-                       var tempAnchor=getChildrenByTag(anobr[s],"A");
-                       if(tempAnchor&&tempAnchor.length>0)
-                               for(var u=0;u<tempAnchor.length;u++)
-                                       aAnchor[aAnchor.length]=tempAnchor[u];
-               }
-       }
-       return aAnchor;
-}
-
-function getItemsByBook(obj)
-{
-       var aAnchor=new Array();
-       var aTAnchor=getItemsFromObj(obj);
-       for(var i=0;i<aTAnchor.length;i++)
-               aAnchor[aAnchor.length]=aTAnchor[i];
-       var tempBook=getChildrenByTag(obj,"DIV");
-       if(tempBook&&tempBook.length>0)
-               for(var j=0;j<tempBook.length;j++)
-               {
-                       var aTAnchorDiv=getItemsFromObj(tempBook[j]);
-                       for(var s=0;s<aTAnchorDiv.length;s++)
-                               aAnchor[aAnchor.length]=aTAnchorDiv[s];
-               }
-       return aAnchor;
-}
-
-function ExpandIt(nId)
-{
-       if(!gsTP)
-               ExpandIt2(nId,false);
-}
-
-function ExpandIt2(nId,bForceOpen)
-{
-       var oC=TocExpand(nId,true,bForceOpen);
-       var nNewScroll=document.body.scrollTop;
-       if(oC.style.display=="block"){
-               var nTop=oC.offsetTop;
-               var nBottom=nTop+oC.offsetHeight;
-               if(document.body.scrollTop+document.body.clientHeight<nBottom){
-                       nNewScroll=nBottom-document.body.clientHeight;
-               }
-               if(nBottom-nTop>document.body.clientHeight){
-                       nNewScroll=nTop-20;
-               }
-       }
-       document.body.scrollTop=nNewScroll;
-}
-
-function TocExpand(nId,bChangeImg,bForceOpen)
-{
-       var oDiv=getElement(getCBId(nId));
-       if(oDiv==null) return null;
-
-       var whichIm=document.images[getBId(nId)];
-       if((oDiv.style.display!="block")||bForceOpen){
-               oDiv.style.display="block";
-               if(bChangeImg){
-                       var sPath=getPath(whichIm.src);
-                       sPath=_getFullPath(sPath,getBookImage(nId,false));
-                       whichIm.src=sPath;              
-               }
-       }else{
-               oDiv.style.display="none";
-               if(bChangeImg){
-                       var sPath=getPath(whichIm.src);
-                       sPath=_getFullPath(sPath,getBookImage(nId,true));
-                       whichIm.src=sPath;
-               }
-               if(gbMac&&gbIE5){
-                       this.parent.document.getElementById("tocIFrame").style.width="101%";
-                       this.parent.document.getElementById("tocIFrame").style.width="100%";
-               }
-       }
-       return oDiv;
-}
-
-function getChunkId(n)
-{
-       var nCan=-1;
-       for(var i=0;i<gaTocs.length;i++)
-               if(gaTocs[i].nMI<=n&&gaTocs[i].nMI!=-1)
-               {
-                       if(nCan==-1)
-                               nCan=i;
-                       else
-                               if(gaTocs[i].nMI>=gaTocs[nCan].nMI)
-                                       nCan=i;
-               }
-       if(nCan!=-1)
-               return nCan;
-       else
-               return -1;
-}
-
-function getChunk(n)
-{
-       if(gnCC!=-1&&gaTocs[gnCC].nMI<=n&&(gnCC==gaTocs.length-1||
-               gaTocs[gnCC+1].nMI>n))
-       {       
-               return gaTocs[gnCC];
-       }
-       else{
-               gnCC=getChunkId(n);
-               if(gnCC!=-1)
-                       return gaTocs[gnCC];
-               else
-                       return null;
-       }
-}
-
-function getBookImage(nIdx,bClosed)
-{
-       var nIdx=bClosed?0:1;
-       var sIcon=getItemIcon(nIdx,nIdx);
-       if(sIcon=="")
-               if(bClosed)
-                       sIcon=giBookClose;
-               else
-                       sIcon=giBookOpen;
-       return _getFullPath(gaProj[0].sPPath,sIcon);
-}
-
-function getItemImage(nIdx,bRemote)
-{
-       var sIcon=getItemIcon(nIdx,0);
-       if(sIcon=="")
-               if(bRemote)
-                       sIcon=giURLItem;
-               else
-                       sIcon=giBookItem;
-       return _getFullPath(gaProj[0].sPPath,sIcon);
-}
-
-function getInnerText2(obj)
-{
-       var sText=getInnerText(obj);
-       if(sText.length>0&&!gbOpera7)
-               sText=sText.substring(1);
-       return sText;
-}
-
-function expandToc(oObj,sRest,aIdList)
-{
-       var len=aIdList.length;
-       var nPos=sRest.indexOf(gsPathSplit);
-       if(nPos!=-1)
-       {
-               sPart=sRest.substring(0,nPos);
-               sRest=sRest.substring(nPos+1);
-       }
-       else
-       {
-               sPart=sRest;
-               var aTagAs=getItemsByBook(oObj);
-               for(var s=0;s<aTagAs.length;s++)
-               {
-                       var sText=getInnerText2(aTagAs[s]);
-                       if(sText==sPart)
-                       {
-                               aIdList[len]=aTagAs[s];
-                               return 1;
-                       }
-               }
-               return 0;
-       }
-               
-       var aChildren=getChildrenByTag(oObj,"DIV");
-       for(var i=0;i<aChildren.length;i++)
-       {
-               var sPId=aChildren[i].id;
-               if(!isPBId(sPId))
-                       continue;
-               var sText=getInnerText2(aChildren[i]);
-               if(sText!=sPart)
-                       continue;
-               aIdList[len]=getIdByPBId(sPId);
-               var sCId=getCBId(aIdList[len]);
-               var oCObj=getElement(sCId);
-               if(oCObj)
-               {
-                       if(oCObj.innerHTML=="")
-                       {
-                               var obj=getItemsByBook(aChildren[i]);
-                               if(obj.length>0)
-                               {
-                                       if(gbNav6)
-                                       {
-                                               var sCommand=obj[0].getAttribute("onClick");
-                                               var nCommand=sCommand.indexOf(";");
-                                               sCommand=sCommand.substring(0,nCommand);
-                                               setTimeout(sCommand,1);
-                                       }
-                                       else
-                                               obj[0].click();
-                               }
-                               return -1;
-                       }
-                       var nRet=expandToc(oCObj,sRest,aIdList);
-                       if(nRet)
-                               return nRet;
-               }
-       }
-       aIdList.length=len;
-       return 0;
-}
-
-function getIdByPBId(sPId)
-{
-       return parseInt(sPId.substring(2,sPId.length-1));
-}
-
-function getIdByCBId(sCId)
-{
-       return parseInt(sCId.substring(2,sCId.length-1));
-}
-
-function isPBId(sId)
-{
-       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("P")==sId.length-1);
-}
-
-function isCBId(sId)
-{
-       return (sId&&sId.indexOf("B_")==0&&sId.lastIndexOf("C")==sId.length-1);
-}
-
-function getBId(nIdx)
-{
-       return "B_"+nIdx;
-}
-
-function getPBId(nIdx)
-{
-       return getBId(nIdx)+"P";
-}
-
-function getCBId(nIdx)
-{
-       return getBId(nIdx)+"C";
-}
-
-function getClosestTocPath(aPaths)
-{
-       var nMaxSimilarity=0;
-       var nThatIndex=-1;
-       var sPath=null;
-       if(aPaths.length==0) return sPath;
-       for(var i=0;i<aPaths.length;i++)
-       {
-               var nSimilarity=comparePath(gsCTPath,aPaths[i]);
-               if(nSimilarity>nMaxSimilarity)
-               {
-                       nMaxSimilarity=nSimilarity;
-                       nThatIndex=i;
-               }
-       }
-       if(nThatIndex!=-1)
-               sPath=aPaths[nThatIndex];
-       else
-               sPath=aPaths[0];
-       return sPath;
-}
-
-function comparePath(sPath1,sPath2)
-{
-       var nMaxSimilarity=0;
-       var nStartPos1=0;
-       var nPos1=-1;
-       var nStartPos2=0;
-       var nPos2=-1;
-       do{
-               var sCheck1=null;
-               var sCheck2=null;
-               nPos1=sPath1.indexOf(gsPathSplit,nStartPos1);
-               if(nPos1!=-1)
-               {
-                       sCheck1=sPath1.substring(nStartPos1,nPos1);
-                       nStartPos1=nPos1+1;
-               }
-               else
-               {
-                       sCheck1=sPath1.substring(nStartPos1);
-                       nStartPos1=-1;
-               }
-               nPos2=sPath2.indexOf(gsPathSplit,nStartPos2);
-               if(nPos1!=-1)
-               {
-                       sCheck2=sPath2.substring(nStartPos2,nPos2);
-                       nStartPos2=nPos2+1;
-               }
-               else
-               {
-                       sCheck2=sPath2.substring(nStartPos2);
-                       nStartPos2=-1;
-               }
-               if(sCheck1==sCheck2)
-                       nMaxSimilarity++;
-               else
-                       break;
-       }while(nStartPos1!=-1&&nStartPos2!=-1);
-       return nMaxSimilarity;
-}
-
-function getTocPaths(oTopicParam)
-{
-       var aRelTocPaths=oTopicParam.aPaths;
-       var aPaths=new Array();
-       for(var i=0;i<gaProj.length;i++)
-               if(isSamePath(gaProj[i].sPPath,oTopicParam.sPPath))
-               {
-                       for(var j=0;j<aRelTocPaths.length;j++)
-                               for (var k=0;k<gaRoot[i].aRPath.length;k++)
-                               {
-                                       var sPath=gaRoot[i].aRPath[k]+aRelTocPaths[j];
-                                       aPaths[aPaths.length]=sPath.substring(1);
-                               }
-                       break;
-               }
-       return aPaths;
-}
-
-function syncInit()
-{
-       if(gsTP&&!gbNeedFillStub)
-       {
-               gInSync=true;
-               var obj=document.body;
-               var aIdList=new Array();
-               var nRet=expandToc(obj,gsTP,aIdList);
-               if(nRet!=-1)
-               {
-                       if(nRet==1)
-                       {
-                               if(aIdList.length)
-                                       for(var i=0;i<aIdList.length-1;i++)
-                                               ExpandIt2(aIdList[i],true);
-                               gsCTPath=gsTP;
-                               if(!gbIE55)
-                                       aIdList[aIdList.length-1].focus();
-                               else
-                                       HighLightElement(aIdList[aIdList.length-1],gsABgColor,"transparent");
-                       }
-                       var aPaths=gaBTPs;
-                       gsTP=null;
-                       gaBTPs=null;
-                       if(aPaths!=null)
-                       {
-                               var sPath=getClosestTocPath(aPaths);
-                               if(sPath!=null)
-                               {       
-                                       gsTP=sPath;             
-                                       setTimeout("syncInit()",1);
-                               }
-                       }
-               }
-               gInSync=false;
-       }
-}
-
-function loadToc()
-{
-       if(!gbLoadToc)
-       {
-               var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null);
-               if(SendMessage(oResMsg)&&oResMsg.oParam)
-               {
-                       gbLoadToc=true;
-                       var oProj=oResMsg.oParam;
-                       gaProj=oProj.aProj;
-                       gbXML=oProj.bXML;
-                       load1B1();
-               }
-       }
-}
-
-function load1B1()
-{
-       if(gnLT+1<gaProj.length)
-               for(var i=gnLT+1;i<gaProj.length;i++)
-                       if(gaProj[i].sToc)
-                       {
-                               gbToc=true;
-                               gnLT=i;
-                               setTimeout("loadTocInfo()",1);
-                               return true;
-                       }
-       return false;
-}
-
-function loadTocInfo()
-{
-       loadData2(gaProj[gnLT].sPPath+gaProj[gnLT].sDPath+gaProj[gnLT].sToc);
-}
-
-function loadData2(sFile)
-{
-       if(gbXML)
-               loadDataXML(sFile);
-       else
-               loadData(sFile);
-}
-
-function projReady(sRoot,aProj)
-{
-       if(gaRoot.length<=gnLT||!gaRoot[gnLT])
-               gaRoot[gnLT]=new Object();
-       gaRoot[gnLT].sToc=sRoot;
-       
-       if(gnLT==0)
-       {
-               gaRoot[gnLT].aRPath=new Array();
-               gaRoot[gnLT].aRPath[0]=gsPathSplit;
-       }
-
-       updatePTPath(gnLT,aProj);
-
-       if(!((gnLT+1<gaProj.length)&&load1B1()))
-       {
-               gbReady=true;
-               if(gbIE4)
-                       setTimeout("loadImages();",1);
-               else
-                       setTimeout("loadTData();",1);
-       }
-}
-
-function loadTData()
-{
-       if(gaProj[0].sToc!="")
-       {
-               gbLData=true;
-               goChunk=addTocChunk(gaProj[0].sPPath,gaProj[0].sDPath);
-               gbToc=false;
-               loadData2(gaProj[0].sPPath+gaProj[0].sDPath+gaRoot[0].sToc);
-       }
-}
-
-function updatePTPath(n,aProj)
-{
-       if(aProj)
-               for(var i=0;i<aProj.length;i++)
-               {
-                       var sFullPath=_getFullPath(gaProj[n].sPPath,aProj[i].sPPath);
-                       for(var j=0;j<gaProj.length;j++)
-                               if(isSamePath(sFullPath,gaProj[j].sPPath))
-                               {
-                                       if(gaRoot.length<=j||!gaRoot[j])
-                                               gaRoot[j]=new Object();
-                                       if(!gaRoot[j].aRPath)
-                                               gaRoot[j].aRPath=new Array();
-
-                                       if(gaRoot[n].aRPath)
-                                               for(var k=0;k<gaRoot[n].aRPath.length;k++)
-                                               {
-                                                       var bDup=false;
-                                                       var sTFPath=gaRoot[n].aRPath[k]+aProj[i].sRPath;
-                                                       for(var l=0;l<gaRoot[j].aRPath.length;l++)
-                                                               if(gaRoot[j].aRPath[l]==sTFPath)
-                                                               {
-                                                                       bDup=true;
-                                                                       break;
-                                                               }
-                                                       if(!bDup)
-                                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=sTFPath;
-                                               }
-                                       else
-                                               gaRoot[j].aRPath[gaRoot[j].aRPath.length]=aProj[i].sRPath;
-                                       break;
-                               }
-               }
-}
-
-function onLoadXMLError()
-{
-       if(gbToc)
-       {
-               var sRoot="";
-               var aRProj=new Array();
-               projReady(sRoot,aRProj);
-       }
-       else
-       {
-               var aToc=new Array();
-               putData(aToc)
-       }
-}
-
-function putDataXML(xmlDoc,sDocPath)
-{
-       if(gbToc)
-       {
-               var tocNode=xmlDoc.getElementsByTagName("toc")[0];
-               if(tocNode)
-               {
-                       var sRoot=tocNode.getAttribute("root");
-                       var rmtProject=tocNode.getElementsByTagName("project");
-                       var aRProj=new Array();
-                       if(rmtProject.length>0)
-                       {
-                               for(var i=0;i<rmtProject.length;i++)
-                               {
-                                       aRProj[i]=new Object();
-                                       var sURL=rmtProject[i].getAttribute("url");
-                                       if(sURL)
-                                       {
-                                               if(sURL.lastIndexOf("/")!=sURL.length-1)
-                                                       sURL+="/";                                              
-                                       }
-                                       aRProj[i].sPPath=sURL;
-                                       aRProj[i].sRPath = "";
-                                       var oSubPath = rmtProject[i].getElementsByTagName("subpath")[0];
-                                       if (oSubPath)
-                                       {
-                                               while (oSubPath)
-                                               {
-                                                       aRProj[i].sRPath += oSubPath.getAttribute("name") + "\n";
-                                                       oSubPath = oSubPath.getElementsByTagName("subpath")[0];
-                                               }
-                                       }
-                                       else
-                                               aRProj[i].sRPath=rmtProject[i].getAttribute("path");
-                               }
-                       }
-                       projReady(sRoot,aRProj);
-               }
-       }
-       else
-       {
-               var chunkNode=xmlDoc.getElementsByTagName("tocdata")[0];
-               if(chunkNode)
-               {
-                       var aToc=new Array();
-                       processBook(chunkNode,aToc);
-                       putData(aToc);
-               }
-       }
-}
-
-function processBook(node,aToc)
-{
-       var i=0;
-       var entry=null;
-       var prevEntry=null;
-       var oChild=node.firstChild;
-       do{
-               if(oChild)
-               {
-                       if(oChild.nodeName.indexOf("#")!=0)
-                       {
-                               var sName=oChild.getAttribute("name");
-                               var sURL=oChild.getAttribute("url");
-                               var sRef=oChild.getAttribute("ref");
-                               var sTarget=oChild.getAttribute("target");
-                               var sIcons=oChild.getAttribute("images");
-                               var item=new Object();
-                               item.sItemName=sName;
-                               if(sTarget)
-                                       item.sTarget=sTarget;
-                               if(sIcons)
-                                       item.sIconRef=sIcons;
-                               if(sURL==null) sURL="";
-
-                               item.sItemURL=sURL;
-                               
-                               if(oChild.nodeName=="book")
-                               {
-                                       item.nType=1;
-                                       aToc[aToc.length]=item;
-                                       var nCurrPos=aToc.length;
-                                       processBook(oChild,aToc);
-                                       item.nContents=aToc.length-nCurrPos;
-                               }
-                               else if(oChild.nodeName=="item")
-                               {
-                                       item.nType=2;
-                                       item.nContents=0;
-                                       aToc[aToc.length]=item;
-                               }
-                               else if(oChild.nodeName=="remoteitem")
-                               {
-                                       item.nType=16;
-                                       item.nContents=0;
-                                       aToc[aToc.length]=item;
-                               }
-                               else if(oChild.nodeName=="project")
-                               {
-                                       if(sRef)
-                                       {
-                                               if(sRef.lastIndexOf("/")!=sRef.length-1)
-                                                       sRef+="/";                                              
-                                       }
-                                       item.nType=4;
-                                       item.sRefURL=sRef;
-                                       item.nContents=0;
-                                       aToc[aToc.length]=item;
-                               }
-                               else if(oChild.nodeName=="chunk")
-                               {
-                                       item.nType=8;
-                                       item.sRefURL=sRef;
-                                       item.nContents=0;
-                                       aToc[aToc.length]=item;
-                               }
-                       }
-               }
-               else
-                       break;
-               oChild=oChild.nextSibling;
-       }while(true);
-}
-
-function putData(aTocs)
-{
-       gaTocsNs61Fix=aTocs;
-       setTimeout("realPutData();",1);
-}
-
-function realPutData()
-{
-       removeLoadingDiv();
-       var aTocs=gaTocsNs61Fix;
-       if(!aTocs) return;
-       if(goChunk)
-       {
-               var n=gnMinIdx;
-               goChunk.nMI=gnMinIdx;
-               goChunk.aTocs=aTocs;
-               gnMinIdx+=aTocs.length;
-               if(gnInsIdx!=-1)
-               {
-                       var oObj=getElement(getPBId(gnInsIdx));
-                       if(oObj)
-                       {
-                               oObj.insertAdjacentHTML("afterEnd",writeBookItems(n-1,aTocs.length));
-                               setTimeout("syncInit()",1);
-                       }
-               }
-               else{
-                       document.body.insertAdjacentHTML("beforeEnd",writeBookItems(n-1,aTocs.length));
-                       var oParam=new Object();
-                       oParam.oTocInfo=null;
-                       var oMsg=new whMessage(WH_MSG_GETTOCPATHS,this,1,oParam);
-                       if(SendMessage(oMsg))
-                       {
-                               if(oMsg.oParam.oTocInfo)
-                                       syncWithPaths(oMsg.oParam.oTocInfo);
-                       }
-               }       
-       }
-       gbLData=false;
-       checkFillStub();
-}
-
-function syncWithPaths(oTopicParam)
-{
-       var aPaths=getTocPaths(oTopicParam);
-       if(gsTP)
-               gaBTPs=aPaths;
-       else{
-               var sPath=getClosestTocPath(aPaths);
-               if(sPath!=null)
-               {
-                       gsTP=sPath;
-                       setTimeout("syncInit()",1);
-               }
-       }
-}
-
-function window_OnLoad()
-{
-       if(gsBgImage&&gsBgImage.length>0)
-       {
-               document.body.background=gsBgImage;
-       }
-       if(gsBgColor&&gsBgColor.length>0)
-       {
-               document.body.bgColor=gsBgColor;
-       }
-       loadToc();
-       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null)
-       SendMessage(oMsg);
-}
-
-function loadImages()
-{
-       if(giBookClose)
-       {
-               gaImgs[gnImages]=giBookClose;
-               gnImages++;
-       }               
-       if(giBookOpen)
-       {
-               gaImgs[gnImages]=giBookOpen;
-               gnImages++;
-       }               
-       if(giBookItem)
-       {
-               gaImgs[gnImages]=giBookItem;
-               gnImages++;
-       }               
-       if(giURLItem)
-       {
-               gaImgs[gnImages]=giURLItem;
-               gnImages++;
-       }               
-       if(giNewBookClose)
-       {
-               gaImgs[gnImages]=giNewBookClose;
-               gnImages++;
-       }               
-       if(giNewBookOpen)
-       {
-               gaImgs[gnImages]=giNewBookOpen;
-               gnImages++;
-       }               
-       if(giNewBookItem)
-       {
-               gaImgs[gnImages]=giNewBookItem;
-               gnImages++;
-       }               
-       if(giNewURLItem)
-       {
-               gaImgs[gnImages]=giNewURLItem;
-               gnImages++;
-       }
-       if(gnImages>0)
-       {
-               setTimeout("loadDataAfter();",1000);
-               loadImage(gaImgs[0]);
-       }
-       else
-               loadDataAfter();
-}
-
-function loadImage(sURL)
-{
-       var oImg=new Image();
-       oImg.onload=checkImageLoading;
-       oImg.onerror=errorImageLoading;
-       oImg.src=_getFullPath(gaProj[0].sPPath,sURL);
-}
-
-function loadDataAfter()
-{
-       if(!gbLoadData)
-       {
-               gbLoadData=true;
-               loadTData();
-       }
-}
-
-function errorImageLoading()
-{
-       gnLoadedImages++;
-       if(gnImages==gnLoadedImages)
-               loadDataAfter();
-       else
-               loadImage(gaImgs[gnLoadedImages]);      
-}
-
-function checkImageLoading()
-{
-       gnLoadedImages++;
-       if(gnImages==gnLoadedImages)
-               loadDataAfter();
-       else
-               loadImage(gaImgs[gnLoadedImages]);      
-}
-
-function window_unload()
-{
-       UnRegisterListener2(this,WH_MSG_PROJECTREADY);
-       UnRegisterListener2(this,WH_MSG_SYNCTOC);
-       UnRegisterListener2(this,WH_MSG_SHOWTOC);
-}
-
-function onSendMessage(oMsg)
-{
-       if(oMsg)
-       {
-               var nMsgId=oMsg.nMessageId;
-               if(nMsgId==WH_MSG_PROJECTREADY)
-               {
-                       loadToc();
-               }
-               else if(nMsgId==WH_MSG_SYNCTOC)
-               {
-                       if(gbReady)
-                       {
-                               syncWithPaths(oMsg.oParam);
-                       }
-               }
-               else if(nMsgId==WH_MSG_SHOWTOC)
-               {
-                       if(!gbNav6)
-                               document.body.focus();
-               }
-       }
-       return true;
-}
-
-if(window.gbWhUtil&&window.gbWhVer&&window.gbWhMsg&&window.gbWhProxy)
-{
-       RegisterListener2(this,WH_MSG_PROJECTREADY);
-       RegisterListener2(this,WH_MSG_SYNCTOC);
-       RegisterListener2(this,WH_MSG_SHOWTOC);
-       goFont=new whFont("Verdana","8pt","#000000","normal","normal","none");
-       goHFont=new whFont("Verdana","8pt","#007f00","normal","normal","underline");
-
-       window.onload=window_OnLoad;
-       window.onbeforeunload=window_BUnload;
-       window.onunload=window_unload;
-       gbWhTHost=true;
-}
-else
-       document.location.reload();
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whtopic.js b/doc/salome/gui/GEOM/whtopic.js
deleted file mode 100755 (executable)
index 52198a5..0000000
+++ /dev/null
@@ -1,725 +0,0 @@
-//     WebHelp 5.10.005
-var gsPPath="";
-var gaPaths=new Array();
-var gaAvenues=new Array();
-
-var goFrame=null;
-var gsStartPage="";
-var gsRelCurPagePath="";
-var gsSearchFormHref="";
-var gnTopicOnly=-1;
-var gnOutmostTopic=-1;
-
-var BTN_TEXT=1;
-var BTN_IMG=2;
-
-var goSync=null;
-
-var goShow=null;
-var goHide=null;
-
-var goPrev=null;
-var goNext=null;
-var gnForm=0;
-var goShowNav=null;
-var goHideNav=null;
-
-var goWebSearch=null;
-
-var gsBtnStyle="";
-var gaButtons=new Array();
-var gaTypes=new Array();
-var whtopic_foldUnload=null;
-var gbWhTopic=false;
-var gbCheckSync=false;
-var gbSyncEnabled=false;
-
-function setButtonFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration)
-{
-       var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration);
-       gsBtnStyle+=".whtbtn"+sType+"{"+getFontStyle(vFont)+"}";
-}
-
-function writeBtnStyle()
-{
-       if(gaButtons.length>0)
-       {
-               if(gsBtnStyle.length>0)
-               {
-                       var sStyle="<style type='text/css'>";
-                       sStyle+=gsBtnStyle+"</style>";
-                       document.write(sStyle);
-               }
-       }
-}
-
-function button(sText,nWidth,nHeight)
-{
-       this.sText=sText;
-       this.nWidth=nWidth;
-       this.nHeight=nHeight;
-       
-       this.aImgs=new Array();
-       var i=0;
-       while(button.arguments.length>i+3)
-       {
-               this.aImgs[i]=button.arguments[3+i];
-               i++;
-       }
-}
-
-//project info
-function setRelStartPage(sPath)
-{
-       if(gsPPath.length==0)
-       {
-               gsPPath=_getFullPath(_getPath(document.location.href),_getPath(sPath));
-               gsStartPage=_getFullPath(_getPath(document.location.href),sPath);
-               gsRelCurPagePath=_getRelativeFileName(gsStartPage,document.location.href);
-       }
-}
-
-function getImage(oImage,sType)
-{
-       var sImg="";
-       if(oImage&&oImage.aImgs&&(oImage.aImgs.length>0))
-       {
-               sImg+="<img alt=\""+sType+"\" src=\""+oImage.aImgs[0]+"\"";
-               if(oImage.nWidth>0)
-                       sImg+=" width="+oImage.nWidth;
-               if(oImage.nHeight>0)
-                       sImg+=" height="+oImage.nHeight;
-               sImg+=" border=0>";
-       }
-       return sImg;
-}
-
-function addTocInfo(sTocPath)
-{
-       gaPaths[gaPaths.length]=sTocPath;
-}
-
-function addAvenueInfo(sName,sPrev,sNext)
-{
-       gaAvenues[gaAvenues.length]=new avenueInfo(sName,sPrev,sNext);  
-}
-
-function addButton(sType,nStyle,sText,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sImg1,sImg2,sImg3)
-{
-       var sButton="";
-       var nBtn=gaButtons.length;
-       if(sType=="prev")
-       {
-               if(canGo(false))
-               {
-                       var sTitle="Previous Topic";
-                       goPrev=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnprev\" href=\"javascript:void(0);\" onclick=\"goAvenue(false);return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goPrev.sText;
-                       else
-                               sButton+=getImage(goPrev,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="next")
-       {
-               if(canGo(true))
-               {
-                       var sTitle="Next Topic";
-                       goNext=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnnext\" href=\"javascript:void(0);\" onclick=\"goAvenue(true);return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goNext.sText;
-                       else
-                               sButton+=getImage(goNext,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="show")
-       {
-               if(isTopicOnly()&&(!gbOpera6||gbOpera7))
-               {
-                       var sTitle="Show Navigation Component";
-                       goShow=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnshow\" href=\"javascript:void(0);\" onclick=\"show();return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goShow.sText;
-                       else
-                               sButton+=getImage(goShow,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="hide")
-       {
-               if(!isTopicOnly()&&!gbOpera6)
-               {
-                       var sTitle="Hide Navigation Component";
-                       goHide=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnhide\" href=\"javascript:void(0);\" onclick=\"hide();return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goHide.sText;
-                       else
-                               sButton+=getImage(goHide,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="shownav")
-       {
-               if(isShowHideEnable())
-               {
-                       var sTitle="Show Navigation Component";
-                       goShowNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnshownav\" href=\"javascript:void(0);\" onclick=\"showHidePane(true);return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goShowNav.sText;
-                       else
-                               sButton+=getImage(goShowNav,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="hidenav")
-       {
-               if(isShowHideEnable())
-               {
-                       var sTitle="Hide Navigation Component";
-                       goHideNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnhidenav\" href=\"javascript:void(0);\" onclick=\"showHidePane(false);return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goHideNav.sText;
-                       else
-                               sButton+=getImage(goHideNav,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="synctoc")
-       {
-               if(gaPaths.length>0)
-               {
-                       var sTitle="Sync TOC";
-                       goSync=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnsynctoc\" href=\"javascript:void(0);\" onclick=\"syncWithShow();return false;\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goSync.sText;
-                       else
-                               sButton+=getImage(goSync,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="websearch")
-       {
-               if(gsSearchFormHref.length>0)
-               {
-                       var sTitle="WebSearch";
-                       goWebSearch=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3);
-                       sButton="<a title=\""+sTitle+"\" class=\"whtbtnwebsearch\" href=\""+gsSearchFormHref+"\">";
-                       if(nStyle==BTN_TEXT)
-                               sButton+=goWebSearch.sText;
-                       else
-                               sButton+=getImage(goWebSearch,sTitle);
-                       sButton+="</a>";
-               }
-       }
-       else if(sType=="searchform")
-       {
-               gaButtons[nBtn]="NeedSearchForm";
-               gaTypes[nBtn]=sType;
-       }
-       if(sButton.length!=0)
-       {
-               if(nStyle==BTN_TEXT)
-                       sButton+="&nbsp;";
-               gaButtons[nBtn]="<td>"+sButton+"</td>";
-               gaTypes[nBtn]=sType;
-       }
-}
-
-function isSyncEnabled()
-{
-       if(!gbCheckSync)
-       {
-               var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null);
-               if(SendMessage(oMsg))
-               {
-                       gbSyncEnabled=oMsg.oParam;
-               }
-               gbCheckSync=true;
-       }
-       return gbSyncEnabled;
-}
-
-function isInPopup()
-{
-       return (window.name.indexOf("BSSCPopup")!=-1);
-}
-
-function getIntopicBar(sAlign)
-{
-       var sHTML="";
-       if(gaButtons.length>0)
-       {
-               sHTML+="<div align="+sAlign+">";
-
-               sHTML+="<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\"><tr>";
-               for(var i=0;i<gaButtons.length;i++)
-               {
-                       if(gaTypes[i]!="synctoc"||isSyncEnabled())
-                       {
-                               if(gaButtons[i]=="NeedSearchForm")
-                                       sHTML+=getSearchFormHTML();
-                               else
-                                       sHTML+=gaButtons[i];
-                       }
-               }
-               sHTML+="</tr></table>";
-
-               sHTML+="</div>";
-       }
-       return sHTML;
-}
-
-
-function writeIntopicBar(nAligns)
-{
-       if(isInPopup()) return;
-       if(gaButtons.length>0)
-       {
-               var sHTML="";
-               if(nAligns!=0)
-               {
-                       sHTML+="<table width=100%><tr>"
-                       if(nAligns&1)
-                               sHTML+="<td width=33%>"+getIntopicBar("left")+"</td>";
-                       if(nAligns&2)
-                               sHTML+="<td width=34%>"+getIntopicBar("center")+"</td>";
-                       if(nAligns&4)
-                               sHTML+="<td width=33%>"+getIntopicBar("right")+"</td>";
-                       sHTML+="</tr></table>";
-                       document.write(sHTML);
-               }
-       }
-}
-
-function sendAveInfoOut()
-{
-       if(!isInPopup())
-               setTimeout("sendAveInfo();",100);
-}
-
-function sendAveInfo()
-{
-       var oMsg=new whMessage(WH_MSG_AVENUEINFO,this,1,gaAvenues);
-       SendMessage(oMsg);
-}
-
-
-function onNext()
-{
-       var oMsg=new whMessage(WH_MSG_NEXT,this,1,null);
-       SendMessage(oMsg);
-}
-
-function onPrev()
-{
-       var oMsg=new whMessage(WH_MSG_PREV,this,1,null);
-       SendMessage(oMsg);
-}
-
-function createSyncInfo()
-{
-       var oParam=new Object();
-       if(gsPPath.length==0)
-               gsPPath=_getPath(document.location.href);
-       oParam.sPPath=gsPPath;
-       oParam.sTPath=document.location.href;
-       oParam.aPaths=gaPaths;
-       return oParam;
-}
-
-function syncWithShow()
-{
-       if(isTopicOnly())
-               show();
-       else
-       {
-               sync();
-               showTocPane();
-       }
-}
-
-function showTocPane()
-{
-       var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null);
-       SendMessage(oMsg);
-}
-
-function sendSyncInfo()
-{
-       if(!isInPopup())
-       {
-               var oParam=null;
-               if(gaPaths.length>0)
-               {
-                       oParam=createSyncInfo();
-               }
-               var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,oParam);
-               SendMessage(oMsg);
-       }
-}
-
-function sendInvalidSyncInfo()
-{
-       if(!isInPopup())
-       {
-               var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,null);
-               SendMessage(oMsg);
-       }
-}
-
-function enableWebSearch(bEnable)
-{
-       if(!isInPopup())
-       {
-               var oMsg=new whMessage(WH_MSG_ENABLEWEBSEARCH,this,1,bEnable);
-               SendMessage(oMsg);
-       }
-}
-
-function autoSync(nSync)
-{
-       if(nSync==0) return;
-       if(isInPopup()) return;
-       if(isOutMostTopic())
-               sync();
-}
-
-function isOutMostTopic()
-{
-       if(gnOutmostTopic==-1)
-       {
-               var oMessage=new whMessage(WH_MSG_ISINFRAMESET,this,1,null);
-               if(SendMessage(oMessage))
-                       gnOutmostTopic=0;
-               else
-                       gnOutmostTopic=1;
-       }
-       return (gnOutmostTopic==1);
-}
-
-function sync()
-{
-       if(gaPaths.length>0)
-       {
-               var oParam=createSyncInfo();
-               var oMessage=new whMessage(WH_MSG_SYNCTOC,this,1,oParam);
-               SendMessage(oMessage);
-       }
-}
-
-
-function avenueInfo(sName,sPrev,sNext)
-{
-       this.sName=sName;
-       this.sPrev=sPrev;
-       this.sNext=sNext;
-}
-
-function getCurrentAvenue()
-{
-       var oParam=new Object();
-       oParam.sAvenue=null;
-       var oMessage=new whMessage(WH_MSG_GETCURRENTAVENUE,this,1,oParam);
-       SendMessage(oMessage);
-       return oParam.sAvenue;
-}
-
-function unRegisterListener()
-{
-       sendInvalidSyncInfo();
-       enableWebSearch(false);
-       if(whtopic_foldUnload)
-               whtopic_foldUnload();
-}
-
-function onSendMessage(oMsg)
-{
-       var nMsgId=oMsg.nMessageId;
-       if(nMsgId==WH_MSG_GETAVIAVENUES)
-       {
-               oMsg.oParam.aAvenues=gaAvenues;
-               return false;
-       }
-       else if(nMsgId==WH_MSG_GETTOCPATHS)
-       {
-               if(isOutMostTopic())
-               {
-                       oMsg.oParam.oTocInfo=createSyncInfo();
-                       return false;           
-               }
-               else
-                       return true;
-       }
-       else if(nMsgId==WH_MSG_NEXT)
-       {
-               goAvenue(true);
-       }
-       else if(nMsgId==WH_MSG_PREV)
-       {
-               goAvenue(false);
-       }
-       else if(nMsgId==WH_MSG_WEBSEARCH)
-       {
-               websearch();
-       }
-       return true;
-}
-
-function goAvenue(bNext)
-{
-       var sTopic=null;
-       var sAvenue=getCurrentAvenue();
-       var nAvenue=-1;
-       if(sAvenue!=null&&sAvenue!="")
-       {
-               for(var i=0;i<gaAvenues.length;i++)
-               {
-                       if(gaAvenues[i].sName==sAvenue)
-                       {
-                               nAvenue=i;
-                               break;
-                       }
-               }
-               if(nAvenue!=-1)
-               {
-                       if(bNext)
-                               sTopic=gaAvenues[nAvenue].sNext;
-                       else
-                               sTopic=gaAvenues[nAvenue].sPrev;
-               }
-       }
-       else
-       {
-               for(var i=0;i<gaAvenues.length;i++)
-               {
-                       if(gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)
-                       {
-                               sTopic=gaAvenues[i].sNext;
-                               break;
-                       }
-                       else if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext)
-                       {
-                               sTopic=gaAvenues[i].sPrev;
-                               break;
-                       }
-               }
-       }
-       
-       if(sTopic!=null&&sTopic!="")
-       {
-               if(gsPPath!=null&&gsPPath!="")
-               {
-                       sFullTopicPath=_getFullPath(gsPPath,sTopic);
-                       document.location=sFullTopicPath;
-               }
-       }
-}
-
-function canGo(bNext)
-{
-       for(var i=0;i<gaAvenues.length;i++)
-       {
-               if((gaAvenues[i].sNext!=null&&gaAvenues[i].sNext.length>0&&bNext)||
-                       (gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext))
-                       return true;
-       }
-       return false;
-}
-
-function show()
-{
-       if(gsStartPage!="")
-               window.location=gsStartPage+"#"+gsRelCurPagePath;
-}
-
-function hide()
-{
-       if(goFrame!=null)
-       {
-               goFrame.location=window.location;
-       }
-}
-
-function isTopicOnly()
-{
-       if(gnTopicOnly==-1)
-       {
-               var oParam=new Object();
-               oParam.oFrame=null;
-               var oMsg=new whMessage(WH_MSG_GETSTARTFRAME,this,1,oParam);
-               if(SendMessage(oMsg))
-               {
-                       goFrame=oParam.oFrame;
-                       gnTopicOnly=0;
-               }
-               else
-                       gnTopicOnly=1;
-       }
-       if(gnTopicOnly==1)
-               return true;
-       else
-               return false;
-}
-
-function websearch()
-{
-       if(gbNav4)
-       {
-               if(document.ehelpform)
-                       document.ehelpform.submit();
-       }
-       else
-       {
-               if(window.ehelpform)
-                       window.ehelpform.submit();
-       }
-}
-
-function addSearchFormHref(sHref)
-{
-       gsSearchFormHref=sHref;
-       enableWebSearch(true);
-}
-
-function searchB(nForm)
-{
-       var sValue=eval("document.searchForm"+nForm+".searchString.value");
-       var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,sValue);
-       SendMessage(oMsg);
-}
-
-function getSearchFormHTML()
-{
-       var sHTML="";
-       gnForm++;
-       var sFormName="searchForm"+gnForm;
-       var sButton="<form name=\""+sFormName+"\" method=\"POST\" action=\"javascript:searchB("+gnForm+")\">"
-       sButton+="<input type=\"text\" name=\"searchString\" value=\"- Full Text search -\" size=\"20\"/>";
-       if(""=="text")
-       {
-               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\"></a>";
-       }
-       else if(""=="image")
-       {
-               sButton+="<a class=\"searchbtn\" href=\"javascript:void(0);\" onclick=\""+sFormName+".submit();return false;\">"
-               sButton+="<img src=\"\" border=0></a>";
-       }
-       sButton+="</form>";
-       sHTML="<td align=\"center\">"+sButton+"</td>";
-       return sHTML;
-}
-
-function showHidePane(bShow)
-{
-       var oMsg=null;
-       if(bShow)
-               oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);
-       else
-               oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null);
-       SendMessage(oMsg);
-}
-
-function isShowHideEnable()
-{
-       if(gbIE4)
-               return true;
-       else
-               return false;
-}
-
-
-function PickupDialog_Invoke()
-{
-       if(!gbIE4||gbMac)
-       {
-               if(typeof(_PopupMenu_Invoke)=="function")
-                       return _PopupMenu_Invoke(PickupDialog_Invoke.arguments);
-       }
-       else
-       {
-               if(PickupDialog_Invoke.arguments.length>2)
-               {
-                       var sPickup="whskin_pickup.htm";
-                       var sPickupPath=gsPPath+sPickup;
-                       if(gbIE4)
-                       {
-                               var sFrame=PickupDialog_Invoke.arguments[1];
-                               var aTopics=new Array();
-                               for(var i=2;i<PickupDialog_Invoke.arguments.length;i+=2)
-                               {
-                                       var j=aTopics.length;
-                                       aTopics[j]=new Object();
-                                       aTopics[j].m_sName=PickupDialog_Invoke.arguments[i];
-                                       aTopics[j].m_sURL=PickupDialog_Invoke.arguments[i+1];
-                               }
-
-                               if(aTopics.length>1)
-                               {
-                                       var nWidth=300;
-                                       var nHeight=180;
-                                       var     nScreenWidth=screen.width;
-                                       var     nScreenHeight=screen.height;
-                                       var nLeft=(nScreenWidth-nWidth)/2;
-                                       var nTop=(nScreenHeight-nHeight)/2;
-                                       if(gbIE4)
-                                       {
-                                               var vRet=window.showModalDialog(sPickupPath,aTopics,"dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:yes;status:no;scroll:no;help:no;center:yes;");
-                                               if(vRet)
-                                               {
-                                                       var sURL=vRet.m_url;
-                                                       if(sFrame)
-                                                               window.open(sURL,sFrame);
-                                                       else
-                                                               window.open(sURL,"_self");
-                                               }
-                                       }
-                               }
-                               else if(aTopics.length==1)
-                               {
-                                       var sURL=aTopics[0].m_sURL
-                                       if(sFrame)
-                                               window.open(sURL,sFrame);
-                                       else
-                                               window.open(sURL,"_self");
-                               }
-                       }
-               }
-       }
-}
-
-if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
-{
-       RegisterListener("bsscright",WH_MSG_GETAVIAVENUES);
-       RegisterListener("bsscright",WH_MSG_GETTOCPATHS);
-       RegisterListener("bsscright",WH_MSG_NEXT);
-       RegisterListener("bsscright",WH_MSG_PREV);
-       RegisterListener("bsscright",WH_MSG_WEBSEARCH);
-       if(gbMac&&gbIE4)
-       {
-               if(typeof(window.onunload)!="unknown")
-                       if(window.onunload.toString!=unRegisterListener.toString)
-                               whtopic_foldUnload=window.onunload;
-       }
-       else
-       {
-               if(window.onunload)
-                       if(window.onunload.toString!=unRegisterListener.toString)
-                               whtopic_foldUnload=window.onunload;
-       }
-       window.onunload=unRegisterListener;
-       setButtonFont("show","","","","","","");
-setButtonFont("hide","","","","","","");
-
-       gbWhTopic=true;
-}
-else
-       document.location.reload();
diff --git a/doc/salome/gui/GEOM/whutils.js b/doc/salome/gui/GEOM/whutils.js
deleted file mode 100755 (executable)
index 5026b24..0000000
+++ /dev/null
@@ -1,527 +0,0 @@
-//     WebHelp 5.10.004
-var gsFileName="";
-var gsDivName="";
-var xmlDoc=null;
-var sdocPath=null;
-var gsInsertBeforeEndHTML="";
-var sReplaceStringsSrc=new Array();
-var gsDivName="dataDiv";
-var gnLoadDivNum=0;
-sReplaceStringsSrc[0]="&amp;";
-sReplaceStringsSrc[1]="&gt;";
-sReplaceStringsSrc[2]="&lt;";
-sReplaceStringsSrc[3]="&quot;";
-sReplaceStringsSrc[4]=String.fromCharCode(8364);
-sReplaceStringsSrc[5]="&nbsp;";
-
-var sReplaceStringsDst=new Array();
-sReplaceStringsDst[0]="&";
-sReplaceStringsDst[1]=">";
-sReplaceStringsDst[2]="<";
-sReplaceStringsDst[3]="\"";
-sReplaceStringsDst[4]=String.fromCharCode(128);
-sReplaceStringsDst[5]=" ";
-var goHighLighted=null;
-
-function _getRelativePath(strParentPath,strCurrentPath)
-{
-       if(_isAbsPath(strCurrentPath)) return _getPath(strCurrentPath);
-       strParentPath=_replaceSlash(strParentPath);
-       strParentPath=_getPath(strParentPath);
-       strCurrentPath=_replaceSlash(strCurrentPath);
-       strCurrentPath=_getPath(strCurrentPath);
-       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)
-       {
-               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))
-                       break;
-       }
-       
-       strParentPath=strParentPath.substring(i);
-       strCurrentPath=strCurrentPath.substring(i);     
-       
-       var nPathPos=0;
-       while(nPathPos!=-1)
-       {
-               nPathPos=strParentPath.indexOf("/");
-               if(nPathPos!=-1)
-               {
-                       strParentPath=strParentPath.substring(nPathPos+1);
-                       strCurrentPath="../"+strCurrentPath;
-               }
-       }
-       return strCurrentPath;
-}
-
-function _getRelativeFileName(strParentPath,strCurrentPath)
-{
-       strParentPath=_replaceSlash(strParentPath);
-       strParentPath=_getPath(strParentPath);
-       strCurrentPath=_replaceSlash(strCurrentPath);
-       for(var i=0;i<strParentPath.length&&i<strCurrentPath.length;i++)
-       {
-               if(strParentPath.charAt(i)!=strCurrentPath.charAt(i))
-                       break;
-       }
-       
-       strParentPath=strParentPath.substring(i);
-       strCurrentPath=strCurrentPath.substring(i);     
-       
-       var nPathPos=0;
-       while(nPathPos!=-1)
-       {
-               nPathPos=strParentPath.indexOf("/");
-               if(nPathPos!=-1)
-               {
-                       strParentPath=strParentPath.substring(nPathPos+1);
-                       strCurrentPath="../"+strCurrentPath;
-               }
-       }
-       return strCurrentPath;
-}
-
-function _isAbsPathToHost(sPath)
-{
-       return (sPath.indexOf("/")==0);
-}
-
-function _getHost(sPath)
-{
-       var nPos=sPath.indexOf("//");
-       if(nPos>0)
-       {
-               var nPosx=sPath.indexOf("/",nPos+2);
-               if(nPosx>0)
-                       return sPath.substring(0,nPosx);
-               else
-                       return sPath;
-       }
-       return sPath;
-}
-
-function _getFullPath(sPath,sRelPath)
-{
-       if(_isAbsPath(sRelPath))
-               return sRelPath;
-       else if(_isAbsPathToHost(sRelPath))
-               return _getHost(sPath)+sRelPath;
-       else
-       {
-               var sFullPath=sPath;
-               var nPathPos=0;
-               while(nPathPos!=-1)
-               {
-                       var nPathPos=sRelPath.indexOf("../");
-                       if(nPathPos!=-1)
-                       {
-                               sRelPath=sRelPath.substring(nPathPos+3);
-                               sFullPath=sFullPath.substring(0,sFullPath.length-1);
-                               var nPos2=sFullPath.lastIndexOf("/");
-                               if(nPos2!=-1)
-                                       sFullPath=sFullPath.substring(0,nPos2+1);
-                               else
-                                       break;
-                       }
-               }
-               sFullPath+=sRelPath;
-               return sFullPath;
-       }       
-}
-
-function _isAbsPath(strPath)
-{
-       var strUpper=strPath.toUpperCase();
-       return (strUpper.indexOf(":")!=-1||strUpper.indexOf("\\\\")==0);
-}
-
-function _replaceSlash(strURL)
-{      
-       var re=new RegExp("\\\\","g");
-       var strReplacedURL=strURL.replace(re,"/");
-       return strReplacedURL;
-}
-
-function _getPath(strURL)
-{
-       pathpos=strURL.lastIndexOf("/");
-       if(pathpos>0)
-               return strURL.substring(0,pathpos+1);
-       else
-               return "";
-}
-
-function removeItemFromArray(oArray,i)
-{
-       if(oArray.length&&i>=0&&i<oArray.length)
-       {
-               var len=oArray.length;
-               for(var s=i;s<len-1;s++)
-                       oArray[s]=oArray[s+1];
-               oArray.length=len-1;
-       }
-}
-
-function insertItemIntoArray(oArray,i,obj)
-{
-       if(oArray.length&&i>=0&&i<=oArray.length)
-       {
-               var len=oArray.length;
-               for(var s=len;s>i;s--)
-                       oArray[s]=oArray[s-1];
-               oArray[i]=obj;          
-       }
-}
-
-function loadData(sFileName)
-{
-       var i=gnLoadDivNum;
-       var sName=gsDivName+gnLoadDivNum++;
-       loadData_2(sFileName,sName);
-}
-
-function loadData_2(sFileName,sDivName)
-{
-       if(!getElement(sDivName))
-       {
-               if(!insertDataDiv(sDivName))
-               {
-                       gsFileName=sFileName;
-                       gsDivName=sDivName;
-                       return;
-               }
-       }
-       var sHTML="";
-       if(gbMac)
-               sHTML+="<iframe src=\""+sFileName+"\"></iframe>";
-       else
-               sHTML+="<iframe style=\"visibility:hidden;width:0;height:0\" src=\""+sFileName+"\"></iframe>";
-       
-       var oDivCon=getElement(sDivName);
-       if(oDivCon)
-       {
-               if(gbNav6)
-               {
-                       if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0)
-                       {
-                               oDivCon.getElementsByTagName("iFrame")[0].src=sFileName;
-                       }
-                       else
-                               oDivCon.innerHTML=sHTML;
-               }
-               else
-                       oDivCon.innerHTML=sHTML;
-       }
-}
-
-function loadDataXML(sFileName)
-{
-       var sCurrentDocPath=_getPath(document.location.href);
-       sdocPath=_getFullPath(sCurrentDocPath,sFileName);
-       if(gbIE5)
-       {
-               xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
-               xmlDoc.async=true;
-               xmlDoc.onreadystatechange=checkState;
-               if(document.body!=null)
-                       xmlDoc.load(sdocPath);
-       }
-       else if(gbNav6)
-       {
-               xmlDoc=document.implementation.createDocument("","",null);
-               xmlDoc.addEventListener("load",initializeData,false);
-               xmlDoc.load(sdocPath,"text/xml");
-       }
-}
-
-function initializeData()
-{
-       if(xmlDoc!=null)
-               putDataXML(xmlDoc,sdocPath);
-}
-
-function checkState()
-{
-       if(xmlDoc!=null)
-       {
-               var state=xmlDoc.readyState;
-               if(state==4)
-               {
-                       var err=xmlDoc.parseError;
-                       if(err.errorCode==0)
-                               putDataXML(xmlDoc,sdocPath);
-                       else
-                               onLoadXMLError();
-               }
-       }
-}
-
-function insertDataDiv(sName)
-{
-       var sHTML="";
-       if(gbMac)
-               sHTML+="<div id="+sName+" style=\"display:none;\"></div>";
-       else
-               sHTML+="<div id="+sName+" style=\"visibility:hidden\"></div>";
-       if((gbIE5||gbNav6)&&document.body)
-               document.body.insertAdjacentHTML("beforeEnd",sHTML);
-       else
-       {
-               gsInsertBeforeEndHTML=sHTML;
-               setTimeout("insertWhenBodyReady();",100);
-               return false;
-       }
-       return true;
-}
-
-function insertWhenBodyReady()
-{
-       if(gsInsertBeforeEndHTML=="") return;
-       if(document.body)
-       {
-               document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML);
-               gsInsertBeforeEndHTML="";
-               loadData_2(gsFileName,gsDivName);
-       }
-       else
-       {
-               setTimeout("insertWhenBodyReady();",100);
-       }
-}
-
-function window_BUnload()
-{
-       for(var i=0;i<gnLoadDivNum;i++)
-       {
-               var oDivCon=getElement(gsDivName+i);
-               if(oDivCon)
-                       oDivCon.innerHTML="";
-       }
-}
-
-function removeThis(obj)
-{
-       if(obj.parentNode)
-               obj.parentNode.removeChild(obj);
-       else
-               obj.outerHTML="";
-}
-
-function getParentNode(obj)
-{
-       if(obj.parentNode)
-               return obj.parentNode;
-       else if(obj.parentElement)
-               return obj.parentElement;
-       return null;
-}
-
-function getElement(sID)
-{
-       if(document.getElementById)
-               return document.getElementById(sID);
-       else if(document.all)
-               return document.all(sID);
-       return null;
-}
-
-function getChildrenByTag(obj,sTagName)
-{
-       if(obj.getElementsByTagName)
-       {
-               var aChildren=new Array();
-               var aElements=getElementsByTag(obj,sTagName);
-               if(aElements!=null)
-               {
-                       for(var i=0;i<aElements.length;i++)
-                       {
-                               if(aElements[i].parentNode==obj)
-                                       aChildren[aChildren.length]=aElements[i];
-                       }
-                       return aChildren;
-               }
-               else
-                       return new Array();
-       }
-       else if(obj.children)
-               return obj.children.tags(sTagName);
-}
-
-function getElementsByTag(obj,sTagName)
-{
-       if(obj.getElementsByTagName)
-               return obj.getElementsByTagName(sTagName);
-       else if(obj.all)
-               return obj.all.tags(sTagName);
-       return null;
-}
-
-function _htmlToText(sHTML)
-{
-       if(sHTML==null) return null;
-       var sText=sHTML;
-       for(var i=0;i<sReplaceStringsSrc.length;i++)
-       {
-               var re=new RegExp(sReplaceStringsSrc[i],"g");
-               sText=sText.replace(re,sReplaceStringsDst[i]);
-       }       
-       return sText;
-}
-
-function _textToHtml_nonbsp(sText)
-{
-       if(sText==null) return null;
-       var sHTML=sText;
-       for(var i=0;i<sReplaceStringsSrc.length-1;i++)
-       {
-               var re=new RegExp(sReplaceStringsDst[i],"g");
-               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);
-       }       
-       return sHTML;
-}
-
-function _textToHtml(sText)
-{
-       if(sText==null) return null;
-       var sHTML=sText;
-       for(var i=0;i<sReplaceStringsSrc.length;i++)
-       {
-               var re=new RegExp(sReplaceStringsDst[i],"g");
-               sHTML=sHTML.replace(re,sReplaceStringsSrc[i]);
-       }       
-       return sHTML;
-}
-
-
-function getInnerText(obj)
-{
-       var renbsp2sp=new RegExp("\xa0","g");
-       if(obj.innerText)
-       {
-               var sText=obj.innerText;
-               sText=sText.replace(renbsp2sp," ");
-               return sText;
-       }
-       else
-       {
-               if(obj.nodeValue)
-               {
-                       var sValue=obj.nodeValue;
-                       sValue=sValue.replace(renbsp2sp," ");
-                       return sValue;
-               }
-               else
-               {
-                       var sText="";
-                       var oChild=obj.firstChild;
-                       while(oChild!=null)
-                       {
-                               sText+=getInnerText(oChild);
-                               oChild=oChild.nextSibling;
-                       }
-                       return sText;
-               }
-       }
-               
-}
-
-function HighLightElement(obj,sHighLightColor,sNormalColor)
-{
-       if(obj!=null)
-       {
-               resetHighLight(sNormalColor);
-               if (obj.style)
-                       obj.style.backgroundColor=sHighLightColor;
-               goHighLighted=obj;
-       }
-}
-
-function resetHighLight(sNormalColor)
-{
-       if(goHighLighted!=null)
-       {
-               if (goHighLighted.style)
-                       goHighLighted.style.backgroundColor=sNormalColor;
-               goHighLighted=null;
-       }
-}
-
-function whFont(sName,sSize,sColor,sStyle,sWeight,sDecoration)
-{
-       this.sName=sName;
-       this.sSize=sSize;
-       this.sColor=sColor;
-       this.sStyle=sStyle;
-       this.sWeight=sWeight;
-       this.sDecoration=sDecoration;
-}
-
-function getFontStyle(oFont)
-{
-       var sStyle="";
-       if(oFont)
-       {
-               sStyle+="font-family:"+oFont.sName+";";
-               if(gbMac)
-               {
-                       var nSize=parseInt(oFont.sSize);
-                       if(gbIE5)
-                               nSize+=2;
-                       else
-                               nSize+=4;
-                       sStyle+="font-size:"+nSize+"pt;";
-               }
-               else
-                       sStyle+="font-size:"+oFont.sSize+";";
-                       
-               sStyle+="font-style:"+oFont.sStyle+";";
-               sStyle+="font-weight:"+oFont.sWeight+";";
-               sStyle+="text-decoration:"+oFont.sDecoration+";";
-               sStyle+="color:"+oFont.sColor+";";
-       }
-       return sStyle;
-}
-
-function _browserStringToText(sBStr)
-{
-       var sText="";
-       // change %xxx back to the real char.
-       var nPos=sBStr.indexOf('%');
-       while(nPos!=-1)
-       {
-               sText+=sBStr.substring(0,nPos);
-               sBStr=sBStr.substring(nPos+1);
-               var sNum="";
-               var i=0;
-               while(sBStr.charAt(i)>='0'&&sBStr.charAt(i)<='9')
-               {
-                       sNum+=sBStr.charAt(i++);        
-               }
-               if(sNum!=""){
-                       var nNum=parseInt(sNum,16);
-                       sText+=String.fromCharCode(nNum);
-                       sBStr=sBStr.substring(i);
-               }
-               nPos=sBStr.indexOf('%');
-       }
-       sText+=sBStr;
-       return sText;
-}
-
-function excapeSingleQuotandSlash(str)
-{
-       if(str==null) return null;
-       var nPos=0;
-       var sRes="";
-       var nPosNew=str.indexOf("\\",nPos);
-       while(nPosNew!=-1){
-               sRes+=str.substring(nPos,nPosNew+1)+"\\";
-               nPos=nPosNew+1;
-               nPosNew=str.indexOf("\\",nPos);
-       }
-       if(nPos<str.length)
-               sRes+=str.substring(nPos);
-       var re=new RegExp("'","g");
-       sRes=sRes.replace(re,"\\'");
-       return sRes;
-}
-
-var gbWhUtil=true;
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/whver.js b/doc/salome/gui/GEOM/whver.js
deleted file mode 100755 (executable)
index cd61895..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-//     WebHelp 5.10.006
-var gbNav=false;
-var gbNav6=false;
-var gbNav61=false;
-var gbNav7=false;
-var gbNav4=false;
-var gbIE4=false;
-var gbIE=false;
-var gbIE5=false;
-var gbIE55=false;
-var gbOpera6=false;
-var gbOpera7=false;
-var gbKonqueror3=false;
-
-var gAgent=navigator.userAgent.toLowerCase();
-var gbMac=(gAgent.indexOf("mac")!=-1);
-var gbSunOS=(gAgent.indexOf("sunos")!=-1);
-var gbOpera=(gAgent.indexOf("opera")!=-1);
-var gbKonqueror=(gAgent.indexOf("konqueror")!= -1);
-var gbSafari=(gAgent.indexOf("safari")!= -1);
-var gbWindows=((gAgent.indexOf('win')!= -1)||(gAgent.indexOf('16bit')!= -1));
-var gbMozilla=((gAgent.indexOf('gecko')!=-1) && (gAgent.indexOf('netscape')==-1));
-
-
-var gVersion=navigator.appVersion.toLowerCase();
-
-var gnVerMajor=parseInt(gVersion);
-var gnVerMinor=parseFloat(gVersion);
-
-if(!gbOpera&&!gbKonqueror&&!gbSafari) // opera can mimic IE or Netscape by settings.
-{
-       gbIE=(navigator.appName.indexOf("Microsoft")!=-1);
-       gbNav=(gAgent.indexOf('mozilla')!=-1) && ((gAgent.indexOf('spoofer')==-1) && (gAgent.indexOf('compatible')==-1));
-       if(gnVerMajor>=4)
-       {
-               if(navigator.appName=="Netscape")
-               {
-                       gbNav4=true;
-                       if(gnVerMajor>=5)
-                               gbNav6=true;
-               }
-               gbIE4=(navigator.appName.indexOf("Microsoft")!=-1);
-       }
-       if(gbNav6)
-       {
-               var nPos=gAgent.indexOf("gecko");
-               if(nPos!=-1)
-               {
-                       var nPos2=gAgent.indexOf("/", nPos);
-                       if(nPos2!=-1)
-                       {
-                               var nVersion=parseFloat(gAgent.substring(nPos2+1));
-                               if(nVersion>=20010726)
-                               {
-                                       gbNav61=true;
-                                       if (nVersion>=20020823)
-                                               gbNav7=true;
-                               }
-                       }
-               }
-       }else if(gbIE4)
-       {
-               var nPos=gAgent.indexOf("msie");
-               if(nPos!=-1)
-               {
-                       var nVersion=parseFloat(gAgent.substring(nPos+5));
-                       if(nVersion>=5)
-                       {
-                               gbIE5=true;
-                               if(nVersion>=5.5)
-                                       gbIE55=true;
-                       }
-               }
-       }
-}
-else if (gbOpera)
-{
-       var nPos = gAgent.indexOf("opera");
-       if(nPos!=-1)
-       {
-               var nVersion=parseFloat(gAgent.substring(nPos+6));
-               if(nVersion>=6)
-               {
-                       gbOpera6=true;
-                       if(nVersion>=7)
-                               gbOpera7=true;
-               }
-       }
-}
-else if (gbKonqueror)
-{
-       var nPos = gAgent.indexOf("konqueror");
-       if(nPos!=-1)
-       {
-               var nVersion = parseFloat(gAgent.substring(nPos+10));
-               if (nVersion >= 3)
-               {
-                       gbKonqueror3=true;
-               }
-       }
-}
-
-var gbWhVer=true;
\ No newline at end of file
diff --git a/doc/salome/gui/GEOM/wire.htm b/doc/salome/gui/GEOM/wire.htm
deleted file mode 100755 (executable)
index ba0ef65..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Wire</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:312px; height:289px; float:none; border-style:none; }
-img_whs5 { border:none; width:208px; height:197px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Advanced Geometrical Objects\nWire");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image15.gif" width="20px" height="20px" border="0" class="img_whs1"> &nbsp;</font></span>Wire</h1>
-
-<p class="whs2"><b style="font-weight: normal;">T</b>o create 
- a <span style="font-weight: bold;"><B>Wire</B></span> in the Main Menu select 
- <span style="font-weight: bold;"><B>New Entity - &gt; Build - &gt; Wire</B></span></p>
-
-<p>&nbsp;</p>
-
-<p>You can create a <span style="font-weight: bold;"><B>Wire</B></span> from several 
- connected edges and wires by selecting them in the object browser or in 
- the viewer holding Shift button. &nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">&nbsp;will 
- be a</span></b> GEOM_Object (WIRE).</p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command :</b><i> 
- </i><span style="font-style: italic;"><I>geompy.MakeWire(ListOfShape).</I></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + List of connected wires or edges..</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Dialog Box:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/neo-obj3.png" x-maintain-ratio="TRUE" width="312px" height="289px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Example:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/wiresn.png" x-maintain-ratio="TRUE" width="208px" height="197px" border="0" class="img_whs5"></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs2">Our TUI Scripts provide you with useful examples 
- of creation of <a href="geometrical_objects.htm#Creation">Advanced Geometric 
- Objects</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/wireframe_and_shading.htm b/doc/salome/gui/GEOM/wireframe_and_shading.htm
deleted file mode 100755 (executable)
index e5716ce..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Wireframe and Shading</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-p.whs1 { margin-left:0px; }
-p.whs2 { font-family:'Times New Roman' , serif; font-size:12pt; }
-p.whs3 { font-family:'Times New Roman' , serif; font-size:12pt; font-style:italic; }
-p.whs4 { font-size:12pt; margin-left:40px; }
-img_whs5 { border:none; width:400px; height:420px; float:none; border-style:none; }
-img_whs6 { border:none; float:none; width:400px; height:420px; border-style:none; }
-p.whs7 { font-size:12pt; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs1 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nViewing geometrical objects\nDisplay Mode");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Display Mode</h1>
-
-<p class=TODO
-       style="font-family: 'Times New Roman', serif;
-                       font-size: 12pt;
-                       font-style: normal;">This option is relevant for viewing 3D 
- objects. <span style="font-weight: bold;"><B>Wireframe</B></span> mode means 
- that you can see only &nbsp;edges 
- of the object, while its shells remain transparent. <span style="font-weight: bold;"><B>Shading</B></span> 
- mode means that the shells are filled with color.</p>
-
-<p class=TODO
-       style="font-family: 'Times New Roman', serif;
-                       font-size: 12pt;
-                       font-style: normal;">&nbsp;</p>
-
-<p class="whs1">To change the display mode right-click on 
- this geometrical object in the viewer and from the pop-up menu select 
- <span style="font-weight: bold;"><B>Display mode --&gt; Wireframe</B></span> 
- or<span style="font-weight: bold;"><B> Shading</B></span>.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI 
- Command:</b><i> gg.setDisplayMode(ID, Short)</i></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Examples:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3">Wireframe &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
-
-<p class="whs4"><img src="pics/disp_mode1sn.png" x-maintain-ratio="TRUE" width="400px" height="420px" border="0" class="img_whs5"> &nbsp;</p>
-
-<p class="whs3">Shading</p>
-
-<p class="whs4"><img src="pics/disp_mode2sn.png" x-maintain-ratio="TRUE" width="400px" height="420px" border="0" class="img_whs6"></p>
-
-<p class="whs4">&nbsp;&nbsp;</p>
-
-<p class="whs7">Our TUI Scripts provide you with useful examples 
- of <a href="changing_display_parameters.htm#bookmark">Changing Display 
- Parameters</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/working_plane.htm b/doc/salome/gui/GEOM/working_plane.htm
deleted file mode 100755 (executable)
index aadfa25..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Working Plane</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { width:20px; height:20px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; margin-left:40px; }
-img_whs4 { border:none; width:400px; height:277px; float:none; border-style:none; }
-img_whs5 { border:none; width:400px; height:312px; float:none; border-style:none; }
-img_whs6 { border:none; width:400px; height:320px; float:none; border-style:none; }
-table.whs7 { x-cell-content-align:top; width:39.231%; border-spacing:0px; }
-col.whs8 { width:52.696%; }
-col.whs9 { width:47.304%; }
-tr.whs10 { x-cell-content-align:top; }
-td.whs11 { width:52.696%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }
-p.whs12 { font-style:italic; }
-td.whs13 { width:47.304%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
-td.whs14 { width:52.696%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; }
-img_whs15 { border:none; width:176px; height:217px; border-style:none; }
-td.whs16 { width:47.304%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; }
-img_whs17 { border:none; width:191px; height:217px; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nCreating Basic Geometric Objects\nWorking Plane");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image34.gif" width="20px" height="20px" border="0" class="img_whs1"></font></span></b>Working Plane</h1>
-
-<p>Definition of a <span style="font-weight: bold;"><B>Working Plane</B></span> 
- is necessary for work with <span style="font-weight: bold;"><B><a href="sketcher.htm">Sketcher</a></B></span>. 
- </p>
-
-<p>&nbsp;</p>
-
-<p>To create a <span style="font-weight: bold;"><B>Working Plane</B></span> in 
- the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>New 
- Entity - &gt; Basic - &gt; Working Plane</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">There is a number of algorithms to set the 
- <span style="font-weight: bold;"><B>Working Plane</B></span> and the Camera Position.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Firstly, you can select a <span style="font-weight: bold;"><B>Plane</B></span>,<span 
- style="font-weight: bold;"> <B></B></span>a <span style="font-weight: bold;"><B>Planar 
- Face</B></span> or a <span style="font-weight: bold;"><B>Local Coordinate System</B></span> 
- to be your <span style="font-weight: bold;"><B>Working Plane</B></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + 1 selection (face or planar face), </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/workplane4.png" x-maintain-ratio="TRUE" width="400px" height="277px" border="0" class="img_whs4"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Secondly, you can define a <span style="font-weight: bold;"><B>Working 
- Plane</B></span> by two <span style="font-weight: bold;"><B>Vectors</B></span></p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- Name + &nbsp;2 
- vectors.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/workplane5.png" x-maintain-ratio="TRUE" width="400px" height="312px" border="0" class="img_whs5"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">Finally, you can select one of three basic 
- projections of XYZ coordinate system to be your <span style="font-weight: bold;"><B>Working 
- Plane</B></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><img src="pics/workplane6.png" x-maintain-ratio="TRUE" width="400px" height="320px" border="0" class="img_whs6"></p>
-
-<p>&nbsp;</p>
-
-<p><span style="font-weight: bold;"><B>Reverse the plane normal</B></span> checkbox 
- allows changing the direction of the working plane.</p>
-
-<p>&nbsp;</p>
-
-<p><span style="font-weight: bold;"><B>Example:</B></span> Working plane on the 
- upper face of a box. &nbsp;</p>
-
-<p>&nbsp;</p>
-
-<table x-use-null-cells cellspacing="0" width="39.231%" class="whs7">
-<col class="whs8">
-<col class="whs9">
-
-<tr valign="top" class="whs10">
-<td width="52.696%" class="whs11">
-<p class="whs12">Normal Direction</td>
-<td width="47.304%" class="whs13">
-<p class="whs12">Reversed Direction</td></tr>
-
-<tr valign="top" class="whs10">
-<td width="52.696%" class="whs14">
-<p><img src="image36.gif" width="176px" height="217px" border="0" class="img_whs15"></td>
-<td width="47.304%" class="whs16">
-<p><img src="image47.gif" width="191px" height="217px" border="0" class="img_whs17"></td></tr>
-</table>
-
-<p>&nbsp;</p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
diff --git a/doc/salome/gui/GEOM/working_with_groups.htm b/doc/salome/gui/GEOM/working_with_groups.htm
deleted file mode 100755 (executable)
index 59f91cc..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
-
-<html>
-
-<head>
-<title>Working with groups</title>
-<meta http-equiv="content-type" content="text/html; charset=windows-1252">
-<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
-<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
-<!--
-if (navigator.appName !="Netscape")
-{   document.write("<link rel='stylesheet' href='default.css'>");}
-//-->
-</script>
-<style type="text/css">
-<!--
-img_whs1 { border:none; width:24px; height:22px; border-style:none; }
-p.whs2 { font-size:12pt; }
-p.whs3 { font-size:12pt; font-weight:bold; margin-left:40px; }
-img_whs4 { border:none; border-style:none; width:312px; height:379px; float:none; }
-p.whs5 { font-size:12pt; margin-left:0px; font-weight:normal; }
-ul.whs6 { list-style:disc; }
-img_whs7 { border:none; width:50px; height:31px; border-style:none; }
-p.whs8 { font-size:12pt; margin-left:48px; }
-p.whs9 { font-size:12pt; margin-left:0px; }
-p.whs10 { font-size:12pt; font-weight:bold; }
-p.whs11 { font-size:12pt; margin-left:40px; }
-img_whs12 { border:none; width:250px; height:307px; border-style:none; }
-img_whs13 { border:none; width:22px; height:22px; border-style:none; }
-p.whs14 { font-size:12pt; margin-left:40px; font-weight:bold; }
-img_whs15 { border:none; width:312px; height:379px; float:none; border-style:none; }
--->
-</style><script type="text/javascript" language="JavaScript">
-<!--
-if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
-{
-  var strNSS = "<style type='text/css'>";
-  strNSS += "p.whs5 {margin-left:1pt; }";
-  strNSS += "p.whs9 {margin-left:1pt; }";
-  strNSS +="</style>";
-  document.write(strNSS);
-}
-//-->
-</script>
-<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
-<!--
-function reDo() {
-  if (innerWidth != origWidth || innerHeight != origHeight)
-     location.reload();
-}
-if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
-       origWidth = innerWidth;
-       origHeight = innerHeight;
-       onresize = reDo;
-}
-onerror = null; 
-//-->
-</script>
-<style type="text/css">
-<!--
-div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
-p.WebHelpNavBar { text-align:right; }
--->
-</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
-<script type="text/javascript" language="javascript" src="whver.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
-<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.gbWhTopic)
-{
-       if (window.setRelStartPage)
-       {
-       addTocInfo("Geometry module\nCreating geometrical objects\nWorking with groups");
-addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
-addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
-
-       }
-
-
-       if (window.setRelStartPage)
-       {
-       setRelStartPage("index.htm");
-
-               autoSync(1);
-               sendSyncInfo();
-               sendAveInfoOut();
-       }
-
-}
-else
-       if (window.gbIE4)
-               document.location.reload();
-//-->
-</script>
-</head>
-<body><script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(4);
-//-->
-</script>
-<h1>Working with groups</h1>
-
-<p>Creation and editing groups of subshapes of a geometrical object makes 
- handling subshapes much easier. This functionality is available in OCC 
- viewer only.</p>
-
-<p>&nbsp;</p>
-
-<p><img src="image56.gif" width="24px" height="22px" border="0" class="img_whs1"> <span style="font-weight: bold; font-size: 14pt;"><font size=4 style="font-size:14pt;"><B>Create 
- a group</B></font></span></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2">To create a group of subshapes of a geometrical 
- object in the main menu select <span style="font-weight: bold;"><B>New entity 
- &gt; Group &gt; Create</B></span>. </p>
-
-<p class="whs2">The following menu will appear. </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs3"><b style="font-weight: bold;"><img src="pics/geomcreategroup.png" x-maintain-ratio="TRUE" width="312px" height="379px" border="0" class="img_whs4"></b></p>
-
-<p class="whs3">&nbsp;</p>
-
-<p class="whs5">In this Menu: </p>
-
-<p class="whs5">&nbsp;</p>
-
-<ul type="disc" class="whs6">
-       
-       <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Shape 
- Type</B></span> radio button define the type of elements for the group (points, 
- lines, planes or shapes). </p></li>
-       
-       <li class=kadov-p><p class="whs5"><span style="font-weight: bold;"><B>Group 
- Name</B></span> - here you can enter the name of the group, by default, it 
- is Group_n.</p></li>
-       
-       <li class=kadov-p><p class="whs5">Then, using the <img src="image28.gif" width="50px" height="31px" border="0" class="img_whs7"> button, select the <span style="font-weight: bold;"><B>Main 
- Shape</B></span> (a geometrical object on which the group will be created). 
- You can select the elements of your group in two ways:</p></li>
-       
-       <li class=kadov-p><p class="whs8">Clicking 
- <span style="font-weight: bold;"><B>Select Sub-Shapes</B></span> button you can 
- select them manually in the 3D Viewer, and add to the group by clicking 
- the <span style="font-weight: bold;"><B>Add</B></span> 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 <span style="font-weight: bold;"><B>Remove</B></span> 
- button. &nbsp;</p></li>
-       
-       <li class=kadov-p><p class="whs8">Clicking 
- <span style="font-weight: bold;"><B>Select All</B></span> 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 <span 
- style="font-weight: bold;"><B>Remove</B></span> button. &nbsp;</p></li>
-       
-       <li class=kadov-p><p class="whs9">Finally, 
- confirm your selection by clicking <span style="font-weight: bold;"><B>OK 
- </B></span>(also closes the Menu) or <span style="font-weight: bold;"><B>Apply</B></span> 
- (leaves the Menu open for creation of other groups), or skip it by clicking 
- <span style="font-weight: bold;"><B>Close</B></span> button. </p></li>
-</ul>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of the operation will be a</span></b><b> 
- GEOM_Object<span style="font-weight: normal;">.</span></b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i><span style="font-style: italic;"><I>geompy.CreateGroup(MainShape, ShapeType)</I></span>, 
- where MainShape is a shape for which the group is created, ShapeType is 
- a type of shapes in the created group.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- 1 Shape + Type of subshape.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs10">Example:</p>
-
-<p class="whs10">&nbsp;</p>
-
-<p class="whs11"><img src="image193.jpg" width="250px" height="307px" border="0" class="img_whs12"></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><img src="image57.gif" width="22px" height="22px" border="0" class="img_whs13"> <span style="font-weight: bold; font-size: 14pt;"><font size=4 style="font-size:14pt;"><B>Edit 
- a group</B></font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2">To<span style="font-weight: bold;"><B> Edit </B></span>an 
- existing group in the main menu select <span style="font-weight: bold;"><B>New 
- entity &gt; Group &gt; Edit</B></span>. This menu is designed in the same 
- way as the <span style="font-weight: bold;"><B>Create a group</B></span> menu. 
- </p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">The</span> 
- Result <span style="font-weight: normal;">of the operation will be a</span></b><b> 
- GEOM_Object<span style="font-weight: normal;">.</span></b></p>
-
-<p>&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">TUI Command:</b><i> 
- </i></p>
-
-<ul type="disc" class="whs6">
-       
-       <li class=kadov-p><p class="whs2"><i><span style="font-style: italic;"><I>g</i>eompy.AddObject(Group, 
- SubShapeID)</I></span>, where Group is a group to which a sub shape has to 
- be added, SubShapeID is an ID of the sub shape to be added to the group</p></li>
-       
-       <li class=kadov-p><p class="whs2"><span style="font-style: italic;"><I>geompy.RemoveObject(Group, 
- SubShapeID)</I></span>, where Group is a group from which a sub shape has 
- to be removed, SubShapeID is an ID of the sub shape to be removed from 
- the group</p></li>
-       
-       <li class=kadov-p><p class="whs2"><span style="font-style: italic;"><I>geompy.GetObjectIDs(Group)</I></span>, 
- where Group is a group for which its object ID\92s are returned. </p></li>
-</ul>
-
-<p class="whs11"><span style="font-size: 12pt;"><font size=3 style="font-size:12pt;">Returns: 
- List of IDs.</font></span></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Arguments:</b> 
- 1 Shape + its subshapes.</p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs2"><b style="font-weight: bold;">Dialog Box:</b></p>
-
-<p class="whs2">&nbsp;</p>
-
-<p class="whs14"><b style="font-weight: bold;"><img src="pics/editgroup.png" x-maintain-ratio="TRUE" width="312px" height="379px" border="0" class="img_whs15"></b></p>
-
-<p class="whs14">&nbsp;</p>
-
-<p class="whs2">Our <span style="font-weight: bold;"><B>TUI Scripts</B></span> 
- provide you with useful examples of <a href="working_with_groups.htm">Working 
- with Groups</a>. </p>
-
-<p>&nbsp;</p>
-
-<script type="text/javascript" language="javascript1.2">
-<!--
-if (window.writeIntopicBar)
-       writeIntopicBar(0);
-//-->
-</script>
-</body>
-</html>
index 404cc5805f8a2fe8d4d9f903d5c22d7b7df9dc49..2ab31da21b2a7756a55400fc4d38515abbc2051e 100644 (file)
@@ -25,9 +25,14 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 EXTRA_DIST+=GEOM
 
+doxygen=@DOXYGEN@
+
 usr_docs:
-       cp -fr $(srcdir)/GEOM ./
-       -find $(PWD) -name CVS -prune -exec rm -rf {} \;
+       cd ./GEOM; \
+       echo "Processing geompyDC.py file: "; \
+       $(doxygen) ./doxyfile_py; \
+       echo "Running doxygen in directory: "`pwd`; \
+       $(doxygen) ./doxyfile;
 
 docs: usr_docs
 
@@ -42,3 +47,10 @@ install-data-local: usr_docs
 
 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
\ No newline at end of file
index 9d4d118dbb81325b938d751e7e2db2e5d5fd3c2a..cba99e1cabf307491b153268d587cb9e34772f97 100755 (executable)
@@ -77,8 +77,7 @@ WARN_LOGFILE           = log.txt
 # configuration options related to the input files
 #---------------------------------------------------------------------------
 INPUT                  = ../../../share/salome/src \
-                        ../../../share/salome/idl \
-                        ../../../build/salome/bin
+                        ../../../share/salome/idl
 FILE_PATTERNS          = *.hxx *.cxx *.h *.c *.hh *.cc *.idl python_extension_must_be_here
 RECURSIVE              = YES
 EXCLUDE                = 
index b5b8b77211a2197920279ed59086b4b84fe34bc3..b401ba21021afbdc9d0a53a8e8a12ced5f79780d 100644 (file)
@@ -28,14 +28,14 @@ dev_docs:
        cp -fr $(srcdir)/GEOM ./INPUT; \
        cp -f ./GEOM/doxyfile ./INPUT; \
        cd INPUT; \
-       sed 's|../../../share/salome|$(root_srcdir)|' ./doxyfile > ./doxyfile1; \
+       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; \
+         $(DOXYGEN) -u ./doxyfile1; \
        else \
          sed 's|python_extension_must_be_here||' ./doxyfile1 > ./doxyfile2; \
          mv -f doxyfile2 doxyfile1; \
@@ -46,9 +46,9 @@ dev_docs:
        fi; \
        mv -f doxyfile1 doxyfile; \
        echo "Running doxygen in directory:"`pwd`; \
-       $(doxygen) ./doxyfile; \
+       $(DOXYGEN) ./doxyfile; \
        cd ../; \
-       cp -fr $(srcdir)/GEOM/sources/ GEOM ; \
+       cp -fr $(srcdir)/GEOM/sources/ GEOM/ ; \
        rm -fr INPUT
 
 doctuidir=$(docdir)/tui/GEOM
index 05c9fe46f90fc9f285614c2e7eb5869132cda9ca..ff1d4044ab0cc35d4ed76aa18b27d16a654d0d71 100644 (file)
@@ -26,6 +26,7 @@
 #include "SALOME_Exception.idl"
 #include "SALOME_Component.idl"
 #include "SALOMEDS.idl"
+#include "SALOMEDS_Attributes.idl"
 
 #include "SALOME_GenericObj.idl"
 
@@ -121,6 +122,28 @@ module GEOM
      */
     string GetName();
 
+    /*!
+     *  Set color of the object.
+     *  \param theColor is a color of the object.
+     */
+    void SetColor(in SALOMEDS::Color theColor);
+
+    /*!
+     *  Get color of the object.
+     */
+    SALOMEDS::Color GetColor();
+
+    /*!
+     *  Toggle auto color mode on the object.
+     *  \param theAtoColor is a flag which toggles auto color mode.
+     */
+    void SetAutoColor(in boolean theAutoColor);
+
+    /*!
+     *  Get flag of object's auto color mode.
+     */
+    boolean GetAutoColor();
+
     /*!
      *  Set a Study entry where this object was published.
      */
@@ -264,6 +287,13 @@ module GEOM
     GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve,
                                  in double theParameter);
 
+    /*!
+     *  Create a point, on two lines intersection.
+     *  \param theRefLine1, theRefLine2 The referenced lines.
+     *  \return New GEOM_Object, containing the created point.
+     */
+    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.
@@ -312,6 +342,14 @@ module GEOM
      */
     GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
 
+    /*!
+     *  Create a line, given by 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.
+     */
+    GEOM_Object MakeLineTwoFaces (in GEOM_Object theFace1, in GEOM_Object theFace2);
+
     /*!
      *  Create a plane, passing through the three given points
      *  \param thePnt1 First of three points, defining the plane.
@@ -806,6 +844,10 @@ module GEOM
     GEOM_Object MakePrismVecH (in GEOM_Object theBase,
                               in GEOM_Object theVec,
                               in double      theH);
+    /*  The Same Prism but in 2 directions (forward&backward) */
+    GEOM_Object MakePrismVecH2Ways (in GEOM_Object theBase,
+                                   in GEOM_Object theVec,
+                                   in double      theH);
 
     /*!
      *  Create a shape by extrusion of the base shape along a vector, defined by two points.
@@ -817,6 +859,10 @@ module GEOM
     GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
                                 in GEOM_Object thePoint1,
                                 in GEOM_Object thePoint2);
+    /*  The same prism but in two directions forward&backward */
+    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
@@ -839,6 +885,10 @@ module GEOM
     GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
                                         in GEOM_Object theAxis,
                                         in double theAngle);
+    /*  The Same Revolution but in both ways forward&backward */
+    GEOM_Object MakeRevolutionAxisAngle2Ways (in GEOM_Object theBase,
+                                             in GEOM_Object theAxis,
+                                             in double theAngle);
 
     /*!
      *  Create a filling from the given compound of contours.
@@ -896,7 +946,7 @@ module GEOM
      *  \param theSeqSubBases - list of corresponding subshapes of section 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 or list of locations can be empty.
+     *                        should be equal to number of bases.
      *  \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.
@@ -910,7 +960,15 @@ module GEOM
                                           in GEOM_Object thePath,
                                           in boolean theWithContact ,
                                           in boolean theWithCorrection );
-    
+
+    /*!
+     * 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.
+     */
+    GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
+                                          in ListOfGO theLocations);
   };
 
   /*!
@@ -985,9 +1043,10 @@ module GEOM
      *  Replace coincident faces in theShape by one face.
      *  \param theShape Initial shape.
      *  \param theTolerance Maximum distance between faces, which can be considered as coincident.
+     *  \param doKeepNonSolids If FALSE, only solids will present in the result, otherwise all initial shapes.
      *  \return New GEOM_Object, containing a copy of theShape without coincident faces.
      */
-    GEOM_Object MakeGlueFaces (in GEOM_Object theShape, in double theTolerance);
+    GEOM_Object MakeGlueFaces (in GEOM_Object theShape, in double theTolerance, in boolean doKeepNonSolids);
 
     /*!
      *  Find coincident faces in theShape for possible gluing.
@@ -1003,10 +1062,11 @@ module GEOM
      *  \param theShape Initial shape.
      *  \param theTolerance Maximum distance between faces, which can be considered as coincident.
      *  \param theFaces List of faces for gluing.
+     *  \param doKeepNonSolids If FALSE, only solids will present in the result, otherwise all initial shapes.
      *  \return New GEOM_Object, containing a copy of theShape without some faces.
      */
     GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, in double theTolerance,
-                                    in ListOfGO theFaces);
+                                    in ListOfGO theFaces, in boolean doKeepNonSolids);
 
     /*!
      *  Explode a shape on subshapes of a given type.
@@ -1309,7 +1369,7 @@ module GEOM
                             in shape_state theState);
 
     /*!
-     *  Get sub-shape(s) of theShapeWhere, which are
+     *  Get sub-shape(s) of \a 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.
@@ -1318,6 +1378,23 @@ module GEOM
     GEOM_Object GetInPlace (in GEOM_Object theShapeWhere,
                            in GEOM_Object theShapeWhat);
 
+    /*!
+     *  Get sub-shape(s) of \a theShapeWhere, which are
+     *  coincident with \a theShapeWhat or could be a part of it.
+     *
+     *  Implementation of this method is based on a saved history of an operation,
+     *  produced \a theShapeWhere. The \a theShapeWhat must be among this operation's
+     *  arguments (an argument shape or a sub-shape of an argument shape).
+     *  The operation could be the Partition or one of boolean operations,
+     *  performed on simple shapes (not on compounds).
+     *
+     *  \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.
+     */
+    GEOM_Object GetInPlaceByHistory (in GEOM_Object theShapeWhere,
+                                    in GEOM_Object theShapeWhat);
+
     /*!
      *  Get sub-shape of theShapeWhere, which are
      *  coincident with \a theShapeWhat that can either SOLID, FACE, EDGE or VERTEX.
@@ -1690,6 +1767,10 @@ module GEOM
      *  \note  Each compound from ListShapes and ListTools will be exploded in order
      *         to avoid possible intersection between shapes from this compound.
      *  \param theLimit Type of resulting shapes (corresponding to TopAbs_ShapeEnum).
+     #  \param KeepNonlimitShapes: if this parameter == 0 - only shapes with
+     #                             type <= Limit are kept in the result,
+     #                             else - shapes with type > Limit are kept
+     #                             also (if they exist)
      *
      *  After implementation new version of PartitionAlgo (October 2006)
      *  other parameters are ignored by current functionality. They are kept
@@ -1710,7 +1791,8 @@ module GEOM
                               in ListOfGO   theRemoveInside,
                               in short      theLimit,
                               in boolean    theRemoveWebs,
-                              in ListOfLong theMaterials);
+                              in ListOfLong theMaterials,
+                              in short      theKeepNonlimitShapes);
 
     /*!
      *  Perform partition operation.
@@ -1731,7 +1813,8 @@ module GEOM
                                                      in ListOfGO   theRemoveInside,
                                                      in short      theLimit,
                                                      in boolean    theRemoveWebs,
-                                                     in ListOfLong theMaterials);
+                                                     in ListOfLong theMaterials,
+                                                     in short      theKeepNonlimitShapes);
 
     /*!
      *  Perform partition of the Shape with the Plane
@@ -1767,7 +1850,15 @@ module GEOM
     GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
                                    in GEOM_Object thePnt2,
                                    in GEOM_Object thePnt3);
-
+    /*!
+     *  Create a circle with given center, with a radius equals the distance from center to Point1
+     *  and on a plane defined by all of three points.
+     *  \param thePnt1,thePnt2,thePnt3 Points, defining the circle.
+     *  \return New GEOM_Object, containing the created circle.
+     */
+    GEOM_Object MakeCircleCenter2Pnt (in GEOM_Object thePnt1,
+                                     in GEOM_Object thePnt2,
+                                     in GEOM_Object thePnt3);
     /*!
      *  Create an ellipse with given center, normal vector and radiuses.
      *  \param thePnt Ellipse center.
@@ -1901,6 +1992,10 @@ module GEOM
     GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
                                 in double      theR,
                                 in ListOfLong  theEdges);
+    GEOM_Object MakeFilletEdgesR1R2 (in GEOM_Object theShape,
+                                    in double      theR1,
+                                    in double      theR2,
+                                    in ListOfLong  theEdges);
 
     /*!
      *  Perform a fillet on all edges of the specified faces of the given shape.
@@ -1914,6 +2009,10 @@ 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 symmetric chamfer on all edges of the given shape.
@@ -1938,6 +2037,13 @@ 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)
+     */
+    GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
+                                  in double theD, in double theAngle,
+                                  in long theFace1, in long theFace2);
 
     /*!
      *  Perform a chamfer on all edges of the specified faces.
@@ -1955,6 +2061,32 @@ 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)
+     */
+    GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
+                                   in double theD, in double theAngle,
+                                   in ListOfLong theFaces);
+
+   /*!
+    *  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 theD2 Chamfer size
+    *  \param theEdges Sequence of edges of \a theShape.
+    *  \return New GEOM_Object, containing the result shape.
+    */
+    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)
+     */
+    GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
+                                   in double theD, in double theAngle,
+                                   in ListOfLong theEdges);
 
     /*!
      *  Perform an Archimde operation on the given shape with given parameters.
@@ -2261,6 +2393,17 @@ module GEOM
      */
     GEOM_Object GetCentreOfMass (in GEOM_Object theShape);
 
+    /*!
+     *  Get a vector, representing the normal of theFace.
+     *  If the face is not planar, theOptionalPoint is obligatory.
+     *  \param theFace Shape (face) to define the normal of.
+     *  \param theOptionalPoint Shape (point) to define the normal at.
+     *                          Can be NULL in case of planar face.
+     *  \return New GEOM_Object, containing the created normal vector.
+     */
+    GEOM_Object GetNormal (in GEOM_Object theFace,
+                          in GEOM_Object theOptionalPoint);
+
     /*!
      *  Get inertia matrix and moments of inertia of theShape.
      *  \param theShape Shape to calculate inertia of.
@@ -2336,6 +2479,12 @@ module GEOM
                           out double X1, out double Y1, out double Z1,
                           out double X2, out double Y2, out double Z2);
 
+    /*!
+     *  Get angle between the given lines or linear edges.
+     *  \param theShape1,theShape2 Shapes to find angle between. Lines or linear edges.
+     *  \return Value of the angle between the given shapes.
+     */
+    double GetAngle (in GEOM_Object theShape1, in GEOM_Object theShape2);
 
     /*!
      *  Get point coordinates
index 92e6fc36d8695eabdca9fce3f0b0c5168bb96c1a..dcaecd95f154c65e4c2c4b893ec6640a2bd6440a 100644 (file)
@@ -83,6 +83,8 @@ module GEOM
                                  in GEOM_Object thePnt2) ;
     GEOM_Object MakeLineTwoPnt (in GEOM_Object thePnt1,
                                in GEOM_Object thePnt2) ;
+    GEOM_Object MakeLineTwoFaces (in GEOM_Object theFace1,
+                                 in GEOM_Object theFace2) ;
     GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
                                   in GEOM_Object thePnt2,
                                   in GEOM_Object thePnt3,
@@ -154,14 +156,23 @@ module GEOM
     GEOM_Object MakePrismVecH (in GEOM_Object theBase,
                               in GEOM_Object theVec,
                               in double      theH) ;
+    GEOM_Object MakePrismVecH2Ways (in GEOM_Object theBase,
+                                   in GEOM_Object theVec,
+                                   in double      theH) ;
     GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
                                 in GEOM_Object thePoint1,
                                 in GEOM_Object thePoint2) ;
+    GEOM_Object MakePrismTwoPnt2Ways (in GEOM_Object theBase,
+                                     in GEOM_Object thePoint1,
+                                     in GEOM_Object thePoint2) ;
     GEOM_Object MakePipe (in GEOM_Object theBase, 
                          in GEOM_Object thePath) ;
     GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
                                         in GEOM_Object theAxis,
                                         in double      theAngle) ;
+    GEOM_Object MakeRevolutionAxisAngle2Ways (in GEOM_Object theBase,
+                                             in GEOM_Object theAxis,
+                                             in double      theAngle) ;
     GEOM_Object MakeFilling (in GEOM_Object theShape,
                             in long theMinDeg, in long theMaxDeg,
                             in double theTol2D, in double theTol3D,
@@ -184,6 +195,9 @@ module GEOM
                                           in boolean theWithContact ,
                                           in boolean theWithCorrection );
     
+    GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
+                                          in ListOfGO theLocations );
+
     //-----------------------------------------------------------//
     // BooleanOperations                                         //
     //-----------------------------------------------------------//
@@ -198,7 +212,8 @@ module GEOM
                               in GEOM_List   theRemoveInside,
                               in short       theLimit,
                               in boolean     theRemoveWebs,
-                              in GEOM_List   theMaterials) ;
+                              in GEOM_List   theMaterials,
+                              in short       theKeepNonlimitShapes);
     GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
                                   in GEOM_Object thePlane) ;
 
@@ -312,12 +327,14 @@ module GEOM
     GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
     GEOM_Object MakeCompound (in GEOM_List theShapes) ;
     GEOM_Object MakeGlueFaces (in GEOM_Object theShape, 
-                              in double theTolerance);
+                              in double theTolerance,
+                              in boolean doKeepNonSolids);
     GEOM_List GetGlueFaces (in GEOM_Object theShape, 
                            in double theTolerance);
     GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, 
                                     in double theTolerance,
-                                    in ListOfGO theFaces);
+                                    in ListOfGO theFaces,
+                                    in boolean doKeepNonSolids);
     GEOM_List MakeExplode (in GEOM_Object theShape,
                           in long        theShapeType,
                           in boolean     isSorted) ;
@@ -408,6 +425,9 @@ module GEOM
     GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
                                    in GEOM_Object thePnt2,
                                    in GEOM_Object thePnt3) ;
+    GEOM_Object MakeCircleCenter2Pnt (in GEOM_Object thePnt1,
+                                     in GEOM_Object thePnt2,
+                                     in GEOM_Object thePnt3) ;
     GEOM_Object MakeEllipse (in GEOM_Object thePnt,
                             in GEOM_Object theVec,
                             in double      theRMajor,
@@ -433,17 +453,37 @@ module GEOM
     GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
                                 in double      theR,
                                 in GEOM_List   theEdges) ;
+    GEOM_Object MakeFilletEdgesR1R2 (in GEOM_Object theShape,
+                                    in double      theR1,
+                                    in double      theR2,
+                                    in GEOM_List   theEdges) ;
     GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
                                 in double      theR,
                                 in GEOM_List   theFaces) ;
+    GEOM_Object MakeFilletFacesR1R2 (in GEOM_Object theShape,
+                                    in double      theR1,
+                                    in double      theR2,
+                                    in GEOM_List   theFaces) ;
     GEOM_Object MakeChamferAll (in GEOM_Object theShape,
                                in double      theD) ;
     GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
                                 in double theD1, in double theD2,
                                 in long theFace1, in long theFace2) ;
+    GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
+                                  in double theD, in double theAngle,
+                                  in long theFace1, in long theFace2) ;
     GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
                                  in double theD1, in double theD2,
                                  in GEOM_List theFaces) ;
+    GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
+                                   in double theD, in double theAngle,
+                                   in GEOM_List theFaces) ;
+    GEOM_Object MakeChamferEdges (in GEOM_Object theShape,
+                                 in double theD1, in double theD2,
+                                 in GEOM_List theEdges) ;
+    GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
+                                   in double theD, in double theAngle,
+                                   in GEOM_List theEdges) ;
     GEOM_Object MakeArchimede (in GEOM_Object theShape,
                               in double      theWeight,
                               in double      theWaterDensity,
index 4b05e9c22168fb8c52acfdaf8625effd357a7575..2a3f4aa094b9279903d727f6c2b952175675fbb1 100644 (file)
                     </outParameter-list>
                     <DataStream-list></DataStream-list>
                 </component-service>
+                    <component-service>
+                        <service-name>GetDumpName</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theStudyEntry</inParameter-name>
+                                <inParameter-type>string</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>string</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetAllDumpNames</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list></inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>string_array</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
             </component-service-list>
         </component-interface-list>
     <constraint>hostname = localhost</constraint>
             <component-name>GEOM_Superv</component-name>
             <component-username>GEOM_Superv</component-username>
             <component-type>OTHER</component-type>
-            <component-author>mkr</component-author>
+            <component-author></component-author>
             <component-version>@VERSION@</component-version>
             <component-comment>Supervision wrapper for Geometry component</component-comment>
             <component-multistudy>1</component-multistudy>
-           <component-impltype>1</component-impltype>
+            <component-impltype>1</component-impltype>
             <component-icone></component-icone>
             <constraint></constraint>
             <component-interface-list>
                 <component-service-list>
                     <component-service>
                         <service-name>SetStudyID</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>CreateListOfGO</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list></inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>AddItemToListOfGO</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>CreateListOfLong</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list></inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>AddItemToListOfLong</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>CreateListOfDouble</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list></inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>AddItemToListOfDouble</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePointXYZ</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePointWithReference</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePointOnCurve</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theRefCurve</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theParameter</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>MakeTangentOnCurve</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeVectorDXDYDZ</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeVectorTwoPnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeLineTwoPnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePlaneThreePnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePlanePntVec</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePlaneFace</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeMarker</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>MakeTangentPlaneOnFace</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theFace</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theParameterU</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theParameterV</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theTrimSize</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                     <component-service>
                         <service-name>MakeBox</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeBoxDXDYDZ</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeBoxTwoPnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCylinderPntVecRH</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCylinderRH</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSphere</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSphereR</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSpherePntR</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeTorusPntVecRR</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeTorusRR</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeConePntVecR1R2H</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeConeR1R2H</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePrismVecH</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePrismTwoPnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePipe</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeRevolutionAxisAngle</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFilling</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
                     </component-service>
+                    <component-service>
+                        <service-name>MakeThruSections</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theSeqSections</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theModeSolid</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>thePreci</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theRuled</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>MakePipeWithDifferentSections</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theSeqBases</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theLocations</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>thePath</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theWithContact</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theWithCorrection</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>MakePipeWithShellSections</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theSeqBases</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theSeqSubBases</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theLocations</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>thePath</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theWithContact</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theWithCorrection</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
                     <component-service>
                         <service-name>MakeBoolean</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFuse</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakePartition</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                                 <inParameter-type>GEOM_List</inParameter-type>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
+                            <inParameter>
+                                <inParameter-name>theKeepNonlimitShapes</inParameter-name>
+                                <inParameter-type>short</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
                         </inParameter-list>
                         <outParameter-list>
                             <outParameter>
                     </component-service>
                     <component-service>
                         <service-name>MakeHalfPartition</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>Export</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>Import</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ImportTranslators</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list></inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ExportTranslators</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list></inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateTwoPoints</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateTwoPointsCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateDXDYDZ</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateDXDYDZCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateVector</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>TranslateVectorCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MultiTranslate1D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MultiTranslate2D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>Rotate</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>RotateCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>RotateThreePoints</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>RotateThreePointsCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MultiRotate1D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MultiRotate2D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorPlane</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorPlaneCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorAxis</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorAxisCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorPoint</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MirrorPointCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>OffsetShape</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>OffsetShapeCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ScaleShape</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ScaleShapeCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>PositionShape</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>PositionShapeCopy</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeEdge</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeWire</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFace</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFaceWires</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeShell</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSolidShell</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSolidShells</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCompound</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeGlueFaces</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theShape</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theTolerance</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>doKeepNonSolids</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_Object</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>GetGlueFaces</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                                 <inParameter-comment>unknown</inParameter-comment>
                             </inParameter>
                         </inParameter-list>
+                        <outParameter-list>
+                            <outParameter>
+                                <outParameter-name>return</outParameter-name>
+                                <outParameter-type>GEOM_List</outParameter-type>
+                                <outParameter-comment>unknown</outParameter-comment>
+                            </outParameter>
+                        </outParameter-list>
+                        <DataStream-list></DataStream-list>
+                    </component-service>
+                    <component-service>
+                        <service-name>MakeGlueFacesByList</service-name>
+                        <service-author></service-author>
+                        <service-version></service-version>
+                        <service-comment>unknown</service-comment>
+                        <service-by-default>0</service-by-default>
+                        <inParameter-list>
+                            <inParameter>
+                                <inParameter-name>theShape</inParameter-name>
+                                <inParameter-type>GEOM_Object</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theTolerance</inParameter-name>
+                                <inParameter-type>double</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>theFaces</inParameter-name>
+                                <inParameter-type>ListOfGO</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                            <inParameter>
+                                <inParameter-name>doKeepNonSolids</inParameter-name>
+                                <inParameter-type>boolean</inParameter-type>
+                                <inParameter-comment>unknown</inParameter-comment>
+                            </inParameter>
+                        </inParameter-list>
                         <outParameter-list>
                             <outParameter>
                                 <outParameter-name>return</outParameter-name>
                     </component-service>
                     <component-service>
                         <service-name>MakeExplode</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>NumberOfFaces</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>NumberOfEdges</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ChangeOrientation</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeQuad4Vertices</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeQuad</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeQuad2Edges</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeHexa</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeHexa2Faces</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetPoint</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetEdge</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetEdgeNearPoint</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetFaceByPoints</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetFaceByEdges</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetOppositeFace</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetFaceNearPoint</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetFaceByNormale</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>IsCompoundOfBlocks</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                         <outParameter-list>
                             <outParameter>
                                 <outParameter-name>return</outParameter-name>
-                                <outParameter-type>long</outParameter-type>
+                                <outParameter-type>boolean</outParameter-type>
                                 <outParameter-comment>unknown</outParameter-comment>
                             </outParameter>
                             <outParameter>
                     </component-service>
                     <component-service>
                         <service-name>CheckCompoundOfBlocks</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                         <outParameter-list>
                             <outParameter>
                                 <outParameter-name>return</outParameter-name>
-                                <outParameter-type>long</outParameter-type>
+                                <outParameter-type>boolean</outParameter-type>
                                 <outParameter-comment>unknown</outParameter-comment>
                             </outParameter>
                             <outParameter>
                     </component-service>
                     <component-service>
                         <service-name>PrintBCErrors</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>ExplodeCompoundOfBlocks</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetBlockNearPoint</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetBlockByParts</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetBlocksByParts</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeMultiTransformation1D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeMultiTransformation2D</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCirclePntVecR</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeCircleThreePnt</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeEllipse</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeArc</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeArcCenter</service-name>
-                        <service-author>ngr</service-author>
-                        <service-version>3.2.6</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                             </outParameter>
                         </outParameter-list>
                         <DataStream-list></DataStream-list>
-                    </component-service>                    <component-service>
+                    </component-service>
+                    <component-service>
                         <service-name>MakePolyline</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSplineBezier</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSplineInterpolation</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeSketcher</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFilletAll</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFilletEdges</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeFilletFaces</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeChamferAll</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeChamferEdge</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeChamferFaces</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>MakeArchimede</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetSubShapeIndex</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>CreateGroup</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>AddObject</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>RemoveObject</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetType</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetMainShape</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
                     </component-service>
                     <component-service>
                         <service-name>GetObjects</service-name>
-                        <service-author>mkr</service-author>
-                        <service-version>2.1.0</service-version>
+                        <service-author></service-author>
+                        <service-version></service-version>
                         <service-comment>unknown</service-comment>
                         <service-by-default>0</service-by-default>
                         <inParameter-list>
index 30a1b92ae6ab22a618e797cf62c9ce0197503ff8..2fbc6564c68b48d0b05420a834b9db43a65e0a68 100644 (file)
@@ -32,9 +32,11 @@ GEOM_en.xml \
 GEOM_fr.xml \
 GEOM.config \
 SalomeApp.xml \
+Plugin \
 GEOMDS_Resources \
 ImportExport \
 ShHealing \
+angle.png \
 arc.png \
 archimede.png \
 axisinertia.png \
@@ -54,11 +56,13 @@ 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 \
@@ -82,6 +86,7 @@ fuse.png \
 geometry.png \
 line.png \
 line2points.png \
+line2faces.png \
 lineedge.png \
 linepointvector.png \
 mindist.png \
@@ -95,6 +100,7 @@ multirotationsimple.png \
 multitranslation.png \
 multitranslationdouble.png \
 multitranslationsimple.png \
+normale.png \
 offset.png \
 orientation.png \
 partition.png \
@@ -112,6 +118,7 @@ planeworkingvector.png \
 planeworkingorigin.png \
 point2.png \
 pointonedge.png \
+point_line_intersection.png \
 polyline.png \
 prism.png \
 prism2.png \
@@ -190,6 +197,7 @@ propagate.png \
 redo.png \
 undo.png \
 arccenter.png \
-glue2.png
+glue2.png \
+remove_extra_edges.png
 
 nodist_salomeres_DATA = GEOMCatalog.xml
diff --git a/resources/Plugin b/resources/Plugin
new file mode 100755 (executable)
index 0000000..895d655
--- /dev/null
@@ -0,0 +1,10 @@
+! Description of available plugins
+! ********************************
+!
+a148e300-5740-11d1-a904-080036aaa103.Location: FWOSPlugin
+!
+! standard attribute drivers plugin
+!
+ad696000-5b34-11d1-b5ba-00a0c9064368.Location: StdPlugin
+ad696001-5b34-11d1-b5ba-00a0c9064368.Location: StdPlugin
+ad696002-5b34-11d1-b5ba-00a0c9064368.Location: StdPlugin
diff --git a/resources/angle.png b/resources/angle.png
new file mode 100644 (file)
index 0000000..9ec01ae
Binary files /dev/null and b/resources/angle.png differ
index c90b6740ee7c5d52d46bb167e5cf423353a41e44..7fdbd13256086392e51f32832f660bf448ea2eb1 100644 (file)
Binary files a/resources/chamferall.png and b/resources/chamferall.png differ
index e8d5ccd579df606e77d6e7355ce281fadce21507..c6ea12222f96e37e922ec887b0a595a6b67e8aec 100644 (file)
Binary files a/resources/chamferedge.png and b/resources/chamferedge.png differ
diff --git a/resources/chamferedgefromface.png b/resources/chamferedgefromface.png
new file mode 100755 (executable)
index 0000000..816125a
Binary files /dev/null and b/resources/chamferedgefromface.png differ
index 4e3f36b25f47ef5667acc116e9ad160b66c79f49..68d5959cda5991c7b428dd6702b3082fa8013d01 100644 (file)
Binary files a/resources/chamferface.png and b/resources/chamferface.png differ
diff --git a/resources/circlecenter2pnts.png b/resources/circlecenter2pnts.png
new file mode 100755 (executable)
index 0000000..7b3daa2
Binary files /dev/null and b/resources/circlecenter2pnts.png differ
diff --git a/resources/line2faces.png b/resources/line2faces.png
new file mode 100755 (executable)
index 0000000..89c9d26
Binary files /dev/null and b/resources/line2faces.png differ
diff --git a/resources/normale.png b/resources/normale.png
new file mode 100644 (file)
index 0000000..7db7fb2
Binary files /dev/null and b/resources/normale.png differ
diff --git a/resources/point_line_intersection.png b/resources/point_line_intersection.png
new file mode 100755 (executable)
index 0000000..31f6c19
Binary files /dev/null and b/resources/point_line_intersection.png differ
diff --git a/resources/remove_extra_edges.png b/resources/remove_extra_edges.png
new file mode 100644 (file)
index 0000000..fedd8ae
Binary files /dev/null and b/resources/remove_extra_edges.png differ
index a0c593bd4d80e61b7962cdc83d001c45e98b1ea7..50a0104be9f90d233ad0e7c5e46c99cc4460740a 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -47,9 +54,10 @@ BasicGUI_ArcDlg::BasicGUI_ArcDlg( 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_ARC" ) ) );
-  QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_ARC_CENTER" ) ) );
-  QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
+  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" ) ) );
 
   setWindowTitle( tr( "GEOM_ARC_TITLE" ) );
 
@@ -98,7 +106,7 @@ BasicGUI_ArcDlg::BasicGUI_ArcDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
   layout->addWidget( Group3Pnts );
   layout->addWidget( Group3Pnts2 );
 
-  setHelpFileName( "arc.htm" );
+  setHelpFileName( "create_arc_page.html" );
 
   Init();
 }
@@ -120,12 +128,7 @@ BasicGUI_ArcDlg::~BasicGUI_ArcDlg()
 void BasicGUI_ArcDlg::Init()
 {
   /* init variables */
-  // myGeomGUI->SetState( 0 );
-  globalSelection( GEOM_POINT );
-  
-  myConstructorId = -1;
   myEditCurrentArgument = Group3Pnts->LineEdit1;
-  myEditCurrentArgument->setFocus();
 
   myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil();
   Group3Pnts2->CheckButton1->setChecked( false );
@@ -157,8 +160,8 @@ void BasicGUI_ArcDlg::Init()
   
   connect( Group3Pnts2->CheckButton1, SIGNAL( toggled( bool ) ), this, SLOT( ReverseSense() ) );
 
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( SelectionIntoArgument() ) );
 
   initName( tr( "GEOM_ARC" ) ); 
   
@@ -188,18 +191,6 @@ bool BasicGUI_ArcDlg::ClickOnApply()
 
   initName();
 
-  // reset
-  myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil();
-  Group3Pnts->LineEdit1->setText( "" );
-  Group3Pnts->LineEdit2->setText( "" );
-  Group3Pnts->LineEdit3->setText( "" );
-  Group3Pnts2->LineEdit1->setText( "" );
-  Group3Pnts2->LineEdit2->setText( "" );
-  Group3Pnts2->LineEdit3->setText( "" );
-  if ( getConstructorId() == 0 )  myEditCurrentArgument = Group3Pnts->LineEdit1;
-  if ( getConstructorId() == 1 )  myEditCurrentArgument = Group3Pnts2->LineEdit1;
-
-  ConstructorsClicked( getConstructorId() );
   return true;
 }
 
@@ -234,15 +225,48 @@ void BasicGUI_ArcDlg::SelectionIntoArgument()
   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);
+
+    // 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);
+      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
+         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);
+
     switch ( getConstructorId() ) {
     case 0:
-      myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
       if      ( myEditCurrentArgument == Group3Pnts->LineEdit1 )   myPoint1 = aSelectedObject;
       else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 )   myPoint2 = aSelectedObject;
       else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 )   myPoint3 = aSelectedObject;
       break;
     case 1:
-      myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
       if      ( myEditCurrentArgument == Group3Pnts2->LineEdit1 )   myPoint1 = aSelectedObject;
       else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 )   myPoint2 = aSelectedObject;
       else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 )   myPoint3 = aSelectedObject;
@@ -300,32 +324,13 @@ void BasicGUI_ArcDlg::LineEditReturnPressed()
 void BasicGUI_ArcDlg::ActivateThisDialog()
 {
   GEOMBase_Skeleton::ActivateThisDialog();
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
-  // myGeomGUI->SetState( 0 );
-  globalSelection( GEOM_POINT );
-
-  myEditCurrentArgument = Group3Pnts->LineEdit1;
-  myEditCurrentArgument->setFocus();
-
-  Group3Pnts->LineEdit1->setText( "" );
-  Group3Pnts->LineEdit2->setText( "" );
-  Group3Pnts->LineEdit3->setText( "" );
-  myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil();
+  connect( myGeomGUI->getApp()->selectionMgr(),
+          SIGNAL( currentSelectionChanged() ),
+          this,
+          SLOT(SelectionIntoArgument() ) );
 
   ConstructorsClicked( getConstructorId() );
-  
-}
-
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  : public slot to deactivate if active
-//=================================================================================
-void BasicGUI_ArcDlg::DeactivateActiveDialog()
-{
-  // myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::DeactivateActiveDialog();
 }
 
 //=================================================================================
@@ -400,40 +405,43 @@ bool BasicGUI_ArcDlg::execute( ObjectList& objects )
   return res;
 }
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void BasicGUI_ArcDlg::closeEvent( QCloseEvent* e )
-{
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 //=================================================================================
 // function : ConstructorsClicked()
 // purpose  : Radio button management
 //=================================================================================
 void BasicGUI_ArcDlg::ConstructorsClicked( int constructorId )
 {
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
+  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
+
       Group3Pnts2->hide();
       Group3Pnts->show();
 
-      connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-              SIGNAL(currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+      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();
       Group3Pnts2->show();
-      connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),          
-              SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+
+      Group3Pnts2->LineEdit1->setText( Group3Pnts->LineEdit1->text() );
+      Group3Pnts2->LineEdit2->setText( Group3Pnts->LineEdit2->text() );
+      Group3Pnts2->LineEdit3->setText( Group3Pnts->LineEdit3->text() );
       
+      myEditCurrentArgument = Group3Pnts2->LineEdit1;
       break;
     }
   }
@@ -442,6 +450,13 @@ void BasicGUI_ArcDlg::ConstructorsClicked( int constructorId )
   updateGeometry();
   resize( minimumSize() );
 
+  myEditCurrentArgument->setFocus();
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( SelectionIntoArgument() ) );
+
+  if ( CORBA::is_nil( myPoint1 ) )
+    SelectionIntoArgument();
+
   displayPreview();
 }
 
@@ -453,3 +468,26 @@ void BasicGUI_ArcDlg::ReverseSense()
 {
   displayPreview();
 }
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void BasicGUI_ArcDlg::addSubshapesToStudy()
+{
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+  switch ( getConstructorId() ) {
+  case 0:
+    objMap[Group3Pnts->LineEdit1->text()] = myPoint1;
+    objMap[Group3Pnts->LineEdit2->text()] = myPoint2;
+    objMap[Group3Pnts->LineEdit3->text()] = myPoint3;
+    break;
+  case 1:
+    objMap[Group3Pnts2->LineEdit1->text()] = myPoint1;
+    objMap[Group3Pnts2->LineEdit2->text()] = myPoint2;
+    objMap[Group3Pnts2->LineEdit3->text()] = myPoint3;
+    break;
+  }
+  addSubshapesToFather( objMap );
+}
index df31e8877e084a0f06675fb7708c449ea5396d3d..577181324be67e100acad6895a291e62a1f0fd3d 100644 (file)
@@ -48,15 +48,13 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
+  virtual void                       addSubshapesToStudy();
   
-  virtual void                       closeEvent( QCloseEvent* );    
-
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
 
 private:
-  int                                myConstructorId;
   GEOM::GEOM_Object_var              myPoint1, myPoint2, myPoint3;
 
   DlgRef_3Sel*                       Group3Pnts;
@@ -67,7 +65,6 @@ private slots:
   bool                               ClickOnApply();
   
   void                               ActivateThisDialog();
-  void                               DeactivateActiveDialog();
   void                               ConstructorsClicked( int );
   void                               LineEditReturnPressed();
   void                               SelectionIntoArgument();
index b5468defc6c767baac78c0b9aa71e8e02c8dbd40..683d796bdf6986296d58736b82a2d4f45db1c74e 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
-#include <GEOMImpl_Types.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
 
 //=================================================================================
 // class    : BasicGUI_CircleDlg()
@@ -50,6 +55,7 @@ BasicGUI_CircleDlg::BasicGUI_CircleDlg( GeometryGUI* theGeometryGUI, QWidget* pa
 {
   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" ) ) );
 
   setWindowTitle( tr( "GEOM_CIRCLE_TITLE" ) );
@@ -58,8 +64,7 @@ BasicGUI_CircleDlg::BasicGUI_CircleDlg( GeometryGUI* theGeometryGUI, QWidget* pa
   mainFrame()->GroupConstructors->setTitle( tr( "GEOM_CIRCLE" ) );
   mainFrame()->RadioButton1->setIcon( image0 );
   mainFrame()->RadioButton2->setIcon( image2 );
-  mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
-  mainFrame()->RadioButton3->close();
+  mainFrame()->RadioButton3->setIcon( image3 );
 
   GroupPntVecR = new DlgRef_2Sel1Spin( centralWidget() );
   GroupPntVecR->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) );
@@ -87,13 +92,27 @@ BasicGUI_CircleDlg::BasicGUI_CircleDlg( GeometryGUI* theGeometryGUI, QWidget* pa
   Group3Pnts->LineEdit2->setReadOnly( true );
   Group3Pnts->LineEdit3->setReadOnly( true );
 
+  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->LineEdit1->setReadOnly( true );
+  GroupCenter2Pnts->LineEdit2->setReadOnly( true );
+  GroupCenter2Pnts->LineEdit3->setReadOnly( true );
+
   QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
   layout->setMargin( 0 ); layout->setSpacing( 6 );
   layout->addWidget( GroupPntVecR );
   layout->addWidget( Group3Pnts );
+  layout->addWidget( GroupCenter2Pnts );
   /***************************************************************/
 
-  setHelpFileName( "circle.htm" );
+  setHelpFileName( "create_circle_page.html" );
 
   Init();
 }
@@ -126,7 +145,7 @@ void BasicGUI_CircleDlg::Init()
   double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
 
   /* min, max, step and decimals for spin boxes & initial values */
-  initSpinBox( GroupPntVecR->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 );
+  initSpinBox( GroupPntVecR->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
   GroupPntVecR->SpinBox_DX->setValue( 100 );
 
   /* signals and slots connections */
@@ -144,6 +163,10 @@ void BasicGUI_CircleDlg::Init()
   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( GroupPntVecR->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
   connect( GroupPntVecR->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
 
@@ -152,8 +175,8 @@ void BasicGUI_CircleDlg::Init()
   connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupPntVecR->SpinBox_DX, SLOT( SetStep( double ) ) );
   // <<-
 
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-          SIGNAL( currentSelectionChanged() ), this, SLOT(SelectionIntoArgument() ) ) ;
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+           this, SLOT( SelectionIntoArgument() ) );
 
   initName( tr( "GEOM_CIRCLE" ) );
 
@@ -166,13 +189,15 @@ void BasicGUI_CircleDlg::Init()
 //=================================================================================
 void BasicGUI_CircleDlg::ConstructorsClicked( int constructorId )
 {
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
+  disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
+
   myPoint = myDir = myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil();
 
   switch ( constructorId ) {
   case 0:
     {
       Group3Pnts->hide();
+      GroupCenter2Pnts->hide();
       GroupPntVecR->show();
       
       myEditCurrentArgument = GroupPntVecR->LineEdit1;
@@ -183,6 +208,7 @@ void BasicGUI_CircleDlg::ConstructorsClicked( int constructorId )
   case 1:
     {
       GroupPntVecR->hide();
+      GroupCenter2Pnts->hide();
       Group3Pnts->show();
       
       myEditCurrentArgument = Group3Pnts->LineEdit1;
@@ -191,6 +217,18 @@ void BasicGUI_CircleDlg::ConstructorsClicked( int constructorId )
       Group3Pnts->LineEdit3->setText( "" );
       break;
     }
+  case 2:
+    {
+      GroupPntVecR->hide();
+      Group3Pnts->hide();              
+      GroupCenter2Pnts->show();
+      
+      myEditCurrentArgument = GroupCenter2Pnts->LineEdit1;
+      GroupCenter2Pnts->LineEdit1->setText( "" );
+      GroupCenter2Pnts->LineEdit2->setText( "" );
+      GroupCenter2Pnts->LineEdit3->setText( "" );
+      break;
+    }
   }
   
   qApp->processEvents();
@@ -198,9 +236,11 @@ void BasicGUI_CircleDlg::ConstructorsClicked( int constructorId )
   resize( minimumSize() );
 
   myEditCurrentArgument->setFocus();
-  globalSelection( GEOM_POINT );
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 
-          SIGNAL( currentSelectionChanged() ), this, SLOT(SelectionIntoArgument() ) );
+  globalSelection(); // close local contexts, if any
+  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
+
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged() ),
+          this, SLOT( SelectionIntoArgument() ) );
 }
 
 //=================================================================================
@@ -235,25 +275,75 @@ void BasicGUI_CircleDlg::SelectionIntoArgument()
 {
   myEditCurrentArgument->setText( "" );
   
-  if ( IObjectCount() != 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();
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SALOME_ListIO 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();
     return;
   }
 
   // nbSel == 1
+  Handle(SALOME_InteractiveObject) anIO = aList.First();
+
   Standard_Boolean aRes = Standard_False;
-  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
-  if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {  
-    myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
-    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;
+  GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(anIO, aRes);
+  if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
+    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 );
+
+    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;
   }
 
   displayPreview();
@@ -268,18 +358,27 @@ 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;
+  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;
+
   
   myEditCurrentArgument->setFocus();
-  
-  if ( myEditCurrentArgument == GroupPntVecR->LineEdit2 ) 
-    globalSelection( GEOM_LINE );
-  else
-    globalSelection( GEOM_POINT );
+
+  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 );
+  }
+
   SelectionIntoArgument();
 }
 
@@ -294,7 +393,10 @@ void BasicGUI_CircleDlg::LineEditReturnPressed()
        send == GroupPntVecR->LineEdit2 ||
        send == Group3Pnts->LineEdit1 ||
        send == Group3Pnts->LineEdit2 ||
-       send == Group3Pnts->LineEdit3 ) {
+       send == Group3Pnts->LineEdit3 ||
+       send == GroupCenter2Pnts->LineEdit1 ||
+       send == GroupCenter2Pnts->LineEdit2 ||
+       send == GroupCenter2Pnts->LineEdit3 ) {
     myEditCurrentArgument = send;
     GEOMBase_Skeleton::LineEditReturnPressed();
   }
@@ -308,11 +410,9 @@ void BasicGUI_CircleDlg::LineEditReturnPressed()
 void BasicGUI_CircleDlg::ActivateThisDialog()
 {
   GEOMBase_Skeleton::ActivateThisDialog();
-  globalSelection( GEOM_POINT );
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 
-          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
-  // myGeomGUI->SetState( 0 );
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( SelectionIntoArgument() ) );
 
   ConstructorsClicked( getConstructorId() );
 }
@@ -353,7 +453,12 @@ void BasicGUI_CircleDlg::ValueChangedInSpinBox()
 //=================================================================================
 double BasicGUI_CircleDlg::getRadius() const
 {
-  return GroupPntVecR->SpinBox_DX->value();
+  double r = 0.;
+  switch ( getConstructorId() ) {
+  case 0:
+    r = GroupPntVecR->SpinBox_DX->value(); break;
+  }
+  return r;
 }
 
 //=================================================================================
@@ -386,6 +491,9 @@ bool BasicGUI_CircleDlg::isValid( QString& msg )
   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() &&
+      !isEqual( myPoint4, myPoint5 ) && !isEqual( myPoint5, myPoint6 ) && !isEqual( myPoint4, myPoint6 );
   return false;
 }
 
@@ -408,19 +516,44 @@ bool BasicGUI_CircleDlg::execute( ObjectList& objects )
     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 );
+    res = true;
+    break;
   }
   
   if ( !anObj->_is_nil() )
     objects.push_back( anObj._retn() );
+  else {
+    MESSAGE( "Execute Object is NULL!" );
+  }
   
   return res;
 }
 
 //=================================================================================
-// function : closeEvent
-// purpose  :
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
 //=================================================================================
-void BasicGUI_CircleDlg::closeEvent( QCloseEvent* e )
+void BasicGUI_CircleDlg::addSubshapesToStudy()
 {
-  GEOMBase_Skeleton::closeEvent( e );
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+  switch ( getConstructorId() ) {
+  case 0:
+    objMap[GroupPntVecR->LineEdit1->text()] = myPoint;
+    objMap[GroupPntVecR->LineEdit2->text()] = myDir;
+    break;
+  case 1:
+    objMap[Group3Pnts->LineEdit1->text()] = myPoint1;
+    objMap[Group3Pnts->LineEdit2->text()] = myPoint2;
+    objMap[Group3Pnts->LineEdit3->text()] = myPoint3;
+    break;
+  case 2:
+    objMap[GroupCenter2Pnts->LineEdit1->text()] = myPoint4;
+    objMap[GroupCenter2Pnts->LineEdit2->text()] = myPoint5;
+    objMap[GroupCenter2Pnts->LineEdit3->text()] = myPoint6;
+    break;
+  }
+  addSubshapesToFather( objMap );
 }
index 08597151ae52ba054cb3888693ce48da2dd35d00..85f072482d579d6c455e18c8c10bb2731c7b5094 100644 (file)
@@ -49,7 +49,7 @@ protected:
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
   
-  virtual void                       closeEvent( QCloseEvent* );    
+  virtual void                       addSubshapesToStudy();
   
 private:
   void                               Init();
@@ -57,10 +57,11 @@ private:
   double                             getRadius() const;
 
 private:
-  GEOM::GEOM_Object_var              myPoint, myDir, myPoint1, myPoint2, myPoint3;
+  GEOM::GEOM_Object_var              myPoint, myDir, myPoint1, myPoint2, myPoint3, myPoint4, myPoint5, myPoint6;
 
   DlgRef_2Sel1Spin*                  GroupPntVecR;
   DlgRef_3Sel*                       Group3Pnts;
+  DlgRef_3Sel*                       GroupCenter2Pnts;
 
 private slots:
   void                               ClickOnOk();
index 9a6a09f56c053e4433cea100dc720bd0ffdac1e4..fc715474cf982b9bae764d2297cd297449d3d2e6 100644 (file)
 #include <SUIT_ResourceMgr.h>
 #include <SUIT_Session.h>
 #include <SalomeApp_Application.h>
+#include <SalomeApp_Study.h>
 #include <LightApp_SelectionMgr.h>
 
 #include <SALOME_ListIteratorOfListIO.hxx>
 #include <SALOME_ListIO.hxx>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -74,7 +81,7 @@ BasicGUI_CurveDlg::BasicGUI_CurveDlg( GeometryGUI* theGeometryGUI, QWidget* pare
   layout->addWidget( GroupPoints );
   /***************************************************************/
 
-  setHelpFileName( "curve.htm" );
+  setHelpFileName( "create_curve_page.html" );
 
   Init();
 }
@@ -101,7 +108,8 @@ void BasicGUI_CurveDlg::Init()
   myPoints = new GEOM::ListOfGO();
   myPoints->length( 0 );
 
-  globalSelection( GEOM_POINT );
+  globalSelection(); // close local contexts, if any
+  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
 
   /* signals and slots connections */
   connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog( ) ) );
@@ -115,9 +123,9 @@ void BasicGUI_CurveDlg::Init()
   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( "GEOM_CURVE" ) );
   ConstructorsClicked( 0 );
 }
@@ -184,7 +192,8 @@ bool BasicGUI_CurveDlg::ClickOnApply()
     return false;
 
   initName();
-  ConstructorsClicked( getConstructorId() );
+  globalSelection(); // close local contexts, if any
+  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   return true;
 }
 
@@ -250,41 +259,96 @@ void BasicGUI_CurveDlg::SelectionIntoArgument()
   myEditCurrentArgument->setText( "" );
 
   Standard_Boolean aRes = Standard_False;
-  int i = 0;
+
   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,
+  // 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( selectedIO() ); anIt.More(); anIt.Next() ) {
+
+  LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
+  SalomeApp_Application* app =
+    dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+  _PTR(Study) aDStudy = appStudy->studyDS();
+  GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
+
+  int anIndex;
+  TopoDS_Shape aShape;
+  TColStd_IndexedMapOfInteger aMapIndexes;
+  GEOM::GEOM_Object_var anObject;
+  std::list<GEOM::GEOM_Object_var> aList;
+  SALOME_ListIO selected;
+  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 ) {
-      //TopoDS_Shape aPointShape;
-      //if ( myGeomBase->GetShape( aSelectedObject, aPointShape, TopAbs_VERTEX ) )
-      int pos = isPointInList(myOrderedSel, aSelectedObject);
-      if ( is_append && pos == -1 )
-       myOrderedSel.push_back( aSelectedObject );
-      myPoints[i++] = aSelectedObject;
+      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().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( i ); // this is the right length, smaller of equal to the previously set
+  myPoints->length( aList.size()  );  
+
+  int k = 0;
+  for ( list<GEOM::GEOM_Object_var>::iterator j = aList.begin(); j != aList.end(); j++ )
+    myPoints[k++] = *j;
+
   if ( IOC == 0 )
     myOrderedSel.clear();
   else
     removeUnnecessaryPnt( myOrderedSel, myPoints );
 
-  if ( myOrderedSel.size() == myPoints->length() ) {
-    int k = 0;
-    for ( list<GEOM::GEOM_Object_var>::iterator j = myOrderedSel.begin(); j!= myOrderedSel.end(); j++ )
-      myPoints[k++] = *j;
-  } 
-  else {
-    //cout << "ERROR: Ordered sequence size != selection sequence size! ("<<myOrderedSel.size()<<"!="<<myPoints->length()<<")"<<endl;
-  }
-  if ( i )
-    GroupPoints->LineEdit1->setText( QString::number( i ) + "_" + tr( "GEOM_POINT" ) + tr( "_S_" ) );
-  
-  displayPreview(); 
+  // if ( myOrderedSel.size() == myPoints->length() ) {
+  myPoints->length( myOrderedSel.size()  );  
+  k = 0;
+  for ( list<GEOM::GEOM_Object_var>::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(); 
 }
 
 
@@ -295,12 +359,12 @@ void BasicGUI_CurveDlg::SelectionIntoArgument()
 void BasicGUI_CurveDlg::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() ) );
 
-  // myGeomGUI->SetState( 0 );
+  globalSelection(); // close local contexts, if any
+  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
 
-  globalSelection( GEOM_POINT );
   ConstructorsClicked( getConstructorId() );
 }
 
@@ -372,13 +436,3 @@ bool BasicGUI_CurveDlg::execute( ObjectList& objects )
 
   return res;
 }
-
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void BasicGUI_CurveDlg::closeEvent( QCloseEvent* e )
-{
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
index 1aa2beac953ba58c141c37711de000ecbb4ab619..3ba5bfffd33daf23245026d8c754a800c1ba5d8f 100644 (file)
@@ -48,8 +48,6 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
 
 private:
   void                               Init();
index 96f46726efac91dbc9b24b2618136a4cbed03c60..86e19612e74cb03f459c5b1435d2462b33beff2d 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -77,7 +84,7 @@ BasicGUI_EllipseDlg::BasicGUI_EllipseDlg( GeometryGUI* theGeometryGUI, QWidget*
   layout->addWidget( GroupPoints );
   /***************************************************************/
 
-  setHelpFileName( "ellipse.htm" );
+  setHelpFileName( "create_ellipse_page.html" );
 
   Init();
 }
@@ -100,12 +107,11 @@ void BasicGUI_EllipseDlg::Init()
 {
   /* init variables */
   myEditCurrentArgument = GroupPoints->LineEdit1;
-  globalSelection( GEOM_POINT );
+  globalSelection(); // close local contexts, if any
+  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
 
   myPoint = myDir = GEOM::GEOM_Object::_nil();
 
-  // myGeomGUI->SetState( 0 );
-
   /* Get setting of step value from file configuration */
   SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
   double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
@@ -113,8 +119,8 @@ void BasicGUI_EllipseDlg::Init()
   double aMajorR( 200. ), aMinorR( 100. );
 
   /* min, max, step and decimals for spin boxes & initial values */
-  initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, step, 3 );
-  initSpinBox( GroupPoints->SpinBox_DY, 0.001, COORD_MAX, step, 3 );
+  initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupPoints->SpinBox_DY, 0.001, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
   GroupPoints->SpinBox_DX->setValue( aMajorR );
   GroupPoints->SpinBox_DY->setValue( aMinorR );
 
@@ -139,8 +145,8 @@ void BasicGUI_EllipseDlg::Init()
   connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupPoints->SpinBox_DY, SLOT( SetStep( double ) ) );
   // <<-
   
-  connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 
-         SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
+  connect( myGeomGUI->getApp()->selectionMgr(), 
+         SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
   initName( tr( "GEOM_ELLIPSE" ) );
 }
@@ -173,7 +179,9 @@ bool BasicGUI_EllipseDlg::ClickOnApply()
   GroupPoints->LineEdit1->setText( "" );
   GroupPoints->LineEdit2->setText( "" );
   myEditCurrentArgument = GroupPoints->LineEdit1;
-  globalSelection( GEOM_POINT );
+  //globalSelection(GEOM_POINT);
+  globalSelection(); // close local contexts, if any
+  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   
   return true;
 }
@@ -193,9 +201,50 @@ void BasicGUI_EllipseDlg::SelectionIntoArgument()
   }
 
   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 ) {  
-    myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+  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();
+      TColStd_IndexedMapOfInteger aMap;
+      aSelMgr->GetIndexes( anIO, 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 = 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 == GroupPoints->LineEdit1 ) myPoint = aSelectedObject;
     else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myDir   = aSelectedObject;
   }
@@ -211,15 +260,17 @@ 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;
   
   myEditCurrentArgument->setFocus();
+  globalSelection(); // close local contexts, if any
   if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
-    globalSelection( GEOM_LINE );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   else
-    globalSelection( GEOM_POINT );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   SelectionIntoArgument();
 }
 
@@ -245,8 +296,8 @@ void BasicGUI_EllipseDlg::LineEditReturnPressed()
 void BasicGUI_EllipseDlg::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->setFocus();
   myEditCurrentArgument = GroupPoints->LineEdit1;
@@ -255,7 +306,9 @@ void BasicGUI_EllipseDlg::ActivateThisDialog()
   GroupPoints->LineEdit2->setText( "" );
 
   myPoint = myDir = GEOM::GEOM_Object::_nil();
-  globalSelection( GEOM_POINT );
+  //globalSelection( GEOM_POINT );
+  globalSelection(); // close local contexts, if any
+  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
 }
 
 //=================================================================================
@@ -328,10 +381,15 @@ bool BasicGUI_EllipseDlg::execute( ObjectList& objects )
 }
 
 //=================================================================================
-// function : closeEvent
-// purpose  :
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
 //=================================================================================
-void BasicGUI_EllipseDlg::closeEvent( QCloseEvent* e )
+void BasicGUI_EllipseDlg::addSubshapesToStudy()
 {
-  GEOMBase_Skeleton::closeEvent( e );
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+  objMap[GroupPoints->LineEdit1->text()] = myPoint;
+  objMap[GroupPoints->LineEdit2->text()] = myDir;
+
+  addSubshapesToFather( objMap );
 }
index 060c6f4777bb2e9c00cea69479540f355ef3bb1f..874df58c24b9cbbdd4119f17358d501a1c2bf78c 100644 (file)
@@ -46,8 +46,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
   
 private:
   void                               Init();
index 3a21df49dd3a889c5e3893f5dc75658182aa82a4..707ecea62635989713a8b7cfacb79af463a96f96 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -49,14 +55,14 @@ BasicGUI_LineDlg::BasicGUI_LineDlg( GeometryGUI* theGeometryGUI, QWidget* parent
 {
   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" ) );
  
   /***************************************************************/
   mainFrame()->GroupConstructors->setTitle( tr( "GEOM_LINE" ) );
   mainFrame()->RadioButton1->setIcon( image0 );
-  mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose );
-  mainFrame()->RadioButton2->close();
+  mainFrame()->RadioButton2->setIcon( image2 );
   mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
   mainFrame()->RadioButton3->close();
 
@@ -67,17 +73,26 @@ BasicGUI_LineDlg::BasicGUI_LineDlg( GeometryGUI* theGeometryGUI, QWidget* parent
   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 );
 
+  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 );
+
   QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
   layout->setMargin( 0 ); layout->setSpacing( 6 );
   layout->addWidget( GroupPoints );
+  layout->addWidget( GroupFaces );
 
   /***************************************************************/
 
-  setHelpFileName( "line.htm" );
+  setHelpFileName( "create_line_page.html" );
 
   Init();
 }
@@ -99,30 +114,36 @@ BasicGUI_LineDlg::~BasicGUI_LineDlg()
 void BasicGUI_LineDlg::Init()
 {
   /* init variables */
-  myEditCurrentArgument = GroupPoints->LineEdit1;
-
-  myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil();
-
-  // myGeomGUI->SetState( 0 );
-  globalSelection( GEOM_POINT );
+  //myEditCurrentArgument = GroupPoints->LineEdit1;
+  //myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil();
+  //globalSelection(); // close local contexts, if any
+  //localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
        
   /* signals and slots connections */
   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( 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( 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( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( SelectionIntoArgument() ) );
   
   initName( tr( "GEOM_LINE" ) );
+
+  ConstructorsClicked( 0 );
 }
 
 
@@ -146,9 +167,55 @@ bool BasicGUI_LineDlg::ClickOnApply()
     return false;
   
   initName();
+
+  myEditCurrentArgument->setText( "" );
+  ConstructorsClicked( getConstructorId() );
+
   return true;
 }
 
+//=================================================================================
+// function : ConstructorsClicked()
+// purpose  : Radio button management
+//=================================================================================
+void BasicGUI_LineDlg::ConstructorsClicked( int constructorId )
+{  
+  switch ( constructorId ) {
+  case 0:
+    {
+      globalSelection(); // close local contexts, if any
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
+      
+      myEditCurrentArgument = GroupPoints->LineEdit1;
+      myEditCurrentArgument->setText( "" );
+      myPoint1 = GEOM::GEOM_Object::_nil();
+      myPoint2 = GEOM::GEOM_Object::_nil();
+
+      GroupPoints->show();
+      GroupFaces->hide();
+      break;
+    }
+  case 1:
+    {
+      globalSelection(); // close local contexts, if any
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_FACE );
+
+      myEditCurrentArgument = GroupFaces->LineEdit1;
+      myEditCurrentArgument->setText("");
+      myFace1 = GEOM::GEOM_Object::_nil();
+      myFace2 = GEOM::GEOM_Object::_nil();
+      GroupPoints->hide();
+      GroupFaces->show();
+      break;
+    }
+  }
+
+  qApp->processEvents();
+  updateGeometry();
+  resize( minimumSize() );
+
+  SelectionIntoArgument();
+}
 
 //=================================================================================
 // function : SelectionIntoArgument()
@@ -161,6 +228,8 @@ void BasicGUI_LineDlg::SelectionIntoArgument()
   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();
     return;
   }
 
@@ -168,9 +237,50 @@ void BasicGUI_LineDlg::SelectionIntoArgument()
   Standard_Boolean aRes = Standard_False;
   GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
   if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
-    myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+    QString aName = GEOMBase::GetName( aSelectedObject );
+    
+    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();
+      TColStd_IndexedMapOfInteger aMap;
+      aSelMgr->GetIndexes( firstIObject(), aMap );
+      if ( aMap.Extent() == 1 ) { // Local Selection
+       int anIndex = aMap( 1 );
+        if ( aNeedType == TopAbs_FACE )
+          aName += QString( ":face_%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 );
+
     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;
   }
   
   displayPreview();
@@ -186,6 +296,8 @@ 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;
   myEditCurrentArgument->setFocus();
   SelectionIntoArgument();
 }
@@ -200,6 +312,8 @@ 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 return;
   GEOMBase_Skeleton::LineEditReturnPressed();
 }
@@ -212,18 +326,10 @@ void BasicGUI_LineDlg::LineEditReturnPressed()
 void BasicGUI_LineDlg::ActivateThisDialog()
 {
   GEOMBase_Skeleton::ActivateThisDialog();
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 
-          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
-
-  // myGeomGUI->SetState( 0 );
-  globalSelection( GEOM_POINT );
-
-  myEditCurrentArgument = GroupPoints->LineEdit1;
-  myEditCurrentArgument->setFocus();
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( SelectionIntoArgument() ) );
 
-  GroupPoints->LineEdit1->setText( "" );
-  GroupPoints->LineEdit2->setText( "" );
-  myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil();
+  ConstructorsClicked( getConstructorId() );
 }
 
 //=================================================================================
@@ -232,7 +338,6 @@ void BasicGUI_LineDlg::ActivateThisDialog()
 //=================================================================================
 void BasicGUI_LineDlg::DeactivateActiveDialog()
 {
-  // myGeomGUI->SetState( -1 );
   GEOMBase_Skeleton::DeactivateActiveDialog();
 }
 
@@ -261,7 +366,12 @@ GEOM::GEOM_IOperations_ptr BasicGUI_LineDlg::createOperation()
 //=================================================================================
 bool BasicGUI_LineDlg::isValid( QString& msg )
 {
-  return !myPoint1->_is_nil() && !myPoint2->_is_nil();
+  const int id = getConstructorId();
+  if ( id == 0 )
+    return !myPoint1->_is_nil() && !myPoint2->_is_nil();
+  else if ( id == 1 )
+    return !myFace1->_is_nil() && !myFace2->_is_nil();
+  return false;
 }
 
 //=================================================================================
@@ -270,18 +380,41 @@ bool BasicGUI_LineDlg::isValid( QString& msg )
 //=================================================================================
 bool BasicGUI_LineDlg::execute( ObjectList& objects )
 {
-  GEOM::GEOM_Object_var anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeLineTwoPnt( myPoint1, myPoint2 );
+  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;
+  }
+  
   if ( !anObj->_is_nil() )
     objects.push_back( anObj._retn() );
-  return true;
+
+  return res;
 }
 
 //=================================================================================
-// function : closeEvent
-// purpose  :
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
 //=================================================================================
-void BasicGUI_LineDlg::closeEvent( QCloseEvent* e )
+void BasicGUI_LineDlg::addSubshapesToStudy()
 {
-  GEOMBase_Skeleton::closeEvent( e );
+  QMap<QString, GEOM::GEOM_Object_var> 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;
+  }
+  addSubshapesToFather( objMap );
 }
-
index 25623eff187f6549757410c0494de5737f43ddd1..50e8a799d0ead16c989ac56374274dea25569d94 100644 (file)
@@ -47,8 +47,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
     
 private:
   void                               Init();
@@ -57,8 +56,11 @@ private:
 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();
@@ -66,6 +68,7 @@ private slots:
 
   void                               ActivateThisDialog();
   void                               DeactivateActiveDialog();
+  void                               ConstructorsClicked( int );    
     
   void                               LineEditReturnPressed();
   void                               SelectionIntoArgument();
index 1cf9c9d466081f8e6cb22f7ee472172e114349a5..3f0f2fc246262bed2f407d9f894ba2637fe65886 100644 (file)
@@ -144,7 +144,7 @@ BasicGUI_MarkerDlg::BasicGUI_MarkerDlg( GeometryGUI* theGeometryGUI, QWidget* th
   layout->addWidget( Group1 );
   layout->addWidget( Group2 );
 
-  setHelpFileName( "local_coordinate_system.htm" );
+  setHelpFileName( "create_lcs_page.html" );
 
   Init();
 }
@@ -191,7 +191,7 @@ void BasicGUI_MarkerDlg::Init()
   connect( buttonOk(),          SIGNAL( clicked() ), this, SLOT( onOk() ) );
   connect( buttonApply(),       SIGNAL( clicked() ), this, SLOT( onApply() ) );
 
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+  connect( myGeomGUI->getApp()->selectionMgr(),
           SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionDone() ) );
 
   initName( tr( "LCS_NAME" ) );
@@ -200,7 +200,7 @@ void BasicGUI_MarkerDlg::Init()
   double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
 
   for ( DataMap::iterator anIter = myData.begin(); anIter != myData.end(); ++anIter ) {
-    initSpinBox( anIter.value(), COORD_MIN, COORD_MAX, step, 3 );
+    initSpinBox( anIter.value(), COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
     connect( anIter.value(), SIGNAL( valueChanged( double ) ),
              this, SLOT( onValueChanged( double ) ) );
   }
@@ -240,6 +240,7 @@ void BasicGUI_MarkerDlg::Init()
 void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId )
 {
   if ( myConstructorId == constructorId && myConstructorId == 0 ) {
+    globalSelection(); // close local contexts, if any
     localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
     activate( GEOM_MARKER );
     displayPreview();
@@ -248,7 +249,7 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId )
 
   myConstructorId = constructorId;
 
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
+  disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
 
   switch ( constructorId ) {
   case 0:
@@ -256,6 +257,7 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId )
       Group1->hide();
       Group2->hide();
       aMainGrp->show();
+      globalSelection(); // close local contexts, if any
       localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
       activate( GEOM_MARKER );
       break;
@@ -277,7 +279,8 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId )
       Group1->show();
       Group2->show();
       
-      globalSelection( GEOM_POINT );
+      globalSelection(); // close local contexts, if any
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
       myEditCurrentArgument = Group2->LineEdit1;
       Group2->LineEdit1->setText( "" );
       Group2->LineEdit2->setText( "" );
@@ -290,8 +293,8 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId )
   updateGeometry();
   resize( minimumSize() );
   
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-          SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionDone() ) );
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( onSelectionDone() ) );
   onSelectionDone();
 }
 
@@ -364,12 +367,12 @@ void BasicGUI_MarkerDlg::onSelectionDone0()
         else {
          TColStd_IndexedMapOfInteger aMap;
          aSelMgr->GetIndexes( anIO, aMap );
-         if ( aMap.Extent() == 1 ) {
+         if ( aMap.Extent() == 1 ) { // Local Selection
            int anIndex = aMap( 1 );
            TopTools_IndexedMapOfShape aShapes;
            TopExp::MapShapes( aShape, aShapes );
            aShape = aShapes.FindKey( anIndex );
-           aSelMgr->clearSelected();
+           aSelMgr->clearSelected(); // ???
          }
 
           if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX ) {
@@ -399,7 +402,6 @@ void BasicGUI_MarkerDlg::onSelectionDone()
   }
 
   myEditCurrentArgument->setText( "" );
-  QString aName;
 
   if ( IObjectCount() == 1 ) {
     Standard_Boolean aRes = Standard_False;
@@ -407,7 +409,7 @@ void BasicGUI_MarkerDlg::onSelectionDone()
     GEOM::GEOM_Object_var aSelectedObj = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
 
     if ( !CORBA::is_nil( aSelectedObj ) && aRes ) {
-      aName = GEOMBase::GetName( aSelectedObj );
+      QString aName = GEOMBase::GetName( aSelectedObj );
       
       if ( getConstructorId() == 1 ) { // by shape position
         // Get shape's position
@@ -448,7 +450,9 @@ void BasicGUI_MarkerDlg::onSelectionDone()
       else if ( getConstructorId() == 2 ) { // by point and two vectors
         TopoDS_Shape aShape;
         if ( GEOMBase::GetShape( aSelectedObj, aShape, TopAbs_SHAPE ) ) {
-          GEOM::short_array anIndexes;
+          TopAbs_ShapeEnum aNeedType = TopAbs_EDGE;
+          if ( myEditCurrentArgument == Group2->LineEdit1 )
+            aNeedType = TopAbs_VERTEX;
          
           TColStd_IndexedMapOfInteger aMap;
           LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
@@ -456,6 +460,11 @@ void BasicGUI_MarkerDlg::onSelectionDone()
 
           if ( !aMap.IsEmpty() ) {
             int anIndex = aMap( 1 );
+            if ( aNeedType == TopAbs_EDGE )
+              aName += QString( "_edge_%1" ).arg( anIndex );
+            else
+              aName += QString( "_vertex_%1" ).arg( anIndex );
+
             TopTools_IndexedMapOfShape aShapes;
             TopExp::MapShapes( aShape, aShapes );
             aShape = aShapes.FindKey( anIndex );
@@ -563,15 +572,20 @@ void BasicGUI_MarkerDlg::SetEditCurrentArgument()
   }
   else if ( send == Group2->PushButton1 ) {
     myEditCurrentArgument = Group2->LineEdit1;
-    globalSelection( GEOM_POINT );
+    //globalSelection( GEOM_POINT );
+    globalSelection(); // close local contexts, if any
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   }
   else if ( send == Group2->PushButton2 ) {
     myEditCurrentArgument = Group2->LineEdit2;
-    globalSelection( GEOM_LINE );
+    //globalSelection( GEOM_LINE );
+    globalSelection(); // close local contexts, if any
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   else if ( send == Group2->PushButton3 ) {
     myEditCurrentArgument = Group2->LineEdit3;
-    globalSelection( GEOM_LINE );
+    globalSelection(); // close local contexts, if any
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   
   myEditCurrentArgument->setFocus();
@@ -597,8 +611,8 @@ void BasicGUI_MarkerDlg::LineEditReturnPressed()
 void BasicGUI_MarkerDlg::onActivate()
 {
   GEOMBase_Skeleton::ActivateThisDialog();
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-          SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionDone() ) );
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( onSelectionDone() ) );
 
   ConstructorsClicked( getConstructorId() );
 }
@@ -680,15 +694,6 @@ bool BasicGUI_MarkerDlg::execute( ObjectList& objects )
   return true;
 }
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void BasicGUI_MarkerDlg::closeEvent( QCloseEvent* e )
-{
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 //=================================================================================
 // function : onValueChanged
 // purpose  :
index 104040e7647a3835debbff6dcf68d46abb186cb6..7dc5cd9a9132879477409adad9fb03fd3a61f45b 100644 (file)
@@ -52,7 +52,6 @@ protected:
   virtual                       GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                  isValid( QString& );
   virtual bool                  execute( ObjectList& );
-  virtual void                  closeEvent( QCloseEvent* );
   virtual void                  displayPreview ( const bool   = false,
                                                  const bool   = true,
                                                  const bool   = true,
index 73c8b6a6356ccfd12ada4b5352bdb7b5115e918c..b5508490af79e6ffe956709888f8dfd794235ed8 100644 (file)
 #include <LightApp_SelectionMgr.h>
 
 #include <TColStd_MapOfInteger.hxx>
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
 
 #include <GEOMImpl_Types.hxx>
 
@@ -102,7 +108,7 @@ BasicGUI_PlaneDlg::BasicGUI_PlaneDlg( GeometryGUI* theGeometryGUI, QWidget* pare
   layout->addWidget( GroupFace );
   /***************************************************************/
 
-  setHelpFileName( "plane.htm" );
+  setHelpFileName( "create_plane_page.html" );
 
   Init();
 }
@@ -137,11 +143,11 @@ void BasicGUI_PlaneDlg::Init()
   double aTrimSize = 2000.0;
 
   /* min, max, step and decimals for spin boxes */
-  initSpinBox( GroupPntDir->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 );
+  initSpinBox( GroupPntDir->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
   GroupPntDir->SpinBox_DX->setValue( aTrimSize );
-  initSpinBox( Group3Pnts->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 );
+  initSpinBox( Group3Pnts->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
   Group3Pnts->SpinBox_DX->setValue( aTrimSize );
-  initSpinBox( GroupFace->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 );
+  initSpinBox( GroupFace->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
   GroupFace->SpinBox_DX->setValue( aTrimSize );
 
   /* signals and slots connections */
@@ -177,7 +183,7 @@ void BasicGUI_PlaneDlg::Init()
   connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupFace->SpinBox_DX,   SLOT( SetStep( double ) ) );
   // <<-
 
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
   initName( tr( "GEOM_PLANE" ) );
 
@@ -191,7 +197,7 @@ void BasicGUI_PlaneDlg::Init()
 //=================================================================================
 void BasicGUI_PlaneDlg::ConstructorsClicked( int constructorId )
 {
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
+  disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
   myPoint = myDir = myPoint1 = myPoint2 = myPoint3 = myFace = GEOM::GEOM_Object::_nil();
 
   switch ( constructorId ) {
@@ -206,7 +212,8 @@ void BasicGUI_PlaneDlg::ConstructorsClicked( int constructorId )
       GroupPntDir->LineEdit2->setText( "" );
       
       /* for the first argument */
-      globalSelection( GEOM_POINT );
+      globalSelection(); // close local contexts, if any
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
       break;
     }
   case 1: /* plane from 3 points */
@@ -221,7 +228,8 @@ void BasicGUI_PlaneDlg::ConstructorsClicked( int constructorId )
       Group3Pnts->LineEdit3->setText( "" );
       
       /* for the first argument */
-      globalSelection( GEOM_POINT );
+      globalSelection(); // close local contexts, if any
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
       break;
     }
   case 2: /* plane from a planar face selection */
@@ -248,8 +256,8 @@ void BasicGUI_PlaneDlg::ConstructorsClicked( int constructorId )
   resize( minimumSize() );
 
   myEditCurrentArgument->setFocus();
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( SelectionIntoArgument() ) );
 }
 
 
@@ -300,7 +308,49 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument()
   Standard_Boolean aRes = Standard_False;
   GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
   if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
-    myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+    QString aName = GEOMBase::GetName( aSelectedObject );
+
+    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();
+      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 );
+        else if (aNeedType == TopAbs_FACE)
+          aName += QString( ":face_%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 );
+
     if      ( myEditCurrentArgument == GroupPntDir->LineEdit1 ) myPoint  = aSelectedObject;
     else if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) myDir    = aSelectedObject;
     else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 )  myPoint1 = aSelectedObject;
@@ -320,6 +370,7 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument()
 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;
@@ -330,17 +381,20 @@ void BasicGUI_PlaneDlg::SetEditCurrentArgument()
 
   myEditCurrentArgument->setFocus();
 
-  if ( myEditCurrentArgument == GroupPntDir->LineEdit2 )
-    globalSelection( GEOM_LINE );
+  if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) {
+    globalSelection(); // close local contexts, if any
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
+  }
   else if ( myEditCurrentArgument == GroupFace->LineEdit1 ) {
-    //globalSelection( GEOM_PLANE );
     TColStd_MapOfInteger aMap;
     aMap.Add( GEOM_PLANE );
     aMap.Add( GEOM_MARKER );
     globalSelection( aMap );
   }
-  else
-    globalSelection( GEOM_POINT );
+  else { // 3 Pnts
+    globalSelection(); // close local contexts, if any
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
+  }
 
   SelectionIntoArgument();
 }
@@ -372,10 +426,8 @@ void BasicGUI_PlaneDlg::LineEditReturnPressed()
 void BasicGUI_PlaneDlg::ActivateThisDialog()
 {
   GEOMBase_Skeleton::ActivateThisDialog();
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
-
-  // myGeomGUI->SetState( 0 );
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( SelectionIntoArgument() ) );
 
   ConstructorsClicked( getConstructorId() );
 }
@@ -386,7 +438,6 @@ void BasicGUI_PlaneDlg::ActivateThisDialog()
 //=================================================================================
 void BasicGUI_PlaneDlg::DeactivateActiveDialog()
 {
-  // myGeomGUI->SetState( -1 );
   GEOMBase_Skeleton::DeactivateActiveDialog();
 }
 
@@ -493,13 +544,27 @@ bool BasicGUI_PlaneDlg::execute( ObjectList& objects )
   
   return res;
 }
-
 //=================================================================================
-// function : closeEvent
-// purpose  :
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
 //=================================================================================
-void BasicGUI_PlaneDlg::closeEvent( QCloseEvent* e )
+void BasicGUI_PlaneDlg::addSubshapesToStudy()
 {
-  GEOMBase_Skeleton::closeEvent( e );
-}
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
 
+  switch ( getConstructorId() ) {
+  case 0:
+    objMap[GroupPntDir->LineEdit1->text()] = myPoint;
+    objMap[GroupPntDir->LineEdit2->text()] = myDir;
+    break;
+  case 1:
+    objMap[Group3Pnts->LineEdit1->text()] = myPoint1;
+    objMap[Group3Pnts->LineEdit2->text()] = myPoint2;
+    objMap[Group3Pnts->LineEdit3->text()] = myPoint3;
+    break;
+  case 2:
+    objMap[GroupFace->LineEdit1->text()] = myFace;
+    break;
+  }
+  addSubshapesToFather( objMap );
+}
index f8c81a2f97a2b6b182e0db9f4c00093a689b8953..acb91a404f7c4283832d5621089a9929a955b00a 100644 (file)
@@ -49,8 +49,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index 5a2a9c4aea4f5c3a4713c6d87ad5891ab4c86303..beef4805cc5a16cbe8c94df6f20f98f6a9cbdfd2 100644 (file)
@@ -64,6 +64,7 @@ BasicGUI_PointDlg::BasicGUI_PointDlg( GeometryGUI* theGeometryGUI, QWidget* pare
   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") ) );
 
   setWindowTitle( tr( "GEOM_POINT_TITLE" ) );
 
@@ -72,6 +73,8 @@ BasicGUI_PointDlg::BasicGUI_PointDlg( GeometryGUI* theGeometryGUI, QWidget* pare
   mainFrame()->RadioButton1->setIcon( image0 );
   mainFrame()->RadioButton2->setIcon( image3 );
   mainFrame()->RadioButton3->setIcon( image1 );
+  mainFrame()->RadioButton4->show();
+  mainFrame()->RadioButton4->setIcon( image4 );
 
   GroupXYZ = new DlgRef_3Spin( centralWidget() );
   GroupXYZ->GroupBox1->setTitle( tr( "GEOM_COORDINATES" ) );
@@ -93,6 +96,13 @@ BasicGUI_PointDlg::BasicGUI_PointDlg( GeometryGUI* theGeometryGUI, QWidget* pare
   GroupRefPoint->TextLabel3->setText( tr( "GEOM_DY" ) );
   GroupRefPoint->TextLabel4->setText( tr( "GEOM_DZ" ) );
 
+  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 );
+
   myCoordGrp = new QGroupBox( tr( "GEOM_COORDINATES" ), centralWidget() );
   QGridLayout* myCoordGrpLayout = new QGridLayout( myCoordGrp );
   myCoordGrpLayout->addWidget( new QLabel( tr( "GEOM_X" ), myCoordGrp ), 0, 0 );
@@ -110,6 +120,7 @@ BasicGUI_PointDlg::BasicGUI_PointDlg( GeometryGUI* theGeometryGUI, QWidget* pare
   layout->addWidget( GroupXYZ );
   layout->addWidget( GroupOnCurve );
   layout->addWidget( GroupRefPoint );
+  layout->addWidget( GroupLineIntersection );
   layout->addWidget( myCoordGrp );
 
   myX->setReadOnly( true );
@@ -126,6 +137,7 @@ BasicGUI_PointDlg::BasicGUI_PointDlg( GeometryGUI* theGeometryGUI, QWidget* pare
   myY->setPalette( aPal );
   myZ->setPalette( aPal );
 
+  //  setHelpFileName( "create_point_page.html" );
   setHelpFileName( "point.htm" );
  
   Init();
@@ -149,6 +161,8 @@ void BasicGUI_PointDlg::Init()
 {
   GroupOnCurve->LineEdit1->setReadOnly( true );
   GroupRefPoint->LineEdit1->setReadOnly( true );
+  GroupLineIntersection->LineEdit1->setReadOnly( true );
+  GroupLineIntersection->LineEdit2->setReadOnly( true );
 
   myEdge = GEOM::GEOM_Object::_nil();
   myRefPoint = GEOM::GEOM_Object::_nil();
@@ -160,23 +174,23 @@ void BasicGUI_PointDlg::Init()
   double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
   
   /* min, max, step and decimals for spin boxes */
-  initSpinBox( GroupXYZ->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupXYZ->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupXYZ->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
+  initSpinBox( GroupXYZ->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
+  initSpinBox( GroupXYZ->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
+  initSpinBox( GroupXYZ->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
   GroupXYZ->SpinBox_DX->setValue( 0.0 );
   GroupXYZ->SpinBox_DY->setValue( 0.0 );
   GroupXYZ->SpinBox_DZ->setValue( 0.0 );
 
-  initSpinBox( GroupRefPoint->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupRefPoint->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupRefPoint->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
+  initSpinBox( GroupRefPoint->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
+  initSpinBox( GroupRefPoint->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
+  initSpinBox( GroupRefPoint->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 ); // 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;
 
-  initSpinBox( GroupOnCurve->SpinBox_DX, 0., 1., step, 3 );
+  initSpinBox( GroupOnCurve->SpinBox_DX, 0., 1., step, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
   GroupOnCurve->SpinBox_DX->setValue( 0.5 );
 
   /* signals and slots connections */
@@ -191,6 +205,11 @@ void BasicGUI_PointDlg::Init()
   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( 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 ) ) );
@@ -209,8 +228,9 @@ void BasicGUI_PointDlg::Init()
   connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupRefPoint->SpinBox_DZ, SLOT( SetStep( double ) ) );
   // <<-
 
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 
-          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );  
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged() ),
+          this,  SLOT(SelectionIntoArgument() ) );
+
   
   initName( tr( "GEOM_VERTEX" ) );
   
@@ -224,6 +244,8 @@ void BasicGUI_PointDlg::Init()
 //=================================================================================
 void BasicGUI_PointDlg::ConstructorsClicked(int constructorId)
 {  
+  globalSelection(); // close local contexts, if any
+
   switch ( constructorId ) {
   case 0:
     {
@@ -231,6 +253,7 @@ void BasicGUI_PointDlg::ConstructorsClicked(int constructorId)
       
       GroupRefPoint->hide();
       GroupOnCurve->hide();
+      GroupLineIntersection->hide();
 
       myCoordGrp->hide();
 
@@ -243,10 +266,11 @@ void BasicGUI_PointDlg::ConstructorsClicked(int constructorId)
       myEditCurrentArgument->setText( "" );
       myRefPoint = GEOM::GEOM_Object::_nil();
       
-      globalSelection( GEOM_POINT );
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
       
       GroupXYZ->hide();
       GroupOnCurve->hide();
+      GroupLineIntersection->hide();
       
       GroupRefPoint->show();
       
@@ -259,16 +283,36 @@ void BasicGUI_PointDlg::ConstructorsClicked(int constructorId)
       myEditCurrentArgument->setText( "" );
       myEdge = GEOM::GEOM_Object::_nil();
 
-      globalSelection( GEOM_EDGE );
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
 
       GroupXYZ->hide();
       GroupRefPoint->hide();
+      GroupLineIntersection->hide();
 
       GroupOnCurve->show();
       
       myCoordGrp->show();
       break;
     }
+  case 3:
+    {
+      myEditCurrentArgument = GroupLineIntersection->LineEdit1;
+      GroupLineIntersection->LineEdit1->setText( "" );
+      GroupLineIntersection->LineEdit2->setText( "" );
+      myLine1 = GEOM::GEOM_Object::_nil();
+      myLine2 = GEOM::GEOM_Object::_nil();
+
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
+
+      GroupXYZ->hide();
+      GroupRefPoint->hide();
+      GroupOnCurve->hide();
+
+      myCoordGrp->hide();
+
+      GroupLineIntersection->show();
+      break;
+    }
   }
 
   myX->setText( "" );
@@ -330,31 +374,46 @@ void BasicGUI_PointDlg::SelectionIntoArgument()
     Handle(SALOME_InteractiveObject) anIO = firstIObject();
     GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
     if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
-      if ( id == 0 ) {
-        // get CORBA reference to data object
-        TopoDS_Shape aShape = myGeomGUI->GetShapeReader().GetShape( myGeomGUI->GetGeomGen(), aSelectedObject );
-        if ( aShape.IsNull() )
-          return;
-
-        if ( aShape.ShapeType() != TopAbs_VERTEX ) {
-          TColStd_IndexedMapOfInteger aMap;
-          LightApp_Application* anApp =
-            (LightApp_Application*)(SUIT_Session::session()->activeApplication());
-          anApp->selectionMgr()->GetIndexes( anIO, aMap );
+      QString aName = GEOMBase::GetName(aSelectedObject);
+
+      TopoDS_Shape aShape;
+      if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
+        TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX;
+        if ( id == 2 || id == 3 )
+          aNeedType = TopAbs_EDGE;
+
+        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 );
+          else
+            aName += QString( ":vertex_%1" ).arg( anIndex );
+
+         //Find SubShape Object in Father
+         GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObject, aName );
          
-          if ( aMap.Extent() == 1 ) {
-            int anIndex = aMap( 1 );
-            TopTools_IndexedMapOfShape aShapes;
-            TopExp::MapShapes( aShape, aShapes );
-            aShape = aShapes.FindKey( anIndex );
-           
-            if ( aShape.IsNull() || aShape.ShapeType() != TopAbs_VERTEX )
-              return;
+         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 = "";
+            if ( id == 0 ) return;
           }
-          else
-            return;
         }
+      }
 
+      if ( id == 0 ) {
+        if ( aShape.IsNull() ) return;
         gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) );
         GroupXYZ->SpinBox_DX->setValue( aPnt.X() );
         GroupXYZ->SpinBox_DY->setValue( aPnt.Y() );
@@ -362,11 +421,21 @@ void BasicGUI_PointDlg::SelectionIntoArgument()
       }
       else if ( id == 1 ) {
         myRefPoint = aSelectedObject;
-        GroupRefPoint->LineEdit1->setText( GEOMBase::GetName( aSelectedObject ) );
+        GroupRefPoint->LineEdit1->setText( aName );
       }
       else if ( id == 2 ) {
         myEdge = aSelectedObject;
-        GroupOnCurve->LineEdit1->setText( GEOMBase::GetName( aSelectedObject ) );
+        GroupOnCurve->LineEdit1->setText( aName );
+      }
+      else if ( id == 3 ) {
+        if ( myEditCurrentArgument == GroupLineIntersection->LineEdit1 ) {
+          myLine1 = aSelectedObject;
+          myEditCurrentArgument->setText( aName );
+        }
+        else if ( myEditCurrentArgument == GroupLineIntersection->LineEdit2 ) {
+          myLine2 = aSelectedObject;
+          myEditCurrentArgument->setText( aName );
+        }
       }
     }
   }
@@ -382,11 +451,13 @@ void BasicGUI_PointDlg::SelectionIntoArgument()
 void BasicGUI_PointDlg::LineEditReturnPressed()
 {
   QLineEdit* send = (QLineEdit*)sender();
-  if ( send == GroupRefPoint->LineEdit1 || send == GroupOnCurve->LineEdit1 )
-    {
-      myEditCurrentArgument = send;
-      GEOMBase_Skeleton::LineEditReturnPressed();
-    }
+  if ( send == GroupRefPoint->LineEdit1         || 
+       send == GroupOnCurve->LineEdit1          ||
+       send == GroupLineIntersection->LineEdit1 || 
+       send == GroupLineIntersection->LineEdit2  ) {
+    myEditCurrentArgument = send;
+    GEOMBase_Skeleton::LineEditReturnPressed();
+  }
 }
 
 
@@ -396,19 +467,34 @@ void BasicGUI_PointDlg::LineEditReturnPressed()
 //=================================================================================
 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 ) {
     GroupRefPoint->LineEdit1->setFocus();
     myEditCurrentArgument = GroupRefPoint->LineEdit1;
     
-    globalSelection( GEOM_POINT );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   }
   else if ( send == GroupOnCurve->PushButton1 ) {
     GroupOnCurve->LineEdit1->setFocus();
     myEditCurrentArgument = GroupOnCurve->LineEdit1;
     
-    globalSelection( GEOM_EDGE );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
+  }
+  else if ( send == GroupLineIntersection->PushButton1 ) {
+    GroupLineIntersection->LineEdit1->setFocus();
+    myEditCurrentArgument = GroupLineIntersection->LineEdit1;
+
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
+  }
+  else if ( send == GroupLineIntersection->PushButton2 ) {
+    GroupLineIntersection->LineEdit2->setFocus();
+    myEditCurrentArgument = GroupLineIntersection->LineEdit2;
+
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
 }
 
@@ -502,6 +588,8 @@ bool BasicGUI_PointDlg::isValid( QString& /*msg*/ )
     return !myRefPoint->_is_nil();
   else if ( id == 2 )
     return !myEdge->_is_nil();
+  else if ( id == 3 )
+    return ( !myLine1->_is_nil() && !myLine2->_is_nil() );
   return false;
 }
 
@@ -542,6 +630,11 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects )
       MakePointOnCurve( myEdge, getParameter() );
     res = true;
     break;
+  case 3 :
+    anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->
+      MakePointOnLinesIntersection( myLine1, myLine2 );
+    res = true;
+    break;
   }
   
   if ( getConstructorId() == 1 || getConstructorId() == 2 ) {
@@ -567,10 +660,26 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects )
 }
 
 //=================================================================================
-// function : closeEvent
-// purpose  :
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
 //=================================================================================
-void BasicGUI_PointDlg::closeEvent( QCloseEvent* e )
+void BasicGUI_PointDlg::addSubshapesToStudy()
 {
-  GEOMBase_Skeleton::closeEvent( e );
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+  switch ( getConstructorId() ) {
+  case 0:
+    break;
+  case 1:
+    objMap[GroupRefPoint->LineEdit1->text()] = myRefPoint;
+    break;
+  case 2:
+    objMap[GroupOnCurve->LineEdit1->text()] = myEdge;
+    break;
+  case 3:
+    objMap[GroupLineIntersection->LineEdit1->text()] = myLine1;
+    objMap[GroupLineIntersection->LineEdit2->text()] = myLine2;
+    break;
+  }
+  addSubshapesToFather( objMap );
 }
index 064b5b954e858c753f225c4ddfd935a49128c234..4b0daf12770a99b5e5ed754ca87a8299b2f1be2f 100644 (file)
@@ -30,6 +30,7 @@
 
 class DlgRef_1Sel1Spin;
 class DlgRef_3Spin;
+class DlgRef_2Sel;
 class DlgRef_1Sel3Spin;
 
 class QLineEdit;
@@ -58,8 +59,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
@@ -69,10 +69,13 @@ private:
 private:
   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*                       GroupLineIntersection;
   
   QGroupBox*                         myCoordGrp;
   QLineEdit*                         myX;
index 5eceb11ffb331244eba232646a1382a3f416eec2..ab64e3125240ffebad24b1f4269d28abafe8a620 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -84,7 +90,7 @@ BasicGUI_VectorDlg::BasicGUI_VectorDlg( GeometryGUI* theGeometryGUI, QWidget* pa
   layout->addWidget( GroupDimensions );
   /***************************************************************/
 
-  setHelpFileName( "vector.htm" );
+  setHelpFileName( "create_vector_page.html" );
   
   /* Initialisations */
   Init();
@@ -117,9 +123,9 @@ void BasicGUI_VectorDlg::Init()
   double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
  
   /* min, max, step and decimals for spin boxes */
-  initSpinBox( GroupDimensions->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
+  initSpinBox( GroupDimensions->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 ); // VSR:TODO : DBL_DIGITS_DISPLAY
 
   double dx( 0. ), dy( 0. ), dz( 200. );
   GroupDimensions->SpinBox_DX->setValue( dx );
@@ -155,8 +161,8 @@ void BasicGUI_VectorDlg::Init()
 
   connect( GroupDimensions->CheckButton1, SIGNAL( stateChanged( int ) ), this, SLOT( ReverseVector( int ) ) );
 
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 
-          SIGNAL( currentSelectionChanged() ), this, SLOT(SelectionIntoArgument() ) );
+  connect( myGeomGUI->getApp()->selectionMgr(), 
+          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
   initName( tr("GEOM_VECTOR") );
 
@@ -170,7 +176,7 @@ void BasicGUI_VectorDlg::Init()
 //=================================================================================
 void BasicGUI_VectorDlg::ConstructorsClicked( int constructorId )
 {
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
+  disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
   myPoint1 = GEOM::GEOM_Object::_nil();
   myPoint2 = GEOM::GEOM_Object::_nil();
 
@@ -184,15 +190,17 @@ void BasicGUI_VectorDlg::ConstructorsClicked( int constructorId )
       GroupPoints->LineEdit1->setText( "" );
       GroupPoints->LineEdit2->setText( "" );
       
-      globalSelection( GEOM_POINT );
-      connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 
-              SIGNAL( currentSelectionChanged() ), this, SLOT(SelectionIntoArgument() ) );
+      globalSelection(); // close local contexts, if any
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
+      connect( myGeomGUI->getApp()->selectionMgr(), 
+              SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
       break;
     }
   case 1:
     {
       GroupPoints->hide();
       GroupDimensions->show();
+      globalSelection(); // close local contexts, if any
       
       double dx( 0. ), dy( 0. ), dz( 0. ); 
       GroupDimensions->SpinBox_DX->setValue( dx );
@@ -260,7 +268,38 @@ void BasicGUI_VectorDlg::SelectionIntoArgument()
   Standard_Boolean aRes = Standard_False;
   GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
   if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
-    myEditCurrentArgument->setText( 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();
+      TColStd_IndexedMapOfInteger aMap;
+      aSelMgr->GetIndexes( firstIObject(), 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
+         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);
+
     if      ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint1 = aSelectedObject;
     else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myPoint2 = aSelectedObject;
   }
@@ -304,8 +343,8 @@ void BasicGUI_VectorDlg::LineEditReturnPressed()
 void BasicGUI_VectorDlg::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() ) );
        
   ConstructorsClicked( getConstructorId() );
 }
@@ -316,7 +355,6 @@ void BasicGUI_VectorDlg::ActivateThisDialog()
 //=================================================================================
 void BasicGUI_VectorDlg::DeactivateActiveDialog()
 {
-  // myGeomGUI->SetState( -1 );
   GEOMBase_Skeleton::DeactivateActiveDialog();
 }
 
@@ -408,3 +446,21 @@ bool BasicGUI_VectorDlg::execute( ObjectList& objects )
   return res;
 }
 
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void BasicGUI_VectorDlg::addSubshapesToStudy()
+{
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+  switch ( getConstructorId() ) {
+  case 0:
+    objMap[GroupPoints->LineEdit1->text()] = myPoint1;
+    objMap[GroupPoints->LineEdit2->text()] = myPoint2;
+    break;
+  case 1:
+    return;
+  }
+  addSubshapesToFather( objMap );
+}
index bfb33b5786641aab8b9665762e38b57a9eeca1f5..74de94e0fd393a86f55bbfe5f6d1e19fdef47799 100644 (file)
@@ -48,6 +48,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index 2f35b628a53becfa7661784a7a56e7f482312310..f5a646c87fce22b7b4fe3ee719e2c6adb5b10db8 100644 (file)
@@ -42,6 +42,9 @@
 #include <gp_Pnt.hxx>
 #include <gp_Dir.hxx>
 #include <TColStd_MapOfInteger.hxx>
+#include <TopoDS_Shape.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
 
 // QT Includes
 #include <QCheckBox>
@@ -113,7 +116,7 @@ BasicGUI_WorkingPlaneDlg::BasicGUI_WorkingPlaneDlg( GeometryGUI* theGeometryGUI,
   layout->addWidget( Group3 );
   layout->addWidget( aReverseGroupBox );
   
-  setHelpFileName( "working_plane.htm" );
+  setHelpFileName( "create_wplane_page.html" );
 
   Init();
 }
@@ -207,7 +210,9 @@ void BasicGUI_WorkingPlaneDlg::ConstructorsClicked( int constructorId )
     }
   case 1:
     {
-      globalSelection( GEOM_LINE );
+      //globalSelection( GEOM_LINE );
+      GEOM::GEOM_Object_var anObj;
+      localSelection( anObj, TopAbs_EDGE );
       
       Group1->hide();
       Group3->hide();
@@ -285,6 +290,7 @@ bool BasicGUI_WorkingPlaneDlg::ClickOnApply()
 void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument()
 {
   myEditCurrentArgument->setText( "" );
+  QString aName;
 
   const int id = getConstructorId();
   if ( IObjectCount() != 1 ) {
@@ -306,14 +312,41 @@ void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument()
   if ( !aRes || CORBA::is_nil( aSelectedObject ) )
     return;
 
+  aName = GEOMBase::GetName(aSelectedObject);
+
   if ( myEditCurrentArgument == Group1->LineEdit1 )
     myFace = aSelectedObject;
-  else if ( myEditCurrentArgument == Group2->LineEdit1 )
-    myVectX = aSelectedObject;
-  else if ( myEditCurrentArgument == Group2->LineEdit2 )
-    myVectZ = aSelectedObject;
+  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();
+        TColStd_IndexedMapOfInteger aMap;
+        aSelMgr->GetIndexes( firstIObject(), 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 );
+         else
+           myVectZ = aShapesOp->GetSubShape( aSelectedObject, anIndex );
+        }
+        else {
+          if ( myEditCurrentArgument == Group2->LineEdit1 )
+            myVectX = aSelectedObject;
+          else
+            myVectZ = aSelectedObject;
+        }
+        aSelMgr->clearSelected();
+      }
+    }
+  }
 
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+  myEditCurrentArgument->setText( aName );
   
   updateWPlane();
 }
@@ -333,11 +366,13 @@ void BasicGUI_WorkingPlaneDlg::SetEditCurrentArgument()
   }
   else if ( send == Group2->PushButton1 ) {
     myEditCurrentArgument = Group2->LineEdit1;
-    globalSelection( GEOM_LINE );
+    GEOM::GEOM_Object_var anObj;
+    localSelection( anObj, TopAbs_EDGE );
   }
   else if ( send == Group2->PushButton2 ) {
     myEditCurrentArgument = Group2->LineEdit2;
-    globalSelection( GEOM_LINE );
+    GEOM::GEOM_Object_var anObj;
+    localSelection( anObj, TopAbs_EDGE );
   }
 
   myEditCurrentArgument->setFocus();
@@ -403,16 +438,6 @@ void BasicGUI_WorkingPlaneDlg::enterEvent( QEvent* )
     ActivateThisDialog();
 }
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void BasicGUI_WorkingPlaneDlg::closeEvent( QCloseEvent* e )
-{
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
-
 //=================================================================================
 // function : updateWPlane
 // purpose  :
@@ -531,9 +556,9 @@ bool BasicGUI_WorkingPlaneDlg::updateWPlane( const bool showPreview )
   
   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() );
+    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 );
   }
   
index ec931736feb55dca588ac55ae0817f35aef8c18a..f66f138984f046a5933577031e80909bb7c5951c 100644 (file)
@@ -47,9 +47,6 @@ public:
   BasicGUI_WorkingPlaneDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 );
   ~BasicGUI_WorkingPlaneDlg();
 
-protected:
-  virtual void          closeEvent( QCloseEvent* );
-
 private:
   void                  Init();
   void                  enterEvent( QEvent* );
index 40a17cb6df6ec7aac84f0bd51211a855fc6bce28..dc0749389631fd0a2351dda68fe9902f99d11d74 100644 (file)
@@ -87,7 +87,7 @@ BlocksGUI_BlockDlg::BlocksGUI_BlockDlg( GeometryGUI* theGeometryGUI, QWidget* pa
   layout->addWidget( Group6F );
   /***************************************************************/
 
-  setHelpFileName( "newentity_blocks.htm#HexahedralSolid" );
+  setHelpFileName( "build_by_blocks_page.html#hexa_solid_anchor" );
 
   Init();
 }
index e907d58b7e1dacf22b58e0ea16f122bba582badd..f968a1e9ca10a11588b4de1214dcb49cc496eb83 100644 (file)
@@ -76,7 +76,7 @@ BlocksGUI_ExplodeDlg::BlocksGUI_ExplodeDlg( GeometryGUI* theGeometryGUI, QWidget
   layout->addWidget( myGrp1 );
   /***************************************************************/
 
-  setHelpFileName( "explode_on_blocks.htm" );
+  setHelpFileName( "explode_on_blocks_operation_page.html" );
 
   Init();
 }
index c504ea8fa499bee61e55ba4ac028a9e6dc625031..fb2354145502dfae1cce74ba01a8908059f5678b 100644 (file)
@@ -72,7 +72,7 @@ BlocksGUI_PropagateDlg::BlocksGUI_PropagateDlg( GeometryGUI* theGeometryGUI, QWi
 
   /***************************************************************/
 
-  setHelpFileName( "propagate.htm" );
+  setHelpFileName( "propagate_operation_page.html" );
 
   Init();
 }
@@ -210,17 +210,6 @@ void BlocksGUI_PropagateDlg::enterEvent( QEvent* )
     ActivateThisDialog();
 }
 
-
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void BlocksGUI_PropagateDlg::closeEvent( QCloseEvent* e )
-{
-  //myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 //=================================================================================
 // function : createOperation
 // purpose  :
index 0abab70c35f8298ee517fe9911aee4ef7bb9863f..630535e5c5d03c3b74db0bb76c47158a984689f9 100644 (file)
@@ -62,7 +62,6 @@ private slots:
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
-  void                               closeEvent( QCloseEvent* );
   void                               activateSelection();
 
 private:
index 444c887696779faf301fc23aad5f5492008c8396..0215f99ea69f9d1753df9ecf2c4a25251a5b1f0f 100644 (file)
@@ -89,7 +89,7 @@ BlocksGUI_QuadFaceDlg::BlocksGUI_QuadFaceDlg( GeometryGUI* theGeometryGUI, QWidg
 
   /***************************************************************/
 
-  setHelpFileName( "newentity_blocks.htm#QuadrangleFace" );
+  setHelpFileName( "build_by_blocks_page.html#quad_face_anchor" );
 
   Init();
 }
index dc7683f0521a7ecb850db05d1ddaf7177a89a502..7a167661d726866b747c666f4de98ae048571d21 100644 (file)
@@ -87,7 +87,7 @@ BlocksGUI_TrsfDlg::BlocksGUI_TrsfDlg( GeometryGUI* theGeometryGUI, QWidget* pare
   layout->addWidget( myGrp2 );
   /***************************************************************/
 
-  setHelpFileName( "multi_transformation.htm" );
+  setHelpFileName( "multi_transformation_operation_page.html" );
 
   Init();
 }
index 5019b4f9345bcf7f25bc0f941344279373c30731..ad3c7195bc27e66a7c2368c5189ffb47509f69a8 100644 (file)
@@ -54,25 +54,25 @@ BooleanGUI_Dialog::BooleanGUI_Dialog( const int theOperation, GeometryGUI* theGe
     image0 = QPixmap( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_COMMON" ) ) );
     aTitle = tr( "GEOM_COMMON" );
     aCaption = tr( "GEOM_COMMON_TITLE" );
-    setHelpFileName( "common.htm" );
+    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.htm" );
+    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.htm" );
+    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.htm" );
+    setHelpFileName( "section_opeartion_page.html" );
     break;
   }
   QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
index d64224623e0610063dbfc4acd1799742314029a5..95718c83a9f1663b479cc0912ab6431711eb336e 100644 (file)
@@ -71,7 +71,7 @@ BuildGUI_CompoundDlg::BuildGUI_CompoundDlg( GeometryGUI* theGeometryGUI, QWidget
   layout->addWidget( GroupShapes );
   /***************************************************************/
 
-  setHelpFileName( "compound.htm" );
+  setHelpFileName("create_compound_page.html");
 
   /* Initialisations */
   Init();
index 67672ac184c5999212c79b060e2388b42acb53f3..79847029f958ddfc9640ec4ac30d6a370497973c 100644 (file)
@@ -75,7 +75,7 @@ BuildGUI_EdgeDlg::BuildGUI_EdgeDlg( GeometryGUI* theGeometryGUI, QWidget* parent
   layout->addWidget( GroupPoints );
   /***************************************************************/
 
-  setHelpFileName( "edge.htm" );
+  setHelpFileName("create_edge_page.html");
 
   /* Initialisations */
   Init();
index 37590240482a7fc6f7f2808fac9f50c7bc5523e2..92205b8c12df781630c6f6290b43bd014a218e13 100644 (file)
@@ -72,7 +72,7 @@ BuildGUI_FaceDlg::BuildGUI_FaceDlg( GeometryGUI* theGeometryGUI, QWidget* parent
   layout->addWidget( GroupWire );
   /***************************************************************/
 
-  setHelpFileName( "face.htm" );
+  setHelpFileName("create_face_page.html");
 
   /* Initialisations */
   Init();
index 2615ff3cb34deacdd8b23a4286504e997463868c..6ed4eb690a5f6b77e05cbc909032b41ab5389049 100644 (file)
@@ -73,7 +73,7 @@ BuildGUI_ShellDlg::BuildGUI_ShellDlg( GeometryGUI* theGeometryGUI, QWidget* pare
   layout->addWidget( GroupShell );
   /***************************************************************/
 
-  setHelpFileName("shell.htm");
+  setHelpFileName("create_shell_page.html");
 
   /* Initialisations */
   Init();
index 32845bb5e04bf2f483ad4ce2cbbd92da37a45ac6..b560080f57f948d0b3ea22670022d1fd65f50b7d 100644 (file)
@@ -72,7 +72,7 @@ BuildGUI_SolidDlg::BuildGUI_SolidDlg( GeometryGUI* theGeometryGUI, QWidget* pare
   layout->addWidget( GroupSolid );
   /***************************************************************/
 
-  setHelpFileName( "solid.htm" );
+  setHelpFileName("create_solid_page.html");
 
   /* Initialisations */
   Init();
index 6d3aeb2c5c1514430ddf64258d7d224bb275bc9a..82f23b0b26ffd3f8d027feba513db7ac9ffb6e18 100644 (file)
@@ -73,7 +73,7 @@ BuildGUI_WireDlg::BuildGUI_WireDlg( GeometryGUI* theGeometryGUI, QWidget* parent
   layout->addWidget( GroupPoints );
   /***************************************************************/
 
-  setHelpFileName( "wire.htm" );
+  setHelpFileName( "create_wire_page.html" );
 
   /* Initialisations */
   Init();
index 86b67f313bebc392ed393f2fbcc9c3e64bd33460..e35c95e41b434e9067acf8bf24e31139ee183b46 100644 (file)
@@ -323,7 +323,13 @@ void DisplayGUI::Erase()
       listIO.Append( anIObject );
     }
   }
-  GEOM_Displayer(anActiveStudy).Erase( listIO, true );
+
+  SUIT_ViewWindow* viewWindow = app->desktop()->activeWindow();
+  bool aIsForced = true;
+  if(viewWindow->getViewManager()->getType() == SVTK_Viewer::Type())
+    aIsForced = false;
+
+  GEOM_Displayer(anActiveStudy).Erase( listIO, aIsForced);
   getGeometryGUI()->getApp()->selectionMgr()->clearSelected();
 }
 
index f2fb519842524591ee4ff551f73330bbf0111b79..eea049df63a6afd902a7b3f9d4a39dfd5054f07f 100644 (file)
@@ -80,16 +80,16 @@ DlgRef_1Sel1Check::~DlgRef_1Sel1Check()
 }
 
 //////////////////////////////////////////
-// DlgRef_1Sel1List4Btn
+// DlgRef_1Sel1List1Check3Btn
 //////////////////////////////////////////
 
-DlgRef_1Sel1List4Btn::DlgRef_1Sel1List4Btn( QWidget* parent, Qt::WindowFlags f )
+DlgRef_1Sel1List1Check3Btn::DlgRef_1Sel1List1Check3Btn( QWidget* parent, Qt::WindowFlags f )
 : QWidget( parent, f )
 {
   setupUi( this );
 }
 
-DlgRef_1Sel1List4Btn::~DlgRef_1Sel1List4Btn()
+DlgRef_1Sel1List1Check3Btn::~DlgRef_1Sel1List1Check3Btn()
 {
 }
 
@@ -247,6 +247,20 @@ 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
 //////////////////////////////////////////
@@ -317,6 +331,20 @@ 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
 //////////////////////////////////////////
@@ -600,3 +628,32 @@ DlgRef_Skeleton::DlgRef_Skeleton( QWidget* parent, Qt::WindowFlags f )
 DlgRef_Skeleton::~DlgRef_Skeleton()
 {
 }
+
+//////////////////////////////////////////
+// Utility functions
+//////////////////////////////////////////
+
+QString DlgRef::PrintDoubleValue( double theValue, int thePrecision )
+{
+  QString aRes;
+  aRes.setNum( theValue, 'g', thePrecision );
+
+  // 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;
+}
index 4f4eff3af4721ab1fcde27830eea4e0174f4f435..91266adfe911e3c2ab5bbc6e6a73626b85617be1 100644 (file)
@@ -99,19 +99,19 @@ public:
 };
 
 //////////////////////////////////////////
-// DlgRef_1Sel1List4Btn
+// DlgRef_1Sel1List1Check3Btn
 //////////////////////////////////////////
 
-#include "ui_DlgRef_1Sel1List4Btn_QTD.h"
+#include "ui_DlgRef_1Sel1List1Check3Btn_QTD.h"
 
-class DLGREF_EXPORT DlgRef_1Sel1List4Btn : public QWidget, 
-                                          public Ui::DlgRef_1Sel1List4Btn_QTD
+class DLGREF_EXPORT DlgRef_1Sel1List1Check3Btn : public QWidget, 
+                                                public Ui::DlgRef_1Sel1List1Check3Btn_QTD
 {
   Q_OBJECT
 
 public:
-  DlgRef_1Sel1List4Btn( QWidget* = 0, Qt::WindowFlags = 0 );
-  ~DlgRef_1Sel1List4Btn();
+  DlgRef_1Sel1List1Check3Btn( QWidget* = 0, Qt::WindowFlags = 0 );
+  ~DlgRef_1Sel1List1Check3Btn();
 };
 
 //////////////////////////////////////////
@@ -290,6 +290,22 @@ public:
   ~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
 //////////////////////////////////////////
@@ -370,6 +386,22 @@ public:
   ~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
 //////////////////////////////////////////
@@ -662,4 +694,13 @@ public:
   ~DlgRef_Skeleton();
 };
 
+//////////////////////////////////////////
+// Utility functions
+//////////////////////////////////////////
+
+namespace DlgRef
+{
+  QString PrintDoubleValue( double, int = 16 );
+};
+
 #endif // GEOM_DLGREF_H
diff --git a/src/DlgRef/DlgRef_1Sel1List1Check3Btn_QTD.ui b/src/DlgRef/DlgRef_1Sel1List1Check3Btn_QTD.ui
new file mode 100644 (file)
index 0000000..366d2d6
--- /dev/null
@@ -0,0 +1,140 @@
+<ui version="4.0" >
+ <class>DlgRef_1Sel1List1Check3Btn_QTD</class>
+ <widget class="QWidget" name="DlgRef_1Sel1List1Check3Btn_QTD" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>156</width>
+    <height>180</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string/>
+  </property>
+  <layout class="QGridLayout" >
+   <property name="leftMargin" >
+    <number>0</number>
+   </property>
+   <property name="topMargin" >
+    <number>0</number>
+   </property>
+   <property name="rightMargin" >
+    <number>0</number>
+   </property>
+   <property name="bottomMargin" >
+    <number>0</number>
+   </property>
+   <property name="horizontalSpacing" >
+    <number>6</number>
+   </property>
+   <property name="verticalSpacing" >
+    <number>6</number>
+   </property>
+   <item row="0" column="0" >
+    <widget class="QGroupBox" name="GroupBox1" >
+     <property name="sizePolicy" >
+      <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="title" >
+      <string/>
+     </property>
+     <layout class="QGridLayout" >
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TextLabel1" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL1</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="PushButton1" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" colspan="2" >
+       <widget class="QLineEdit" name="LineEdit1" />
+      </item>
+      <item row="1" column="0" colspan="3" >
+       <widget class="QCheckBox" name="CheckButton1" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="3" >
+       <widget class="QPushButton" name="PushButton2" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item rowspan="3" row="2" column="0" colspan="3" >
+       <widget class="QListWidget" name="ListView1" />
+      </item>
+      <item row="2" column="3" >
+       <widget class="QPushButton" name="PushButton3" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="3" >
+       <widget class="QPushButton" name="PushButton4" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="3" >
+       <spacer>
+        <property name="orientation" >
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" >
+         <size>
+          <width>20</width>
+          <height>21</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <tabstops>
+  <tabstop>PushButton1</tabstop>
+  <tabstop>LineEdit1</tabstop>
+  <tabstop>CheckButton1</tabstop>
+  <tabstop>ListView1</tabstop>
+  <tabstop>PushButton2</tabstop>
+  <tabstop>PushButton3</tabstop>
+  <tabstop>PushButton4</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/DlgRef/DlgRef_1Sel1List4Btn_QTD.ui b/src/DlgRef/DlgRef_1Sel1List4Btn_QTD.ui
deleted file mode 100644 (file)
index ef0ce65..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-<ui version="4.0" >
- <class>DlgRef_1Sel1List4Btn_QTD</class>
- <widget class="QWidget" name="DlgRef_1Sel1List4Btn_QTD" >
-  <property name="geometry" >
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>221</width>
-    <height>174</height>
-   </rect>
-  </property>
-  <property name="windowTitle" >
-   <string/>
-  </property>
-  <layout class="QGridLayout" >
-   <property name="margin" >
-    <number>0</number>
-   </property>
-   <property name="spacing" >
-    <number>6</number>
-   </property>
-   <item row="0" column="0" >
-    <widget class="QGroupBox" name="GroupBox1" >
-     <property name="sizePolicy" >
-      <sizepolicy>
-       <hsizetype>7</hsizetype>
-       <vsizetype>7</vsizetype>
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title" >
-      <string/>
-     </property>
-     <layout class="QGridLayout" >
-      <property name="margin" >
-       <number>9</number>
-      </property>
-      <property name="spacing" >
-       <number>6</number>
-      </property>
-      <item rowspan="3" row="2" column="0" colspan="3" >
-       <widget class="QListWidget" name="ListView1" />
-      </item>
-      <item row="1" column="3" >
-       <widget class="QPushButton" name="PushButton3" >
-        <property name="text" >
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0" colspan="3" >
-       <widget class="QPushButton" name="PushButton2" >
-        <property name="text" >
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0" >
-       <widget class="QLabel" name="TextLabel1" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text" >
-         <string>TL1</string>
-        </property>
-        <property name="wordWrap" >
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2" colspan="2" >
-       <widget class="QLineEdit" name="LineEdit1" />
-      </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="PushButton1" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text" >
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="3" >
-       <widget class="QPushButton" name="PushButton4" >
-        <property name="text" >
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="3" >
-       <widget class="QPushButton" name="PushButton5" >
-        <property name="text" >
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="3" >
-       <spacer>
-        <property name="orientation" >
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeHint" >
-         <size>
-          <width>20</width>
-          <height>21</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <layoutdefault spacing="6" margin="11" />
- <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
- <tabstops>
-  <tabstop>PushButton1</tabstop>
-  <tabstop>LineEdit1</tabstop>
-  <tabstop>PushButton2</tabstop>
-  <tabstop>PushButton3</tabstop>
-  <tabstop>ListView1</tabstop>
-  <tabstop>PushButton4</tabstop>
-  <tabstop>PushButton5</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/DlgRef/DlgRef_2Sel1List1Check_QTD.ui b/src/DlgRef/DlgRef_2Sel1List1Check_QTD.ui
new file mode 100644 (file)
index 0000000..4633930
--- /dev/null
@@ -0,0 +1,153 @@
+<ui version="4.0" >
+ <class>DlgRef_2Sel1List1Check_QTD</class>
+ <widget class="QWidget" name="DlgRef_2Sel1List1Check_QTD" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>211</width>
+    <height>121</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string/>
+  </property>
+  <layout class="QGridLayout" >
+   <property name="leftMargin" >
+    <number>0</number>
+   </property>
+   <property name="topMargin" >
+    <number>0</number>
+   </property>
+   <property name="rightMargin" >
+    <number>0</number>
+   </property>
+   <property name="bottomMargin" >
+    <number>0</number>
+   </property>
+   <property name="horizontalSpacing" >
+    <number>0</number>
+   </property>
+   <property name="verticalSpacing" >
+    <number>0</number>
+   </property>
+   <item row="0" column="0" >
+    <widget class="QGroupBox" name="GroupBox1" >
+     <property name="title" >
+      <string/>
+     </property>
+     <layout class="QGridLayout" >
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TextLabel1" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL1</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="PushButton1" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" >
+       <widget class="QLineEdit" name="LineEdit1" />
+      </item>
+      <item row="1" column="0" >
+       <widget class="QLabel" name="TextLabel2" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL2</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1" >
+       <widget class="QPushButton" name="PushButton2" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2" >
+       <widget class="QLineEdit" name="LineEdit2" />
+      </item>
+      <item row="2" column="0" >
+       <widget class="QLabel" name="TextLabel3" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL3</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1" colspan="2" >
+       <widget class="QComboBox" name="ComboBox1" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0" colspan="3" >
+       <widget class="QCheckBox" name="CheckButton1" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <layoutdefault spacing="6" margin="11" />
+ <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
+ <tabstops>
+  <tabstop>PushButton1</tabstop>
+  <tabstop>LineEdit1</tabstop>
+  <tabstop>PushButton2</tabstop>
+  <tabstop>LineEdit2</tabstop>
+  <tabstop>ComboBox1</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.ui b/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.ui
new file mode 100644 (file)
index 0000000..b0331fa
--- /dev/null
@@ -0,0 +1,204 @@
+<ui version="4.0" >
+ <class>DlgRef_2Sel3Spin2Rb_QTD</class>
+ <widget class="QWidget" name="DlgRef_2Sel3Spin2Rb_QTD" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>211</width>
+    <height>128</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>DlgRef_2Sel3Spin2Rb_QTD</string>
+  </property>
+  <layout class="QGridLayout" >
+   <property name="leftMargin" >
+    <number>0</number>
+   </property>
+   <property name="topMargin" >
+    <number>0</number>
+   </property>
+   <property name="rightMargin" >
+    <number>0</number>
+   </property>
+   <property name="bottomMargin" >
+    <number>0</number>
+   </property>
+   <property name="horizontalSpacing" >
+    <number>0</number>
+   </property>
+   <property name="verticalSpacing" >
+    <number>0</number>
+   </property>
+   <item row="0" column="0" >
+    <widget class="QGroupBox" name="GroupBox1" >
+     <property name="title" >
+      <string/>
+     </property>
+     <layout class="QGridLayout" >
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TextLabel1" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL1</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="PushButton1" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" colspan="3" >
+       <widget class="QLineEdit" name="LineEdit1" />
+      </item>
+      <item row="1" column="0" >
+       <widget class="QLabel" name="TextLabel2" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL2</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1" >
+       <widget class="QPushButton" name="PushButton2" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2" colspan="3" >
+       <widget class="QLineEdit" name="LineEdit2" />
+      </item>
+      <item row="2" column="0" >
+       <widget class="QRadioButton" name="RadioButton1" >
+        <property name="text" >
+         <string/>
+        </property>
+        <property name="checked" >
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1" >
+       <widget class="QLabel" name="TextLabel3" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL3</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="2" >
+       <widget class="QDoubleSpinBox" name="SpinBox_DX" />
+      </item>
+      <item row="3" column="0" >
+       <widget class="QRadioButton" name="RadioButton2" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1" >
+       <widget class="QLabel" name="TextLabel4" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL4</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="2" >
+       <widget class="QDoubleSpinBox" name="SpinBox_DY" >
+        <property name="enabled" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="3" >
+       <widget class="QLabel" name="TextLabel5" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL5</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="4" >
+       <widget class="QDoubleSpinBox" name="SpinBox_DZ" >
+        <property name="enabled" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>PushButton1</tabstop>
+  <tabstop>LineEdit1</tabstop>
+  <tabstop>PushButton2</tabstop>
+  <tabstop>LineEdit2</tabstop>
+  <tabstop>RadioButton1</tabstop>
+  <tabstop>SpinBox_DX</tabstop>
+  <tabstop>RadioButton2</tabstop>
+  <tabstop>SpinBox_DY</tabstop>
+  <tabstop>SpinBox_DZ</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
index 8e7007d874a1b3b133ebb25e2a28229f79b5e5f5..a99e7bbcd9f6f11963329e362a786849860456f5 100644 (file)
@@ -42,7 +42,7 @@ UIC_FILES = \
        ui_DlgRef_1Sel1Check1List_QTD.h         \
        ui_DlgRef_1Sel1Check1Sel_QTD.h          \
        ui_DlgRef_1Sel1Check_QTD.h              \
-       ui_DlgRef_1Sel1List4Btn_QTD.h           \
+       ui_DlgRef_1Sel1List1Check3Btn_QTD.h     \
        ui_DlgRef_1Sel1Spin1Check_QTD.h         \
        ui_DlgRef_1Sel1Spin_QTD.h               \
        ui_DlgRef_1Sel2Spin1View1Check_QTD.h    \
@@ -54,11 +54,13 @@ UIC_FILES = \
        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_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                    \
index 92a5cc32e8a63af00e2e8723645bbcb37cc6467e..08d33aa8dbbb20138f3e3afbb5532f95450f8597 100644 (file)
@@ -282,22 +282,22 @@ void EntityGUI_SketcherDlg::Init()
   myLastX2 = 0.0;
   myLastY2 = 0.0;
 
-  myHelpFileName = "sketcher.htm";
+  myHelpFileName = "create_sketcher_page.html";
 
   /* 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( Group1Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( Group3Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( Group3Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( Group3Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( Group4Spin->SpinBox_DX, COORD_MIN, COORD_MAX, 0.1, 3 );
-  initSpinBox( Group4Spin->SpinBox_DY, COORD_MIN, COORD_MAX, 0.1, 3 );
-  initSpinBox( Group4Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( Group4Spin->SpinBox_DS, COORD_MIN, COORD_MAX, 5., 3 );
+  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 */
   MainWidget->GroupConstructors->setEnabled( false );
@@ -394,8 +394,8 @@ void EntityGUI_SketcherDlg::PointClicked( int constructorId )
   if ( myConstructorId == 0 ) {  // SEGMENT
     if ( constructorId == 1 ) {  // XY
       mySketchType = PT_ABS;
-      initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-      initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
+      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;
@@ -409,8 +409,8 @@ void EntityGUI_SketcherDlg::PointClicked( int constructorId )
     }
     else if ( constructorId == 0 ) {  // DXDY
       mySketchType = PT_RELATIVE;
-      initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-      initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
+      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;
@@ -464,8 +464,8 @@ void EntityGUI_SketcherDlg::Dir2Clicked( int constructorId )
     myY = 0.0;
     myLength = 100.0;
     if ( myConstructorDirId == 2 ) {  // Angle
-      initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, 5., 3 );
-      initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
+      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();
@@ -528,9 +528,9 @@ void EntityGUI_SketcherDlg::Dir2Clicked( int constructorId )
       }
     }
     else if ( myConstructorDirId == 3 ) {  // DXDY
-      initSpinBox( Group3Spin->SpinBox_DX, COORD_MIN, COORD_MAX, 0.1, 3 );
-      initSpinBox( Group3Spin->SpinBox_DY, COORD_MIN, COORD_MAX, 0.1, 3 );
-      initSpinBox( Group3Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
+      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;
@@ -561,9 +561,9 @@ void EntityGUI_SketcherDlg::Dir2Clicked( int constructorId )
     if ( myConstructorDirId == 2 ) {  // Angle
       if ( constructorId == 2 ) {  // Length
        mySketchType = DIR_ANGLE_LENGTH;
-       initSpinBox( Group3Spin->SpinBox_DX, COORD_MIN, COORD_MAX, 5., 3 );
-       initSpinBox( Group3Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
-       initSpinBox( Group3Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, 5., 3 );
+       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" ));
@@ -579,8 +579,8 @@ void EntityGUI_SketcherDlg::Dir2Clicked( int constructorId )
     else if ( myConstructorDirId == 0 ) {  // Perpendicular
       if ( constructorId == 2 ) {  // Length
        mySketchType = DIR_PER_LENGTH;
-       initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
-       initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, 5., 3 );
+       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;
@@ -594,8 +594,8 @@ void EntityGUI_SketcherDlg::Dir2Clicked( int constructorId )
     else if ( myConstructorDirId == 1 ) {  // Tangent
       if ( constructorId == 2 ) {  // Length
        mySketchType = DIR_TAN_LENGTH;
-       initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
-       initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, 5., 3 );
+       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;
@@ -667,8 +667,17 @@ void EntityGUI_SketcherDlg::ClickOnEnd()
     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() ) {
+      ClickOnApply();
+    }
     myIsAllAdded = true;
+  }
 
   if ( myCommand.size() > 2 )
     if ( !onAccept() )
@@ -683,7 +692,8 @@ void EntityGUI_SketcherDlg::ClickOnEnd()
 //=================================================================================
 bool EntityGUI_SketcherDlg::ClickOnApply()
 {
-  ((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() );
   mySketchState = NEXT_POINT;
@@ -1008,6 +1018,58 @@ void EntityGUI_SketcherDlg::ValueChangedInSpinBox( double newValue )
     vz = Group4Spin->SpinBox_DZ->value();
     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->value();
+  }
+  else if ( Group2Spin->SpinBox_DY->hasFocus() ) {
+    vx = Group2Spin->SpinBox_DX->value();
+    vy = newValue;
+  }
+  else if ( Group3Spin->SpinBox_DX->hasFocus() ) {
+    vx = newValue;
+    vy = Group3Spin->SpinBox_DY->value();
+    vz = Group3Spin->SpinBox_DZ->value();
+  }
+  else if ( Group3Spin->SpinBox_DY->hasFocus() ) {
+    vx = Group3Spin->SpinBox_DX->value();
+    vy = newValue;
+    vz = Group3Spin->SpinBox_DZ->value();
+  }
+  else if ( Group3Spin->SpinBox_DZ->hasFocus() ) {
+    vx = Group3Spin->SpinBox_DX->value();
+    vy = Group3Spin->SpinBox_DY->value();
+    vz = newValue;
+  }
+  else if ( Group4Spin->SpinBox_DX->hasFocus() ) {
+    vx = newValue;
+    vy = Group4Spin->SpinBox_DY->value();
+    vz = Group4Spin->SpinBox_DZ->value();
+    vs = Group4Spin->SpinBox_DS->value();
+  }
+  else if ( Group4Spin->SpinBox_DY->hasFocus() ) {
+    vx = Group4Spin->SpinBox_DX->value();
+    vy = newValue;
+    vz = Group4Spin->SpinBox_DZ->value();
+    vs = Group4Spin->SpinBox_DS->value();
+  }
+  else if ( Group4Spin->SpinBox_DZ->hasFocus() ) {
+    vx = Group4Spin->SpinBox_DX->value();
+    vy = Group4Spin->SpinBox_DY->value();
+    vz = newValue;
+    vs = Group4Spin->SpinBox_DS->value();
+  }
+  else if ( Group4Spin->SpinBox_DS->hasFocus() ) {
+    vx = Group4Spin->SpinBox_DX->value();
+    vy = Group4Spin->SpinBox_DY->value();
+    vz = Group4Spin->SpinBox_DZ->value();
+    vs = newValue;
+  }
 
   if ( myConstructorId == 0 ) {  // SEGMENT
     if ( mySketchType == PT_ABS ) {
index 955883d4f754340187549efee74376979bdf505c..44927437bbe516f69dc64e1d633a2861a1c2da11 100644 (file)
@@ -83,7 +83,7 @@ EntityGUI_SubShapeDlg::EntityGUI_SubShapeDlg( GeometryGUI* theGeometryGUI, QWidg
   layout->addWidget( GroupPoints );
   /***************************************************************/
 
-  setHelpFileName( "explode.htm" );
+  setHelpFileName( "create_explode_page.html" );
 
   Init();
 }
@@ -137,7 +137,7 @@ void EntityGUI_SubShapeDlg::Init()
   connect( GroupPoints->ComboBox1,    SIGNAL( activated( int ) ),    this, SLOT( ComboTextChanged() ) );
   connect( GroupPoints->CheckButton1, SIGNAL( stateChanged( int ) ), this, SLOT( SubShapeToggled() ) );
 
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+  connect( myGeomGUI->getApp()->selectionMgr(),
           SIGNAL( currentSelectionChanged( )), this, SLOT( SelectionIntoArgument() ) );
 
   updateButtonState();
@@ -180,7 +180,12 @@ bool EntityGUI_SubShapeDlg::ClickOnApply()
     }
   }
 
-  return onAccept();
+  bool isOk = onAccept();
+
+  // restore selection, corresponding to current selection mode
+  SubShapeToggled();
+
+  return isOk;
 }
 
 
@@ -333,8 +338,8 @@ void EntityGUI_SubShapeDlg::DeactivateActiveDialog()
 void EntityGUI_SubShapeDlg::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() ) );
   SubShapeToggled();
   updateButtonState();
 }
@@ -393,9 +398,9 @@ void EntityGUI_SubShapeDlg::ResetStateOfDialog()
 //=================================================================================
 void EntityGUI_SubShapeDlg::SubShapeToggled()
 {
-  if ( isAllSubShapes() )
-    globalSelection( GEOM_ALLSHAPES );
-  else
+  globalSelection( GEOM_ALLSHAPES );
+
+  if ( !isAllSubShapes() )
     localSelection( myObject, shapeType() );
 }
 
@@ -523,7 +528,7 @@ bool EntityGUI_SubShapeDlg::isValid( QString& msg )
       
       if ( aResult && !anObj->_is_nil() ) {
        TColStd_IndexedMapOfInteger aMapIndex;
-       ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
+       myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
        isOk = aMapIndex.Extent() > 0;
        if ( !isOk )
          msg += tr( "NO_SUBSHAPES_SELECTED" );
@@ -555,7 +560,7 @@ bool EntityGUI_SubShapeDlg::execute( ObjectList& objects )
 
       if ( aResult && !anObj->_is_nil() ) {
        TColStd_IndexedMapOfInteger aMapIndex;
-       ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
+       myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
 
        GEOM::GEOM_ILocalOperations_var aLocOp = 
          getGeomEngine()->GetILocalOperations( getStudyId() );
index 2475cce34c953459e64ac8556087ffd52a0e5f31..3ac30e5ab278290a3290f74e1b87562b62897be4 100644 (file)
@@ -379,7 +379,8 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID,
   if(aDoc.IsNull()) return TCollection_AsciiString("def RebuildData(theStudy): pass\n");
  
   aScript = "import geompy\n";
-  aScript += "import math\n\n";
+  aScript += "import math\n";
+  aScript += "import SALOMEDS\n\n";
   aScript += "def RebuildData(theStudy):";
   aScript += "\n\tgeompy.init_geom(theStudy)";
   
@@ -480,6 +481,40 @@ 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
  
+  // ouv : NPAL12872
+  for (anEntryToNameIt.Initialize( theObjectNames );
+       anEntryToNameIt.More();
+       anEntryToNameIt.Next())
+  {
+    const TCollection_AsciiString& aEntry = anEntryToNameIt.Key();
+    const TCollection_AsciiString& aName = anEntryToNameIt.Value();
+
+    TDF_Label L;
+    TDF_Tool::Label( aDoc->GetData(), aEntry, L );
+    if ( L.IsNull() )
+      continue;
+
+    Handle(GEOM_Object) obj = GEOM_Object::GetObject( L );
+    if ( obj.IsNull() )
+      continue;
+
+    bool anAutoColor = obj->GetAutoColor();
+    if ( anAutoColor )
+    {
+      TCollection_AsciiString aCommand( "\n\t" );
+      aCommand += aName + ".SetAutoColor(1)";
+      anUpdatedScript += aCommand.ToCString();
+    }
+
+    SALOMEDS::Color aColor = obj->GetColor();
+    if ( aColor.R > 0 || aColor.G > 0 || aColor.B > 0 )
+    {
+      TCollection_AsciiString aCommand( "\n\t" );
+      aCommand += aName + ".SetColor(SALOMEDS.Color(" + aColor.R + "," + aColor.G + "," + aColor.B + "))";
+      anUpdatedScript += aCommand.ToCString();
+    }
+  }
+
   // Make script to publish in study
   if ( isPublished )
   {
index 5bdc06417c5cdef3a87ca2d3171eada4579fb74b..5e85a61954defd7241b599c291ec8928dfcbf135 100644 (file)
@@ -5016,6 +5016,77 @@ GEOM::GEOM_Shape_ptr  GEOM_Gen_i::MakeFillet( GEOM::GEOM_Shape_ptr shape,
   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
@@ -5080,6 +5151,68 @@ GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeChamfer( GEOM::GEOM_Shape_ptr shape,
   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  :
index 2544b1e1a2aab8a54efdc1b335937421fa5c885b..67781992d1609c1e08380024a64ce0f5f62b09c7 100644 (file)
@@ -29,6 +29,7 @@
 
 #define OK "PAL_NO_ERROR"
 #define KO "PAL_NOT_DONE_ERROR"
+#define NOT_FOUND_ANY "NOT_FOUND_ANY"
 #define ALREADY_PRESENT "PAL_ELEMENT_ALREADY_PRESENT"
 #define NOT_EXISTS "PAL_ELEMENT_DOES_NOT_EXISTS"
 #define INVALID_TYPE "INVALID_TYPE_OF_ELEMENT"
index f04bda383883524456e4635b6747c5ee2c640a3d..6d5174d4d1245b31f7d14f888cbc973e8e103e26 100644 (file)
@@ -33,6 +33,8 @@
 #include <TDataStd_UAttribute.hxx>
 #include <TDataStd_Name.hxx>
 #include <TDataStd_Comment.hxx>
+#include <TDataStd_RealArray.hxx>
+#include <TColStd_HArray1OfReal.hxx>
 #include <TCollection_AsciiString.hxx>
 #include <TCollection_ExtendedString.hxx>
 #include <TopTools_IndexedMapOfShape.hxx>
@@ -42,6 +44,8 @@
 #define TYPE_LABEL 2
 #define FREE_LABEL 3
 #define TIC_LABEL  4
+#define COLOR_LABEL      5
+#define AUTO_COLOR_LABEL 6
 
 //=======================================================================
 //function : GetObjectID
@@ -95,19 +99,31 @@ Handle(GEOM_Object) GEOM_Object::GetObject(TDF_Label& theLabel)
 Handle(GEOM_Object) GEOM_Object::GetReferencedObject(TDF_Label& theLabel)
 {
   Handle(TDF_Reference) aRef;
-  if (!theLabel.FindAttribute(TDF_Reference::GetID(), aRef)) return NULL;
+  if (!theLabel.FindAttribute(TDF_Reference::GetID(), aRef)) {
+    return NULL;
+  }
+  
+  if(aRef.IsNull() || aRef->Get().IsNull()) {
+    return NULL;
+  }
+
 
   // Get TreeNode of a referenced function
   Handle(TDataStd_TreeNode) aT, aFather;
-  if (!TDataStd_TreeNode::Find(aRef->Get(), aT)) return NULL;
+  if (!TDataStd_TreeNode::Find(aRef->Get(), aT)) {
+    return NULL;
+  }
+
 
   // Get TreeNode of Object of the referenced function
   aFather = aT->Father();
-  if (aFather.IsNull()) return NULL;
+  if (aFather.IsNull()) {
+    return NULL;
+  }
 
   // Get label of the referenced object
   TDF_Label aLabel = aFather->Label();
-
+  
 
   return GEOM_Object::GetObject(aLabel);
 }
@@ -277,6 +293,65 @@ char* GEOM_Object::GetName()
   return strdup(aName.ToCString());
 }
 
+//=============================================================================
+/*!
+ *  SetColor
+ */
+//=============================================================================
+void GEOM_Object::SetColor(const SALOMEDS::Color& theColor)
+{
+  Handle(TDataStd_RealArray) anArray = new TDataStd_RealArray();
+  anArray->Init( 1, 3 );
+  anArray->SetValue( 1, theColor.R );
+  anArray->SetValue( 2, theColor.G );
+  anArray->SetValue( 3, theColor.B );
+
+  Handle(TDataStd_RealArray) anAttr =
+    TDataStd_RealArray::Set(_label.FindChild(COLOR_LABEL), anArray->Lower(), anArray->Upper());
+  anAttr->ChangeArray(anArray->Array());
+}
+
+//=============================================================================
+/*!
+ *  GetColor
+ */
+//=============================================================================
+SALOMEDS::Color GEOM_Object::GetColor()
+{
+  Handle(TDataStd_RealArray) anArray;
+  bool isFound = _label.FindChild(COLOR_LABEL).FindAttribute(TDataStd_RealArray::GetID(), anArray);
+
+  SALOMEDS::Color aColor;
+  aColor.R = isFound ? anArray->Value( 1 ) : 0.f;
+  aColor.G = isFound ? anArray->Value( 2 ) : 0.f;
+  aColor.B = isFound ? anArray->Value( 3 ) : 0.f;
+
+  return aColor;
+}
+
+//=============================================================================
+/*!
+ *  SetAutoColor
+ */
+//=============================================================================
+void GEOM_Object::SetAutoColor(CORBA::Boolean theAutoColor)
+{
+  TDataStd_Integer::Set(_label.FindChild(AUTO_COLOR_LABEL), (int)theAutoColor);
+}
+
+//=============================================================================
+/*!
+ *  GetAutoColor
+ */
+//=============================================================================
+CORBA::Boolean GEOM_Object::GetAutoColor()
+{
+  Handle(TDataStd_Integer) anAutoColor;
+  if(!_label.FindChild(AUTO_COLOR_LABEL).FindAttribute(TDataStd_Integer::GetID(), anAutoColor)) return false;
+
+  return anAutoColor->Get();
+}
+
 //=============================================================================
 /*!
  *  SetAuxData
@@ -395,8 +470,10 @@ Handle(TColStd_HSequenceOfTransient) GEOM_Object::GetAllDependency()
   Standard_Integer aLength = aSeq.Length();
   if(aLength > 0) {
     anArray = new TColStd_HSequenceOfTransient;
-    for(Standard_Integer j =1; j<=aLength; j++)
-      anArray->Append(GetReferencedObject(aSeq(j)));
+    for(Standard_Integer j =1; j<=aLength; j++) {
+      Handle(GEOM_Object) aRefObj = GetReferencedObject(aSeq(j));
+      if(!aRefObj.IsNull()) anArray->Append(aRefObj);
+    }
   }
 
   return anArray;
index 154798f65c0cc2014b6d27cd3c7d981e732a15e7..7d8eda71bdde9c29a32249209cf8b876428419ad 100644 (file)
 #include <TCollection_AsciiString.hxx>
 #endif
 
+#include "SALOMEconfig.h"
+#include CORBA_SERVER_HEADER(SALOMEDS)
+#include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
+
 class Handle_TColStd_HSequenceOfTransient;
 class Standard_Transient;
 class Handle_Standard_Type;
@@ -197,6 +201,18 @@ class GEOM_Object : public MMgt_TShared
   //Returns a name of this GEOM_Object
   Standard_EXPORT char* GetName();
 
+  //Sets a color of this GEOM_Object
+  Standard_EXPORT void SetColor(const SALOMEDS::Color& theColor);
+
+  //Returns a color of this GEOM_Object
+  Standard_EXPORT SALOMEDS::Color GetColor();
+
+  //Toggles an auto color mode on this GEOM_Object
+  Standard_EXPORT void SetAutoColor(CORBA::Boolean theAutoColor);
+
+  //Returns a flag of auto color mode of this GEOM_Object
+  Standard_EXPORT CORBA::Boolean GetAutoColor();
+
   //Sets an auxiliary data
   Standard_EXPORT void SetAuxData(const char* theData);
 
index a3ff987bde2d2234fce5c3b84cf837c5f6a0dba1..41b9c184f84e1e9acb5ecbcb57e3fbd92cfd20b6 100644 (file)
@@ -43,19 +43,12 @@ namespace GEOM
       TCollection_AsciiString aDescr;
       if ( myAppend )
         aDescr = myFunction->GetDescription() + "\n\t";
-      aDescr += (char *)myStream.str().c_str();
+      std::string aString = myStream.str();
+      aDescr += (char *)aString.c_str();
       myFunction->SetDescription( aDescr );
     }
   }
 
-//  TPythonDump::operator TCollection_AsciiString () const
-//  {
-//    if (myCounter == 1) {
-//      return TCollection_AsciiString ((char *)myStream.str().c_str());
-//    }
-//    return TCollection_AsciiString ();
-//  }
-
   TPythonDump& TPythonDump::operator<< (long int theArg)
   {
     myStream<<theArg;
index fa444d3da7bafa774b440a73fef2a0c0670c3588..9eea77f170145c3879ce0cc90020158ed67e3be4 100644 (file)
@@ -68,9 +68,12 @@ salomeinclude_HEADERS = \
 
 # additionnal information to compil 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  = \
index 967bc05f99f0483c10280abfcf7957e62b388e3f..a6f4ca4065fd8d81d3d6b1df022fb02ef9627068 100755 (executable)
@@ -37,8 +37,8 @@ uses
     MapOfShape                       from TopTools,
     Image     from BRepAlgo, 
     
-    DSFiller  from NMTTools,
-    PDSFiller from NMTTools
+    PaveFiller from NMTTools, 
+    PPaveFiller from NMTTools 
     
 --raises
 
@@ -54,8 +54,8 @@ is
        is redefined; 
         
     PerformWithFiller(me:out; 
-       theDSF: DSFiller from NMTTools) 
-       ---Purpose:  Performs calculations using prepared DSFiller 
+       theDSF: PaveFiller from NMTTools) 
+       ---Purpose:  Performs calculations using prepared PaveFiller 
        --           object theDSF               
        is virtual;
    
@@ -99,13 +99,12 @@ is
     -- 
     --    protected methods  
     --  
-    -- 
     PerformInternal(me:out; 
-       theDSF: DSFiller from NMTTools) 
+       theDSF: PaveFiller from NMTTools) 
        ---Purpose:  Performs calculations using prepared DSFiller 
        --           object theDSF               
-       is protected; 
-    --
+       is virtual protected;  
+        
     PrepareHistory (me:out) 
        ---Purpose:  Prepare information for history support  
        is redefined protected;  
@@ -234,7 +233,7 @@ is
     -- =====================================================
  
 fields 
-    myDSFiller        : PDSFiller from NMTTools is protected;  
+    myPaveFiller      : PPaveFiller from NMTTools is protected;  
     myShapes          : ListOfShape from TopTools is protected; 
     -- Common usage 
     myNbTypes         : Integer from Standard is protected; 
@@ -248,7 +247,7 @@ fields
     mySameDomainShapes: IndexedDataMapOfShapeShape from TopTools is protected;
     --  solids 
     myDraftSolids     : IndexedDataMapOfShapeShape from TopTools is protected; 
-    myEntryPoint      : Integer from Standard is protected;    
+    myEntryPoint      : Integer from Standard is protected;
     --     
 end Builder;
 
index 284cd7b10b837f5bcbed6a39918053408c1239ec..ebb87589366b35f7173943f151da6ea3bc2f09b3 100755 (executable)
@@ -38,9 +38,8 @@
 
 #include <BOP_CorrectTolerances.hxx>
 
-#include <NMTTools_DSFiller.hxx>
-
 #include <BRepLib.hxx>
+#include <NMTTools_PaveFiller.hxx>
 
 //=======================================================================
 //function : 
@@ -51,7 +50,7 @@
   GEOMAlgo_BuilderShape()
 {
   myNbTypes=9;
-  myDSFiller=NULL;
+  myPaveFiller=NULL;
   myEntryPoint=0; // Entry point through PerformWithFiller ()
 }
 //=======================================================================
@@ -61,9 +60,9 @@
   GEOMAlgo_Builder::~GEOMAlgo_Builder()
 {
   if (myEntryPoint==1) {
-    if (myDSFiller) {
-      delete myDSFiller;
-      myDSFiller=NULL;
+    if (myPaveFiller) {
+      delete myPaveFiller;
+      myPaveFiller=NULL;
     }
   }
 }
     aBB.Add(aCS, aS);
   }
   //
-  if (myDSFiller) {
-    delete myDSFiller;
-    myDSFiller=NULL;
-  }
-  NMTTools_DSFiller* pDSF=new NMTTools_DSFiller;
+  NMTTools_PaveFiller* pPF=new NMTTools_PaveFiller;
   //
-  pDSF->SetCompositeShape(aCS);
-  pDSF->Perform();
+  pPF->SetCompositeShape(aCS);
+  pPF->Perform();
   //
   myEntryPoint=1;
-  PerformInternal(*pDSF);
+  PerformInternal(*pPF);
 }
 //=======================================================================
 //function : PerformWithFiller
 //purpose  : 
 //=======================================================================
-  void GEOMAlgo_Builder::PerformWithFiller(const NMTTools_DSFiller& theDSF)
+  void GEOMAlgo_Builder::PerformWithFiller(const NMTTools_PaveFiller& theDSF)
 {
   myEntryPoint=0;
   //
 //function : PerformInternal
 //purpose  : 
 //=======================================================================
-  void GEOMAlgo_Builder::PerformInternal(const NMTTools_DSFiller& theDSF)
+  void GEOMAlgo_Builder::PerformInternal(const NMTTools_PaveFiller& pPF)
 {
   myErrorStatus=0;
   //
   Standard_Boolean bIsDone;
   //
-  // 0. myDSFiller
-  myDSFiller=(NMTTools_DSFiller *)&theDSF;
+  // 0. myPaveFiller
+  myPaveFiller=(NMTTools_PaveFiller *)&pPF;
   //
-  bIsDone=myDSFiller->IsDone();
+  bIsDone=myPaveFiller->IsDone();
   if (!bIsDone) {
-    myErrorStatus=2; // DSFiller is failed
+    myErrorStatus=2; // PaveFiller is failed
     return;
   }
   //
 // 
 // 0  - Ok
 // 1  - The object is just initialized
-// 2  - DSFiller is failed
+// 2  - PaveFiller is failed
 // 10 - No shapes to process
 // 30 - SolidBuilder failed
index 2f38d77fbd305be48ea31024ed23a042d91d2cff..930b3edf0a6744bf0b6e3a244a0d870fbf592201 100644 (file)
@@ -20,8 +20,8 @@
 #ifndef _GEOMAlgo_Builder_HeaderFile
 #define _GEOMAlgo_Builder_HeaderFile
 
-#ifndef _NMTTools_PDSFiller_HeaderFile
-#include <NMTTools_PDSFiller.hxx>
+#ifndef _NMTTools_PPaveFiller_HeaderFile
+#include <NMTTools_PPaveFiller.hxx>
 #endif
 #ifndef _TopTools_ListOfShape_HeaderFile
 #include <TopTools_ListOfShape.hxx>
@@ -50,7 +50,7 @@
 #ifndef _TopAbs_ShapeEnum_HeaderFile
 #include <TopAbs_ShapeEnum.hxx>
 #endif
-class NMTTools_DSFiller;
+class NMTTools_PaveFiller;
 class TopoDS_Shape;
 class TopTools_ListOfShape;
 class BRepAlgo_Image;
@@ -90,9 +90,9 @@ Standard_EXPORT virtual ~GEOMAlgo_Builder();
 //!  Performs calculations <br>
 Standard_EXPORT virtual  void Perform() ;
 
-//!  Performs calculations using prepared DSFiller <br>
+//!  Performs calculations using prepared PaveFiller <br>
 //!           object theDSF <br>
-Standard_EXPORT virtual  void PerformWithFiller(const NMTTools_DSFiller& theDSF) ;
+Standard_EXPORT virtual  void PerformWithFiller(const NMTTools_PaveFiller& theDSF) ;
 
 //!  Adds argument theShape of the operation <br>
 Standard_EXPORT virtual  void AddShape(const TopoDS_Shape& theShape) ;
@@ -139,7 +139,7 @@ protected:
 
 //!  Performs calculations using prepared DSFiller <br>
 //!           object theDSF <br>
-Standard_EXPORT   void PerformInternal(const NMTTools_DSFiller& theDSF) ;
+Standard_EXPORT virtual  void PerformInternal(const NMTTools_PaveFiller& theDSF) ;
 
 //!  Prepare information for history support <br>
 Standard_EXPORT virtual  void PrepareHistory() ;
@@ -214,7 +214,7 @@ Standard_EXPORT   void BuildDraftSolid(const TopoDS_Shape& theSolid,TopoDS_Shape
 
  // Fields PROTECTED
  //
-NMTTools_PDSFiller myDSFiller;
+NMTTools_PPaveFiller myPaveFiller;
 TopTools_ListOfShape myShapes;
 Standard_Integer myNbTypes;
 TopTools_MapOfShape myMapFence;
index 1965f5ec776ea60896c8605bc59ebc8a19712fb4..4cc8d4a529bc38c5a5b37354884a8d3bdf2caa0a 100644 (file)
@@ -17,8 +17,8 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
-#ifndef _NMTTools_DSFiller_HeaderFile
-#include <NMTTools_DSFiller.hxx>
+#ifndef _NMTTools_PaveFiller_HeaderFile
+#include <NMTTools_PaveFiller.hxx>
 #endif
 #ifndef _TopoDS_Shape_HeaderFile
 #include <TopoDS_Shape.hxx>
index 72a8b39dc966833e842bf372aeab5887d29d3658..728c8404def797d881fb0b68fc5a50d4003e0b11 100644 (file)
@@ -20,7 +20,7 @@
 #include <GEOMAlgo_Builder.hxx>
 
 #include <NMTDS_ShapesDataStructure.hxx>
-#include <NMTTools_DSFiller.hxx>
+//#include <NMTTools_DSFiller.hxx>
 #include <NMTTools_PaveFiller.hxx>
 #include <IntTools_Context.hxx>
 #include <TopoDS_Shape.hxx>
index d42da67e28cf9e1a1084ad5879c0d4da9ddfa5ce..5ee7ddaf48a7913238d268e72965cfb304f7bed7 100755 (executable)
@@ -47,7 +47,6 @@
 //
 #include <NMTDS_ShapesDataStructure.hxx>
 //
-#include <NMTTools_DSFiller.hxx>
 #include <NMTTools_PaveFiller.hxx>
 #include <NMTTools_CommonBlockPool.hxx>
 #include <NMTTools_ListIteratorOfListOfCommonBlock.hxx>
@@ -78,8 +77,8 @@ static
 {
   myErrorStatus=0;
   //
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
   //
   Standard_Integer i, aNb, iV;
   //
@@ -94,7 +93,6 @@ static
          myImages.Bind(aV, aVSD);
          //
          mySameDomainShapes.Add(aV, aVSD);
-         //
        }
       }
     }
@@ -108,14 +106,14 @@ static
 {
   myErrorStatus=0;
   //
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
   const BOPTools_SplitShapesPool& aSSP=pPF->SplitShapesPool();
   NMTTools_CommonBlockPool& aCBP=pPF->ChangeCommonBlockPool();
   IntTools_Context& aCtx=pPF->ChangeContext();
   //
   Standard_Boolean bToReverse;
-  Standard_Integer i, aNb, aNbSp, nSp, nSpR, nSpx;
+  Standard_Integer i, aNb, aNbSp, nSp, nSpR, nSpx, aIsCB;
   TColStd_ListIteratorOfListOfInteger aItLB;
   TColStd_ListOfInteger aLB;
   TopoDS_Edge aEE, aESpR;
@@ -149,10 +147,16 @@ static
       nSp=aPB.Edge();
       const TopoDS_Shape& aSp=aDS.Shape(nSp);
       //
-      const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB);
+      //modified by NIZNHY-PKV Fri Nov 30 10:40:36 2007 f
+      //const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB);
+      const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB, aIsCB);
+      //modified by NIZNHY-PKV Fri Nov 30 10:40:48 2007t
       nSpR=aPBR.Edge();
       const TopoDS_Shape& aSpR=aDS.Shape(nSpR);
-      if (aSpR.IsSame(aSp) && aSpR.IsSame(aE)) {
+      //modified by NIZNHY-PKV Fri Nov 30 10:41:39 2007f
+      //if (aSpR.IsSame(aSp) && aSpR.IsSame(aE)) {
+      if (aSpR.IsSame(aSp) && aSpR.IsSame(aE) && !aIsCB) {
+       //modified by NIZNHY-PKV Fri Nov 30 10:41:46 2007t
        continue;
       }
       //
@@ -176,7 +180,10 @@ static
       aIt.Initialize(aLPB);
       for (; aIt.More(); aIt.Next()) {
        const BOPTools_PaveBlock& aPB=aIt.Value();
-       const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB);
+       //modified by NIZNHY-PKV Fri Nov 30 10:42:15 2007f
+       //const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB);
+       const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB, aIsCB);
+       //modified by NIZNHY-PKV Fri Nov 30 10:42:20 2007t
        nSpR=aPBR.Edge();
        const TopoDS_Shape& aSpR=aDS.Shape(nSpR);
        //
@@ -218,8 +225,8 @@ static
   TopTools_MapOfShape aMS;
   TopTools_MapIteratorOfMapOfShape aItS;
   //
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
   IntTools_Context& aCtx= pPF->ChangeContext();
   //
   aNbS=aDS.NumberOfShapesOfTheObject();
index 068fbc564fb885007b2261ff540e8d4c682ab1d5..92e9e2cc87734acf270ca6e312b812cd4d74cf41 100755 (executable)
@@ -54,7 +54,6 @@
 #include <BOPTColStd_IndexedDataMapOfIntegerIndexedMapOfInteger.hxx>
 #include <BOPTools_ListOfPaveBlock.hxx>
 #include <BOPTools_ListIteratorOfListOfPaveBlock.hxx>
-#include <BOPTools_InterferencePool.hxx>
 #include <BOPTools_CArray1OfSSInterference.hxx>
 #include <BOPTools_SSInterference.hxx>
 #include <BOPTools_SequenceOfCurves.hxx>
@@ -68,7 +67,6 @@
 #include <BOPTools_CArray1OfESInterference.hxx>
 
 #include <NMTDS_ShapesDataStructure.hxx>
-#include <NMTTools_DSFiller.hxx>
 #include <NMTTools_PaveFiller.hxx>
 #include <NMTTools_ListOfCoupleOfShape.hxx>
 #include <NMTTools_Tools.hxx>
@@ -83,6 +81,7 @@
 #include <GEOMAlgo_Tools3D.hxx>
 #include <GEOMAlgo_WireEdgeSet.hxx>
 #include <GEOMAlgo_BuilderFace.hxx>
+#include <NMTDS_InterfPool.hxx>
 
 static
   void UpdateCandidates(const Standard_Integer ,
@@ -109,9 +108,9 @@ static
 //=======================================================================
   void GEOMAlgo_Builder::FillIn2DParts()
 {
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
-  BOPTools_InterferencePool* pIP=(BOPTools_InterferencePool*)&myDSFiller->InterfPool();
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
+  NMTDS_InterfPool* pIP=pPF->IP();
   BOPTools_CArray1OfSSInterference& aFFs=pIP->SSInterferences();
   NMTTools_CommonBlockPool& aCBP=pPF->ChangeCommonBlockPool();
   //
@@ -193,9 +192,9 @@ static
 //=======================================================================
   void GEOMAlgo_Builder::BuildSplitFaces()
 {
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
-  BOPTools_InterferencePool* pIP=(BOPTools_InterferencePool*)&myDSFiller->InterfPool();
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
+  NMTDS_InterfPool* pIP=pPF->IP();
   BOPTools_CArray1OfSSInterference& aFFs=pIP->SSInterferences();
   IntTools_Context& aCtx= pPF->ChangeContext();
   //
@@ -388,9 +387,9 @@ static
 //=======================================================================
   void GEOMAlgo_Builder::FillSameDomainFaces()
 {
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
-  BOPTools_InterferencePool* pIP=(BOPTools_InterferencePool*)&myDSFiller->InterfPool();
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
+  NMTDS_InterfPool* pIP=pPF->IP();
   BOPTools_CArray1OfSSInterference& aFFs=pIP->SSInterferences();
   IntTools_Context& aCtx= pPF->ChangeContext();
   //
@@ -513,7 +512,7 @@ static
   TopTools_ListOfShape aLFx;
   TopTools_ListIteratorOfListOfShape aIt;
   //
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
   //
   aNb=aDS.NumberOfShapesOfTheObject();
   for (i=1; i<=aNb; ++i) {
@@ -557,9 +556,9 @@ static
 //=======================================================================
   void GEOMAlgo_Builder::FillInternalVertices()
 {
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
-  BOPTools_InterferencePool* pIP=(BOPTools_InterferencePool*)&myDSFiller->InterfPool();
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
+  NMTDS_InterfPool* pIP=pPF->IP();
   IntTools_Context& aCtx= pPF->ChangeContext();
   //
   BOPTools_CArray1OfSSInterference& aFFs=pIP->SSInterferences();
index 220cc453f8b220a36ec80dd9b0efdb8797025a5d..649c603703bc1cbce11a026c28c5b85d98fb8c39 100755 (executable)
@@ -56,7 +56,6 @@
 #include <IntTools_Context.hxx>
 
 #include <NMTDS_ShapesDataStructure.hxx>
-#include <NMTTools_DSFiller.hxx>
 #include <NMTTools_PaveFiller.hxx>
 
 #include <GEOMAlgo_Tools3D.hxx>
@@ -93,8 +92,8 @@ static
 {
   myErrorStatus=0;
   //
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS(); 
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
   IntTools_Context& aCtx= pPF->ChangeContext();
   //
   Standard_Boolean bToReverse;
@@ -186,8 +185,8 @@ static
 {
   myErrorStatus=0;
   //
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS(); 
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
   IntTools_Context& aCtx= pPF->ChangeContext();
   //
   Standard_Boolean bIsIN, bHasImage;
@@ -416,8 +415,8 @@ static
 {
   myErrorStatus=0;
   // 
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
   IntTools_Context& aCtx= pPF->ChangeContext();
   //
   Standard_Integer i, aNbS, iErr;
@@ -589,8 +588,8 @@ static
 {
   myErrorStatus=0;
   //
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
   IntTools_Context& aCtx= pPF->ChangeContext();
   //
   //Standard_Boolean bHasImage;
index 080093803882e72b0853cecfed50d0457a478c4f..8465cebbaf5f6a920a7ae61bca0737cb0d96e31e 100755 (executable)
@@ -35,7 +35,6 @@
 #include <NMTDS_ShapesDataStructure.hxx>
 
 #include <NMTTools_PaveFiller.hxx>
-#include <NMTTools_DSFiller.hxx>
 
 #include <GEOMAlgo_Tools3D.hxx>
 
@@ -49,8 +48,8 @@ static
 //=======================================================================
   const TopTools_ListOfShape& GEOMAlgo_Builder::Generated(const TopoDS_Shape& theS)
 {
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
   IntTools_Context& aCtx=pPF->ChangeContext();
   //
   Standard_Boolean bHasImage, bToReverse;
@@ -104,8 +103,8 @@ static
 //=======================================================================
   const TopTools_ListOfShape& GEOMAlgo_Builder::Modified(const TopoDS_Shape& theS)
 {
-  const NMTDS_ShapesDataStructure& aDS=myDSFiller->DS();
-  NMTTools_PaveFiller* pPF=(NMTTools_PaveFiller*)&(myDSFiller->PaveFiller());
+  const NMTDS_ShapesDataStructure& aDS=*myPaveFiller->DS();
+  NMTTools_PaveFiller* pPF=myPaveFiller;
   IntTools_Context& aCtx=pPF->ChangeContext();
   //
   Standard_Boolean bHasImage, bToReverse;
index c3a5b7cfc0cab8a32b34f5728c8d7b8118183bd2..237e81ef4775d21e29b041eea9ffdf7d8e7120b0 100644 (file)
 #include <TopTools_IndexedMapOfShape.hxx>
 #include <TopTools_DataMapOfShapeShape.hxx>
 
+#include <Bnd_Box.hxx>
+#include <BRepBndLib.hxx>
+#include <BRepMesh_IncrementalMesh.hxx>
+
 #include <BRep_Builder.hxx>
 #include <BRep_Tool.hxx>
 
@@ -527,6 +531,58 @@ void GEOMAlgo_FinderShapeOn::CopySource(const TopoDS_Shape& aE,
   //
   aEx.Free(bFree);
 }
+//
+//=======================================================================
+//function : BuildTriangulation
+//purpose  : 
+//=======================================================================
+bool GEOMAlgo_FinderShapeOn::BuildTriangulation (const TopoDS_Shape& theShape)
+{
+  // calculate deflection
+  Standard_Real aDeviationCoefficient = 0.001;
+
+  Bnd_Box B;
+  BRepBndLib::Add(theShape, B);
+  Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax;
+  B.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
+
+  Standard_Real dx = aXmax - aXmin, dy = aYmax - aYmin, dz = aZmax - aZmin;
+  Standard_Real aDeflection = Max(Max(dx, dy), dz) * aDeviationCoefficient * 4;
+  Standard_Real aHLRAngle = 0.349066;
+
+  // build triangulation
+  BRepMesh_IncrementalMesh Inc (theShape, aDeflection, Standard_False, aHLRAngle);
+
+  // check triangulation
+  bool isTriangulation = true;
+
+  TopExp_Explorer exp (theShape, TopAbs_FACE);
+  if (exp.More())
+  {
+    TopLoc_Location aTopLoc;
+    Handle(Poly_Triangulation) aTRF;
+    aTRF = BRep_Tool::Triangulation(TopoDS::Face(exp.Current()), aTopLoc);
+    if (aTRF.IsNull()) {
+      isTriangulation = false;
+    }
+  }
+  else // no faces, try edges
+  {
+    TopExp_Explorer expe (theShape, TopAbs_EDGE);
+    if (!expe.More()) {
+      isTriangulation = false;
+    }
+    else {
+      TopLoc_Location aLoc;
+      Handle(Poly_Polygon3D) aPE = BRep_Tool::Polygon3D(TopoDS::Edge(expe.Current()), aLoc);
+      if (aPE.IsNull()) {
+        isTriangulation = false;
+      }
+    }
+  }
+
+  return isTriangulation;
+}
 
 //
 // myErrorStatus :
@@ -544,4 +600,3 @@ void GEOMAlgo_FinderShapeOn::CopySource(const TopoDS_Shape& aE,
 // myWarningStatus
 //
 // 10 -subshapes of type myShapeType can not be fond in myShape
-
index fbc85f0d93b0ff09406fa3782c52ba273175baac..6053ad654cacced8ef1029a8084bbf5a1874d482 100644 (file)
@@ -111,9 +111,7 @@ Standard_EXPORT  const TopTools_ListOfShape& Shapes() const;
 
 Standard_EXPORT static  void CopySource(const TopoDS_Shape& aS,TopTools_DataMapOfShapeShape& aImages,TopTools_DataMapOfShapeShape& aOriginals,TopoDS_Shape& aSC) ;
 
-
-
-
+Standard_EXPORT static  bool BuildTriangulation (const TopoDS_Shape& theShape);
 
 protected:
 
index 98f4afe30c84f438b2e6128ce2739b73ea79a58f..6f9f6a0b45277d8fb301c663d30d7db19a375557 100644 (file)
@@ -41,6 +41,7 @@
 #include <Poly_Triangle.hxx>
 #include <Poly_PolygonOnTriangulation.hxx>
 #include <Poly_Triangulation.hxx>
+#include <Poly_Polygon3D.hxx>
 
 #include <Geom_Curve.hxx>
 #include <Geom_Surface.hxx>
@@ -70,6 +71,7 @@
 
 #include <GEOMAlgo_SurfaceTools.hxx>
 #include <GEOMAlgo_StateCollector.hxx>
+#include <GEOMAlgo_FinderShapeOn.hxx>
 
 #include <GEOMAlgo_PassKey.hxx>
 #include <GEOMAlgo_DataMapOfPassKeyInteger.hxx>
@@ -542,8 +544,11 @@ void GEOMAlgo_FinderShapeOn1::InnerPoints(const TopoDS_Face& aF,
   //
   aTRF=BRep_Tool::Triangulation(aF, aLoc);
   if (aTRF.IsNull()) {
-    myErrorStatus=20; // no triangulation found
-    return;  
+    if (!GEOMAlgo_FinderShapeOn::BuildTriangulation(aF)) {
+      myErrorStatus=20; // no triangulation found
+      return;
+    }
+    aTRF=BRep_Tool::Triangulation(aF, aLoc);
   }
   //
   const gp_Trsf& aTrsf=aLoc.Transformation();
@@ -688,19 +693,35 @@ void GEOMAlgo_FinderShapeOn1::InnerPoints(const TopoDS_Edge& aE,
   aLP.Clear();
   BRep_Tool::PolygonOnTriangulation(aE, aPTE, aTRE, aLoc);
   if (aTRE.IsNull() || aPTE.IsNull()) {
-    myErrorStatus=20; // no triangulation found
-    return;  
+    Handle(Poly_Polygon3D) aPE = BRep_Tool::Polygon3D(aE, aLoc);
+    if (aPE.IsNull()) {
+      if (!GEOMAlgo_FinderShapeOn::BuildTriangulation(aE)) {
+        myErrorStatus=20; // no triangulation found
+        return;
+      }
+      aPE = BRep_Tool::Polygon3D(aE, aLoc);
+    }
+    const gp_Trsf& aTrsf=aLoc.Transformation();
+    const TColgp_Array1OfPnt& aNodes=aPE->Nodes();
+    //
+    aNbNodes=aPE->NbNodes();
+    Standard_Integer low = aNodes.Lower(), up = aNodes.Upper();
+    for (j=low+1; j<up; ++j) {
+      aP=aNodes(j).Transformed(aTrsf);
+      aLP.Append(aP);
+    }
   }
-  //
-  const gp_Trsf& aTrsf=aLoc.Transformation();
-  const TColgp_Array1OfPnt& aNodes=aTRE->Nodes();
-  //
-  aNbNodes=aPTE->NbNodes();
-  const TColStd_Array1OfInteger& aInds=aPTE->Nodes();
-  for (j=2; j<aNbNodes; ++j) {
-    aIndex=aInds(j);
-    aP=aNodes(aIndex).Transformed(aTrsf);
-    aLP.Append(aP);
+  else {
+    const gp_Trsf& aTrsf=aLoc.Transformation();
+    const TColgp_Array1OfPnt& aNodes=aTRE->Nodes();
+    //
+    aNbNodes=aPTE->NbNodes();
+    const TColStd_Array1OfInteger& aInds=aPTE->Nodes();
+    for (j=2; j<aNbNodes; ++j) {
+      aIndex=aInds(j);
+      aP=aNodes(aIndex).Transformed(aTrsf);
+      aLP.Append(aP);
+    }
   }
   //
   aNb=aLP.Extent();
@@ -708,7 +729,6 @@ void GEOMAlgo_FinderShapeOn1::InnerPoints(const TopoDS_Edge& aE,
     // try to fill it yourself
     InnerPoints(aE, myNbPntsMin, aLP);
     aNb=aLP.Extent();
-    
   }
 }
 //=======================================================================
index 8a386d0b84433c4956e16ffc626476b8a4d76295..ebc34e718699979dff1a592ba4c0fc66760ad69b 100644 (file)
@@ -41,6 +41,7 @@
 #include <Poly_Triangle.hxx>
 #include <Poly_PolygonOnTriangulation.hxx>
 #include <Poly_Triangulation.hxx>
+#include <Poly_Polygon3D.hxx>
 
 #include <Geom_Curve.hxx>
 #include <Geom_Surface.hxx>
@@ -70,6 +71,7 @@
 
 #include <GEOMAlgo_SurfaceTools.hxx>
 #include <GEOMAlgo_StateCollector.hxx>
+#include <GEOMAlgo_FinderShapeOn.hxx>
 
 #include <GEOMAlgo_PassKey.hxx>
 #include <GEOMAlgo_DataMapOfPassKeyInteger.hxx>
   //
   aTRF=BRep_Tool::Triangulation(aF, aLoc);
   if (aTRF.IsNull()) {
-    myErrorStatus=20; // no triangulation found
-    return;  
+    if (!GEOMAlgo_FinderShapeOn::BuildTriangulation(aF)) {
+      myErrorStatus=20; // no triangulation found
+      return;
+    }
+    aTRF=BRep_Tool::Triangulation(aF, aLoc);
   }
   //
   const gp_Trsf& aTrsf=aLoc.Transformation();
   aLP.Clear();
   BRep_Tool::PolygonOnTriangulation(aE, aPTE, aTRE, aLoc);
   if (aTRE.IsNull() || aPTE.IsNull()) {
-    myErrorStatus=20; // no triangulation found
-    return;  
+    Handle(Poly_Polygon3D) aPE = BRep_Tool::Polygon3D(aE, aLoc);
+    if (aPE.IsNull()) {
+      if (!GEOMAlgo_FinderShapeOn::BuildTriangulation(aE)) {
+        myErrorStatus=20; // no triangulation found
+        return;
+      }
+      aPE = BRep_Tool::Polygon3D(aE, aLoc);
+    }
+    const gp_Trsf& aTrsf=aLoc.Transformation();
+    const TColgp_Array1OfPnt& aNodes=aPE->Nodes();
+    //
+    aNbNodes=aPE->NbNodes();
+    Standard_Integer low = aNodes.Lower(), up = aNodes.Upper();
+    for (j=low+1; j<up; ++j) {
+      aP=aNodes(j).Transformed(aTrsf);
+      aLP.Append(aP);
+    }
   }
-  //
-  const gp_Trsf& aTrsf=aLoc.Transformation();
-  const TColgp_Array1OfPnt& aNodes=aTRE->Nodes();
-  //
-  aNbNodes=aPTE->NbNodes();
-  const TColStd_Array1OfInteger& aInds=aPTE->Nodes();
-  for (j=2; j<aNbNodes; ++j) {
-    aIndex=aInds(j);
-    aP=aNodes(aIndex).Transformed(aTrsf);
-    aLP.Append(aP);
+  else {
+    const gp_Trsf& aTrsf=aLoc.Transformation();
+    const TColgp_Array1OfPnt& aNodes=aTRE->Nodes();
+    //
+    aNbNodes=aPTE->NbNodes();
+    const TColStd_Array1OfInteger& aInds=aPTE->Nodes();
+    for (j=2; j<aNbNodes; ++j) {
+      aIndex=aInds(j);
+      aP=aNodes(aIndex).Transformed(aTrsf);
+      aLP.Append(aP);
+    }
   }
   //
   aNb=aLP.Extent();
     // try to fill it yourself
     InnerPoints(aE, myNbPntsMin, aLP);
     aNb=aLP.Extent();
-    
   }
 }
 //=======================================================================
 // 30- can not obtain the line from the link
 // 40- point can not be classified
 // 41- invalid data for classifier
-
index 9c27ede442c09280fd084daecf518600df92129d..e2f2c9a6953713998e7f77d31f634332fc4b2494 100755 (executable)
@@ -102,6 +102,7 @@ GEOMAlgo_Gluer::GEOMAlgo_Gluer()
   myTolerance=0.0001;
   myTol=myTolerance;
   myCheckGeometry=Standard_True;
+  myKeepNonSolids=Standard_False;
   myNbAlone=0;
 }
 //=======================================================================
@@ -128,6 +129,14 @@ Standard_Boolean GEOMAlgo_Gluer::CheckGeometry() const
   return myCheckGeometry;
 }
 //=======================================================================
+//function : SetKeepNonSolids
+//purpose  : 
+//=======================================================================
+void GEOMAlgo_Gluer::SetKeepNonSolids(const Standard_Boolean aFlag)
+{
+  myKeepNonSolids=aFlag;
+}
+//=======================================================================
 //function : AloneShapes
 //purpose  : 
 //=======================================================================
@@ -356,39 +365,45 @@ void GEOMAlgo_Gluer::MakeVertices()
   }
 }
 //=======================================================================
-//function : MakeSolids
+//function : MakeSubShapes
 //purpose  : 
 //=======================================================================
-void GEOMAlgo_Gluer::MakeSolids()
+void GEOMAlgo_Gluer::MakeSubShapes (const TopoDS_Shape&  theShape,
+                                    TopTools_MapOfShape& theMS,
+                                    TopoDS_Compound&     theResult)
 {
-  myErrorStatus=0;
+  if (theMS.Contains(theShape))
+    return;
   //
-  Standard_Integer aNbS;
-  TopAbs_Orientation anOr;
-  TopoDS_Compound aCmp;
-  TopoDS_Solid aNewSolid;
-  TopTools_IndexedMapOfShape aMS;
-  TopExp_Explorer aExpS, aExp;
   BRep_Builder aBB;
   //
-  aBB.MakeCompound(aCmp);
+  theMS.Add(theShape);
   //
-  aNbS=aMS.Extent();
-  aExpS.Init(myShape, TopAbs_SOLID);
-  for (; aExpS.More(); aExpS.Next()) {
-    const TopoDS_Solid& aSolid=TopoDS::Solid(aExpS.Current());
-    if (aMS.Contains(aSolid)) {
-      continue;
+  if (theShape.ShapeType() == TopAbs_COMPOUND ||
+      theShape.ShapeType() == TopAbs_COMPSOLID)
+  {
+    TopoDS_Iterator It (theShape, Standard_True, Standard_True);
+    for (; It.More(); It.Next())
+    {
+      MakeSubShapes(It.Value(), theMS, theResult);
     }
-    aMS.Add(aSolid);
+  }
+  else if (theShape.ShapeType() == TopAbs_SOLID)
+  {
+    // build a solid
+    TopoDS_Solid aNewSolid;
+    TopExp_Explorer aExpS, aExp;
+    //
+    const TopoDS_Solid& aSolid = TopoDS::Solid(theShape);
     //
-    anOr=aSolid.Orientation();
+    TopAbs_Orientation anOr = aSolid.Orientation();
     //
     aBB.MakeSolid(aNewSolid);
     aNewSolid.Orientation(anOr);
     //
     aExp.Init(aSolid, TopAbs_SHELL);
-    for (; aExp.More(); aExp.Next()) {
+    for (; aExp.More(); aExp.Next())
+    {
       const TopoDS_Shape& aShell=aExp.Current();
       const TopoDS_Shape& aShellR=myOrigins.Find(aShell);
       aBB.Add(aNewSolid, aShellR);
@@ -400,14 +415,88 @@ void GEOMAlgo_Gluer::MakeSolids()
     myImages.Bind(aNewSolid, aLS);
     myOrigins.Bind(aSolid, aNewSolid);
     //
-    aBB.Add(aCmp, aNewSolid);
+    aBB.Add(theResult, aNewSolid);
+  }
+  else if (theShape.ShapeType() == TopAbs_WIRE)
+  {
+    if (myKeepNonSolids)
+    {
+      // just add image
+      if (!myOrigins.IsBound(theShape))
+      {
+        // build wire
+        const TopoDS_Wire& aW=TopoDS::Wire(theShape);
+        //
+        TopoDS_Wire newWire;
+        aBB.MakeWire(newWire);
+        //
+        TopExp_Explorer aExpE (aW, TopAbs_EDGE);
+        for (; aExpE.More(); aExpE.Next()) {
+          const TopoDS_Edge& aE=TopoDS::Edge(aExpE.Current());
+          TopoDS_Edge aER=TopoDS::Edge(myOrigins.Find(aE));
+          //
+          aER.Orientation(TopAbs_FORWARD);
+          if (!BRep_Tool::Degenerated(aER)) {
+            // build p-curve
+            //if (bIsUPeriodic) {
+            //  GEOMAlgo_Tools::RefinePCurveForEdgeOnFace(aER, aFFWD, aUMin, aUMax);
+            //}
+            //BOPTools_Tools2D::BuildPCurveForEdgeOnFace(aER, aFFWD);
+            //
+            // orient image
+            Standard_Boolean bIsToReverse=BOPTools_Tools3D::IsSplitToReverse1(aER, aE, myContext);
+            if (bIsToReverse) {
+              aER.Reverse();
+            }
+          }
+          else {
+            aER.Orientation(aE.Orientation());
+          }
+          //
+          aBB.Add(newWire, aER);
+        }
+        // xf
+        TopTools_ListOfShape aLW;
+        //
+        aLW.Append(aW);
+        myImages.Bind(newWire, aLW);
+        myOrigins.Bind(aW, newWire);
+      }
+      const TopoDS_Shape& aShapeR = myOrigins.Find(theShape);
+      aBB.Add(theResult, aShapeR);
+    }
   }
+  else
+  {
+    if (myKeepNonSolids)
+    {
+      // just add image
+      const TopoDS_Shape& aShapeR = myOrigins.Find(theShape);
+      aBB.Add(theResult, aShapeR);
+    }
+  }
+}
+//=======================================================================
+//function : MakeSolids
+//purpose  : 
+//=======================================================================
+void GEOMAlgo_Gluer::MakeSolids()
+{
+  myErrorStatus=0;
+  //
+  BRep_Builder aBB;
+  TopoDS_Compound aCmp;
+  TopTools_MapOfShape aMS;
+  //
+  aBB.MakeCompound(aCmp);
+  //
+  // Add images of all initial sub-shapes in the result.
+  // If myKeepNonSolids==false, add only solids images.
+  MakeSubShapes(myShape, aMS, aCmp);
   //
   myResult=aCmp;
   //
-  aNbS=aMS.Extent();
-  if (aNbS) {
-    Standard_Real aTol=1.e-7;
+  if (aMS.Extent()) {
     BOP_CorrectTolerances::CorrectCurveOnSurface(myResult);
   }
 }
index 0f8a871ab08d4b807fa3bfa602b42b1ef8adbbb0..5ca326149aa9b810af5f3a0e47d7f5d4e6fba339 100644 (file)
 #ifndef _TopTools_ListOfShape_HeaderFile
 #include <TopTools_ListOfShape.hxx>
 #endif
+#ifndef _TopTools_MapOfShape_HeaderFile
+#include <TopTools_MapOfShape.hxx>
+#endif
 #ifndef _GEOMAlgo_ShapeAlgo_HeaderFile
 #include <GEOMAlgo_ShapeAlgo.hxx>
 #endif
 #ifndef _TopAbs_ShapeEnum_HeaderFile
 #include <TopAbs_ShapeEnum.hxx>
 #endif
+#ifndef _TopoDS_Compound_HeaderFile
+#include <TopoDS_Compound.hxx>
+#endif
 class TopTools_ListOfShape;
 class TopoDS_Shape;
 class TopoDS_Edge;
@@ -92,6 +98,9 @@ Standard_EXPORT   void SetCheckGeometry(const Standard_Boolean aFlag) ;
 Standard_EXPORT   Standard_Boolean CheckGeometry() const;
 
 
+Standard_EXPORT   void SetKeepNonSolids(const Standard_Boolean aFlag) ;
+
+
 Standard_EXPORT virtual  void Perform() ;
 
 
@@ -143,6 +152,11 @@ Standard_EXPORT   void MakeShapes(const TopAbs_ShapeEnum aType) ;
 Standard_EXPORT   void MakeShells() ;
 
 
+Standard_EXPORT   void MakeSubShapes(const TopoDS_Shape& theShape,
+                                     TopTools_MapOfShape& theMS,
+                                     TopoDS_Compound& theResult);
+
+
 Standard_EXPORT   void MakeSolids() ;
 
 
@@ -173,6 +187,7 @@ Standard_EXPORT   Standard_Boolean HasNewSubShape(const TopoDS_Shape& aS) const;
  // Fields PROTECTED
  //
 Standard_Boolean myCheckGeometry;
+Standard_Boolean myKeepNonSolids;
 Standard_Real myTol;
 TopTools_DataMapOfShapeListOfShape myImages;
 TopTools_DataMapOfShapeShape myOrigins;
index 0e53aa6e4240ff78f495c3daeea165415c63420c..299fb5b1affd293f46cabde36b8c2bc80c9b6d96 100644 (file)
@@ -317,9 +317,6 @@ static
   aF=TopoDS::Face(aS);
   //
   aNbWires=NbWires(aF);
-  if (aNbWires>1) {
-    return;
-  }
   //
   aSurf=BRep_Tool::Surface(aF);
   GeomAdaptor_Surface aGAS(aSurf);
@@ -342,6 +339,8 @@ static
     aInfo.SetLocation(aP0);
     aInfo.SetPosition(aAx3);
     //
+    if (aNbWires>1) return;
+    //
     //aSurf->Bounds(aUMin, aUMax, aVMin, aVMax);
     BRepTools::UVBounds(aF, aUMin, aUMax, aVMin, aVMax);
     bInfU1=Precision::IsNegativeInfinite(aUMin);
@@ -374,6 +373,8 @@ static
     aInfo.SetPosition(aAx3);
     aInfo.SetRadius1(aR1);
     //
+    if (aNbWires>1) return;
+    //
     aInfo.SetKindOfBounds(GEOMAlgo_KB_TRIMMED);
     aInfo.SetKindOfClosed(GEOMAlgo_KC_CLOSED);
     //
@@ -394,6 +395,8 @@ static
     aInfo.SetPosition(aAx3);
     aInfo.SetRadius1(aR1);
     //
+    if (aNbWires>1) return;
+    //
     BRepTools::UVBounds(aF, aUMin, aUMax, aVMin, aVMax);
     bInfU1=Precision::IsNegativeInfinite(aUMin);
     bInfU2=Precision::IsPositiveInfinite(aUMax);
@@ -424,6 +427,8 @@ static
     aInfo.SetPosition(aAx3);
     //aInfo.SetRadius1(aR1);
     //
+    if (aNbWires>1) return;
+    //
     BRepTools::UVBounds(aF, aUMin, aUMax, aVMin, aVMax);
     bInfU1=Precision::IsNegativeInfinite(aUMin);
     bInfU2=Precision::IsPositiveInfinite(aUMax);
@@ -456,8 +461,10 @@ static
     aInfo.SetRadius1(aR1);
     aInfo.SetRadius2(aR2);
     //
+    if (aNbWires>1) return;
+    //
     aInfo.SetKindOfBounds(GEOMAlgo_KB_TRIMMED);
-    
+    //
     FillDetails(aF, aTorus);
   }
 }
index a67c8e222c1f8b2a4193222e36b60552b8079ee0..19991027d2d72b044d4dbbe285cf04ae3a88ec52 100755 (executable)
@@ -63,6 +63,13 @@ is
         
     Limit(me)  
        returns ShapeEnum from TopAbs;   
+
+    SetLimitMode(me:out; 
+           aLimitMode:Integer from Standard); 
+            
+    LimitMode(me) 
+       returns Integer from Standard;    
+
     -- 
     --    Protected methods  
     --  
@@ -89,5 +96,7 @@ fields
     myTools           : ListOfShape from TopTools is protected; 
     myMapTools        : MapOfShape  from TopTools is protected;        
     myLimit           : ShapeEnum   from TopAbs   is protected;   
+    myLimitMode       : Integer from Standard     is protected;  
+
 end Splitter;
 
index 7ea27c32f1c257c1cb67d189dbcbbe7a83c64ae0..431719ab15fe5009ae12bd5f65928172e828712e 100755 (executable)
 
 #include <BOP_CorrectTolerances.hxx>
 
-#include <NMTTools_DSFiller.hxx>
+
+static 
+  void TreatCompound(const TopoDS_Shape& aC, 
+                    TopTools_ListOfShape& aLSX);
 
 //=======================================================================
 //function : 
@@ -53,6 +56,7 @@
   GEOMAlgo_Builder()
 {
   myLimit=TopAbs_SHAPE;
+  myLimitMode=0;
 }
 //=======================================================================
 //function : ~
   return myLimit;
 }
 //=======================================================================
+//function : SetLimitMode
+//purpose  : 
+//=======================================================================
+  void GEOMAlgo_Splitter::SetLimitMode(const Standard_Integer aMode)
+{
+  myLimitMode=aMode;
+}
+//=======================================================================
+//function : LimitMode
+//purpose  : 
+//=======================================================================
+  Standard_Integer GEOMAlgo_Splitter::LimitMode()const
+{
+  return myLimitMode;
+}
+//=======================================================================
 //function : Clear
 //purpose  : 
 //=======================================================================
     Standard_Integer i, aNbS;
     BRep_Builder aBB;
     TopoDS_Compound aC;
-    TopTools_IndexedMapOfShape aM;
+    TopTools_IndexedMapOfShape aMx;
     //
     aBB.MakeCompound(aC);
     //
-    TopExp::MapShapes(myShape, myLimit, aM);
-    aNbS=aM.Extent();
+    TopExp::MapShapes(myShape, myLimit, aMx);
+    aNbS=aMx.Extent();
     for (i=1; i<=aNbS; ++i) {
-      const TopoDS_Shape& aS=aM(i);
+      const TopoDS_Shape& aS=aMx(i);
       aBB.Add(aC, aS);
     }
+    //modified by NIZNHY-PKV Thu Feb 15 17:09:32 2007f
+    if (myLimitMode) {
+      Standard_Integer iType, iLimit, iTypeX;
+      TopAbs_ShapeEnum aType, aTypeX;
+      TopTools_ListOfShape aLSP, aLSX;
+      TopTools_ListIteratorOfListOfShape aIt, aItX, aItIm;
+      TopTools_MapOfShape  aM;
+      //
+      iLimit=(Standard_Integer)myLimit; 
+      //
+      // 1. Collect the shapes to process aLSP
+      aIt.Initialize(myShapes);
+      for (; aIt.More(); aIt.Next()) {
+       const TopoDS_Shape& aS=aIt.Value();
+       if (myMapTools.Contains(aS)) {
+         continue;
+       }
+       //
+       aType=aS.ShapeType();
+       iType=(Standard_Integer)aType;
+       //
+       if (iType>iLimit) {
+         aLSP.Append(aS);
+       }
+       //
+       else if (aType==TopAbs_COMPOUND) {
+         aLSX.Clear();
+         //
+         TreatCompound(aS, aLSX);
+         //
+         aItX.Initialize(aLSX);
+         for (; aItX.More(); aItX.Next()) {
+           const TopoDS_Shape& aSX=aItX.Value();
+           aTypeX=aSX.ShapeType();
+           iTypeX=(Standard_Integer)aTypeX;
+           //
+           if (iTypeX>iLimit) {
+             aLSP.Append(aSX);
+           }
+         }
+       }
+      }// for (; aIt.More(); aIt.Next()) {
+      //
+      // 2. Add them to aC
+      aIt.Initialize(aLSP);
+      for (; aIt.More(); aIt.Next()) {
+       const TopoDS_Shape& aS=aIt.Value();
+       if (myImages.HasImage(aS)) {
+         const TopTools_ListOfShape& aLSIm=myImages.Image(aS);
+         aItIm.Initialize(aLSIm);
+         for (; aItIm.More(); aItIm.Next()) {
+           const TopoDS_Shape& aSIm=aItIm.Value();
+           if (aM.Add(aSIm)) {
+             aBB.Add(aC, aSIm);
+           }
+         }
+       }
+       else {
+         if (aM.Add(aS)) {
+           aBB.Add(aC, aS);
+         }
+       }
+      }
+    }// if (myLimitMode) {
+    //modified by NIZNHY-PKV Thu Feb 15 17:09:34 2007t
     myShape=aC;
-  }
+  }//if (myLimit!=TopAbs_SHAPE) {
   //
   GEOMAlgo_Builder::PostTreat();
+}
+//=======================================================================
+//function : TreatCompound
+//purpose  : 
+//=======================================================================
+void TreatCompound(const TopoDS_Shape& aC1, 
+                  TopTools_ListOfShape& aLSX)
+{
+  Standard_Integer aNbC1;
+  TopAbs_ShapeEnum aType;
+  TopTools_ListOfShape aLC, aLC1;
+  TopTools_ListIteratorOfListOfShape aIt, aIt1;
+  TopoDS_Iterator aItC;
   //
+  aLC.Append (aC1);
+  while(1) {
+    aLC1.Clear();
+    aIt.Initialize(aLC);
+    for (; aIt.More(); aIt.Next()) {
+      const TopoDS_Shape& aC=aIt.Value(); //C is compound
+      //
+      aItC.Initialize(aC);
+      for (; aItC.More(); aItC.Next()) {
+       const TopoDS_Shape& aS=aItC.Value();
+       aType=aS.ShapeType();
+       if (aType==TopAbs_COMPOUND) {
+         aLC1.Append(aS);
+       }
+       else {
+         aLSX.Append(aS);
+       }
+      }
+    }
+    //
+    aNbC1=aLC1.Extent();
+    if (!aNbC1) {
+      break;
+    }
+    //
+    aLC.Clear();
+    aIt.Initialize(aLC1);
+    for (; aIt.More(); aIt.Next()) {
+      const TopoDS_Shape& aSC=aIt.Value();
+      aLC.Append(aSC);
+    }
+  }// while(1)
 }
 //
 // myErrorStatus
 // 
 // 0  - Ok
 // 1  - The object is just initialized
-// 2  - DSFiller is failed
+// 2  - PaveFiller is failed
 // 10 - No shapes to process
 // 30 - SolidBuilder failed
index 6ef1e92ac33141f1630a142bb2b964f7ee461690..7f3b69fb74a037b0cebe40a5c2ee8e1ccb7d8ff9 100644 (file)
@@ -29,6 +29,9 @@
 #ifndef _TopAbs_ShapeEnum_HeaderFile
 #include <TopAbs_ShapeEnum.hxx>
 #endif
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
 #ifndef _GEOMAlgo_Builder_HeaderFile
 #include <GEOMAlgo_Builder.hxx>
 #endif
@@ -82,6 +85,12 @@ Standard_EXPORT   void SetLimit(const TopAbs_ShapeEnum aLimit) ;
 
 Standard_EXPORT   TopAbs_ShapeEnum Limit() const;
 
+
+Standard_EXPORT   void SetLimitMode(const Standard_Integer aLimitMode) ;
+
+
+Standard_EXPORT   Standard_Integer LimitMode() const;
+
 //!  Adds Tool arguments of the operation as <br>
 //!           shapes of upper level of container shape theShape <br>
 //! ===================================================== <br>
@@ -108,6 +117,7 @@ Standard_EXPORT virtual  void PostTreat() ;
 TopTools_ListOfShape myTools;
 TopTools_MapOfShape myMapTools;
 TopAbs_ShapeEnum myLimit;
+Standard_Integer myLimitMode;
 
 
 private: 
index ca32aed4bd521d31d0d39b2fca31e2d0e96012f9..b1a0f9609a433224111bc9b2dabdbb2dd65746d1 100644 (file)
@@ -74,6 +74,7 @@ dist_libGEOMAlgo_la_SOURCES = \
        GEOMAlgo_FinderShapeOnQuad.cxx \
        GEOMAlgo_GlueAnalyser.cxx \
        GEOMAlgo_Gluer.cxx \
+       GEOMAlgo_Gluer1.cxx \
        GEOMAlgo_HAlgo.cxx \
        GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx \
        GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_0.cxx \
@@ -155,6 +156,11 @@ salomeinclude_HEADERS = \
        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 \
@@ -214,10 +220,6 @@ salomeinclude_HEADERS = \
        GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx \
        GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx \
        GEOMAlgo_DataMapOfPassKeyShapeShape.hxx \
-       GEOMAlgo_Gluer1.cxx \
-       GEOMAlgo_Gluer1.hxx \
-       GEOMAlgo_Gluer1.ixx \
-       GEOMAlgo_Gluer1.jxx \
        GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx \
        GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx \
        GEOMAlgo_KindOfBounds.hxx \
@@ -244,6 +246,3 @@ libGEOMAlgo_la_LDFLAGS  = \
        ../NMTTools/libNMTTools.la \
        $(STDLIB) \
        $(CAS_LDPATH) -lTKBO -lTKShHealing -lTKBool -lTKMesh
-
-
-
index 315f8f08268268790feef475b6102de9b89f56dd..eb60430f6a14022ef2159ef64e1939c1b4eb79b6 100644 (file)
@@ -59,6 +59,7 @@
 #include <TopAbs.hxx>
 #include <TopExp.hxx>
 #include <TopTools_IndexedMapOfShape.hxx>
+#include <TopoDS.hxx>
 
 #include <Precision.hxx>
 
@@ -66,9 +67,6 @@
 
 #include <set>
 
-using namespace std;
-
-
 //=====================================================================================
 // function : GetShapeFromIOR()
 // purpose  : exist also as static method !
index 1a666ad76fe80e91b6b39cc21ce072debdcf13ce..57a4d102f57d5d36e373e3351830d1ba807809b6 100755 (executable)
@@ -52,8 +52,6 @@
 #include <TColStd_MapOfInteger.hxx>
 #include <TCollection_AsciiString.hxx>
 
-using namespace std;
-
 //================================================================
 // Function : getActiveView
 // Purpose  : Get active view window, returns 0 if no open study frame
@@ -769,6 +767,7 @@ bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction )
        showError();
       }
       else {
+       addSubshapesToStudy(); // add Subshapes if local selection
        const int nbObjs = objects.size();
         int aNumber = 1;
        for ( ObjectList::iterator it = objects.begin(); it != objects.end(); ++it ) {
@@ -1023,4 +1022,78 @@ bool GEOMBase_Helper::selectObjects( ObjectList& objects )
   
   return true;
 }
+  
+//================================================================
+// Function : findObjectInFather
+// 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 QString& theName)
+{
+  SalomeApp_Application* app =
+    dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+  _PTR(Study) aDStudy = appStudy->studyDS();
+  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().c_str();
+    if (aChildName == theName) {
+      inStudy = true;
+      CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject(iit->Value());
+      aReturnObject = GEOM::GEOM_Object::_narrow( corbaObj );
+    }
+  }
+  if (inStudy)
+    return aReturnObject._retn();
+
+  return GEOM::GEOM_Object::_nil();
+}
+  
+//================================================================
+// Function : addSubshapesToStudy
+// Purpose  : Virtual method to add subshapes if needs
+//================================================================  
+void GEOMBase_Helper::addSubshapesToStudy()
+{
+  //Impemented in Dialogs, called from Accept method
+}
+
+//================================================================
+// Function : addSubshapesToFather
+// Purpose  : Method to add Father Subshapes to Study if it`s not exist
+//================================================================  
+void GEOMBase_Helper::addSubshapesToFather( QMap<QString, GEOM::GEOM_Object_var>& theMap )
+{
+  //GetStudyDS
+  SalomeApp_Application* app =
+    dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+  _PTR(Study) aDStudy = appStudy->studyDS();
+
+  GEOM::GEOM_IGroupOperations_var anOp = getGeomEngine()->GetIGroupOperations( getStudyId() );
+  for( QMap<QString, GEOM::GEOM_Object_var>::Iterator it = theMap.begin(); it != theMap.end(); it++ )
+    {
+      if ( !anOp->_is_nil() ) {
+       GEOM::GEOM_Object_var aFatherObj = anOp->GetMainShape( it.value() );
+       if ( !aFatherObj->_is_nil() ) { 
+       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.value(), it.key().toLatin1().data(), aFatherObj );
+       }
+      }
+      else {
+       //cout << " anOperations is NULL! " << endl;
+      }
+    }
+}  
 
+  
index db10f7cc0e63e979376dfa105bb8010497a2bc25..2e02f353020d90bd51354a1f626090297325295e 100755 (executable)
@@ -34,6 +34,7 @@
 #include CORBA_CLIENT_HEADER(GEOM_Gen)
 
 #include <QString>
+#include <QMap>
 
 #include <list>
 
@@ -171,6 +172,12 @@ protected:
   // as a top-level object.
 
   virtual const char* getNewObjectName() const; 
+  virtual void addSubshapesToStudy();
+
+  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<QString, GEOM::GEOM_Object_var>& theMap );
 
   void SetIsPreview(const bool thePreview) {isPreview = thePreview;}
   bool IsPreview() {return isPreview;}
index c234108d9b426fe86575253502868ab8847f810c..b1a50b0af99ebfe483f6538161fdfc39bcb0f908 100644 (file)
@@ -41,8 +41,6 @@
 #include <QSpinBox>
 #include <QDoubleSpinBox>
 
-using namespace std;
-
 //=================================================================================
 // class    : GEOMBase_Skeleton()
 // purpose  : Constructs a GEOMBase_Skeleton which is a child of 'parent', with the 
@@ -66,6 +64,8 @@ GEOMBase_Skeleton::GEOMBase_Skeleton( GeometryGUI* theGeometryGUI, QWidget* pare
   topLayout->setMargin( 0 ); topLayout->setSpacing( 0 );
   topLayout->addWidget( myMainFrame );
 
+  myMainFrame->GroupBoxName->setTitle( tr( "GEOM_RESULT_NAME_GRP" ) );
+  myMainFrame->NameLabel->setText( tr( "GEOM_RESULT_NAME_LBL" ) );
   buttonCancel()->setText( tr( "GEOM_BUT_CLOSE" ) );
   buttonOk()->setText( tr( "GEOM_BUT_OK" )) ;
   buttonApply()->setText( tr( "GEOM_BUT_APPLY" ) );
index 2659f6209b4f5a38bba8e62f6932f59d71aa854c..3e8eb2058c0d164fe2b3d97b64240038852f1254 100644 (file)
@@ -222,7 +222,7 @@ TopoDS_Shape GEOM_Client::GetShape( GEOM::GEOM_Gen_ptr geom, GEOM::GEOM_Object_p
   TopExp::MapShapes(aMainShape, anIndices);
 
   /* Case of only one subshape */
-  if (list->length() == 1) {
+  if (list->length() == 1 && list[0] > 0) {
     S = anIndices.FindKey(list[0]);
   }
   else {
index 7b81f86d99331a4a467ac798323c1840a155746d..f1cd19d10efdd5d1c412e4bcacac2bce1192489c 100644 (file)
 
 #include <OCCViewer_ViewModel.h>
 
-#include <AIS_ListOfInteractive.hxx>
-#include <AIS_ListIteratorOfListOfInteractive.hxx>
+#include <SUIT_Session.h>
+#include <SalomeApp_Study.h>
+#include <SALOME_InteractiveObject.hxx>
+
+#include <StdSelect_BRepOwner.hxx>
+#include <SelectMgr_Selection.hxx>
 #include <SelectMgr_EntityOwner.hxx>
+#include <SelectMgr_IndexedMapOfOwner.hxx>
+#include <SelectBasics_SensitiveEntity.hxx>
+
 #include <AIS_Shape.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
+#include <AIS_ListOfInteractive.hxx>
+#include <AIS_ListIteratorOfListOfInteractive.hxx>
 #include <TopExp.hxx>
-#include <SelectMgr_IndexedMapOfOwner.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
-#include <SelectMgr_Selection.hxx>
-#include <SelectBasics_SensitiveEntity.hxx>
-#include <StdSelect_BRepOwner.hxx>
 #include <TColStd_IndexedMapOfInteger.hxx>
 #include <NCollection_DataMap.hxx>
 
-#include <SUIT_Session.h>
-#include <SalomeApp_Study.h>
-
 
 //================================================================
 // Function : GEOMGUI_OCCSelector
@@ -69,71 +71,78 @@ GEOMGUI_OCCSelector::~GEOMGUI_OCCSelector()
 void GEOMGUI_OCCSelector::getSelection( SUIT_DataOwnerPtrList& aList ) const
 {
   OCCViewer_Viewer* vw = viewer();
-  if ( !vw )
+  if (!vw)
     return;
 
   Handle(AIS_InteractiveContext) ic = vw->getAISContext();
-  
-  if ( ic->HasOpenedContext() )
+
+  if (ic->HasOpenedContext())
+  {
+    TopoDS_Shape curBigShape;
+    TopTools_IndexedMapOfShape subShapes;
+
+    for (ic->InitSelected(); ic->MoreSelected(); ic->NextSelected())
     {
-      for ( ic->InitSelected(); ic->MoreSelected(); ic->NextSelected() )
-       {
-         Handle(StdSelect_BRepOwner) anOwner = Handle(StdSelect_BRepOwner)::DownCast(ic->SelectedOwner());
-         if ( anOwner.IsNull() )
-           continue;
-         
-         Handle(AIS_InteractiveObject) io = Handle(AIS_InteractiveObject)::DownCast( anOwner->Selectable() );
-         
-         QString entryStr = entry( io );
-         int index = -1; 
-         
-         if ( anOwner->ComesFromDecomposition() ) // == Local Selection
-           {
-             TopoDS_Shape subShape = anOwner->Shape();
-             Handle(AIS_Shape) aisShape = Handle(AIS_Shape)::DownCast( io );
-             if ( !aisShape.IsNull() )
-               {
-                 TopoDS_Shape bigShape = aisShape->Shape();
-                 
-                 TopTools_IndexedMapOfShape subShapes;
-                 TopExp::MapShapes( bigShape, subShapes );
-                 index = subShapes.FindIndex( subShape );
-               }
-           }
-         
-         if ( !entryStr.isEmpty() )
-           {
-             LightApp_DataOwner* owner;
-             if ( index > -1 ) // Local Selection
-               owner = new LightApp_DataSubOwner( entryStr, index );
-             else // Global Selection
-               owner = new LightApp_DataOwner( entryStr );
-
-             aList.append( SUIT_DataOwnerPtr( owner ) );
-           }
-       }
+      Handle(StdSelect_BRepOwner) anOwner = Handle(StdSelect_BRepOwner)::DownCast(ic->SelectedOwner());
+      if (anOwner.IsNull())
+        continue;
+
+      Handle(AIS_InteractiveObject) io = Handle(AIS_InteractiveObject)::DownCast(anOwner->Selectable());
+
+      QString entryStr = entry(io);
+      int index = -1;
+
+      if (anOwner->ComesFromDecomposition()) // == Local Selection
+      {
+        TopoDS_Shape subShape = anOwner->Shape();
+        Handle(AIS_Shape) aisShape = Handle(AIS_Shape)::DownCast(io);
+        if (!aisShape.IsNull())
+        {
+          TopoDS_Shape bigShape = aisShape->Shape();
+
+          if (!bigShape.IsEqual(curBigShape))
+          {
+            curBigShape = bigShape;
+            TopExp::MapShapes(bigShape, subShapes);
+          }
+          index = subShapes.FindIndex(subShape);
+        }
+      }
+
+      if (!entryStr.isEmpty())
+      {
+        LightApp_DataOwner* owner;
+        if (index > -1) // Local Selection
+          owner = new LightApp_DataSubOwner (entryStr, index);
+        else // Global Selection
+          owner = new LightApp_DataOwner (entryStr);
+
+        aList.append(SUIT_DataOwnerPtr(owner));
+      }
     }
+  }
   else
+  {
+    for (ic->InitCurrent(); ic->MoreCurrent(); ic->NextCurrent())
     {
-      for ( ic->InitCurrent(); ic->MoreCurrent(); ic->NextCurrent() )
-       {
-         Handle(AIS_InteractiveObject) io = ic->Current();
-         
-         QString entryStr = entry( io );
-         
-         if ( !entryStr.isEmpty() )
-           {
-             LightApp_DataOwner* owner = new LightApp_DataOwner( entryStr );
-             aList.append( SUIT_DataOwnerPtr( owner ) );
-           }
-       }
+      Handle(AIS_InteractiveObject) io = ic->Current();
+
+      QString entryStr = entry( io );
+
+      if ( !entryStr.isEmpty() )
+      {
+        LightApp_DataOwner* owner = new LightApp_DataOwner( entryStr );
+        aList.append( SUIT_DataOwnerPtr( owner ) );
+      }
     }
+  }
+
   // add externally selected objects
   SUIT_DataOwnerPtrList::const_iterator anExtIter;
-  for(anExtIter = mySelectedExternals.begin(); anExtIter != mySelectedExternals.end(); anExtIter++) {
+  for (anExtIter = mySelectedExternals.begin(); anExtIter != mySelectedExternals.end(); anExtIter++)
+  {
     aList.append(*anExtIter);
   }
-  
 }
 
 //================================================================
@@ -183,10 +192,16 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
 
   Handle(AIS_InteractiveContext) ic = vw->getAISContext();
 
-  NCollection_DataMap<TCollection_AsciiString, TColStd_IndexedMapOfInteger> indexesMap; // "entry - list_of_int" map for LOCAL selection
+  // "entry - list_of_int" map for LOCAL selection
+#ifndef WNT
+  NCollection_DataMap<TCollection_AsciiString, TColStd_IndexedMapOfInteger> indexesMap;
+#else
+  NCollection_DataMap<Standard_CString, TColStd_IndexedMapOfInteger> indexesMap;
+#endif
+
   QMap<QString,int> globalSelMap; // only Key=entry from this map is used.  value(int) is NOT used at all.
   SelectMgr_IndexedMapOfOwner ownersmap; // map of owners to be selected
-  
+
   AIS_ListOfInteractive aDispList;
   ic->DisplayedObjects( aDispList );
 
@@ -214,15 +229,16 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
        subIndexes.Add( subOwner->index() );
        indexesMap.Bind(entry.toLatin1().data(), subIndexes);
       }
-    } 
+    }
     else // the owner is NOT a sub owner, maybe it is a DataOwner == GLOBAL selection
     {
       const LightApp_DataOwner* owner = dynamic_cast<const LightApp_DataOwner*>( (*itr).operator->() );
       if ( owner )
       {
-       SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
+       SalomeApp_Study* appStudy =
+          dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
        QString anEntry = appStudy->referencedToEntry( owner->entry() );
-       
+
        globalSelMap[anEntry] = 1;
       }
     }
@@ -239,51 +255,76 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
       SelectMgr_IndexedMapOfOwner owners;
       getEntityOwners( io, ic, owners ); // get all owners
 
-      for  ( int i = 1, n = owners.Extent(); i <= n; i++ ) 
+      int i, n = owners.Extent();
+
+      // 1. Prepare map of shapes for local selection
+      TopTools_IndexedMapOfShape aMapOfShapes;
+      bool isLocal = false;
+
+      Handle(StdSelect_BRepOwner) anOwner;
+      for (i = 1; i <= n && !isLocal; i++)
       {
+        anOwner = Handle(StdSelect_BRepOwner)::DownCast(owners( i ));
+        if (!anOwner.IsNull() && anOwner->HasShape())
+        {
+          if (anOwner->ComesFromDecomposition() || !globalSelMap.contains(entryStr))
+          {
+            // has a local selection
+            Handle(AIS_Shape) aisShape = Handle(AIS_Shape)::DownCast( io );
+            if (!aisShape.IsNull() && indexesMap.IsBound(entryStr.toLatin1().data()))
+            {
+              isLocal = true;
+              TopoDS_Shape shape = aisShape->Shape();
+              TopExp::MapShapes(shape, aMapOfShapes);
+            }
+          }
+        }
+      }
 
-       Handle(StdSelect_BRepOwner) anOwner = Handle(StdSelect_BRepOwner)::DownCast(owners( i ));
-
-       if ( anOwner.IsNull() || !anOwner->HasShape() )
-         continue;
-
-       // GLOBAL selection
-       if ( !anOwner->ComesFromDecomposition() && globalSelMap.contains( entryStr ) ) 
-       {
-         ownersmap.Add( anOwner );
-         globalSelMap[entryStr]++;
-       }
-       // LOCAL selection
-       else
-       {
-         Handle(AIS_Shape) aisShape = Handle(AIS_Shape)::DownCast( io );
-
-         if ( !aisShape.IsNull() && indexesMap.IsBound( entryStr.toLatin1().data() ) )
-         {
-           TopoDS_Shape shape = aisShape->Shape();
-           TopTools_IndexedMapOfShape aMapOfShapes;
-           TopExp::MapShapes( shape, aMapOfShapes );
-           const TColStd_IndexedMapOfInteger& subIndexes = indexesMap.ChangeFind(entryStr.toLatin1().data());
-
-           const TopoDS_Shape& aSubShape = anOwner->Shape();
-           int  aSubShapeId = aMapOfShapes.FindIndex( aSubShape );
-
-           // check if the "sub_shape_index" is found in the "map of indexes for this entry",
-           // which was passes in the parameter
-           if ( subIndexes.Contains( aSubShapeId ) )
-           {
-             ownersmap.Add( anOwner );
-           }
-         }
-        } // end of local selection
+      // 2. Process all owners
+      for (i = 1; i <= n; i++)
+      {
+        anOwner = Handle(StdSelect_BRepOwner)::DownCast(owners( i ));
+
+        if ( anOwner.IsNull() || !anOwner->HasShape() )
+          continue;
+
+        // GLOBAL selection
+        if ( !anOwner->ComesFromDecomposition() && globalSelMap.contains( entryStr ) )
+        {
+          ownersmap.Add( anOwner );
+          globalSelMap[entryStr]++;
+        }
+        // LOCAL selection
+        else
+        {
+          if (isLocal)
+          {
+            const TColStd_IndexedMapOfInteger& subIndexes =
+              indexesMap.ChangeFind(entryStr.toLatin1().data());
+
+            const TopoDS_Shape& aSubShape = anOwner->Shape();
+            int aSubShapeId = aMapOfShapes.FindIndex( aSubShape );
+
+            // check if the "sub_shape_index" is found in the "map of indexes for this entry",
+            // which was passes in the parameter
+            if ( subIndexes.Contains( aSubShapeId ) )
+            {
+              ownersmap.Add( anOwner );
+            }
+          }
+        } // end of LOCAL selection
       } // end of for(owners)
-    }// end of if(entry)
-  }// end of for(AIS_all_ios)
+    } // end of if(entry)
+  } // end of for(AIS_all_ios)
 
   vw->unHighlightAll( false );
 
   // DO the selection
-  for  ( int i = 1, n = ownersmap.Extent(); i <= n; i++ ) 
+  int i = 1, n = ownersmap.Extent();
+  bool isAutoHilight = ic->AutomaticHilight();
+  ic->SetAutomaticHilight(Standard_False); //Bug 17269: for better performance
+  for  (; i <= n; i++)
   {
     Handle(SelectMgr_EntityOwner) owner = ownersmap( i );
     if ( owner->State() )
@@ -294,19 +335,25 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
     else
       ic->AddOrRemoveSelected( Handle(AIS_InteractiveObject)::DownCast(owner->Selectable()), false );
   }
+  ic->SetAutomaticHilight(isAutoHilight); //Bug 17269: restore mode
+  if (n < 3000)
+    ic->HilightSelected(/*updateviewer*/Standard_True);
+  else
+    vw->update();
 
-  vw->update();
-  
   // fill extra selected
   mySelectedExternals.clear();
-  for ( SUIT_DataOwnerPtrList::const_iterator itr2 = aList.begin(); itr2 != aList.end(); ++itr2 ) {
-    const LightApp_DataSubOwner* subOwner = dynamic_cast<const LightApp_DataSubOwner*>( (*itr2).operator->() );
+  for ( SUIT_DataOwnerPtrList::const_iterator itr2 = aList.begin(); itr2 != aList.end(); ++itr2 )
+  {
+    const LightApp_DataSubOwner* subOwner =
+      dynamic_cast<const LightApp_DataSubOwner*>( (*itr2).operator->() );
     if ( !subOwner )
     {
       const LightApp_DataOwner* owner = dynamic_cast<const LightApp_DataOwner*>( (*itr2).operator->() );
       if ( owner )
       {
-       SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
+       SalomeApp_Study* appStudy =
+          dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
        QString anEntry = appStudy->referencedToEntry( owner->entry() );
        if (globalSelMap[anEntry] == 1) mySelectedExternals.append(*itr2);
       }
index e8b30cdda8bb1f68ac06d9264eae02234bcb5bf0..268ef012401a0505fdcf71a360a6908dccf28a3f 100644 (file)
@@ -81,6 +81,8 @@ QVariant GEOMGUI_Selection::parameter( const int ind, const QString& p ) const
     return QVariant( typeName( ind ) );
   else if ( p == "displaymode" )
     return QVariant( displayMode( ind ) );
+  else if ( p == "isAutoColor" )
+    return QVariant( isAutoColor( ind ) );
   else
     return LightApp_Selection::parameter( ind, p );
 }
@@ -111,6 +113,14 @@ bool GEOMGUI_Selection::isVisible( const int index ) const
   return false;
 }
 
+bool GEOMGUI_Selection::isAutoColor( const int index ) const
+{
+  GEOM::GEOM_Object_var obj = getObject( index );
+  if ( !CORBA::is_nil( obj ) )
+    return obj->GetAutoColor();
+  return false;
+}
+
 QString GEOMGUI_Selection::displayMode( const int index ) const
 {
   SALOME_View* view = GEOM_Displayer::GetActiveView();
@@ -204,14 +214,14 @@ GEOM::GEOM_Object_ptr GEOMGUI_Selection::getObject( const int index ) const
   return GEOM::GEOM_Object::_nil();
 }
 
-QString GEOMGUI_Selection:: selectionMode() const
-{ 
+QString GEOMGUI_Selection::selectionMode() const
+{
   SalomeApp_Application* app = (SalomeApp_Application*)(SUIT_Session::session()->activeApplication());
   if (app) {
     GeometryGUI* aGeomGUI = dynamic_cast<GeometryGUI*>( app->module( "Geometry" ) );
-    if(aGeomGUI)
-      switch(aGeomGUI->getLocalSelectionMode())
-       {
+    if (aGeomGUI) {
+      switch (aGeomGUI->getLocalSelectionMode())
+      {
        case GEOM_POINT      : return "VERTEX";
        case GEOM_EDGE       : return "EDGE";
        case GEOM_WIRE       : return "WIRE";
@@ -221,7 +231,8 @@ QString GEOMGUI_Selection:: selectionMode() const
        case GEOM_COMPOUND   : return "COMPOUND";
        case GEOM_ALLOBJECTS : return "ALL";
        default: return "";
-       }
+      }
+    }
   }
   return "";
 }
index cfd05e7d5288710cecaee8a5c1b05cc82bb83fdf..7ab55713d0de6f2362c728ffc4d188112c12fcb7 100644 (file)
@@ -44,6 +44,7 @@ public:
 
 private:
   bool                  isVisible( const int ) const;
+  bool                  isAutoColor( const int ) const;
   QString               typeName( const int ) const;  
   QString               displayMode( const int ) const;
   QString               selectionMode() const;
index 4309536cef28920771f4832a086e30249ce8b5e9..cca8ab9492632993cee3424c8a306a1e05e536ff 100644 (file)
@@ -77,6 +77,7 @@
 #include <gp_Pln.hxx>
 #include <TColStd_MapOfInteger.hxx>
 #include <TColStd_MapIteratorOfMapOfInteger.hxx>
+#include <TopoDS_Iterator.hxx>
 
 // VTK Includes
 #include <vtkActorCollection.h>
@@ -518,8 +519,12 @@ void GEOM_Displayer::Update( SALOME_OCCPrs* prs )
         Handle(GEOM_AISShape) AISShape;
         if (myType == GEOM_VECTOR)
           AISShape = new GEOM_AISVector (myShape, "");
-        else
+        else {
+          if (myShape.ShapeType() != TopAbs_VERTEX && // fix pb with not displayed points
+              !TopoDS_Iterator(myShape).More())
+            return;// NPAL15983 (Bug when displaying empty groups)
           AISShape = new GEOM_AISShape (myShape, "");
+        }
         // Temporary staff: vertex must be infinite for correct visualization
         AISShape->SetInfiniteState( myShape.Infinite() || myShape.ShapeType() == TopAbs_VERTEX );
 
@@ -622,6 +627,81 @@ void GEOM_Displayer::Update( SALOME_OCCPrs* prs )
           AISShape->setIO( anObj );
           AISShape->SetOwner( anObj );
         }
+
+       // Get color from GEOM_Object
+       SUIT_Session* session = SUIT_Session::session();
+       SUIT_Application* app = session->activeApplication();
+       if ( app )
+       {
+         SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+         if ( study )
+         {
+           Handle( SALOME_InteractiveObject ) anIO = AISShape->getIO();
+           if ( !anIO.IsNull() )
+           {
+             _PTR(SObject) SO ( study->studyDS()->FindObjectID( anIO->getEntry() ) );
+             if ( SO )
+             {
+               // get CORBA reference to data object
+               CORBA::Object_var object = GeometryGUI::ClientSObjectToObject(SO);
+               if ( !CORBA::is_nil( object ) )
+               {
+                 // downcast to GEOM object
+                 GEOM::GEOM_Object_var aGeomObject = GEOM::GEOM_Object::_narrow( object );
+                 if ( !aGeomObject->_is_nil() )
+                 {
+                   SALOMEDS::Color aSColor = aGeomObject->GetColor();
+                   bool hasColor = aSColor.R > 0 || aSColor.G > 0 || aSColor.B > 0;
+                   if( !hasColor && aGeomObject->GetType() == GEOM_GROUP ) // auto color for group
+                   {
+                     GEOM::GEOM_Gen_var aGeomGen = GeometryGUI::GetGeomGen();
+                     GEOM::GEOM_IGroupOperations_var anOperations = aGeomGen->GetIGroupOperations( study->id() );
+                     GEOM::GEOM_Object_var aMainObject = anOperations->GetMainShape( aGeomObject );
+                     if ( !aMainObject->_is_nil() && aMainObject->GetAutoColor() )
+                     {
+                       QList<SALOMEDS::Color> aReservedColors;
+
+                       SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>( app );
+                       CORBA::String_var IOR = app->orb()->object_to_string( aMainObject );
+                       if ( strcmp(IOR.in(), "") != 0 )
+                       {
+                         _PTR(Study) aStudy = study->studyDS();
+                         _PTR(SObject) aMainSObject( aStudy->FindObjectIOR( string(IOR) ) );
+                         _PTR(ChildIterator) it( aStudy->NewChildIterator( aMainSObject ) );
+                         for( ; it->More(); it->Next() )
+                         {
+                           _PTR(SObject) aChildSObject( it->Value() );
+                           GEOM::GEOM_Object_var aChildObject =
+                             GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aChildSObject));
+                           if( CORBA::is_nil( aChildObject ) )
+                             continue;
+
+                           if( aChildObject->GetType() != GEOM_GROUP )
+                             continue;
+
+                           SALOMEDS::Color aReservedColor = aChildObject->GetColor();
+                           aReservedColors.append( aReservedColor );
+                         }
+                       }
+
+                       aSColor = getUniqueColor( aReservedColors );
+                       hasColor = true;
+                     }
+                   }
+
+                   if( hasColor )
+                   {
+                     Quantity_Color aQuanColor( aSColor.R, aSColor.G, aSColor.B, Quantity_TOC_RGB );
+                     AISShape->SetColor( aQuanColor );
+                     AISShape->SetShadingColor( aQuanColor );
+                   }
+                 }
+               }
+             }
+           }
+         }
+       }
+
         // AISShape->SetName(???); ??? necessary to set name ???
         occPrs->AddObject( AISShape );
 
@@ -1212,3 +1292,61 @@ int GEOM_Displayer::UnsetDisplayMode()
   myDisplayMode = resMgr->integerValue( "Geometry", "display_mode", 0 );
   return aPrevMode;
 }
+
+SALOMEDS::Color GEOM_Displayer::getUniqueColor( const QList<SALOMEDS::Color>& theReservedColors )
+{
+  int aHue = -1;
+  int aTolerance = 64;
+  int anIterations = 0;
+  int aPeriod = 5;
+
+  while( 1 )
+  {
+    anIterations++;
+    if( anIterations % aPeriod == 0 )
+    {
+      aTolerance /= 2;
+      if( aTolerance < 1 )
+       break;
+    }
+    //cout << "Iteration N" << anIterations << " (tolerance=" << aTolerance << ")"<< endl;
+
+    aHue = (int)( 360.0 * rand() / RAND_MAX );
+    //cout << "Hue = " << aHue << endl;
+
+    //cout << "Auto colors : ";
+    bool ok = true;
+    QList<SALOMEDS::Color>::const_iterator it = theReservedColors.constBegin();
+    QList<SALOMEDS::Color>::const_iterator itEnd = theReservedColors.constEnd();
+    for( ; it != itEnd; ++it )
+    {
+      SALOMEDS::Color anAutoColor = *it;
+      QColor aQColor( (int)( anAutoColor.R * 255.0 ), (int)( anAutoColor.G * 255.0 ), (int)( anAutoColor.B * 255.0 ) );
+
+      int h, s, v;
+      aQColor.getHsv( &h, &s, &v );
+      //cout << h << " ";
+      if( abs( h - aHue ) < aTolerance )
+      {
+       ok = false;
+       //cout << "break (diff = " << abs( h - aHue ) << ")";
+       break;
+      }
+    }
+    //cout << endl;
+
+    if( ok )
+      break;
+  }
+
+  //cout << "Hue of the returned color = " << aHue << endl;
+  QColor aColor;
+  aColor.setHsv( aHue, 255, 255 );
+
+  SALOMEDS::Color aSColor;
+  aSColor.R = (double)aColor.red() / 255.0;
+  aSColor.G = (double)aColor.green() / 255.0;
+  aSColor.B = (double)aColor.blue() / 255.0;
+
+  return aSColor;
+}
index 5db184b19aff3724bb1e1c9d120afc03b1876104..befc7adcdf694a22f1c9b9bdda96bcc5cfa17755 100644 (file)
@@ -42,6 +42,8 @@ class SALOME_OCCViewType;
 #include <LightApp_Displayer.h>
 #include <Aspect_TypeOfMarker.hxx>
 
+#include <QList>
+
 #include <list>
 
 #include <SALOMEconfig.h>
@@ -151,6 +153,8 @@ public:
 
   SalomeApp_Study* getStudy() const;
 
+  static SALOMEDS::Color getUniqueColor( const QList<SALOMEDS::Color>& );
+
 protected:
   /* internal methods */
   /* Builds presentation accordint to the current viewer type */
index 410405e9d1f550a81579b1b78358e61a6c00381e..01755c6749c569735da6445f36974202e603e0bc 100644 (file)
@@ -121,6 +121,10 @@ msgstr "conedxyz.png"
 msgid "ICON_DLG_LINE_2P"
 msgstr "line2points.png"
 
+#LineDlg
+msgid "ICON_DLG_LINE_2F"
+msgstr "line2faces.png"
+
 #LineDlg
 msgid "ICON_DLG_LINE_EDGE"
 msgstr "lineedge.png"
@@ -133,6 +137,10 @@ msgstr "linepointvector.png"
 msgid "ICON_DLG_CIRCLE_PV"
 msgstr "circlepointvector.png"
 
+#CircleDlg
+msgid "ICON_DLG_CIRCLE_C2P"
+msgstr "circlecenter2pnts.png"
+
 #VectorDlg
 msgid "ICON_DLG_VECTOR_2P"
 msgstr "vector2points.png"
@@ -177,6 +185,10 @@ msgstr "point3.png"
 msgid "ICON_DLG_POINT_EDGE"
 msgstr "pointonedge.png"
 
+#PoinDlg
+msgid "ICON_DLG_POINT_LINES"
+msgstr "point_line_intersection.png"
+
 #ArcDlg
 msgid "ICON_DLG_ARC"
 msgstr "arc.png"
@@ -205,6 +217,10 @@ msgstr "partitionplane.png"
 msgid "ICON_DLG_CENTERMASS"
 msgstr "centergravity.png"
 
+#NormaleDlg
+msgid "ICON_DLG_NORMALE"
+msgstr "normale.png"
+
 #BoundingBoxDlg
 msgid "ICON_DLG_BOUNDING_BOX"
 msgstr "bounding.png"
@@ -269,6 +285,10 @@ msgstr "whatis.png"
 msgid "ICON_DLG_MINDIST"
 msgstr "mindist.png"
 
+#AngleDlg
+msgid "ICON_DLG_ANGLE"
+msgstr "angle.png"
+
 #MirrorDlg (MZN: add icons for point and axe)
 msgid "ICON_DLG_MIRROR_POINT"
 msgstr "mirrorPoint.png"
@@ -319,6 +339,10 @@ msgstr "sewing.png"
 msgid "ICON_DLG_CHANGE_ORIENTATION"
 msgstr "change_orientation.png"
 
+#ChangeOrientationDlg
+msgid "ICON_DLG_REMOVE_EXTRA_EDGES"
+msgstr "remove_extra_edges.png"
+
 #PipeDlg
 msgid "ICON_DLG_PIPE"
 msgstr "pipe.png"
@@ -366,6 +390,11 @@ msgstr "filletedge.png"
 msgid "ICON_DLG_CHAMFER_EDGE"
 msgstr "chamferedge.png"
 
+#ChamferDlg
+msgid "ICON_DLG_CHAMFER_EDGE_FROM_FACE"
+msgstr "chamferedgefromface.png"
+
+
 #FilletDlg
 msgid "ICON_DLG_FILLET_FACE"
 msgstr "filletface.png"
@@ -719,14 +748,17 @@ msgstr "free_faces.png"
 msgid "ICO_CHANGE_ORIENTATION"
 msgstr "change_orientation.png"
 
+msgid "ICO_REMOVE_EXTRA_EDGES"
+msgstr "remove_extra_edges.png"
+
 msgid "ICO_POINT_COORDS"
 msgstr "point_coord.png"
 
 msgid "ICO_BASIC_PROPS"
 msgstr "basicproperties.png"
 
-msgid "ICO_MASS_CENTER"
-msgstr "centergravity.png"
+msgid "ICO_NORMALE"
+msgstr "normale.png"
 
 msgid "ICO_INERTIA"
 msgstr "axisinertia.png"
@@ -737,6 +769,9 @@ msgstr "bounding.png"
 msgid "ICO_MIN_DIST"
 msgstr "mindist.png"
 
+msgid "ICO_MEASURE_ANGLE"
+msgstr "angle.png"
+
 msgid "ICO_TOLERANCE"
 msgstr "tolerance.png"
 
@@ -789,4 +824,4 @@ msgid "ICO_SOLID_SEL_ONLY"
 msgstr "build_solid.png"
 
 msgid "ICO_COMPOUND_SEL_ONLY"
-msgstr "build_compound.png"
\ No newline at end of file
+msgstr "build_compound.png"
index c33bcbb30ecec9fd6126c5ae60000fce79840efb..9f930e83a8965fec9b51cca78ad190f81feb1ca3 100644 (file)
             <source>ICON_DLG_CHAMFER_EDGE</source>
             <translation>chamferedge.png</translation>
         </message>
+        <message>
+            <source>ICON_DLG_CHAMFER_EDGE_FROM_FACE</source>
+            <translation>chamferedgefromface.png</translation>
+        </message>
         <message>
             <source>ICON_DLG_CHAMFER_FACE</source>
             <translation>chamferface.png</translation>
             <source>ICON_DLG_CHANGE_ORIENTATION</source>
             <translation>change_orientation.png</translation>
         </message>
+        <message>
+            <source>ICON_DLG_REMOVE_EXTRA_EDGES</source>
+            <translation>remove_extra_edges.png</translation>
+        </message>
         <message>
             <source>ICON_DLG_CHECKSHAPE</source>
             <translation>check.png</translation>
             <source>ICON_DLG_CIRCLE_PV</source>
             <translation>circlepointvector.png</translation>
         </message>
+        <message>
+            <source>ICON_DLG_CIRCLE_C2P</source>
+            <translation>circlecenter2pnts.png</translation>
+        </message>
         <message>
             <source>ICON_DLG_CLOSECONTOUR</source>
             <translation>closecontour.png</translation>
             <source>ICON_DLG_LINE_2P</source>
             <translation>line2points.png</translation>
         </message>
+        <message>
+            <source>ICON_DLG_LINE_2F</source>
+            <translation>line2faces.png</translation>
+        </message>
         <message>
             <source>ICON_DLG_LINE_EDGE</source>
             <translation>lineedge.png</translation>
             <source>ICON_DLG_POINT_REF</source>
             <translation>point3.png</translation>
         </message>
+        <message>
+            <source>ICON_DLG_POINT_LINES</source>
+            <translation>point_line_intersection.png</translation>
+        </message>
         <message>
             <source>ICON_DLG_POLYLINE</source>
             <translation>polyline.png</translation>
             <source>ICON_DLG_POSITION</source>
             <translation>position.png</translation>
         </message>
+        <message>
+            <source>ICON_DLG_NORMALE</source>
+            <translation>normale.png</translation>
+        </message>
+        <message>
+            <source>ICON_DLG_ANGLE</source>
+            <translation>angle.png</translation>
+        </message>
         <message>
             <source>ICON_DLG_POSITION2</source>
             <translation>position2.png</translation>
             <source>ICO_PLANE</source>
             <translation>plane.png</translation>
         </message>
+        <message>
+            <source>ICO_REMOVE_EXTRA_EDGES</source>
+            <translation>remove_extra_edges.png</translation>
+        </message>
+        <message>
+            <source>ICO_NORMALE</source>
+            <translation>normale.png</translation>
+        </message>
+        <message>
+            <source>ICO_MEASURE_ANGLE</source>
+            <translation>angle.png</translation>
+        </message>
         <message>
             <source>ICO_POINT</source>
             <translation>point2.png</translation>
index 01825cc9d326086daf3f46fcdeff1fe9da866c1e..7a4a29d8d222993273b02975081c52f2c53cdcc6 100644 (file)
@@ -65,6 +65,10 @@ msgstr "&Help"
 msgid "GEOM_BUT_EXPLODE"
 msgstr "&Explode"
 
+#NOT_FOUND_ANY error from some operations
+msgid "NOT_FOUND_ANY"
+msgstr "Not a single entity has been found"
+
 #
 #==============================================================================
 #
@@ -235,7 +239,7 @@ msgstr "Warning"
 
 #: GeometryGUI.cxx:3854
 msgid "GEOM_REALLY_DELETE"
-msgstr "Do you really want to delete object(s) ?"
+msgstr "Do you really want to delete this %1 object(s):"
 
 #
 #==============================================================================
@@ -301,6 +305,10 @@ msgstr "Points"
 msgid "GEOM_POINT_I"
 msgstr "Point %1"
 
+#Face i
+msgid "GEOM_FACE_I"
+msgstr "Face %1"
+
 #Arguments
 msgid "GEOM_ARGUMENTS"
 msgstr "Arguments"
@@ -313,6 +321,18 @@ msgstr "Center"
 msgid "GEOM_RADIUS"
 msgstr "Radius :"
 
+#Radius
+msgid "GEOM_CONSTANT_RADIUS"
+msgstr "Radius :"
+
+#Radius
+msgid "GEOM_R1"
+msgstr "R1 :"
+
+#Radius
+msgid "GEOM_R2"
+msgstr "R2 :"
+
 #Radius i
 msgid "GEOM_RADIUS_I"
 msgstr "Radius %1 :"
@@ -323,7 +343,7 @@ msgstr "Height :"
 
 #Length
 msgid "GEOM_LENGTH"
-msgstr "Length is :"
+msgstr "Length :"
 
 #Weight
 msgid "GEOM_WEIGHT"
@@ -341,6 +361,10 @@ msgstr "Coord. :"
 msgid "GEOM_REVERSE"
 msgstr "Reverse"
 
+#Bothway
+msgid "GEOM_BOTHWAY"
+msgstr "Both Directions"
+
 #Reverse U
 msgid "GEOM_REVERSE_U"
 msgstr "Reverse U"
@@ -576,6 +600,13 @@ msgstr "Bounding Box"
 msgid "GEOM_CMASS"
 msgstr "Center Of Mass"
 
+#Normal
+msgid "GEOM_NORMALE"
+msgstr "Normal To A Face"
+
+msgid "GEOM_VECTOR_NORMALE"
+msgstr "Vector_Normal"
+
 #Basic Properties
 msgid "GEOM_PROPERTIES"
 msgstr "Basic Properties"
@@ -659,6 +690,14 @@ msgstr "Face or LCS"
 msgid "GEOM_LINE"
 msgstr "Line"
 
+#Line 1
+msgid "GEOM_LINE1"
+msgstr "Line 1"
+
+#Line 2
+msgid "GEOM_LINE2"
+msgstr "Line 2"
+
 #Plane
 msgid "GEOM_PLANE"
 msgstr "Plane"
@@ -782,6 +821,10 @@ msgstr "D1 :"
 msgid "GEOM_D2"
 msgstr "D2 :"
 
+#D
+msgid "GEOM_D"
+msgstr "D :"
+
 #
 #==============================================================================
 #
@@ -826,6 +869,14 @@ msgstr "Chamfer On Whole Shape"
 msgid "GEOM_CHAMFER_EDGES"
 msgstr "Chamfer On Edges From Shape"
 
+#: GeometryGUI_ChamferDlg.cxx:58
+msgid "GEOM_CHAMFER_EDGE"
+msgstr "Chamfer On Selected Edges"
+
+#: GeometryGUI_ChamferDlg.cxx:58
+msgid "SELECTED_EDGE"
+msgstr "Selected Edges"
+
 #: GeometryGUI_ChamferDlg.cxx:58
 msgid "GEOM_CHAMFER_FACES"
 msgstr "Chamfer On Faces From Shape"
@@ -838,6 +889,10 @@ msgstr "Circle Construction"
 msgid "GEOM_CMASS_TITLE"
 msgstr "Center Of Mass Construction"
 
+#: GeometryGUI_NormaleDlg.cxx:57
+msgid "GEOM_NORMALE_TITLE"
+msgstr "Create Normal To A Face"
+
 msgid "GEOM_PLANE_SIZE"
 msgstr "Size of plane :"
 
@@ -877,6 +932,22 @@ msgstr "Minimun Distance Between Two Objects"
 msgid "GEOM_MINDIST_OBJ"
 msgstr "Objects And Results"
 
+#: GeometryGUI_AngleDlg.cxx:82
+msgid "GEOM_MEASURE_ANGLE_TITLE"
+msgstr "Angle Between Two Straight Edges/Lines/Vectors"
+
+#: GeometryGUI_AngleDlg.cxx:86
+msgid "GEOM_MEASURE_ANGLE_ANGLE"
+msgstr "Angle"
+
+#: GeometryGUI_AngleDlg.cxx:90
+msgid "GEOM_MEASURE_ANGLE_OBJ"
+msgstr "Objects And Results"
+
+#: GeometryGUI_AngleDlg.cxx:93
+msgid "GEOM_MEASURE_ANGLE_IS"
+msgstr "Angle in degrees :"
+
 #: GeometryGUI_EdgeDlg.cxx:47
 msgid "GEOM_EDGE_TITLE"
 msgstr "Create An Edge"
@@ -903,7 +974,7 @@ msgstr "Create A Face"
 
 #: GeometryGUI_FaceDlg.cxx:78
 msgid "GEOM_FACE_FFW"
-msgstr "Face from a closed wire and edge"
+msgstr "Face creation from wires and/or edges"
 
 #: GeometryGUI_FaceDlg.cxx:103
 msgid "GEOM_FACE_OPT"
@@ -1297,6 +1368,9 @@ msgstr "Parametric point"
 msgid "GEOM_REF_POINT"
 msgstr "Point with reference"
 
+msgid "GEOM_LINE_INTERSECTION"
+msgstr "Point On Lines Intersection"
+
 #
 #==============================================================================
 #
@@ -1312,6 +1386,9 @@ msgstr "\nShading"
 msgid "GEOM_RECONSTRUCTION_LIMIT"
 msgstr "Reconstruction Limit"
 
+msgid "GEOM_KEEP_NONLIMIT_SHAPES"
+msgstr "Keep nonlimit shapes"
+
 msgid "GEOM_SUPPRESS_RESULT"
 msgstr "Suppress Result"
 
@@ -1466,6 +1543,9 @@ msgstr "Chamfer can't be computed with %1 and %2"
 msgid "GEOM_3_POINTS"
 msgstr "3 points"
 
+msgid "GEOM_CENTER_2POINTS"
+msgstr "Center and two points"
+
 msgid "GEOM_POINT1"
 msgstr "Point 1"
 
@@ -1656,6 +1736,12 @@ msgstr "Change orientation"
 msgid "GEOM_CHANGE_ORIENTATION"
 msgstr "Objects to change orientation"
 
+msgid "GEOM_REMOVE_EXTRA_EDGES_TITLE"
+msgstr "Remove extra edges"
+
+msgid "GEOM_REMOVE_EXTRA_EDGES"
+msgstr "Object to remove extra edges"
+
 msgid "GEOM_BY_PARAMETER"
 msgstr "By parameter"
 
@@ -2017,6 +2103,9 @@ msgstr "SupressFaces"
 msgid "CHANGE_ORIENTATION_NEW_OBJ_NAME"
 msgstr "Invert"
 
+msgid "REMOVE_EXTRA_EDGES_NEW_OBJ_NAME"
+msgstr "NoExtraEdges"
+
 msgid "NON_GEOM_OBJECTS_SELECTED"
 msgstr "There are objects selected which do not belong to %1 component."
 
@@ -2331,7 +2420,7 @@ msgid "MEN_FACE"
 msgstr "Face"
 
 msgid "STB_FACE"
-msgstr "Build a face"
+msgstr "Build a face from wires and/or edges"
 
 msgid "TOP_SHELL"
 msgstr "Build a shell"
@@ -2651,6 +2740,15 @@ msgstr "Change orientation"
 msgid "STB_CHANGE_ORIENTATION"
 msgstr "Change orientation"
 
+msgid "TOP_REMOVE_EXTRA_EDGES"
+msgstr "Remove extra edges"
+
+msgid "MEN_REMOVE_EXTRA_EDGES"
+msgstr "Remove extra edges"
+
+msgid "STB_REMOVE_EXTRA_EDGES"
+msgstr "Remove extra edges"
+
 msgid "MEN_MEASURES"
 msgstr "Measures"
 
@@ -2681,6 +2779,15 @@ msgstr "Center of mass"
 msgid "STB_MASS_CENTER"
 msgstr "Compute center of mass"
 
+msgid "TOP_NORMALE"
+msgstr "Compute normal to a face"
+
+msgid "MEN_NORMALE"
+msgstr "Normal to a face"
+
+msgid "STB_NORMALE"
+msgstr "Compute normal to a face in a point (optional)"
+
 msgid "TOP_INERTIA"
 msgstr "Compute intertia"
 
@@ -2711,6 +2818,15 @@ msgstr "Min distance"
 msgid "STB_MIN_DIST"
 msgstr "Compute minimum distance"
 
+msgid "TOP_MEASURE_ANGLE"
+msgstr "Compute angle"
+
+msgid "MEN_MEASURE_ANGLE"
+msgstr "Angle"
+
+msgid "STB_MEASURE_ANGLE"
+msgstr "Compute angle between two lines or linear edges"
+
 msgid "TOP_TOLERANCE"
 msgstr "Compute tolerance"
 
@@ -2811,49 +2927,49 @@ msgid "STB_SHADING"
 msgstr "Shading"
 
 msgid "TOP_DISPLAY_ALL"
-msgstr "Display all"
+msgstr "Show all"
 
 msgid "MEN_DISPLAY_ALL"
-msgstr "Display all"
+msgstr "Show all"
 
 msgid "STB_DISPLAY_ALL"
-msgstr "Display all"
+msgstr "Show all"
 
 msgid "TOP_ERASE_ALL"
-msgstr "Erase all"
+msgstr "Hide all"
 
 msgid "MEN_ERASE_ALL"
-msgstr "Erase all"
+msgstr "Hide all"
 
 msgid "STB_ERASE_ALL"
-msgstr "Erase all"
+msgstr "Hide all"
 
 msgid "TOP_DISPLAY"
-msgstr "Display"
+msgstr "Show"
 
 msgid "MEN_DISPLAY"
-msgstr "Display"
+msgstr "Show"
 
 msgid "STB_DISPLAY"
-msgstr "Display"
+msgstr "Show object(s)"
 
 msgid "TOP_DISPLAY_ONLY"
-msgstr "Display only"
+msgstr "Show only"
 
 msgid "MEN_DISPLAY_ONLY"
-msgstr "Display only"
+msgstr "Show only"
 
 msgid "STB_DISPLAY_ONLY"
-msgstr "Display only"
+msgstr "Show only"
 
 msgid "TOP_ERASE"
-msgstr "Erase"
+msgstr "Hide"
 
 msgid "MEN_ERASE"
-msgstr "Erase"
+msgstr "Hide"
 
 msgid "STB_ERASE"
-msgstr "Erase"
+msgstr "Hide object(s)"
 
 msgid "TOP_POP_RENAME"
 msgstr "Rename"
@@ -2882,6 +2998,24 @@ msgstr "Shading"
 msgid "STB_POP_SHADING"
 msgstr "Shading"
 
+msgid "TOP_POP_AUTO_COLOR"
+msgstr "Auto color"
+
+msgid "MEN_POP_AUTO_COLOR"
+msgstr "Auto color"
+
+msgid "STB_POP_AUTO_COLOR"
+msgstr "Auto color"
+
+msgid "TOP_POP_DISABLE_AUTO_COLOR"
+msgstr "Disable auto color"
+
+msgid "MEN_POP_DISABLE_AUTO_COLOR"
+msgstr "Disable auto color"
+
+msgid "STB_POP_DISABLE_AUTO_COLOR"
+msgstr "Disable auto color"
+
 msgid "TOP_POP_COLOR"
 msgstr "Color"
 
@@ -2939,6 +3073,12 @@ msgstr "Rename"
 msgid "NAME_LBL"
 msgstr "Name: "
 
+msgid "GEOM_RESULT_NAME_GRP"
+msgstr "Result name"
+
+msgid "GEOM_RESULT_NAME_LBL"
+msgstr "Name"
+
 msgid "GEOM_ERR_GET_ENGINE"
 msgstr "Failed to obtain GEOM Engine component.  Reload Geometry module and try again."
 
index 246b56f8bade743f6791853cacbf0da4fc806129..e2e290bc70a30683a81cd0f81dcc179ba9860aa9 100644 (file)
         </message>
         <message>
             <source>GEOM_FACE_FFW</source>
-            <translation>Face from a closed wire and edge</translation>
+            <translation>Face creation from wires and/or edges</translation>
         </message>
         <message>
             <source>GEOM_FACE_OPT</source>
         </message>
         <message>
             <source>GEOM_LENGTH</source>
-            <translation>Length is :</translation>
+            <translation>Length :</translation>
         </message>
         <message>
             <source>GEOM_LINE</source>
         </message>
         <message>
             <source>GEOM_REALLY_DELETE</source>
-            <translation>Do you really want to delete object(s) ?</translation>
+            <translation>Do you really want to delete this %1 object(s):</translation>
         </message>
         <message>
             <source>GEOM_RECONSTRUCTION_LIMIT</source>
         </message>
         <message>
             <source>MEN_DISPLAY</source>
-            <translation>Display</translation>
+            <translation>Show</translation>
         </message>
         <message>
             <source>MEN_DISPLAY_ALL</source>
-            <translation>Display all</translation>
+            <translation>Show all</translation>
         </message>
         <message>
             <source>MEN_DISPLAY_MODE</source>
         </message>
         <message>
             <source>MEN_DISPLAY_ONLY</source>
-            <translation>Display only</translation>
+            <translation>Show only</translation>
         </message>
         <message>
             <source>MEN_EDGE</source>
         </message>
         <message>
             <source>MEN_ERASE</source>
-            <translation>Erase</translation>
+            <translation>Hide</translation>
         </message>
         <message>
             <source>MEN_ERASE_ALL</source>
-            <translation>Erase all</translation>
+            <translation>Hide all</translation>
         </message>
         <message>
             <source>MEN_EXPLODE</source>
         </message>
         <message>
             <source>STB_DISPLAY</source>
-            <translation>Display</translation>
+            <translation>Show object(s)</translation>
         </message>
         <message>
             <source>STB_DISPLAY_ALL</source>
-            <translation>Display all</translation>
+            <translation>Show all</translation>
         </message>
         <message>
             <source>STB_DISPLAY_ONLY</source>
-            <translation>Display only</translation>
+            <translation>Show only</translation>
         </message>
         <message>
             <source>STB_EDGE</source>
         </message>
         <message>
             <source>STB_ERASE</source>
-            <translation>Erase</translation>
+            <translation>Hide object(s)</translation>
         </message>
         <message>
             <source>STB_ERASE_ALL</source>
-            <translation>Erase all</translation>
+            <translation>Hide all</translation>
         </message>
         <message>
             <source>STB_EXPLODE</source>
         </message>
         <message>
             <source>STB_FACE</source>
-            <translation>Build a face</translation>
+            <translation>Build a face from wires and/or edges</translation>
         </message>
         <message>
             <source>STB_FACE_SEL_ONLY</source>
         </message>
         <message>
             <source>TOP_DISPLAY</source>
-            <translation>Display</translation>
+            <translation>Show</translation>
         </message>
         <message>
             <source>TOP_DISPLAY_ALL</source>
-            <translation>Display all</translation>
+            <translation>Show all</translation>
         </message>
         <message>
             <source>TOP_DISPLAY_ONLY</source>
-            <translation>Display only</translation>
+            <translation>Show only</translation>
         </message>
         <message>
             <source>TOP_EDGE</source>
         </message>
         <message>
             <source>TOP_ERASE</source>
-            <translation>Erase</translation>
+            <translation>Hide</translation>
         </message>
         <message>
             <source>TOP_ERASE_ALL</source>
-            <translation>Erase all</translation>
+            <translation>Hide all</translation>
         </message>
         <message>
             <source>TOP_EXPLODE</source>
             <source>_S_</source>
             <translation>(s)</translation>
         </message>
+        <message>
+            <source>NOT_FOUND_ANY</source>
+            <translation>Not a single entity has been found</translation>
+        </message>
+        <message>
+            <source>GEOM_FACE_I</source>
+            <translation>Face %1</translation>
+        </message>
+        <message>
+            <source>GEOM_CONSTANT_RADIUS</source>
+            <translation>Radius :</translation>
+        </message>
+        <message>
+            <source>GEOM_R1</source>
+            <translation>R1 :</translation>
+        </message>
+        <message>
+            <source>GEOM_R2</source>
+            <translation>R2 :</translation>
+        </message>
+        <message>
+            <source>GEOM_BOTHWAY</source>
+            <translation>Both Directions</translation>
+        </message>
+        <message>
+            <source>GEOM_NORMALE</source>
+            <translation>Normal To A Face</translation>
+        </message>
+        <message>
+            <source>GEOM_VECTOR_NORMALE</source>
+            <translation>Vector_Normal</translation>
+        </message>
+        <message>
+            <source>GEOM_LINE1</source>
+            <translation>Line 1</translation>
+        </message>
+        <message>
+            <source>GEOM_LINE2</source>
+            <translation>Line 2</translation>
+        </message>
+        <message>
+            <source>GEOM_D</source>
+            <translation>D :</translation>
+        </message>
+        <message>
+            <source>GEOM_CHAMFER_EDGE</source>
+            <translation>Chamfer On Selected Edges</translation>
+        </message>
+        <message>
+            <source>SELECTED_EDGE</source>
+            <translation>Selected Edges</translation>
+        </message>
+        <message>
+            <source>GEOM_NORMALE_TITLE</source>
+            <translation>Create Normal To A Face</translation>
+        </message>
+        <message>
+            <source>GEOM_MEASURE_ANGLE_TITLE</source>
+            <translation>Angle Between Two Straight Edges/Lines/Vectors</translation>
+        </message>
+        <message>
+            <source>GEOM_MEASURE_ANGLE_ANGLE</source>
+            <translation>Angle</translation>
+        </message>
+        <message>
+            <source>GEOM_MEASURE_ANGLE_OBJ</source>
+            <translation>Objects And Results</translation>
+        </message>
+        <message>
+            <source>GEOM_MEASURE_ANGLE_IS</source>
+            <translation>Angle in degrees :</translation>
+        </message>
+        <message>
+            <source>GEOM_LINE_INTERSECTION</source>
+            <translation>Point On Lines Intersection</translation>
+        </message>
+        <message>
+            <source>GEOM_KEEP_NONLIMIT_SHAPES</source>
+            <translation>Keep nonlimit shapes</translation>
+        </message>
+        <message>
+            <source>GEOM_CENTER_2POINTS</source>
+            <translation>Center and two points</translation>
+        </message>
+        <message>
+            <source>GEOM_REMOVE_EXTRA_EDGES_TITLE</source>
+            <translation>Remove extra edges</translation>
+        </message>
+        <message>
+            <source>GEOM_REMOVE_EXTRA_EDGES</source>
+            <translation>Object to remove extra edges</translation>
+        </message>
+        <message>
+            <source>REMOVE_EXTRA_EDGES_NEW_OBJ_NAME</source>
+            <translation>NoExtraEdges</translation>
+        </message>
+        <message>
+            <source>TOP_REMOVE_EXTRA_EDGES</source>
+            <translation>Remove extra edges</translation>
+        </message>
+        <message>
+            <source>MEN_REMOVE_EXTRA_EDGES</source>
+            <translation>Remove extra edges</translation>
+        </message>
+        <message>
+            <source>STB_REMOVE_EXTRA_EDGES</source>
+            <translation>Remove extra edges</translation>
+        </message>
+        <message>
+            <source>TOP_NORMALE</source>
+            <translation>Compute normal to a face</translation>
+        </message>
+        <message>
+            <source>MEN_NORMALE</source>
+            <translation>Normal to a face</translation>
+        </message>
+        <message>
+            <source>STB_NORMALE</source>
+            <translation>Compute normal to a face in a point (optional)</translation>
+        </message>
+        <message>
+            <source>TOP_MEASURE_ANGLE</source>
+            <translation>Compute angle</translation>
+        </message>
+        <message>
+            <source>MEN_MEASURE_ANGLE</source>
+            <translation>Angle</translation>
+        </message>
+        <message>
+            <source>STB_MEASURE_ANGLE</source>
+            <translation>Compute angle between two lines or linear edges</translation>
+        </message>
+        <message>
+            <source>TOP_POP_AUTO_COLOR</source>
+            <translation>Auto color</translation>
+        </message>
+        <message>
+            <source>MEN_POP_AUTO_COLOR</source>
+            <translation>Auto color</translation>
+        </message>
+        <message>
+            <source>STB_POP_AUTO_COLOR</source>
+            <translation>Auto color</translation>
+        </message>
+        <message>
+            <source>TOP_POP_DISABLE_AUTO_COLOR</source>
+            <translation>Disable auto color</translation>
+        </message>
+        <message>
+            <source>MEN_POP_DISABLE_AUTO_COLOR</source>
+            <translation>Disable auto color</translation>
+        </message>
+        <message>
+            <source>STB_POP_DISABLE_AUTO_COLOR</source>
+            <translation>Disable auto color</translation>
+        </message>
+        <message>
+            <source>GEOM_RESULT_NAME_GRP</source>
+            <translation>Result name</translation>
+        </message>
+        <message>
+            <source>GEOM_RESULT_NAME_LBL</source>
+            <translation>Name</translation>
+        </message>
     </context>
     <context>
         <name>BasicGUI_MarkerDlg</name>
index 8d5b1b24dc4eaa5a47621bc073f92906cfddcb4c..d4efd381dcb5c38c266a4611c28e903d74640974 100644 (file)
@@ -1238,6 +1238,9 @@ msgstr "Ombré"
 msgid "GEOM_RECONSTRUCTION_LIMIT"
 msgstr "Limite de Reconstruction"
 
+msgid "GEOM_KEEP_NONLIMIT_SHAPES"
+msgstr "Keep nonlimit shapes"
+
 msgid "GEOM_SUPPRESS_RESULT"
 msgstr "Supprimer le Resultat"
 
index 0130e418d8b31d8e650d027dc2533698c3a66c76..2058d7a2ea2473bc2645adfcdfd1b5068cfb3ad5 100644 (file)
@@ -346,7 +346,7 @@ void GeometryGUI::OnGUIEvent( int id )
       id == 2175 ||  // POPUP VIEWER - SELECT ONLY - SHELL
       id == 2176 ||  // POPUP VIEWER - SELECT ONLY - SOLID
       id == 2177 ||  // POPUP VIEWER - SELECT ONLY - COMPOUND
-      id == 2178 ||  // POPUP VIEWER - SELECT ONLY - SELECT ALL      
+      id == 2178 ||  // POPUP VIEWER - SELECT ONLY - SELECT ALL
       id == 31   ||  // MENU EDIT - COPY
       id == 33   ||  // MENU EDIT - DELETE
       id == 411  ||  // MENU SETTINGS - ADD IN STUDY
@@ -355,6 +355,8 @@ void GeometryGUI::OnGUIEvent( int id )
       id == 8032 ||  // POPUP VIEWER - COLOR
       id == 8033 ||  // POPUP VIEWER - TRANSPARENCY
       id == 8034 ||  // POPUP VIEWER - ISOS
+      id == 8035 ||  // POPUP VIEWER - AUTO COLOR
+      id == 8036 ||  // POPUP VIEWER - DISABLE AUTO COLOR
       id == 804  ||  // POPUP VIEWER - ADD IN STUDY
       id == 901  ||  // OBJECT BROWSER - RENAME
       id == 9024 ) { // OBJECT BROWSER - OPEN
@@ -478,10 +480,11 @@ void GeometryGUI::OnGUIEvent( int id )
            id == 606 ||   // MENU REPAIR - CLOSE CONTOUR
            id == 607 ||   // MENU REPAIR - REMOVE INTERNAL WIRES
            id == 608 ||   // MENU REPAIR - ADD POINT ON EDGE
-           id == 609 ||   // MENU REPAIR - FREE BOUNDARIES
-           id == 610 ||   // MENU REPAIR - FREE FACES
+           id == 609 ||   // MENU MEASURE - FREE BOUNDARIES
+           id == 610 ||   // MENU MEASURE - FREE FACES
            id == 611 ||   // MENU REPAIR - CHANGE ORIENTATION
-          id == 602 ) {  // MENU REPAIR - GLUE FACES
+          id == 602 ||   // MENU REPAIR - GLUE FACES
+          id == 612 ) {  // MENU REPAIR - REMOVE EXTRA EDGES
 #ifndef WNT
        library = getLibrary( "libRepairGUI.so" );
 #else
@@ -491,8 +494,10 @@ void GeometryGUI::OnGUIEvent( int id )
   else if( id == 701   ||  // MENU MEASURE - PROPERTIES
           id == 702   ||  // MENU MEASURE - CDG
           id == 703   ||  // MENU MEASURE - INERTIA
+          id == 704   ||  // MENU MEASURE - NORMALE
           id == 7041  ||  // MENU MEASURE - BOUNDING BOX
           id == 7042  ||  // MENU MEASURE - MIN DISTANCE
+          id == 7043  ||  // MENU MEASURE - ANGLE
           id == 705   ||  // MENU MEASURE - TOLERANCE
           id == 706   ||  // MENU MEASURE - WHATIS
           id == 707   ||  // MENU MEASURE - CHECK
@@ -733,7 +738,7 @@ void GeometryGUI::initialize( CAM_Application* app )
   createGeomAction( 111, "IMPORT", "", (CTRL + Key_I) );
   createGeomAction( 121, "EXPORT", "", (CTRL + Key_E) );
 
-  createGeomAction( 33, "DELETE" );
+  createGeomAction( 33, "DELETE", "", Qt::Key_Delete );
 
   createGeomAction( 4011, "POINT" );
   createGeomAction( 4012, "LINE" );
@@ -808,21 +813,25 @@ void GeometryGUI::initialize( CAM_Application* app )
   createGeomAction( 609, "CHECK_FREE_BNDS" );
   createGeomAction( 610, "CHECK_FREE_FACES" );
   createGeomAction( 611, "CHANGE_ORIENTATION" );
+  createGeomAction( 612, "REMOVE_EXTRA_EDGES" );
 
   createGeomAction( 708, "POINT_COORDS" );
   createGeomAction( 701, "BASIC_PROPS" );
   createGeomAction( 702, "MASS_CENTER" );
   createGeomAction( 703, "INERTIA" );
+  createGeomAction( 704, "NORMALE" );
   createGeomAction( 7041, "BND_BOX" );
   createGeomAction( 7042, "MIN_DIST" );
+  createGeomAction( 7043, "MEASURE_ANGLE" );
 
   createGeomAction( 705, "TOLERANCE" );
   createGeomAction( 706, "WHAT_IS" );
   createGeomAction( 707, "CHECK" );
   createGeomAction( 7072, "CHECK_COMPOUND" );
 
+#ifdef _DEBUG_ // PAL16821
   createGeomAction( 5103, "CHECK_GEOMETRY" );
-
+#endif
   createGeomAction( 412, "SHADING_COLOR" );
 
   createGeomAction( 211, "SHADING" );
@@ -840,12 +849,14 @@ void GeometryGUI::initialize( CAM_Application* app )
   createGeomAction( 213, "DISPLAY_ONLY" );
   createGeomAction( 215, "ERASE" );
 
-  createGeomAction( 901, "POP_RENAME" );
+  createGeomAction( 901, "POP_RENAME", "", Qt::Key_F2 );
   createGeomAction( 80311, "POP_WIREFRAME", "", 0, true );
   createGeomAction( 80312, "POP_SHADING", "", 0, true );
   createGeomAction( 8032, "POP_COLOR" );
   createGeomAction( 8033, "POP_TRANSPARENCY" );
   createGeomAction( 8034, "POP_ISOS" );
+  createGeomAction( 8035, "POP_AUTO_COLOR" );
+  createGeomAction( 8036, "POP_DISABLE_AUTO_COLOR" );
   createGeomAction( 8001, "POP_CREATE_GROUP" );
 
   // make wireframe-shading items to be exclusive (only one at a time is selected)
@@ -954,9 +965,10 @@ void GeometryGUI::initialize( CAM_Application* app )
   createMenu( 601, repairId, -1 );
   createMenu( 602, repairId, -1 );
   createMenu( 608, repairId, -1 );
-  createMenu( 609, repairId, -1 );
-  createMenu( 610, repairId, -1 );
+  //createMenu( 609, repairId, -1 );
+  //createMenu( 610, repairId, -1 );
   createMenu( 611, repairId, -1 );
+  createMenu( 612, repairId, -1 );
 
   int measurId = createMenu( tr( "MEN_MEASURES" ), -1, -1, 10 );
   createMenu( 708, measurId, -1 );
@@ -964,11 +976,18 @@ void GeometryGUI::initialize( CAM_Application* app )
   createMenu( separator(), measurId, -1 );
   createMenu( 702, measurId, -1 );
   createMenu( 703, measurId, -1 );
+  createMenu( 704, measurId, -1 );
+  // NPAL16572: move "Check free boundaries" and "Check free faces" from "Repair" to "Measure"
+  createMenu( separator(), measurId, -1 );
+  createMenu( 609, measurId, -1 );
+  createMenu( 610, measurId, -1 );
+  // NPAL16572 END
   createMenu( separator(), measurId, -1 );
 
   int dimId = createMenu( tr( "MEN_DIMENSIONS" ), measurId, -1 );
   createMenu( 7041, dimId, -1 );
   createMenu( 7042, dimId, -1 );
+  createMenu( 7043, dimId, -1 );
   createMenu( separator(), measurId, -1 );
 
   createMenu( 705, measurId, -1 );
@@ -977,10 +996,11 @@ void GeometryGUI::initialize( CAM_Application* app )
   createMenu( 707, measurId, -1 );
   createMenu( 7072, measurId, -1 );
 
+#ifdef _DEBUG_ // PAL16821
   int toolsId = createMenu( tr( "MEN_TOOLS" ), -1, -1, 50 );
   createMenu( separator(), toolsId, -1 );
   createMenu( 5103, toolsId, -1 );
-
+#endif
   //int prefId = createMenu( tr( "MEN_PREFERENCES" ), -1, -1, 50 );
   //createMenu( separator(), prefId, -1 );
   //int geomId = createMenu( tr( "MEN_PREFERENCES_GEOM" ), prefId, -1 );
@@ -1057,9 +1077,17 @@ void GeometryGUI::initialize( CAM_Application* app )
   QString clientOCCorVTK = "(client='OCCViewer' or client='VTKViewer')";
   QString clientOCCorVTK_AndSomeVisible = clientOCCorVTK + " and selcount>0 and isVisible";
 
+  QString clientOCCorVTKorOB = "(client='ObjectBrowser' or client='OCCViewer' or client='VTKViewer')";
+  QString clientOCCorVTKorOB_AndSomeVisible = clientOCCorVTKorOB + " and selcount>0 and isVisible";
+
+  QString autoColorPrefix =
+    "(client='ObjectBrowser' or client='OCCViewer') and type='Shape' and selcount=1 and isOCC=true";
+
   QtxPopupMgr* mgr = popupMgr();
   mgr->insert( action(  901 ), -1, -1 );  // rename
   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 ), QString("$type in {'Shape' 'Group'} and selcount>0"), QtxPopupMgr::VisibleRule );
   mgr->insert( action(  8001 ), -1, -1 ); // create group
   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
@@ -1074,11 +1102,16 @@ void GeometryGUI::initialize( CAM_Application* app )
   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 ), clientOCCorVTK_AndSomeVisible + " and ($component={'GEOM'})", QtxPopupMgr::VisibleRule );
+  mgr->setRule( action( 8032 ), clientOCCorVTKorOB_AndSomeVisible + " and ($component={'GEOM'})", QtxPopupMgr::VisibleRule );
   mgr->insert( action(  8033 ), -1, -1 ); // transparency
   mgr->setRule( action( 8033 ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule );
   mgr->insert( action(  8034 ), -1, -1 ); // isos
-  mgr->setRule( action( 8034 ), QString("client='OCCViewer' and selcount>0 and isVisible"), QtxPopupMgr::VisibleRule );
+  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", QtxPopupMgr::VisibleRule );
+  mgr->insert( action(  8036 ), -1, -1 ); // disable auto color
+  mgr->setRule( action( 8036 ), autoColorPrefix + " and isAutoColor=true", QtxPopupMgr::VisibleRule );
   mgr->insert( separator(), -1, -1 );     // -----------
 
 
@@ -1097,7 +1130,7 @@ void GeometryGUI::initialize( CAM_Application* app )
   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, QtxPopupMgr::VisibleRule);
@@ -1124,7 +1157,6 @@ void GeometryGUI::initialize( CAM_Application* app )
   mgr->insert( action(2178), selectolnyId, -1);                                  //Clear selection filter
   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" ), QtxPopupMgr::VisibleRule );
   mgr->insert( separator(), -1, -1 );
@@ -1177,14 +1209,14 @@ bool GeometryGUI::activateModule( SUIT_Study* study )
     myVTKSelectors.append( new LightApp_VTKSelector( dynamic_cast<SVTK_Viewer*>( vm->getViewModel() ), sm ) );
 
   // disable OCC selectors
-  getApp()->selectionMgr()->setEnabled( false, OCCViewer_Viewer::Type() );
+  //getApp()->selectionMgr()->setEnabled( false, OCCViewer_Viewer::Type() );
   QListIterator<GEOMGUI_OCCSelector*> itOCCSel( myOCCSelectors );
   while ( itOCCSel.hasNext() )
     if ( GEOMGUI_OCCSelector* sr = itOCCSel.next() )
       sr->setEnabled(true);
-  
+
   // disable VTK selectors
-  getApp()->selectionMgr()->setEnabled( false, SVTK_Viewer::Type() );
+  //getApp()->selectionMgr()->setEnabled( false, SVTK_Viewer::Type() );
   QListIterator<LightApp_VTKSelector*> itVTKSel( myVTKSelectors );
   while ( itVTKSel.hasNext() )
     if ( LightApp_VTKSelector* sr = itVTKSel.next() )
@@ -1246,7 +1278,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
@@ -1256,6 +1288,7 @@ 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 || ViewVTK ); // Isos Settings
 
   action( 800 )->setEnabled( ViewOCC ); // Create Group
   action( 801 )->setEnabled( ViewOCC ); // Edit Group
@@ -1340,14 +1373,9 @@ void GeometryGUI::onViewManagerRemoved( SUIT_ViewManager* vm )
 
 QString GeometryGUI::engineIOR() const
 {
-  QString anIOR = QString::null;
   if ( !CORBA::is_nil( GetGeomGen() ) )
-  {
-    CORBA::String_var objStr = getApp()->orb()->object_to_string( GetGeomGen() );
-    anIOR = QString( objStr.in() );
-//    free( objStr ); ASV : 26.07.06 : commented out because it raises exception and blocks application
-  }
-  return anIOR;
+    return QString( getApp()->orb()->object_to_string( GetGeomGen() ) );
+  return "";
 }
 
 LightApp_Selection* GeometryGUI::createSelection( const QString& client, LightApp_SelectionMgr* mgr ) const
index d25eb21991c69afa9213c43b5c0ffa641b727024..d08ae24cce2561693ab6f791d963ff6aa6246bda 100644 (file)
 #include <TopExp.hxx>
 
 #include <GC_MakeArcOfCircle.hxx>
+#include <GC_MakeCircle.hxx>
 #include <Standard_ConstructionError.hxx>
 #include <Precision.hxx>
 #include <gp_Pnt.hxx>
 #include <gp_Vec.hxx>
-#include <gce_MakeCirc.hxx>
-#include <gce_MakePln.hxx>
-#include <ElCLib.hxx>
+#include <gp_Circ.hxx>
 #include <Geom_Circle.hxx>
-#include <Geom_TrimmedCurve.hxx>
-
 
 #include "utilities.h"
+
 //=======================================================================
 //function : GetID
 //purpose  :
@@ -79,46 +77,54 @@ 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))
+  {
     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) {
+        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("Arc creation aborted: coincident points given");
+
       if (gp_Vec(aP1, aP2).IsParallel(gp_Vec(aP1, aP3), Precision::Angular()))
         Standard_ConstructionError::Raise("Arc creation aborted: points lay on one line");
-      if (aType == CIRC_ARC_THREE_PNT){
-        GC_MakeArcOfCircle arc(aP1, aP2, aP3);
-        aShape = BRepBuilderAPI_MakeEdge(arc).Edge();
 
+      if (aType == CIRC_ARC_THREE_PNT)
+      {
+        GC_MakeArcOfCircle arc (aP1, aP2, aP3);
+        aShape = BRepBuilderAPI_MakeEdge(arc).Edge();
       }
-      if (aType == CIRC_ARC_CENTER){
-        Standard_Real Rad = aP1.Distance(aP2);
-        gce_MakeCirc MC(aP1,gce_MakePln(aP1, aP2, aP3).Value(),Rad);
+      else // CIRC_ARC_CENTER
+      {
         Standard_Boolean sense = aCI.GetSense();
-        if (MC.IsDone()) {
-          const gp_Circ& Circ = MC.Value();
-          Standard_Real Alpha1 = ElCLib::Parameter(Circ,aP2);
-          Standard_Real Alpha2 = ElCLib::Parameter(Circ,aP3);
-          Handle(Geom_Circle) C = new Geom_Circle(Circ);
-          Handle(Geom_TrimmedCurve) TheArc;
-          if (!sense)
-            TheArc= new Geom_TrimmedCurve(C,Alpha1,Alpha2,false);
-          if (sense)
-            TheArc= new Geom_TrimmedCurve(C,Alpha2,Alpha1,false);
-          aShape = BRepBuilderAPI_MakeEdge(TheArc).Edge();
-        }
+
+        Standard_Real aRad = aP1.Distance(aP2);
+        gp_Vec aV1 (aP1, aP2);
+        gp_Vec aV2 (aP1, aP3);
+        gp_Vec aN = aV1 ^ aV2;
+
+        if (sense)
+          aN = -aN;
+
+        GC_MakeCircle circ (aP1, aN, aRad);
+        Handle(Geom_Circle) aGeomCirc = circ.Value();
+
+        GC_MakeArcOfCircle arc (aGeomCirc->Circ(), aP2, aP3, Standard_True);
+        aShape = BRepBuilderAPI_MakeEdge(arc).Edge();
       }
     }
   } else {
@@ -129,8 +135,7 @@ Standard_Integer GEOMImpl_ArcDriver::Execute(TFunction_Logbook& log) const
   aFunction->SetValue(aShape);
 
   log.SetTouched(Label());
-  MESSAGE("Out of building step ...");
-  return 1;    
+  return 1;
 }
 
 
index 9e2d85745ca0a232b91ab60e3eadf496bba7f544..2efdd7ca2cf2df02030a47fd8fb108c56f72d477 100644 (file)
@@ -34,7 +34,8 @@
 #include <GEOM_Function.hxx>
 
 #include <ShHealOper_Sewing.hxx>
-#include <NMTAlgo_Splitter1.hxx>
+//#include <NMTAlgo_Splitter1.hxx>
+#include <GEOMAlgo_Gluer.hxx>
 #include <BlockFix_BlockFixAPI.hxx>
 
 #include "utilities.h"
@@ -470,14 +471,21 @@ Standard_Integer GEOMImpl_BlockDriver::Execute(TFunction_Logbook& log) const
       TopoDS_Shape aCompound = anArgs(1);
 
       // Glue coincident faces and edges (with Partition algorithm).
-      NMTAlgo_Splitter1 PS;
-      PS.AddShape(aCompound);
-      PS.Compute();
-      PS.SetRemoveWebs(Standard_False);
-//      PS.Build(aCompound.ShapeType());
-      PS.Build(TopAbs_SOLID);
-
-      aShape = PS.Shape();
+      //NMTAlgo_Splitter1 PS;
+      //PS.AddShape(aCompound);
+      //PS.Compute();
+      //PS.SetRemoveWebs(Standard_False);
+      //      PS.Build(aCompound.ShapeType());
+      //PS.Build(TopAbs_SOLID);
+      //aShape = PS.Shape();
+
+      GEOMAlgo_Gluer aGluer;
+      aGluer.SetShape(aCompound);
+      aGluer.SetCheckGeometry(Standard_True);
+      aGluer.Perform();
+      aShape = aGluer.Result();
+
+
     } else {
     }
 
@@ -537,7 +545,7 @@ Standard_Integer GEOMImpl_BlockDriver::Execute(TFunction_Logbook& log) const
         }
 
         // 5. Glue Faces
-        aShape = GEOMImpl_GlueDriver::GlueFaces(aComp, Precision::Confusion());
+        aShape = GEOMImpl_GlueDriver::GlueFaces(aComp, Precision::Confusion(), Standard_False);
       }
 
     } else if (aType == BLOCK_MULTI_TRANSFORM_1D ||
@@ -643,7 +651,7 @@ Standard_Integer GEOMImpl_BlockDriver::Execute(TFunction_Logbook& log) const
       }
 
       // Glue faces of the multi-block
-      aShape = GEOMImpl_GlueDriver::GlueFaces(aMulti, aTol);
+      aShape = GEOMImpl_GlueDriver::GlueFaces(aMulti, aTol, Standard_False);
 
     } else { // unknown function type
       return 0;
index 4bf020b613f61545549e1b0ab13f0ea254538eaa..c419cd6d5f93adbc78297384662cad6e3a0c762f 100644 (file)
@@ -153,6 +153,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const
       }
 
       if (isCompound) {
+        /*
         TopTools_ListOfShape listShapeC;
         AddSimpleShapes(C, listShapeC);
         TopTools_ListIteratorOfListOfShape itSubC (listShapeC);
@@ -165,6 +166,14 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const
           aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion());
         else
           aShape = C;
+        */
+
+        // As GlueFaces has been improved to keep all kind of shapes
+        TopExp_Explorer anExp (C, TopAbs_VERTEX);
+        if (anExp.More())
+          aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion(), Standard_True);
+        else
+          aShape = C;
       }
     }
 
@@ -215,6 +224,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const
       }
 
       if (isCompound) {
+        /*
         TopTools_ListOfShape listShapeC;
         AddSimpleShapes(C, listShapeC);
         TopTools_ListIteratorOfListOfShape itSubC (listShapeC);
@@ -227,11 +237,20 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const
           aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion());
         else
           aShape = C;
+        */
+
+        // As GlueFaces has been improved to keep all kind of shapes
+        TopExp_Explorer anExp (C, TopAbs_VERTEX);
+        if (anExp.More())
+          aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion(), Standard_True);
+        else
+          aShape = C;
       }
     }
 
     // perform FUSE operation
     else if (aType == BOOLEAN_FUSE) {
+      /* Fix for NPAL15379: refused
       // Check arguments
       TopTools_ListOfShape listShape1, listShape2;
       AddSimpleShapes(aShape1, listShape1);
@@ -305,6 +324,7 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const
           }
         }
       }
+      */
 
       // Perform
       BRepAlgoAPI_Fuse BO (aShape1, aShape2);
@@ -367,8 +387,16 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const
         }
       }
 
-      if (isCompound)
-        aShape = C;
+      if (isCompound) {
+        //aShape = C;
+
+        // As GlueFaces has been improved to keep all kind of shapes
+        TopExp_Explorer anExp (C, TopAbs_VERTEX);
+        if (anExp.More())
+          aShape = GEOMImpl_GlueDriver::GlueFaces(C, Precision::Confusion(), Standard_True);
+        else
+          aShape = C;
+      }
     }
 
     // UNKNOWN operation
index 57cc91748359d4f83a70e5f144002adaff6fdacd..54431c6dcc222e61f9234fc8245e369c2949c14c 100644 (file)
@@ -132,37 +132,51 @@ Standard_Integer GEOMImpl_ChamferDriver::Execute(TFunction_Logbook& log) const
           M.FindFromIndex(i).Extent() == 2)
         fill.Add(aD, E, F);
     }
-  } else if (aType == CHAMFER_SHAPE_EDGE) {
+  }else if (aType == CHAMFER_SHAPE_EDGE || aType == CHAMFER_SHAPE_EDGE_AD) {
     // chamfer on edges, common to two faces, with D1 on the first face
-    double aD1 = aCI.GetD1();
-    double aD2 = aCI.GetD2();
+   
     TopoDS_Shape aFace1, aFace2;
     if (GEOMImpl_ILocalOperations::GetSubShape(aShapeBase, aCI.GetFace1(), aFace1) &&
-        GEOMImpl_ILocalOperations::GetSubShape(aShapeBase, aCI.GetFace2(), aFace2)) {
-      TopoDS_Face F = TopoDS::Face(aFace1);
-
-      // fill map of edges of the second face
-      TopTools_MapOfShape aMap;
-      TopExp_Explorer Exp2 (aFace2, TopAbs_EDGE);
-      for (; Exp2.More(); Exp2.Next()) {
-        aMap.Add(Exp2.Current());
+        GEOMImpl_ILocalOperations::GetSubShape(aShapeBase, aCI.GetFace2(), aFace2))
+      {
+       TopoDS_Face F = TopoDS::Face(aFace1);
+
+       // fill map of edges of the second face
+       TopTools_MapOfShape aMap;
+       TopExp_Explorer Exp2 (aFace2, TopAbs_EDGE);
+       for (; Exp2.More(); Exp2.Next()) {
+         aMap.Add(Exp2.Current());
+       }
+       
+       // find edges of the first face, common with the second face
+       TopExp_Explorer Exp (aFace1, TopAbs_EDGE);
+       for (; Exp.More(); Exp.Next()) {
+         if (aMap.Contains(Exp.Current())) {
+           TopoDS_Edge E = TopoDS::Edge(Exp.Current());
+           if (!BRepTools::IsReallyClosed(E, F) && !BRep_Tool::Degenerated(E))
+             {
+               if ( aType == CHAMFER_SHAPE_EDGE )
+                 {
+                   double aD1 = aCI.GetD1();
+                   double aD2 = aCI.GetD2();
+                   fill.Add(aD1, aD2, E, F);
+                 }
+               else
+                 {
+                   double aD = aCI.GetD();
+                   double anAngle = aCI.GetAngle();
+                   if ( (anAngle > 0) && (anAngle < (Standard_PI/2)) )
+                     fill.AddDA(aD, anAngle, E, F);
+                 }
+             }
+         }
+       }
       }
-
-      // find edges of the first face, common with the second face
-      TopExp_Explorer Exp (aFace1, TopAbs_EDGE);
-      for (; Exp.More(); Exp.Next()) {
-        if (aMap.Contains(Exp.Current())) {
-          TopoDS_Edge E = TopoDS::Edge(Exp.Current());
-          if (!BRepTools::IsReallyClosed(E, F) && !BRep_Tool::Degenerated(E))
-            fill.Add(aD1, aD2, E, F);
-        }
-      }
-    }
-  } else if (aType == CHAMFER_SHAPE_FACES) {
+  }
+  else if (aType == CHAMFER_SHAPE_FACES || aType == CHAMFER_SHAPE_FACES_AD) {
     // chamfer on all edges of the selected faces, with D1 on the selected face
     // (on first selected face, if the edge belongs to two selected faces)
-    double aD1 = aCI.GetD1();
-    double aD2 = aCI.GetD2();
+
     int aLen = aCI.GetLength();
     int ind = 1;
     TopTools_MapOfShape aMap;
@@ -171,22 +185,69 @@ Standard_Integer GEOMImpl_ChamferDriver::Execute(TFunction_Logbook& log) const
     for (; ind <= aLen; ind++)
     {
       TopoDS_Shape aShapeFace;
-      if (GEOMImpl_ILocalOperations::GetSubShape
-          (aShapeBase, aCI.GetFace(ind), aShapeFace)) {
-        TopoDS_Face F = TopoDS::Face(aShapeFace);
-        TopExp_Explorer Exp (F, TopAbs_EDGE);
-        for (; Exp.More(); Exp.Next()) {
-          if (!aMap.Contains(Exp.Current())) {
-            TopoDS_Edge E = TopoDS::Edge(Exp.Current());
-            if (!BRepTools::IsReallyClosed(E, F) &&
-                !BRep_Tool::Degenerated(E) &&
-                M.FindFromKey(E).Extent() == 2)
-              fill.Add(aD1, aD2, E, F);
-          }
-        }
-      }
+      if (GEOMImpl_ILocalOperations::GetSubShape(aShapeBase, aCI.GetFace(ind), aShapeFace))
+       {
+         TopoDS_Face F = TopoDS::Face(aShapeFace);
+         TopExp_Explorer Exp (F, TopAbs_EDGE);
+         for (; Exp.More(); Exp.Next()) {
+           if (!aMap.Contains(Exp.Current()))
+             {
+               TopoDS_Edge E = TopoDS::Edge(Exp.Current());
+               if (!BRepTools::IsReallyClosed(E, F) &&
+                   !BRep_Tool::Degenerated(E) &&
+                   M.FindFromKey(E).Extent() == 2)
+                 if (aType == CHAMFER_SHAPE_FACES)
+                   {
+                     double aD1 = aCI.GetD1();
+                     double aD2 = aCI.GetD2();
+                     fill.Add(aD1, aD2, E, F);
+                   }
+                 else
+                   {
+                     double aD = aCI.GetD();
+                     double anAngle = aCI.GetAngle();
+                     if ( (anAngle > 0) && (anAngle < (Standard_PI/2)) )
+                       fill.AddDA(aD, anAngle, E, F);
+                   }
+             }
+         }
+       }
     }
-  } else {
+  }  
+else if (aType == CHAMFER_SHAPE_EDGES || aType == CHAMFER_SHAPE_EDGES_AD)
+  {
+    // chamfer on selected edges with lenght param D1 & D2.
+
+    int aLen = aCI.GetLength();
+    int ind = 1;
+    TopTools_MapOfShape aMap;
+    TopTools_IndexedDataMapOfShapeListOfShape M;
+    GEOMImpl_Block6Explorer::MapShapesAndAncestors(aShapeBase, TopAbs_EDGE, TopAbs_FACE, M);
+    for (; ind <= aLen; ind++)
+    {
+      TopoDS_Shape aShapeEdge;
+      if (GEOMImpl_ILocalOperations::GetSubShape(aShapeBase, aCI.GetEdge(ind), aShapeEdge))
+       {
+         TopoDS_Edge E = TopoDS::Edge(aShapeEdge);
+         const TopTools_ListOfShape& aFacesList = M.FindFromKey(E);
+         TopoDS_Face F = TopoDS::Face( aFacesList.First() );
+         if (aType == CHAMFER_SHAPE_EDGES)
+           {
+             double aD1 = aCI.GetD1();
+             double aD2 = aCI.GetD2();
+             fill.Add(aD1, aD2, E, F);
+           }
+         else
+           {
+             double aD = aCI.GetD();
+             double anAngle = aCI.GetAngle();
+             if ( (anAngle > 0) && (anAngle < (Standard_PI/2)) )
+               fill.AddDA(aD, anAngle, E, F);
+           }
+       } 
+    } 
+  }
+  else {
   }
 
   fill.Build();
index 7d33433663ab336796c3fa6f67d27d4e172ba8f9..79184422b9616e9a88c21370cca98049aafcdf17 100644 (file)
@@ -95,6 +95,48 @@ Standard_Integer GEOMImpl_CircleDriver::Execute(TFunction_Logbook& log) const
       }
     }
   }
+ 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();  
+       }
+  }
   else if (aType == CIRCLE_THREE_PNT) {
     Handle(GEOM_Function) aRefPoint1 = aCI.GetPoint1();
     Handle(GEOM_Function) aRefPoint2 = aCI.GetPoint2();
@@ -116,9 +158,9 @@ Standard_Integer GEOMImpl_CircleDriver::Execute(TFunction_Logbook& log) const
         Standard_ConstructionError::Raise("Circle creation aborted: points lay on one line");
       Handle(Geom_Circle) aCirc = GC_MakeCircle(aP1, aP2, aP3).Value();
       aShape = BRepBuilderAPI_MakeEdge(aCirc).Edge();
-    }
+    }  
   }
-  else {
+   else {
   }
 
   if (aShape.IsNull()) return 0;
index e2d0629e4a69d7a19a6fb4838d826bdba9f619cf..5ea854b9625c36a20e9e0cc0a05bad542fe2f88f 100644 (file)
@@ -28,9 +28,7 @@
 #include <TopoDS_Shape.hxx>
 #include <TCollection_AsciiString.hxx>
 
-#include <Standard_ConstructionError.hxx>
-
-#include <NCollection_DataMap.hxx>
+#include <Standard_Failure.hxx>
 
 #ifdef WNT
 #include <windows.h>
@@ -106,14 +104,20 @@ Standard_Integer GEOMImpl_ExportDriver::Execute(TFunction_Logbook& log) const
   if ( anExportLib )
     fp = (funcPoint)GetProc( anExportLib, "Export" );
 
-  if ( !fp )
-    return 0;
+  if ( !fp ) {
+    TCollection_AsciiString aMsg = aFormatName;
+    aMsg += " plugin was not installed";
+    Standard_Failure::Raise(aMsg.ToCString());
+  }
 
   // perform the export
   int res = fp( aShape, aFileName, aFormatName );
 
   // unload plugin library
-  //UnLoadLib( anExportLib );
+  // commented by enk:
+  // the bug was occured: using ACIS Import/Export plugin
+  // UnLoadLib( anExportLib );
+
   if ( res )
     log.SetTouched(Label()); 
 
index 3114733df9beb4d18a9ba09734bc15f4654aeebf..e662d4cac496318b54bf15169f35c3b349d0fe4f 100644 (file)
@@ -83,17 +83,17 @@ Standard_Integer GEOMImpl_FilletDriver::Execute(TFunction_Logbook& log) const
       TopoDS_Edge E = TopoDS::Edge(Exp.Current());
       fill.Add(E);
     }
-  } else if (aType == FILLET_SHAPE_EDGES) {
+  } else if (aType == FILLET_SHAPE_EDGES || aType == FILLET_SHAPE_EDGES_2R) {
     int aLen = aCI.GetLength();
     int ind = 1;
     for (; ind <= aLen; ind++) {
       TopoDS_Shape aShapeEdge;
       if (GEOMImpl_ILocalOperations::GetSubShape
           (aShapeBase, aCI.GetEdge(ind), aShapeEdge)) {
-        fill.Add(TopoDS::Edge(aShapeEdge));
+         fill.Add(TopoDS::Edge(aShapeEdge));
       }
     }
-  } else if (aType == FILLET_SHAPE_FACES) {
+  } else if (aType == FILLET_SHAPE_FACES || aType == FILLET_SHAPE_FACES_2R) {
     int aLen = aCI.GetLength();
     int ind = 1;
     for (; ind <= aLen; ind++) {
@@ -108,10 +108,15 @@ Standard_Integer GEOMImpl_FilletDriver::Execute(TFunction_Logbook& log) const
     }
   } else {
   }
+  if (aType == FILLET_SHAPE_FACES || aType == FILLET_SHAPE_EDGES || aType == FILLET_SHAPE_ALL)
+    for (int i = 1; i <= fill.NbContours(); i++)
+      fill.SetRadius(aCI.GetR(), i, 1);
+    else if (aType == FILLET_SHAPE_FACES_2R || aType == FILLET_SHAPE_EDGES_2R)
+      for (int i = 1; i <= fill.NbContours(); i++)
+       {
+       fill.SetRadius(aCI.GetR1(), aCI.GetR2(), i, 1);
+       }
 
-  for (int i = 1; i <= fill.NbContours(); i++) {
-    fill.SetRadius(aCI.GetR(), i, 1);
-  }
   fill.Build();
   if (!fill.IsDone()) {
     StdFail_NotDone::Raise("Fillet can't be computed on the given shape with the given radius");
index e056bf7d8479911ee17f766f9e23c45e3fc7838a..ec18620ffdb16e1d45b213e626408cfc37312d28 100644 (file)
@@ -73,6 +73,7 @@ const Standard_GUID& GEOMImpl_GlueDriver::GetID()
 //=======================================================================
 TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesWithWarnings (const TopoDS_Shape& theShape,
                                                          const Standard_Real theTolerance,
+                                                         const Standard_Boolean doKeepNonSolids,
                                                          TCollection_AsciiString& theWarning) const
 {
   Standard_Integer iErr, iWrn;
@@ -82,6 +83,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesWithWarnings (const TopoDS_Shape& the
   aGluer.SetShape(theShape);
   aGluer.SetTolerance(theTolerance);
   aGluer.SetCheckGeometry(Standard_True);
+  aGluer.SetKeepNonSolids(doKeepNonSolids);
 
   aGluer.Perform();
 
@@ -197,7 +199,8 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesWithWarnings (const TopoDS_Shape& the
 //purpose  :
 //=======================================================================
 TopoDS_Shape GEOMImpl_GlueDriver::GlueFaces (const TopoDS_Shape& theShape,
-                                             const Standard_Real theTolerance)
+                                             const Standard_Real theTolerance,
+                                             const Standard_Boolean doKeepNonSolids)
 {
   Standard_Integer iErr, iWrn;
   TopoDS_Shape aRes;
@@ -206,6 +209,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueFaces (const TopoDS_Shape& theShape,
   aGluer.SetShape(theShape);
   aGluer.SetTolerance(theTolerance);
   aGluer.SetCheckGeometry(Standard_True);
+  aGluer.SetKeepNonSolids(doKeepNonSolids);
 
   aGluer.Perform();
 
@@ -261,6 +265,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueFaces (const TopoDS_Shape& theShape,
 //=======================================================================
 TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesByList (const TopoDS_Shape& theShape,
                                                   const Standard_Real theTolerance,
+                                                   const Standard_Boolean doKeepNonSolids,
                                                   const TopTools_MapOfShape& aFaces)
 {
   TopoDS_Shape aRes;
@@ -272,6 +277,7 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesByList (const TopoDS_Shape& theShape,
 
   aGluer.SetShape(theShape);
   aGluer.SetTolerance(theTolerance);
+  aGluer.SetKeepNonSolids(doKeepNonSolids);
   aGluer.Perform();
   Standard_Integer iErr = aGluer.ErrorStatus();
   if (iErr) return aRes;
@@ -327,8 +333,10 @@ Standard_Integer GEOMImpl_GlueDriver::Execute(TFunction_Logbook& log) const
 
   Standard_Real tol3d = aCI.GetTolerance();
 
+  Standard_Boolean aKeepNonSolids = aCI.GetKeepNonSolids();
+
   if (aType == GLUE_FACES) {
-    aShape = GlueFacesWithWarnings(aShapeBase, tol3d, aWrn);
+    aShape = GlueFacesWithWarnings(aShapeBase, tol3d, aKeepNonSolids, aWrn);
   }
   else { // aType == GLUE_FACES_BY_LIST
     Handle(TColStd_HSequenceOfTransient) SF = aCI.GetFaces();
@@ -347,7 +355,7 @@ Standard_Integer GEOMImpl_GlueDriver::Execute(TFunction_Logbook& log) const
       if(!aFaces.Contains(aFace))
        aFaces.Add(aFace);
     }
-    aShape = GlueFacesByList(aShapeBase, tol3d, aFaces);
+    aShape = GlueFacesByList(aShapeBase, tol3d, aKeepNonSolids, aFaces);
   }
 
   if (aShape.IsNull()) return 0;
index eee00b868d75f9e096b733a9b066e7bae9d624cd..e7c3befa849c93a28e0484cf4cec58044f01a348 100644 (file)
@@ -150,14 +150,17 @@ Standard_EXPORT static const Standard_GUID& GetID();
 Standard_EXPORT ~GEOMImpl_GlueDriver() {};
 
 Standard_EXPORT static TopoDS_Shape GlueFaces (const TopoDS_Shape& theShape,
-                                               const Standard_Real theTolerance);
+                                               const Standard_Real theTolerance,
+                                               const Standard_Boolean doKeepNonSolids = Standard_True);
 
 Standard_EXPORT TopoDS_Shape GlueFacesWithWarnings (const TopoDS_Shape& theShape,
                                                     const Standard_Real theTolerance,
+                                                    const Standard_Boolean doKeepNonSolids,
                                                     TCollection_AsciiString& theWarning) const;
 
 Standard_EXPORT static TopoDS_Shape GlueFacesByList (const TopoDS_Shape& theShape,
                                                     const Standard_Real theTolerance,
+                                                     const Standard_Boolean doKeepNonSolids,
                                                     const TopTools_MapOfShape& aFaces);
 
 
index de70f12593474c28353968098390da78e7401a07..6eefda984d37440e759d320cfa42e569db60bb7b 100644 (file)
@@ -692,6 +692,66 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePrismVecH (Handle(GEOM_Objec
   return aPrism;
 }
 
+//=============================================================================
+/*!
+ *  MakePrismVecH2Ways
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePrismVecH2Ways (Handle(GEOM_Object) theBase,
+                                                                   Handle(GEOM_Object) theVec,
+                                                                   double theH)
+{
+  SetErrorCode(KO);
+
+  if (theBase.IsNull() || theVec.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 relatively to vector
+  Handle(GEOM_Function) aFunction =
+    aPrism->AddFunction(GEOMImpl_PrismDriver::GetID(), PRISM_BASE_VEC_H_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();
+  Handle(GEOM_Function) aRefVec  = theVec->GetLastFunction();
+
+  if (aRefBase.IsNull() || aRefVec.IsNull()) return NULL;
+
+  aCI.SetBase(aRefBase);
+  aCI.SetVector(aRefVec);
+  aCI.SetH(theH);
+
+  //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("Prism driver failed");
+      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.MakePrismVecH2Ways("
+    << theBase << ", " << theVec << ", " << theH << ")";
+
+  SetErrorCode(OK);
+  return aPrism;
+}
+
 //=============================================================================
 /*!
  *  MakePrismTwoPnt
@@ -753,6 +813,67 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePrismTwoPnt
   return aPrism;
 }
 
+//=============================================================================
+/*!
+ *  MakePrismTwoPnt2Ways
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePrismTwoPnt2Ways
+       (Handle(GEOM_Object) theBase,
+        Handle(GEOM_Object) thePoint1, Handle(GEOM_Object) thePoint2)
+{
+  SetErrorCode(KO);
+
+  if (theBase.IsNull() || thePoint1.IsNull() || thePoint2.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 relatively to two points
+  Handle(GEOM_Function) aFunction =
+    aPrism->AddFunction(GEOMImpl_PrismDriver::GetID(), PRISM_BASE_TWO_PNT_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();
+  Handle(GEOM_Function) aRefPnt1 = thePoint1->GetLastFunction();
+  Handle(GEOM_Function) aRefPnt2 = thePoint2->GetLastFunction();
+
+  if (aRefBase.IsNull() || aRefPnt1.IsNull() || aRefPnt2.IsNull()) return NULL;
+
+  aCI.SetBase(aRefBase);
+  aCI.SetFirstPoint(aRefPnt1);
+  aCI.SetLastPoint(aRefPnt2);
+
+  //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("Prism driver failed");
+      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.MakePrism2Ways("
+    << theBase << ", " << thePoint1 << ", " << thePoint2 << ")";
+
+  SetErrorCode(OK);
+  return aPrism;
+}
+
 
 //=============================================================================
 /*!
@@ -871,6 +992,63 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeRevolutionAxisAngle (Handle(
   return aRevolution;
 }
 
+//=============================================================================
+/*!
+ *  MakeRevolutionAxisAngle2Ways
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeRevolutionAxisAngle2Ways
+                   (Handle(GEOM_Object) theBase, Handle(GEOM_Object) theAxis, double theAngle)
+{
+  SetErrorCode(KO);
+
+  if (theBase.IsNull() || theAxis.IsNull()) return NULL;
+
+  //Add a new Revolution object
+  Handle(GEOM_Object) aRevolution = GetEngine()->AddObject(GetDocID(), GEOM_REVOLUTION);
+
+  //Add a new Revolution function for creation a revolution relatively to axis
+  Handle(GEOM_Function) aFunction =
+    aRevolution->AddFunction(GEOMImpl_RevolutionDriver::GetID(), REVOLUTION_BASE_AXIS_ANGLE_2WAYS);
+  if (aFunction.IsNull()) return NULL;
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_RevolutionDriver::GetID()) return NULL;
+
+  GEOMImpl_IRevolution aCI (aFunction);
+
+  Handle(GEOM_Function) aRefBase = theBase->GetLastFunction();
+  Handle(GEOM_Function) aRefAxis = theAxis->GetLastFunction();
+
+  if (aRefBase.IsNull() || aRefAxis.IsNull()) return NULL;
+
+  aCI.SetBase(aRefBase);
+  aCI.SetAxis(aRefAxis);
+  aCI.SetAngle(theAngle);
+
+  //Compute the Revolution value
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    if (!GetSolver()->ComputeFunction(aFunction)) {
+      SetErrorCode("Revolution 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) << aRevolution << " = geompy.MakeRevolution2Ways("
+    << theBase << ", " << theAxis << ", " << theAngle * 180.0 / PI << "*math.pi/180.0)";
+
+  SetErrorCode(OK);
+  return aRevolution;
+}
 
 //=============================================================================
 /*!
@@ -1375,6 +1553,23 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePipeWithShellSections(
   
   pyDump<< "], [";
    
+  for(i =1 ; i <= nbSubBases; i++) {
+
+    Handle(Standard_Transient) anItem = theSubBases->Value(i);
+    if(anItem.IsNull())
+      continue;
+    
+    Handle(GEOM_Object) anObj = Handle(GEOM_Object)::DownCast(anItem);
+    if(!anObj.IsNull()) {
+      pyDump<< anObj;
+      if(i < nbBases)
+       pyDump<<", ";
+    }
+    
+  }
+  
+  pyDump<< "], [";
+   
   for(i =1 ; i <= nbLocs; i++) {
 
     Handle(Standard_Transient) anItem = theLocations->Value(i);
@@ -1396,3 +1591,135 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePipeWithShellSections(
 
 }
 
+
+//=============================================================================
+/*!
+ *  MakePipeShellsWithoutPath
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePipeShellsWithoutPath(
+               const Handle(TColStd_HSequenceOfTransient)& theBases,
+               const Handle(TColStd_HSequenceOfTransient)& theLocations)
+{
+  Handle(GEOM_Object) anObj;
+  SetErrorCode(KO);
+  if(theBases.IsNull())
+    return anObj;
+
+  Standard_Integer nbBases = theBases->Length();
+  
+  if (!nbBases)
+    return anObj;
+  
+  Standard_Integer nbLocs =  (theLocations.IsNull() ? 0 :theLocations->Length());
+
+  //Add a new Pipe object
+  Handle(GEOM_Object) aPipeDS = GetEngine()->AddObject(GetDocID(), GEOM_PIPE);
+  //Add a new Pipe function
+
+  Handle(GEOM_Function) aFunction =
+    aPipeDS->AddFunction(GEOMImpl_PipeDriver::GetID(), PIPE_SHELLS_WITHOUT_PATH);
+  if (aFunction.IsNull()) return anObj;
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_PipeDriver::GetID()) return anObj;
+
+  GEOMImpl_IPipeShellSect aCI (aFunction);
+
+  Handle(TColStd_HSequenceOfTransient) aSeqBases = new TColStd_HSequenceOfTransient;
+  Handle(TColStd_HSequenceOfTransient) aSeqLocs = new TColStd_HSequenceOfTransient;
+
+  Standard_Integer i =1;
+  for( ; i <= nbBases; i++) {
+
+    Handle(Standard_Transient) anItem = theBases->Value(i);
+    if(anItem.IsNull())
+      continue;
+    Handle(GEOM_Object) aBase = Handle(GEOM_Object)::DownCast(anItem);
+    if(aBase.IsNull())
+      continue;
+    Handle(GEOM_Function) aRefBase = aBase->GetLastFunction();
+    if(aRefBase.IsNull())
+      continue;
+
+    if(nbLocs) {
+      Handle(Standard_Transient) anItemLoc = theLocations->Value(i);
+      if(anItemLoc.IsNull())
+       continue;
+      Handle(GEOM_Object) aLoc = Handle(GEOM_Object)::DownCast(anItemLoc);
+      if(aLoc.IsNull())
+       continue;
+      Handle(GEOM_Function) aRefLoc = aLoc->GetLastFunction();
+      if(aRefLoc.IsNull())
+       continue;
+      aSeqLocs->Append(aRefLoc);
+    }
+
+    aSeqBases->Append(aRefBase);
+  }
+
+  if(!aSeqBases->Length())
+    return anObj;
+
+  aCI.SetBases(aSeqBases);
+  aCI.SetLocations(aSeqLocs);
+  
+  //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 with shell sections without path driver failed");
+      return anObj;
+    }
+  }
+  catch (Standard_Failure) {
+    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
+    SetErrorCode(aFail->GetMessageString());
+    return anObj;
+  }
+
+  //Make a Python command
+  GEOM::TPythonDump pyDump(aFunction);
+  pyDump << aPipeDS << " = geompy.MakePipeShellsWithoutPath([";
+
+  for(i =1 ; i <= nbBases; i++) {
+
+    Handle(Standard_Transient) anItem = theBases->Value(i);
+    if(anItem.IsNull())
+      continue;
+    
+    Handle(GEOM_Object) anObj = Handle(GEOM_Object)::DownCast(anItem);
+    if(!anObj.IsNull()) {
+      pyDump<< anObj;
+      if(i < nbBases)
+       pyDump<<", ";
+    }
+    
+  }
+  
+  pyDump<< "], [";
+   
+  for(i =1 ; i <= nbLocs; i++) {
+
+    Handle(Standard_Transient) anItem = theLocations->Value(i);
+    if(anItem.IsNull())
+      continue;
+    
+    Handle(GEOM_Object) anObj = Handle(GEOM_Object)::DownCast(anItem);
+    if(!anObj.IsNull()) {
+      pyDump<< anObj;
+      if(i < nbLocs)
+       pyDump<<", ";
+    }
+  }  
+
+  pyDump<< "])";
+
+  SetErrorCode(OK);
+  return aPipeDS;
+
+}
+
index 5773f2f47f6dd5a8df88808d07a89558acc1f193..f87ddd5d500a599cfc5e318da3c1f992d94dfa50 100644 (file)
@@ -59,10 +59,17 @@ class GEOMImpl_I3DPrimOperations : public GEOM_IOperations {
   Standard_EXPORT Handle(GEOM_Object) MakePrismVecH (Handle(GEOM_Object) theBase,
                                      Handle(GEOM_Object) theVec, double theH);
 
+  Standard_EXPORT Handle(GEOM_Object) MakePrismVecH2Ways (Handle(GEOM_Object) theBase,
+                                              Handle(GEOM_Object) theVec, double theH);
+
   Standard_EXPORT Handle(GEOM_Object) MakePrismTwoPnt (Handle(GEOM_Object) theBase,
                                        Handle(GEOM_Object) thePoint1,
                                        Handle(GEOM_Object) thePoint2);
 
+  Standard_EXPORT Handle(GEOM_Object) MakePrismTwoPnt2Ways (Handle(GEOM_Object) theBase,
+                                       Handle(GEOM_Object) thePoint1,
+                                       Handle(GEOM_Object) thePoint2);
+
   Standard_EXPORT Handle(GEOM_Object) MakePipe (Handle(GEOM_Object) theBase,
                                 Handle(GEOM_Object) thePath);
 
@@ -70,6 +77,10 @@ class GEOMImpl_I3DPrimOperations : public GEOM_IOperations {
                                                Handle(GEOM_Object) theAxis,
                                                double theAngle);
 
+  Standard_EXPORT Handle(GEOM_Object) MakeRevolutionAxisAngle2Ways (Handle(GEOM_Object) theBase,
+                                                                   Handle(GEOM_Object) theAxis,
+                                                                   double theAngle);
+
   Standard_EXPORT Handle(GEOM_Object) MakeSolidShell (Handle(GEOM_Object) theShell);
 
   Standard_EXPORT Handle(GEOM_Object) MakeFilling (Handle(GEOM_Object) theShape, int theMinDeg, int theMaxDeg, double theTol2D, double theTol3D, int theNbIter);
@@ -94,6 +105,10 @@ class GEOMImpl_I3DPrimOperations : public GEOM_IOperations {
                bool theWithContact,
                bool theWithCorrections);
 
+  Standard_EXPORT Handle(GEOM_Object) MakePipeShellsWithoutPath(
+               const Handle(TColStd_HSequenceOfTransient)& theBases,
+               const Handle(TColStd_HSequenceOfTransient)& theLocations);
+
 };
 
 #endif
index 6ed1de04e75fb247927505a244717e003029fc01..08d1fde184e77359d8d50259c25305b2e53edaa6 100644 (file)
@@ -231,6 +231,60 @@ Handle(GEOM_Object) GEOMImpl_IBasicOperations::MakePointOnCurve
   return aPoint;
 }
 
+//=============================================================================
+/*!
+ *  MakePointOnLinesIntersection
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_IBasicOperations::MakePointOnLinesIntersection
+                            (Handle(GEOM_Object) theLine1, Handle(GEOM_Object) theLine2)
+{
+  SetErrorCode(KO);
+
+  if (theLine1.IsNull() || theLine2.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_LINES_INTERSECTION);
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_PointDriver::GetID()) return NULL;
+
+  GEOMImpl_IPoint aPI (aFunction);
+
+  Handle(GEOM_Function) aRef1 = theLine1->GetLastFunction();
+  Handle(GEOM_Function) aRef2 = theLine2->GetLastFunction();
+  if (aRef1.IsNull() || aRef2.IsNull()) return NULL;
+
+  aPI.SetLine1(aRef1);
+  aPI.SetLine2(aRef2);
+
+  //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.MakeVertexOnLinesIntersection("
+                               << theLine1 << ", " << theLine2 << ")";
+
+  SetErrorCode(OK);
+  return aPoint;
+}
+
 //=============================================================================
 /*!
  *  MakeTangentOnCurve
@@ -501,6 +555,60 @@ Handle(GEOM_Object) GEOMImpl_IBasicOperations::MakeLineTwoPnt
   return aLine;
 }
 
+//=============================================================================
+/*!
+ *  MakeLineTwoFaces
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_IBasicOperations::MakeLineTwoFaces
+                     (Handle(GEOM_Object) theFace1, Handle(GEOM_Object) theFace2)
+{
+  SetErrorCode(KO);
+
+  if (theFace1.IsNull() || theFace2.IsNull()) return NULL;
+
+  //Add a new Line object
+  Handle(GEOM_Object) aLine = GetEngine()->AddObject(GetDocID(), GEOM_LINE);
+
+  //Add a new Line function
+  Handle(GEOM_Function) aFunction =
+    aLine->AddFunction(GEOMImpl_LineDriver::GetID(), LINE_TWO_FACES);
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_LineDriver::GetID()) return NULL;
+
+  GEOMImpl_ILine aPI (aFunction);
+
+  Handle(GEOM_Function) aRef1 = theFace1->GetLastFunction();
+  Handle(GEOM_Function) aRef2 = theFace2->GetLastFunction();
+  if (aRef1.IsNull() || aRef2.IsNull()) return NULL;
+
+  aPI.SetFace1(aRef1);
+  aPI.SetFace2(aRef2);
+
+  //Compute the Line value
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    if (!GetSolver()->ComputeFunction(aFunction)) {
+      SetErrorCode("Line 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) << aLine << " = geompy.MakeLineTwoFaces("
+                               << theFace1 << ", " << theFace2 << ")";
+
+  SetErrorCode(OK);
+  return aLine;
+}
 
 //=============================================================================
 /*!
index 1b44aa4e82d56053271bd1b41ba9acb9ce3f8eda..e6155178bf89a67618f6cfdcce59bd0eec4e96f8 100644 (file)
@@ -41,6 +41,9 @@ class GEOMImpl_IBasicOperations : public GEOM_IOperations {
   Standard_EXPORT Handle(GEOM_Object) MakePointOnCurve (Handle(GEOM_Object) theCurve,
                                         double theParameter);
 
+  Standard_EXPORT Handle(GEOM_Object) MakePointOnLinesIntersection
+                                      (Handle(GEOM_Object) theLine1, Handle(GEOM_Object) theLine2);
+
   // Vector
   Standard_EXPORT Handle(GEOM_Object) MakeVectorDXDYDZ (double theDX, double theDY, double theDZ);
 
@@ -54,6 +57,9 @@ class GEOMImpl_IBasicOperations : public GEOM_IOperations {
   Standard_EXPORT Handle(GEOM_Object) MakeLineTwoPnt (Handle(GEOM_Object) thePnt1,
                                       Handle(GEOM_Object) thePnt2);
 
+  Standard_EXPORT Handle(GEOM_Object) MakeLineTwoFaces (Handle(GEOM_Object) theFace1,
+                                      Handle(GEOM_Object) theFace2);
+
   Standard_EXPORT Handle(GEOM_Object) MakeLine (Handle(GEOM_Object) thePnt,
                                 Handle(GEOM_Object) theDir);
 
index d2753622d2ce7d201bcaa524d4290d87c6c25a97..f5c4040a17a8f10b759d8bfab3b383dc505c66f3 100644 (file)
@@ -148,7 +148,8 @@ Handle(GEOM_Object) GEOMImpl_IBooleanOperations::MakePartition
                               const Standard_Integer                      theLimit,
                               const Standard_Boolean                      theRemoveWebs,
                               const Handle(TColStd_HArray1OfInteger)&     theMaterials,
-                              const Standard_Boolean                      thePerformSelfIntersections)
+                             const Standard_Integer theKeepNonlimitShapes,
+                              const Standard_Boolean thePerformSelfIntersections)
 {
   SetErrorCode(KO);
 
@@ -251,6 +252,7 @@ Handle(GEOM_Object) GEOMImpl_IBooleanOperations::MakePartition
 
   // Limit
   aCI.SetLimit(theLimit);
+  aCI.SetKeepNonlimitShapes(theKeepNonlimitShapes);
 
   // Materials
   if (theRemoveWebs) {
@@ -302,7 +304,7 @@ Handle(GEOM_Object) GEOMImpl_IBooleanOperations::MakePartition
       pd << ", " << theMaterials->Value(i);
     }
   }
-  pd << "])";
+  pd << "], " << theKeepNonlimitShapes <<")";
 
   SetErrorCode(OK);
   return aPartition;
index fd82587b27d7e736f0faeba1dedf6b6eda4531ce..6dc82d7be23d005e30b99069b6e4b5c2730b23c9 100644 (file)
@@ -46,7 +46,8 @@ class GEOMImpl_IBooleanOperations : public GEOM_IOperations {
                    const Standard_Integer                      theLimit,
                    const Standard_Boolean                      theRemoveWebs,
                    const Handle(TColStd_HArray1OfInteger)&     theMaterials,
-                   const Standard_Boolean                      thePerformSelfIntersections);
+                  const Standard_Integer theKeepNonlimitShapes,
+                  const Standard_Boolean thePerformSelfIntersections);
 
   Standard_EXPORT Handle(GEOM_Object) MakeHalfPartition (Handle(GEOM_Object) theShape,
                                                          Handle(GEOM_Object) thePlane);
index 6c12fd184867fda749365eb6f75c26d144eef303..17f7e5afcd793e4e67bace07bdca3dadafadeefd 100644 (file)
 
 #include "GEOM_Function.hxx"
 
-#define CHAM_ARG_SH   1
-#define CHAM_ARG_D1   2
-#define CHAM_ARG_D2   3
-#define CHAM_ARG_LENG 4
-#define CHAM_ARG_LAST 4
+#define CHAM_ARG_SH    1
+#define CHAM_ARG_D1    2
+#define CHAM_ARG_D2    3
+#define CHAM_ARG_ANGLE 3
+#define CHAM_ARG_LENG  4
+#define CHAM_ARG_LAST  4
 
 class GEOMImpl_IChamfer
 {
@@ -41,10 +42,12 @@ class GEOMImpl_IChamfer
   void SetD (double theD) { _func->SetReal(CHAM_ARG_D1, theD); }
   void SetD1(double theD) { _func->SetReal(CHAM_ARG_D1, theD); }
   void SetD2(double theD) { _func->SetReal(CHAM_ARG_D2, theD); }
+  void SetAngle(double theAngle) { _func->SetReal(CHAM_ARG_ANGLE, theAngle); }
 
   double GetD () { return _func->GetReal(CHAM_ARG_D1); }
   double GetD1() { return _func->GetReal(CHAM_ARG_D1); }
   double GetD2() { return _func->GetReal(CHAM_ARG_D2); }
+  double GetAngle() { return _func->GetReal(CHAM_ARG_ANGLE); }
 
   void SetLength(int theLen) { _func->SetInteger(CHAM_ARG_LENG, theLen); }
 
@@ -56,10 +59,13 @@ class GEOMImpl_IChamfer
               { _func->SetInteger(CHAM_ARG_LAST + 1, theFace); }
   void SetFace2(int theFace)
               { _func->SetInteger(CHAM_ARG_LAST + 2, theFace); }
+  void SetEdge(int theInd, int theEdge)
+              { _func->SetInteger(CHAM_ARG_LAST + theInd, theEdge); }
 
   int GetFace(int theInd) { return _func->GetInteger(CHAM_ARG_LAST + theInd); }
   int GetFace1() { return _func->GetInteger(CHAM_ARG_LAST + 1); }
   int GetFace2() { return _func->GetInteger(CHAM_ARG_LAST + 2); }
+  int GetEdge(int theInd) { return _func->GetInteger(CHAM_ARG_LAST + theInd); }
 
  private:
 
index 3643e6f39072cfcf7d669f202063ea33b3c8897d..d6628ca431256cdd69b6cb48a506255d165ca391 100644 (file)
@@ -196,6 +196,66 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeCircleThreePnt (Handle(GEOM_
   return aCircle;
 }
 
+//=============================================================================
+/*!
+ *  MakeCircleCenter2Pnt
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeCircleCenter2Pnt (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 object
+  Handle(GEOM_Object) aCircle = GetEngine()->AddObject(GetDocID(), GEOM_CIRCLE);
+
+  //Add a new Circle function for creation a circle relatively to center and 2 points
+  Handle(GEOM_Function) aFunction =
+    aCircle->AddFunction(GEOMImpl_CircleDriver::GetID(), CIRCLE_CENTER_TWO_PNT);
+  if (aFunction.IsNull()) return NULL;
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_CircleDriver::GetID()) return NULL;
+
+  GEOMImpl_ICircle 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 Circle value
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    if (!GetSolver()->ComputeFunction(aFunction)) {
+      SetErrorCode("Circle 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) << aCircle << " = geompy.MakeCircleCenter2Pnt("
+    << thePnt1 << ", " << thePnt2 << ", " << thePnt3 << ")";
+
+  SetErrorCode(OK);
+  return aCircle;
+}
+
 //=============================================================================
 /*!
  *  MakeCirclePntVecR
index b0aa3cd39b579192e3583a29f1ba6bb54db86ba7..34bb01148b69bdfbc849d39450086314b1edb93c 100644 (file)
@@ -41,6 +41,9 @@ class GEOMImpl_ICurvesOperations : public GEOM_IOperations {
   Standard_EXPORT Handle(GEOM_Object) MakeCircleThreePnt (Handle(GEOM_Object) thePnt1,
                                                           Handle(GEOM_Object) thePnt2,
                                                           Handle(GEOM_Object) thePnt3);
+  Standard_EXPORT Handle(GEOM_Object) MakeCircleCenter2Pnt (Handle(GEOM_Object) thePnt1,
+                                                            Handle(GEOM_Object) thePnt2,
+                                                            Handle(GEOM_Object) thePnt3);
   Standard_EXPORT Handle(GEOM_Object) MakeCirclePntVecR  (Handle(GEOM_Object) thePnt,
                                                           Handle(GEOM_Object) theVec, double theR);
 
index 703c0f74f22620175cba54893e586f978edf01bc..f9deb9b8639bbb5603c38444da3b65de5c1a92f5 100644 (file)
@@ -24,6 +24,8 @@
 
 #define FILLET_ARG_SH   1
 #define FILLET_ARG_R    2
+#define FILLET_ARG_R1   4
+#define FILLET_ARG_R2   5
 #define FILLET_ARG_LENG 3
 #define FILLET_ARG_LAST 3
 
@@ -38,8 +40,12 @@ class GEOMImpl_IFillet
   Handle(GEOM_Function) GetShape() { return _func->GetReference(FILLET_ARG_SH); }
 
   void SetR(double theR) { _func->SetReal(FILLET_ARG_R, theR); }
+  void SetR1(double theR1) { _func->SetReal(FILLET_ARG_R1, theR1); }
+  void SetR2(double theR2) { _func->SetReal(FILLET_ARG_R2, theR2); }
 
   double GetR() { return _func->GetReal(FILLET_ARG_R); }
+  double GetR1() { return _func->GetReal(FILLET_ARG_R1); }
+  double GetR2() { return _func->GetReal(FILLET_ARG_R2); }
 
   void SetLength(int theLen) { _func->SetInteger(FILLET_ARG_LENG, theLen); }
 
index 7670ed70a65f14d3a49c0eae88aafa42b7046e39..e6e269221b7494f093bfc5894b327332d816b23d 100644 (file)
@@ -27,6 +27,7 @@
 #define GLUE_ARG_BASE   1
 #define GLUE_ARG_TOLER  2
 #define GLUE_ARG_FACES  3
+#define GLUE_ARG_KEEPALL 4
 
 class GEOMImpl_IGlue
 {
@@ -50,6 +51,9 @@ class GEOMImpl_IGlue
   Handle(TColStd_HSequenceOfTransient) GetFaces()
   { return _func->GetReferenceList(GLUE_ARG_FACES); }
 
+  void SetKeepNonSolids (Standard_Boolean theFlag) { _func->SetInteger(GLUE_ARG_KEEPALL, theFlag ? 1 : 0); }
+  Standard_Boolean GetKeepNonSolids() { return (_func->GetInteger(GLUE_ARG_KEEPALL) != 0); }
+
  private:
 
   Handle(GEOM_Function) _func;
index 09d5fba74d2924edf011e412de17ca62ef39e6d8..99a60b7780b5e3e1e301d7478a78519169c2a33e 100644 (file)
 
 #include "GEOM_Function.hxx"
 
-#define LINE_ARG_PNT1 1
-#define LINE_ARG_PNT2 2
+#define LINE_ARG_PNT1  1
+#define LINE_ARG_PNT2  2
+#define LINE_ARG_FACE1 3
+#define LINE_ARG_FACE2 4
 
 class GEOMImpl_ILine
 {
@@ -33,9 +35,13 @@ class GEOMImpl_ILine
 
   void SetPoint1(Handle(GEOM_Function) theRef) { _func->SetReference(LINE_ARG_PNT1, theRef); }
   void SetPoint2(Handle(GEOM_Function) theRef) { _func->SetReference(LINE_ARG_PNT2, theRef); }
+  void SetFace1(Handle(GEOM_Function) theRef) { _func->SetReference(LINE_ARG_FACE1, theRef); }
+  void SetFace2(Handle(GEOM_Function) theRef) { _func->SetReference(LINE_ARG_FACE2, theRef); }
 
   Handle(GEOM_Function) GetPoint1() { return _func->GetReference(LINE_ARG_PNT1); }
   Handle(GEOM_Function) GetPoint2() { return _func->GetReference(LINE_ARG_PNT2); }
+  Handle(GEOM_Function) GetFace1() { return _func->GetReference(LINE_ARG_FACE1); }
+  Handle(GEOM_Function) GetFace2() { return _func->GetReference(LINE_ARG_FACE2); }
 
  private:
 
index 63e0126b02b48a997493bf77b341f9896ae5fcce..14ef164437d948b829f35c4b8fe9c73c75e7da4d 100644 (file)
@@ -198,6 +198,77 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdges
   return aFillet;
 }
 
+//=============================================================================
+/*!
+ *  MakeFilletEdges R1 R2
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdgesR1R2
+       (Handle(GEOM_Object) theShape, double theR1, double theR2, list<int> theEdges)
+{
+  SetErrorCode(KO);
+
+  //Add a new Fillet object
+  Handle(GEOM_Object) aFillet = GetEngine()->AddObject(GetDocID(), GEOM_FILLET);
+
+  //Add a new Fillet function
+  Handle(GEOM_Function) aFunction =
+    aFillet->AddFunction(GEOMImpl_FilletDriver::GetID(), FILLET_SHAPE_EDGES_2R);
+  if (aFunction.IsNull()) return NULL;
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_FilletDriver::GetID()) return NULL;
+
+  GEOMImpl_IFillet aCI (aFunction);
+
+  Handle(GEOM_Function) aRefShape = theShape->GetLastFunction();
+  if (aRefShape.IsNull()) return NULL;
+
+  aCI.SetShape(aRefShape);
+  aCI.SetR1(theR1);
+  aCI.SetR2(theR2);
+  int aLen = theEdges.size();
+  aCI.SetLength(aLen);
+
+  int ind = 1;
+  list<int>::iterator it = theEdges.begin();
+  for (; it != theEdges.end(); it++, ind++) {
+    aCI.SetEdge(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("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 << aFillet << " = geompy.MakeFilletR1R2(" << theShape
+    << ", " << theR1 << ", " <<theR2 << ", geompy.ShapeType[\"EDGE\"], [";
+
+  it = theEdges.begin();
+  pd << (*it++);
+  while (it != theEdges.end()) {
+    pd << ", " << (*it++);
+  }
+  pd << "])";
+
+  SetErrorCode(OK);
+  return aFillet;
+}
+
+
 //=============================================================================
 /*!
  *  MakeFilletFaces
@@ -267,6 +338,76 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFaces
   return aFillet;
 }
 
+//=============================================================================
+/*!
+ *  MakeFilletFaces R1 R2
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFacesR1R2
+       (Handle(GEOM_Object) theShape, double theR1, double theR2, list<int> theFaces)
+{
+  SetErrorCode(KO);
+
+  //Add a new Fillet object
+  Handle(GEOM_Object) aFillet = GetEngine()->AddObject(GetDocID(), GEOM_FILLET);
+
+  //Add a new Fillet function
+  Handle(GEOM_Function) aFunction =
+    aFillet->AddFunction(GEOMImpl_FilletDriver::GetID(), FILLET_SHAPE_FACES_2R);
+  if (aFunction.IsNull()) return NULL;
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_FilletDriver::GetID()) return NULL;
+
+  GEOMImpl_IFillet aCI (aFunction);
+
+  Handle(GEOM_Function) aRefShape = theShape->GetLastFunction();
+  if (aRefShape.IsNull()) return NULL;
+
+  aCI.SetShape(aRefShape);
+  aCI.SetR1(theR1);
+  aCI.SetR2(theR2);
+  int aLen = theFaces.size();
+  aCI.SetLength(aLen);
+
+  int ind = 1;
+  list<int>::iterator it = theFaces.begin();
+  for (; it != theFaces.end(); it++, ind++) {
+    aCI.SetFace(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("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 << aFillet << " = geompy.MakeFilletR1R2(" << theShape
+    << ", " << theR1 << ", " << theR2 << ", geompy.ShapeType[\"FACE\"], [";
+
+  it = theFaces.begin();
+  pd << (*it++);
+  while (it != theFaces.end()) {
+    pd << ", " << (*it++);
+  }
+  pd << "])";
+
+  SetErrorCode(OK);
+  return aFillet;
+}
+
 //=============================================================================
 /*!
  *  MakeChamferAll
@@ -377,6 +518,63 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdge
   return aChamfer;
 }
 
+//=============================================================================
+/*!
+ *  MakeChamferEdgeAD
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdgeAD
+                            (Handle(GEOM_Object) theShape, double theD, double theAngle,
+                             int theFace1, int theFace2)
+{
+  SetErrorCode(KO);
+
+  //Add a new Chamfer object
+  Handle(GEOM_Object) aChamfer = GetEngine()->AddObject(GetDocID(), GEOM_CHAMFER);
+
+  //Add a new Chamfer function
+  Handle(GEOM_Function) aFunction =
+    aChamfer->AddFunction(GEOMImpl_ChamferDriver::GetID(), CHAMFER_SHAPE_EDGE_AD);
+  if (aFunction.IsNull()) return NULL;
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_ChamferDriver::GetID()) return NULL;
+
+  GEOMImpl_IChamfer aCI (aFunction);
+
+  Handle(GEOM_Function) aRefShape = theShape->GetLastFunction();
+  if (aRefShape.IsNull()) return NULL;
+
+  aCI.SetShape(aRefShape);
+  aCI.SetD(theD);
+  aCI.SetAngle(theAngle);
+  aCI.SetFace1(theFace1);
+  aCI.SetFace2(theFace2);
+
+  //Compute the Chamfer value
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    if (!GetSolver()->ComputeFunction(aFunction)) {
+      SetErrorCode("Chamfer 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) << aChamfer
+    << " = geompy.MakeChamferEdgeAD(" << theShape << ", " << theD
+      << ", " << theAngle << ", " << theFace1 << ", " << theFace2 << ")";
+  SetErrorCode(OK);
+  return aChamfer;
+}
+
 //=============================================================================
 /*!
  *  MakeChamferFaces
@@ -448,6 +646,221 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFaces
   return aChamfer;
 }
 
+//=============================================================================
+/*!
+ *  MakeChamferFacesAD
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFacesAD
+                            (Handle(GEOM_Object) theShape, double theD, double theAngle,
+                             list<int> theFaces)
+{
+  SetErrorCode(KO);
+
+  //Add a new Chamfer object
+  Handle(GEOM_Object) aChamfer = GetEngine()->AddObject(GetDocID(), GEOM_CHAMFER);
+
+  //Add a new Chamfer function
+  Handle(GEOM_Function) aFunction =
+    aChamfer->AddFunction(GEOMImpl_ChamferDriver::GetID(), CHAMFER_SHAPE_FACES_AD);
+  if (aFunction.IsNull()) return NULL;
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_ChamferDriver::GetID()) return NULL;
+
+  GEOMImpl_IChamfer aCI (aFunction);
+
+  Handle(GEOM_Function) aRefShape = theShape->GetLastFunction();
+  if (aRefShape.IsNull()) return NULL;
+
+  aCI.SetShape(aRefShape);
+  aCI.SetD(theD);
+  aCI.SetAngle(theAngle);
+  int aLen = theFaces.size();
+  aCI.SetLength(aLen);
+
+  int ind = 1;
+  list<int>::iterator it = theFaces.begin();
+  for (; it != theFaces.end(); it++, ind++) {
+    aCI.SetFace(ind, (*it));
+  }
+
+  //Compute the Chamfer value
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    if (!GetSolver()->ComputeFunction(aFunction)) {
+      SetErrorCode("Chamfer 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 << aChamfer << " = geompy.MakeChamferFacesAD(" << theShape
+    << ", " << theD << ", " << theAngle << ", [";
+
+  it = theFaces.begin();
+  pd << (*it++);
+  while (it != theFaces.end()) {
+    pd << ", " << (*it++);
+  }
+  pd << "])";
+
+  SetErrorCode(OK);
+  return aChamfer;
+}
+
+//=============================================================================
+/*!
+ *  MakeChamferEdges
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdges
+                            (Handle(GEOM_Object) theShape, double theD1, double theD2,
+                             list<int> theEdges)
+{
+  SetErrorCode(KO);
+
+  //Add a new Chamfer object
+  Handle(GEOM_Object) aChamfer = GetEngine()->AddObject(GetDocID(), GEOM_CHAMFER);
+
+  //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; }
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_ChamferDriver::GetID())
+       { return NULL; cout << "Chamfer Driver is NULL!!!" << endl; }
+
+  GEOMImpl_IChamfer aCI (aFunction);
+
+  Handle(GEOM_Function) aRefShape = theShape->GetLastFunction();
+  if (aRefShape.IsNull()) { return NULL; cout << "Shape is NULL!!!" << endl; }
+
+  aCI.SetShape(aRefShape);
+  aCI.SetD1(theD1);
+  aCI.SetD2(theD2);
+  int aLen = theEdges.size();
+  aCI.SetLength(aLen);
+
+  int ind = 1;
+  list<int>::iterator it = theEdges.begin();
+  for (; it != theEdges.end(); it++, ind++) {
+    aCI.SetEdge(ind, (*it));
+  }
+
+  //Compute the Chamfer value
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    if (!GetSolver()->ComputeFunction(aFunction)) {
+      SetErrorCode("Chamfer 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 << aChamfer << " = geompy.MakeChamferEdges(" << theShape
+    << ", " << theD1 << ", " << theD2 << ", [";
+
+  it = theEdges.begin();
+  pd << (*it++);
+  while (it != theEdges.end()) {
+    pd << ", " << (*it++);
+  }
+  pd << "])";
+
+  SetErrorCode(OK);
+  return aChamfer;
+}
+
+//=============================================================================
+/*!
+ *  MakeChamferEdgesAD
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdgesAD
+                            (Handle(GEOM_Object) theShape, double theD, double theAngle,
+                             list<int> theEdges)
+{
+  SetErrorCode(KO);
+
+  //Add a new Chamfer object
+  Handle(GEOM_Object) aChamfer = GetEngine()->AddObject(GetDocID(), GEOM_CHAMFER);
+
+  //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; }
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_ChamferDriver::GetID())
+       { return NULL; cout << "Chamfer Driver is NULL!!!" << endl; }
+
+  GEOMImpl_IChamfer aCI (aFunction);
+
+  Handle(GEOM_Function) aRefShape = theShape->GetLastFunction();
+  if (aRefShape.IsNull()) { return NULL; cout << "Shape is NULL!!!" << endl; }
+
+  aCI.SetShape(aRefShape);
+  aCI.SetD(theD);
+  aCI.SetAngle(theAngle);
+  int aLen = theEdges.size();
+  aCI.SetLength(aLen);
+
+  int ind = 1;
+  list<int>::iterator it = theEdges.begin();
+  for (; it != theEdges.end(); it++, ind++) {
+    aCI.SetEdge(ind, (*it));
+  }
+
+  //Compute the Chamfer value
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    if (!GetSolver()->ComputeFunction(aFunction)) {
+      SetErrorCode("Chamfer 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 << aChamfer << " = geompy.MakeChamferEdgesAD(" << theShape
+    << ", " << theD << ", " << theAngle << ", [";
+
+  it = theEdges.begin();
+  pd << (*it++);
+  while (it != theEdges.end()) {
+    pd << ", " << (*it++);
+  }
+  pd << "])";
+
+  SetErrorCode(OK);
+  return aChamfer;
+}
+
 //=============================================================================
 /*!
  *  Archimede
index a079bc569f8ecf59dcd9f11cc1d3db4f9f406523..479d1dc8b8180fb2325959382911e8d1b3e7aff6 100644 (file)
@@ -37,17 +37,34 @@ 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<int> theEdges);
+  Standard_EXPORT Handle(GEOM_Object) MakeFilletEdgesR1R2 (Handle(GEOM_Object) theShape,
+                                                           double theR1, double theR2,
+                                                           list<int> theEdges);
   Standard_EXPORT Handle(GEOM_Object) MakeFilletFaces (Handle(GEOM_Object) theShape, double theR,
                                        list<int> theFaces);
+  Standard_EXPORT Handle(GEOM_Object) MakeFilletFacesR1R2 (Handle(GEOM_Object) theShape,
+                                                           double theR1, double theR2,
+                                                           list<int> theFaces);
 
   Standard_EXPORT Handle(GEOM_Object) MakeChamferAll   (Handle(GEOM_Object) theShape, double theD);
   Standard_EXPORT Handle(GEOM_Object) MakeChamferEdge  (Handle(GEOM_Object) theShape,
                                         double theD1, double theD2,
                                         int theFace1, int theFace2);
+  Standard_EXPORT Handle(GEOM_Object) MakeChamferEdgeAD  (Handle(GEOM_Object) theShape,
+                                        double theD, double theAngle,
+                                        int theFace1, int theFace2);
   Standard_EXPORT Handle(GEOM_Object) MakeChamferFaces (Handle(GEOM_Object) theShape,
                                         double theD1, double theD2,
                                         list<int> theFaces);
-
+  Standard_EXPORT Handle(GEOM_Object) MakeChamferFacesAD (Handle(GEOM_Object) theShape,
+                                        double theD, double theAngle,
+                                        list<int> theFaces);
+  Standard_EXPORT Handle(GEOM_Object) MakeChamferEdges (Handle(GEOM_Object) theShape,
+                                        double theD1, double theD2,
+                                        list<int> theEdges);
+  Standard_EXPORT Handle(GEOM_Object) MakeChamferEdgesAD (Handle(GEOM_Object) theShape,
+                                        double theD, double theAngle,
+                                        list<int> theEdges);
   Standard_EXPORT Handle(GEOM_Object) MakeArchimede (Handle(GEOM_Object) theShape,
                                      double theWeight, double theWaterDensity,
                                      double theMeshingDeflection);
index 80915550b6c19724489ad2eaa5f31a697b7f2f9a..db615f1f309e4100cbdb2ece9fee860f1eea779d 100644 (file)
 
 #include "GEOM_Function.hxx"
 
-#define MEASURE_ARG_BASE 1
+//#define MEASURE_ARG_BASE  1
+//#define MEASURE_ARG_POINT 2
 
 class GEOMImpl_IMeasure
 {
+  enum {
+    MEASURE_ARG_BASE  = 1,
+    MEASURE_ARG_POINT = 2
+  };
  public:
 
   GEOMImpl_IMeasure(Handle(GEOM_Function) theFunction): _func(theFunction) {}
@@ -35,6 +40,11 @@ class GEOMImpl_IMeasure
 
   Handle(GEOM_Function) GetBase() { return _func->GetReference(MEASURE_ARG_BASE); }
 
+  void SetPoint(Handle(GEOM_Function) thePnt)
+  { _func->SetReference(MEASURE_ARG_POINT, thePnt); }
+
+  Handle(GEOM_Function) GetPoint() { return _func->GetReference(MEASURE_ARG_POINT); }
+
  private:
 
   Handle(GEOM_Function) _func;
index f047467160e107866a003bf267f199f54cc151fa..67e26c014cc29827521856b05b77f591594396f0 100644 (file)
@@ -17,6 +17,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 #include <Standard_Stream.hxx>
 
 #include <GEOMImpl_IMeasureOperations.hxx>
 #include <Geom_BSplineSurface.hxx>
 #include <Geom_RectangularTrimmedSurface.hxx>
 #include <Geom_OffsetSurface.hxx>
+#include <Geom_Line.hxx>
 
 #include <gp_Pln.hxx>
+#include <gp_Lin.hxx>
 
 #include <Standard_Failure.hxx>
 #include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
 
 //=============================================================================
 /*!
- *   constructor:
+ *  Constructor
  */
 //=============================================================================
 GEOMImpl_IMeasureOperations::GEOMImpl_IMeasureOperations (GEOM_Engine* theEngine, int theDocID)
@@ -100,7 +103,7 @@ GEOMImpl_IMeasureOperations::GEOMImpl_IMeasureOperations (GEOM_Engine* theEngine
 
 //=============================================================================
 /*!
- *  destructor
+ *  Destructor
  */
 //=============================================================================
 GEOMImpl_IMeasureOperations::~GEOMImpl_IMeasureOperations()
@@ -875,6 +878,70 @@ Handle(GEOM_Object) GEOMImpl_IMeasureOperations::GetCentreOfMass
   return aCDG;
 }
 
+//=============================================================================
+/*!
+ *  GetNormal
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_IMeasureOperations::GetNormal
+                                         (Handle(GEOM_Object) theFace,
+                                          Handle(GEOM_Object) theOptionalPoint)
+{
+  SetErrorCode(KO);
+
+  if (theFace.IsNull()) return NULL;
+
+  //Add a new Normale object
+  Handle(GEOM_Object) aNorm = GetEngine()->AddObject(GetDocID(), GEOM_VECTOR);
+
+  //Add a new Normale function
+  Handle(GEOM_Function) aFunction =
+    aNorm->AddFunction(GEOMImpl_MeasureDriver::GetID(), VECTOR_FACE_NORMALE);
+  if (aFunction.IsNull()) return NULL;
+
+  //Check if the function is set correctly
+  if (aFunction->GetDriverGUID() != GEOMImpl_MeasureDriver::GetID()) return NULL;
+
+  GEOMImpl_IMeasure aCI (aFunction);
+
+  Handle(GEOM_Function) aFace = theFace->GetLastFunction();
+  if (aFace.IsNull()) return NULL;
+
+  aCI.SetBase(aFace);
+
+  if (!theOptionalPoint.IsNull()) {
+    Handle(GEOM_Function) anOptPnt = theOptionalPoint->GetLastFunction();
+    aCI.SetPoint(anOptPnt);
+  }
+
+  //Compute the Normale value
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    if (!GetSolver()->ComputeFunction(aFunction)) {
+      SetErrorCode("Measure driver failed to compute normake of face");
+      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 << aNorm << " = geompy.GetNormal(" << theFace;
+  if (!theOptionalPoint.IsNull()) {
+    pd << ", " << theOptionalPoint;
+  }
+  pd << ")";
+
+  SetErrorCode(OK);
+  return aNorm;
+}
+
 //=============================================================================
 /*!
  *  GetBasicProperties
@@ -1291,23 +1358,24 @@ Standard_Real GEOMImpl_IMeasureOperations::GetMinDistance
 }
 
 //=======================================================================
-//function : PointCoordinates
-//purpose  : Get coordinates of point
+/*!
+ *  Get coordinates of point
+ */
 //=======================================================================
-void GEOMImpl_IMeasureOperations::PointCoordinatesHandle(GEOM_Object) theShape,
-                        Standard_Real& theX, Standard_Real& theY, Standard_Real& theZ )
+void GEOMImpl_IMeasureOperations::PointCoordinates (Handle(GEOM_Object) theShape,
+                        Standard_Real& theX, Standard_Real& theY, Standard_Real& theZ)
 {
-  SetErrorCode( KO );
+  SetErrorCode(KO);
 
-  if ( theShape.IsNull() )
+  if (theShape.IsNull())
     return;
 
   Handle(GEOM_Function) aRefShape = theShape->GetLastFunction();
-  if ( aRefShape.IsNull() )
+  if (aRefShape.IsNull())
     return;
 
   TopoDS_Shape aShape = aRefShape->GetValue();
-  if ( aShape.IsNull() || aShape.ShapeType() != TopAbs_VERTEX )
+  if (aShape.IsNull() || aShape.ShapeType() != TopAbs_VERTEX)
   {
     SetErrorCode( "Shape must be a vertex" );
     return;
@@ -1321,15 +1389,84 @@ void GEOMImpl_IMeasureOperations::PointCoordinates( Handle(GEOM_Object) theShape
     theX = aPnt.X();
     theY = aPnt.Y();
     theZ = aPnt.Z();
-    SetErrorCode( OK );
+
+    SetErrorCode(OK);
   }
-  catch ( Standard_Failure )
+  catch (Standard_Failure)
   {
     Handle(Standard_Failure) aFail = Standard_Failure::Caught();
     SetErrorCode( aFail->GetMessageString() );
   }
 }
 
+//=======================================================================
+/*!
+ *  Compute angle (in degrees) between two lines
+ */
+//=======================================================================
+Standard_Real GEOMImpl_IMeasureOperations::GetAngle (Handle(GEOM_Object) theLine1,
+                                                     Handle(GEOM_Object) theLine2)
+{
+  SetErrorCode(KO);
+
+  Standard_Real anAngle = -1.0;
+
+  if (theLine1.IsNull() || theLine2.IsNull())
+    return anAngle;
+
+  Handle(GEOM_Function) aRefLine1 = theLine1->GetLastFunction();
+  Handle(GEOM_Function) aRefLine2 = theLine2->GetLastFunction();
+  if (aRefLine1.IsNull() || aRefLine2.IsNull())
+    return anAngle;
+
+  TopoDS_Shape aLine1 = aRefLine1->GetValue();
+  TopoDS_Shape aLine2 = aRefLine2->GetValue();
+  if (aLine1.IsNull() || aLine2.IsNull() ||
+      aLine1.ShapeType() != TopAbs_EDGE ||
+      aLine2.ShapeType() != TopAbs_EDGE)
+  {
+    SetErrorCode("Two edges must be given");
+    return anAngle;
+  }
+
+  try {
+#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100
+    OCC_CATCH_SIGNALS;
+#endif
+    TopoDS_Edge E1 = TopoDS::Edge(aLine1);
+    TopoDS_Edge E2 = TopoDS::Edge(aLine2);
+
+    double fp,lp;
+    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)) ||
+        !C2->IsKind(STANDARD_TYPE(Geom_Line)))
+    {
+      SetErrorCode("The edges must be linear");
+      return anAngle;
+    }
+
+    Handle(Geom_Line) L1 = Handle(Geom_Line)::DownCast(C1);
+    Handle(Geom_Line) L2 = Handle(Geom_Line)::DownCast(C2);
+
+    gp_Lin aLin1 = L1->Lin();
+    gp_Lin aLin2 = L2->Lin();
+
+    anAngle = aLin1.Angle(aLin2);
+    anAngle /= PI180; // convert radians into degrees
+
+    SetErrorCode(OK);
+  }
+  catch (Standard_Failure)
+  {
+    Handle(Standard_Failure) aFail = Standard_Failure::Caught();
+    SetErrorCode(aFail->GetMessageString());
+  }
+
+  return anAngle;
+}
+
 //=======================================================================
 //function : StructuralDump
 //purpose  : Structural (data exchange) style of output.
index b889d3872e171235cfe22ef91f8c205ded8bf0e3..24f6e52537e682ecdb602c6e918bd698cf505fb8 100644 (file)
@@ -90,6 +90,9 @@ class GEOMImpl_IMeasureOperations : public GEOM_IOperations {
 
   Standard_EXPORT Handle(GEOM_Object) GetCentreOfMass (Handle(GEOM_Object) theShape);
 
+  Standard_EXPORT Handle(GEOM_Object) GetNormal (Handle(GEOM_Object) theFace,
+                                                 Handle(GEOM_Object) theOptionalPoint);
+
   Standard_EXPORT void GetBasicProperties (Handle(GEOM_Object) theShape,
                                            Standard_Real& theLength,
                                            Standard_Real& theSurfArea,
@@ -122,8 +125,10 @@ class GEOMImpl_IMeasureOperations : public GEOM_IOperations {
                                                 Standard_Real& X1, Standard_Real& Y1, Standard_Real& Z1,
                                                 Standard_Real& X2, Standard_Real& Y2, Standard_Real& Z2);
 
-  Standard_EXPORT void PointCoordinates(Handle(GEOM_Object) theShape,
-                                        Standard_Real& theX, Standard_Real& theY, Standard_Real& theZ );
+  Standard_EXPORT void PointCoordinates (Handle(GEOM_Object) theShape,
+                                         Standard_Real& theX, Standard_Real& theY, Standard_Real& theZ);
+
+  Standard_EXPORT Standard_Real GetAngle (Handle(GEOM_Object) theLine1, Handle(GEOM_Object) theLine2);
 
  public:
   Standard_EXPORT static gp_Ax3 GetPosition (const TopoDS_Shape& theShape);
index 1141f0f0c5ae44fd46b817067dc03a39e10d24bb..bf1ff4d7c59e3629e81bfb076dbd91c0798095c2 100644 (file)
@@ -36,6 +36,8 @@
 #define PART_ARG_SHAPE 7
 #define PART_ARG_PLANE 8
 
+#define PART_ARG_KEEP_NONLIMIT_SHAPES 9
+
 class GEOMImpl_IPartition
 {
  public:
@@ -44,6 +46,9 @@ class GEOMImpl_IPartition
 
   void SetLimit(int theLimit) { _func->SetInteger(PART_ARG_LIMIT, theLimit); }
 
+  void SetKeepNonlimitShapes(int theKeepNonlimitShapes)
+  { _func->SetInteger(PART_ARG_KEEP_NONLIMIT_SHAPES,theKeepNonlimitShapes ); }
+
   void SetShapes(const Handle(TColStd_HSequenceOfTransient)& theShapes)
   { _func->SetReferenceList(PART_ARG_SHAPES, theShapes); }
 
@@ -62,6 +67,8 @@ class GEOMImpl_IPartition
 
   int GetLimit() { return _func->GetInteger(PART_ARG_LIMIT); }
 
+  int GetKeepNonlimitShapes() { return _func->GetInteger(PART_ARG_KEEP_NONLIMIT_SHAPES); }
+
   Handle(TColStd_HSequenceOfTransient) GetShapes()    { return _func->GetReferenceList(PART_ARG_SHAPES); }
   Handle(TColStd_HSequenceOfTransient) GetTools()     { return _func->GetReferenceList(PART_ARG_TOOLS); }
   Handle(TColStd_HSequenceOfTransient) GetKeepIns()   { return _func->GetReferenceList(PART_ARG_KEEP_IN); }
index 91dd9838389509af16aa807b8bbb889d86987d82..b796a51f5f2a9a58623a2b2d5459fd6f4e1bf635 100755 (executable)
@@ -30,6 +30,8 @@
 
 #define ARG_PARAM 5
 #define ARG_CURVE 6
+#define ARG_LINE1 7
+#define ARG_LINE2 8 
 
 class GEOMImpl_IPoint
 {
@@ -50,8 +52,12 @@ class GEOMImpl_IPoint
   Handle(GEOM_Function) GetRef() { return _func->GetReference(ARG_REF); }
 
   void SetCurve(Handle(GEOM_Function) theRef) { _func->SetReference(ARG_CURVE, 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) GetLine1() { return _func->GetReference(ARG_LINE1); }
+  Handle(GEOM_Function) GetLine2() { return _func->GetReference(ARG_LINE2); }
 
   void SetParameter(double theParam) { _func->SetReal(ARG_PARAM, theParam); }
 
index 28cae6290ac018fd7b04857d8a72e45ec136a934..4f09b784d91fdc481ba8c13eabf6f66bba81d48f 100644 (file)
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+// File      : GEOMImpl_IShapesOperations.cxx
+// Created   : 
+// Author    : modified by Lioka RAZAFINDRAZAKA (CEA) 22/06/2007
+// Project   : SALOME
+// $Header$
 
 #include <Standard_Stream.hxx>
 
 #include "GEOMImpl_Block6Explorer.hxx"
 
 #include "GEOM_Function.hxx"
+#include "GEOM_ISubShape.hxx"
 #include "GEOM_PythonDump.hxx"
 
 #include "GEOMAlgo_FinderShapeOn1.hxx"
 #include "GEOMAlgo_FinderShapeOnQuad.hxx"
 #include "GEOMAlgo_FinderShapeOn2.hxx"
 #include "GEOMAlgo_ClsfBox.hxx"
-//#include "GEOMAlgo_ClsfSurf.hxx"
 #include "GEOMAlgo_Gluer1.hxx"
 #include "GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx"
 #include "GEOMAlgo_CoupleOfShapes.hxx"
@@ -62,6 +67,7 @@
 #include <BRepExtrema_ExtCF.hxx>
 
 #include <BRep_Tool.hxx>
+#include <BRep_Builder.hxx>
 #include <BRepTools.hxx>
 #include <BRepGProp.hxx>
 #include <BRepAdaptor_Curve.hxx>
@@ -78,6 +84,7 @@
 #include <TopoDS_Face.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopoDS_Vertex.hxx>
+#include <TopoDS_Compound.hxx>
 #include <TopoDS_Iterator.hxx>
 #include <TopExp_Explorer.hxx>
 #include <TopLoc_Location.hxx>
 #include <Standard_Failure.hxx>
 #include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
 
+// Includes added for GetInPlace algorithm improvement
+
+#include <GEOMImpl_MeasureDriver.hxx>
+#include <GEOMImpl_IMeasure.hxx>
+#include <BRepBuilderAPI_MakeVertex.hxx>
+
+#include <BRepClass_FaceClassifier.hxx>
+#include <BRepClass3d_SolidClassifier.hxx>
+#include <Precision.hxx>
+
 //=============================================================================
 /*!
  *   constructor:
@@ -496,7 +513,8 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeShape
 //=============================================================================
 Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFaces
                                                 (Handle(GEOM_Object) theShape,
-                                                 const Standard_Real theTolerance)
+                                                 const Standard_Real theTolerance,
+                                                 const Standard_Boolean doKeepNonSolids)
 {
   SetErrorCode(KO);
 
@@ -520,6 +538,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFaces
 
   aCI.SetBase(aRefShape);
   aCI.SetTolerance(theTolerance);
+  aCI.SetKeepNonSolids(doKeepNonSolids);
 
   //Compute the sub-shape value
   Standard_Boolean isWarning = Standard_False;
@@ -635,7 +654,8 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::GetGlueFaces
 Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFacesByList
                                                 (Handle(GEOM_Object) theShape,
                                                  const Standard_Real theTolerance,
-                                                list<Handle(GEOM_Object)> theFaces)
+                                                list<Handle(GEOM_Object)> theFaces,
+                                                 const Standard_Boolean doKeepNonSolids)
 {
   SetErrorCode(KO);
 
@@ -659,6 +679,8 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFacesByList
 
   aCI.SetBase(aRefShape);
   aCI.SetTolerance(theTolerance);
+  aCI.SetKeepNonSolids(doKeepNonSolids);
+
   Handle(TColStd_HSequenceOfTransient) aFaces = new TColStd_HSequenceOfTransient;
   list<Handle(GEOM_Object)>::iterator it = theFaces.begin();
   for (; it != theFaces.end(); it++) {
@@ -732,9 +754,10 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::MakeExplode
   TopoDS_Shape aShape = theShape->GetValue();
   if (aShape.IsNull()) return NULL;
 
+  Handle(GEOM_Function) aMainShape = theShape->GetLastFunction();
+
   Handle(TColStd_HSequenceOfTransient) aSeq = new TColStd_HSequenceOfTransient;
   Handle(GEOM_Object) anObj;
-  Handle(GEOM_Function) aFunction;
   TopTools_MapOfShape mapShape;
   TopTools_ListOfShape listShape;
 
@@ -759,7 +782,8 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::MakeExplode
   }
 
   if (listShape.IsEmpty()) {
-    SetErrorCode("The given shape has no sub-shapes of the requested type");
+    //SetErrorCode("The given shape has no sub-shapes of the requested type");
+    SetErrorCode(NOT_FOUND_ANY); // NPAL18017
     return aSeq;
   }
 
@@ -770,13 +794,33 @@ 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) {
+  for (int index = 1; itSub.More(); itSub.Next(), ++index)
+  {
     TopoDS_Shape aValue = itSub.Value();
     anArray = new TColStd_HArray1OfInteger(1,1);
     anArray->SetValue(1, anIndices.FindIndex(aValue));
-    anObj = GetEngine()->AddSubShape(theShape, anArray);
+
+    //anObj = GetEngine()->AddSubShape(theShape, anArray);
+    {
+      anObj = GetEngine()->AddObject(GetDocID(), GEOM_SUBSHAPE);
+      Handle(GEOM_Function) aFunction = anObj->AddFunction(GEOM_Object::GetSubShapeID(), 1);
+      if (aFunction.IsNull()) return aSeq;
+
+      GEOM_ISubShape aSSI (aFunction);
+      aSSI.SetMainShape(aMainShape);
+      aSSI.SetIndices(anArray);
+
+      // Set function value directly, as we know it.
+      // Usage of Solver here would lead to significant loss of time,
+      // because GEOM_SubShapeDriver will build TopTools_IndexedMapOfShape
+      // on the main shape for each being calculated sub-shape separately.
+      aFunction->SetValue(aValue);
+    }
+
     if (!anObj.IsNull()) {
       aSeq->Append(anObj);
 
@@ -790,9 +834,7 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::MakeExplode
   //Make a Python command
   anAsciiList.Trunc(anAsciiList.Length() - 1);
 
-  aFunction = theShape->GetLastFunction();
-
-  GEOM::TPythonDump pd (aFunction, /*append=*/true);
+  GEOM::TPythonDump pd (aMainShape, /*append=*/true);
   pd << "[" << anAsciiList.ToCString();
   pd << "] = geompy.SubShapeAll" << (isSorted ? "Sorted(" : "(");
   pd << theShape << ", " << TopAbs_ShapeEnum(theShapeType) << ")";
@@ -804,7 +846,7 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::MakeExplode
 
 //=============================================================================
 /*!
- *  GetSubShapeAllIDs
+ *  SubShapeAllIDs
  */
 //=============================================================================
 Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::SubShapeAllIDs
@@ -843,7 +885,8 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::SubShapeAllIDs
   }
 
   if (listShape.IsEmpty()) {
-    SetErrorCode("The given shape has no sub-shapes of the requested type");
+    //SetErrorCode("The given shape has no sub-shapes of the requested type");
+    SetErrorCode(NOT_FOUND_ANY); // NPAL18017
     return aSeq;
   }
 
@@ -1420,6 +1463,12 @@ Handle(TColStd_HSequenceOfInteger)
   TopoDS_Shape aBox = theBox->GetValue();
   TopoDS_Shape aShape = theShape->GetValue();
 
+  // 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
@@ -1453,7 +1502,8 @@ Handle(TColStd_HSequenceOfInteger)
   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 a single sub-shape of the requested type found on the given surface");
+    SetErrorCode(NOT_FOUND_ANY); // NPAL18017
     return aSeqOfIDs;
   }
 
@@ -1581,8 +1631,10 @@ Handle(TColStd_HSequenceOfInteger)
   Handle(TColStd_HSequenceOfInteger) aSeqOfIDs;
 
   // Check presence of triangulation, build if need
-  if (!CheckTriangulation(theShape))
+  if (!CheckTriangulation(theShape)) {
+    SetErrorCode("Cannot build triangulation on the shape");
     return aSeqOfIDs;
+  }
 
   // Call algo
   GEOMAlgo_FinderShapeOn1 aFinder;
@@ -1625,7 +1677,8 @@ Handle(TColStd_HSequenceOfInteger)
   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 a single sub-shape of the requested type found on the given surface");
+    SetErrorCode(NOT_FOUND_ANY); // NPAL18017
     return aSeqOfIDs;
   }
 
@@ -2201,8 +2254,10 @@ Handle(TColStd_HSequenceOfInteger)
   Handle(TColStd_HSequenceOfInteger) aSeqOfIDs;
 
   // Check presence of triangulation, build if need
-  if (!CheckTriangulation(aShape))
+  if (!CheckTriangulation(aShape)) {
+    SetErrorCode("Cannot build triangulation on the shape");
     return aSeqOfIDs;
+  }
 
   // Call algo
   gp_Pnt aPntTL = BRep_Tool::Pnt(TopoDS::Vertex(aTL));
@@ -2250,7 +2305,8 @@ Handle(TColStd_HSequenceOfInteger)
   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 a single sub-shape of the requested type found on the given surface");
+    SetErrorCode(NOT_FOUND_ANY); // NPAL18017
     return aSeqOfIDs;
   }
 
@@ -2392,7 +2448,7 @@ Handle(TColStd_HSequenceOfInteger)
 
 //=============================================================================
 /*!
- *  GetInPlace
+ *  GetInPlaceOfShape
  */
 //=============================================================================
 static bool GetInPlaceOfShape (const Handle(GEOM_Function)& theWhereFunction,
@@ -2514,7 +2570,182 @@ static bool GetInPlaceOfShape (const Handle(GEOM_Function)& theWhereFunction,
   return isFound;
 }
 
-Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetInPlace
+//=============================================================================
+/*!
+ *  GetShapeProperties
+ */
+//=============================================================================
+
+void GEOMImpl_IShapesOperations::GetShapeProperties( const TopoDS_Shape aShape, Standard_Real tab[],
+                                                     gp_Pnt & aVertex )
+{
+  GProp_GProps SProps, VProps;
+  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();
+  }
+
+  aPntShape = BRepBuilderAPI_MakeVertex(aCenterMass).Shape();
+  aVertex   = BRep_Tool::Pnt( TopoDS::Vertex( aPntShape ) );
+  tab[0] = aVertex.X();
+  tab[1] = aVertex.Y();
+  tab[2] = aVertex.Z();
+  tab[3] = aShapeSize;
+  return;
+}
+
+//=============================================================================
+/*!
+ *  GetInPlace
+ */
+//=============================================================================
+Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetInPlace (Handle(GEOM_Object) theShapeWhere,
+                                                            Handle(GEOM_Object) theShapeWhat)
+{
+  SetErrorCode(KO);
+
+  if (theShapeWhere.IsNull() || theShapeWhat.IsNull()) return NULL;
+
+  TopoDS_Shape aWhere = theShapeWhere->GetValue();
+  TopoDS_Shape aWhat  = theShapeWhat->GetValue();
+
+  if (aWhere.IsNull() || aWhat.IsNull()) {
+    SetErrorCode("Error: aWhere and aWhat TopoDS_Shape are Null.");
+    return NULL;
+  }
+
+  Handle(GEOM_Function) aWhereFunction = theShapeWhere->GetLastFunction();
+  if (aWhereFunction.IsNull()) {
+    SetErrorCode("Error: aWhereFunction is Null.");
+    return NULL;
+  }
+
+  TopTools_IndexedMapOfShape aWhereIndices;
+  TopExp::MapShapes(aWhere, aWhereIndices);
+
+  TColStd_ListOfInteger aModifiedList;
+  Standard_Integer aWhereIndex;
+  Handle(TColStd_HArray1OfInteger) aModifiedArray;
+  Handle(GEOM_Object) aResult;
+
+  bool isFound = false;
+  Standard_Integer iType = 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;
+  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;
+  }
+  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
+  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();
+  }
+
+  // Compute tolerances
+  Tol_1D = dl_l * min_l;
+  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) );
+
+  Tol_Mass = Tol_3D;
+  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);
+    aWhat_Mass += aProps.Mass();
+  }
+
+  // Finding the Sub-ShapeWhere
+  for ( Exp_aWhere.ReInit(); Exp_aWhere.More(); Exp_aWhere.Next() ) {
+    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;
+      }
+      if ( isFound ) {
+        aWhereIndex = aWhereIndices.FindIndex(Exp_aWhere.Current());
+        aModifiedList.Append(aWhereIndex);
+        aWhere_Mass += tab_aWhere[3];
+        isFound = false;
+        break;
+      }
+    }
+    if ( fabs( aWhat_Mass - aWhere_Mass ) <= Tol_Mass ) break;
+  }
+
+  aModifiedArray = new TColStd_HArray1OfInteger (1, aModifiedList.Extent());
+  TColStd_ListIteratorOfListOfInteger anIterModif (aModifiedList);
+  for (Standard_Integer imod = 1; anIterModif.More(); anIterModif.Next(), imod++)
+    aModifiedArray->SetValue(imod, anIterModif.Value());
+
+  //Add a new object
+  aResult = GetEngine()->AddSubShape(theShapeWhere, aModifiedArray);
+  if (aResult.IsNull()) {
+    SetErrorCode("Error in algorithm: result found, but cannot be returned.");
+    return NULL;
+  }
+
+  if (aModifiedArray->Length() > 1) {
+    //Set a GROUP type
+    aResult->SetType(GEOM_GROUP);
+
+    //Set a sub shape type
+    TopoDS_Shape aFirstFound = aWhereIndices.FindKey(aModifiedArray->Value(1));
+    TopAbs_ShapeEnum aShapeType = aFirstFound.ShapeType();
+
+    TDF_Label aFreeLabel = aResult->GetFreeLabel();
+    TDataStd_Integer::Set(aFreeLabel, (Standard_Integer)aShapeType);
+  }
+
+  //Make a Python command
+  Handle(GEOM_Function) aFunction = aResult->GetFunction(1);
+
+  GEOM::TPythonDump(aFunction) << aResult << " = geompy.GetInPlace("
+    << theShapeWhere << ", " << theShapeWhat << ")";
+
+  SetErrorCode(OK);
+  return aResult;
+}
+
+//=======================================================================
+//function : GetInPlaceByHistory
+//purpose  :
+//=======================================================================
+Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetInPlaceByHistory
                                           (Handle(GEOM_Object) theShapeWhere,
                                            Handle(GEOM_Object) theShapeWhat)
 {
@@ -2615,25 +2846,60 @@ void GEOMImpl_IShapesOperations::SortShapes(TopTools_ListOfShape& SL)
     }
     MidXYZ.SetValue(Index,
                    GPoint.X()*999 + GPoint.Y()*99 + GPoint.Z()*0.9);
+    //cout << Index << " L: " << Length(Index) << "CG: " << MidXYZ(Index) << endl;
   }
 
   // Sorting
   Standard_Integer aTemp;
   Standard_Boolean exchange, Sort = Standard_True;
+  Standard_Real    tol = Precision::Confusion();
   while (Sort)
   {
     Sort = Standard_False;
     for (Index=1; Index < MaxShapes; Index++)
     {
-      if (MidXYZ(OrderInd(Index)) > MidXYZ(OrderInd(Index+1)))
+      Standard_Real dMidXYZ = MidXYZ(OrderInd(Index)) - MidXYZ(OrderInd(Index+1));
+      Standard_Real dLength = Length(OrderInd(Index)) - Length(OrderInd(Index+1));
+      if ( dMidXYZ >= tol ) {
+//         cout << "MidXYZ: " << MidXYZ(OrderInd(Index))<< " > " <<MidXYZ(OrderInd(Index+1))
+//              << " d: " << dMidXYZ << endl;
        exchange = Standard_True;
-      else if (MidXYZ(OrderInd(Index)) == MidXYZ(OrderInd(Index+1)) &&
-              Length(OrderInd(Index)) >  Length(OrderInd(Index+1)) )
+      }
+      else if ( Abs(dMidXYZ) < tol && dLength >= tol ) {
+//         cout << "Length: " << Length(OrderInd(Index))<< " > " <<Length(OrderInd(Index+1))
+//              << " d: " << dLength << endl;
        exchange = Standard_True;
-      else
+      }
+      else if ( Abs(dMidXYZ) < tol && Abs(dLength) < tol &&
+                aShapes(OrderInd(Index)).ShapeType() <= TopAbs_FACE) {
+        // PAL17233
+        // equal values possible on shapes such as two halves of a sphere and
+        // a membrane inside the sphere
+        Bnd_Box box1,box2;
+        BRepBndLib::Add( aShapes( OrderInd(Index) ), box1 );
+        if ( box1.IsVoid() ) continue;
+        BRepBndLib::Add( aShapes( OrderInd(Index+1) ), box2 );
+        Standard_Real dSquareExtent = box1.SquareExtent() - box2.SquareExtent();
+        if ( dSquareExtent >= tol ) {
+//           cout << "SquareExtent: " << box1.SquareExtent()<<" > "<<box2.SquareExtent() << endl;
+          exchange = Standard_True;
+        }
+        else if ( Abs(dSquareExtent) < tol ) {
+          Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax, val1, val2;
+          box1.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
+          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 << endl;
+        }
+      }
+      else {
        exchange = Standard_False;
+      }
       if (exchange)
       {
+//         cout << "exchange " << Index << " & " << Index+1 << endl;
         aTemp = OrderInd(Index);
         OrderInd(Index) = OrderInd(Index+1);
         OrderInd(Index+1) = aTemp;
@@ -2641,26 +2907,70 @@ void GEOMImpl_IShapesOperations::SortShapes(TopTools_ListOfShape& SL)
       }
     }
   }
+    
   for (Index=1; Index <= MaxShapes; Index++)
     SL.Append( aShapes( OrderInd(Index) ));
 }
 
+//=======================================================================
+//function : CompsolidToCompound
+//purpose  :
+//=======================================================================
+TopoDS_Shape GEOMImpl_IShapesOperations::CompsolidToCompound (const TopoDS_Shape& theCompsolid)
+{
+  if (theCompsolid.ShapeType() != TopAbs_COMPSOLID) {
+    return theCompsolid;
+  }
+
+  TopoDS_Compound aCompound;
+  BRep_Builder B;
+  B.MakeCompound(aCompound);
+
+  TopTools_MapOfShape mapShape;
+  TopoDS_Iterator It (theCompsolid, Standard_True, Standard_True);
+
+  for (; It.More(); It.Next()) {
+    TopoDS_Shape aShape_i = It.Value();
+    if (mapShape.Add(aShape_i)) {
+      B.Add(aCompound, aShape_i);
+    }
+  }
+
+  return aCompound;
+}
+
 //=======================================================================
 //function : CheckTriangulation
 //purpose  :
 //=======================================================================
 bool GEOMImpl_IShapesOperations::CheckTriangulation (const TopoDS_Shape& aShape)
 {
+  bool isTriangulation = true;
+
   TopExp_Explorer exp (aShape, TopAbs_FACE);
-  if (!exp.More()) {
-    SetErrorCode("Shape without faces given");
-    return false;
+  if (exp.More())
+  {
+    TopLoc_Location aTopLoc;
+    Handle(Poly_Triangulation) aTRF;
+    aTRF = BRep_Tool::Triangulation(TopoDS::Face(exp.Current()), aTopLoc);
+    if (aTRF.IsNull()) {
+      isTriangulation = false;
+    }
+  }
+  else // no faces, try edges
+  {
+    TopExp_Explorer expe (aShape, TopAbs_EDGE);
+    if (!expe.More()) {
+      return false;
+    }
+    TopLoc_Location aLoc;
+    Handle(Poly_Polygon3D) aPE = BRep_Tool::Polygon3D(TopoDS::Edge(expe.Current()), aLoc);
+    if (aPE.IsNull()) {
+      isTriangulation = false;
+    }
   }
 
-  TopLoc_Location aTopLoc;
-  Handle(Poly_Triangulation) aTRF;
-  aTRF = BRep_Tool::Triangulation(TopoDS::Face(exp.Current()), aTopLoc);
-  if (aTRF.IsNull()) {
+  if (!isTriangulation) {
     // calculate deflection
     Standard_Real aDeviationCoefficient = 0.001;
 
@@ -2773,6 +3083,7 @@ static bool isSameFace(const TopoDS_Face& theFace1, const TopoDS_Face& theFace2)
     if(P.Z() > 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;
@@ -2780,6 +3091,33 @@ static bool isSameFace(const TopoDS_Face& theFace1, const TopoDS_Face& theFace2)
   if(gp_Pnt(xmaxB1, ymaxB1, zmaxB1).Distance(gp_Pnt(xmaxB2, ymaxB2, zmaxB2)) > MAX_TOLERANCE)
     return false;
 
+  Handle(Geom_Surface) S1 = BRep_Tool::Surface(theFace1);
+  Handle(Geom_Surface) S2 = BRep_Tool::Surface(theFace2);
+
+  //Check if there a coincidence of two surfaces at least in two points
+  double U11, U12, V11, V12, U21, U22, V21, V22;
+  BRepTools::UVBounds(theFace1, U11, U12, V11, V12);
+  BRepTools::UVBounds(theFace2, U21, U22, V21, V22);
+
+  double rangeU = U12-U11;
+  double rangeV = V12-V11;
+  double U = U11 + rangeU/3.0;
+  double V = V11 + rangeV/3.0;
+  gp_Pnt P1 = S1->Value(U, V);
+  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)
+    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)
+    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;
   TopTools_ListIteratorOfListOfShape LSI1(LS1);
@@ -2799,36 +3137,6 @@ static bool isSameFace(const TopoDS_Face& theFace1, const TopoDS_Face& theFace2)
     if(!isFound) return false;
   }
 
-  Handle(Geom_Surface) S1 = BRep_Tool::Surface(theFace1);
-  Handle(Geom_Surface) S2 = BRep_Tool::Surface(theFace2);
-  if(S1->DynamicType() == S2->DynamicType()) {
-    return true;
-  }
-  else {   //Check if there a coincidence of two surfaces at least in two points
-    double U11, U12, V11, V12, U21, U22, V21, V22;
-    BRepTools::UVBounds(theFace1, U11, U12, V11, V12);
-    BRepTools::UVBounds(theFace2, U21, U22, V21, V22);
-
-    double rangeU = U12-U11;
-    double rangeV = V12-V11;
-    double U = U11 + rangeU/3.0;
-    double V = V11 + rangeV/3.0;
-    gp_Pnt P1 = S1->Value(U, V);
-    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)
-      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)
-      return false;
-
-    if(P2.Distance(S2->Value(U, V)) > MAX_TOLERANCE) return false;
-  }
-
   return true;
 }
 
index 42d2ed991e3dde04f7e455508074fbb4b6def0f2..1e8cdc2c80a992099dbfac4be5e73e5cf41eae12 100644 (file)
 //
 // 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_
 
 #include <list>
 #include <Handle_Geom_Surface.hxx>
 
+#include <gp_Pnt.hxx>
+
 class GEOM_Engine;
 class Handle(GEOM_Object);
 class Handle(TColStd_HArray1OfInteger);
 
-class GEOMImpl_IShapesOperations : public GEOM_IOperations {
+class GEOMImpl_IShapesOperations : public GEOM_IOperations
+{
  public:
   Standard_EXPORT GEOMImpl_IShapesOperations(GEOM_Engine* theEngine, int theDocID);
   Standard_EXPORT ~GEOMImpl_IShapesOperations();
@@ -60,22 +70,24 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations {
   Standard_EXPORT Handle(GEOM_Object) MakeCompound (list<Handle(GEOM_Object)> theShapes);
 
   Standard_EXPORT Handle(GEOM_Object) MakeGlueFaces (Handle(GEOM_Object) theShape,
-                                                    const Standard_Real theTolerance);
+                                                    const Standard_Real theTolerance,
+                                                     const Standard_Boolean doKeepNonSolids);
 
   Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetGlueFaces (Handle(GEOM_Object) theShape,
                                                                     const Standard_Real theTolerance);
 
   Standard_EXPORT Handle(GEOM_Object) MakeGlueFacesByList (Handle(GEOM_Object) theShape,
                                                           const Standard_Real theTolerance,
-                                                          list<Handle(GEOM_Object)> theFaces);
+                                                          list<Handle(GEOM_Object)> theFaces,
+                                                           const Standard_Boolean doKeepNonSolids);
 
   Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakeExplode (Handle(GEOM_Object)    theShape,
-                                                    const Standard_Integer theShapeType,
-                                                    const Standard_Boolean isSorted);
+                                                                    const Standard_Integer theShapeType,
+                                                                    const Standard_Boolean isSorted);
 
   Standard_EXPORT Handle(TColStd_HSequenceOfInteger) SubShapeAllIDs (Handle(GEOM_Object)    theShape,
-                                                     const Standard_Integer theShapeType,
-                                                     const Standard_Boolean isSorted);
+                                                                     const Standard_Integer theShapeType,
+                                                                     const Standard_Boolean isSorted);
 
   Standard_EXPORT Handle(GEOM_Object) GetSubShape (Handle(GEOM_Object)    theMainShape,
                                                    const Standard_Integer theID);
@@ -112,22 +124,25 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations {
                                   const GEOMAlgo_State       theState);
 
 
-  Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetShapesOnCylinder (const Handle(GEOM_Object)& theShape,
-                                                            const Standard_Integer     theShapeType,
-                                                            const Handle(GEOM_Object)& theAxis,
-                                                            const Standard_Real        theRadius,
-                                                            const GEOMAlgo_State       theState);
+  Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
+    GetShapesOnCylinder (const Handle(GEOM_Object)& theShape,
+                         const Standard_Integer     theShapeType,
+                         const Handle(GEOM_Object)& theAxis,
+                         const Standard_Real        theRadius,
+                         const GEOMAlgo_State       theState);
 
-  Standard_EXPORT Handle(TColStd_HSequenceOfTransient) GetShapesOnSphere (const Handle(GEOM_Object)& theShape,
-                                                          const Standard_Integer     theShapeType,
-                                                          const Handle(GEOM_Object)& theCenter,
-                                                          const Standard_Real        theRadius,
-                                                          const GEOMAlgo_State       theState);
+  Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
+    GetShapesOnSphere (const Handle(GEOM_Object)& theShape,
+                       const Standard_Integer     theShapeType,
+                       const Handle(GEOM_Object)& theCenter,
+                       const Standard_Real        theRadius,
+                       const GEOMAlgo_State       theState);
 
-  Standard_EXPORT Handle(TColStd_HSequenceOfInteger) GetShapesOnPlaneIDs (const Handle(GEOM_Object)& theShape,
-                                                          const Standard_Integer     theShapeType,
-                                                          const Handle(GEOM_Object)& theAx1,
-                                                          const GEOMAlgo_State       theState);
+  Standard_EXPORT Handle(TColStd_HSequenceOfInteger)
+    GetShapesOnPlaneIDs (const Handle(GEOM_Object)& theShape,
+                         const Standard_Integer     theShapeType,
+                         const Handle(GEOM_Object)& theAx1,
+                         const GEOMAlgo_State       theState);
 
   Standard_EXPORT Handle(TColStd_HSequenceOfInteger)
     GetShapesOnPlaneWithLocationIDs (const Handle(GEOM_Object)& theShape,
@@ -136,17 +151,19 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations {
                                      const Handle(GEOM_Object)& thePnt,
                                      const GEOMAlgo_State       theState);
 
-  Standard_EXPORT Handle(TColStd_HSequenceOfInteger) GetShapesOnCylinderIDs (const Handle(GEOM_Object)& theShape,
-                                                             const Standard_Integer     theShapeType,
-                                                             const Handle(GEOM_Object)& theAxis,
-                                                             const Standard_Real        theRadius,
-                                                             const GEOMAlgo_State       theState);
+  Standard_EXPORT Handle(TColStd_HSequenceOfInteger)
+    GetShapesOnCylinderIDs (const Handle(GEOM_Object)& theShape,
+                            const Standard_Integer     theShapeType,
+                            const Handle(GEOM_Object)& theAxis,
+                            const Standard_Real        theRadius,
+                            const GEOMAlgo_State       theState);
 
-  Standard_EXPORT Handle(TColStd_HSequenceOfInteger) GetShapesOnSphereIDs (const Handle(GEOM_Object)& theShape,
-                                                           const Standard_Integer     theShapeType,
-                                                           const Handle(GEOM_Object)& theCenter,
-                                                           const Standard_Real        theRadius,
-                                                           const GEOMAlgo_State       theState);
+  Standard_EXPORT Handle(TColStd_HSequenceOfInteger)
+    GetShapesOnSphereIDs (const Handle(GEOM_Object)& theShape,
+                          const Standard_Integer     theShapeType,
+                          const Handle(GEOM_Object)& theCenter,
+                          const Standard_Real        theRadius,
+                          const GEOMAlgo_State       theState);
 
   /*!
    * \brief Find subshapes complying with given status about quadrangle
@@ -198,10 +215,13 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations {
                                             Handle(GEOM_Object)    theCenter,
                                             const Standard_Real    theRadius);
 
+  void GetShapeProperties(const TopoDS_Shape aShape, Standard_Real propertiesArray[], gp_Pnt & aPnt);
+
   Standard_EXPORT Handle(GEOM_Object) GetInPlace (Handle(GEOM_Object) theShapeWhere,
                                                   Handle(GEOM_Object) theShapeWhat);
 
-  Standard_EXPORT static void SortShapes (TopTools_ListOfShape& SL);
+  Standard_EXPORT Handle(GEOM_Object) GetInPlaceByHistory (Handle(GEOM_Object) theShapeWhere,
+                                                           Handle(GEOM_Object) theShapeWhat);
 
   /*!
    * \brief Searches a shape equal to theWhat in the context of theWhere
@@ -240,6 +260,30 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations {
                                                const Standard_Integer theShapeType,
                                                GEOMAlgo_State theState);
 
+ public:
+  /*!
+   * \brief Sort shapes in the list by their coordinates.
+   * \param SL The list of shapes to sort.
+   */
+  Standard_EXPORT static void SortShapes (TopTools_ListOfShape& SL);
+
+  /*!
+   * \brief Convert TopoDS_COMPSOLID to TopoDS_COMPOUND.
+   *
+   * If the argument shape is not of type TopoDS_COMPSOLID, this method returns it as is.
+   *
+   * \param theCompsolid The compsolid to be converted.
+   * \retval TopoDS_Shape Returns the resulting compound.
+   */
+  Standard_EXPORT static TopoDS_Shape CompsolidToCompound (const TopoDS_Shape& theCompsolid);
+
+  /*!
+   * \brief Build a triangulation on \a theShape if it is absent.
+   * \param theShape The shape to check/build triangulation on.
+   * \retval bool Returns false if the shape has no faces, i.e. impossible to build triangulation.
+   */
+  Standard_EXPORT static bool CheckTriangulation (const TopoDS_Shape& theShape);
+
  private:
   Handle(GEOM_Object) MakeShape (list<Handle(GEOM_Object)>      theShapes,
                                  const Standard_Integer         theObjectType,
@@ -247,11 +291,9 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations {
                                  const TCollection_AsciiString& theMethodName);
 
 // ----------------------------------------------------
-  // methods common for all GetShapesOnXXX() functions
+// methods common for all GetShapesOnXXX() functions
 // ----------------------------------------------------
 
-  bool CheckTriangulation (const TopoDS_Shape& aShape);
-
   /*!
    * \brief Checks if theShapeType parameter of GetShapesOnXXX() is OK
     * \param theShapeType - the shape type to check
index 90b01ace0589cc50fd70a2317365b0202d37bad0..3249a485e69142bcbe322576659cb9eb685e243f 100644 (file)
 
 #include <TopoDS_Shape.hxx>
 
-#include <Standard_ConstructionError.hxx>
+#include <Standard_Failure.hxx>
 #include <StdFail_NotDone.hxx>
 
-#include <NCollection_DataMap.hxx>
-
 #ifdef WNT
 #include <windows.h>
 #else
@@ -94,20 +92,25 @@ Standard_Integer GEOMImpl_ImportDriver::Execute(TFunction_Logbook& log) const
   if (aFileName.IsEmpty() || aFormatName.IsEmpty() || aLibName.IsEmpty())
     return 0;
 
-  // load plugin library  
+  // load plugin library
   LibHandle anImportLib = LoadLib( aLibName.ToCString() ); //This is workaround of BUG OCC13051
   funcPoint fp = 0;
   if ( anImportLib )
     fp = (funcPoint)GetProc( anImportLib, "Import" );
 
-  if ( !fp )
-    return 0;
+  if ( !fp ) {
+    TCollection_AsciiString aMsg = aFormatName;
+    aMsg += " plugin was not installed";
+    Standard_Failure::Raise(aMsg.ToCString());
+  }
 
   // perform the import
   TCollection_AsciiString anError;
   TopoDS_Shape aShape = fp( aFileName, aFormatName, anError );
 
-  // unload plugin library  
+  // unload plugin library
+  // commented by enk:
+  // the bug was occured: using ACIS Import/Export plugin
   //UnLoadLib( anImportLib ); //This is workaround of BUG OCC13051
 
   if ( aShape.IsNull() ) {
index a7bf8d433b86970c5addbe27a797b562c6801b8c..4f7b9263c7ba1f0464bea707051609fa0d389fbc 100644 (file)
 
 #include <BRep_Tool.hxx>
 #include <BRepBuilderAPI_MakeEdge.hxx>
-
+#include <BRepAlgoAPI_Section.hxx>
 #include <TopAbs.hxx>
 #include <TopExp.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopoDS_Shape.hxx>
 #include <TopoDS_Vertex.hxx>
+#include <TopExp_Explorer.hxx>
+#include <TopTools_MapOfShape.hxx>
 
 #include <gp_Pnt.hxx>
 #include <Precision.hxx>
@@ -92,6 +94,40 @@ Standard_Integer GEOMImpl_LineDriver::Execute(TFunction_Logbook& log) const
     }
     aShape = BRepBuilderAPI_MakeEdge(P1, P2).Shape();
 
+  } else if (aType == LINE_TWO_FACES) {
+    Handle(GEOM_Function) aRefFace1 = aPI.GetFace1();
+    Handle(GEOM_Function) aRefFace2 = aPI.GetFace2();
+    TopoDS_Shape aShape1 = aRefFace1->GetValue();
+    TopoDS_Shape aShape2 = aRefFace2->GetValue();
+    if (aShape1.ShapeType() != TopAbs_FACE ||
+        aShape2.ShapeType() != TopAbs_FACE) {
+      Standard_ConstructionError::Raise("Wrong arguments: two faces must be given");
+    }
+    if (aShape1.IsSame(aShape2)) {
+      Standard_ConstructionError::Raise("The end faces must be different");
+    }
+    BRepAlgoAPI_Section E (aShape1, aShape2, Standard_False);
+    E.Approximation(Standard_True);
+    E.Build();
+    if (!E.IsDone()) {
+      Standard_ConstructionError::Raise("Line can not be performed on the given faces");
+    }
+    else
+    {
+       TopExp_Explorer Exp (E, TopAbs_EDGE);
+       if ( Exp.More() ){
+           aShape = Exp.Current();
+           Exp.Next();
+       }
+       else
+         {
+           Standard_ConstructionError::Raise("Faces not have intersection line");
+           aShape = E.Shape();
+         }
+       if ( Exp.More() )
+         aShape = E.Shape();
+    }
+
   } else if (aType == LINE_PNT_DIR) {
     Handle(GEOM_Function) aRefPnt = aPI.GetPoint1();
     Handle(GEOM_Function) aRefDir = aPI.GetPoint2();
index 52fdd93ceb5ccd9f49f192209272c2a8b377993b..69ffeabd874f4aa2a154569c45a43785ba6ed031 100644 (file)
 #include <BRep_Tool.hxx>
 #include <BRepGProp.hxx>
 #include <BRepBuilderAPI_MakeVertex.hxx>
+#include <BRepBuilderAPI_MakeEdge.hxx>
 
 #include <TopAbs.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Shape.hxx>
 
 #include <GProp_GProps.hxx>
+#include <GeomLProp_SLProps.hxx>
+#include <Geom_Surface.hxx>
+
+#include <Bnd_Box.hxx>
+#include <BRepBndLib.hxx>
+#include <BRepAdaptor_Surface.hxx>
+#include <ShapeAnalysis_Surface.hxx>
 
 #include <gp_Pnt.hxx>
 #include <Precision.hxx>
@@ -73,7 +81,8 @@ Standard_Integer GEOMImpl_MeasureDriver::Execute(TFunction_Logbook& log) const
 
   TopoDS_Shape aShape;
 
-  if (aType == CDG_MEASURE) {
+  if (aType == CDG_MEASURE)
+  {
     Handle(GEOM_Function) aRefBase = aCI.GetBase();
     TopoDS_Shape aShapeBase = aRefBase->GetValue();
     if (aShapeBase.IsNull()) {
@@ -97,8 +106,99 @@ Standard_Integer GEOMImpl_MeasureDriver::Execute(TFunction_Logbook& log) const
     }
 
     aShape = BRepBuilderAPI_MakeVertex(aCenterMass).Shape();
+  }
+  else if (aType == VECTOR_FACE_NORMALE)
+  {
+    // Face
+    Handle(GEOM_Function) aRefBase = aCI.GetBase();
+    TopoDS_Shape aShapeBase = aRefBase->GetValue();
+    if (aShapeBase.IsNull()) {
+      Standard_NullObject::Raise("Face for normale calculation is null");
+    }
+    if (aShapeBase.ShapeType() != TopAbs_FACE) {
+      Standard_NullObject::Raise("Shape for normale calculation is not a face");
+    }
+    TopoDS_Face aFace = TopoDS::Face(aShapeBase);
+
+    // Point
+    gp_Pnt p1 (0,0,0);
+
+    Handle(GEOM_Function) aPntFunc = aCI.GetPoint();
+    if (!aPntFunc.IsNull())
+    {
+      TopoDS_Shape anOptPnt = aPntFunc->GetValue();
+      if (anOptPnt.IsNull())
+        Standard_NullObject::Raise("Invalid shape given for point argument");
+      p1 = BRep_Tool::Pnt(TopoDS::Vertex(anOptPnt));
+    }
+    else
+    {
+      gp_Ax3 aPos = GEOMImpl_IMeasureOperations::GetPosition(aFace);
+      p1 = aPos.Location();
+    }
 
-  } else {
+    // Point parameters on surface
+    Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace);
+    Handle(ShapeAnalysis_Surface) aSurfAna = new ShapeAnalysis_Surface (aSurf);
+    gp_Pnt2d pUV = aSurfAna->ValueOfUV(p1, Precision::Confusion());
+
+    // Normal direction
+    gp_Vec Vec1,Vec2;
+    BRepAdaptor_Surface SF (aFace);
+    SF.D1(pUV.X(), pUV.Y(), p1, Vec1, Vec2);
+    gp_Vec V = Vec1.Crossed(Vec2);
+    Standard_Real mod = V.Magnitude();
+    if (mod < Precision::Confusion())
+      Standard_NullObject::Raise("Normal vector of a face has null magnitude");
+
+    // Set length of normal vector to average radius of curvature
+    Standard_Real radius = 0.0;
+    GeomLProp_SLProps aProperties (aSurf, pUV.X(), pUV.Y(), 2, Precision::Confusion());
+    if (aProperties.IsCurvatureDefined()) {
+      Standard_Real radius1 = Abs(aProperties.MinCurvature());
+      Standard_Real radius2 = Abs(aProperties.MaxCurvature());
+      if (Abs(radius1) > Precision::Confusion()) {
+       radius = 1.0 / radius1;
+        if (Abs(radius2) > Precision::Confusion()) {
+          radius = (radius + 1.0 / radius2) / 2.0;
+        }
+      }
+      else {
+        if (Abs(radius2) > Precision::Confusion()) {
+          radius = 1.0 / radius2;
+        }
+      }
+    }
+
+    // Set length of normal vector to average dimension of the face
+    // (only if average radius of curvature is not appropriate)
+    if (radius < Precision::Confusion()) {
+        Bnd_Box B;
+        Standard_Real Xmin, Xmax, Ymin, Ymax, Zmin, Zmax;
+        BRepBndLib::Add(aFace, B);
+        B.Get(Xmin, Ymin, Zmin, Xmax, Ymax, Zmax);
+        radius = ((Xmax - Xmin) + (Ymax - Ymin) + (Zmax - Zmin)) / 3.0;
+    }
+
+    if (radius < Precision::Confusion())
+      radius = 1.0;
+
+    V *= radius / mod;
+
+    // consider the face orientation
+    if (aFace.Orientation() == TopAbs_REVERSED ||
+        aFace.Orientation() == TopAbs_INTERNAL) {
+      V = - V;
+    }
+
+    // Edge
+    gp_Pnt p2 = p1.Translated(V);
+    BRepBuilderAPI_MakeEdge aBuilder (p1, p2);
+    if (!aBuilder.IsDone())
+      Standard_NullObject::Raise("Vector construction failed");
+    aShape = aBuilder.Shape();
+  }
+  else {
   }
 
   if (aShape.IsNull()) return 0;
@@ -107,7 +207,7 @@ Standard_Integer GEOMImpl_MeasureDriver::Execute(TFunction_Logbook& log) const
 
   log.SetTouched(Label()); 
 
-  return 1;    
+  return 1;
 }
 
 
index b079521e8d52b52f7152fb4e6882f403e8f0ae04..b681770981346109afa803f8a847d5c356b30871 100644 (file)
@@ -206,6 +206,7 @@ Standard_Integer GEOMImpl_PartitionDriver::Execute(TFunction_Logbook& log) const
       }
     }
 
+    PS.SetLimitMode(aCI.GetKeepNonlimitShapes());
     PS.SetLimit( (TopAbs_ShapeEnum)aCI.GetLimit() );
     PS.Perform();
 
index b14de152b39ee58f130d32391accd5b9c53510b9..df73fdb802de16c2b3c2e7b25336e2b404948d18 100644 (file)
@@ -1,18 +1,18 @@
 // Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-// 
+//
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either 
+// License as published by the Free Software Foundation; either
 // version 2.1 of the License.
-// 
-// This library is distributed in the hope that it will be useful 
-// but WITHOUT ANY WARRANTY; without even the implied warranty of 
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 // Lesser General Public License for more details.
 //
-// You should have received a copy of the GNU Lesser General Public  
-// License along with this library; if not, write to the Free Software 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
 // 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 <Standard_Stream.hxx>
 
 #include <GEOMImpl_PipeDriver.hxx>
+
+#include <GEOMImpl_IShapesOperations.hxx>
+#include <GEOMImpl_IPipeDiffSect.hxx>
+#include <GEOMImpl_IPipeShellSect.hxx>
 #include <GEOMImpl_IPipe.hxx>
 #include <GEOMImpl_Types.hxx>
 #include <GEOM_Function.hxx>
 
+#include <GEOMAlgo_GlueAnalyser.hxx>
+
+#include <ShapeAnalysis_FreeBounds.hxx>
+#include <ShapeAnalysis_Edge.hxx>
+#include <ShapeFix_Face.hxx>
+#include <ShapeFix_Shell.hxx>
+#include <ShapeFix_Shape.hxx>
+#include <ShapeFix_ShapeTolerance.hxx>
+
 #include <BRep_Tool.hxx>
+#include <BRep_Builder.hxx>
+#include <BRepBuilderAPI_MakeWire.hxx>
+#include <BRepBuilderAPI_Sewing.hxx>
 #include <BRepCheck_Analyzer.hxx>
 #include <BRepOffsetAPI_MakePipe.hxx>
-#include <BRepBuilderAPI_MakeWire.hxx>
+#include <BRepOffsetAPI_MakePipeShell.hxx>
+#include <GProp_GProps.hxx>
+#include <BRepGProp.hxx>
+#include <BRepBuilderAPI_MakeFace.hxx>
 
 #include <TopAbs.hxx>
+#include <TopExp.hxx>
+#include <TopExp_Explorer.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Wire.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopoDS_Solid.hxx>
 #include <TopoDS_Shell.hxx>
 #include <TopoDS_Face.hxx>
-#include <BRepOffsetAPI_MakePipeShell.hxx>
-#include <TColStd_HSequenceOfTransient.hxx>
-#include <GEOMImpl_IPipeDiffSect.hxx>
-#include <GEOMImpl_IPipeShellSect.hxx>
-
-#include <Standard_NullObject.hxx>
-#include <Standard_TypeMismatch.hxx>
-#include <Standard_ConstructionError.hxx>
-#include "utilities.h"
-#include <TopExp_Explorer.hxx>
-#include <TopTools_SequenceOfShape.hxx>
-#include <BRep_Builder.hxx>
 #include <TopoDS_Compound.hxx>
-#include <ShapeAnalysis_FreeBounds.hxx>
-#include <TColgp_SequenceOfPnt.hxx>
-#include <ShapeAnalysis_Edge.hxx>
+#include <TopTools_SequenceOfShape.hxx>
 #include <TopTools_IndexedDataMapOfShapeShape.hxx>
 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#include <TopExp.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
+
 #include <GeomAPI_ProjectPointOnCurve.hxx>
-#include <Precision.hxx>
+#include <GeomAPI_Interpolate.hxx>
 #include <Geom_TrimmedCurve.hxx>
-#include <BRepBuilderAPI_Sewing.hxx>
+#include <Geom_Plane.hxx>
+#include <Geom_RectangularTrimmedSurface.hxx>
+#include <Geom_BezierSurface.hxx>
+#include <Geom_Line.hxx>
+#include <Geom_Conic.hxx>
+#include <Geom_BSplineCurve.hxx>
+#include <Geom_BSplineSurface.hxx>
+#include <GeomFill_BSplineCurves.hxx>
+#include <GeomConvert_ApproxCurve.hxx>
+#include <GeomConvert.hxx>
 
-//#include <BRepTools.hxx>
+#include <TColgp_SequenceOfPnt.hxx>
+#include <TColgp_HArray1OfPnt.hxx>
+#include <TColgp_Array2OfPnt.hxx>
+#include <TColStd_HSequenceOfTransient.hxx>
+
+#include <Precision.hxx>
+#include <Standard_NullObject.hxx>
+#include <Standard_TypeMismatch.hxx>
+#include <Standard_ConstructionError.hxx>
+
+#include "utilities.h"
 
 
 //=======================================================================
@@ -100,6 +126,12 @@ static bool FillForOtherEdges(const TopoDS_Shape& F1,
   // creating map of vertex edges for both faces
   TopTools_IndexedDataMapOfShapeListOfShape aMapVertEdge1;
   TopExp::MapShapesAndAncestors(F1, TopAbs_VERTEX, TopAbs_EDGE, aMapVertEdge1);
+  if (!FF.Contains(F1))
+    MESSAGE("    FillForOtherEdges: map FF not contains key F1");
+  if (!FF.Contains(E1))
+    MESSAGE("    FillForOtherEdges: map FF not contains key E1");
+  if (!FF.Contains(V1))
+    MESSAGE("    FillForOtherEdges: map FF not contains key V1");
   const TopoDS_Shape& F2 = FF.FindFromKey(F1);
   const TopoDS_Shape& E2 = FF.FindFromKey(E1);
   const TopoDS_Shape& V2 = FF.FindFromKey(V1);
@@ -113,6 +145,8 @@ static bool FillForOtherEdges(const TopoDS_Shape& F1,
 
   ShapeAnalysis_Edge sae;
   while(1) {
+    if(!aMapVertEdge1.Contains(VS1))
+      cout<<"    FillForOtherEdges: map aMapVertEdge1 not contains key VS1"<<endl;
     const TopTools_ListOfShape& aList1 = aMapVertEdge1.FindFromKey(VS1);
     //TopoDS_Shape E1next;
     TopTools_ListIteratorOfListOfShape anIter1(aList1);
@@ -120,6 +154,8 @@ static bool FillForOtherEdges(const TopoDS_Shape& F1,
       anIter1.Next();
     }
     //E1next = anIter1.Value();
+    if(!aMapVertEdge2.Contains(VS2))
+      cout<<"    FillForOtherEdges: map aMapVertEdge2 not contains key VS2"<<endl;
     const TopTools_ListOfShape& aList2 = aMapVertEdge2.FindFromKey(VS2);
     //TopoDS_Shape E2next;
     TopTools_ListIteratorOfListOfShape anIter2(aList2);
@@ -286,6 +322,109 @@ static bool FillCorrespondingEdges(const TopoDS_Shape& FS1,
 }
 
 
+//=======================================================================
+//function : FillCorrespondingEdges
+//purpose  : auxilary for CreatePipeShellsWithoutPath()
+//=======================================================================
+static bool FillCorrespondingEdges(const TopoDS_Shape& FS1,
+                                  const TopoDS_Shape& FS2,
+                                  const TopoDS_Vertex& aLoc1,
+                                  const TopoDS_Vertex& aLoc2,
+                                  TopTools_IndexedDataMapOfShapeShape& FF)
+{
+  //cout<<"FillCorrespondingEdges"<<endl;
+
+  gp_Pnt P1 = BRep_Tool::Pnt(aLoc1);
+  gp_Pnt P2 = BRep_Tool::Pnt(aLoc2);
+  gp_Vec aDir(P1,P2);
+
+  ShapeAnalysis_Edge sae;
+  double tol = Max( BRep_Tool::Tolerance(TopoDS::Face(FS1)),
+                   BRep_Tool::Tolerance(TopoDS::Face(FS2)) );
+  TopTools_MapOfShape Vs1,Vs2;
+
+  TopoDS_Vertex V11=aLoc1, V12=aLoc2, V21, V22;
+  TopoDS_Edge E1,E2;
+
+  TopExp_Explorer exp1;
+  for( exp1.Init(FS1,TopAbs_EDGE); exp1.More(); exp1.Next() ) {
+    E1 = TopoDS::Edge(exp1.Current());
+    TopoDS_Vertex V1 = sae.FirstVertex(E1);
+    TopoDS_Vertex V2 = sae.LastVertex(E1);
+    gp_Pnt Ptmp1 = BRep_Tool::Pnt(V1);
+    gp_Pnt Ptmp2 = BRep_Tool::Pnt(V2);
+    //cout<<"P11("<<P11.X()<<","<<P11.Y()<<","<<P11.Z()<<")"<<endl;
+    //cout<<"P21("<<P21.X()<<","<<P21.Y()<<","<<P21.Z()<<")"<<endl;
+    if(P1.Distance(Ptmp1)<tol) {
+      V21 = V2;
+      break;
+    }
+    if(P1.Distance(Ptmp2)<tol) {
+      V21 = V1;
+      break;
+    }
+  }
+
+  TopoDS_Edge E21,E22;
+  TopoDS_Vertex VE21,VE22;
+  int nbe=0;
+  for( exp1.Init(FS2,TopAbs_EDGE); exp1.More() && nbe<2; exp1.Next() ) {
+    TopoDS_Edge E = TopoDS::Edge(exp1.Current());
+    TopoDS_Vertex V1 = sae.FirstVertex(E);
+    TopoDS_Vertex V2 = sae.LastVertex(E);
+    gp_Pnt Ptmp1 = BRep_Tool::Pnt(V1);
+    gp_Pnt Ptmp2 = BRep_Tool::Pnt(V2);
+    if(P2.Distance(Ptmp1)<tol) {
+      if(nbe==0) {
+       E21 = E;
+       VE21 = V2;
+       nbe++;
+      }
+      else if(nbe==1) {
+       E22 = E;
+       VE22 = V2;
+       nbe++;
+      }
+    }
+    if(P2.Distance(Ptmp2)<tol) {
+      if(nbe==0) {
+       E21 = E;
+       VE21 = V1;
+       nbe++;
+      }
+      else if(nbe==1) {
+       E22 = E;
+       VE22 = V1;
+       nbe++;
+      }
+    }
+  }
+
+  gp_Pnt PV21 = BRep_Tool::Pnt(V21);
+  gp_Pnt PE21 = BRep_Tool::Pnt(VE21);
+  gp_Pnt PE22 = BRep_Tool::Pnt(VE22);
+  gp_Vec aDir1(PV21,PE21);
+  gp_Vec aDir2(PV21,PE22);
+  double ang1 = aDir.Angle(aDir1);
+  double ang2 = aDir.Angle(aDir2);
+  if(fabs(ang1)<fabs(ang2)) {
+    E2 = E21;
+    V22 = VE21;
+  }
+  else {
+    E2 = E22;
+    V22 = VE22;
+  }
+
+  FF.Add(V11,V12);
+  FF.Add(V21,V22);
+  FF.Add(E1,E2);
+
+  // find other pairs for vertexes and edges
+  return FillForOtherEdges(FS1,E1,V21,FF);
+}
+
+
 //=======================================================================
 //function : FindNextPairOfFaces
 //purpose  : auxilary for CreatePipeForShellSections()
@@ -304,6 +443,8 @@ static void FindNextPairOfFaces(const TopoDS_Shape& aCurFace,
       if(aCI) delete aCI;
       Standard_ConstructionError::Raise("FindNextPairOfFaces: Can not find edge in map");
     }
+    if(!FF.Contains(E1))
+      cout<<"    FindNextPairOfFaces: map FF not contains key E1"<<endl;
     const TopoDS_Shape& E2 = FF.FindFromKey(E1);
     TopExp_Explorer anExpV;
     anExpV.Init( E1, TopAbs_VERTEX );
@@ -313,6 +454,8 @@ static void FindNextPairOfFaces(const TopoDS_Shape& aCurFace,
       Standard_ConstructionError::Raise("FindNextPairOfFaces: Can not find vertex in map");
     }
 
+    if(!aMapEdgeFaces1.Contains(E1))
+      cout<<"    FindNextPairOfFaces: map aMapEdgeFaces1 not contains key E1"<<endl;
     const TopTools_ListOfShape& aList1 = aMapEdgeFaces1.FindFromKey(E1);
     if(aList1.Extent()<2)
       continue;
@@ -324,7 +467,11 @@ static void FindNextPairOfFaces(const TopoDS_Shape& aCurFace,
     if(FF.Contains(F1other))
       continue;
 
+    if(!FF.Contains(aCurFace))
+      cout<<"    FindNextPairOfFaces: map FF not contains key aCurFace"<<endl;
     const TopoDS_Shape& F2 = FF.FindFromKey(aCurFace);
+    if(!aMapEdgeFaces2.Contains(E2))
+      cout<<"    FindNextPairOfFaces: map aMapEdgeFaces2 not contains key E2"<<endl;
     const TopTools_ListOfShape& aList2 = aMapEdgeFaces2.FindFromKey(E2);
     if(aList2.Extent()<2) {
       if(aCI) delete aCI;
@@ -345,11 +492,131 @@ static void FindNextPairOfFaces(const TopoDS_Shape& aCurFace,
     }
 
     FindNextPairOfFaces(F1other, aMapEdgeFaces1, aMapEdgeFaces2, FF, aCI);
-    
   }
 }
 
 
+//=======================================================================
+//function : FindFirstPairFaces
+//purpose  : auxilary for Execute()
+//=======================================================================
+static void FindFirstPairFaces(const TopoDS_Shape& S1, const TopoDS_Shape& S2,
+                              TopoDS_Vertex& V1, TopoDS_Vertex& V2,
+                              TopoDS_Shape& FS1, TopoDS_Shape& FS2)
+{
+  //cout<<"FindFirstPairFaces"<<endl;
+
+  // check if vertexes are subshapes of sections
+  gp_Pnt P1 = BRep_Tool::Pnt(V1);
+  gp_Pnt P2 = BRep_Tool::Pnt(V2);
+  TopoDS_Vertex V1new,V2new;
+  TopExp_Explorer exp;
+  double mindist = 1.e10;
+  for( exp.Init( S1, TopAbs_VERTEX ); exp.More(); exp.Next() ) {
+    TopoDS_Vertex V = TopoDS::Vertex(exp.Current());
+    gp_Pnt P = BRep_Tool::Pnt(V);
+    double dist = P1.Distance(P);
+    if(dist<mindist) {
+      mindist = dist;
+      V1new = V;
+    }
+  }
+  mindist = 1.e10;
+  for( exp.Init( S2, TopAbs_VERTEX ); exp.More(); exp.Next() ) {
+    TopoDS_Vertex V = TopoDS::Vertex(exp.Current());
+    gp_Pnt P = BRep_Tool::Pnt(V);
+    double dist = P2.Distance(P);
+    if(dist<mindist) {
+      mindist = dist;
+      V2new = V;
+    }
+  }
+
+  //gp_Pnt P1new = BRep_Tool::Pnt(V1new);
+  //gp_Pnt P2new = BRep_Tool::Pnt(V2new);
+  //cout<<"  P1("<<P1.X()<<","<<P1.Y()<<","<<P1.Z()<<")"<<endl;
+  //cout<<"  P2("<<P2.X()<<","<<P2.Y()<<","<<P2.Z()<<")"<<endl;
+  //cout<<"  P1new("<<P1new.X()<<","<<P1new.Y()<<","<<P1new.Z()<<")"<<endl;
+  //cout<<"  P2new("<<P2new.X()<<","<<P2new.Y()<<","<<P2new.Z()<<")"<<endl;
+
+  // replace vertexes if it is needed
+  if(!V1.IsSame(V1new)) {
+    V1 = V1new;
+    P1 = BRep_Tool::Pnt(V1);
+    cout<<"  replace V1"<<endl;
+  }
+  else
+    cout<<"  not replace V1"<<endl;
+  if(!V2.IsSame(V2new)) {
+    V2 = V2new;
+    P2 = BRep_Tool::Pnt(V2);
+    cout<<"  replace V2"<<endl;
+  }
+  else
+    cout<<"  not replace V2"<<endl;
+
+  TopTools_IndexedDataMapOfShapeListOfShape aMapVertFaces1;
+  TopExp::MapShapesAndAncestors(S1, TopAbs_VERTEX, TopAbs_FACE, aMapVertFaces1);
+  TopTools_IndexedDataMapOfShapeListOfShape aMapVertFaces2;
+  TopExp::MapShapesAndAncestors(S2, TopAbs_VERTEX, TopAbs_FACE, aMapVertFaces2);
+
+  if(!aMapVertFaces1.Contains(V1))
+    cout<<"    FindFirstPairFaces: map aMapVertFaces1 not contains key V1"<<endl;
+  const TopTools_ListOfShape& aList1 = aMapVertFaces1.FindFromKey(V1);
+  TopTools_ListIteratorOfListOfShape anIter1(aList1);
+  FS1 = anIter1.Value();
+  // find middle point
+  double x1=0., y1=0., z1=0.;
+  int nbv1=0;
+  for( exp.Init( FS1, TopAbs_VERTEX ); exp.More(); exp.Next() ) {
+    TopoDS_Vertex V = TopoDS::Vertex(exp.Current());
+    gp_Pnt P = BRep_Tool::Pnt(V);
+    x1 += P.X();
+    y1 += P.Y();
+    z1 += P.Z();
+    nbv1++;
+  }
+  gp_Pnt PM1(x1/nbv1, y1/nbv1, z1/nbv1);
+
+  TColgp_SequenceOfPnt Ps;
+  TopTools_SequenceOfShape Fs;
+  if(!aMapVertFaces2.Contains(V2))
+    cout<<"    FindFirstPairFaces: map aMapVertFaces2 not contains key V2"<<endl;
+  const TopTools_ListOfShape& aList2 = aMapVertFaces2.FindFromKey(V2);
+  TopTools_ListIteratorOfListOfShape anIter2(aList2);
+  for(; anIter2.More(); anIter2.Next()) {
+    TopoDS_Shape F = anIter2.Value();
+    double x2=0., y2=0., z2=0.;
+    int nbv2=0;
+    for( exp.Init( F, TopAbs_VERTEX ); exp.More(); exp.Next() ) {
+      TopoDS_Vertex V = TopoDS::Vertex(exp.Current());
+      gp_Pnt P = BRep_Tool::Pnt(V);
+      x2 += P.X();
+      y2 += P.Y();
+      z2 += P.Z();
+      nbv2++;
+    }
+    gp_Pnt PM(x2/nbv1, y2/nbv1, z2/nbv1);
+    Fs.Append(F);
+    Ps.Append(PM);
+  }
+
+  gp_Vec aDir(P1,P2);
+  int i=1;
+  double MinAng = PI;
+  int numface = 0;
+  for(; i<=Fs.Length(); i++) {
+    gp_Vec tmpDir(PM1,Ps(i));
+    double ang = fabs(aDir.Angle(tmpDir));
+    if(ang<MinAng) {
+      MinAng = ang;
+      numface = i;
+    }
+  }
+  FS2 = Fs(numface);
+}
+
+
 //=======================================================================
 //function : CreatePipeForShellSections
 //purpose  : auxilary for Execute()
@@ -369,10 +636,10 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
   Standard_Boolean aWithContact = (aCIDS->GetWithContactMode());
   Standard_Boolean aWithCorrect = (aCIDS->GetWithCorrectionMode());
 
-  Standard_Integer nbBases = aBasesObjs->Length(), 
+  Standard_Integer nbBases = aBasesObjs->Length(),
     nbSubBases = (aSubBasesObjs.IsNull() ? 0 :aSubBasesObjs->Length()),
     nbLocs = (aLocObjs.IsNull() ? 0 :aLocObjs->Length());
-    
+
   if( nbLocs != nbBases) {
     if(aCI) delete aCI;
     Standard_ConstructionError::Raise("Number of sections is not equal to number of locations ");
@@ -406,115 +673,157 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
     TopoDS_Vertex V = TopoDS::Vertex(VLocs.Value(i));
     PLocs.Append(BRep_Tool::Pnt(V));
   }
+
   TopTools_SequenceOfShape Edges;
   TopTools_SequenceOfShape Wires;
-  TopExp_Explorer anExp;
-  for ( anExp.Init( aWirePath, TopAbs_EDGE ); anExp.More(); anExp.Next() ) {
-    Edges.Append(anExp.Current());
-  }
   ShapeAnalysis_Edge sae;
-  TopoDS_Edge edge = TopoDS::Edge(Edges.First());
-  double tol = BRep_Tool::Tolerance(edge);
-  TopoDS_Vertex VF = sae.FirstVertex(edge);
-  gp_Pnt PF = BRep_Tool::Pnt(VF);
-  //cout<<"PF("<<PF.X()<<","<<PF.Y()<<","<<PF.Z()<<")"<<endl;
-  if( PF.Distance(PLocs.First()) > tol ) {
-    if(aCI) delete aCI;
-    Standard_ConstructionError::Raise
-      ("First location shapes is not coincided with first vertex of aWirePath");
-  }
-  edge = TopoDS::Edge(Edges.Last());
-  tol = BRep_Tool::Tolerance(edge);
-  TopoDS_Vertex VL = sae.LastVertex(edge);
-  gp_Pnt PL = BRep_Tool::Pnt(VL);
-  if( PL.Distance(PLocs.Last()) > tol ) {
-    if(aCI) delete aCI;
-    Standard_ConstructionError::Raise
-      ("Last location shapes is not coincided with last vertex of aWirePath");
-  }
-  int jcurr = 2;
-  TopTools_SequenceOfShape tmpEdges;
-  for(i=1; i<=Edges.Length() && jcurr<nbLocs; i++) {
-    TopoDS_Edge E = TopoDS::Edge(Edges.Value(i));
-    tol = BRep_Tool::Tolerance(edge);
-    TopoDS_Vertex V1 = sae.FirstVertex(E);
-    TopoDS_Vertex V2 = sae.LastVertex(E);
-    gp_Pnt P1 = BRep_Tool::Pnt(V1);
-    gp_Pnt P2 = BRep_Tool::Pnt(V2);
-    if( P2.Distance(PLocs.Value(jcurr)) < tol ) {
-      // make wire from current edge and add created
-      // wire to Wires
+
+  if(nbLocs==2) {
+    TopExp_Explorer anExp;
+    for ( anExp.Init( aWirePath, TopAbs_EDGE ); anExp.More(); anExp.Next() ) {
+      Edges.Append(anExp.Current());
+    }
+    Standard_Integer Num1 = 0;
+    Standard_Integer Num2 = 0;
+    for(i=1; i<=Edges.Length(); i++) {
+      TopoDS_Edge E = TopoDS::Edge(Edges.Value(i));
+      double tol = BRep_Tool::Tolerance(E);
+      TopoDS_Vertex V1 = sae.FirstVertex(E);
+      TopoDS_Vertex V2 = sae.LastVertex(E);
+      gp_Pnt P1 = BRep_Tool::Pnt(V1);
+      gp_Pnt P2 = BRep_Tool::Pnt(V2);
+      if( P1.Distance(PLocs.First()) < tol ) {
+       Num1 = i;
+      }
+      if( P2.Distance(PLocs.Last()) < tol ) {
+       Num2 = i;
+      }
+    }
+    if( Num1>0 && Num2>0 ) {
       TopoDS_Wire W;
       B.MakeWire(W);
-      for(j=1; j<=tmpEdges.Length(); j++)
-       B.Add(W,tmpEdges.Value(j));
-      B.Add(W,E);
+      for(i=Num1; i<=Num2; i++) {
+       B.Add(W,Edges.Value(i));
+      }
       Wires.Append(W);
-      jcurr++;
-      tmpEdges.Clear();
     }
     else {
-      // find distance between E and aLocs(icurr)
-      double fp,lp;
-      Handle(Geom_Curve) C = BRep_Tool::Curve(E,fp,lp);
-      GeomAPI_ProjectPointOnCurve PPC (PLocs.Value(jcurr),C);
-      if( PPC.NbPoints()>0 &&
-         PLocs.Value(jcurr).Distance(PPC.Point(1)) < tol ) {
-       double param = PPC.Parameter(1);
-       gp_Pnt PC1;
-       C->D0(param,PC1);
-       // split current edge
-       Handle(Geom_TrimmedCurve) tc1 = new Geom_TrimmedCurve(C,fp,param);
-       Handle(Geom_TrimmedCurve) tc2 = new Geom_TrimmedCurve(C,param,lp);
-       TopoDS_Edge E1,E2;
-       if(PC1.Distance(P1)<tol) {
-         B.MakeEdge(E1,tc1,tol);
-         B.Add(E1,V1);
-         TopoDS_Shape tmpV = VLocs.Value(jcurr).Oriented(TopAbs_REVERSED);
-         B.Add(E1,TopoDS::Vertex(tmpV));
-         tmpEdges.Append(E1);
-         B.MakeEdge(E2,tc2,tol);
-         tmpV = VLocs.Value(jcurr).Oriented(TopAbs_FORWARD);
-         B.Add(E2,TopoDS::Vertex(tmpV));
-         B.Add(E2,V2);
-       }
-       else {
-         B.MakeEdge(E1,tc2,tol);
-         TopoDS_Shape tmpV = VLocs.Value(jcurr).Oriented(TopAbs_FORWARD);
-         B.Add(E1,TopoDS::Vertex(tmpV));
-         B.Add(E1,V1);
-         E1.Reverse();
-         tmpEdges.Append(E1);
-         B.MakeEdge(E2,tc1,tol);
-         B.Add(E2,V2);
-         tmpV = VLocs.Value(jcurr).Oriented(TopAbs_REVERSED);
-         B.Add(E2,TopoDS::Vertex(tmpV));
-         E2.Reverse();
-       }
-       // create wire from tmpEdges
+      Wires.Append(aWirePath);
+    }
+  }
+  else {
+    TopExp_Explorer anExp;
+    for ( anExp.Init( aWirePath, TopAbs_EDGE ); anExp.More(); anExp.Next() ) {
+      Edges.Append(anExp.Current());
+    }
+    TopoDS_Edge edge = TopoDS::Edge(Edges.First());
+    double tol = BRep_Tool::Tolerance(edge);
+    TopoDS_Vertex VF = sae.FirstVertex(edge);
+    gp_Pnt PF = BRep_Tool::Pnt(VF);
+    //cout<<"PF("<<PF.X()<<","<<PF.Y()<<","<<PF.Z()<<")"<<endl;
+    if( PF.Distance(PLocs.First()) > tol ) {
+      if(aCI) delete aCI;
+      Standard_ConstructionError::Raise
+       ("First location shapes is not coincided with first vertex of aWirePath");
+    }
+    VLocs.ChangeValue(1) = VF;
+    edge = TopoDS::Edge(Edges.Last());
+    tol = BRep_Tool::Tolerance(edge);
+    TopoDS_Vertex VL = sae.LastVertex(edge);
+    gp_Pnt PL = BRep_Tool::Pnt(VL);
+    if( PL.Distance(PLocs.Last()) > tol ) {
+      if(aCI) delete aCI;
+      Standard_ConstructionError::Raise
+       ("Last location shapes is not coincided with last vertex of aWirePath");
+    }
+    VLocs.ChangeValue(nbLocs) = VL;
+    int jcurr = 2;
+    TopTools_SequenceOfShape tmpEdges;
+    for(i=1; i<=Edges.Length() && jcurr<nbLocs; i++) {
+      TopoDS_Edge E = TopoDS::Edge(Edges.Value(i));
+      tol = BRep_Tool::Tolerance(E);
+      TopoDS_Vertex V1 = sae.FirstVertex(E);
+      TopoDS_Vertex V2 = sae.LastVertex(E);
+      gp_Pnt P1 = BRep_Tool::Pnt(V1);
+      gp_Pnt P2 = BRep_Tool::Pnt(V2);
+      if( P2.Distance(PLocs.Value(jcurr)) < tol ) {
+       // make wire from current edge and add created
+       // wire to Wires
        TopoDS_Wire W;
        B.MakeWire(W);
        for(j=1; j<=tmpEdges.Length(); j++)
          B.Add(W,tmpEdges.Value(j));
+       B.Add(W,E);
        Wires.Append(W);
+       VLocs.ChangeValue(jcurr) = V2;
        jcurr++;
        tmpEdges.Clear();
-       Edges.Remove(i);
-       Edges.InsertAfter(i-1,E1);
-       Edges.InsertAfter(i,E2);
       }
       else {
-       tmpEdges.Append(edge);
+       // find distance between E and aLocs(jcurr)
+       double fp,lp;
+       Handle(Geom_Curve) C = BRep_Tool::Curve(E,fp,lp);
+       GeomAPI_ProjectPointOnCurve PPC (PLocs.Value(jcurr),C);
+       if( PPC.NbPoints()>0 &&
+           PLocs.Value(jcurr).Distance(PPC.Point(1)) < tol ) {
+         double param = PPC.Parameter(1);
+         gp_Pnt PC1;
+         C->D0(param,PC1);
+         // split current edge
+         Handle(Geom_TrimmedCurve) tc1 = new Geom_TrimmedCurve(C,fp,param);
+         Handle(Geom_TrimmedCurve) tc2 = new Geom_TrimmedCurve(C,param,lp);
+         TopoDS_Edge E1,E2;
+         gp_Pnt Pfp;
+         C->D0(fp,Pfp);
+         if(Pfp.Distance(P1)<tol) {
+           B.MakeEdge(E1,tc1,tol);
+           B.Add(E1,V1);
+           TopoDS_Shape tmpV = VLocs.Value(jcurr).Oriented(TopAbs_REVERSED);
+           B.Add(E1,TopoDS::Vertex(tmpV));
+           tmpEdges.Append(E1);
+           B.MakeEdge(E2,tc2,tol);
+           tmpV = VLocs.Value(jcurr).Oriented(TopAbs_FORWARD);
+           B.Add(E2,TopoDS::Vertex(tmpV));
+           B.Add(E2,V2);
+         }
+         else {
+           B.MakeEdge(E1,tc2,tol);
+           TopoDS_Shape tmpV = VLocs.Value(jcurr).Oriented(TopAbs_FORWARD);
+           B.Add(E1,TopoDS::Vertex(tmpV));
+           B.Add(E1,V1);
+           E1.Reverse();
+           tmpEdges.Append(E1);
+           B.MakeEdge(E2,tc1,tol);
+           B.Add(E2,V2);
+           tmpV = VLocs.Value(jcurr).Oriented(TopAbs_REVERSED);
+           B.Add(E2,TopoDS::Vertex(tmpV));
+           E2.Reverse();
+         }
+         // create wire from tmpEdges
+         TopoDS_Wire W;
+         B.MakeWire(W);
+         for(j=1; j<=tmpEdges.Length(); j++)
+           B.Add(W,tmpEdges.Value(j));
+         Wires.Append(W);
+         jcurr++;
+         tmpEdges.Clear();
+         Edges.Remove(i);
+         Edges.InsertAfter(i-1,E1);
+         Edges.InsertAfter(i,E2);
+       }
+       else {
+         tmpEdges.Append(E);
+       }
       }
     }
+    // create wire from other edges
+    TopoDS_Wire W;
+    B.MakeWire(W);
+    for(; i<=Edges.Length(); i++)
+      B.Add(W,Edges.Value(i));
+    Wires.Append(W);
+    //cout<<"Wires.Length()="<<Wires.Length()<<endl;
   }
-  // create wire from other edges
-  TopoDS_Wire W;
-  B.MakeWire(W);
-  for(; i<=Edges.Length(); i++)
-    B.Add(W,Edges.Value(i));
-  Wires.Append(W);
-  //cout<<"Wires.Length()="<<Wires.Length()<<endl;
 
   if( Wires.Length() != nbLocs-1 ) {
     if(aCI) delete aCI;
@@ -551,7 +860,7 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
     if(aShBase2.IsNull())
       continue;
     TopAbs_ShapeEnum aType2 = aShBase2.ShapeType();
-    
+
     //BRepTools::Write(aShBase1,"/dn02/users_Linux/skl/work/Bugs/14857/base1.brep");
 
     bool OkSec = ( aType1==TopAbs_SHELL || aType1==TopAbs_FACE ) &&
@@ -576,6 +885,153 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
       CreateFewSolids = true;
     }
 
+    /*
+    // check orientation of sections
+    bool NeedReverse = false;
+    {
+      // first section
+      anExp.Init( aShBase1, TopAbs_FACE );
+      TopoDS_Shape aFace = anExp.Current();
+      TColgp_SequenceOfPnt aPnts;
+      double xc=0, yc=0, zc=0;
+      for ( anExp.Init( aFace, TopAbs_VERTEX ); anExp.More(); anExp.Next() ) {
+       TopoDS_Vertex V = TopoDS::Vertex(anExp.Current());
+       aPnts.Append(BRep_Tool::Pnt(V));
+       xc += aPnts.Last().X();
+       yc += aPnts.Last().Y();
+       zc += aPnts.Last().Z();
+      }
+      gp_Pnt PC( xc/aPnts.Length(), yc/aPnts.Length(), zc/aPnts.Length() );
+      gp_Vec V1(PC,aPnts.Value(1));
+      gp_Vec V2(PC,aPnts.Value(2));
+      gp_Vec VN = V1.Crossed(V2);
+      for(int ip=2; ip<aPnts.Length(); ip++) {
+       V1 = gp_Vec(PC,aPnts.Value(ip));
+       V2 = gp_Vec(PC,aPnts.Value(ip+1));
+       VN.Add(V1.Crossed(V2));
+      }
+      gp_Vec PathNorm;
+      gp_Pnt PLoc = BRep_Tool::Pnt(TopoDS::Vertex(VLocs(i)));
+      TopExp_Explorer WE;
+      for ( WE.Init( WPath, TopAbs_EDGE ); WE.More(); WE.Next() ) {
+       TopoDS_Edge edge = TopoDS::Edge(WE.Current());
+       double tol = BRep_Tool::Tolerance(edge);
+       TopoDS_Vertex VF = sae.FirstVertex(edge);
+       gp_Pnt PF = BRep_Tool::Pnt(VF);
+       if( PF.Distance(PLoc) < tol ) {
+         double fp,lp;
+         Handle(Geom_Curve) C = BRep_Tool::Curve(edge,fp,lp);
+         gp_Pnt P1,P2;
+         C->D0(fp,P1);
+         if( P1.Distance(PLoc) < tol ) {
+           C->D0(fp+(lp-fp)/100,P2);
+         }
+         else {
+           C->D0(lp,P1);
+           C->D0(lp+(fp-lp)/100,P2);
+         }
+         PathNorm = gp_Vec(P1,P2);
+         break;
+       }
+       else {
+         TopoDS_Vertex VL = sae.LastVertex(edge);
+         gp_Pnt PL = BRep_Tool::Pnt(VL);
+         if( PL.Distance(PLoc) < tol ) {
+           double fp,lp;
+           Handle(Geom_Curve) C = BRep_Tool::Curve(edge,fp,lp);
+           gp_Pnt P1,P2;
+           C->D0(fp,P1);
+           if( P1.Distance(PLoc) < tol ) {
+             C->D0(fp+(lp-fp)/100,P2);
+           }
+           else {
+             C->D0(lp,P1);
+             C->D0(lp+(fp-lp)/100,P2);
+           }
+           PathNorm = gp_Vec(P2,P1);
+           break;
+         }
+       }
+      }
+      cout<<"VN("<<VN.X()<<","<<VN.Y()<<","<<VN.Z()<<")"<<endl;
+      cout<<"PathNorm("<<PathNorm.X()<<","<<PathNorm.Y()<<","<<PathNorm.Z()<<")"<<endl;
+      if(fabs(VN.Angle(PathNorm))>PI/2.) {
+       NeedReverse = true;
+       aShBase1.Reverse();
+      }
+    }
+    {
+      // second section
+      anExp.Init( aShBase2, TopAbs_FACE );
+      TopoDS_Shape aFace = anExp.Current();
+      TColgp_SequenceOfPnt aPnts;
+      double xc=0, yc=0, zc=0;
+      for ( anExp.Init( aFace, TopAbs_VERTEX ); anExp.More(); anExp.Next() ) {
+       TopoDS_Vertex V = TopoDS::Vertex(anExp.Current());
+       aPnts.Append(BRep_Tool::Pnt(V));
+       xc += aPnts.Last().X();
+       yc += aPnts.Last().Y();
+       zc += aPnts.Last().Z();
+      }
+      gp_Pnt PC( xc/aPnts.Length(), yc/aPnts.Length(), zc/aPnts.Length() );
+      gp_Vec V1(PC,aPnts.Value(1));
+      gp_Vec V2(PC,aPnts.Value(2));
+      gp_Vec VN = V1.Crossed(V2);
+      for(int ip=2; ip<aPnts.Length(); ip++) {
+       V1 = gp_Vec(PC,aPnts.Value(ip));
+       V2 = gp_Vec(PC,aPnts.Value(ip+1));
+       VN.Add(V1.Crossed(V2));
+      }
+      gp_Vec PathNorm;
+      gp_Pnt PLoc = BRep_Tool::Pnt(TopoDS::Vertex(VLocs(i+1)));
+      TopExp_Explorer WE;
+      for ( WE.Init( WPath, TopAbs_EDGE ); WE.More(); WE.Next() ) {
+       TopoDS_Edge edge = TopoDS::Edge(WE.Current());
+       double tol = BRep_Tool::Tolerance(edge);
+       TopoDS_Vertex VF = sae.FirstVertex(edge);
+       gp_Pnt PF = BRep_Tool::Pnt(VF);
+       if( PF.Distance(PLoc) < tol ) {
+         double fp,lp;
+         Handle(Geom_Curve) C = BRep_Tool::Curve(edge,fp,lp);
+         gp_Pnt P1,P2;
+         C->D0(fp,P1);
+         if( P1.Distance(PLoc) < tol ) {
+           C->D0(fp+(lp-fp)/100,P2);
+         }
+         else {
+           C->D0(lp,P1);
+           C->D0(lp+(fp-lp)/100,P2);
+         }
+         PathNorm = gp_Vec(P2,P1);
+         break;
+       }
+       else {
+         TopoDS_Vertex VL = sae.LastVertex(edge);
+         gp_Pnt PL = BRep_Tool::Pnt(VL);
+         if( PL.Distance(PLoc) < tol ) {
+           double fp,lp;
+           Handle(Geom_Curve) C = BRep_Tool::Curve(edge,fp,lp);
+           gp_Pnt P1,P2;
+           C->D0(fp,P1);
+           if( P1.Distance(PLoc) < tol ) {
+             C->D0(fp+(lp-fp)/100,P2);
+           }
+           else {
+             C->D0(lp,P1);
+             C->D0(lp+(fp-lp)/100,P2);
+           }
+           PathNorm = gp_Vec(P2,P1);
+           break;
+         }
+       }
+      }
+      //cout<<"VN("<<VN.X()<<","<<VN.Y()<<","<<VN.Z()<<")"<<endl;
+      //cout<<"PathNorm("<<PathNorm.X()<<","<<PathNorm.Y()<<","<<PathNorm.Z()<<")"<<endl;
+      if(fabs(VN.Angle(PathNorm))>PI/2.)
+       aShBase2.Reverse();
+    }
+    */
+
     if(!CreateFewSolids) {
       // we can create only one solid
       TopoDS_Shape aWire1, aWire2;
@@ -661,6 +1117,11 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
        const TopoDS_Shape aSewShape = aSewing->SewedShape();
        if( aSewShape.ShapeType() == TopAbs_SHELL ) {
          aShell = TopoDS::Shell(aSewShape);
+         GProp_GProps aSystem;
+         BRepGProp::VolumeProperties(aShell, aSystem);
+         if(aSystem.Mass()<0) {
+           aShell.Reverse();
+         }
          if(BRep_Tool::IsClosed(aShell)) {
            TopoDS_Solid aSolid;
            B.MakeSolid(aSolid);
@@ -679,16 +1140,18 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
     else {
       // main block - creation few solids (for each pair of faces)
       TopTools_MapOfShape aFaces1,aFaces2;
-      for ( anExp.Init( aShBase1, TopAbs_FACE ); anExp.More(); anExp.Next() )
+      for ( anExp.Init( aShBase1, TopAbs_FACE ); anExp.More(); anExp.Next() ) {
        aFaces1.Add(anExp.Current());
-      for ( anExp.Init( aShBase2, TopAbs_FACE ); anExp.More(); anExp.Next() )
+      }
+      for ( anExp.Init( aShBase2, TopAbs_FACE ); anExp.More(); anExp.Next() ) {
        aFaces2.Add(anExp.Current());
+      }
       // creating map of edge faces
       TopTools_IndexedDataMapOfShapeListOfShape aMapEdgeFaces1;
       TopExp::MapShapesAndAncestors(aShBase1, TopAbs_EDGE, TopAbs_FACE, aMapEdgeFaces1);
       TopTools_IndexedDataMapOfShapeListOfShape aMapEdgeFaces2;
       TopExp::MapShapesAndAncestors(aShBase2, TopAbs_EDGE, TopAbs_FACE, aMapEdgeFaces2);
-  
+
       // constuct map face->face
       TopTools_IndexedDataMapOfShapeShape FF;
       TopoDS_Shape FS1,FS2;
@@ -800,7 +1263,7 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
            Standard_ConstructionError::Raise("Invalid subbase shape");
          }
          FS1 = aSh;
-       }       
+       }
        { // 2 section
          Handle(Standard_Transient) anItem = aSubBasesObjs->Value(i+1);
          if(anItem.IsNull()) {
@@ -828,7 +1291,7 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
          if(aCI) delete aCI;
          Standard_ConstructionError::Raise("Invalid subbase shape");
        }
-      
+
        FF.Add(FS1,FS2);
 
        // add pairs of edges to FF
@@ -844,7 +1307,6 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
 
 
       // make pipe for each pair of faces
-      //BRepTools::Write(WPath,"/dn02/users_Linux/skl/work/Bugs/14857/wpath.brep");
       for(j=1; j<=FF.Extent(); j++) {
        TopoDS_Shape F1 = FF.FindKey(j);
        if( F1.ShapeType() != TopAbs_FACE )
@@ -869,12 +1331,10 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
          TopoDS_Shape aShape = aBuilder.Shape();
          TopoDS_Shell aShell;
          B.MakeShell(aShell);
-         //int nbf=0;
          for ( anExp.Init( aShape, TopAbs_FACE ); anExp.More(); anExp.Next() ) {
-           //nbf++;
-           //cout<<"nbf="<<nbf<<endl;
            B.Add(aShell,anExp.Current());
          }
+
          B.Add(aShell,F1);
          B.Add(aShell,F2);
          // make sewing for this shell
@@ -890,6 +1350,12 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
          const TopoDS_Shape aSewShape = aSewing->SewedShape();
          if( aSewShape.ShapeType() == TopAbs_SHELL ) {
            aShell = TopoDS::Shell(aSewShape);
+           GProp_GProps aSystem;
+           BRepGProp::VolumeProperties(aShell, aSystem);
+           if(aSystem.Mass()<0) {
+             //cout<<"aSewShape is reversed"<<endl;
+             aShell.Reverse();
+           }
            if(BRep_Tool::IsClosed(aShell)) {
              TopoDS_Solid aSolid;
              B.MakeSolid(aSolid);
@@ -909,6 +1375,478 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
     }
   }
 
+  //BRepTools::Write(aComp,"/dn02/users_Linux/skl/work/Bugs/14857/comp.brep");
+  return aComp;
+}
+
+
+//=======================================================================
+//function : CreatePipeShellsWithoutPath
+//purpose  : auxilary for Execute()
+//=======================================================================
+static TopoDS_Shape CreatePipeShellsWithoutPath(GEOMImpl_IPipe* aCI)
+{
+  //cout<<"CreatePipeShellsWithoutPath"<<endl;
+  int i,j;
+  BRep_Builder B;
+
+  GEOMImpl_IPipeShellSect* aCIDS = (GEOMImpl_IPipeShellSect*)aCI;
+  // shell sections
+  Handle(TColStd_HSequenceOfTransient) aBasesObjs = aCIDS->GetBases();
+  // vertex for recognition
+  Handle(TColStd_HSequenceOfTransient) VObjs = aCIDS->GetLocations();
+
+  Standard_Integer nbBases = aBasesObjs->Length(),
+    nbv = (VObjs.IsNull() ? 0 :VObjs->Length());
+
+  if( nbv != nbBases ) {
+    if(aCI) delete aCI;
+    Standard_ConstructionError::Raise("Number of shapes for recognition is invalid");
+  }
+
+
+  TopTools_SequenceOfShape SecVs,Bases;
+  for(i=1; i<=nbBases; i++) {
+    // vertex
+    Handle(Standard_Transient) anItem = VObjs->Value(i);
+    if(anItem.IsNull())
+      continue;
+    Handle(GEOM_Function) aRef = Handle(GEOM_Function)::DownCast(anItem);
+    TopoDS_Shape V = aRef->GetValue();
+    if(V.IsNull() || V.ShapeType() != TopAbs_VERTEX)
+      continue;
+    SecVs.Append(V);
+    // section
+    anItem = aBasesObjs->Value(i);
+    if(anItem.IsNull())
+      continue;
+    aRef = Handle(GEOM_Function)::DownCast(anItem);
+    TopoDS_Shape aSh = aRef->GetValue();
+    if(aSh.IsNull())
+      continue;
+    Bases.Append(aSh);
+  }
+  nbv = SecVs.Length();
+  nbBases = Bases.Length();
+  if( nbv != nbBases ) {
+    if(aCI) delete aCI;
+    Standard_ConstructionError::Raise("One of shapes for recognition is not a vertex");
+  }
+
+  TopoDS_Compound aComp;
+  B.MakeCompound(aComp);
+
+  for(i=1 ; i<nbBases; i++) {
+    cout<<"Make pipe between sections "<<i<<" and "<<i+1<<endl;
+    TopoDS_Shape aShBase1 = Bases.Value(i);
+    TopoDS_Shape aShBase2 = Bases.Value(i+1);
+    TopExp_Explorer anExp;
+    Standard_Integer nbf1 = 0;
+    for ( anExp.Init( aShBase1, TopAbs_FACE ); anExp.More(); anExp.Next() ) {
+      nbf1++;
+    }
+    Standard_Integer nbf2 = 0;
+    for ( anExp.Init( aShBase2, TopAbs_FACE ); anExp.More(); anExp.Next() ) {
+      nbf2++;
+    }
+    //cout<<"nbf1="<<nbf1<<" nbf2="<<nbf2<<endl;
+    if(nbf1!=nbf2) {
+      if(aCI) delete aCI;
+      Standard_ConstructionError::Raise("Different number of faces in the sections");
+    }
+
+    TopTools_MapOfShape aFaces1,aFaces2;
+    for ( anExp.Init( aShBase1, TopAbs_FACE ); anExp.More(); anExp.Next() ) {
+      aFaces1.Add(anExp.Current());
+    }
+    for ( anExp.Init( aShBase2, TopAbs_FACE ); anExp.More(); anExp.Next() ) {
+      aFaces2.Add(anExp.Current());
+    }
+
+    // creating map of edge faces
+    TopTools_IndexedDataMapOfShapeListOfShape aMapEdgeFaces1;
+    TopExp::MapShapesAndAncestors(aShBase1, TopAbs_EDGE, TopAbs_FACE, aMapEdgeFaces1);
+    TopTools_IndexedDataMapOfShapeListOfShape aMapEdgeFaces2;
+    TopExp::MapShapesAndAncestors(aShBase2, TopAbs_EDGE, TopAbs_FACE, aMapEdgeFaces2);
+
+    // constuct map face->face (and subshapes)
+    TopTools_IndexedDataMapOfShapeShape FF;
+    //TopoDS_Shape FS1 = SecFs.Value(i), FS2 = SecFs.Value(i+1);
+    TopoDS_Shape FS1, FS2;
+    TopoDS_Vertex V1 = TopoDS::Vertex(SecVs(i));
+    TopoDS_Vertex V2 = TopoDS::Vertex(SecVs(i+1));
+    FindFirstPairFaces(aShBase1, aShBase2, V1, V2, FS1, FS2);
+
+    FF.Add(FS1,FS2);
+    cout<<"  first pair of corresponding faces is found"<<endl;
+
+    // add pairs of edges and vertexes to FF
+    bool stat =  FillCorrespondingEdges(FS1, FS2, V1, V2, FF);
+    if( !stat ) {
+      if(aCI) delete aCI;
+      Standard_ConstructionError::Raise("Can not create correct pipe");
+    }
+    cout<<"  correspondences for subshapes of first pair of faces is found"<<endl;
+
+    FindNextPairOfFaces(FS1, aMapEdgeFaces1, aMapEdgeFaces2, FF, aCI);
+    cout<<"  other correspondences is found, make pipe for all pairs of faces"<<endl;
+
+    // make pipe for each pair of faces
+    // auxilary map vertex->edge for created pipe edges
+    TopTools_IndexedDataMapOfShapeShape VPE;
+    ShapeAnalysis_Edge sae;
+    //cout<<"FF.Extent()="<<FF.Extent()<<endl;
+    int nbff = 0;
+    for(j=1; j<=FF.Extent(); j++) {
+      TopoDS_Shape F1 = FF.FindKey(j);
+      if( F1.ShapeType() != TopAbs_FACE )
+       continue;
+      TopoDS_Shape F2 = FF.FindFromIndex(j);
+      nbff++;
+
+      //if(nbff!=3) continue;
+
+      cout<<"    make pipe for "<<nbff<<" face"<<endl;
+
+      Handle(Geom_Surface) S1 = BRep_Tool::Surface(TopoDS::Face(F1));
+      if(S1->IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) {
+       Handle(Geom_RectangularTrimmedSurface) RTS =
+         Handle(Geom_RectangularTrimmedSurface)::DownCast(S1);
+       S1 = RTS->BasisSurface();
+      }
+      Handle(Geom_Plane) Pln1 = Handle(Geom_Plane)::DownCast(S1);
+      if( Pln1.IsNull() ) {
+       if(aCI) delete aCI;
+       Standard_ConstructionError::Raise("Surface from face is not plane");
+      }
+      gp_Vec aDir1(Pln1->Axis().Direction());
+
+      Handle(Geom_Surface) S2 = BRep_Tool::Surface(TopoDS::Face(F2));
+      if(S2->IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) {
+       Handle(Geom_RectangularTrimmedSurface) RTS =
+         Handle(Geom_RectangularTrimmedSurface)::DownCast(S2);
+       S2 = RTS->BasisSurface();
+      }
+      Handle(Geom_Plane) Pln2 =
+         Handle(Geom_Plane)::DownCast(S2);
+      if( Pln2.IsNull() ) {
+       if(aCI) delete aCI;
+       Standard_ConstructionError::Raise("Surface from face is not plane");
+      }
+      gp_Vec aDir2(Pln2->Axis().Direction());
+
+      gp_Pnt P1 = BRep_Tool::Pnt(TopoDS::Vertex(SecVs(i)));
+      gp_Pnt P2 = BRep_Tool::Pnt(TopoDS::Vertex(SecVs(i+1)));
+      gp_Vec aDir(P1,P2);
+      if(fabs(aDir.Angle(aDir1))>PI/2.)
+       aDir1.Reverse();
+      if(fabs(aDir.Angle(aDir2))>PI/2.)
+       aDir2.Reverse();
+
+      TopExp_Explorer anExpE(F1,TopAbs_EDGE);
+      TopTools_SequenceOfShape aNewFs;
+      //int nbee=0;
+      for(; anExpE.More(); anExpE.Next()) {
+       TopoDS_Edge E1 = TopoDS::Edge(anExpE.Current());
+       //nbee++;
+       if(!FF.Contains(E1))
+         cout<<"map FF not contains key E1"<<endl;
+
+       if(VPE.Contains(E1)) {
+         aNewFs.Append(VPE.FindFromKey(E1));
+#ifdef _DEBUG_
+         cout<<"    using existed face"<<endl;
+#endif
+         continue;
+       }
+
+       TopoDS_Edge E3 = TopoDS::Edge(FF.FindFromKey(E1));
+       TopoDS_Vertex V1 = sae.FirstVertex(E1);
+       TopoDS_Vertex V2 = sae.LastVertex(E1);
+       if(!FF.Contains(V1))
+         cout<<"map FF not contains key V1"<<endl;
+       if(!FF.Contains(V2))
+         cout<<"map FF not contains key V2"<<endl;
+       TopoDS_Vertex V3 = TopoDS::Vertex(FF.FindFromKey(V2));
+       TopoDS_Vertex V4 = TopoDS::Vertex(FF.FindFromKey(V1));
+       TopoDS_Vertex Vtmp = sae.FirstVertex(E3);
+       if(Vtmp.IsSame(V4))
+         E3.Reverse();
+       gp_Pnt P1 = BRep_Tool::Pnt(V1);
+       gp_Pnt P2 = BRep_Tool::Pnt(V2);
+       gp_Pnt P3 = BRep_Tool::Pnt(V3);
+       gp_Pnt P4 = BRep_Tool::Pnt(V4);
+       // make E2
+       TopoDS_Edge E2;
+       Handle(Geom_BSplineCurve) C2;
+       if(VPE.Contains(V2)) {
+         E2 = TopoDS::Edge(VPE.FindFromKey(V2));
+         double fp,lp;
+         C2 = Handle(Geom_BSplineCurve)::DownCast(BRep_Tool::Curve(E2,fp,lp));
+       }
+       else {
+         Handle(TColgp_HArray1OfPnt) HAP = new TColgp_HArray1OfPnt(1,2);
+         HAP->SetValue(1,P2);
+         HAP->SetValue(2,P3);
+         GeomAPI_Interpolate anInt(HAP,Standard_False,1.e-7);
+         anInt.Load(aDir1,aDir2);
+         anInt.Perform();
+         C2 = anInt.Curve();
+         B.MakeEdge(E2,C2,1.e-7);
+         B.Add(E2,TopoDS::Vertex(V2.Oriented(TopAbs_FORWARD)));
+         B.Add(E2,TopoDS::Vertex(V3.Oriented(TopAbs_REVERSED)));
+         VPE.Add(V2,E2);
+       }
+       // make E4
+       TopoDS_Edge E4;
+       Handle(Geom_BSplineCurve) C4;
+       if(VPE.Contains(V1)) {
+         E4 = TopoDS::Edge(VPE.FindFromKey(V1));
+         double fp,lp;
+         C4 = Handle(Geom_BSplineCurve)::DownCast(BRep_Tool::Curve(E4,fp,lp));
+       }
+       else {
+         Handle(TColgp_HArray1OfPnt) HAP = new TColgp_HArray1OfPnt(1,2);
+         HAP->SetValue(1,P1);
+         HAP->SetValue(2,P4);
+         GeomAPI_Interpolate anInt(HAP,Standard_False,1.e-7);
+         anInt.Load(aDir1,aDir2);
+         anInt.Perform();
+         C4 = anInt.Curve();
+         B.MakeEdge(E4,anInt.Curve(),1.e-7);
+         B.Add(E4,TopoDS::Vertex(V1.Oriented(TopAbs_FORWARD)));
+         B.Add(E4,TopoDS::Vertex(V4.Oriented(TopAbs_REVERSED)));
+         VPE.Add(V1,E4);
+       }
+
+       TopoDS_Wire W;
+       B.MakeWire(W);
+       B.Add(W,E1);
+       B.Add(W,E2);
+       B.Add(W,E3);
+       B.Add(W,E4.Reversed());
+       //cout<<"      wire for edge "<<nbee<<" is created"<<endl;
+       //BRepTools::Write(W,"/dn02/users_Linux/skl/work/Bugs/14857/w.brep");
+
+       // make surface
+
+       double fp,lp;
+       Handle(Geom_Curve) C1 = BRep_Tool::Curve(E1,fp,lp);
+       //bool IsConicC1 = false;
+       //if( C1->IsKind(STANDARD_TYPE(Geom_Conic)) ) {
+       //  IsConicC1 = true;
+       //  cout<<"C1 - Geom_Conic"<<endl;
+       //}
+       if( C1->IsKind(STANDARD_TYPE(Geom_Line)) || C1->IsKind(STANDARD_TYPE(Geom_Conic)) ) {
+         C1 = new Geom_TrimmedCurve(C1,fp,lp);
+       }
+       //if(IsConicC1) {
+       //  double tol = BRep_Tool::Tolerance(E1);
+       //  GeomConvert_ApproxCurve ApxC1(C1,tol,GeomAbs_C1,10,5);
+       //  C1 = ApxC1.Curve();
+       //}
+       Handle(Geom_Curve) C3 = BRep_Tool::Curve(E3,fp,lp);
+       if( C3->IsKind(STANDARD_TYPE(Geom_Line)) || C3->IsKind(STANDARD_TYPE(Geom_Conic)) ) {
+         C3 = new Geom_TrimmedCurve(C3,fp,lp);
+       }
+       //filebuf fic;
+       //ostream os(&fic);
+       //os.precision(15);
+       Handle(Geom_BSplineCurve) CE1 =
+         GeomConvert::CurveToBSplineCurve(C1,Convert_RationalC1);
+       if(CE1->Degree()<3)
+         CE1->IncreaseDegree(3);
+       Handle(Geom_BSplineCurve) CE2 =
+         GeomConvert::CurveToBSplineCurve(C2,Convert_RationalC1);
+       if(CE2->Degree()<3)
+         CE2->IncreaseDegree(3);
+       Handle(Geom_BSplineCurve) CE3 =
+         GeomConvert::CurveToBSplineCurve(C3,Convert_RationalC1);
+       if(CE3->Degree()<3)
+         CE3->IncreaseDegree(3);
+       Handle(Geom_BSplineCurve) CE4 =
+         GeomConvert::CurveToBSplineCurve(C4,Convert_RationalC1);
+       if(CE4->Degree()<3)
+         CE4->IncreaseDegree(3);
+       //cout<<"CE1->Degree()="<<CE1->Degree()<<" CE2->Degree()="<<CE2->Degree()
+       //    <<" CE3->Degree()="<<CE3->Degree()<<" CE4->Degree()="<<CE4->Degree()<<endl;
+       //if(fic.open("/dn02/users_Linux/skl/work/Bugs/14857/ce1.brep",ios::out)) {
+       //  os<<"DrawTrSurf_BSplineCurve"<<endl;
+       //  GeomTools::Write(CE1,os);
+       //  fic.close();
+       //}
+
+       Handle(Geom_Surface) BS;
+       try {
+         GeomFill_BSplineCurves GF(CE1,CE2,CE3,CE4,GeomFill_CoonsStyle);
+         //GeomFill_BSplineCurves GF(CE1,CE2,CE3,CE4,GeomFill_StretchStyle);
+         BS = GF.Surface();
+       }
+       catch(...) {
+         cout<<"      can not create BSplineSurface - create Bezier"<<endl;
+         int NbP=26;
+         TColgp_Array2OfPnt Points(1,NbP,1,NbP);
+         double fp1,lp1,fp2,lp2;
+         Handle(Geom_Curve) C1 = BRep_Tool::Curve(E1,fp1,lp1);
+         Handle(Geom_Curve) C3 = BRep_Tool::Curve(E3,fp2,lp2);
+         gp_Pnt P1C1,P2C1;
+         C1->D0(fp1,P1C1);
+         C1->D0(lp1,P2C1);
+         gp_Pnt P1C3,P2C3;
+         C3->D0(fp2,P1C3);
+         C3->D0(lp2,P2C3);
+         int n1,n2;
+         double fp,lp;
+         // get points from C1
+         if(P1.Distance(P1C1)<1.e-6) {
+           fp = fp1;
+           lp = lp1;
+         }
+         else {
+           fp = lp1;
+           lp = fp1;
+         }
+         double step = (lp-fp)/(NbP-1);
+         Points.SetValue(1,1,P1);
+         double par = fp;
+         for(n1=2; n1<NbP; n1++) {
+           gp_Pnt P;
+           par += step;
+           C1->D0(par,P);
+           Points.SetValue(1,n1,P);
+         }
+         Points.SetValue(1,NbP,P2);
+         // get points from C3
+         if(P4.Distance(P1C3)<1.e-6) {
+           fp = fp2;
+           lp = lp2;
+         }
+         else {
+           fp = lp2;
+           lp = fp2;
+         }
+         step = (lp-fp)/(NbP-1);
+         Points.SetValue(NbP,1,P4);
+         par = fp;
+         for(n1=2; n1<NbP; n1++) {
+           gp_Pnt P;
+           par += step;
+           C3->D0(par,P);
+           Points.SetValue(NbP,n1,P);
+         }
+         Points.SetValue(NbP,NbP,P3);
+         // create isolines and get points from them
+         for(n1=1; n1<=NbP; n1++) {
+           gp_Pnt PI1 = Points.Value(1,n1);
+           gp_Pnt PI2 = Points.Value(NbP,n1);
+           Handle(TColgp_HArray1OfPnt) HAP = new TColgp_HArray1OfPnt(1,2);
+           HAP->SetValue(1,PI1);
+           HAP->SetValue(2,PI2);
+           GeomAPI_Interpolate anInt(HAP,Standard_False,1.e-7);
+           anInt.Load(aDir1,aDir2);
+           anInt.Perform();
+           Handle(Geom_Curve) iso = anInt.Curve();
+           fp = iso->FirstParameter();
+           lp = iso->LastParameter();
+           step = (lp-fp)/(NbP-1);
+           par = fp;
+           TopoDS_Compound VComp;
+           B.MakeCompound(VComp);
+           for(n2=2; n2<NbP; n2++) {
+             gp_Pnt P;
+             par += step;
+             iso->D0(par,P);
+             Points.SetValue(n2,n1,P);
+           }
+         }
+         // create surface and face
+         //Handle(Geom_BezierSurface) BS = new Geom_BezierSurface(Points);
+         BS = new Geom_BezierSurface(Points);
+       }
+
+       BRepBuilderAPI_MakeFace BB(BS,W);
+       TopoDS_Face NewF = BB.Face();
+       Handle(ShapeFix_Face) sff = new ShapeFix_Face(NewF);
+       sff->Perform();
+       sff->FixOrientation();
+       TopoDS_Face FixedFace = sff->Face();
+       aNewFs.Append(FixedFace);
+       VPE.Add(E1,FixedFace);
+       //cout<<"      face for edge "<<nbee<<" is created"<<endl;
+       //BRepTools::Write(FixedFace,"/dn02/users_Linux/skl/work/Bugs/14857/f.brep");
+      }
+      // make shell
+      TopoDS_Shell aShell;
+      B.MakeShell(aShell);
+      for(int nf=1; nf<=aNewFs.Length(); nf++) {
+       B.Add(aShell,aNewFs(nf));
+      }
+      B.Add(aShell,F1);
+      B.Add(aShell,F2);
+
+      // make sewing for this shell
+      Handle(BRepBuilderAPI_Sewing) aSewing = new BRepBuilderAPI_Sewing;
+      aSewing->SetTolerance(Precision::Confusion());
+      aSewing->SetFaceMode(Standard_True);
+      aSewing->SetFloatingEdgesMode(Standard_False);
+      aSewing->SetNonManifoldMode(Standard_False);
+      for ( anExp.Init( aShell, TopAbs_FACE ); anExp.More(); anExp.Next() ) {
+       aSewing->Add(anExp.Current());
+      }
+      aSewing->Perform();
+      cout<<"    shell for face "<<nbff<<" is created"<<endl;
+      const TopoDS_Shape aSewShape = aSewing->SewedShape();
+      //BRepTools::Write(aSewShape,"/dn02/users_Linux/skl/work/Bugs/14857/sew.brep");
+      if( aSewShape.ShapeType() == TopAbs_SHELL ) {
+       aShell = TopoDS::Shell(aSewShape);
+       GProp_GProps aSystem;
+       BRepGProp::VolumeProperties(aShell, aSystem);
+       if(aSystem.Mass()<0) {
+         //cout<<"aSewShape is reversed"<<endl;
+         aShell.Reverse();
+       }
+       if(BRep_Tool::IsClosed(aShell)) {
+         TopoDS_Solid aSolid;
+         B.MakeSolid(aSolid);
+         B.Add(aSolid,aShell);
+         B.Add(aComp,aSolid);
+         cout<<"    solid for face "<<nbff<<" is created"<<endl;
+       }
+       else {
+         B.Add(aComp,aShell);
+         cout<<"    solid for face "<<nbff<<" is not created"<<endl;
+       }
+      }
+      else {
+       B.Add(aComp,aShell);
+       cout<<"    solid for face "<<nbff<<" is not created"<<endl;
+      }
+      //cout<<"    solid for face "<<nbff<<" is created"<<endl;
+
+      //Handle(ShapeFix_Shell) sfs = new ShapeFix_Shell(aShell);
+      //sfs->Perform();
+      //TopoDS_Shell FixedShell = sfs->Shell();
+      /*
+      GProp_GProps aSystem;
+      BRepGProp::VolumeProperties(FixedShell, aSystem);
+      if(aSystem.Mass()<0) {
+       //cout<<"aSewShape is reversed"<<endl;
+       FixedShell.Reverse();
+      }
+      if(BRep_Tool::IsClosed(FixedShell)) {
+       TopoDS_Solid aSolid;
+       B.MakeSolid(aSolid);
+       B.Add(aSolid,aShell);
+       B.Add(aComp,aSolid);
+      }
+      else {
+       B.Add(aComp,FixedShell);
+      }
+      */
+    }
+  }
+
+  //BRepTools::Write(aComp,"/dn02/users_Linux/skl/work/Bugs/14857/comp.brep");
   return aComp;
 }
 
@@ -919,6 +1857,7 @@ static TopoDS_Shape CreatePipeForShellSections(const TopoDS_Wire& aWirePath,
 //=======================================================================
 Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const
 {
+  //cout<<"PipeDriver::Execute"<<endl;
   if (Label().IsNull()) return 0;
   Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(Label());
   GEOMImpl_IPipe* aCI= 0;
@@ -929,43 +1868,46 @@ Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const
     aCI = new GEOMImpl_IPipeDiffSect(aFunction);
   else if(aType == PIPE_SHELL_SECTIONS)
     aCI = new GEOMImpl_IPipeShellSect(aFunction);
+  else if(aType == PIPE_SHELLS_WITHOUT_PATH)
+    aCI = new GEOMImpl_IPipeShellSect(aFunction);
   else
     return 0;
 
-  Handle(GEOM_Function) aRefPath = aCI->GetPath();
-  TopoDS_Shape aShapePath = aRefPath->GetValue();
+  TopoDS_Wire aWirePath;
+  if(aType != PIPE_SHELLS_WITHOUT_PATH) {
+    // working with path
+    Handle(GEOM_Function) aRefPath = aCI->GetPath();
+    TopoDS_Shape aShapePath = aRefPath->GetValue();
 
+    if (aShapePath.IsNull()) {
+      cout<<"Driver : path is null"<<endl;
+      if(aCI) delete aCI;
+      Standard_NullObject::Raise("MakePipe aborted : null path argument");
+    }
 
-  if (aShapePath.IsNull()) {
-    cout<<"Driver : path is null"<<endl;
-    if(aCI) delete aCI;
-    Standard_NullObject::Raise("MakePipe aborted : null path argument");
-  }
-  
-  // Get path contour
-  TopoDS_Wire aWirePath;
-  if (aShapePath.ShapeType() == TopAbs_WIRE) {
-    aWirePath = TopoDS::Wire(aShapePath);
-  } 
-  else {
-    if (aShapePath.ShapeType() == TopAbs_EDGE) {
-      TopoDS_Edge anEdge = TopoDS::Edge(aShapePath);
-      aWirePath = BRepBuilderAPI_MakeWire(anEdge);
-    } 
+    // Get path contour
+    if (aShapePath.ShapeType() == TopAbs_WIRE) {
+      aWirePath = TopoDS::Wire(aShapePath);
+    }
     else {
-      if(aCI) delete aCI;
-      Standard_TypeMismatch::Raise("MakePipe aborted : path shape is neither a wire nor an edge");
-    } 
+      if (aShapePath.ShapeType() == TopAbs_EDGE) {
+       TopoDS_Edge anEdge = TopoDS::Edge(aShapePath);
+       aWirePath = BRepBuilderAPI_MakeWire(anEdge);
+      }
+      else {
+       if(aCI) delete aCI;
+       Standard_TypeMismatch::Raise("MakePipe aborted : path shape is neither a wire nor an edge");
+      }
+    }
   }
-  
+
   TopoDS_Shape aShape;
 
-  if (aType == PIPE_BASE_PATH) {
-     
+  if (aType == PIPE_BASE_PATH)
+  {
     Handle(GEOM_Function) aRefBase = aCI->GetBase();
-   
     TopoDS_Shape aShapeBase = aRefBase->GetValue();
-    
+
     if (aShapeBase.IsNull()) {
       if(aCI) delete aCI;
       Standard_NullObject::Raise("MakePipe aborted : null base argument");
@@ -976,29 +1918,26 @@ Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const
   }
 
   //building pipe with different sections
-  else if (aType == PIPE_DIFFERENT_SECTIONS) 
-  {
+  else if (aType == PIPE_DIFFERENT_SECTIONS) {
     GEOMImpl_IPipeDiffSect* aCIDS = (GEOMImpl_IPipeDiffSect*)aCI;
     //GEOMImpl_IPipeDiffSect* aCIDS = static_cast<GEOMImpl_IPipeDiffSect*>(aCI);
-    BRepOffsetAPI_MakePipeShell aBuilder(aWirePath);
+    //BRepOffsetAPI_MakePipeShell aBuilder(aWirePath);
     Handle(TColStd_HSequenceOfTransient) aBasesObjs = aCIDS->GetBases ();
     Handle(TColStd_HSequenceOfTransient) aLocObjs = aCIDS->GetLocations ();
     Standard_Boolean aWithContact = (aCIDS->GetWithContactMode());
     Standard_Boolean aWithCorrect = (aCIDS->GetWithCorrectionMode());
 
-    Standard_Integer i =1, nbBases = aBasesObjs->Length(), 
+    Standard_Integer i =1, nbBases = aBasesObjs->Length(),
       nbLocs = (aLocObjs.IsNull() ? 0 :aLocObjs->Length());
-    
-    if(nbLocs && nbLocs != nbBases)
-    {
+
+    if(nbLocs && nbLocs != nbBases) {
       if(aCI) delete aCI;
       Standard_ConstructionError::Raise("Number of sections is not equal to number of locations ");
     }
     TopTools_SequenceOfShape aSeqBases;
     TopTools_SequenceOfShape aSeqLocs;
     TopTools_SequenceOfShape aSeqFaces;
-    for( ; i <= nbBases; i++) 
-    {
+    for( ; i <= nbBases; i++) {
       Handle(Standard_Transient) anItem = aBasesObjs->Value(i);
       if(anItem.IsNull())
        continue;
@@ -1011,7 +1950,7 @@ Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const
       TopAbs_ShapeEnum aTypeBase = aShapeBase.ShapeType();
 
       //if for section was specified face with a few wires then a few
-      //    pipes were build and make solid 
+      //    pipes were build and make solid
       Standard_Boolean NeedCreateSolid = Standard_False;
       if(aTypeBase == TopAbs_SHELL) {
        // create wire as boundary contour if shell is no closed
@@ -1034,8 +1973,7 @@ Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const
         aSeqFaces.Append(aShapeBase);
        aSeqBases.Append(aWire);
       }
-      else if(aTypeBase == TopAbs_FACE)
-      {
+      else if(aTypeBase == TopAbs_FACE) {
        NeedCreateSolid = Standard_True;
        //for case one path should be used other type function
         aSeqFaces.Append(aShapeBase);
@@ -1049,14 +1987,12 @@ Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const
       else if(aTypeBase == TopAbs_WIRE || aTypeBase == TopAbs_VERTEX) {
         aSeqBases.Append(aShapeBase);
       }
-      else if(aTypeBase == TopAbs_EDGE)
-      {
+      else if(aTypeBase == TopAbs_EDGE) {
         TopoDS_Edge anEdge = TopoDS::Edge(aShapeBase);
        TopoDS_Shape aWireProf = BRepBuilderAPI_MakeWire(anEdge);
        aSeqBases.Append(aWireProf);
       }
-      if(nbLocs) 
-      {
+      if(nbLocs) {
         Handle(Standard_Transient) anItemLoc = aLocObjs->Value(i);
        if(anItemLoc.IsNull())
          continue;
@@ -1067,58 +2003,283 @@ Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const
        aSeqLocs.Append(aShapeLoc);
       }
     }
-    
+
     nbLocs = aSeqLocs.Length();
-    Standard_Integer nbShapes = aSeqBases.Length();
-    Standard_Integer step = nbShapes/nbBases;
-    
-    if(nbShapes < nbBases || fmod((double)nbShapes, (double)nbBases))
-    {
-      if(aCI) delete aCI;
-      Standard_ConstructionError::Raise("Invalid sections were specified for building pipe");
+
+    // skl 02.05.2007
+    TopTools_SequenceOfShape Edges;
+    if(nbLocs>0) {
+      // we have to check that each location shape is a vertex from
+      // path and update aSeqLocs if it is needed (and possible)
+      TColgp_SequenceOfPnt PLocs;
+      for(i=1; i<=nbLocs; i++) {
+       TopoDS_Vertex V = TopoDS::Vertex(aSeqLocs.Value(i));
+       PLocs.Append(BRep_Tool::Pnt(V));
+      }
+      //TopTools_SequenceOfShape Edges;
+      TopExp_Explorer anExp;
+      for ( anExp.Init( aWirePath, TopAbs_EDGE ); anExp.More(); anExp.Next() ) {
+       Edges.Append(anExp.Current());
+      }
+      int nbEdges = Edges.Length();
+      ShapeAnalysis_Edge sae;
+      TopoDS_Edge edge = TopoDS::Edge(Edges.First());
+      double tol = BRep_Tool::Tolerance(edge);
+      TopoDS_Vertex VF = sae.FirstVertex(edge);
+      gp_Pnt PF = BRep_Tool::Pnt(VF);
+      //cout<<"PF("<<PF.X()<<","<<PF.Y()<<","<<PF.Z()<<")"<<endl;
+      if( PF.Distance(PLocs.First()) > tol ) {
+       if(aCI) delete aCI;
+       Standard_ConstructionError::Raise
+         ("First location shapes is not coincided with first vertex of aWirePath");
+      }
+      aSeqLocs.ChangeValue(1) = VF;
+      edge = TopoDS::Edge(Edges.Last());
+      tol = BRep_Tool::Tolerance(edge);
+      TopoDS_Vertex VL = sae.LastVertex(edge);
+      gp_Pnt PL = BRep_Tool::Pnt(VL);
+      if( PL.Distance(PLocs.Last()) > tol ) {
+       if(aCI) delete aCI;
+       Standard_ConstructionError::Raise
+         ("Last location shapes is not coincided with last vertex of aWirePath");
+      }
+      aSeqLocs.ChangeValue(nbLocs) = VL;
+      int jcurr = 2;
+      for(i=1; i<=Edges.Length() && jcurr<nbLocs; i++) {
+       TopoDS_Edge E = TopoDS::Edge(Edges.Value(i));
+       tol = BRep_Tool::Tolerance(edge);
+       TopoDS_Vertex V1 = sae.FirstVertex(E);
+       TopoDS_Vertex V2 = sae.LastVertex(E);
+       gp_Pnt P1 = BRep_Tool::Pnt(V1);
+       gp_Pnt P2 = BRep_Tool::Pnt(V2);
+       if( P2.Distance(PLocs.Value(jcurr)) < tol ) {
+         aSeqLocs.ChangeValue(jcurr) = V2;
+         jcurr++;
+       }
+       else {
+         // find distance between E and aLocs(jcurr)
+         double fp,lp;
+         Handle(Geom_Curve) C = BRep_Tool::Curve(E,fp,lp);
+         GeomAPI_ProjectPointOnCurve PPC (PLocs.Value(jcurr),C);
+         if( PPC.NbPoints()>0 &&
+             PLocs.Value(jcurr).Distance(PPC.Point(1)) < tol ) {
+           double param = PPC.Parameter(1);
+           gp_Pnt PC1;
+           C->D0(param,PC1);
+           // split current edge
+           Handle(Geom_TrimmedCurve) tc1 = new Geom_TrimmedCurve(C,fp,param);
+           Handle(Geom_TrimmedCurve) tc2 = new Geom_TrimmedCurve(C,param,lp);
+           TopoDS_Edge E1,E2;
+           BRep_Builder B;
+           gp_Pnt Pfp;
+           C->D0(fp,Pfp);
+           if(Pfp.Distance(P1)<tol) {
+             B.MakeEdge(E1,tc1,tol);
+             B.Add(E1,V1);
+             TopoDS_Shape tmpV = aSeqLocs.Value(jcurr).Oriented(TopAbs_REVERSED);
+             B.Add(E1,TopoDS::Vertex(tmpV));
+             B.MakeEdge(E2,tc2,tol);
+             tmpV = aSeqLocs.Value(jcurr).Oriented(TopAbs_FORWARD);
+             B.Add(E2,TopoDS::Vertex(tmpV));
+             B.Add(E2,V2);
+           }
+           else {
+             B.MakeEdge(E1,tc2,tol);
+             TopoDS_Shape tmpV = aSeqLocs.Value(jcurr).Oriented(TopAbs_FORWARD);
+             B.Add(E1,TopoDS::Vertex(tmpV));
+             B.Add(E1,V1);
+             E1.Reverse();
+             B.MakeEdge(E2,tc1,tol);
+             B.Add(E2,V2);
+             tmpV = aSeqLocs.Value(jcurr).Oriented(TopAbs_REVERSED);
+             B.Add(E2,TopoDS::Vertex(tmpV));
+             E2.Reverse();
+           }
+           jcurr++;
+           Edges.Remove(i);
+           Edges.InsertAfter(i-1,E1);
+           Edges.InsertAfter(i,E2);
+         }
+       }
+      }
+      if(nbEdges<Edges.Length()) {
+       // one of edges was splitted => we have to update WirePath
+       BRep_Builder B;
+       TopoDS_Wire W;
+       B.MakeWire(W);
+       for(i=1; i<=Edges.Length(); i++) {
+         B.Add(W,TopoDS::Edge(Edges.Value(i)));
+       }
+       aWirePath = W;
+      }
     }
-     
-    Standard_Integer ind =0;    
-    for( i=1; i  <= nbShapes && ind < nbShapes; i++) //i+nbBases <= nbShapes
-    {
-      TopTools_SequenceOfShape usedBases;
-      Standard_Integer j = 1;
-      for( ; j <= nbBases ; j++) 
-      {
-       ind = i + (j-1)*step;
-       
-        TopoDS_Shape aWireProf = aSeqBases.Value(ind);
-        usedBases.Append(aWireProf);
-        if(nbLocs) 
-        {
-          TopoDS_Shape aShapeLoc = aSeqLocs.Value(j);
-           TopoDS_Vertex aVert = TopoDS::Vertex(aShapeLoc);
-           aBuilder.Add(aWireProf,aVert,aWithContact,aWithCorrect);
-        }
-        else
-           aBuilder.Add(aWireProf,aWithContact,aWithCorrect);
-      }
-      if(!aBuilder.IsReady())
-      {
+
+    // check curvature of wire for condition that
+    // max summary angle between directions along
+    // wire path must be < 4*PI. If not - split wire
+    // and seguences of shapes, perform pipe for each
+    // and make sewing after that
+    double fp,lp;
+    Handle(Geom_Curve) C = BRep_Tool::Curve(TopoDS::Edge(Edges.Value(1)),fp,lp);
+    gp_Pnt P1,P2;
+    gp_Vec Vec1,Vec2;
+    C->D1(fp,P1,Vec1);
+    C->D1(lp,P2,Vec2);
+    double SumAng = fabs(Vec1.Angle(Vec2));
+    Vec1 = Vec2;
+    P1 = P2;
+    TColStd_SequenceOfInteger SplitEdgeNums,SplitLocNums;
+    int LastLoc = 1;
+    //cout<<"Edges.Length()="<<Edges.Length()<<endl;
+    for(i=2; i<=Edges.Length(); i++) {
+      TopoDS_Edge edge = TopoDS::Edge(Edges.Value(i));
+      double tol = BRep_Tool::Tolerance(edge);
+      Handle(Geom_Curve) C = BRep_Tool::Curve(edge,fp,lp);
+      C->D1(lp,P2,Vec2);
+      double ang = fabs(Vec1.Angle(Vec2));
+      SumAng += ang;
+      if(SumAng>4*PI) {
+       SumAng = ang;
+       SplitEdgeNums.Append(i-1);
+       int j;
+       for(j=LastLoc+1; j<=aSeqLocs.Length(); j++) {
+         TopoDS_Vertex aVert = TopoDS::Vertex(aSeqLocs.Value(j));
+         gp_Pnt P = BRep_Tool::Pnt(aVert);
+         if( P1.Distance(P) < tol ) {
+           SplitLocNums.Append(j);
+           LastLoc = j;
+           break;
+         }
+       }
+      }
+      Vec1 = Vec2;
+      P1 = P2;
+    }
+
+    //cout<<"SplitEdgeNums.Length()="<<SplitEdgeNums.Length()<<endl;
+    //cout<<"SplitLocNums.Length()="<<SplitLocNums.Length()<<endl;
+    if( SplitLocNums.Length()==SplitEdgeNums.Length() && SplitEdgeNums.Length()>0 ) {
+      TopTools_SequenceOfShape aSeqRes;
+      int nn, num1 = 1, num2 = 1;
+      for(nn=1; nn<=SplitEdgeNums.Length(); nn++) {
+       // create wirepath and sequences of shapes
+       BRep_Builder B;
+       TopoDS_Wire tmpW;
+       B.MakeWire(tmpW);
+       for(i=num1; i<=SplitEdgeNums.Value(nn); i++) {
+         B.Add(tmpW,TopoDS::Edge(Edges.Value(i)));
+       }
+       num1 = SplitEdgeNums.Value(nn) + 1;
+       TopTools_SequenceOfShape aTmpSeqBases;
+       TopTools_SequenceOfShape aTmpSeqLocs;
+       for(i=num2; i<=SplitLocNums.Value(nn); i++) {
+         aTmpSeqBases.Append(aSeqBases.Value(i));
+         aTmpSeqLocs.Append(aSeqLocs.Value(i));
+       }
+       num2 = SplitLocNums.Value(nn);
+       // make pipe
+       BRepOffsetAPI_MakePipeShell aBuilder(tmpW);
+       Standard_Integer nbShapes = aTmpSeqBases.Length();
+       for(i=1; i<=nbShapes; i++) {
+         TopoDS_Shape aShapeLoc = aTmpSeqLocs.Value(i);
+         TopoDS_Vertex aVert = TopoDS::Vertex(aShapeLoc);
+         aBuilder.Add(aTmpSeqBases.Value(i), aVert, aWithContact, aWithCorrect);
+       }
+       if(!aBuilder.IsReady()) {
+         if(aCI) delete aCI;
+         Standard_ConstructionError::Raise("Invalid input data for building PIPE: bases are invalid");
+       }
+       aBuilder.Build();
+       TopoDS_Shape resShape = aBuilder.Shape();
+       aSeqRes.Append(resShape);
+      }
+      // create wirepath and sequences of shapes for last part
+      BRep_Builder B;
+      TopoDS_Wire tmpW;
+      B.MakeWire(tmpW);
+      for(i=num1; i<=Edges.Length(); i++) {
+       B.Add(tmpW,TopoDS::Edge(Edges.Value(i)));
+      }
+      TopTools_SequenceOfShape aTmpSeqBases;
+      TopTools_SequenceOfShape aTmpSeqLocs;
+      for(i=num2; i<=aSeqLocs.Length(); i++) {
+       aTmpSeqBases.Append(aSeqBases.Value(i));
+       aTmpSeqLocs.Append(aSeqLocs.Value(i));
+      }
+      // make pipe for last part
+      BRepOffsetAPI_MakePipeShell aBuilder(tmpW);
+      Standard_Integer nbShapes = aTmpSeqBases.Length();
+      for(i=1; i<=nbShapes; i++) {
+       TopoDS_Shape aShapeLoc = aTmpSeqLocs.Value(i);
+       TopoDS_Vertex aVert = TopoDS::Vertex(aShapeLoc);
+       aBuilder.Add(aTmpSeqBases.Value(i), aVert, aWithContact, aWithCorrect);
+      }
+      if(!aBuilder.IsReady()) {
+       if(aCI) delete aCI;
+       Standard_ConstructionError::Raise("Invalid input data for building PIPE: bases are invalid");
+      }
+      aBuilder.Build();
+      TopoDS_Shape resShape = aBuilder.Shape();
+      aSeqRes.Append(resShape);
+      // make sewing for result
+      Handle(BRepBuilderAPI_Sewing) aSewing = new BRepBuilderAPI_Sewing;
+      aSewing->SetTolerance(Precision::Confusion());
+      aSewing->SetFaceMode(Standard_True);
+      aSewing->SetFloatingEdgesMode(Standard_False);
+      aSewing->SetNonManifoldMode(Standard_False);
+      for(i=1; i<=aSeqRes.Length(); i++) {
+       aSewing->Add(aSeqRes.Value(i));
+      }
+      aSewing->Perform();
+      aShape = aSewing->SewedShape();
+    }
+    else {
+      // old implementation without splitting
+      BRepOffsetAPI_MakePipeShell aBuilder(aWirePath);
+
+      Standard_Integer nbShapes = aSeqBases.Length();
+      Standard_Integer step = nbShapes/nbBases;
+
+      if(nbShapes < nbBases || fmod((double)nbShapes, (double)nbBases)) {
+       if(aCI) delete aCI;
+       Standard_ConstructionError::Raise("Invalid sections were specified for building pipe");
+      }
+      Standard_Integer ind =0;
+      for( i=1; i  <= nbShapes && ind < nbShapes; i++) { //i+nbBases <= nbShapes
+       TopTools_SequenceOfShape usedBases;
+       Standard_Integer j = 1;
+       for( ; j <= nbBases ; j++) {
+         ind = i + (j-1)*step;
+         TopoDS_Shape aWireProf = aSeqBases.Value(ind);
+         usedBases.Append(aWireProf);
+         if(nbLocs) {
+           TopoDS_Shape aShapeLoc = aSeqLocs.Value(j);
+           TopoDS_Vertex aVert = TopoDS::Vertex(aShapeLoc);
+           aBuilder.Add(aWireProf,aVert,aWithContact,aWithCorrect);
+         }
+         else
+           aBuilder.Add(aWireProf,aWithContact,aWithCorrect);
+       }
+      if(!aBuilder.IsReady()) {
        if(aCI) delete aCI;
         Standard_ConstructionError::Raise("Invalid input data for building PIPE: bases are invalid");
       }
       aBuilder.Build();
       aShape = aBuilder.Shape();
-      aSeqFaces.Append(aShape);        
+      aSeqFaces.Append(aShape);
       for( j = 1; j <=usedBases.Length(); j++)
         aBuilder.Delete(usedBases.Value(j));
-    }
-       
-    //for case if section is face 
-    if(aSeqFaces.Length() >1)
-    {
-      BRep_Builder aB;
-      TopoDS_Compound aComp;
-      aB.MakeCompound(aComp);
-      for( i = 1; i <= aSeqFaces.Length(); i++)
-        aB.Add(aComp,aSeqFaces.Value(i));
-      aShape = aComp;
+      }
+
+      //for case if section is face
+      if(aSeqFaces.Length() >1)        {
+       BRep_Builder aB;
+       TopoDS_Compound aComp;
+       aB.MakeCompound(aComp);
+       for( i = 1; i <= aSeqFaces.Length(); i++)
+         aB.Add(aComp,aSeqFaces.Value(i));
+       aShape = aComp;
+      }
     }
   }
 
@@ -1127,18 +2288,36 @@ Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const
     aShape = CreatePipeForShellSections(aWirePath,aCI);
   }
 
+  //building pipe shell sections without path
+  else if (aType == PIPE_SHELLS_WITHOUT_PATH) {
+    aShape = CreatePipeShellsWithoutPath(aCI);
+  }
+
+  if (aCI) {
+    delete aCI;
+    aCI = 0;
+  }
+
   if (aShape.IsNull()) return 0;
 
   BRepCheck_Analyzer ana (aShape, Standard_False);
   if (!ana.IsValid()) {
-    if(aCI) delete aCI;
-    Standard_ConstructionError::Raise("Algorithm have produced an invalid shape result");
+    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("Algorithm have produced an invalid shape result");
   }
 
-  aFunction->SetValue(aShape);
+  TopoDS_Shape aRes = GEOMImpl_IShapesOperations::CompsolidToCompound(aShape);
+  aFunction->SetValue(aRes);
 
   log.SetTouched(Label());
-  if(aCI) delete aCI;
   return 1;
 }
 
index 3b8f5270d0af87080f26cb561ff61b5a48650fa8..a511c53ea6cc30977f2bafb1c7e5b7238b3d965a 100644 (file)
@@ -27,7 +27,8 @@
 
 #include <BRep_Tool.hxx>
 #include <BRepBuilderAPI_MakeVertex.hxx>
-
+#include <BRepExtrema_DistShapeShape.hxx>
+#include <Precision.hxx>
 #include <TopAbs.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Edge.hxx>
@@ -97,7 +98,34 @@ Standard_Integer GEOMImpl_PointDriver::Execute(TFunction_Logbook& log) const
     aP = aFP + (aLP - aFP) * aPI.GetParameter();
     aPnt = aCurve->Value(aP);
 
-  } else {
+  } else if (aType == POINT_LINES_INTERSECTION) {
+    Handle(GEOM_Function) aRef1 = aPI.GetLine1();
+    Handle(GEOM_Function) aRef2 = aPI.GetLine2();
+
+    TopoDS_Shape aRefShape1 = aRef1->GetValue();
+    TopoDS_Shape aRefShape2 = aRef2->GetValue();
+
+    if (aRefShape1.ShapeType() != TopAbs_EDGE || aRefShape2.ShapeType() != TopAbs_EDGE ) {
+      Standard_TypeMismatch::Raise
+        ("Creation Point On Lines Intersection Aborted : Line shape is not an edge");
+    }
+    //Calculate Lines Intersection Point
+    BRepExtrema_DistShapeShape dst (aRefShape1, aRefShape2);
+    if (dst.IsDone())
+      {
+       gp_Pnt 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 ( Dist <= Precision::Confusion() )
+           aPnt = P1;
+         else 
+           Standard_TypeMismatch::Raise ("Lines not have an Intersection Point");
+       }
+      }
+  }
+  else {
     return 0;
   }
 
index 87157a5fcfada5d38e32adc67477dffa3e14ea21..11bb15ad6418bd5ee07977c8e4f49020c33e556a 100644 (file)
 #include <Standard_Stream.hxx>
 
 #include <GEOMImpl_PrismDriver.hxx>
+
+#include <GEOMImpl_IShapesOperations.hxx>
 #include <GEOMImpl_IPrism.hxx>
 #include <GEOMImpl_Types.hxx>
 #include <GEOM_Function.hxx>
 
 #include <BRepPrimAPI_MakePrism.hxx>
+#include <BRepBuilderAPI_Transform.hxx>
 #include <BRep_Tool.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Shape.hxx>
@@ -36,6 +39,8 @@
 
 #include <Precision.hxx>
 #include <gp_Pnt.hxx>
+#include <gp_Trsf.hxx>
+#include <gp_Vec.hxx>
 #include <Standard_ConstructionError.hxx>
 
 //=======================================================================
@@ -71,7 +76,7 @@ Standard_Integer GEOMImpl_PrismDriver::Execute(TFunction_Logbook& log) const
 
   TopoDS_Shape aShape;
 
-  if (aType == PRISM_BASE_VEC_H) {
+  if (aType == PRISM_BASE_VEC_H || aType == PRISM_BASE_VEC_H_2WAYS) {
     Handle(GEOM_Function) aRefBase = aCI.GetBase();
     Handle(GEOM_Function) aRefVector = aCI.GetVector();
     TopoDS_Shape aShapeBase = aRefBase->GetValue();
@@ -87,11 +92,18 @@ Standard_Integer GEOMImpl_PrismDriver::Execute(TFunction_Logbook& log) const
         }
         if (aV.Magnitude() > Precision::Confusion()) {
           aV.Normalize();
+         if (aType == PRISM_BASE_VEC_H_2WAYS) {
+           gp_Trsf aTrsf;
+           aTrsf.SetTranslation( (-aV) * aCI.GetH() );
+           BRepBuilderAPI_Transform aTransformation(aShapeBase, aTrsf, Standard_False);
+           aShapeBase = aTransformation.Shape();
+           aCI.SetH( aCI.GetH()*2 );
+         }
           aShape = BRepPrimAPI_MakePrism(aShapeBase, aV * aCI.GetH(), Standard_False).Shape();
         }
       }
     }
-  } else if (aType == PRISM_BASE_TWO_PNT) {
+  } else if (aType == PRISM_BASE_TWO_PNT || aType == PRISM_BASE_TWO_PNT_2WAYS) {
     Handle(GEOM_Function) aRefBase = aCI.GetBase();
     Handle(GEOM_Function) aRefPnt1 = aCI.GetFirstPoint();
     Handle(GEOM_Function) aRefPnt2 = aCI.GetLastPoint();
@@ -105,6 +117,14 @@ Standard_Integer GEOMImpl_PrismDriver::Execute(TFunction_Logbook& log) const
       if (!V1.IsNull() && !V2.IsNull()) {
         gp_Vec aV (BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2));
         if (aV.Magnitude() > gp::Resolution()) {
+         if (aType == PRISM_BASE_TWO_PNT_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();
         }
       }
@@ -114,7 +134,8 @@ Standard_Integer GEOMImpl_PrismDriver::Execute(TFunction_Logbook& log) const
 
   if (aShape.IsNull()) return 0;
 
-  aFunction->SetValue(aShape);
+  TopoDS_Shape aRes = GEOMImpl_IShapesOperations::CompsolidToCompound(aShape);
+  aFunction->SetValue(aRes);
 
   log.SetTouched(Label()); 
 
index beec64f3c3387041c585ace91401777cc74d91f3..9d3d91ca39a462037ca96e69a39d0fd75b7e2396 100644 (file)
 #include <Standard_Stream.hxx>
 
 #include <GEOMImpl_RevolutionDriver.hxx>
+
+#include <GEOMImpl_IShapesOperations.hxx>
 #include <GEOMImpl_IRevolution.hxx>
 #include <GEOMImpl_Types.hxx>
 #include <GEOM_Function.hxx>
 
 #include <BRepPrimAPI_MakeRevol.hxx>
+#include <BRepBuilderAPI_Transform.hxx>
 #include <BRep_Tool.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Shape.hxx>
@@ -33,7 +36,7 @@
 #include <TopoDS_Vertex.hxx>
 #include <TopAbs.hxx>
 #include <TopExp.hxx>
-
+#include <gp_Trsf.hxx>
 #include <gp_Pnt.hxx>
 #include <gp_Lin.hxx>
 #include <gp_Dir.hxx>
@@ -75,7 +78,7 @@ Standard_Integer GEOMImpl_RevolutionDriver::Execute(TFunction_Logbook& log) cons
 
   TopoDS_Shape aShape;
 
-  if (aType == REVOLUTION_BASE_AXIS_ANGLE) {
+  if (aType == REVOLUTION_BASE_AXIS_ANGLE || aType == REVOLUTION_BASE_AXIS_ANGLE_2WAYS) {
     Handle(GEOM_Function) aRefBase = aCI.GetBase();
     Handle(GEOM_Function) aRefAxis = aCI.GetAxis();
     TopoDS_Shape aShapeBase = aRefBase->GetValue();
@@ -104,9 +107,17 @@ Standard_Integer GEOMImpl_RevolutionDriver::Execute(TFunction_Logbook& log) cons
        Standard_ConstructionError::Raise("Vertex to be rotated is too close to Revolution Axis");
       }
     }
-
+    double anAngle = aCI.GetAngle();
     gp_Ax1 anAxis (BRep_Tool::Pnt(V1), aV);
-    BRepPrimAPI_MakeRevol MR (aShapeBase, anAxis, aCI.GetAngle(), Standard_False);
+    if (aType == REVOLUTION_BASE_AXIS_ANGLE_2WAYS)
+      {
+       gp_Trsf aTrsf;
+       aTrsf.SetRotation(anAxis, ( -anAngle ));
+       BRepBuilderAPI_Transform aTransformation(aShapeBase, aTrsf, Standard_False);
+       aShapeBase = aTransformation.Shape();
+       anAngle = anAngle * 2;
+      }
+    BRepPrimAPI_MakeRevol MR (aShapeBase, anAxis, anAngle, Standard_False);
     if (!MR.IsDone()) MR.Build();
     if (!MR.IsDone()) StdFail_NotDone::Raise("Revolution algorithm has failed");
     aShape = MR.Shape();
@@ -114,11 +125,13 @@ Standard_Integer GEOMImpl_RevolutionDriver::Execute(TFunction_Logbook& log) cons
   }
 
   if (aShape.IsNull()) return 0;
-  aFunction->SetValue(aShape);
 
-  log.SetTouched(Label()); 
+  TopoDS_Shape aRes = GEOMImpl_IShapesOperations::CompsolidToCompound(aShape);
+  aFunction->SetValue(aRes);
+
+  log.SetTouched(Label());
 
-  return 1;    
+  return 1;
 }
 
 
index dc199ffee5d209d0580085ee477ae12220750d89..4343903d5ed99bf381b465b8819a079b6e7669f2 100644 (file)
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-#include <Standard_Stream.hxx>
-
 #include <GEOMImpl_ShapeDriver.hxx>
+
 #include <GEOMImpl_IShapes.hxx>
-#include <GEOMImpl_IShapesOperations.hxx>
 #include <GEOMImpl_Types.hxx>
 #include <GEOMImpl_Block6Explorer.hxx>
 
 #include <BRepAlgo_FaceRestrictor.hxx>
 #include <BRepBuilderAPI_Sewing.hxx>
 #include <BRepBuilderAPI_Copy.hxx>
-#include <BRepTools_Quilt.hxx>
 #include <BRepCheck.hxx>
 #include <BRepCheck_Analyzer.hxx>
 #include <BRepCheck_Shell.hxx>
 #include <BRepClass3d_SolidClassifier.hxx>
 #include <BRepBuilderAPI_MakeWire.hxx>
+#include <BRepBuilderAPI_Sewing.hxx>
+
+#include <ShapeAnalysis_FreeBounds.hxx>
 
 #include <TopAbs.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Compound.hxx>
 #include <TopoDS_Iterator.hxx>
 #include <TopExp_Explorer.hxx>
+
 #include <TopTools_MapOfShape.hxx>
-#include <TopTools_SequenceOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
+#include <TopTools_HSequenceOfShape.hxx>
+
+#include <TColStd_HSequenceOfTransient.hxx>
 
 #include <Precision.hxx>
 #include <Standard_NullObject.hxx>
@@ -182,75 +184,79 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const
     }
   }
   else if (aType == FACE_WIRES) {
+    // Try to build a face from a set of wires and edges
+    int ind;
+
     Handle(TColStd_HSequenceOfTransient) aShapes = aCI.GetShapes();
     int nbshapes = aShapes->Length();
     if (nbshapes < 1) {
-      Standard_ConstructionError::Raise("No wires given");
+      Standard_ConstructionError::Raise("No wires or edges given");
     }
 
-    // first wire or edge
-    Handle(GEOM_Function) aRefWire = Handle(GEOM_Function)::DownCast(aShapes->Value(1));
-    TopoDS_Shape aWire = aRefWire->GetValue();
-    if (aWire.IsNull()) Standard_NullObject::Raise("Argument Shape is null");
-    TopoDS_Wire W1;
-    if(aWire.ShapeType() == TopAbs_WIRE) {
-      W1 = TopoDS::Wire(aWire);
-    }
-    else if(aWire.ShapeType() == TopAbs_EDGE && aWire.Closed()) {
-      BRepBuilderAPI_MakeWire MW;
-      MW.Add(TopoDS::Edge(aWire));
-      if (!MW.IsDone()) {
-        Standard_ConstructionError::Raise("Wire construction failed");
+    // 1. Extract all edges from the given arguments
+    TopTools_MapOfShape aMapEdges;
+    Handle(TopTools_HSequenceOfShape) aSeqEdgesIn = new TopTools_HSequenceOfShape;
+
+    BRep_Builder B;
+    for (ind = 1; ind <= nbshapes; ind++) {
+      Handle(GEOM_Function) aRefSh_i = Handle(GEOM_Function)::DownCast(aShapes->Value(ind));
+      TopoDS_Shape aSh_i = aRefSh_i->GetValue();
+
+      TopExp_Explorer anExpE_i (aSh_i, TopAbs_EDGE);
+      for (; anExpE_i.More(); anExpE_i.Next()) {
+        if (aMapEdges.Add(anExpE_i.Current())) {
+          aSeqEdgesIn->Append(anExpE_i.Current());
+        }
       }
-          W1 = MW;
     }
-    else {
-      Standard_NullObject::Raise
-        ("Shape for face construction is neither a wire nor closed edge");
+
+    // 2. Connect edges to wires of maximum length
+    Handle(TopTools_HSequenceOfShape) aSeqWiresOut;
+    ShapeAnalysis_FreeBounds::ConnectEdgesToWires(aSeqEdgesIn, Precision::Confusion(),
+                                                  /*shared*/Standard_False, aSeqWiresOut);
+
+    // 3. Separate closed wires
+    Handle(TopTools_HSequenceOfShape) aSeqClosedWires = new TopTools_HSequenceOfShape;
+    Handle(TopTools_HSequenceOfShape) aSeqOpenWires = new TopTools_HSequenceOfShape;
+    for (ind = 1; ind <= aSeqWiresOut->Length(); ind++) {
+      if (aSeqWiresOut->Value(ind).Closed())
+        aSeqClosedWires->Append(aSeqWiresOut->Value(ind));
+      else
+        aSeqOpenWires->Append(aSeqWiresOut->Value(ind));
     }
 
-    // basic face
-    TopoDS_Shape FFace;
-    GEOMImpl_Block6Explorer::MakeFace(W1, aCI.GetIsPlanar(), FFace);
-    if (FFace.IsNull()) {
-      Standard_ConstructionError::Raise("Face construction failed");
+    if (aSeqClosedWires->Length() < 1) {
+      Standard_ConstructionError::Raise
+        ("There is no closed contour can be built from the given arguments");
     }
 
-    if (nbshapes == 1) {
-      aShape = FFace;
+    // 4. Build a face / list of faces from all the obtained closed wires
 
-    } else {
+    // 4.a. Basic face
+    TopoDS_Shape aFFace;
+    TopoDS_Wire aW1 = TopoDS::Wire(aSeqClosedWires->Value(1));
+    GEOMImpl_Block6Explorer::MakeFace(aW1, aCI.GetIsPlanar(), aFFace);
+    if (aFFace.IsNull()) {
+      Standard_ConstructionError::Raise("Face construction failed");
+    }
+
+    // 4.b. Add other wires
+    if (aSeqClosedWires->Length() == 1) {
+      aShape = aFFace;
+    }
+    else {
       TopoDS_Compound C;
       BRep_Builder aBuilder;
       aBuilder.MakeCompound(C);
       BRepAlgo_FaceRestrictor FR;
 
-      TopAbs_Orientation OriF = FFace.Orientation();
-      TopoDS_Shape aLocalS = FFace.Oriented(TopAbs_FORWARD);
+      TopAbs_Orientation OriF = aFFace.Orientation();
+      TopoDS_Shape aLocalS = aFFace.Oriented(TopAbs_FORWARD);
       FR.Init(TopoDS::Face(aLocalS), Standard_False, Standard_True);
 
-      for (int ind = 1; ind <= nbshapes; ind++) {
-        Handle(GEOM_Function) aRefWire_i =
-          Handle(GEOM_Function)::DownCast(aShapes->Value(ind));
-        TopoDS_Shape aWire_i = aRefWire_i->GetValue();
-        if (aWire_i.IsNull()) Standard_NullObject::Raise("Argument Shape is null");
-       TopoDS_Wire W_i;
-       if(aWire_i.ShapeType() == TopAbs_WIRE) {
-         W_i = TopoDS::Wire(aWire_i);
-       }
-       else if(aWire_i.ShapeType() == TopAbs_EDGE && aWire_i.Closed()) {
-         BRepBuilderAPI_MakeWire MW1;
-         MW1.Add(TopoDS::Edge(aWire_i));
-         if (!MW1.IsDone()) {
-           Standard_ConstructionError::Raise("Wire construction failed");
-         }
-          W_i = MW1;  
-       }
-       else {
-         Standard_NullObject::Raise
-           ("Shape for face construction is neither a wire nor closed edges");
-       }
-       FR.Add(W_i);
+      for (ind = 1; ind <= aSeqClosedWires->Length(); ind++) {
+        TopoDS_Wire aW = TopoDS::Wire(aSeqClosedWires->Value(ind));
+        FR.Add(aW);
       }
 
       FR.Perform();
@@ -270,6 +276,26 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const
         }
       }
     }
+
+    // 5. Add all open wires to the result
+    if (aSeqOpenWires->Length() > 0) {
+      //Standard_ConstructionError::Raise("There are some open wires");
+      TopoDS_Compound C;
+      BRep_Builder aBuilder;
+      if (aSeqClosedWires->Length() == 1) {
+        aBuilder.MakeCompound(C);
+        aBuilder.Add(C, aShape);
+      }
+      else {
+        C = TopoDS::Compound(aShape);
+      }
+
+      for (ind = 1; ind <= aSeqOpenWires->Length(); ind++) {
+        aBuilder.Add(C, aSeqOpenWires->Value(ind));
+      }
+
+      aShape = C;
+    }
   }
   else if (aType == SHELL_FACES) {
     Handle(TColStd_HSequenceOfTransient) aShapes = aCI.GetShapes();
@@ -395,13 +421,13 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const
     if( Copy.IsDone() ) {
       TopoDS_Shape tds = Copy.Shape();
       if( tds.IsNull() ) {
-       Standard_ConstructionError::Raise("Orientation aborted : Can not reverse the shape");
+        Standard_ConstructionError::Raise("Orientation aborted : Can not reverse the shape");
       }
 
       if( tds.Orientation() == TopAbs_FORWARD)
-       tds.Orientation(TopAbs_REVERSED) ;
+        tds.Orientation(TopAbs_REVERSED);
       else
-       tds.Orientation(TopAbs_FORWARD) ;
+        tds.Orientation(TopAbs_FORWARD);
 
       aShape = tds;
     }
@@ -462,5 +488,5 @@ const Handle(GEOMImpl_ShapeDriver) Handle(GEOMImpl_ShapeDriver)::DownCast(const
      }
   }
 
-  return _anOtherObject ;
+  return _anOtherObject;
 }
index adf62991755cde5a01708b519ce6ab97d87a52c5..be924b3f7d9eed2a21c2f86671ceef0e91a25573 100755 (executable)
 #define EXPORT_SHAPE 1
 #define IMPORT_SHAPE 1
 
-#define POINT_XYZ       1
-#define POINT_XYZ_REF   2
-#define POINT_CURVE_PAR 3
-//#define POINT_FACE_PAR 4
+#define POINT_XYZ                1
+#define POINT_XYZ_REF            2
+#define POINT_CURVE_PAR          3
+#define POINT_LINES_INTERSECTION 4
+//#define POINT_FACE_PAR 5
 
 #define VECTOR_TWO_PNT  1
 #define VECTOR_DX_DY_DZ 2
 #define VECTOR_TANGENT_CURVE_PAR 3
+#define VECTOR_FACE_NORMALE 4
 
 #define PLANE_PNT_VEC   1
 #define PLANE_FACE      2
 #define PLANE_THREE_PNT 3
 #define PLANE_TANGENT_FACE 4
 
-#define LINE_TWO_PNT 1
-#define LINE_PNT_DIR 2
+#define LINE_TWO_PNT   1
+#define LINE_PNT_DIR   2
+#define LINE_TWO_FACES 3
 
 #define TRANSLATE_TWO_POINTS      1
 #define TRANSLATE_VECTOR          2
 #define SPHERE_R     1
 #define SPHERE_PNT_R 2
 
-#define PRISM_BASE_VEC_H   1
-#define PRISM_BASE_TWO_PNT 2
+#define PRISM_BASE_VEC_H         1
+#define PRISM_BASE_TWO_PNT       2
+#define PRISM_BASE_VEC_H_2WAYS   3
+#define PRISM_BASE_TWO_PNT_2WAYS 4
 
-#define REVOLUTION_BASE_AXIS_ANGLE 1
+#define REVOLUTION_BASE_AXIS_ANGLE       1
+#define REVOLUTION_BASE_AXIS_ANGLE_2WAYS 2
 
 #define PIPE_BASE_PATH 1
 #define PIPE_DIFFERENT_SECTIONS 2
 #define PIPE_SHELL_SECTIONS 3
+#define PIPE_SHELLS_WITHOUT_PATH 4
 
 #define THRUSECTIONS_RULED 1
 #define THRUSECTIONS_SMOOTHED 2
 
 #define CIRCLE_THREE_PNT 1
 #define CIRCLE_PNT_VEC_R 2
+#define CIRCLE_CENTER_TWO_PNT 3
 
 #define SPLINE_BEZIER        1
 #define SPLINE_INTERPOLATION 2
 #define CIRC_ARC_THREE_PNT 1
 #define CIRC_ARC_CENTER    2
 
-#define FILLET_SHAPE_ALL   1
-#define FILLET_SHAPE_EDGES 2
-#define FILLET_SHAPE_FACES 3
-
-#define CHAMFER_SHAPE_ALL   1
-#define CHAMFER_SHAPE_EDGE  2
-#define CHAMFER_SHAPE_FACES 3
+#define FILLET_SHAPE_ALL      1
+#define FILLET_SHAPE_EDGES    2
+#define FILLET_SHAPE_FACES    3
+#define FILLET_SHAPE_EDGES_2R 4
+#define FILLET_SHAPE_FACES_2R 5
+
+#define CHAMFER_SHAPE_ALL      1
+#define CHAMFER_SHAPE_EDGE     2
+#define CHAMFER_SHAPE_FACES    3
+#define CHAMFER_SHAPE_EDGES    4
+#define CHAMFER_SHAPE_EDGE_AD  5
+#define CHAMFER_SHAPE_FACES_AD 6
+#define CHAMFER_SHAPE_EDGES_AD 7
 
 #define WIRE_EDGES          1
 #define FACE_WIRE           2
index 6ffbd0ce8b1fe56ab7ed804a1da1d600997e3e9d..0c025b8b75de5ecafa4539f18c8fcaeae8f606a7 100644 (file)
@@ -108,21 +108,22 @@ dist_libGEOMimpl_la_SOURCES = \
 
 # 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)/../NMTAlgo \
        -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 \
-       ../NMTAlgo/libNMTAlgo.la \
        ../GEOMAlgo/libGEOMAlgo.la \
        ../ShHealOper/libShHealOper.la \
        ../ARCHIMEDE/libGEOMArchimede.la \
index 83718a6791e75e4887ffc09cfce6a3f8c25d503e..10c901d73ef713ab88372480a472479208fbe4e9 100644 (file)
@@ -24,6 +24,7 @@
 //
 
 #include "GEOMToolsGUI.h"
+#include "GEOMToolsGUI_DeleteDlg.h"
 
 #include <GeometryGUI.h>
 #include <GEOMBase.h>
@@ -67,14 +68,19 @@ typedef QMap<QString, QString> FilterMap;
 static QString getFileName( QWidget*           parent,
                            const QString&     initial,
                            const FilterMap&   filterMap,
+                            const QStringList& filters,
                            const QString&     caption,
                            bool               open,
                            QString&           format )
 {
   static QString lastUsedFilter;
-  QStringList filters;
-  for ( FilterMap::const_iterator it = filterMap.begin(); it != filterMap.end(); ++it )
-    filters.push_back( it.key() );
+  //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", Qt::CaseInsensitive ) )
+      aBrepFilter = it.key();
+  }
 
   SUIT_FileDlg* fd = new SUIT_FileDlg( parent, open, true, true );
   if ( !caption.isEmpty() )
@@ -83,8 +89,14 @@ static QString getFileName( QWidget*           parent,
   if ( !initial.isEmpty() )
     fd->selectFile( initial );
 
-  if ( !lastUsedFilter.isEmpty() && filterMap.contains( lastUsedFilter ) )
+  fd->setFilters( filters );
+  
+  if ( !lastUsedFilter.isEmpty() && filterMap.contains( lastUsedFilter ) ) {
     fd->selectFilter( lastUsedFilter );
+  }
+  else if ( !aBrepFilter.isEmpty() ) {
+    fd->selectFilter( aBrepFilter );
+  }
 
   fd->setFilters( filters );
 
@@ -230,6 +242,16 @@ bool GEOMToolsGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent)
        OnNbIsos();
        break;
       }
+    case 8035: // AUTO COLOR - POPUP VIEWER
+      {
+       OnAutoColor();
+       break;
+      }
+    case 8036: // DISABLE AUTO COLOR - POPUP VIEWER
+      {
+       OnDisableAutoColor();
+       break;
+      }
     case 9024 : // OPEN - OBJBROSER POPUP
       {
        OnOpen();
@@ -275,7 +297,7 @@ void GEOMToolsGUI::OnEditDelete()
        // 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() );
+       CORBA::String_var geomIOR = app->orb()->object_to_string( GeometryGUI::GetGeomGen() );
        QString geomComp = getParentComponent( aStudy->FindObjectIOR( geomIOR.in() ) );
 
        if ( parentComp != geomComp )  {
@@ -287,11 +309,27 @@ void GEOMToolsGUI::OnEditDelete()
        }
        // VSR 17/11/04: check if all objects selected belong to GEOM component <-- finish
 
-       if ( SUIT_MessageBox::warning( app->desktop(),
-                                      QObject::tr( "GEOM_WRN_WARNING" ),
-                                      QObject::tr( "GEOM_REALLY_DELETE" ),
-                                      QObject::tr( "GEOM_BUT_YES" ),
-                                      QObject::tr( "GEOM_BUT_NO" ), 1 ) != 0 )
+       QStringList aNameList;
+       for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) {
+         Handle(SALOME_InteractiveObject) anIObject = It.Value();
+         QString aName = anIObject->getName();
+         if ( aName != "" && aName[ 0 ] != '*' ) {
+           aNameList.append( aName );
+         
+           _PTR(SObject) obj ( aStudy->FindObjectID( anIObject->getEntry() ) );
+           _PTR(ChildIterator) it ( aStudy->NewChildIterator( obj ) );
+           for ( it->InitEx( true ); it->More(); it->Next() ) {
+             _PTR(SObject) child( it->Value() );
+             QString aName = child->GetName().c_str();
+             if ( aName != "" && aName[ 0 ] != '*' ) {
+               aNameList.append( aName );
+             }
+           }
+         }
+       }
+
+       GEOMToolsGUI_DeleteDlg dlg( app->desktop(), aNameList );
+       if ( !dlg.exec() )
          return;
 
        //      QAD_Operation* op = new SALOMEGUI_ImportOperation(.....);
@@ -347,7 +385,7 @@ void GEOMToolsGUI::OnEditDelete()
           RemoveObjectWithChildren(obj, aStudy, views, disp);
 
          // Remove objects from Study
-         aStudyBuilder->RemoveObject( obj );
+         aStudyBuilder->RemoveObjectWithChildren( obj );
 
          //deleted = true;
        } // MAIN LOOP of selected
@@ -449,15 +487,18 @@ bool GEOMToolsGUI::Import()
 
   // 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] );
+  }
 
   QString fileType;
 
-  QString fileName = getFileName(app->desktop(), "", aMap,
+  QString fileName = getFileName(app->desktop(), "", aMap, filters,
                                  tr("GEOM_MEN_IMPORT"), true, fileType);
 
   if (fileType.isEmpty() )
@@ -554,10 +595,13 @@ bool GEOMToolsGUI::Export()
 
   // Obtain a list of available export formats
   FilterMap aMap;
+  QStringList filters;
   GEOM::string_array_var aFormats, aPatterns;
   aInsOp->ExportTranslators( 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] );
+  }
 
   // Get selected objects
   LightApp_SelectionMgr* sm = app->selectionMgr();
@@ -577,7 +621,7 @@ bool GEOMToolsGUI::Export()
       continue;
 
     QString fileType;
-    QString file = getFileName(app->desktop(), QString( IObject->getName() ), aMap,
+    QString file = getFileName(app->desktop(), QString( IObject->getName() ), aMap, filters,
                               tr("GEOM_MEN_EXPORT"), false, fileType);
 
     // User has pressed "Cancel" --> stop the operation
index e3602ab136b64802dfbabb191f1fc0ee41e503b4..b646ff9f65d23d9750463b21654a2d78ec06e0dc 100644 (file)
@@ -62,11 +62,13 @@ private:
   void         OnCheckGeometry();
 
   // Popup commands
+  void         OnAutoColor();
+  void         OnDisableAutoColor();
   void         OnColor();
   void         OnTransparency();
   void         OnNbIsos();
   void         OnOpen();
-  void         OnSelectOnly( int );
+  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.
@@ -83,7 +85,6 @@ private:
   bool         CheckSubObjectInUse( _PTR(SObject),
                                    _PTR(SObject),
                                    _PTR(Study) );
-    
 };
 
 #endif // GEOMTOOLSGUI_H
index ac6fa4bd498a53bfc1f4c04261d0743faec123da..2be9e4c79c3337620eb53591fdb0b2c26a5f1e00 100644 (file)
 #include <PyConsole_Console.h>
 
 #include "GEOMToolsGUI.h"
+#include "GEOMToolsGUI_TransparencyDlg.h"
+#include "GEOMToolsGUI_NbIsosDlg.h"
 
 #include <GeometryGUI.h>
 #include <GEOM_Displayer.h>
-#include "GEOMToolsGUI_TransparencyDlg.h"
-#include "GEOMToolsGUI_NbIsosDlg.h"        // Method ISOS adjustement
 
 #include <GEOMBase.h>
+#include <GEOM_Actor.h>
 
 #include <SALOME_ListIO.hxx>
 #include <SALOME_ListIteratorOfListIO.hxx>
 
+#include <SOCC_Prs.h>
+
+#include <SVTK_Prs.h>
 #include <SVTK_ViewModel.h>
 #include <SVTK_ViewWindow.h>
 #include <SVTK_View.h>
@@ -57,6 +61,8 @@
 #include <LightApp_SelectionMgr.h>
 #include <LightApp_NameDlg.h>
 
+#include <GEOMImpl_Types.hxx>
+
 #include "utilities.h"
 
 // OCCT Includes
 
 // QT Includes
 #include <QColorDialog>
+#include <QList>
 
-using namespace std;
-
+// VTK includes
+#include <vtkRenderer.h>
 
 void GEOMToolsGUI::OnSettingsColor()
 {
@@ -149,11 +156,147 @@ void GEOMToolsGUI::OnCheckGeometry()
     pyConsole->exec("from GEOM_usinggeom import *");
 }
 
+void GEOMToolsGUI::OnAutoColor()
+{
+  QList<SALOME_Prs> aListOfGroups;
+
+  SALOME_ListIO selected;
+  SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+  if( !app )
+    return;
+
+  LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
+  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+  if( !aSelMgr || !appStudy )
+    return;
+
+  aSelMgr->selectedObjects( selected );
+  if( selected.IsEmpty() )
+    return;
+
+  Handle(SALOME_InteractiveObject) anIObject = selected.First();
+
+  _PTR(Study) aStudy = appStudy->studyDS();
+  _PTR(SObject) aMainSObject( aStudy->FindObjectID( anIObject->getEntry() ) );
+  GEOM::GEOM_Object_var aMainObject = GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aMainSObject));
+  if( CORBA::is_nil( aMainObject ) )
+    return;
+
+  aMainObject->SetAutoColor( true );
+
+  QList<SALOMEDS::Color> aReservedColors;
+
+  GEOM_Displayer aDisp (appStudy);
+
+  SALOME_View* vf = aDisp.GetActiveView();
+
+  SUIT_ViewWindow* window = app->desktop()->activeWindow();
+  bool isOCC = ( window && window->getViewManager()->getType() == OCCViewer_Viewer::Type() );
+  bool isVTK = ( window && window->getViewManager()->getType() == SVTK_Viewer::Type() );
+
+  for( _PTR(ChildIterator) it( aStudy->NewChildIterator( aMainSObject ) ); it->More(); it->Next() )
+  {
+    _PTR(SObject) aChildSObject( it->Value() );
+    GEOM::GEOM_Object_var aChildObject = GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aChildSObject));
+    if( CORBA::is_nil( aChildObject ) )
+      continue;
+
+    if( aChildObject->GetType() != GEOM_GROUP )
+      continue;
+
+    SALOMEDS::Color aColor = GEOM_Displayer::getUniqueColor( aReservedColors );
+    aChildObject->SetColor( aColor );
+    aReservedColors.append( aColor );
+
+    QColor c( (int)( aColor.R * 255.0 ), (int)( aColor.G * 255.0 ), (int)( aColor.B * 255.0 ) );
+
+    SALOME_Prs* aPrs = vf->CreatePrs( aChildSObject->GetID().c_str() );
+
+    if ( isVTK )
+    {
+      SVTK_ViewWindow* vtkVW = dynamic_cast<SVTK_ViewWindow*>( window );
+      if ( !vtkVW )
+       return;
+      SVTK_View* aView = vtkVW->getView();
+      SUIT_OverrideCursor();
+      for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() )
+       aView->SetColor( It.Value(), c );
+    }
+    else if ( isOCC )
+    {
+      OCCViewer_Viewer* vm = dynamic_cast<OCCViewer_Viewer*>( window->getViewManager()->getViewModel() );
+      Handle(AIS_InteractiveContext) ic = vm->getAISContext();
+
+      SOCC_Prs* anOCCPrs = dynamic_cast<SOCC_Prs*>( aPrs );
+      if( !anOCCPrs )
+       continue;
+
+      AIS_ListOfInteractive aList;
+      anOCCPrs->GetObjects( aList );
+      if( !aList.Extent() )
+       continue;
+
+      Handle(AIS_InteractiveObject) io = aList.First();
+      if( io.IsNull() )
+       continue;
+
+      Quantity_Color aQuanColor( c.red() / 255., c.green() / 255., c.blue() / 255., Quantity_TOC_RGB );
+
+      // Set color for a point
+      Handle(AIS_Drawer) aCurDrawer = io->Attributes();
+      Handle(Prs3d_PointAspect) aCurPointAspect = aCurDrawer->PointAspect();
+      Quantity_Color aCurColor;
+      Standard_Real aCurScale;
+      Aspect_TypeOfMarker aCurTypeOfMarker;
+      aCurPointAspect->Aspect()->Values( aCurColor, aCurTypeOfMarker, aCurScale );
+      aCurDrawer->SetPointAspect( new Prs3d_PointAspect( aCurTypeOfMarker, aQuanColor, aCurScale) );
+      ic->SetLocalAttributes( io, aCurDrawer );
+
+      io->SetColor( aQuanColor );
+      if ( io->IsKind( STANDARD_TYPE(GEOM_AISShape) ) )
+       Handle(GEOM_AISShape)::DownCast( io )->SetShadingColor( aQuanColor );
+
+      io->Redisplay( Standard_True );
+    }
+  }
+
+  app->updateActions(); //SRN: To update a Save button in the toolbar
+}
+
+void GEOMToolsGUI::OnDisableAutoColor()
+{
+  SALOME_ListIO selected;
+  SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+  if( !app )
+    return;
+
+  LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
+  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+  if( !aSelMgr || !appStudy )
+    return;
+
+  aSelMgr->selectedObjects( selected );
+  if( selected.IsEmpty() )
+    return;
+
+  Handle(SALOME_InteractiveObject) anIObject = selected.First();
+
+  _PTR(Study) aStudy = appStudy->studyDS();
+  _PTR(SObject) aMainSObject( aStudy->FindObjectID( anIObject->getEntry() ) );
+  GEOM::GEOM_Object_var aMainObject =  GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aMainSObject));
+  if( CORBA::is_nil( aMainObject ) )
+    return;
+
+  aMainObject->SetAutoColor( false );
+
+}
+
 void GEOMToolsGUI::OnColor()
 {
   SALOME_ListIO selected;
   SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
-  if ( app ) {
+  SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+  if ( app && appStudy ) {
     LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
     if ( aSelMgr ) {
       aSelMgr->selectedObjects( selected );
@@ -167,7 +310,7 @@ void GEOMToolsGUI::OnColor()
            return;
          SVTK_View* aView = vtkVW->getView();
          QColor initcolor = aView->GetColor( selected.First()  );
-         QColor c = QColorDialog::getColor( QColor(), app->desktop() );
+         QColor c = QColorDialog::getColor( initcolor, app->desktop() );
          if ( c.isValid() ) {
            SUIT_OverrideCursor();
            for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) {
@@ -205,6 +348,19 @@ void GEOMToolsGUI::OnColor()
                    Handle(GEOM_AISShape)::DownCast( io )->SetShadingColor( aColor );
 
                  io->Redisplay( Standard_True );
+
+                 // store color to GEOM_Object
+                 _PTR(Study) aStudy = appStudy->studyDS();
+                 _PTR(SObject) aSObject( aStudy->FindObjectID( It.Value()->getEntry() ) );
+                 GEOM::GEOM_Object_var anObject =
+                   GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(aSObject));
+
+                 SALOMEDS::Color aSColor;
+                 aSColor.R = (double)c.red() / 255.0;
+                 aSColor.G = (double)c.green() / 255.0;
+                 aSColor.B = (double)c.blue() / 255.0;
+                 anObject->SetColor( aSColor );
+                 anObject->SetAutoColor( false );
                }
              }
            } // if c.isValid()
@@ -226,22 +382,84 @@ void GEOMToolsGUI::OnTransparency()
 void GEOMToolsGUI::OnNbIsos()
 {
   SUIT_ViewWindow* window = SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
+  
   bool isOCC = ( window && window->getViewManager()->getType() == OCCViewer_Viewer::Type() );
-
-  if ( !isOCC )
-    return;
-
-  OCCViewer_Viewer* vm = dynamic_cast<OCCViewer_Viewer*>( window->getViewManager()->getViewModel() );
-  Handle (AIS_InteractiveContext) ic = vm->getAISContext();
-
-  ic->InitCurrent();
-  if ( ic->MoreCurrent() ) {
-    Handle(GEOM_AISShape) CurObject = Handle(GEOM_AISShape)::DownCast(ic->Current());
-    Handle(AIS_Drawer)    CurDrawer = CurObject->Attributes();
-
-    int UIso = CurDrawer->UIsoAspect()->Number();
-    int VIso = CurDrawer->VIsoAspect()->Number();
-
+  bool isVTK = ( window && window->getViewManager()->getType() == SVTK_Viewer::Type() );
+
+  if(isOCC){ // if is OCCViewer
+
+    OCCViewer_Viewer* vm = dynamic_cast<OCCViewer_Viewer*>( window->getViewManager()->getViewModel() );
+    Handle (AIS_InteractiveContext) ic = vm->getAISContext();
+
+    ic->InitCurrent();
+    if ( ic->MoreCurrent() ) {
+      Handle(GEOM_AISShape) CurObject = Handle(GEOM_AISShape)::DownCast(ic->Current());
+      Handle(AIS_Drawer)    CurDrawer = CurObject->Attributes();
+      
+      int UIso = CurDrawer->UIsoAspect()->Number();
+      int VIso = CurDrawer->VIsoAspect()->Number();
+      
+      GEOMToolsGUI_NbIsosDlg * NbIsosDlg =
+       new GEOMToolsGUI_NbIsosDlg( SUIT_Session::session()->activeApplication()->desktop() );
+      
+      NbIsosDlg->setU( UIso );
+      NbIsosDlg->setV( VIso );
+      
+      if ( NbIsosDlg->exec() ) {
+       SUIT_OverrideCursor();
+       for(; ic->MoreCurrent(); ic->NextCurrent()) {
+         CurObject = Handle(GEOM_AISShape)::DownCast(ic->Current());
+         Handle(AIS_Drawer) CurDrawer = CurObject->Attributes();
+         
+         int nbUIso = NbIsosDlg->getU();
+         int nbVIso = NbIsosDlg->getV();
+         
+         CurDrawer->SetUIsoAspect( new Prs3d_IsoAspect(Quantity_NOC_GRAY75, Aspect_TOL_SOLID, 0.5 , nbUIso) );
+         CurDrawer->SetVIsoAspect( new Prs3d_IsoAspect(Quantity_NOC_GRAY75, Aspect_TOL_SOLID, 0.5 , nbVIso) );
+         
+         ic->SetLocalAttributes(CurObject, CurDrawer);
+         ic->Redisplay(CurObject);
+       }
+      }
+    }
+  }
+  else if(isVTK){ // if is VTKViewer
+    //
+    // Warning. It's works incorrect. must be recheked.
+    //
+    SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+    if ( !app )
+      return;
+    LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
+    if ( !aSelMgr )
+      return;
+    SALOME_ListIO selected;
+    aSelMgr->selectedObjects( selected );
+    if ( selected.IsEmpty() )
+      return;
+    
+    Handle(SALOME_InteractiveObject) FirstIOS =  selected.First();
+    if ( FirstIOS.IsNull() )
+      return;
+    
+    SVTK_ViewWindow* vtkVW = dynamic_cast<SVTK_ViewWindow*>( window );
+    if ( !vtkVW )
+      return;
+    
+    SVTK_View* aView = vtkVW->getView();
+    vtkActorCollection* aCollection = aView->getRenderer()->GetActors();
+    
+    int UIso = 0;
+    int VIso = 0;
+    if(aCollection){
+      aCollection->InitTraversal();
+    }
+    
+    vtkActor *anAct = aCollection->GetNextActor();
+    if(GEOM_Actor *anActor = dynamic_cast<GEOM_Actor*>(anAct)){
+      anActor->GetNbIsos(UIso,VIso);
+    }
+    
     GEOMToolsGUI_NbIsosDlg * NbIsosDlg =
       new GEOMToolsGUI_NbIsosDlg( SUIT_Session::session()->activeApplication()->desktop() );
 
@@ -250,21 +468,18 @@ void GEOMToolsGUI::OnNbIsos()
 
     if ( NbIsosDlg->exec() ) {
       SUIT_OverrideCursor();
-      for(; ic->MoreCurrent(); ic->NextCurrent()) {
-        CurObject = Handle(GEOM_AISShape)::DownCast(ic->Current());
-       Handle(AIS_Drawer) CurDrawer = CurObject->Attributes();
-
-       int nbUIso = NbIsosDlg->getU();
-       int nbVIso = NbIsosDlg->getV();
-
-       CurDrawer->SetUIsoAspect( new Prs3d_IsoAspect(Quantity_NOC_GRAY75, Aspect_TOL_SOLID, 0.5 , nbUIso) );
-       CurDrawer->SetVIsoAspect( new Prs3d_IsoAspect(Quantity_NOC_GRAY75, Aspect_TOL_SOLID, 0.5 , nbVIso) );
-
-       ic->SetLocalAttributes(CurObject, CurDrawer);
-       ic->Redisplay(CurObject);
+      
+      while(anAct = aCollection->GetNextActor()) {
+       if(GEOM_Actor *anActor = dynamic_cast<GEOM_Actor*>(anAct)){
+         // There are no casting to needed actor.
+         UIso = NbIsosDlg->getU();
+         VIso = NbIsosDlg->getV();
+         int aIsos[2]={UIso,VIso};
+         anActor->SetNbIsos(aIsos);
+       }
       }
     }
-  }
+  } // end vtkviewer
 }
 
 void GEOMToolsGUI::OnOpen()
diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.cxx b/src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.cxx
new file mode 100644 (file)
index 0000000..107e2ec
--- /dev/null
@@ -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   : GEOMToolsGUI_DeleteDlg.cxx
+// Author : Dmitry Matveitchev, Open CASCADE S.A.S.
+//
+
+#include "GEOMToolsGUI_DeleteDlg.h"
+
+#include <QLabel>
+#include <QPushButton>
+#include <QTextBrowser>
+#include <QStringList>
+#include <QGridLayout>
+
+/*!
+  \brief Constructor.
+  \param parent parent widget
+*/
+GEOMToolsGUI_DeleteDlg::GEOMToolsGUI_DeleteDlg( QWidget* parent, const QStringList& objects )
+: 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* lab = new QLabel( tr( "GEOM_REALLY_DELETE" ).arg( objects.count() ), this );
+
+  QTextBrowser* viewer = new QTextBrowser( this );
+  viewer->setText( QString( "- " ).arg( objects.join( "<br> -" ) ) );
+
+  QPushButton* buttonYes = new QPushButton( tr( "GEOM_BUT_YES" ), this );
+  QPushButton* buttonNo  = new QPushButton( tr( "GEOM_BUT_NO" ),  this );
+
+  topLayout->addWidget( lab,       0, 0, 1, 3 );
+  topLayout->addWidget( viewer,    1, 0, 1, 3 );
+  topLayout->addWidget( buttonYes, 2, 0 );
+  topLayout->addWidget( buttonNo,  2, 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 (file)
index 0000000..d54c8f0
--- /dev/null
@@ -0,0 +1,42 @@
+// 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   : GEOMToolsGUI_DeleteDlg.h
+// Author : Dmitry Matveitchev, Open CASCADE S.A.S.
+//
+
+#ifndef GEOMTOOLSGUI_DELETEDLG_H
+#define GEOMTOOLSGUI_DELETEDLG_H
+
+#include <QDialog>
+
+class QStringList;
+
+class GEOMToolsGUI_DeleteDlg : public QDialog
+{ 
+  Q_OBJECT
+
+public:
+  GEOMToolsGUI_DeleteDlg( QWidget*, const QStringList& );
+  ~GEOMToolsGUI_DeleteDlg();
+};
+
+#endif // GEOMTOOLSGUI_DELETEDLG_H
index 3565e4e6d2d9e4f306e02e02edd61d11ec737fe0..be992a4a138da5621cf68fc9ad02b8d258ee56fd 100644 (file)
@@ -122,7 +122,7 @@ GEOMToolsGUI_NbIsosDlg::GEOMToolsGUI_NbIsosDlg(QWidget* parent )
   MyDialogLayout->addWidget(GroupC1, 0, 0);
   MyDialogLayout->addWidget(GroupButtons, 1, 0);
 
-  myHelpFileName = "isos.htm";
+  myHelpFileName = "isolines_page.html";
   
   // signals and slots connections
   connect(buttonOk, SIGNAL(clicked()), this, SLOT(accept()));
index 88c86a4db6f619355f4e875889e07c134d22f860..bb893b24d8490dc6f2c1738128c8d1466cd0992d 100644 (file)
@@ -146,7 +146,7 @@ GEOMToolsGUI_TransparencyDlg::GEOMToolsGUI_TransparencyDlg( QWidget* parent )
   //  mySlider->setValue( 5 ) ;
   ValueHasChanged(mySlider->value());
   
-  myHelpFileName = "transparency.htm";
+  myHelpFileName = "transparency_page.html";
 
   // signals and slots connections : after ValueHasChanged()
   connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
index 98847035891082c3dcbee5300ae94f955c5f55c0..dd6c92cb8f6d3e5bd376791ea5b7f58e2fe4102f 100644 (file)
@@ -34,15 +34,18 @@ dist_libGEOMToolsGUI_la_SOURCES =           \
        GEOMToolsGUI.h                          \
        GEOMToolsGUI_NbIsosDlg.h                \
        GEOMToolsGUI_TransparencyDlg.h          \
+       GEOMToolsGUI_DeleteDlg.h                \
                                                \
        GEOMToolsGUI.cxx                        \
        GEOMToolsGUI_1.cxx                      \
        GEOMToolsGUI_TransparencyDlg.cxx        \
-       GEOMToolsGUI_NbIsosDlg.cxx
+       GEOMToolsGUI_NbIsosDlg.cxx              \
+       GEOMToolsGUI_DeleteDlg.cxx
 
 MOC_FILES =                                    \
        GEOMToolsGUI_TransparencyDlg_moc.cxx    \
-       GEOMToolsGUI_NbIsosDlg_moc.cxx
+       GEOMToolsGUI_NbIsosDlg_moc.cxx          \
+       GEOMToolsGUI_DeleteDlg_moc.cxx
 
 nodist_libGEOMToolsGUI_la_SOURCES =            \
        $(MOC_FILES)
index 83a98e3a40a427682b8c71d7d40f389805f016ae..276a9d556a1a5623b5c5defb2ca7142db494f2ee 100644 (file)
@@ -349,6 +349,39 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePrismVecH
   return GetObject(anObject);
 }
 
+//=============================================================================
+/*!
+ *  MakePrismVecH2Ways
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePrismVecH2Ways
+                      (GEOM::GEOM_Object_ptr theBase, GEOM::GEOM_Object_ptr theVec,
+                      CORBA::Double theH)
+{
+  GEOM::GEOM_Object_var aGEOMObject;
+
+  //Set a not done flag
+  GetOperations()->SetNotDone();
+
+  if (theBase == NULL || theVec == NULL) return aGEOMObject._retn();
+
+  //Get the reference objects
+  Handle(GEOM_Object) aBase = GetOperations()->GetEngine()->GetObject
+    (theBase->GetStudyID(), theBase->GetEntry());
+  Handle(GEOM_Object) aVec = GetOperations()->GetEngine()->GetObject
+    (theVec->GetStudyID(), theVec->GetEntry());
+
+  if (aBase.IsNull() || aVec.IsNull()) return aGEOMObject._retn();
+
+  //Create the Prism
+  Handle(GEOM_Object) anObject =
+      GetOperations()->MakePrismVecH2Ways(aBase, aVec, theH);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
 //=============================================================================
 /*!
  *  MakePrismTwoPnt
@@ -387,6 +420,44 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePrismTwoPnt
   return GetObject(anObject);
 }
 
+//=============================================================================
+/*!
+ *  MakePrismTwoPnt2Ways
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePrismTwoPnt2Ways
+                                             (GEOM::GEOM_Object_ptr theBase,
+                                             GEOM::GEOM_Object_ptr thePoint1,
+                                             GEOM::GEOM_Object_ptr thePoint2)
+{
+  GEOM::GEOM_Object_var aGEOMObject;
+
+  //Set a not done flag
+  GetOperations()->SetNotDone();
+
+  if (theBase == NULL || thePoint1 == NULL || thePoint2 == NULL)
+    return aGEOMObject._retn();
+
+  //Get the reference objects
+  Handle(GEOM_Object) aBase = GetOperations()->GetEngine()->GetObject
+    (theBase->GetStudyID(), theBase->GetEntry());
+  Handle(GEOM_Object) aPoint1 = GetOperations()->GetEngine()->GetObject
+    (thePoint1->GetStudyID(), thePoint1->GetEntry());
+  Handle(GEOM_Object) aPoint2 = GetOperations()->GetEngine()->GetObject
+    (thePoint2->GetStudyID(), thePoint2->GetEntry());
+
+  if (aBase.IsNull() || aPoint1.IsNull() || aPoint2.IsNull())
+    return aGEOMObject._retn();
+
+  //Create the Prism
+  Handle(GEOM_Object) anObject =
+    GetOperations()->MakePrismTwoPnt2Ways(aBase, aPoint1, aPoint2);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
 //=============================================================================
 /*!
  *  MakePipe
@@ -452,6 +523,39 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeRevolutionAxisAngle
   return GetObject(anObject);
 }
 
+//=============================================================================
+/*!
+ *  MakeRevolutionAxisAngle2Ways
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeRevolutionAxisAngle2Ways
+                      (GEOM::GEOM_Object_ptr theBase, GEOM::GEOM_Object_ptr theAxis,
+                      CORBA::Double theAngle)
+{
+  GEOM::GEOM_Object_var aGEOMObject;
+
+  //Set a not done flag
+  GetOperations()->SetNotDone();
+
+  if (theBase == NULL || theAxis == NULL) return aGEOMObject._retn();
+
+  //Get the reference objects
+  Handle(GEOM_Object) aBase = GetOperations()->GetEngine()->GetObject
+    (theBase->GetStudyID(), theBase->GetEntry());
+  Handle(GEOM_Object) anAxis = GetOperations()->GetEngine()->GetObject
+    (theAxis->GetStudyID(), theAxis->GetEntry());
+
+  if (aBase.IsNull() || anAxis.IsNull()) return aGEOMObject._retn();
+
+  //Create the Revolution
+  Handle(GEOM_Object) anObject =
+      GetOperations()->MakeRevolutionAxisAngle2Ways(aBase, anAxis, theAngle);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
 //=============================================================================
 /*!
  *  MakeFilling
@@ -597,7 +701,7 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePipeWithShellSections
                  CORBA::Boolean theWithContact,
                  CORBA::Boolean theWithCorrections)
 {
-   GEOM::GEOM_Object_var aGEOMObject;
+  GEOM::GEOM_Object_var aGEOMObject;
 
   //Set a not done flag
   GetOperations()->SetNotDone();
@@ -659,3 +763,57 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePipeWithShellSections
 
   return GetObject(anObject);
 }
+
+
+//=============================================================================
+/*!
+ *  MakePipeShellsWithoutPath
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePipeShellsWithoutPath
+                 (const GEOM::ListOfGO& theBases,
+                 const GEOM::ListOfGO& theLocations)
+{
+  GEOM::GEOM_Object_var aGEOMObject;
+
+  //Set a not done flag
+  GetOperations()->SetNotDone();
+  Handle(TColStd_HSequenceOfTransient) aSeqBases = new TColStd_HSequenceOfTransient;
+  Handle(TColStd_HSequenceOfTransient) aSeqLocations = new TColStd_HSequenceOfTransient;
+  int ind=0, aNbBases=0, aNbLocs=0;
+  
+  //Get the shapes
+  aNbBases = theBases.length();
+  aNbLocs = theLocations.length();
+
+  if( aNbLocs &&  aNbBases != aNbLocs)
+    return aGEOMObject._retn();
+  
+  for (ind = 0; ind < aNbBases; ind++) {
+    if (theBases[ind] == NULL) continue;
+    Handle(GEOM_Object) aBase = GetOperations()->GetEngine()->
+      GetObject(theBases[ind]->GetStudyID(), theBases[ind]->GetEntry());
+    if(aBase.IsNull())
+      continue;
+    if(aNbLocs) {
+      Handle(GEOM_Object) aLoc = GetOperations()->GetEngine()->GetObject
+       (theLocations[ind]->GetStudyID(), theLocations[ind]->GetEntry());
+      if(aLoc.IsNull())
+       continue;
+      aSeqLocations->Append(aLoc);
+    }
+    aSeqBases->Append(aBase);
+  }
+
+  if(!aSeqBases->Length())
+    return aGEOMObject._retn();
+
+  // Make pipe
+  Handle(GEOM_Object) anObject =
+    GetOperations()->MakePipeShellsWithoutPath(aSeqBases,aSeqLocations);
+
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
index fe86685a90e684077ad46e8919b04ae7d1bbdcdd..f0397e5e9265d7ddf495bf064d176dbb429a4bba 100644 (file)
@@ -82,10 +82,18 @@ class GEOM_I_EXPORT GEOM_I3DPrimOperations_i :
                                       GEOM::GEOM_Object_ptr theVec,
                                       CORBA::Double theH);
 
+  GEOM::GEOM_Object_ptr MakePrismVecH2Ways (GEOM::GEOM_Object_ptr theBase,
+                                           GEOM::GEOM_Object_ptr theVec,
+                                           CORBA::Double theH);
+
   GEOM::GEOM_Object_ptr MakePrismTwoPnt (GEOM::GEOM_Object_ptr theBase,
                                         GEOM::GEOM_Object_ptr thePoint1,
                                         GEOM::GEOM_Object_ptr thePoint2);
 
+  GEOM::GEOM_Object_ptr MakePrismTwoPnt2Ways (GEOM::GEOM_Object_ptr theBase,
+                                             GEOM::GEOM_Object_ptr thePoint1,
+                                             GEOM::GEOM_Object_ptr thePoint2);
+
   GEOM::GEOM_Object_ptr MakePipe (GEOM::GEOM_Object_ptr theBase,
                                  GEOM::GEOM_Object_ptr thePath);
 
@@ -93,6 +101,10 @@ class GEOM_I_EXPORT GEOM_I3DPrimOperations_i :
                                                 GEOM::GEOM_Object_ptr theAxis,
                                                 CORBA::Double theAngle);
 
+  GEOM::GEOM_Object_ptr MakeRevolutionAxisAngle2Ways (GEOM::GEOM_Object_ptr theBase,
+                                                     GEOM::GEOM_Object_ptr theAxis,
+                                                     CORBA::Double theAngle);
+
   GEOM::GEOM_Object_ptr MakeFilling(GEOM::GEOM_Object_ptr theShape, CORBA::Long theMinDeg, CORBA::Long theMaxDeg, CORBA::Double theTol2D, CORBA::Double theTol3D, CORBA::Long theNbIter);
 
   GEOM::GEOM_Object_ptr MakeThruSections(const GEOM::ListOfGO& theSeqSections,
@@ -113,6 +125,9 @@ class GEOM_I_EXPORT GEOM_I3DPrimOperations_i :
                                                  CORBA::Boolean theWithContact,
                                                  CORBA::Boolean theWithCorrections);
 
+  GEOM::GEOM_Object_ptr MakePipeShellsWithoutPath(const GEOM::ListOfGO& theBases,
+                                                 const GEOM::ListOfGO& theLocations);
+
   ::GEOMImpl_I3DPrimOperations* GetOperations()
   { return (::GEOMImpl_I3DPrimOperations*)GetImpl(); }
 };
index 4257ae0a2c60bda215bd9162dac177b4182439d6..fe525509c27373495937fae0c32f2ba904f62d13 100644 (file)
@@ -105,6 +105,39 @@ GEOM::GEOM_Object_ptr GEOM_IBasicOperations_i::MakePointWithReference
   return GetObject(anObject);
 }
 
+//=============================================================================
+/*!
+ *  MakePointOnLinesIntersection
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_IBasicOperations_i::MakePointOnLinesIntersection
+                  (GEOM::GEOM_Object_ptr theLine1,  GEOM::GEOM_Object_ptr theLine2)
+{
+  GEOM::GEOM_Object_var aGEOMObject;
+
+  //Set a not done flag
+  GetOperations()->SetNotDone();
+
+  if (theLine1 == NULL || theLine2 == NULL) return aGEOMObject._retn();
+
+  //Get the reference Lines
+
+  Handle(GEOM_Object) aRef1 = GetOperations()->GetEngine()->GetObject
+    (theLine1->GetStudyID(), theLine1->GetEntry());
+  Handle(GEOM_Object) aRef2 = GetOperations()->GetEngine()->GetObject
+    (theLine2->GetStudyID(), theLine2->GetEntry());
+  if (aRef1.IsNull() || aRef2.IsNull()) return aGEOMObject._retn();
+
+  //Create the point
+
+  Handle(GEOM_Object) anObject =
+    GetOperations()->MakePointOnLinesIntersection(aRef1, aRef2);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
 //=============================================================================
 /*!
  *  MakePointOnCurve
@@ -290,6 +323,38 @@ GEOM::GEOM_Object_ptr GEOM_IBasicOperations_i::MakeLineTwoPnt
   return GetObject(anObject);
 }
 
+//=============================================================================
+/*!
+ *  MakeLineTwoFaces
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_IBasicOperations_i::MakeLineTwoFaces
+                 (GEOM::GEOM_Object_ptr theFace1, GEOM::GEOM_Object_ptr theFace2)
+{
+  GEOM::GEOM_Object_var aGEOMObject;
+
+  //Set a not done flag
+  GetOperations()->SetNotDone();
+
+  if (theFace1 == NULL || theFace2 == NULL) return aGEOMObject._retn();
+
+  //Get the reference points
+
+  Handle(GEOM_Object) aRef1 = GetOperations()->GetEngine()->GetObject
+    (theFace1->GetStudyID(), theFace1->GetEntry());
+  Handle(GEOM_Object) aRef2 = GetOperations()->GetEngine()->GetObject
+    (theFace2->GetStudyID(), theFace2->GetEntry());
+  if (aRef1.IsNull() || aRef2.IsNull()) return aGEOMObject._retn();
+
+  //Create the Line
+
+  Handle(GEOM_Object) anObject =
+    GetOperations()->MakeLineTwoFaces(aRef1, aRef2);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
 
 //=============================================================================
 /*!
index 9a54e2b96a49548fce93e0548aa010d1a64de932..753e0df1660e088c10fab0cf7350e49434a2de80 100644 (file)
@@ -53,6 +53,9 @@ class GEOM_I_EXPORT GEOM_IBasicOperations_i :
    GEOM::GEOM_Object_ptr MakePointOnCurve (GEOM::GEOM_Object_ptr theCurve,
                                           CORBA::Double theParameter);
 
+   GEOM::GEOM_Object_ptr MakePointOnLinesIntersection (GEOM::GEOM_Object_ptr theLine1,
+                                                      GEOM::GEOM_Object_ptr theLine2);
+
    GEOM::GEOM_Object_ptr MakeTangentOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
                                             CORBA::Double theParameter);
 
@@ -69,6 +72,9 @@ class GEOM_I_EXPORT GEOM_IBasicOperations_i :
    GEOM::GEOM_Object_ptr MakeLineTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
                                         GEOM::GEOM_Object_ptr thePnt2);
 
+   GEOM::GEOM_Object_ptr MakeLineTwoFaces (GEOM::GEOM_Object_ptr theFace1,
+                                          GEOM::GEOM_Object_ptr theFace2);
+
    GEOM::GEOM_Object_ptr MakePlaneThreePnt (GEOM::GEOM_Object_ptr thePnt1,
                                            GEOM::GEOM_Object_ptr thePnt2,
                                            GEOM::GEOM_Object_ptr thePnt3,
index c7a594259d8ae63c97c649ad2ab0adc87ef9deff..836451282d49f7b6cc464ca4701a8c1d02fe5fff 100644 (file)
@@ -99,7 +99,8 @@ GEOM::GEOM_Object_ptr GEOM_IBooleanOperations_i::MakePartition
                                       const GEOM::ListOfGO&   theRemoveIns,
                                       CORBA::Short            theLimit,
                                       CORBA::Boolean          theRemoveWebs,
-                                      const GEOM::ListOfLong& theMaterials)
+                                      const GEOM::ListOfLong& theMaterials,
+                                      CORBA::Short theKeepNonlimitShapes)
 {
   GEOM::GEOM_Object_var aGEOMObject;
 
@@ -166,6 +167,7 @@ GEOM::GEOM_Object_ptr GEOM_IBooleanOperations_i::MakePartition
   Handle(GEOM_Object) anObject =
     GetOperations()->MakePartition(aShapes, aTools, aKeepIns, aRemIns,
                                   theLimit, theRemoveWebs, aMaterials,
+                                  theKeepNonlimitShapes,
                                   /*PerformSelfIntersections*/Standard_True);
   if (!GetOperations()->IsDone() || anObject.IsNull())
     return aGEOMObject._retn();
@@ -185,7 +187,8 @@ GEOM::GEOM_Object_ptr GEOM_IBooleanOperations_i::MakePartitionNonSelfIntersected
                                       const GEOM::ListOfGO&   theRemoveIns,
                                       CORBA::Short            theLimit,
                                       CORBA::Boolean          theRemoveWebs,
-                                      const GEOM::ListOfLong& theMaterials)
+                                      const GEOM::ListOfLong& theMaterials,
+                                      CORBA::Short theKeepNonlimitShapes)
 {
   GEOM::GEOM_Object_var aGEOMObject;
 
@@ -252,6 +255,7 @@ GEOM::GEOM_Object_ptr GEOM_IBooleanOperations_i::MakePartitionNonSelfIntersected
   Handle(GEOM_Object) anObject =
     GetOperations()->MakePartition(aShapes, aTools, aKeepIns, aRemIns,
                                   theLimit, theRemoveWebs, aMaterials,
+                                  theKeepNonlimitShapes,
                                   /*PerformSelfIntersections*/Standard_False);
   if (!GetOperations()->IsDone() || anObject.IsNull())
     return aGEOMObject._retn();
index 52e597ed46832bd9d103c4146dcea11869c690b0..7379d00b8d6089f5cd685245c1f21031319d552d 100644 (file)
@@ -50,7 +50,8 @@ class GEOM_I_EXPORT GEOM_IBooleanOperations_i :
                                       const GEOM::ListOfGO&   theRemoveInside,
                                       CORBA::Short            theLimit,
                                       CORBA::Boolean          theRemoveWebs,
-                                      const GEOM::ListOfLong& theMaterials);
+                                      const GEOM::ListOfLong& theMaterials,
+                                      CORBA::Short theKeepNonlimitShapes);
 
   GEOM::GEOM_Object_ptr MakePartitionNonSelfIntersectedShape (const GEOM::ListOfGO&   theShapes,
                                                              const GEOM::ListOfGO&   theTools,
@@ -58,7 +59,8 @@ class GEOM_I_EXPORT GEOM_IBooleanOperations_i :
                                                              const GEOM::ListOfGO&   theRemoveInside,
                                                              CORBA::Short            theLimit,
                                                              CORBA::Boolean          theRemoveWebs,
-                                                             const GEOM::ListOfLong& theMaterials);
+                                                             const GEOM::ListOfLong& theMaterials,
+                                                             CORBA::Short theKeepNonlimitShapes);
 
 
   GEOM::GEOM_Object_ptr MakeHalfPartition (GEOM::GEOM_Object_ptr theShape,
index ea89b37092885c20d87bdf74e6b067d4bb58991b..3a15afb1b22a13b134b2db3fca8cd71ee8dae219 100644 (file)
@@ -119,6 +119,40 @@ GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeCircleThreePnt
   return GetObject(anObject);
 }
 
+//=============================================================================
+/*!
+ *  MakeCircleCenter2Pnt
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeCircleCenter2Pnt
+                      (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 Circle
+  Handle(GEOM_Object) anObject = GetOperations()->MakeCircleCenter2Pnt(aPnt1, aPnt2, aPnt3);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
 //=============================================================================
 /*!
  *  MakeEllipse
index f316dab52290ea16effa5f0e864dd1cf1ea1fcda..d341c457528365b0cc1dc49bb3d758c2cd8ed6c5 100644 (file)
@@ -48,6 +48,10 @@ class GEOM_I_EXPORT GEOM_ICurvesOperations_i :
                                            GEOM::GEOM_Object_ptr thePnt2,
                                            GEOM::GEOM_Object_ptr thePnt3);
 
+  GEOM::GEOM_Object_ptr MakeCircleCenter2Pnt (GEOM::GEOM_Object_ptr thePnt1,
+                                             GEOM::GEOM_Object_ptr thePnt2,
+                                             GEOM::GEOM_Object_ptr thePnt3);
+
   GEOM::GEOM_Object_ptr MakeEllipse (GEOM::GEOM_Object_ptr theCenter,
                                     GEOM::GEOM_Object_ptr theVector,
                                     double theRMajor, double theRMinor);
index 5b2430e9fc97d052fe0259970752816b825415b0..a9ec1fc6dae486a1f7e085f30232a641bd152da5 100644 (file)
@@ -114,6 +114,41 @@ GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeFilletEdges
   return GetObject(anObject);
 }
 
+//=============================================================================
+/*!
+ *  MakeFilletEdges R1 R2
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeFilletEdgesR1R2
+                     (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR1,
+                      CORBA::Double theR2, const GEOM::ListOfLong& theEdges)
+{
+  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 edges
+  int ind = 0;
+  int aLen = theEdges.length();
+  list<int> anEdges;
+  for (; ind < aLen; ind++) {
+    anEdges.push_back(theEdges[ind]);
+  }
+
+  //Create the Fillet
+  Handle(GEOM_Object) anObject =
+    GetOperations()->MakeFilletEdgesR1R2(aShapeRef, theR1, theR2, anEdges);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
 //=============================================================================
 /*!
  *  MakeFilletFaces
@@ -149,6 +184,41 @@ GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeFilletFaces
   return GetObject(anObject);
 }
 
+//=============================================================================
+/*!
+ *  MakeFilletFaces R1 R2
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeFilletFacesR1R2
+                      (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR1,
+                       CORBA::Double theR2, const GEOM::ListOfLong& theFaces)
+{
+  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 faces
+  int ind = 0;
+  int aLen = theFaces.length();
+  list<int> aFaces;
+  for (; ind < aLen; ind++) {
+    aFaces.push_back(theFaces[ind]);
+  }
+
+  //Create the Fillet
+  Handle(GEOM_Object) anObject =
+    GetOperations()->MakeFilletFacesR1R2(aShapeRef, theR1, theR2, aFaces);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
 //=============================================================================
 /*!
  *  MakeChamferAll
@@ -203,6 +273,33 @@ GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeChamferEdge
 
   return GetObject(anObject);
 }
+//=============================================================================
+/*!
+ *  MakeChamferEdgeAD
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeChamferEdgeAD
+                      (GEOM::GEOM_Object_ptr theShape,
+                      CORBA::Double theD, CORBA::Double theAngle,
+                      CORBA::Long theFace1, CORBA::Long theFace2)
+{
+  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();
+
+  //Create the Chamfer
+  Handle(GEOM_Object) anObject =
+    GetOperations()->MakeChamferEdgeAD(aShapeRef, theD, theAngle, theFace1, theFace2);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
 
 //=============================================================================
 /*!
@@ -239,6 +336,113 @@ GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeChamferFaces
 
   return GetObject(anObject);
 }
+//=============================================================================
+/*!
+ *  MakeChamferFacesAD
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeChamferFacesAD
+                      (GEOM::GEOM_Object_ptr theShape,
+                      CORBA::Double theD, CORBA::Double theAngle,
+                      const GEOM::ListOfLong& theFaces)
+{
+  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 faces
+  int ind = 0;
+  int aLen = theFaces.length();
+  list<int> aFaces;
+  for (; ind < aLen; ind++) {
+    aFaces.push_back(theFaces[ind]);
+  }
+
+  //Create the Chamfer
+  Handle(GEOM_Object) anObject =
+    GetOperations()->MakeChamferFacesAD(aShapeRef, theD, theAngle, aFaces);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
+//=============================================================================
+/*!
+ *  MakeChamferEdges
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeChamferEdges
+                      (GEOM::GEOM_Object_ptr theShape,
+                      CORBA::Double theD1, CORBA::Double theD2,
+                      const GEOM::ListOfLong& theEdges)
+{
+  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 edges
+  int ind = 0;
+  int aLen = theEdges.length();
+  list<int> aEdges;
+  for (; ind < aLen; ind++) {
+    aEdges.push_back(theEdges[ind]);
+  }
+
+  //Create the Chamfer
+  Handle(GEOM_Object) anObject =
+    GetOperations()->MakeChamferEdges(aShapeRef, theD1, theD2, aEdges);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
+//=============================================================================
+/*!
+ *  MakeChamferEdgesAD
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeChamferEdgesAD
+                      (GEOM::GEOM_Object_ptr theShape,
+                      CORBA::Double theD, CORBA::Double theAngle,
+                      const GEOM::ListOfLong& theEdges)
+{
+  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 edges
+  int ind = 0;
+  int aLen = theEdges.length();
+  list<int> aEdges;
+  for (; ind < aLen; ind++) {
+    aEdges.push_back(theEdges[ind]);
+  }
+
+  //Create the Chamfer
+  Handle(GEOM_Object) anObject =
+    GetOperations()->MakeChamferEdgesAD(aShapeRef, theD, theAngle, aEdges);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
 
 //=============================================================================
 /*!
index c8f4a6565a25fc493938fca0a14bdcdbef848446..79a80acfc2f0fc5e46afe60e0ed457aaec4183c4 100644 (file)
@@ -42,19 +42,49 @@ class GEOM_I_EXPORT GEOM_ILocalOperations_i :
 
   GEOM::GEOM_Object_ptr MakeFilletAll   (GEOM::GEOM_Object_ptr theShape,
                                         CORBA::Double theR);
+
   GEOM::GEOM_Object_ptr MakeFilletEdges (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR,
                                         const GEOM::ListOfLong& theEdges);
+
+  GEOM::GEOM_Object_ptr MakeFilletEdgesR1R2 (GEOM::GEOM_Object_ptr theShape,
+                                             CORBA::Double theR1,
+                                             CORBA::Double theR2,
+                                            const GEOM::ListOfLong& theEdges);
+
   GEOM::GEOM_Object_ptr MakeFilletFaces (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR,
                                         const GEOM::ListOfLong& theFaces);
 
+  GEOM::GEOM_Object_ptr MakeFilletFacesR1R2 (GEOM::GEOM_Object_ptr theShape,
+                                             CORBA::Double theR1,
+                                             CORBA::Double theR2,
+                                            const GEOM::ListOfLong& theFaces);
+
   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,
                                          CORBA::Long theFace1, CORBA::Long theFace2);
+
+  GEOM::GEOM_Object_ptr MakeChamferEdgeAD  (GEOM::GEOM_Object_ptr theShape,
+                                           CORBA::Double theD, CORBA::Double theAngle,
+                                           CORBA::Long theFace1, CORBA::Long theFace2);
+
   GEOM::GEOM_Object_ptr MakeChamferFaces (GEOM::GEOM_Object_ptr theShape,
                                          CORBA::Double theD1, CORBA::Double theD2,
                                          const GEOM::ListOfLong& theFaces);
 
+  GEOM::GEOM_Object_ptr MakeChamferFacesAD (GEOM::GEOM_Object_ptr theShape,
+                                           CORBA::Double theD, CORBA::Double theAngle,
+                                           const GEOM::ListOfLong& theFaces);
+
+  GEOM::GEOM_Object_ptr MakeChamferEdges (GEOM::GEOM_Object_ptr theShape,
+                                         CORBA::Double theD1, CORBA::Double theD2,
+                                         const GEOM::ListOfLong& theEdges);
+
+  GEOM::GEOM_Object_ptr MakeChamferEdgesAD (GEOM::GEOM_Object_ptr theShape,
+                                           CORBA::Double theD, CORBA::Double theAngle,
+                                           const GEOM::ListOfLong& theEdges);
+
   GEOM::GEOM_Object_ptr MakeArchimede (GEOM::GEOM_Object_ptr theShape,
                                        CORBA::Double theWeight,
                                       CORBA::Double theWaterDensity,
index 6167bf0e10d19fb470fc4c2e083eda28c7e449b7..d4e8c6a8e67fc9bf8d9c74c332c330794d5b48f6 100644 (file)
@@ -17,6 +17,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 #include <Standard_Stream.hxx>
 
 #include "GEOM_IMeasureOperations_i.hh"
@@ -140,7 +141,7 @@ GEOM::GEOM_Object_ptr GEOM_IMeasureOperations_i::GetCentreOfMass
   //Set a not done flag
   GetOperations()->SetNotDone();
 
-  if (theShape == NULL) return aGEOMObject._retn();
+  if (CORBA::is_nil(theShape)) return aGEOMObject._retn();
 
   //Get the reference shape
   Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject
@@ -156,6 +157,41 @@ GEOM::GEOM_Object_ptr GEOM_IMeasureOperations_i::GetCentreOfMass
   return GetObject(anObject);
 }
 
+//=============================================================================
+/*!
+ *  GetNormal
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_IMeasureOperations_i::GetNormal
+                                       (GEOM::GEOM_Object_ptr theFace,
+                                       GEOM::GEOM_Object_ptr theOptionalPoint)
+{
+  GEOM::GEOM_Object_var aGEOMObject;
+
+  //Set a not done flag
+  GetOperations()->SetNotDone();
+
+  if (CORBA::is_nil(theFace)) return aGEOMObject._retn();
+
+  //Get the reference shape
+  Handle(GEOM_Object) aFace = GetOperations()->GetEngine()->GetObject
+    (theFace->GetStudyID(), theFace->GetEntry());
+
+  if (aFace.IsNull()) return aGEOMObject._retn();
+
+  // Make Vector - normal to theFace (in point theOptionalPoint if the face is not planar)
+  Handle(GEOM_Object) anOptionalPoint;
+  if (!CORBA::is_nil(theOptionalPoint)) {
+    anOptionalPoint = GetOperations()->GetEngine()->GetObject
+      (theOptionalPoint->GetStudyID(), theOptionalPoint->GetEntry());
+  }
+  Handle(GEOM_Object) anObject = GetOperations()->GetNormal(aFace, anOptionalPoint);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
 //=============================================================================
 /*!
  *  GetBasicProperties
@@ -392,8 +428,8 @@ CORBA::Double GEOM_IMeasureOperations_i::GetMinDistance
  *  PointCoordinates
  */
 //=============================================================================
-void GEOM_IMeasureOperations_i::PointCoordinates(
-  GEOM::GEOM_Object_ptr theShape, CORBA::Double& X, CORBA::Double& Y, CORBA::Double& Z )
+void GEOM_IMeasureOperations_i::PointCoordinates (GEOM::GEOM_Object_ptr theShape,
+                                                 CORBA::Double& X, CORBA::Double& Y, CORBA::Double& Z)
 
 {
   //Set a not done flag
@@ -412,3 +448,28 @@ void GEOM_IMeasureOperations_i::PointCoordinates(
   // Get shape parameters
   GetOperations()->PointCoordinates( aShape, X, Y, Z );
 }
+
+//=============================================================================
+/*!
+ *  GetAngle
+ */
+//=============================================================================
+CORBA::Double GEOM_IMeasureOperations_i::GetAngle (GEOM::GEOM_Object_ptr theShape1,
+                                                  GEOM::GEOM_Object_ptr theShape2)
+{
+  //Set a not done flag
+  GetOperations()->SetNotDone();
+
+  if (theShape1 == NULL || theShape2 == NULL) return -1.0;
+
+  //Get the reference shapes
+  Handle(GEOM_Object) aShape1 = GetOperations()->GetEngine()->GetObject
+    (theShape1->GetStudyID(), theShape1->GetEntry());
+  Handle(GEOM_Object) aShape2 = GetOperations()->GetEngine()->GetObject
+    (theShape2->GetStudyID(), theShape2->GetEntry());
+
+  if (aShape1.IsNull() || aShape2.IsNull()) return -1.0;
+
+  // Get the angle
+  return GetOperations()->GetAngle(aShape1, aShape2);
+}
index 47456325627cdc5a6098dad229d3b890a31c38e5..4db8a26d410dac87a029955a3ef29e1482207c14 100644 (file)
@@ -56,6 +56,9 @@ class GEOM_I_EXPORT GEOM_IMeasureOperations_i :
 
   GEOM::GEOM_Object_ptr GetCentreOfMass (GEOM::GEOM_Object_ptr theShape);
 
+  GEOM::GEOM_Object_ptr GetNormal (GEOM::GEOM_Object_ptr theFace,
+                                  GEOM::GEOM_Object_ptr theOptionalPoint);
+
   void GetInertia (GEOM::GEOM_Object_ptr theShape,
                   CORBA::Double& I11, CORBA::Double& I12, CORBA::Double& I13,
                   CORBA::Double& I21, CORBA::Double& I22, CORBA::Double& I23,
@@ -85,9 +88,11 @@ class GEOM_I_EXPORT GEOM_IMeasureOperations_i :
                                 CORBA::Double& X1, CORBA::Double& Y1, CORBA::Double& Z1,
                                 CORBA::Double& X2, CORBA::Double& Y2, CORBA::Double& Z2);
 
+  void PointCoordinates (GEOM::GEOM_Object_ptr theShape,
+                        CORBA::Double& X, CORBA::Double& Y, CORBA::Double& Z);
 
-  void PointCoordinates( GEOM::GEOM_Object_ptr theShape,
-    CORBA::Double& X, CORBA::Double& Y, CORBA::Double& Z );
+  CORBA::Double GetAngle (GEOM::GEOM_Object_ptr theShape1,
+                         GEOM::GEOM_Object_ptr theShape2);
 
   ::GEOMImpl_IMeasureOperations* GetOperations()
   { return (::GEOMImpl_IMeasureOperations*)GetImpl(); }
index b3edf98dbaeedf9c4c9a50b0ad6413bcdf3e74ab..6d9bf7fcc7a6ef351c2438d21f763e05a17e5d8a 100644 (file)
@@ -328,7 +328,8 @@ GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::MakeCompound
 //=============================================================================
 GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::MakeGlueFaces
                                            (GEOM::GEOM_Object_ptr theShape,
-                                           const CORBA::Double   theTolerance)
+                                           CORBA::Double   theTolerance,
+                                           CORBA::Boolean  doKeepNonSolids)
 {
   GEOM::GEOM_Object_var aGEOMObject;
 
@@ -345,7 +346,7 @@ GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::MakeGlueFaces
 
   //Perform the gluing
   Handle(GEOM_Object) anObject =
-    GetOperations()->MakeGlueFaces(aShape, theTolerance);
+    GetOperations()->MakeGlueFaces(aShape, theTolerance, doKeepNonSolids);
   //if (!GetOperations()->IsDone() || anObject.IsNull())
   // to allow warning
   if (anObject.IsNull())
@@ -400,8 +401,9 @@ GEOM::ListOfGO* GEOM_IShapesOperations_i::GetGlueFaces
 //=============================================================================
 GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::MakeGlueFacesByList
                                            (GEOM::GEOM_Object_ptr theShape,
-                                           const CORBA::Double   theTolerance,
-                                           const GEOM::ListOfGO& theFaces)
+                                           CORBA::Double   theTolerance,
+                                           const GEOM::ListOfGO& theFaces,
+                                           CORBA::Boolean  doKeepNonSolids)
 {
   GEOM::GEOM_Object_var aGEOMObject;
 
@@ -430,7 +432,7 @@ GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::MakeGlueFacesByList
 
   //Perform the gluing
   Handle(GEOM_Object) anObject =
-    GetOperations()->MakeGlueFacesByList(aShape, theTolerance, aFaces);
+    GetOperations()->MakeGlueFacesByList(aShape, theTolerance, aFaces, doKeepNonSolids);
   //if (!GetOperations()->IsDone() || anObject.IsNull())
   // to allow warning
   if (anObject.IsNull())
@@ -1323,6 +1325,41 @@ GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::GetInPlace
   return GetObject(anObject);
 }
 
+//=============================================================================
+/*!
+ *  GetInPlaceByHistory
+ */
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::GetInPlaceByHistory
+                                          (GEOM::GEOM_Object_ptr theShapeWhere,
+                                          GEOM::GEOM_Object_ptr theShapeWhat)
+{
+  GEOM::GEOM_Object_var aGEOMObject;
+
+  //Set a not done flag
+  GetOperations()->SetNotDone();
+
+  if (theShapeWhere == NULL ||
+      theShapeWhat == NULL) return aGEOMObject._retn();
+
+  //Get the reference objects
+  Handle(GEOM_Object) aShapeWhere = GetOperations()->GetEngine()->GetObject
+    (theShapeWhere->GetStudyID(), theShapeWhere->GetEntry());
+  Handle(GEOM_Object) aShapeWhat = GetOperations()->GetEngine()->GetObject
+    (theShapeWhat->GetStudyID(), theShapeWhat->GetEntry());
+
+  if (aShapeWhere.IsNull() ||
+      aShapeWhat.IsNull()) return aGEOMObject._retn();
+
+  //Get Shapes in place of aShapeWhat
+  Handle(GEOM_Object) anObject =
+    GetOperations()->GetInPlaceByHistory(aShapeWhere, aShapeWhat);
+  if (!GetOperations()->IsDone() || anObject.IsNull())
+    return aGEOMObject._retn();
+
+  return GetObject(anObject);
+}
+
 //=============================================================================
 /*!
  *  GetSame
index 84575a15dcafbb549689326a64d21c0d54314a2b..de1b24be14b8895552248132c61bb1d9ef43b283 100644 (file)
@@ -61,14 +61,17 @@ class GEOM_I_EXPORT GEOM_IShapesOperations_i :
   GEOM::GEOM_Object_ptr MakeCompound (const GEOM::ListOfGO& theShapes);
 
   GEOM::GEOM_Object_ptr MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
-                                      CORBA::Double         theTolerance);
+                                      CORBA::Double         theTolerance,
+                                          CORBA::Boolean  doKeepNonSolids);
 
   GEOM::ListOfGO* GetGlueFaces (GEOM::GEOM_Object_ptr theShape,
                                CORBA::Double         theTolerance);
 
   GEOM::GEOM_Object_ptr MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape,
                                             CORBA::Double         theTolerance,
-                                            const GEOM::ListOfGO& theFaces);
+                                            const GEOM::ListOfGO& theFaces,
+                                                CORBA::Boolean  doKeepNonSolids);
+
 
   GEOM::ListOfGO* MakeExplode (GEOM::GEOM_Object_ptr theShape,
                               CORBA::Long           theShapeType,
@@ -175,6 +178,9 @@ class GEOM_I_EXPORT GEOM_IShapesOperations_i :
   GEOM::GEOM_Object_ptr GetInPlace (GEOM::GEOM_Object_ptr theShapeWhere,
                                    GEOM::GEOM_Object_ptr theShapeWhat);
 
+  GEOM::GEOM_Object_ptr GetInPlaceByHistory (GEOM::GEOM_Object_ptr theShapeWhere,
+                                            GEOM::GEOM_Object_ptr theShapeWhat);
+
   GEOM::GEOM_Object_ptr GetSame (GEOM::GEOM_Object_ptr theShapeWhere,
                                 GEOM::GEOM_Object_ptr theShapeWhat);
 
index 6edeb5dacd450a41e5b4f2d89dd1cf7cab98edbf..d8794d7b99738dc4bd57169c2973a09933d89fe4 100644 (file)
@@ -135,6 +135,50 @@ char* GEOM_Object_i::GetName()
   return strdup("");
 }
 
+//=============================================================================
+/*!
+ *  SetColor
+ */
+//=============================================================================
+void GEOM_Object_i::SetColor(const SALOMEDS::Color& theColor)
+{
+  _impl->SetColor(theColor);
+}
+
+
+//=============================================================================
+/*!
+ *  GetColor
+ */
+//=============================================================================
+SALOMEDS::Color GEOM_Object_i::GetColor()
+{
+  return _impl->GetColor();
+}
+
+
+//=============================================================================
+/*!
+ *  SetAutoColor
+ */
+//=============================================================================
+void GEOM_Object_i::SetAutoColor(CORBA::Boolean theAutoColor)
+{
+  _impl->SetAutoColor(theAutoColor);
+}
+
+
+//=============================================================================
+/*!
+ *  GetAutoColor
+ */
+//=============================================================================
+CORBA::Boolean GEOM_Object_i::GetAutoColor()
+{
+  return _impl->GetAutoColor();
+}
+
+
 //=============================================================================
 /*!
  *  SetStudyEntry
index fa670e45a9abc2578e0daf1bfab6337511f3a0df..43711eacd2c94c6ba8da3bc4ba57adf8e3a0838a 100644 (file)
@@ -53,6 +53,14 @@ class GEOM_I_EXPORT GEOM_Object_i : public virtual POA_GEOM::GEOM_Object, public
 
   virtual char* GetName();
 
+  virtual void SetColor(const SALOMEDS::Color& theColor);
+
+  virtual SALOMEDS::Color GetColor();
+
+  virtual void SetAutoColor(CORBA::Boolean theAutoColor);
+
+  virtual CORBA::Boolean GetAutoColor();
+
   virtual void SetStudyEntry(const char* theEntry);
 
   virtual char* GetStudyEntry();
index 299d9f55098785b43cfc297fefbef28c0fde426e..666ec08611870b4bc0b114ff8ac91c81daa2e4e7 100644 (file)
@@ -545,6 +545,20 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnCurve (GEOM::GEOM_Object_ptr the
   return anObj;
 }
 
+//=============================================================================
+//  MakePointOnLinesIntersection:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePointOnLinesIntersection (GEOM::GEOM_Object_ptr theRefLine1,
+                                                                  GEOM::GEOM_Object_ptr theRefLine2)
+{
+  beginService( " GEOM_Superv_i::MakePointOnLinesIntersection" );
+  MESSAGE("GEOM_Superv_i::MakePointOnLinesIntersection");
+  getBasicOp();
+  GEOM::GEOM_Object_ptr anObj = myBasicOp->MakePointOnLinesIntersection(theRefLine1, theRefLine2);
+  endService( " GEOM_Superv_i::MakePointOnLinesIntersection" );
+  return anObj;
+}
+
 //=============================================================================
 //  MakeTangentOnCurve:
 //=============================================================================
@@ -602,6 +616,20 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeLineTwoPnt (GEOM::GEOM_Object_ptr thePn
   return anObj;
 }
 
+//=============================================================================
+//  MakeLineTwoFaces:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeLineTwoFaces (GEOM::GEOM_Object_ptr theFace1,
+                                                      GEOM::GEOM_Object_ptr theFace2)
+{
+  beginService( " GEOM_Superv_i::MakeLineTwoFaces");
+  MESSAGE("GEOM_Superv_i::MakeLineTwoFaces");
+  getBasicOp();
+  GEOM::GEOM_Object_ptr anObj = myBasicOp->MakeLineTwoFaces(theFace1, theFace2);
+  endService( " GEOM_Superv_i::MakeLineTwoFaces");
+  return anObj;
+}
+
 //=============================================================================
 //  MakePlaneThreePnt:
 //=============================================================================
@@ -880,6 +908,20 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismVecH (GEOM::GEOM_Object_ptr theBas
   return anObj;
 }
 
+//=============================================================================
+//  MakePrismVecH2Ways:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismVecH2Ways (GEOM::GEOM_Object_ptr theBase,
+                                                        GEOM::GEOM_Object_ptr theVec,
+                                                        CORBA::Double         theH)
+{
+  beginService( " GEOM_Superv_i::MakePrismVecH2Ways" );
+  MESSAGE("GEOM_Superv_i::MakePrismVecH2Ways");
+  get3DPrimOp();
+  GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismVecH2Ways(theBase, theVec, theH);
+  endService( " GEOM_Superv_i::MakePrismVecH2Ways" );
+  return anObj;
+}
 
 //=============================================================================
 //  MakePrismTwoPnt:
@@ -896,6 +938,21 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismTwoPnt (GEOM::GEOM_Object_ptr theB
   return anObj;
 }
 
+//=============================================================================
+//  MakePrismTwoPnt2Ways:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismTwoPnt2Ways (GEOM::GEOM_Object_ptr theBase,
+                                                          GEOM::GEOM_Object_ptr thePoint1,
+                                                          GEOM::GEOM_Object_ptr thePoint2)
+{
+  beginService( " GEOM_Superv_i::MakePrismTwoPnt2Ways" );
+  MESSAGE("GEOM_Superv_i::MakePrismTwoPnt2Ways");
+  get3DPrimOp();
+  GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismTwoPnt2Ways(theBase, thePoint1, thePoint2);
+  endService( " GEOM_Superv_i::MakePrismTwoPnt2Ways" );
+  return anObj;
+}
+
 //=============================================================================
 //  MakePipe:
 //=============================================================================
@@ -925,6 +982,21 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeRevolutionAxisAngle (GEOM::GEOM_Object_
   return anObj;
 }
 
+//=============================================================================
+//  MakeRevolutionAxisAngle:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeRevolutionAxisAngle2Ways (GEOM::GEOM_Object_ptr theBase,
+                                                                  GEOM::GEOM_Object_ptr theAxis,
+                                                                  CORBA::Double theAngle)
+{
+  beginService( " GEOM_Superv_i::MakeRevolutionAxisAngle2Ways" );
+  MESSAGE("GEOM_Superv_i::MakeRevolutionAxisAngle2Ways");
+  get3DPrimOp();
+  GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle);
+  endService( " GEOM_Superv_i::MakeRevolutionAxisAngle2Ways" );
+  return anObj;
+}
+
 //=============================================================================
 //  MakeFilling:
 //=============================================================================
@@ -1017,6 +1089,23 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeWithShellSections
 }
 
 
+//=============================================================================
+//  MakePipe:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeShellsWithoutPath
+                   (const GEOM::ListOfGO& theBases,
+                   const GEOM::ListOfGO& theLocations)
+{
+  beginService( " GEOM_Superv_i::MakePipeShellsWithoutPath" );
+  MESSAGE("GEOM_Superv_i::MakePipeShellsWithoutPath");
+  get3DPrimOp();
+  GEOM::GEOM_Object_ptr anObj =
+    my3DPrimOp->MakePipeShellsWithoutPath(theBases,theLocations);
+  endService( " GEOM_Superv_i::MakePipeShellsWithoutPath" );
+  return anObj;
+}
+
+
 //=============================================================================
 //  MakeFuse:
 //=============================================================================
@@ -1040,7 +1129,8 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePartition (GEOM::GEOM_List_ptr   theSha
                                                    GEOM::GEOM_List_ptr   theRemoveInside,
                                                    CORBA::Short      theLimit,
                                                    CORBA::Boolean    theRemoveWebs,
-                                                   GEOM::GEOM_List_ptr theMaterials)
+                                                   GEOM::GEOM_List_ptr theMaterials,
+                                                   CORBA::Short theKeepNonlimitShapes)
 {
   beginService( " GEOM_Superv_i::MakePartition" );
   MESSAGE("GEOM_Superv_i::MakePartition");
@@ -1056,9 +1146,11 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePartition (GEOM::GEOM_List_ptr   theSha
     dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theMaterials, myPOA).in());
   if (aListImplS && aListImplT && aListImplKI && aListImplRI && aListImplM) {
     getBoolOp();
-    GEOM::GEOM_Object_ptr anObj = myBoolOp->MakePartition(aListImplS->GetList(), aListImplT->GetList(), 
-                                                         aListImplKI->GetList(), aListImplRI->GetList(),
-                                                         theLimit, theRemoveWebs, aListImplM->GetList());
+    GEOM::GEOM_Object_ptr anObj =
+      myBoolOp->MakePartition(aListImplS->GetList(), aListImplT->GetList(), 
+                             aListImplKI->GetList(), aListImplRI->GetList(),
+                             theLimit, theRemoveWebs, aListImplM->GetList(),
+                             theKeepNonlimitShapes);
     endService( " GEOM_Superv_i::MakePartition" );
     return anObj;
   }
@@ -1678,12 +1770,14 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCompound (GEOM::GEOM_List_ptr theShapes
 //  MakeGlueFaces:
 //=============================================================================
 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
-                                                   CORBA::Double   theTolerance)
+                                                   CORBA::Double   theTolerance,
+                                                   CORBA::Boolean doKeepNonSolids)
 {
   beginService( " GEOM_Superv_i::MakeGlueFaces" );
   MESSAGE("GEOM_Superv_i::MakeGlueFaces");
   getShapesOp();
-  GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeGlueFaces(theShape, theTolerance);
+  GEOM::GEOM_Object_ptr anObj =
+    myShapesOp->MakeGlueFaces(theShape, theTolerance, doKeepNonSolids);
   endService( " GEOM_Superv_i::MakeGlueFaces" );
   return anObj;
 }
@@ -1709,12 +1803,14 @@ GEOM::GEOM_List_ptr GEOM_Superv_i::GetGlueFaces (GEOM::GEOM_Object_ptr theShape,
 //=============================================================================
 GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape,
                                                          CORBA::Double theTolerance,
-                                                         const GEOM::ListOfGO& theFaces)
+                                                         const GEOM::ListOfGO& theFaces,
+                                                         CORBA::Boolean doKeepNonSolids)
 {
   beginService( " GEOM_Superv_i::MakeGlueFacesByList" );
   MESSAGE("GEOM_Superv_i::MakeGlueFacesByList");
   getShapesOp();
-  GEOM::GEOM_Object_ptr anObj = myShapesOp->MakeGlueFacesByList(theShape, theTolerance, theFaces);
+  GEOM::GEOM_Object_ptr anObj =
+    myShapesOp->MakeGlueFacesByList(theShape, theTolerance, theFaces, doKeepNonSolids);
   endService( " GEOM_Superv_i::MakeGlueFacesByList" );
   return anObj;
 }
@@ -2159,6 +2255,20 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCircleThreePnt (GEOM::GEOM_Object_ptr t
   endService( " GEOM_Superv_i::MakeCircleThreePnt" );
   return anObj;
 }
+//=============================================================================
+//  MakeCircleCenter2Pnt:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeCircleCenter2Pnt (GEOM::GEOM_Object_ptr thePnt1,
+                                                          GEOM::GEOM_Object_ptr thePnt2,
+                                                          GEOM::GEOM_Object_ptr thePnt3)
+{
+  beginService( " GEOM_Superv_i::MakeCircleCenter2Pnt" );
+  MESSAGE("GEOM_Superv_i::MakeCircleCenter2Pnt");
+  getCurvesOp();
+  GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeCircleCenter2Pnt(thePnt1, thePnt2, thePnt3);
+  endService( " GEOM_Superv_i::MakeCircleCenter2Pnt" );
+  return anObj;
+}
 
 //=============================================================================
 //  MakeEllipse:
@@ -2315,6 +2425,28 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletEdges (GEOM::GEOM_Object_ptr theS
   return NULL;
 }
 
+//=============================================================================
+//  MakeFilletEdges R1 R2:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletEdgesR1R2 (GEOM::GEOM_Object_ptr theShape, 
+                                                         CORBA::Double theR1,
+                                                         CORBA::Double theR2,
+                                                         GEOM::GEOM_List_ptr theEdges)
+{
+  beginService( " GEOM_Superv_i::MakeFilletEdgesR1R2" );
+  MESSAGE("GEOM_Superv_i::MakeFilletEdgesR1R2");
+  if (GEOM_List_i<GEOM::ListOfLong>* aListImplE = 
+      dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
+    getLocalOp();
+    GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletEdgesR1R2(theShape, theR1,
+                                                                 theR2, aListImplE->GetList());
+    endService( " GEOM_Superv_i::MakeFilletEdgesR1R2" );
+    return anObj;
+  }
+  endService( " GEOM_Superv_i::MakeFilletEdgesR1R2" );
+  return NULL;
+}
+
 //=============================================================================
 //  MakeFilletFaces:
 //=============================================================================
@@ -2335,6 +2467,28 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletFaces (GEOM::GEOM_Object_ptr theS
   return NULL;
 }
 
+//=============================================================================
+//  MakeFilletFaces R1 R2:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletFacesR1R2 (GEOM::GEOM_Object_ptr theShape, 
+                                                         CORBA::Double theR1,
+                                                         CORBA::Double theR2,
+                                                         GEOM::GEOM_List_ptr theFaces)
+{
+  beginService( " GEOM_Superv_i::MakeFilletFacesR1R2" );
+  MESSAGE("GEOM_Superv_i::MakeFilletFacesR1R2");
+  if (GEOM_List_i<GEOM::ListOfLong>* aListImplF = 
+      dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
+    getLocalOp();
+    GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFilletFacesR1R2(theShape, theR1, theR2,
+                                                                 aListImplF->GetList());
+    endService( " GEOM_Superv_i::MakeFilletFacesR1R2" );
+    return anObj;
+  }
+  endService( " GEOM_Superv_i::MakeFilletFacesR1R2" );
+  return NULL;
+}
+
 //=============================================================================
 //  MakeChamferAll:
 //=============================================================================
@@ -2363,6 +2517,21 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdge (GEOM::GEOM_Object_ptr theS
   return anObj;
 }
 
+//=============================================================================
+//  MakeChamferEdgeAD:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdgeAD (GEOM::GEOM_Object_ptr theShape,
+                                                       CORBA::Double theD, CORBA::Double theAngle,
+                                                       CORBA::Long theFace1, CORBA::Long theFace2)
+{
+  beginService( " GEOM_Superv_i::MakeChamferEdgeAD" );
+  MESSAGE("GEOM_Superv_i::MakeChamferEdgeAD");
+  getLocalOp();
+  GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2);
+  endService( " GEOM_Superv_i::MakeChamferEdgeAD" );
+  return anObj;
+}
+
 //=============================================================================
 //  MakeChamferFaces:
 //=============================================================================
@@ -2383,6 +2552,66 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferFaces (GEOM::GEOM_Object_ptr the
   return NULL;
 }
 
+//=============================================================================
+//  MakeChamferFacesAD:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferFacesAD (GEOM::GEOM_Object_ptr theShape,
+                                                        CORBA::Double theD, CORBA::Double theAngle,
+                                                        GEOM::GEOM_List_ptr theFaces)
+{
+  beginService( " GEOM_Superv_i::MakeChamferFacesAD" );
+  MESSAGE("GEOM_Superv_i::MakeChamferFacesAD");
+  if (GEOM_List_i<GEOM::ListOfLong>* aListImplF = 
+      dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theFaces, myPOA).in())) {
+    getLocalOp();
+    GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferFacesAD(theShape, theD, theAngle, aListImplF->GetList());
+    endService( " GEOM_Superv_i::MakeChamferFacesAD" );
+    return anObj;
+  }
+  endService( " GEOM_Superv_i::MakeChamferFacesAD" );
+  return NULL;
+}
+
+//=============================================================================
+//  MakeChamferEdges:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdges (GEOM::GEOM_Object_ptr theShape,
+                                                      CORBA::Double theD1, CORBA::Double theD2,
+                                                      GEOM::GEOM_List_ptr theEdges)
+{
+  beginService( " GEOM_Superv_i::MakeChamferEdges" );
+  MESSAGE("GEOM_Superv_i::MakeChamferEdges");
+  if (GEOM_List_i<GEOM::ListOfLong>* aListImplF = 
+      dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
+    getLocalOp();
+    GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdges(theShape, theD1, theD2, aListImplF->GetList());
+    endService( " GEOM_Superv_i::MakeChamferEdges" );
+    return anObj;
+  }
+  endService( " GEOM_Superv_i::MakeChamferEdges" );
+  return NULL;
+}
+
+//=============================================================================
+//  MakeChamferEdgesAD:
+//=============================================================================
+GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeChamferEdgesAD (GEOM::GEOM_Object_ptr theShape,
+                                                        CORBA::Double theD, CORBA::Double theAngle,
+                                                        GEOM::GEOM_List_ptr theEdges)
+{
+  beginService( " GEOM_Superv_i::MakeChamferEdgesAD" );
+  MESSAGE("GEOM_Superv_i::MakeChamferEdgesAD");
+  if (GEOM_List_i<GEOM::ListOfLong>* aListImplF = 
+      dynamic_cast<GEOM_List_i<GEOM::ListOfLong>*>(GetServant(theEdges, myPOA).in())) {
+    getLocalOp();
+    GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeChamferEdgesAD(theShape, theD, theAngle, aListImplF->GetList());
+    endService( " GEOM_Superv_i::MakeChamferEdgesAD" );
+    return anObj;
+  }
+  endService( " GEOM_Superv_i::MakeChamferEdgesAD" );
+  return NULL;
+}
+
 //=============================================================================
 //  MakeArchimede:
 //=============================================================================
index 298a01edeb4df3906db2b849fbca897a58997d13..0d303970496751e0e5a07a2c15078bda6dd62567 100644 (file)
@@ -142,6 +142,8 @@ public:
                                                CORBA::Double theZ);
   GEOM::GEOM_Object_ptr MakePointOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
                                          CORBA::Double theParameter);
+  GEOM::GEOM_Object_ptr MakePointOnLinesIntersection (GEOM::GEOM_Object_ptr theRefLine1,
+                                                     GEOM::GEOM_Object_ptr theRefLine2);
   GEOM::GEOM_Object_ptr MakeTangentOnCurve (GEOM::GEOM_Object_ptr theRefCurve,
                                             CORBA::Double theParameter);
   GEOM::GEOM_Object_ptr MakeVectorDXDYDZ (CORBA::Double theDX,
@@ -151,6 +153,8 @@ public:
                                          GEOM::GEOM_Object_ptr thePnt2);
   GEOM::GEOM_Object_ptr MakeLineTwoPnt (GEOM::GEOM_Object_ptr thePnt1,
                                        GEOM::GEOM_Object_ptr thePnt2);
+  GEOM::GEOM_Object_ptr MakeLineTwoFaces (GEOM::GEOM_Object_ptr theFace1,
+                                         GEOM::GEOM_Object_ptr theFace2);
   GEOM::GEOM_Object_ptr MakePlaneThreePnt (GEOM::GEOM_Object_ptr thePnt1,
                                           GEOM::GEOM_Object_ptr thePnt2,
                                           GEOM::GEOM_Object_ptr thePnt3,
@@ -213,14 +217,23 @@ public:
   GEOM::GEOM_Object_ptr MakePrismVecH (GEOM::GEOM_Object_ptr theBase,
                                       GEOM::GEOM_Object_ptr theVec,
                                       CORBA::Double         theH);
+  GEOM::GEOM_Object_ptr MakePrismVecH2Ways (GEOM::GEOM_Object_ptr theBase,
+                                           GEOM::GEOM_Object_ptr theVec,
+                                           CORBA::Double         theH);
   GEOM::GEOM_Object_ptr MakePrismTwoPnt (GEOM::GEOM_Object_ptr theBase,
                                         GEOM::GEOM_Object_ptr thePoint1,
                                         GEOM::GEOM_Object_ptr thePoint2);
+  GEOM::GEOM_Object_ptr MakePrismTwoPnt2Ways (GEOM::GEOM_Object_ptr theBase,
+                                             GEOM::GEOM_Object_ptr thePoint1,
+                                             GEOM::GEOM_Object_ptr thePoint2);
   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,
                                                 GEOM::GEOM_Object_ptr theAxis,
                                                 CORBA::Double theAngle);
+  GEOM::GEOM_Object_ptr MakeRevolutionAxisAngle2Ways (GEOM::GEOM_Object_ptr theBase,
+                                                     GEOM::GEOM_Object_ptr theAxis,
+                                                     CORBA::Double theAngle);
   GEOM::GEOM_Object_ptr MakeFilling (GEOM::GEOM_Object_ptr theShape,
                                     CORBA::Long theMinDeg, CORBA::Long theMaxDeg,
                                     CORBA::Double theTol2D, CORBA::Double theTol3D,
@@ -243,6 +256,9 @@ public:
                                                  GEOM::GEOM_Object_ptr thePath,
                                                  CORBA::Boolean theWithContact,
                                                  CORBA::Boolean theWithCorrections);
+
+  GEOM::GEOM_Object_ptr MakePipeShellsWithoutPath(const GEOM::ListOfGO& theBases,
+                                                 const GEOM::ListOfGO& theLocations);
   
   //-----------------------------------------------------------//
   // BooleanOperations                                         //
@@ -258,7 +274,8 @@ public:
                                       GEOM::GEOM_List_ptr   theRemoveInside,
                                       CORBA::Short      theLimit,
                                       CORBA::Boolean    theRemoveWebs,
-                                      GEOM::GEOM_List_ptr theMaterials);
+                                      GEOM::GEOM_List_ptr theMaterials,
+                                      CORBA::Short theKeepNonlimitShapes);
   GEOM::GEOM_Object_ptr MakeHalfPartition (GEOM::GEOM_Object_ptr theShape,
                                           GEOM::GEOM_Object_ptr thePlane);
 
@@ -378,12 +395,14 @@ public:
   GEOM::GEOM_Object_ptr MakeSolidShells (GEOM::GEOM_List_ptr theShells);
   GEOM::GEOM_Object_ptr MakeCompound (GEOM::GEOM_List_ptr theShapes);
   GEOM::GEOM_Object_ptr MakeGlueFaces (GEOM::GEOM_Object_ptr theShape,
-                                      CORBA::Double theTolerance);
+                                      CORBA::Double theTolerance,
+                                      CORBA::Boolean doKeepNonSolids);
   GEOM::GEOM_List_ptr GetGlueFaces (GEOM::GEOM_Object_ptr theShape,
                                    CORBA::Double theTolerance);
   GEOM::GEOM_Object_ptr MakeGlueFacesByList (GEOM::GEOM_Object_ptr theShape,
                                             CORBA::Double theTolerance,
-                                            const GEOM::ListOfGO& theFaces);
+                                            const GEOM::ListOfGO& theFaces,
+                                            CORBA::Boolean doKeepNonSolids);
   GEOM::GEOM_List_ptr MakeExplode (GEOM::GEOM_Object_ptr theShape,
                                       CORBA::Long theShapeType,
                                       CORBA::Boolean isSorted);
@@ -474,6 +493,9 @@ public:
   GEOM::GEOM_Object_ptr MakeCircleThreePnt (GEOM::GEOM_Object_ptr thePnt1,
                                            GEOM::GEOM_Object_ptr thePnt2,
                                            GEOM::GEOM_Object_ptr thePnt3);
+  GEOM::GEOM_Object_ptr MakeCircleCenter2Pnt (GEOM::GEOM_Object_ptr thePnt1,
+                                             GEOM::GEOM_Object_ptr thePnt2,
+                                             GEOM::GEOM_Object_ptr thePnt3);
   GEOM::GEOM_Object_ptr MakeEllipse (GEOM::GEOM_Object_ptr theCenter,
                                     GEOM::GEOM_Object_ptr theVector,
                                     CORBA::Double theRMajor, CORBA::Double theRMinor);
@@ -497,15 +519,31 @@ public:
                                       CORBA::Double theR);
   GEOM::GEOM_Object_ptr MakeFilletEdges (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR,
                                         GEOM::GEOM_List_ptr theEdges);
+  GEOM::GEOM_Object_ptr MakeFilletEdgesR1R2 (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR1,
+                                            CORBA::Double theR2, GEOM::GEOM_List_ptr theEdges);
   GEOM::GEOM_Object_ptr MakeFilletFaces (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR,
                                         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 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,
                                         CORBA::Long theFace1, CORBA::Long theFace2);
+  GEOM::GEOM_Object_ptr MakeChamferEdgeAD (GEOM::GEOM_Object_ptr theShape,
+                                          CORBA::Double theD, CORBA::Double theAngle,
+                                          CORBA::Long theFace1, CORBA::Long theFace2);
   GEOM::GEOM_Object_ptr MakeChamferFaces (GEOM::GEOM_Object_ptr theShape,
                                          CORBA::Double theD1, CORBA::Double theD2,
                                          GEOM::GEOM_List_ptr theFaces);
+  GEOM::GEOM_Object_ptr MakeChamferFacesAD (GEOM::GEOM_Object_ptr theShape,
+                                           CORBA::Double theD, CORBA::Double theAngle,
+                                           GEOM::GEOM_List_ptr theFaces);
+  GEOM::GEOM_Object_ptr MakeChamferEdges (GEOM::GEOM_Object_ptr theShape,
+                                         CORBA::Double theD1, CORBA::Double theD2,
+                                         GEOM::GEOM_List_ptr theEdges);
+  GEOM::GEOM_Object_ptr MakeChamferEdgesAD (GEOM::GEOM_Object_ptr theShape,
+                                           CORBA::Double theD, CORBA::Double theAngle,
+                                           GEOM::GEOM_List_ptr theEdges);
   GEOM::GEOM_Object_ptr MakeArchimede (GEOM::GEOM_Object_ptr theShape,
                                        CORBA::Double theWeight,
                                       CORBA::Double theWaterDensity,
index 053619d35714a23f8a29ce4449d4963eb816825c..2e410ca9c674aea5e405719bf7b2c84f57595163 100644 (file)
@@ -324,8 +324,13 @@ def MakeSpanner (geompy, math, isBlocksTest = 0, isMeshTest = 0, smesh = None):
       Face_5_horiz = geompy.GetFaceByNormale(aBlock, vz)
       f_5_horiz_ind = geompy.LocalOp.GetSubShapeIndex(aBlock, Face_5_horiz)
 
-      MRot = geompy.MakeMultiTransformation2D(aBlock, f42_sp_ind, 0, 3, f_5_horiz_ind, 0, 5)
-      if MRot is not None:
+      MRot = None
+      is2Dok = True
+      try:
+        MRot = geompy.MakeMultiTransformation2D(aBlock, f42_sp_ind, 0, 3, f_5_horiz_ind, 0, 5)
+      except:
+        is2Dok = False
+      if is2Dok and MRot is not None:
         isMRot2D = 1
         p_z100 = geompy.MakeVertex(0., 0., 100.)
         MRot_tr = geompy.MakeTranslationTwoPoints(MRot, p0, p_z100)
index a044befec569c5af172c3c90844eefaccd61b355..67188c761ae3bd37df5ec70d0ec93497943e5449 100644 (file)
@@ -1,6 +1,7 @@
 #  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
@@ -24,6 +25,7 @@
 #  Module : GEOM
 #  $Header$
 
+
 def TestAll (geompy, math):
 
   #Create base Variables
@@ -80,6 +82,7 @@ def TestAll (geompy, math):
   #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
   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
 
@@ -87,6 +90,7 @@ def TestAll (geompy, math):
   Arc2     = geompy.MakeArcCenter(py, pz, px,0)           #(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
   Ellipse  = geompy.MakeEllipse(p0, vy, radius2, radius1) #(2 GEOM_Object_ptr, 2 Doubles)->GEOM_Object_ptr
   Polyline = geompy.MakePolyline([p0, pz, py, p200])      #(List of GEOM_Object_ptr)->GEOM_Object_ptr
   Bezier   = geompy.MakeBezier([p0, pz, p200, px])        #(List of GEOM_Object_ptr)->GEOM_Object_ptr
@@ -97,6 +101,9 @@ def TestAll (geompy, math):
   #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 )
+
   #Create base geometry 3D
   Box      = geompy.MakeBoxTwoPnt(p0, p200)                   #(2 GEOM_Object_ptr)->GEOM_Object_ptr
   Box1     = geompy.MakeBoxDXDYDZ(10, 20, 30)                 #(3 Doubles)->GEOM_Object_ptr
@@ -146,6 +153,9 @@ def TestAll (geompy, math):
 
   #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
 
   #Create advanced objects
   Copy       = geompy.MakeCopy(Box)                      #(GEOM_Object_ptr)->GEOM_Object_ptr
@@ -191,15 +201,20 @@ def TestAll (geompy, math):
   f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
 
   IDlist_f = [f_ind_1, f_ind_2]
-
+  
   #Local operations
   Fillet   = geompy.MakeFillet (Prism, radius, ShapeTypeEdge,
                                 IDlist_e) #(GEOM_Object_ptr, Double, Short, ListOfLong)->GEOM_Object_ptr
+  Fillet2  = geompy.MakeFilletR1R2 (Prism, 7., 13., ShapeTypeEdge,
+                                    IDlist_e) #(GEOM_Object_ptr, Double, Double, Short, ListOfLong)->GEOM_Object_ptr
   Chamfer  = geompy.MakeChamferEdge(Prism, d1, d2,
                                     f_ind_1, f_ind_2) #(GEOM_Object_ptr, 2 Doubles, 2 Long)->GEOM_Object_ptr
   Chamfer2 = geompy.MakeChamferFaces(Prism, d1, d2,
                                      IDlist_f) #(GEOM_Object_ptr, 2 Doubles, ListOfLong)->GEOM_Object_ptr
-
+  Chamfer3 = geompy.MakeChamferEdges(Prism, d1, d2,
+                                     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
   #Create Patterns
   MultiTrans1D = geompy.MakeMultiTranslation1D(Fillet, vz, step1, nbtimes1)
   MultiTrans2D = geompy.MakeMultiTranslation2D(Fillet, vz, step1, nbtimes1, vy, step2, nbtimes2)
@@ -226,6 +241,7 @@ def TestAll (geompy, math):
   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")
@@ -238,12 +254,14 @@ def TestAll (geompy, math):
 
   id_Line   = geompy.addToStudy(Line,   "Line")
   id_Line1  = geompy.addToStudy(Line1,  "Line by point and vector")
+  id_Line3  = geompy.addToStudy(Line3,  "Line on Two Faces Intersection")
   id_Plane  = geompy.addToStudy(Plane,  "Plane")
   id_Plane1 = geompy.addToStudy(Plane1,  "Plane by 3 points")
 
   id_Arc      = geompy.addToStudy(Arc,      "Arc")
   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")
   id_Ellipse  = geompy.addToStudy(Ellipse,  "Ellipse")
   id_Polyline = geompy.addToStudy(Polyline, "Polyline")
   id_Bezier   = geompy.addToStudy(Bezier,   "Bezier")
@@ -304,8 +322,12 @@ def TestAll (geompy, math):
   id_Orientation = geompy.addToStudy(Orientation, "Orientation")
 
   id_Fillet   = geompy.addToStudy(Fillet,   "Fillet")
+  id_Fillet2  = geompy.addToStudy(Fillet2,  "Fillet2")
+
   id_Chamfer  = geompy.addToStudy(Chamfer,  "Chamfer on Edge")
   id_Chamfer2 = geompy.addToStudy(Chamfer2, "Chamfer on Faces")
+  id_Chamfer3 = geompy.addToStudy(Chamfer3, "Chamfer on Edges")
+  id_Chamfer4 = geompy.addToStudy(Chamfer4, "Chamfer on Faces with params D Angle")
 
   id_MultiTrans1D = geompy.addToStudy(MultiTrans1D, "MultiTrans1D")
   id_MultiTrans2D = geompy.addToStudy(MultiTrans2D, "MultiTrans2D")
index c18c3064836a642128e01261f8289c65cfe756a3..d552abf06bbd65181a39bf9619f0058a2d93a22c 100644 (file)
@@ -109,6 +109,22 @@ def TestMeasureOperations (geompy, math):
     if Coords[0] != 5 or Coords[1] != 15 or Coords[2] != 35:
       print "But must be (5, 15, 35)"
 
+  ####### GetNormal #######
+
+  faces = geompy.SubShapeAllSorted(box, geompy.ShapeType["FACE"])
+  face0 = faces[0]
+  vnorm = geompy.GetNormal(face0)
+  if vnorm is None:
+    raise RuntimeError, "GetNormal(face0) failed"
+  else:
+    geompy.addToStudy(face0, "Face0")
+    geompy.addToStudy(vnorm, "Normale to Face0")
+    print "\nNormale of face has been successfully obtained:"
+    #Coords = geompy.PointCoordinates(pcdg)
+    #print "(", Coords[0], ", ", Coords[1], ", ", Coords[2], ")"
+    #if Coords[0] != 5 or Coords[1] != 15 or Coords[2] != 35:
+    #  print "But must be (5, 15, 35)"
+
   ####### MinDistance #######
 
   MinDist = geompy.MinDistance(box, cube)
@@ -120,6 +136,30 @@ def TestMeasureOperations (geompy, math):
 
   print "\nMinimal distance between Box and Cube = ", MinDist
 
+  MinDistComps = geompy.MinDistanceComponents(box, cube)
+  print "\nMinimal distance between Box and Cube = ", MinDistComps[0]
+  print "Its components are  (", MinDistComps[1], ", ", MinDistComps[2], ", ", MinDistComps[3], ")"
+
+  ####### Angle #######
+
+  OX  = geompy.MakeVectorDXDYDZ(10, 0,0)
+  OXY = geompy.MakeVectorDXDYDZ(10,10,0)
+
+  # in one plane
+  Angle = geompy.GetAngle(OX, OXY)
+
+  print "\nAngle between OX and OXY = ", Angle
+  if math.fabs(Angle - 45.0) > 1e-05:
+    print "  Error: returned angle is", Angle, "while must be 45.0"
+
+  # not in one plane
+  OXY_shift = geompy.MakeTranslation(OXY,10,-10,20)
+  Angle = geompy.GetAngle(OX, OXY_shift)
+
+  print "Angle between OX and OXY_shift = ", Angle
+  if math.fabs(Angle - 45.0) > 1e-05:
+    print "  Error: returned angle is", Angle, "while must be 45.0"
+
   ####### Position (LCS) #######
 
   Pos = geompy.GetPosition(box)
index 81b0aa1e059bc547df4b59728e76d7cd460fbe7d..3bf25cf7527c8c30f4ef368ce67c676af98e490e 100644 (file)
@@ -528,24 +528,72 @@ def TestOtherOperations (geompy, math):
   geompy.UnionIDs(vertices_on_quad, vertices_on_quad_ids)
   geompy.addToStudy(vertices_on_quad, "Group of vertices on Quadrangle F12")
 
-  # GetInPlace(theShapeWhere, theShapeWhat)
+  # Prepare arguments for GetInPlace and GetInPlaceByHistory
   box5 = geompy.MakeBoxDXDYDZ(100, 100, 100)
   box6 = geompy.MakeTranslation(box5, 50, 50, 0)
 
+  geompy.addToStudy(box5, "Box 5")
+  geompy.addToStudy(box6, "Box 6")
+
+  part = geompy.MakePartition([box5], [box6])
+  geompy.addToStudy(part, "Partitioned")
+
+  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
+
+  # GetInPlace(theShapeWhere, theShapeWhat)
+  ibb = 5
+  faces_list = [box5_faces, box6_faces]
+  for afaces in faces_list:
+    ifa = 1
+    for aface in afaces:
+      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)
+        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`
+          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`)
+      ifa = ifa + 1
+    ibb = ibb + 1
+
+  # GetInPlaceByHistory(theShapeWhere, theShapeWhat)
   part = geompy.MakePartition([box5], [box6])
   geompy.addToStudy(part, "Partitioned")
 
   ibb = 5
-  box_list = [box5, box6]
-  for abox in box_list:
-    geompy.addToStudy(abox, "Box " + `ibb`)
-    box_faces = geompy.SubShapeAll(abox, geompy.ShapeType["FACE"])
+  faces_list = [box5_faces, box6_faces]
+  for afaces in faces_list:
     ifa = 1
-    for aface in box_faces:
-      geompy.addToStudyInFather(abox, aface, "Face" + `ifa`)
-      refl_box_face = geompy.GetInPlace(part, aface)
-      if refl_box_face is not None:
+    for aface in afaces:
+      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`
+          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`)
+                                  "Reflection of face " + `ifa` + " of box " + `ibb` + " (by history)")
       ifa = ifa + 1
     ibb = ibb + 1
index 1190037abb5ef1bc51fb8bd242b80839c33ce045..fd979913d6d3e23bed69c5bd5d1bf7094580e135 100755 (executable)
@@ -97,7 +97,7 @@ p_tools.append(geompy.MakePlane(geompy.MakeVertex(gx+g_rayonPetit, 0, 0), geompy
 
 addToStudy(t_boite, "t_boite")
 
-p_element = geompy.MakePartition([t_boite], p_tools, [], [], 4, 0, [])
+p_element = geompy.MakePartition([t_boite], p_tools, [], [], 4, 0, [], 0)
 
 # Compound
 # --------
diff --git a/src/GEOM_SWIG/GEOM_example6.py b/src/GEOM_SWIG/GEOM_example6.py
new file mode 100755 (executable)
index 0000000..91c3739
--- /dev/null
@@ -0,0 +1,60 @@
+#  GEOM GEOM_SWIG : binding of C++ omplementaion with Python\r
+#\r
+#  Copyright (C) 2003  CEA\r
+#\r
+#  This library is free software; you can redistribute it and/or\r
+#  modify it under the terms of the GNU Lesser General Public\r
+#  License as published by the Free Software Foundation; either\r
+#  version 2.1 of the License.\r
+#\r
+#  This library is distributed in the hope that it will be useful,\r
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
+#  Lesser General Public License for more details.\r
+#\r
+#  You should have received a copy of the GNU Lesser General Public\r
+#  License along with this library; if not, write to the Free Software\r
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
+#\r
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com\r
+#\r
+#\r
+#  File   : GEOM_example6.py\r
+#  Author : Dmitry MATVEITCHEV\r
+#  Module : GEOM\r
+#  $Header$\r
+\r
+\r
+import salome\r
+import geompy\r
+\r
+ind = 1\r
+circlelist = []\r
+while ind < 6:\r
+    x1 = 0. + (10. * ind)\r
+    y1 = 0.\r
+    z1 = 0.\r
+    x2 = 10. + (10. * ind)\r
+    y2 = 20. * (ind+1)\r
+    z2 = 30. * (ind+1)\r
+    x3 = 50. + (10. * ind)\r
+    y3 = 0. * (ind+1)\r
+    z3 = -10. * (ind+1)\r
+\r
+    print x1, y1, z1, x2, y2, z2, x3, y3, z3\r
+\r
+    point1 = geompy.MakeVertex(x1, y1, z1)\r
+    name1 = "point1_%d"%(ind)\r
+    id_pt1 = geompy.addToStudy(point1, name1)\r
+    point2 = geompy.MakeVertex(x2, y2, z2)\r
+    name2 = "point2_%d"%(ind)\r
+    id_pt2 = geompy.addToStudy(point2, name2)\r
+    point3 = geompy.MakeVertex(x3, y3, z3)\r
+    name3 = "point3_%d"%(ind)\r
+    id_pt3 = geompy.addToStudy(point3, name3)\r
+\r
+    name = "circle%d"%(ind)\r
+    circle = geompy.MakeCircleCenter2Pnt(point1, point2, point3)\r
+    id_circle = geompy.addToStudy(circle, name)\r
+    circlelist.append(circle)\r
+    ind = ind + 1\r
index 3dd1afe960e12527f341afb5529c942961268d57..040d500ce75578ceb7db88f7163306b944e8920c 100644 (file)
@@ -17,7 +17,7 @@
 #  License along with this library; if not, write to the Free Software
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 #
-# 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 $(top_srcdir)/adm_local/unix/make_common_starter.am
 
-# ===============================================================
-# Swig targets
-# ===============================================================
-# (cf. http://www.geocities.com/foetsch/python/swig_linux.htm)
-#
-# Step 1: build the wrapping source files with swig
-#
-# libSALOME_LifeCycleCORBA.i -- swig --> swig_wrap.cpp
-#                                        libSALOME_Swig.py
-#
-# Step 2: build the dynamic library from cpp built source files and
-#         dependant libraries.
-#
-# swig_wrap.cpp -- gcc --> swig_wrap.o    |-- link --> _libSALOME_Swig.la
-#                          +              |
-#                          dependant libs |
-#
-# The file libSALOME_Swigcmodule.py will be installed in
-# <prefix>/lib/python<version>/site-package/salome.
-# The library will be installed in the same place.
-#
-
-# this option puts it to dist
-#BUILT_SOURCES = swig_wrap.cpp
-
-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)
-
-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
 
 EXPORT_SHAREDPYSCRIPTS=\
        GEOM_shared_modules.py
 
-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 \
-       -I$(top_builddir)/salome_adm/unix
-
-libGEOM_Swigcmodule_la_LDFLAGS = \
-       ../GEOMGUI/libGEOM.la
-
-
-libGEOM_Swigcmodule_la_LIBADD  = \
-       $(PYTHON_LIBS)
-
-swig_wrap.cpp : $(SWIG_SOURCES)
-       $(SWIG) $(SWIG_FLAGS) -o $@ $<
-
-CLEANFILES = \
-       swig_wrap.cpp
-
 #
 # ===============================================================
 # Files to be installed
@@ -121,8 +44,8 @@ CLEANFILES = \
 
 # Scripts to be installed.
 dist_salomescript_DATA= \
-       libGEOM_Swig.py \
        geompy.py \
+       geompyDC.py \
        batchmode_geompy.py \
        GEOM_Spanner.py \
        GEOM_blocks.py \
@@ -131,6 +54,7 @@ dist_salomescript_DATA= \
        GEOM_example3.py \
        GEOM_example4.py \
        GEOM_example5.py \
+       GEOM_example6.py \
        GEOM_moteur.py \
        GEOM_TestAll.py  \
        GEOM_TestOthers.py \
@@ -156,9 +80,3 @@ dist_salomescript_DATA= \
 
 sharedpkgpython_PYTHON = \
        GEOM_shared_modules.py
-
-install-exec-hook:\
-       $(libdir)/_libGEOM_Swig.so
-
-$(libdir)/_libGEOM_Swig.so:
-       ( cd $(libdir); ln -sf libGEOM_Swigcmodule.so _libGEOM_Swig.so; )
index 0f91c8c9dcf4b9e4210e32176a133cf95ea46771..6485368cfe40729cd577b809f0bf3ca1cdf0a10b 100644 (file)
@@ -155,6 +155,12 @@ def MakeVertexOnCurve(curve,par):
       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:
@@ -179,6 +185,12 @@ def MakeLineTwoPnt(p1, p2):
       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:
@@ -249,6 +261,12 @@ def MakeCircleThreePnt(p1,p2,p3):
       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:
@@ -376,12 +394,24 @@ def MakePrism(baseShape,point1,point2):
       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:
@@ -394,6 +424,12 @@ def MakeRevolution(aShape,axis,angle):
       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
 # -----------------------------------------------------------------------------
@@ -699,19 +735,23 @@ def MakeSection(s1, s2):
     return MakeBoolean(s1, s2, 4)
 
 def MakePartition(ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
-                  Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[]):
+                  Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[],
+                  KeepNonlimitShapes=0):
     anObj = BoolOp.MakePartition(ListShapes, ListTools,
                                  ListKeepInside, ListRemoveInside,
-                                 Limit, RemoveWebs, ListMaterials);
+                                 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=[]):
+              Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[],
+              KeepNonlimitShapes=0):
     anObj = MakePartition(ListShapes, ListTools,
                           ListKeepInside, ListRemoveInside,
-                          Limit, RemoveWebs, ListMaterials);
+                          Limit, RemoveWebs, ListMaterials,
+                          KeepNonlimitShapes);
     return anObj
 
 def MakeHalfPartition(theShape, thePlane):
@@ -848,6 +888,16 @@ def MakeFillet(aShape,radius,aShapeType,ListShape):
       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:
@@ -860,12 +910,36 @@ def MakeChamferEdge(aShape,d1,d2,face1,face2):
       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"]:
index 089a39c6b411a5b785aa54335237634e30a3a1af..7a997f56465f392603f4fd23c5050c1a79ccb319 100644 (file)
 #  $Header$
 
 import salome
-salome.salome_init()
+import geompyDC
 from salome import *
 
-import GEOM
+geom = lcc.FindOrLoadComponent("FactoryServer", "GEOM")
+geom.init_geom(salome.myStudy)
 
-"""
-    \namespace geompy
-    \brief Module geompy
-"""
+# Export the methods of geompyDC
+for k in dir(geom):
+  if k[0] == '_':continue
+  globals()[k]=getattr(geom,k)
+del k
+from geompyDC import ShapeType,GEOM,kind, info
 
-g = lcc.FindOrLoadComponent("FactoryServer", "GEOM")
-geom = g._narrow( GEOM.GEOM_Gen )
-#gg = ImportComponentGUI("GEOM")
-#gg.initGeomGen()
-
-#SRN: modified on Mar 18, 2005
-
-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)
-
-#SRN: end of modifications
-
-## Get name for sub-shape aSubObj of shape aMainObj
-#
-#  Example: see GEOM_TestAll.py
-def SubShapeName(aSubObj, aMainObj):
-    #aSubId  = orb.object_to_string(aSubObj)
-    #aMainId = orb.object_to_string(aMainObj)
-    #index = gg.getIndexTopology(aSubId, aMainId)
-    #name = gg.getShapeTypeString(aSubId) + "_%d"%(index)
-    index = ShapesOp.GetTopologyIndex(aMainObj, aSubObj)
-    name = ShapesOp.GetShapeTypeString(aSubObj) + "_%d"%(index)
-    return name
-
-## Publish in study aShape with name aName
-#
-#  Example: see GEOM_TestAll.py
-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
-#
-#  Example: see GEOM_TestAll.py
-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}
-
-# -----------------------------------------------------------------------------
-# enumeration shape_kind
-# -----------------------------------------------------------------------------
-
-kind = GEOM.GEOM_IKindOfShape
-
-class info:
-    UNKNOWN  = 0
-    CLOSED   = 1
-    UNCLOSED = 2
-
-# -----------------------------------------------------------------------------
-# Basic primitives
-# -----------------------------------------------------------------------------
-
-## 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
-def MakeVertex(theX, theY, theZ):
-    anObj = BasicOp.MakePointXYZ(theX, theY, theZ)
-    if BasicOp.IsDone() == 0:
-      print "MakePointXYZ : ", BasicOp.GetErrorCode()
-    return anObj
-
-## Create a point, distant from the referenced point
-#  on the given distances along the coordinate axes.
-#  @param theReference The referenced point.
-#  @param theX Displacement from the referenced point along OX axis.
-#  @param theY Displacement from the referenced point along OY axis.
-#  @param theZ Displacement from the referenced point along OZ axis.
-#  @return New GEOM_Object, containing the created point.
-#
-#  Example: see GEOM_TestAll.py
-def MakeVertexWithRef(theReference, theX, theY, theZ):
-    anObj = BasicOp.MakePointWithReference(theReference, theX, theY, theZ)
-    if BasicOp.IsDone() == 0:
-      print "MakePointWithReference : ", BasicOp.GetErrorCode()
-    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
-def MakeVertexOnCurve(theRefCurve, theParameter):
-    anObj = BasicOp.MakePointOnCurve(theRefCurve, theParameter)
-    if BasicOp.IsDone() == 0:
-      print "MakePointOnCurve : ", BasicOp.GetErrorCode()
-    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(theRefCurve, theParameter):
-    anObj = BasicOp.MakeTangentOnCurve(theRefCurve, theParameter)
-    if BasicOp.IsDone() == 0:
-      print "MakeTangentOnCurve : ", BasicOp.GetErrorCode()
-    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
-def MakeVectorDXDYDZ(theDX, theDY, theDZ):
-    anObj = BasicOp.MakeVectorDXDYDZ(theDX, theDY, theDZ)
-    if BasicOp.IsDone() == 0:
-      print "MakeVectorDXDYDZ : ", BasicOp.GetErrorCode()
-    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
-def MakeVector(thePnt1, thePnt2):
-    anObj = BasicOp.MakeVectorTwoPnt(thePnt1, thePnt2)
-    if BasicOp.IsDone() == 0:
-      print "MakeVectorTwoPnt : ", BasicOp.GetErrorCode()
-    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
-def MakeLine(thePnt, theDir):
-    anObj = BasicOp.MakeLine(thePnt, theDir)
-    if BasicOp.IsDone() == 0:
-      print "MakeLine : ", BasicOp.GetErrorCode()
-    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
-def MakeLineTwoPnt(thePnt1, thePnt2):
-    anObj = BasicOp.MakeLineTwoPnt(thePnt1, thePnt2)
-    if BasicOp.IsDone() == 0:
-      print "MakeLineTwoPnt : ", BasicOp.GetErrorCode()
-    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.
-#  @param theVec Vector, defining the plane normal direction.
-#  @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
-def MakePlane(thePnt, theVec, theTrimSize):
-    anObj = BasicOp.MakePlanePntVec(thePnt, theVec, theTrimSize)
-    if BasicOp.IsDone() == 0:
-      print "MakePlanePntVec : ", BasicOp.GetErrorCode()
-    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.
-#  @param thePnt3 Fird of three points, defining the plane.
-#  @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
-def MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize):
-    anObj = BasicOp.MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize)
-    if BasicOp.IsDone() == 0:
-      print "MakePlaneThreePnt : ", BasicOp.GetErrorCode()
-    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
-def MakePlaneFace(theFace, theTrimSize):
-    anObj = BasicOp.MakePlaneFace(theFace, theTrimSize)
-    if BasicOp.IsDone() == 0:
-      print "MakePlaneFace : ", BasicOp.GetErrorCode()
-    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(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
-
-## 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(theOrigin, theXVec, theYVec):
-    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
-# -----------------------------------------------------------------------------
-
-##  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
-def MakeArc(thePnt1, thePnt2, thePnt3):
-    anObj = CurvesOp.MakeArc(thePnt1, thePnt2, thePnt3)
-    if CurvesOp.IsDone() == 0:
-      print "MakeArc : ", CurvesOp.GetErrorCode()
-    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)
-#  @return New GEOM_Object, containing the created arc.
-#
-#  Example: see GEOM_TestAll.py
-def MakeArcCenter(thePnt1, thePnt2, thePnt3,theSense):
-    anObj = CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3,theSense)
-    if CurvesOp.IsDone() == 0:
-      print "MakeArcCenter : ", CurvesOp.GetErrorCode()
-    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(thePnt, theVec, theR):
-    anObj = CurvesOp.MakeCirclePntVecR(thePnt, theVec, theR)
-    if CurvesOp.IsDone() == 0:
-      print "MakeCirclePntVecR : ", CurvesOp.GetErrorCode()
-    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
-def MakeCircleThreePnt(thePnt1, thePnt2, thePnt3):
-    anObj = CurvesOp.MakeCircleThreePnt(thePnt1, thePnt2, thePnt3)
-    if CurvesOp.IsDone() == 0:
-      print "MakeCircleThreePnt : ", CurvesOp.GetErrorCode()
-    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.
-#  @param theRMajor Major ellipse radius.
-#  @param theRMinor Minor ellipse radius.
-#  @return New GEOM_Object, containing the created ellipse.
-#
-#  Example: see GEOM_TestAll.py
-def MakeEllipse(thePnt, theVec, theRMajor, theRMinor):
-    anObj = CurvesOp.MakeEllipse(thePnt, theVec, theRMajor, theRMinor)
-    if CurvesOp.IsDone() == 0:
-      print "MakeEllipse : ", CurvesOp.GetErrorCode()
-    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
-def MakePolyline(thePoints):
-    anObj = CurvesOp.MakePolyline(thePoints)
-    if CurvesOp.IsDone() == 0:
-      print "MakePolyline : ", CurvesOp.GetErrorCode()
-    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
-def MakeBezier(thePoints):
-    anObj = CurvesOp.MakeSplineBezier(thePoints)
-    if CurvesOp.IsDone() == 0:
-      print "MakeSplineBezier : ", CurvesOp.GetErrorCode()
-    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
-def MakeInterpol(thePoints):
-    anObj = CurvesOp.MakeSplineInterpolation(thePoints)
-    if CurvesOp.IsDone() == 0:
-      print "MakeSplineInterpolation : ", CurvesOp.GetErrorCode()
-    return anObj
-
-## Create a sketcher (wire or face), following the textual description,
-#  passed through \a 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:
-#
-#  "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
-#     .
-#       \n
-#     - "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
-#     .
-#       \n
-#     - "C radius length" : Create arc by direction, radius and length(in degree)
-#     .
-#       \n
-#     - "WW" : Close Wire (to finish)
-#     - "WF" : Close Wire and build face (to finish)
-#
-#  @param theCommand String, defining the sketcher in local
-#                    coordinates of the working plane.
-#  @param theWorkingPlane Nine double values, defining origin,
-#                         OZ and OX directions of the working plane.
-#  @return New GEOM_Object, containing the created wire.
-#
-#  Example: see GEOM_TestAll.py
-def MakeSketcher(theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0]):
-    anObj = CurvesOp.MakeSketcher(theCommand, theWorkingPlane)
-    if CurvesOp.IsDone() == 0:
-      print "MakeSketcher : ", CurvesOp.GetErrorCode()
-    return anObj
-
-## 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 or LCS(Marker) of the working plane.
-#  @return New GEOM_Object, containing the created wire.
-def MakeSketcherOnPlane(theCommand, theWorkingPlane):
-    anObj = CurvesOp.MakeSketcherOnPlane(theCommand, theWorkingPlane)
-    if CurvesOp.IsDone() == 0:
-      print "MakeSketcher : ", CurvesOp.GetErrorCode()
-    return anObj
-
-# -----------------------------------------------------------------------------
-# Create 3D Primitives
-# -----------------------------------------------------------------------------
-
-## Create a box by coordinates of two opposite vertices.
-#
-#  Example: see GEOM_TestAll.py
-def MakeBox(x1,y1,z1,x2,y2,z2):
-    pnt1 = MakeVertex(x1,y1,z1)
-    pnt2 = MakeVertex(x2,y2,z2)
-    return 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).
-#  @param theDX Length of Box edges, parallel to OX axis.
-#  @param theDY Length of Box edges, parallel to OY axis.
-#  @param theDZ Length of Box edges, parallel to OZ axis.
-#  @return New GEOM_Object, containing the created box.
-#
-#  Example: see GEOM_TestAll.py
-def MakeBoxDXDYDZ(theDX, theDY, theDZ):
-    anObj = PrimOp.MakeBoxDXDYDZ(theDX, theDY, theDZ)
-    if PrimOp.IsDone() == 0:
-      print "MakeBoxDXDYDZ : ", PrimOp.GetErrorCode()
-    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
-def MakeBoxTwoPnt(thePnt1, thePnt2):
-    anObj = PrimOp.MakeBoxTwoPnt(thePnt1, thePnt2)
-    if PrimOp.IsDone() == 0:
-      print "MakeBoxTwoPnt : ", PrimOp.GetErrorCode()
-    return anObj
-
-## Create a cylinder with given base point, axis, radius and height.
-#  @param thePnt Central point of cylinder base.
-#  @param theAxis Cylinder axis.
-#  @param theR Cylinder radius.
-#  @param theH Cylinder height.
-#  @return New GEOM_Object, containing the created cylinder.
-#
-#  Example: see GEOM_TestAll.py
-def MakeCylinder(thePnt, theAxis, theR, theH):
-    anObj = PrimOp.MakeCylinderPntVecRH(thePnt, theAxis, theR, theH)
-    if PrimOp.IsDone() == 0:
-      print "MakeCylinderPntVecRH : ", PrimOp.GetErrorCode()
-    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.
-#  @param theR Cylinder radius.
-#  @param theH Cylinder height.
-#  @return New GEOM_Object, containing the created cylinder.
-#
-#  Example: see GEOM_TestAll.py
-def MakeCylinderRH(theR, theH):
-    anObj = PrimOp.MakeCylinderRH(theR, theH)
-    if PrimOp.IsDone() == 0:
-      print "MakeCylinderRH : ", PrimOp.GetErrorCode()
-    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(thePnt, theR):
-    anObj = PrimOp.MakeSpherePntR(thePnt, theR)
-    if PrimOp.IsDone() == 0:
-      print "MakeSpherePntR : ", PrimOp.GetErrorCode()
-    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(x, y, z, theR):
-    point = MakeVertex(x, y, z)
-    anObj = MakeSpherePntR(point, theR)
-    return anObj
-
-## Create a sphere with given radius at the origin of coordinate system.
-#  @param theR Sphere radius.
-#  @return New GEOM_Object, containing the created sphere.
-#
-#  Example: see GEOM_TestAll.py
-def MakeSphereR(theR):
-    anObj = PrimOp.MakeSphereR(theR)
-    if PrimOp.IsDone() == 0:
-      print "MakeSphereR : ", PrimOp.GetErrorCode()
-    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.
-#  @param theR1 Radius of the first cone base.
-#  @param theR2 Radius of the second cone base.
-#    \note If both radiuses are non-zero, the cone will be truncated.
-#    \note If the radiuses are equal, a cylinder will be created instead.
-#  @param theH Cone height.
-#  @return New GEOM_Object, containing the created cone.
-#
-#  Example: see GEOM_TestAll.py
-def MakeCone(thePnt, theAxis, theR1, theR2, theH):
-    anObj = PrimOp.MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theH)
-    if PrimOp.IsDone() == 0:
-      print "MakeConePntVecR1R2H : ", PrimOp.GetErrorCode()
-    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.
-#  @param theR1 Radius of the first cone base.
-#  @param theR2 Radius of the second cone base.
-#    \note If both radiuses are non-zero, the cone will be truncated.
-#    \note If the radiuses are equal, a cylinder will be created instead.
-#  @param theH Cone height.
-#  @return New GEOM_Object, containing the created cone.
-#
-#  Example: see GEOM_TestAll.py
-def MakeConeR1R2H(theR1, theR2, theH):
-    anObj = PrimOp.MakeConeR1R2H(theR1, theR2, theH)
-    if PrimOp.IsDone() == 0:
-      print "MakeConeR1R2H : ", PrimOp.GetErrorCode()
-    return anObj
-
-## Create a torus with given center, normal vector and radiuses.
-#  @param thePnt Torus central point.
-#  @param theVec Torus axis of symmetry.
-#  @param theRMajor Torus major radius.
-#  @param theRMinor Torus minor radius.
-#  @return New GEOM_Object, containing the created torus.
-#
-#  Example: see GEOM_TestAll.py
-def MakeTorus(thePnt, theVec, theRMajor, theRMinor):
-    anObj = PrimOp.MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor)
-    if PrimOp.IsDone() == 0:
-      print "MakeTorusPntVecRR : ", PrimOp.GetErrorCode()
-    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(theRMajor, theRMinor):
-    anObj = PrimOp.MakeTorusRR(theRMajor, theRMinor)
-    if PrimOp.IsDone() == 0:
-      print "MakeTorusRR : ", PrimOp.GetErrorCode()
-    return anObj
-
-## 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(theBase, thePoint1, thePoint2):
-    anObj = PrimOp.MakePrismTwoPnt(theBase, thePoint1, thePoint2)
-    if PrimOp.IsDone() == 0:
-      print "MakePrismTwoPnt : ", PrimOp.GetErrorCode()
-    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.
-#  @param theBase Base shape to be extruded.
-#  @param theVec Direction of extrusion.
-#  @param theH Prism dimension along theVec.
-#  @return New GEOM_Object, containing the created prism.
-#
-#  Example: see GEOM_TestAll.py
-def MakePrismVecH(theBase, theVec, theH):
-    anObj = PrimOp.MakePrismVecH(theBase, theVec, theH)
-    if PrimOp.IsDone() == 0:
-      print "MakePrismVecH : ", PrimOp.GetErrorCode()
-    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.
-#
-#  Example: see GEOM_TestAll.py
-def MakePipe(theBase, thePath):
-    anObj = PrimOp.MakePipe(theBase, thePath)
-    if PrimOp.IsDone() == 0:
-      print "MakePipe : ", PrimOp.GetErrorCode()
-    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.
-#  @param theBase Base shape to be rotated.
-#  @param theAxis Rotation axis.
-#  @param theAngle Rotation angle in radians.
-#  @return New GEOM_Object, containing the created revolution.
-#
-#  Example: see GEOM_TestAll.py
-def MakeRevolution(theBase, theAxis, theAngle):
-    anObj = PrimOp.MakeRevolutionAxisAngle(theBase, theAxis, theAngle)
-    if PrimOp.IsDone() == 0:
-      print "MakeRevolutionAxisAngle : ", PrimOp.GetErrorCode()
-    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
-#  @param thePreci - precision 3D used for smoothing by default 1.e-6
-#  @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
-def MakeThruSections(theSeqSections,theModeSolid,thePreci,theRuled):
-    anObj = PrimOp.MakeThruSections(theSeqSections,theModeSolid,thePreci,theRuled)
-    if PrimOp.IsDone() == 0:
-      print "MakeThruSections : ", PrimOp.GetErrorCode()
-    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.     
-#  @param theSeqBases - list of  Bases shape to be extruded.
-#  @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 or list of locations can be empty.
-#  @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
-#  @return New GEOM_Object, containing the created pipe.
-#
-#  Example: see GEOM_TestAll.py
-def MakePipeWithDifferentSections(theSeqBases, theLocations,thePath,theWithContact,theWithCorrection):
-    anObj = PrimOp.MakePipeWithDifferentSections(theSeqBases, theLocations,thePath,theWithContact,theWithCorrection)
-    if PrimOp.IsDone() == 0:
-      print "MakePipeWithDifferentSections : ", PrimOp.GetErrorCode()
-    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 several profiles can be specified in the several locations of path.     
-#  @param theSeqBases - list of  Bases shape to be extruded.
-#  @param theSeqSubBases - list of corresponding subshapes of section 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 or list of locations can be empty.
-#  @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
-#  @return New GEOM_Object, containing the created solids.
-#
-#  Example: see GEOM_TestAll.py
-def MakePipeWithShellSections(theSeqBases, theSeqSubBases,
-                              theLocations, thePath,
-                              theWithContact, theWithCorrection):
-    anObj = PrimOp.MakePipeWithShellSections(theSeqBases, theSeqSubBases,
-                                             theLocations, thePath,
-                                             theWithContact, theWithCorrection)
-    if PrimOp.IsDone() == 0:
-      print "MakePipeWithShellSections : ", PrimOp.GetErrorCode()
-    return anObj
-
-# -----------------------------------------------------------------------------
-# Create base shapes
-# -----------------------------------------------------------------------------
-
-## 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
-def MakeEdge(thePnt1, thePnt2):
-    anObj = ShapesOp.MakeEdge(thePnt1, thePnt2)
-    if ShapesOp.IsDone() == 0:
-      print "MakeEdge : ", ShapesOp.GetErrorCode()
-    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
-def MakeWire(theEdgesAndWires):
-    anObj = ShapesOp.MakeWire(theEdgesAndWires)
-    if ShapesOp.IsDone() == 0:
-      print "MakeWire : ", ShapesOp.GetErrorCode()
-    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
-def MakeFace(theWire, isPlanarWanted):
-    anObj = ShapesOp.MakeFace(theWire, isPlanarWanted)
-    if ShapesOp.IsDone() == 0:
-      print "MakeFace : ", ShapesOp.GetErrorCode()
-    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
-def MakeFaceWires(theWires, isPlanarWanted):
-    anObj = ShapesOp.MakeFaceWires(theWires, isPlanarWanted)
-    if ShapesOp.IsDone() == 0:
-      print "MakeFaceWires : ", ShapesOp.GetErrorCode()
-    return anObj
-
-## Shortcut to MakeFaceWires()
-#
-#  Example: see GEOM_TestOthers.py
-def MakeFaces(theWires, isPlanarWanted):
-    anObj = 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
-def MakeShell(theFacesAndShells):
-    anObj = ShapesOp.MakeShell(theFacesAndShells)
-    if ShapesOp.IsDone() == 0:
-       print "MakeShell : ", ShapesOp.GetErrorCode()
-    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
-def MakeSolid(theShells):
-    anObj = ShapesOp.MakeSolidShells(theShells)
-    if ShapesOp.IsDone() == 0:
-       print "MakeSolid : ", ShapesOp.GetErrorCode()
-    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
-def MakeCompound(theShapes):
-    anObj = ShapesOp.MakeCompound(theShapes)
-    if ShapesOp.IsDone() == 0:
-      print "MakeCompound : ", ShapesOp.GetErrorCode()
-    return anObj
-
-## Gives quantity of faces in the given shape.
-#  @param theShape Shape to count faces of.
-#  @return Quantity of faces.
-#
-#  Example: see GEOM_TestOthers.py
-def NumberOfFaces(theShape):
-    nb_faces = ShapesOp.NumberOfFaces(theShape)
-    if ShapesOp.IsDone() == 0:
-      print "NumberOfFaces : ", ShapesOp.GetErrorCode()
-    return nb_faces
-
-## Gives quantity of edges in the given shape.
-#  @param theShape Shape to count edges of.
-#  @return Quantity of edges.
-#
-#  Example: see GEOM_TestOthers.py
-def NumberOfEdges(theShape):
-    nb_edges = ShapesOp.NumberOfEdges(theShape)
-    if ShapesOp.IsDone() == 0:
-      print "NumberOfEdges : ", ShapesOp.GetErrorCode()
-    return nb_edges
-
-## Reverses an orientation the given shape.
-#  @param theShape Shape to be reversed.
-#  @return The reversed copy of theShape.
-#
-#  Example: see GEOM_TestAll.py
-def ChangeOrientation(theShape):
-    anObj = ShapesOp.ChangeOrientation(theShape)
-    if ShapesOp.IsDone() == 0:
-      print "ChangeOrientation : ", ShapesOp.GetErrorCode()
-    return anObj
-
-## Shortcut to ChangeOrientation()
-#
-#  Example: see GEOM_TestOthers.py
-def OrientationChange(theShape):
-    anObj = ChangeOrientation(theShape)
-    return anObj
-
-## 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
-def GetFreeFacesIDs(theShape):
-    anIDs = ShapesOp.GetFreeFacesIDs(theShape)
-    if ShapesOp.IsDone() == 0:
-      print "GetFreeFacesIDs : ", ShapesOp.GetErrorCode()
-    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
-def GetSharedShapes(theShape1, theShape2, theShapeType):
-    aList = ShapesOp.GetSharedShapes(theShape1, theShape2, theShapeType)
-    if ShapesOp.IsDone() == 0:
-      print "GetSharedShapes : ", ShapesOp.GetErrorCode()
-    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.
-#  @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 and 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.
-#  @return List of all found sub-shapes.
-#
-#  Example: see GEOM_TestOthers.py
-def GetShapesOnPlane(theShape, theShapeType, theAx1, theState):
-    aList = ShapesOp.GetShapesOnPlane(theShape, theShapeType, theAx1, theState)
-    if ShapesOp.IsDone() == 0:
-      print "GetShapesOnPlane : ", ShapesOp.GetErrorCode()
-    return aList
-
-## Works like the above method, but returns list of sub-shapes indices
-#
-#  Example: see GEOM_TestOthers.py
-def GetShapesOnPlaneIDs(theShape, theShapeType, theAx1, theState):
-    aList = ShapesOp.GetShapesOnPlaneIDs(theShape, theShapeType, theAx1, theState)
-    if ShapesOp.IsDone() == 0:
-        print "GetShapesOnPlaneIDs : ", ShapesOp.GetErrorCode()
-    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.
-#  @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.
-#  @return List of all found sub-shapes.
-#
-#  Example: see GEOM_TestOthers.py
-def GetShapesOnPlaneWithLocation(theShape, theShapeType, theAx1, thePnt, theState):
-    aList = ShapesOp.GetShapesOnPlaneWithLocation(theShape, theShapeType, theAx1, thePnt, theState)
-    if ShapesOp.IsDone() == 0:
-      print "GetShapesOnPlaneWithLocation : ", ShapesOp.GetErrorCode()
-    return aList
-
-## Works like the above method, but returns list of sub-shapes indices
-#
-#  Example: see GEOM_TestOthers.py
-def GetShapesOnPlaneWithLocationIDs(theShape, theShapeType, theAx1, thePnt, theState):
-    aList = ShapesOp.GetShapesOnPlaneWithLocationIDs(theShape, theShapeType, theAx1, thePnt, theState)
-    if ShapesOp.IsDone() == 0:
-        print "GetShapesOnPlaneWithLocationIDs : ", ShapesOp.GetErrorCode()
-    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.
-#  @param theShapeType Type of sub-shapes to be retrieved.
-#  @param theAxis Vector (or line, or linear edge), specifying
-#                 axis of the cylinder to find shapes on.
-#  @param theRadius Radius of the cylinder 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.
-#  @return List of all found sub-shapes.
-#
-#  Example: see GEOM_TestOthers.py
-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
-
-## Works like the above method, but returns list of sub-shapes indices
-#
-#  Example: see GEOM_TestOthers.py
-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
-
-## 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.
-#  @param theShapeType Type of sub-shapes to be retrieved.
-#  @param theCenter Point, specifying center of the sphere to find shapes on.
-#  @param theRadius Radius of the sphere 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.
-#  @return List of all found sub-shapes.
-#
-#  Example: see GEOM_TestOthers.py
-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
-
-## Works like the above method, but returns list of sub-shapes indices
-#
-#  Example: see GEOM_TestOthers.py
-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
-
-## 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.
-#  @param theShapeType Type of sub-shapes to be retrieved.
-#  @param theTopLeftPoint Point, specifying top left corner of a quadrangle
-#  @param theTopRigthPoint Point, specifying top right corner of a quadrangle
-#  @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.
-#  @return List of all found sub-shapes.
-#
-#  Example: see GEOM_TestOthers.py
-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
-
-## Works like the above method, but returns list of sub-shapes indices
-#
-#  Example: see GEOM_TestOthers.py
-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
-
-## 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.
-#  @return List of all found sub-shapes.
-#
-def GetShapesOnBox(theBox, theShape, theShapeType, theState):
-    aList = ShapesOp.GetShapesOnBox(theBox, theShape, theShapeType, theState)
-    if ShapesOp.IsDone() == 0:
-      print "GetShapesOnBox : ", ShapesOp.GetErrorCode()
-    return aList
-
-## Works like the above method, but returns list of sub-shapes indices
-#
-def GetShapesOnBoxIDs(theBox, theShape, theShapeType, theState):
-    aList = ShapesOp.GetShapesOnBoxIDs(theBox, theShape, theShapeType, theState)
-    if ShapesOp.IsDone() == 0:
-        print "GetShapesOnBoxIDs : ", ShapesOp.GetErrorCode()
-    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
-def GetInPlace(theShapeWhere, theShapeWhat):
-    anObj = ShapesOp.GetInPlace(theShapeWhere, theShapeWhat)
-    if ShapesOp.IsDone() == 0:
-      print "GetInPlace : ", ShapesOp.GetErrorCode()
-    return anObj
-
-## Get sub-shape of theShapeWhere, which is
-#  equal to \a theShapeWhat.
-#  @param theShapeWhere Shape to find sub-shape of.
-#  @param theShapeWhat Shape, specifying what to find.
-#  @return New GEOM_Object for found sub-shape.
-#
-def GetSame(theShapeWhere, theShapeWhat):
-    anObj = ShapesOp.GetSame(theShapeWhere, theShapeWhat)
-    if ShapesOp.IsDone() == 0:
-      print "GetSame : ", ShapesOp.GetErrorCode()
-    return anObj
-
-# -----------------------------------------------------------------------------
-# Access to sub-shapes by their unique IDs inside the main shape.
-# -----------------------------------------------------------------------------
-
-## 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(aShape, ListOfID):
-    anObj = geom.AddSubShape(aShape,ListOfID)
-    return anObj
-
-## Obtain unique ID of sub-shape <aSubShape> inside <aShape>
-#
-#  Example: see GEOM_TestAll.py
-def GetSubShapeID(aShape, aSubShape):
-    anID = LocalOp.GetSubShapeIndex(aShape, aSubShape)
-    if LocalOp.IsDone() == 0:
-      print "GetSubShapeIndex : ", LocalOp.GetErrorCode()
-    return anID
-
-# -----------------------------------------------------------------------------
-# Decompose objects
-# -----------------------------------------------------------------------------
-
-## Explode a shape on subshapes of a given type.
-#  @param theShape Shape to be exploded.
-#  @param theShapeType 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(aShape, aType):
-    ListObj = ShapesOp.MakeExplode(aShape,aType,0)
-    if ShapesOp.IsDone() == 0:
-      print "MakeExplode : ", ShapesOp.GetErrorCode()
-    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.
-#  @return List of IDs of sub-shapes.
-def SubShapeAllIDs(aShape, aType):
-    ListObj = ShapesOp.SubShapeAllIDs(aShape,aType,0)
-    if ShapesOp.IsDone() == 0:
-      print "SubShapeAllIDs : ", ShapesOp.GetErrorCode()
-    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.
-#  @return List of sub-shapes of type theShapeType, contained in theShape.
-#
-#  Example: see GEOM_TestAll.py
-def SubShapeAllSorted(aShape, aType):
-    ListObj = ShapesOp.MakeExplode(aShape,aType,1)
-    if ShapesOp.IsDone() == 0:
-      print "MakeExplode : ", ShapesOp.GetErrorCode()
-    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.
-#  @return List of IDs of sub-shapes.
-def SubShapeAllSortedIDs(aShape, aType):
-    ListIDs = ShapesOp.SubShapeAllIDs(aShape,aType,1)
-    if ShapesOp.IsDone() == 0:
-      print "SubShapeAllSortedIDs : ", ShapesOp.GetErrorCode()
-    return ListIDs
-
-## 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(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 <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
-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
-# -----------------------------------------------------------------------------
-
-## 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.
-#  @return New GEOM_Object, containing processed shape.
-#
-#  Example: see GEOM_TestHealing.py
-def ProcessShape(theShape, theOperators, theParameters, theValues):
-    anObj = HealOp.ProcessShape(theShape, theOperators, theParameters, theValues)
-    if HealOp.IsDone() == 0:
-       print "ProcessShape : ", HealOp.GetErrorCode()
-    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
-def SuppressFaces(theObject, theFaces):
-    anObj = HealOp.SuppressFaces(theObject, theFaces)
-    if HealOp.IsDone() == 0:
-      print "SuppressFaces : ", HealOp.GetErrorCode()
-    return anObj
-
-## Sewing of some shapes into single shape.
-#
-#  Example: see GEOM_TestHealing.py
-def MakeSewing(ListShape, theTolerance):
-    comp = MakeCompound(ListShape)
-    anObj = Sew(comp, theTolerance)
-    return anObj
-
-## Sewing of the given object.
-#  @param theObject Shape to be processed.
-#  @param theTolerance Required tolerance value.
-#  @return New GEOM_Object, containing processed shape.
-#
-#  Example: see MakeSewing() above
-def Sew(theObject, theTolerance):
-    anObj = HealOp.Sew(theObject, theTolerance)
-    if HealOp.IsDone() == 0:
-      print "Sew : ", HealOp.GetErrorCode()
-    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
-def SuppressInternalWires(theObject, theWires):
-    anObj = HealOp.RemoveIntWires(theObject, theWires)
-    if HealOp.IsDone() == 0:
-      print "SuppressInternalWires : ", HealOp.GetErrorCode()
-    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
-def SuppressHoles(theObject, theWires):
-    anObj = HealOp.FillHoles(theObject, theWires)
-    if HealOp.IsDone() == 0:
-      print "SuppressHoles : ", HealOp.GetErrorCode()
-    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 <VAR>theObject</VAR>'s shape,
-#                  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
-def CloseContour(theObject, theWires, isCommonVertex):
-    anObj = HealOp.CloseContour(theObject, theWires, isCommonVertex)
-    if HealOp.IsDone() == 0:
-      print "CloseContour : ", HealOp.GetErrorCode()
-    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,
-#                      if -1, then theObject itself is the edge.
-#  @param theValue Value of parameter on edge or length parameter,
-#                  depending on \a isByParameter.
-#  @param isByParameter If TRUE : \a theValue is treated as a curve parameter [0..1],
-#                       if FALSE : \a theValue is treated as a length parameter [0..1]
-#  @return New GEOM_Object, containing processed shape.
-#
-#  Example: see GEOM_TestHealing.py
-def DivideEdge(theObject, theEdgeIndex, theValue, isByParameter):
-    anObj = HealOp.DivideEdge(theObject, theEdgeIndex, theValue, isByParameter)
-    if HealOp.IsDone() == 0:
-      print "DivideEdge : ", HealOp.GetErrorCode()
-    return anObj
-
-## Change orientation of the given object.
-#  @param theObject Shape to be processed.
-#  @update given shape
-def ChangeOrientationShell(theObject):
-    theObject = HealOp.ChangeOrientation(theObject)
-    if HealOp.IsDone() == 0:
-      print "ChangeOrientation : ", HealOp.GetErrorCode()
-
-## Change orientation of the given object.
-#  @param theObject Shape to be processed.
-#  @return New GEOM_Object, containing processed shape.
-def ChangeOrientationShellCopy(theObject):
-    anObj = HealOp.ChangeOrientationCopy(theObject)
-    if HealOp.IsDone() == 0:
-      print "ChangeOrientation : ", HealOp.GetErrorCode()
-    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.
-#  @return [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 GetFreeBoundary(theObject):
-    anObj = HealOp.GetFreeBoundary(theObject)
-    if HealOp.IsDone() == 0:
-      print "GetFreeBoundaries : ", HealOp.GetErrorCode()
-    return anObj
-
-# -----------------------------------------------------------------------------
-# Create advanced objects
-# -----------------------------------------------------------------------------
-
-## Create a copy of the given object
-#
-#  Example: see GEOM_TestAll.py
-def MakeCopy(theOriginal):
-    anObj = InsertOp.MakeCopy(theOriginal)
-    if InsertOp.IsDone() == 0:
-      print "MakeCopy : ", InsertOp.GetErrorCode()
-    return anObj
-
-## Create a filling from the given compound of contours.
-#  @param theShape the compound of contours
-#  @param theMinDeg a minimal degree
-#  @param theMaxDeg a maximal degree
-#  @param theTol2D a 2d tolerance
-#  @param theTol3D a 3d tolerance
-#  @param theNbIter a number of iteration
-#  @return New GEOM_Object, containing the created filling surface.
-#
-#  Example: see GEOM_TestAll.py
-def MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter):
-    anObj = PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter)
-    if PrimOp.IsDone() == 0:
-      print "MakeFilling : ", PrimOp.GetErrorCode()
-    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.
-#  @return New GEOM_Object, containing a copy of theShape without coincident faces.
-#
-#  Example: see GEOM_Spanner.py
-def MakeGlueFaces(theShape, theTolerance):
-    anObj = ShapesOp.MakeGlueFaces(theShape, theTolerance)
-    if ShapesOp.IsDone() == 0:
-      print "MakeGlueFaces : ", ShapesOp.GetErrorCode()
-    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
-def GetGlueFaces(theShape, theTolerance):
-    anObj = ShapesOp.GetGlueFaces(theShape, theTolerance)
-    if ShapesOp.IsDone() == 0:
-      print "GetGlueFaces : ", ShapesOp.GetErrorCode()
-    return anObj
-
-
-## Replace coincident faces in theShape by one face
-#  in compliance with given list of faces
-#  @param theShape Initial shape.
-#  @param theTolerance Maximum distance between faces,
-#                      which can be considered as coincident.
-#  @param theFaces List of faces for gluing.
-#  @return New GEOM_Object, containing a copy of theShape
-#          without some faces.
-#
-#  Example: see GEOM_Spanner.py
-def MakeGlueFacesByList(theShape, theTolerance, theFaces):
-    anObj = ShapesOp.MakeGlueFacesByList(theShape, theTolerance, theFaces)
-    if ShapesOp.IsDone() == 0:
-      print "MakeGlueFacesByList : ", ShapesOp.GetErrorCode()
-    return anObj
-
-
-# -----------------------------------------------------------------------------
-# 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.
-#  @param theOperation Indicates the operation to be done:
-#                      1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
-#  @return New GEOM_Object, containing the result shape.
-#
-#  Example: see GEOM_TestAll.py
-def MakeBoolean(theShape1, theShape2, theOperation):
-    anObj = BoolOp.MakeBoolean(theShape1, theShape2, theOperation)
-    if BoolOp.IsDone() == 0:
-      print "MakeBoolean : ", BoolOp.GetErrorCode()
-    return anObj
-
-## Shortcut to MakeBoolean(s1, s2, 1)
-#
-#  Example: see GEOM_TestOthers.py
-def MakeCommon(s1, s2):
-    return MakeBoolean(s1, s2, 1)
-
-## Shortcut to MakeBoolean(s1, s2, 2)
-#
-#  Example: see GEOM_TestOthers.py
-def MakeCut(s1, s2):
-    return MakeBoolean(s1, s2, 2)
-
-## Shortcut to MakeBoolean(s1, s2, 3)
-#
-#  Example: see GEOM_TestOthers.py
-def MakeFuse(s1, s2):
-    return MakeBoolean(s1, s2, 3)
-
-## Shortcut to MakeBoolean(s1, s2, 4)
-#
-#  Example: see GEOM_TestOthers.py
-def MakeSection(s1, s2):
-    return MakeBoolean(s1, s2, 4)
-
-## Perform partition operation.
-#  @param ListShapes Shapes to be intersected.
-#  @param 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.
-#  @param 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:
-#      @param ListKeepInside Shapes, outside which the results will be deleted.
-#         Each shape from theKeepInside must belong to theShapes also.
-#      @param ListRemoveInside Shapes, inside which the results will be deleted.
-#         Each shape from theRemoveInside must belong to theShapes also.
-#      @param RemoveWebs If TRUE, perform Glue 3D algorithm.
-#      @param ListMaterials Material indices for each shape. Make sence,
-#         only if theRemoveWebs is TRUE.
-#
-#  @return New GEOM_Object, containing the result shapes.
-#
-#  Example: see GEOM_TestAll.py
-def MakePartition(ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
-                  Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[]):
-    anObj = BoolOp.MakePartition(ListShapes, ListTools,
-                                 ListKeepInside, ListRemoveInside,
-                                 Limit, RemoveWebs, ListMaterials);
-    if BoolOp.IsDone() == 0:
-      print "MakePartition : ", BoolOp.GetErrorCode()
-    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
-#  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.
-#
-#  @return New GEOM_Object, containing the result shapes.
-#
-def MakePartitionNonSelfIntersectedShape(ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
-                  Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[]):
-    anObj = BoolOp.MakePartitionNonSelfIntersectedShape(ListShapes, ListTools,
-                                                        ListKeepInside, ListRemoveInside,
-                                                        Limit, RemoveWebs, ListMaterials);
-    if BoolOp.IsDone() == 0:
-      print "MakePartitionNonSelfIntersectedShape : ", BoolOp.GetErrorCode()
-    return anObj
-
-## Shortcut to MakePartition()
-#
-#  Example: see GEOM_TestOthers.py
-def Partition(ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
-              Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[]):
-    anObj = MakePartition(ListShapes, ListTools,
-                          ListKeepInside, ListRemoveInside,
-                          Limit, RemoveWebs, ListMaterials);
-    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
-def MakeHalfPartition(theShape, thePlane):
-    anObj = BoolOp.MakeHalfPartition(theShape, thePlane)
-    if BoolOp.IsDone() == 0:
-      print "MakeHalfPartition : ", BoolOp.GetErrorCode()
-    return anObj
-
-# -----------------------------------------------------------------------------
-# Transform objects
-# -----------------------------------------------------------------------------
-
-## 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.
-#  @param thePoint1 Start point of translation vector.
-#  @param thePoint2 End point of translation vector.
-#  @return New GEOM_Object, containing the translated object.
-#
-#  Example: see GEOM_TestAll.py
-def MakeTranslationTwoPoints(theObject, thePoint1, thePoint2):
-    anObj = TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
-    if TrsfOp.IsDone() == 0:
-      print "TranslateTwoPointsCopy : ", TrsfOp.GetErrorCode()
-    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
-def MakeTranslation(theObject, theDX, theDY, theDZ):
-    anObj = TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
-    if TrsfOp.IsDone() == 0:
-      print "TranslateDXDYDZCopy : ", TrsfOp.GetErrorCode()
-    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
-def MakeTranslationVector(theObject, theVector):
-    anObj = TrsfOp.TranslateVectorCopy(theObject, theVector)
-    if TrsfOp.IsDone() == 0:
-      print "TranslateVectorCopy : ", TrsfOp.GetErrorCode()
-    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.
-#  @param theAxis Rotation axis.
-#  @param theAngle Rotation angle in radians.
-#  @return New GEOM_Object, containing the rotated object.
-#
-#  Example: see GEOM_TestAll.py
-def MakeRotation(theObject, theAxis, theAngle):
-    anObj = TrsfOp.RotateCopy(theObject, theAxis, theAngle)
-    if TrsfOp.IsDone() == 0:
-      print "RotateCopy : ", TrsfOp.GetErrorCode()
-    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.
-#  @return New GEOM_Object, containing the rotated object.
-#
-#  Example: see GEOM_TestAll.py
-def MakeRotationThreePoints(theObject, theCentPoint, thePoint1, thePoint2):
-    anObj = TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2)
-    if TrsfOp.IsDone() == 0:
-      print "RotateThreePointsCopy : ", TrsfOp.GetErrorCode()
-    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.
-#  @param theFactor Scaling factor value.
-#  @return New GEOM_Object, containing the scaled shape.
-#
-#  Example: see GEOM_TestAll.py
-def MakeScaleTransform(theObject, thePoint, theFactor):
-    anObj = TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
-    if TrsfOp.IsDone() == 0:
-      print "ScaleShapeCopy : ", TrsfOp.GetErrorCode()
-    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
-def MakeMirrorByPlane(theObject, thePlane):
-    anObj = TrsfOp.MirrorPlaneCopy(theObject, thePlane)
-    if TrsfOp.IsDone() == 0:
-      print "MirrorPlaneCopy : ", TrsfOp.GetErrorCode()
-    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
-def MakeMirrorByAxis(theObject, theAxis):
-    anObj = TrsfOp.MirrorAxisCopy(theObject, theAxis)
-    if TrsfOp.IsDone() == 0:
-      print "MirrorAxisCopy : ", TrsfOp.GetErrorCode()
-    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
-def MakeMirrorByPoint(theObject, thePoint):
-    anObj = TrsfOp.MirrorPointCopy(theObject, thePoint)
-    if TrsfOp.IsDone() == 0:
-      print "MirrorPointCopy : ", TrsfOp.GetErrorCode()
-    return anObj
-
-## Modify the Location of the given object by LCS,
-#  creating its copy before the setting.
-#  @param theObject The object to be displaced.
-#  @param theStartLCS Coordinate system to perform displacement from it.
-#                     If \a theStartLCS is NULL, displacement
-#                     will be performed from global CS.
-#                     If \a theObject itself is used as \a theStartLCS,
-#                     its location will be changed to \a theEndLCS.
-#  @param theEndLCS Coordinate system to perform displacement to it.
-#  @return New GEOM_Object, containing the displaced shape.
-#
-#  Example: see GEOM_TestAll.py
-def MakePosition(theObject, theStartLCS, theEndLCS):
-    anObj = TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
-    if TrsfOp.IsDone() == 0:
-      print "PositionShapeCopy : ", TrsfOp.GetErrorCode()
-    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
-def MakeOffset(theObject, theOffset):
-    anObj = TrsfOp.OffsetShapeCopy(theObject, theOffset)
-    if TrsfOp.IsDone() == 0:
-      print "OffsetShapeCopy : ", TrsfOp.GetErrorCode()
-    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.
-#  @param theStep Distance to translate on.
-#  @param theNbTimes Quantity of translations to be done.
-#  @return New GEOM_Object, containing compound of all
-#          the shapes, obtained after each translation.
-#
-#  Example: see GEOM_TestAll.py
-def MakeMultiTranslation1D(theObject, theVector, theStep, theNbTimes):
-    anObj = TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes)
-    if TrsfOp.IsDone() == 0:
-      print "MultiTranslate1D : ", TrsfOp.GetErrorCode()
-    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.
-#  @param theStep1 Step of the first translation.
-#  @param theNbTimes1 Quantity of translations to be done along theVector1.
-#  @param theVector2 Direction of the second translation.
-#  @param theStep2 Step of the second translation.
-#  @param theNbTimes2 Quantity of translations to be done along theVector2.
-#  @return New GEOM_Object, containing compound of all
-#          the shapes, obtained after each translation.
-#
-#  Example: see GEOM_TestAll.py
-def MakeMultiTranslation2D(theObject, theVector1, theStep1, theNbTimes1,
-                                     theVector2, theStep2, theNbTimes2):
-    anObj = TrsfOp.MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
-                                              theVector2, theStep2, theNbTimes2)
-    if TrsfOp.IsDone() == 0:
-      print "MultiTranslate2D : ", TrsfOp.GetErrorCode()
-    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.
-#  @param theAxis The rotation axis.
-#  @param theNbTimes Quantity of rotations to be done.
-#  @return New GEOM_Object, containing compound of all the
-#          shapes, obtained after each rotation.
-#
-#  Example: see GEOM_TestAll.py
-def MultiRotate1D(theObject, theAxis, theNbTimes):
-    anObj = TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes)
-    if TrsfOp.IsDone() == 0:
-      print "MultiRotate1D : ", TrsfOp.GetErrorCode()
-    return anObj
-
-## Rotate the given object around the
-#  given axis on the given angle a given number
-#  times and multi-translate each rotation result.
-#  Translation direction passes through center of gravity
-#  of rotated shape and its projection on the rotation axis.
-#  @param theObject The object to be rotated.
-#  @param theAxis Rotation axis.
-#  @param theAngle Rotation angle in graduces.
-#  @param theNbTimes1 Quantity of rotations to be done.
-#  @param theStep Translation distance.
-#  @param theNbTimes2 Quantity of translations to be done.
-#  @return New GEOM_Object, containing compound of all the
-#          shapes, obtained after each transformation.
-#
-#  Example: see GEOM_TestAll.py
-def MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2):
-    anObj = TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2)
-    if TrsfOp.IsDone() == 0:
-      print "MultiRotate2D : ", TrsfOp.GetErrorCode()
-    return anObj
-
-## The same, as MultiRotate1D(), but axis is given by direction and point
-#
-#  Example: see GEOM_TestOthers.py
-def MakeMultiRotation1D(aShape,aDir,aPoint,aNbTimes):
-    aVec = MakeLine(aPoint,aDir)
-    anObj = MultiRotate1D(aShape,aVec,aNbTimes)
-    return anObj
-
-## The same, as MultiRotate2D(), but axis is given by direction and point
-#
-#  Example: see GEOM_TestOthers.py
-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
-# -----------------------------------------------------------------------------
-
-## 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
-def MakeFilletAll(theShape, theR):
-    anObj = LocalOp.MakeFilletAll(theShape, theR)
-    if LocalOp.IsDone() == 0:
-      print "MakeFilletAll : ", LocalOp.GetErrorCode()
-    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 <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
-def MakeFillet(theShape, theR, theShapeType, theListShapes):
-    anObj = None
-    if theShapeType == ShapeType["EDGE"]:
-        anObj = LocalOp.MakeFilletEdges(theShape, theR, theListShapes)
-    else:
-        anObj = LocalOp.MakeFilletFaces(theShape, theR, theListShapes)
-    if LocalOp.IsDone() == 0:
-      print "MakeFillet : ", LocalOp.GetErrorCode()
-    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
-def MakeChamferAll(theShape, theD):
-    anObj = LocalOp.MakeChamferAll(theShape, theD)
-    if LocalOp.IsDone() == 0:
-      print "MakeChamferAll : ", LocalOp.GetErrorCode()
-    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.
-#  @param theD1 Chamfer size along \a theFace1.
-#  @param theD2 Chamfer size along \a theFace2.
-#  @param theFace1,theFace2 Global indices of two faces of \a theShape.
-#    \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
-def MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2):
-    anObj = LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2)
-    if LocalOp.IsDone() == 0:
-      print "MakeChamferEdge : ", LocalOp.GetErrorCode()
-    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.
-#  @param theD1 Chamfer size along face from \a theFaces. If both faces,
-#               connected to the edge, are in \a theFaces, \a theD1
-#               will be get along face, which is nearer to \a theFaces beginning.
-#  @param theD2 Chamfer size along another of two faces, connected to the edge.
-#  @param theFaces Sequence of global indices of faces of \a theShape.
-#    \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
-def MakeChamferFaces(theShape, theD1, theD2, theFaces):
-    anObj = LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces)
-    if LocalOp.IsDone() == 0:
-      print "MakeChamferFaces : ", LocalOp.GetErrorCode()
-    return anObj
-
-## Shortcut to MakeChamferEdge() and MakeChamferFaces()
-#
-#  Example: see GEOM_TestOthers.py
-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
-
-## 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.
-#  @param theWeight Weight og the shape.
-#  @param theWaterDensity Density of the water.
-#  @param theMeshDeflection Deflection of the mesh, using to compute the section.
-#  @return New GEOM_Object, containing a section of \a theShape
-#          by a plane, corresponding to water level.
-#
-#  Example: see GEOM_TestAll.py
-def Archimede(theShape, theWeight, theWaterDensity, theMeshDeflection):
-    anObj = LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection)
-    if LocalOp.IsDone() == 0:
-      print "MakeArchimede : ", LocalOp.GetErrorCode()
-    return anObj
-
-# -----------------------------------------------------------------------------
-# Information objects
-# -----------------------------------------------------------------------------
-
-## Get point coordinates
-#  @return [x, y, z]
-#
-#  Example: see GEOM_TestMeasures.py
-def PointCoordinates(Point):
-    aTuple = MeasuOp.PointCoordinates(Point)
-    if MeasuOp.IsDone() == 0:
-      print "PointCoordinates : ", MeasuOp.GetErrorCode()
-    return aTuple
-
-## Get summarized length of all wires,
-#  area of surface and volume of the given shape.
-#  @param theShape Shape to define properties of.
-#  @return [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 BasicProperties(theShape):
-    aTuple = MeasuOp.GetBasicProperties(theShape)
-    if MeasuOp.IsDone() == 0:
-      print "BasicProperties : ", MeasuOp.GetErrorCode()
-    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]
-#  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 BoundingBox(theShape):
-    aTuple = MeasuOp.GetBoundingBox(theShape)
-    if MeasuOp.IsDone() == 0:
-      print "BoundingBox : ", MeasuOp.GetErrorCode()
-    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
-def Inertia(theShape):
-    aTuple = MeasuOp.GetInertia(theShape)
-    if MeasuOp.IsDone() == 0:
-      print "Inertia : ", MeasuOp.GetErrorCode()
-    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
-def MinDistance(theShape1, theShape2):
-    aTuple = MeasuOp.GetMinDistance(theShape1, theShape2)
-    if MeasuOp.IsDone() == 0:
-      print "MinDistance : ", MeasuOp.GetErrorCode()
-    return aTuple[0]
-
-## Get min and max tolerances of sub-shapes of theShape
-#  @param theShape Shape, to get tolerances of.
-#  @return [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 Tolerance(theShape):
-    aTuple = MeasuOp.GetTolerance(theShape)
-    if MeasuOp.IsDone() == 0:
-      print "Tolerance : ", MeasuOp.GetErrorCode()
-    return aTuple
-
-## Obtain description of the given shape (number of sub-shapes of each type)
-#  @param theShape Shape to be described.
-#  @return Description of the given shape.
-#
-#  Example: see GEOM_TestMeasures.py
-def WhatIs(theShape):
-    aDescr = MeasuOp.WhatIs(theShape)
-    if MeasuOp.IsDone() == 0:
-      print "WhatIs : ", MeasuOp.GetErrorCode()
-    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
-def MakeCDG(theShape):
-    anObj = MeasuOp.GetCentreOfMass(theShape)
-    if MeasuOp.IsDone() == 0:
-      print "GetCentreOfMass : ", MeasuOp.GetErrorCode()
-    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,
-#                        if TRUE, the shape's geometry will be checked also.
-#  @return TRUE, if the shape "seems to be valid".
-#  If theShape is invalid, prints a description of problem.
-#
-#  Example: see GEOM_TestMeasures.py
-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
-
-## Get position (LCS) of 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.
-#
-#  @param theShape Shape to calculate position of.
-#  @return [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 GetPosition(theShape):
-    aTuple = MeasuOp.GetPosition(theShape)
-    if MeasuOp.IsDone() == 0:
-      print "GetPosition : ", MeasuOp.GetErrorCode()
-    return aTuple
-
-## Get kind of theShape.
-#
-#  @param theShape Shape to get a kind of.
-#  @return Returns a kind of shape in terms of <VAR>GEOM_IKindOfShape.shape_kind</VAR> enumeration
-#          and a list of parameters, describing the shape.
-#  @note  Concrete meaning of each value, returned via \a theIntegers
-#         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.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 KindOfShape(theShape):
-    aRoughTuple = MeasuOp.KindOfShape(theShape)
-    if MeasuOp.IsDone() == 0:
-        print "KindOfShape : ", MeasuOp.GetErrorCode()
-        return []
-
-    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
-# -----------------------------------------------------------------------------
-
-## 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.
-#  @param theFormatName Specify format for the file reading.
-#         Available formats can be obtained with InsertOp.ImportTranslators() method.
-#  @return New GEOM_Object, containing the imported shape.
-#
-#  Example: see GEOM_TestOthers.py
-def Import(theFileName, theFormatName):
-    anObj = InsertOp.Import(theFileName, theFormatName)
-    if InsertOp.IsDone() == 0:
-      print "Import : ", InsertOp.GetErrorCode()
-    return anObj
-
-## Shortcut to Import() for BREP format
-#
-#  Example: see GEOM_TestOthers.py
-def ImportBREP(theFileName):
-    return Import(theFileName, "BREP")
-
-## Shortcut to Import() for IGES format
-#
-#  Example: see GEOM_TestOthers.py
-def ImportIGES(theFileName):
-    return Import(theFileName, "IGES")
-
-## Shortcut to Import() for STEP format
-#
-#  Example: see GEOM_TestOthers.py
-def ImportSTEP(theFileName):
-    return 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
-def Export(theObject, theFileName, theFormatName):
-    InsertOp.Export(theObject, theFileName, theFormatName)
-    if InsertOp.IsDone() == 0:
-      print "Export : ", InsertOp.GetErrorCode()
-
-## Shortcut to Export() for BREP format
-#
-#  Example: see GEOM_TestOthers.py
-def ExportBREP(theObject, theFileName):
-    return Export(theObject, theFileName, "BREP")
-
-## Shortcut to Export() for IGES format
-#
-#  Example: see GEOM_TestOthers.py
-def ExportIGES(theObject, theFileName):
-    return Export(theObject, theFileName, "IGES")
-
-## Shortcut to Export() for STEP format
-#
-#  Example: see GEOM_TestOthers.py
-def ExportSTEP(theObject, theFileName):
-    return Export(theObject, theFileName, "STEP")
-
-# -----------------------------------------------------------------------------
-# Block operations
-# -----------------------------------------------------------------------------
-
-## 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
-def MakeQuad(E1, E2, E3, E4):
-    anObj = BlocksOp.MakeQuad(E1, E2, E3, E4)
-    if BlocksOp.IsDone() == 0:
-      print "MakeQuad : ", BlocksOp.GetErrorCode()
-    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
-def MakeQuad2Edges(E1, E2):
-    anObj = BlocksOp.MakeQuad2Edges(E1, E2)
-    if BlocksOp.IsDone() == 0:
-      print "MakeQuad2Edges : ", BlocksOp.GetErrorCode()
-    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
-def MakeQuad4Vertices(V1, V2, V3, V4):
-    anObj = BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4)
-    if BlocksOp.IsDone() == 0:
-      print "MakeQuad4Vertices : ", BlocksOp.GetErrorCode()
-    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
-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
-
-## 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
-def MakeHexa2Faces(F1, F2):
-    anObj = BlocksOp.MakeHexa2Faces(F1, F2)
-    if BlocksOp.IsDone() == 0:
-      print "MakeHexa2Faces : ", BlocksOp.GetErrorCode()
-    return anObj
-
-## 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.
-#  @param theEpsilon Maximum allowed distance between the resulting
-#                    vertex and point with the given coordinates.
-#  @return New GEOM_Object, containing the found vertex.
-#
-#  Example: see GEOM_TestOthers.py
-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
-
-## 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
-def GetEdge(theShape, thePoint1, thePoint2):
-    anObj = BlocksOp.GetEdge(theShape, thePoint1, thePoint2)
-    if BlocksOp.IsDone() == 0:
-      print "GetEdge : ", BlocksOp.GetErrorCode()
-    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
-def GetEdgeNearPoint(theShape, thePoint):
-    anObj = BlocksOp.GetEdgeNearPoint(theShape, thePoint)
-    if BlocksOp.IsDone() == 0:
-      print "GetEdgeNearPoint : ", BlocksOp.GetErrorCode()
-    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.
-#  @return New GEOM_Object, containing the found face.
-#
-#  Example: see GEOM_Spanner.py
-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
-
-## 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
-def GetFaceByEdges(theShape, theEdge1, theEdge2):
-    anObj = BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2)
-    if BlocksOp.IsDone() == 0:
-      print "GetFaceByEdges : ", BlocksOp.GetErrorCode()
-    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
-def GetOppositeFace(theBlock, theFace):
-    anObj = BlocksOp.GetOppositeFace(theBlock, theFace)
-    if BlocksOp.IsDone() == 0:
-      print "GetOppositeFace : ", BlocksOp.GetErrorCode()
-    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
-def GetFaceNearPoint(theShape, thePoint):
-    anObj = BlocksOp.GetFaceNearPoint(theShape, thePoint)
-    if BlocksOp.IsDone() == 0:
-      print "GetFaceNearPoint : ", BlocksOp.GetErrorCode()
-    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 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(theBlock, theVector):
-    anObj = BlocksOp.GetFaceByNormale(theBlock, theVector)
-    if BlocksOp.IsDone() == 0:
-      print "GetFaceByNormale : ", BlocksOp.GetErrorCode()
-    return anObj
-
-## Check, if the compound of blocks is given.
-#  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.
-#  @param theCompound The compound to check.
-#  @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
-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
-
-## 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
-def RemoveExtraEdges(theShape):
-    anObj = BlocksOp.RemoveExtraEdges(theShape)
-    if BlocksOp.IsDone() == 0:
-      print "RemoveExtraEdges : ", BlocksOp.GetErrorCode()
-    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.
-#  @return Improved compound.
-#
-#  Example: see GEOM_TestOthers.py
-def CheckAndImprove(theShape):
-    anObj = BlocksOp.CheckAndImprove(theShape)
-    if BlocksOp.IsDone() == 0:
-      print "CheckAndImprove : ", BlocksOp.GetErrorCode()
-    return anObj
-
-## 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.
-#  @param 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.
-#  @return List of GEOM_Objects, containing the retrieved blocks.
-#
-#  Example: see GEOM_TestOthers.py
-def MakeBlockExplode(theCompound, theMinNbFaces, theMaxNbFaces):
-    aList = BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces)
-    if BlocksOp.IsDone() == 0:
-      print "MakeBlockExplode : ", BlocksOp.GetErrorCode()
-    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
-def GetBlockNearPoint(theCompound, thePoint):
-    anObj = BlocksOp.GetBlockNearPoint(theCompound, thePoint)
-    if BlocksOp.IsDone() == 0:
-      print "GetBlockNearPoint : ", BlocksOp.GetErrorCode()
-    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
-def GetBlockByParts(theCompound, theParts):
-    anObj = BlocksOp.GetBlockByParts(theCompound, theParts)
-    if BlocksOp.IsDone() == 0:
-      print "GetBlockByParts : ", BlocksOp.GetErrorCode()
-    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
-def GetBlocksByParts(theCompound, theParts):
-    aList = BlocksOp.GetBlocksByParts(theCompound, theParts)
-    if BlocksOp.IsDone() == 0:
-      print "GetBlocksByParts : ", BlocksOp.GetErrorCode()
-    return aList
-
-## Multi-transformate block and glue the result.
-#  Transformation is defined so, as to superpose direction faces.
-#  @param Block Hexahedral solid to be multi-transformed.
-#  @param DirFace1 ID of First direction face.
-#  @param DirFace2 ID of Second direction face.
-#  @param NbTimes Quantity of transformations to be done.
-#    \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
-def MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes):
-    anObj = BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes)
-    if BlocksOp.IsDone() == 0:
-      print "MakeMultiTransformation1D : ", BlocksOp.GetErrorCode()
-    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.
-#  @param DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
-#  @param NbTimesU,NbTimesV Quantity of transformations to be done.
-#  @return New GEOM_Object, containing the result shape.
-#
-#  Example: see GEOM_Spanner.py
-def MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU,
-                                    DirFace1V, DirFace2V, NbTimesV):
-    anObj = BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU,
-                                                     DirFace1V, DirFace2V, NbTimesV)
-    if BlocksOp.IsDone() == 0:
-      print "MakeMultiTransformation2D : ", BlocksOp.GetErrorCode()
-    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.
-#  Notion of Opposite Edge make sence only on quadrangle face.
-#  @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
-def Propagate(theShape):
-    listChains = BlocksOp.Propagate(theShape)
-    if BlocksOp.IsDone() == 0:
-      print "Propagate : ", BlocksOp.GetErrorCode()
-    return listChains
-
-# -----------------------------------------------------------------------------
-# Group operations
-# -----------------------------------------------------------------------------
-
-## 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
-def CreateGroup(theMainShape, theShapeType):
-    anObj = GroupOp.CreateGroup(theMainShape, theShapeType)
-    if GroupOp.IsDone() == 0:
-       print "CreateGroup : ", GroupOp.GetErrorCode()
-    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
-def AddObject(theGroup, theSubShapeID):
-    GroupOp.AddObject(theGroup, theSubShapeID)
-    if GroupOp.IsDone() == 0:
-      print "AddObject : ", GroupOp.GetErrorCode()
-
-## 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
-def RemoveObject(theGroup, theSubShapeID):
-    GroupOp.RemoveObject(theGroup, theSubShapeID)
-    if GroupOp.IsDone() == 0:
-      print "RemoveObject : ", GroupOp.GetErrorCode()
-
-## 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
-def UnionList (theGroup, theSubShapes):
-    GroupOp.UnionList(theGroup, theSubShapes)
-    if GroupOp.IsDone() == 0:
-      print "UnionList : ", GroupOp.GetErrorCode()
-
-## Works like the above method, but argument
-#  theSubShapes here is a list of sub-shapes indices
-#
-#  Example: see GEOM_TestOthers.py
-def UnionIDs(theGroup, theSubShapes):
-    GroupOp.UnionIDs(theGroup, theSubShapes)
-    if GroupOp.IsDone() == 0:
-        print "UnionIDs : ", GroupOp.GetErrorCode()
-
-## 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
-def DifferenceList (theGroup, theSubShapes):
-    GroupOp.DifferenceList(theGroup, theSubShapes)
-    if GroupOp.IsDone() == 0:
-      print "DifferenceList : ", GroupOp.GetErrorCode()
-
-## Works like the above method, but argument
-#  theSubShapes here is a list of sub-shapes indices
-#
-#  Example: see GEOM_TestOthers.py
-def DifferenceIDs(theGroup, theSubShapes):
-    GroupOp.DifferenceIDs(theGroup, theSubShapes)
-    if GroupOp.IsDone() == 0:
-        print "DifferenceIDs : ", GroupOp.GetErrorCode()
-
-## 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
-def GetObjectIDs(theGroup):
-    ListIDs = GroupOp.GetObjects(theGroup)
-    if GroupOp.IsDone() == 0:
-      print "GetObjectIDs : ", GroupOp.GetErrorCode()
-    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
-def GetType(theGroup):
-    aType = GroupOp.GetType(theGroup)
-    if GroupOp.IsDone() == 0:
-      print "GetType : ", GroupOp.GetErrorCode()
-    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
-def GetMainShape(theGroup):
-    anObj = GroupOp.GetMainShape(theGroup)
-    if GroupOp.IsDone() == 0:
-      print "GetMainShape : ", GroupOp.GetErrorCode()
-    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 (theShape, min_length, max_length, include_min = 1, include_max = 1):
-    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
-
-## 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 (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."
-       return 0
-    if nb_selected > 1:
-        print "Only one shape must be selected"
-       return 0
-
-    id_shape = sg.getSelected(0)
-    shape = IDToObject( id_shape )
-
-    group_edges = GetEdgesByLength(shape, min_length, max_length, include_min, include_max)
-
-    left_str  = " < "
-    right_str = " < "
-    if include_min: left_str  = " <= "
-    if include_max: right_str  = " <= "
-
-    addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length`
-                      + left_str + "length" + right_str + `max_length`)
-
-    sg.updateObjBrowser(1)
-
-    return group_edges
-
-## Add Path to load python scripts from
-def addPath(Path):
-    if (sys.path.count(Path) < 1):
-       sys.path.append(Path)
diff --git a/src/GEOM_SWIG/geompyDC.py b/src/GEOM_SWIG/geompyDC.py
new file mode 100644 (file)
index 0000000..415ff98
--- /dev/null
@@ -0,0 +1,2683 @@
+#  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   : geompy.py
+#  Author : Paul RASCLE, EDF
+#  Module : GEOM
+#  $Header$
+"""
+    \namespace geompy
+    \brief Module geompy
+"""
+
+import salome
+salome.salome_init()
+from salome import *
+
+import GEOM
+
+# -----------------------------------------------------------------------------
+# enumeration ShapeType as a dictionary
+# -----------------------------------------------------------------------------
+
+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
+# -----------------------------------------------------------------------------
+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()
+
+# -----------------------------------------------------------------------------
+# enumeration shape_kind
+# -----------------------------------------------------------------------------
+
+kind = GEOM.GEOM_IKindOfShape
+
+class info:
+    UNKNOWN  = 0
+    CLOSED   = 1
+    UNCLOSED = 2
+
+
+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
+            self.ShapesOp = None
+            self.HealOp   = None
+            self.InsertOp = None
+            self.BoolOp   = None
+            self.TrsfOp   = None
+            self.LocalOp  = None
+            self.MeasuOp  = None
+            self.BlocksOp = None
+            self.GroupOp  = None
+            pass
+
+        def init_geom(self,theStudy):
+            self.myStudy = theStudy
+            self.myStudyId = self.myStudy._get_StudyId()
+            self.myBuilder = self.myStudy.NewBuilder()
+            self.father = self.myStudy.FindComponent("GEOM")
+            if self.father is None:
+                self.father = self.myBuilder.NewComponent("GEOM")
+                A1 = self.myBuilder.FindOrCreateAttribute(self.father, "AttributeName")
+                FName = A1._narrow(SALOMEDS.AttributeName)
+                FName.SetValue("Geometry")
+                A2 = self.myBuilder.FindOrCreateAttribute(self.father, "AttributePixMap")
+                aPixmap = A2._narrow(SALOMEDS.AttributePixMap)
+                aPixmap.SetPixMap("ICON_OBJBROWSER_Geometry")
+                self.myBuilder.DefineComponentInstance(self.father,self)
+                pass
+            self.BasicOp  = self.GetIBasicOperations    (self.myStudyId)
+            self.CurvesOp = self.GetICurvesOperations   (self.myStudyId)
+            self.PrimOp   = self.GetI3DPrimOperations   (self.myStudyId)
+            self.ShapesOp = self.GetIShapesOperations   (self.myStudyId)
+            self.HealOp   = self.GetIHealingOperations  (self.myStudyId)
+            self.InsertOp = self.GetIInsertOperations   (self.myStudyId)
+            self.BoolOp   = self.GetIBooleanOperations  (self.myStudyId)
+            self.TrsfOp   = self.GetITransformOperations(self.myStudyId)
+            self.LocalOp  = self.GetILocalOperations    (self.myStudyId)
+            self.MeasuOp  = self.GetIMeasureOperations  (self.myStudyId)
+            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
+        def SubShapeName(self,aSubObj, aMainObj):
+            #aSubId  = orb.object_to_string(aSubObj)
+            #aMainId = orb.object_to_string(aMainObj)
+            #index = gg.getIndexTopology(aSubId, aMainId)
+            #name = gg.getShapeTypeString(aSubId) + "_%d"%(index)
+            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):
+            try:
+                aSObject = self.AddInStudy(self.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
+        #
+        #  Example: see GEOM_TestAll.py
+        def addToStudyInFather(self,aFather, aShape, aName):
+            try:
+                aSObject = self.AddInStudy(myStudy, aShape, aName, aFather)
+            except:
+                print "addToStudyInFather() failed"
+                return ""
+            return aShape.GetStudyEntry()
+        
+        # -----------------------------------------------------------------------------
+        # Basic primitives
+        # -----------------------------------------------------------------------------
+        
+        ## 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
+        def MakeVertex(self,theX, theY, theZ):
+            anObj = self.BasicOp.MakePointXYZ(theX, theY, theZ)
+            RaiseIfFailed("MakePointXYZ", self.BasicOp)
+            return anObj
+        
+        ## Create a point, distant from the referenced point
+        #  on the given distances along the coordinate axes.
+        #  @param theReference The referenced point.
+        #  @param theX Displacement from the referenced point along OX axis.
+        #  @param theY Displacement from the referenced point along OY axis.
+        #  @param theZ Displacement from the referenced point along OZ axis.
+        #  @return New GEOM_Object, containing the created point.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeVertexWithRef(self,theReference, theX, theY, theZ):
+            anObj = self.BasicOp.MakePointWithReference(theReference, theX, theY, theZ)
+            RaiseIfFailed("MakePointWithReference", self.BasicOp)
+            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
+        def MakeVertexOnCurve(self,theRefCurve, theParameter):
+            anObj = self.BasicOp.MakePointOnCurve(theRefCurve, theParameter)
+            RaiseIfFailed("MakePointOnCurve", self.BasicOp)
+            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
+        def MakeVertexOnLinesIntersection(self, theRefLine1, theRefLine2):
+            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):
+            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
+        def MakeVectorDXDYDZ(self,theDX, theDY, theDZ):
+            anObj = self.BasicOp.MakeVectorDXDYDZ(theDX, theDY, theDZ)
+            RaiseIfFailed("MakeVectorDXDYDZ", self.BasicOp)
+            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
+        def MakeVector(self,thePnt1, thePnt2):
+            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
+        def MakeLine(self,thePnt, theDir):
+            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
+        def MakeLineTwoPnt(self,thePnt1, thePnt2):
+            anObj = self.BasicOp.MakeLineTwoPnt(thePnt1, thePnt2)
+            RaiseIfFailed("MakeLineTwoPnt", self.BasicOp)
+            return anObj
+
+        ## 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
+        def MakeLineTwoFaces(self, theFace1, theFace2):
+            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.
+        #  @param theVec Vector, defining the plane normal direction.
+        #  @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
+        def MakePlane(self,thePnt, theVec, theTrimSize):
+            anObj = self.BasicOp.MakePlanePntVec(thePnt, theVec, theTrimSize)
+            RaiseIfFailed("MakePlanePntVec", self.BasicOp)
+            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.
+        #  @param thePnt3 Fird of three points, defining the plane.
+        #  @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
+        def MakePlaneThreePnt(self,thePnt1, thePnt2, thePnt3, theTrimSize):
+            anObj = self.BasicOp.MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize)
+            RaiseIfFailed("MakePlaneThreePnt", self.BasicOp)
+            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
+        def MakePlaneFace(self,theFace, theTrimSize):
+            anObj = self.BasicOp.MakePlaneFace(theFace, theTrimSize)
+            RaiseIfFailed("MakePlaneFace", self.BasicOp)
+            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):
+            anObj = self.BasicOp.MakeMarker(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ)
+            RaiseIfFailed("MakeMarker", self.BasicOp)
+            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):
+            O = self.PointCoordinates( theOrigin )
+            OXOY = []
+            for vec in [ theXVec, theYVec ]:
+                v1, v2 = self.SubShapeAll( vec, ShapeType["VERTEX"] )
+                p1 = self.PointCoordinates( v1 )
+                p2 = self.PointCoordinates( v2 )
+                for i in range( 0, 3 ):
+                    OXOY.append( p2[i] - p1[i] )
+                #
+            anObj = self.BasicOp.MakeMarker( O[0], O[1], O[2],
+                                             OXOY[0], OXOY[1], OXOY[2],
+                                             OXOY[3], OXOY[4], OXOY[5], )
+            RaiseIfFailed("MakeMarker", self.BasicOp)
+            return anObj
+        
+        # -----------------------------------------------------------------------------
+        # 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
+        def MakeArc(self,thePnt1, thePnt2, thePnt3):
+            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)
+        #  @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)
+            RaiseIfFailed("MakeArcCenter", 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):
+            anObj = self.CurvesOp.MakeCirclePntVecR(thePnt, theVec, 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
+        def MakeCircleThreePnt(self,thePnt1, thePnt2, thePnt3):
+            anObj = self.CurvesOp.MakeCircleThreePnt(thePnt1, thePnt2, thePnt3)
+            RaiseIfFailed("MakeCircleThreePnt", self.CurvesOp)
+            return anObj
+
+        ## Create a circle, with given point1 as center,
+        #  passing through the point2 as radius and laying in the plane,
+        #  defined by all three given points.
+        #  @param thePnt1,thePnt2,thePnt3 Points, defining the circle.
+        #  @return New GEOM_Object, containing the created circle.
+        #
+        #  Example: see GEOM_example6.py
+        def MakeCircleCenter2Pnt(self,thePnt1, thePnt2, thePnt3):
+            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.
+        #  @param theRMajor Major ellipse radius.
+        #  @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):
+            anObj = self.CurvesOp.MakeEllipse(thePnt, theVec, 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
+        def MakePolyline(self,thePoints):
+            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
+        def MakeBezier(self,thePoints):
+            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
+        def MakeInterpol(self,thePoints):
+            anObj = self.CurvesOp.MakeSplineInterpolation(thePoints)
+            RaiseIfFailed("MakeSplineInterpolation", self.CurvesOp)
+            return anObj
+        
+        ## Create a sketcher (wire or face), following the textual description,
+        #  passed through \a 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:
+        #
+        #  "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
+        #     .
+        #       \n
+        #     - "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
+        #     .
+        #       \n
+        #     - "C radius length" : Create arc by direction, radius and length(in degree)
+        #     .
+        #       \n
+        #     - "WW" : Close Wire (to finish)
+        #     - "WF" : Close Wire and build face (to finish)
+        #
+        #  @param theCommand String, defining the sketcher in local
+        #                    coordinates of the working plane.
+        #  @param theWorkingPlane Nine double values, defining origin,
+        #                         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]):
+            anObj = self.CurvesOp.MakeSketcher(theCommand, theWorkingPlane)
+            RaiseIfFailed("MakeSketcher", self.CurvesOp)
+            return anObj
+        
+        ## 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 or LCS(Marker) of the working plane.
+        #  @return New GEOM_Object, containing the created wire.
+        def MakeSketcherOnPlane(self,theCommand, theWorkingPlane):
+            anObj = self.CurvesOp.MakeSketcherOnPlane(theCommand, theWorkingPlane)
+            RaiseIfFailed("MakeSketcherOnPlane", self.CurvesOp)
+            return anObj
+        
+        # -----------------------------------------------------------------------------
+        # Create 3D Primitives
+        # -----------------------------------------------------------------------------
+        
+        ## Create a box by coordinates of two opposite vertices.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeBox(self,x1,y1,z1,x2,y2,z2):
+            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).
+        #  @param theDX Length of Box edges, parallel to OX axis.
+        #  @param theDY Length of Box edges, parallel to OY axis.
+        #  @param theDZ Length of Box edges, parallel to OZ axis.
+        #  @return New GEOM_Object, containing the created box.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeBoxDXDYDZ(self,theDX, theDY, theDZ):
+            anObj = self.PrimOp.MakeBoxDXDYDZ(theDX, theDY, theDZ)
+            RaiseIfFailed("MakeBoxDXDYDZ", self.PrimOp)
+            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
+        def MakeBoxTwoPnt(self,thePnt1, thePnt2):
+            anObj = self.PrimOp.MakeBoxTwoPnt(thePnt1, thePnt2)
+            RaiseIfFailed("MakeBoxTwoPnt", self.PrimOp)
+            return anObj
+        
+        ## Create a cylinder with given base point, axis, radius and height.
+        #  @param thePnt Central point of cylinder base.
+        #  @param theAxis Cylinder axis.
+        #  @param theR Cylinder radius.
+        #  @param theH Cylinder height.
+        #  @return New GEOM_Object, containing the created cylinder.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeCylinder(self,thePnt, theAxis, theR, theH):
+            anObj = self.PrimOp.MakeCylinderPntVecRH(thePnt, theAxis, theR, theH)
+            RaiseIfFailed("MakeCylinderPntVecRH", self.PrimOp)
+            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.
+        #  @param theR Cylinder radius.
+        #  @param theH Cylinder height.
+        #  @return New GEOM_Object, containing the created cylinder.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeCylinderRH(self,theR, theH):
+            anObj = self.PrimOp.MakeCylinderRH(theR, theH)
+            RaiseIfFailed("MakeCylinderRH", self.PrimOp)
+            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):
+            anObj = self.PrimOp.MakeSpherePntR(thePnt, theR)
+            RaiseIfFailed("MakeSpherePntR", self.PrimOp)
+            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):
+            point = self.MakeVertex(x, y, z)
+            anObj = self.MakeSpherePntR(point, theR)
+            return anObj
+
+        ## Create a sphere with given radius at the origin of coordinate system.
+        #  @param theR Sphere radius.
+        #  @return New GEOM_Object, containing the created sphere.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeSphereR(self,theR):
+            anObj = self.PrimOp.MakeSphereR(theR)
+            RaiseIfFailed("MakeSphereR", self.PrimOp)
+            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.
+        #  @param theR1 Radius of the first cone base.
+        #  @param theR2 Radius of the second cone base.
+        #    \note If both radiuses are non-zero, the cone will be truncated.
+        #    \note If the radiuses are equal, a cylinder will be created instead.
+        #  @param theH Cone height.
+        #  @return New GEOM_Object, containing the created cone.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeCone(self,thePnt, theAxis, theR1, theR2, theH):
+            anObj = self.PrimOp.MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theH)
+            RaiseIfFailed("MakeConePntVecR1R2H", self.PrimOp)
+            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.
+        #  @param theR1 Radius of the first cone base.
+        #  @param theR2 Radius of the second cone base.
+        #    \note If both radiuses are non-zero, the cone will be truncated.
+        #    \note If the radiuses are equal, a cylinder will be created instead.
+        #  @param theH Cone height.
+        #  @return New GEOM_Object, containing the created cone.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeConeR1R2H(self,theR1, theR2, theH):
+            anObj = self.PrimOp.MakeConeR1R2H(theR1, theR2, theH)
+            RaiseIfFailed("MakeConeR1R2H", self.PrimOp)
+            return anObj
+        
+        ## Create a torus with given center, normal vector and radiuses.
+        #  @param thePnt Torus central point.
+        #  @param theVec Torus axis of symmetry.
+        #  @param theRMajor Torus major radius.
+        #  @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):
+            anObj = self.PrimOp.MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor)
+            RaiseIfFailed("MakeTorusPntVecRR", self.PrimOp)
+            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):
+            anObj = self.PrimOp.MakeTorusRR(theRMajor, theRMinor)
+            RaiseIfFailed("MakeTorusRR", self.PrimOp)
+            return anObj
+        
+        ## 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):
+            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.
+        #  @param theBase Base shape to be extruded.
+        #  @param theVec Direction of extrusion.
+        #  @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):
+            anObj = self.PrimOp.MakePrismVecH(theBase, theVec, theH)
+            RaiseIfFailed("MakePrismVecH", 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.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakePipe(self,theBase, thePath):
+            anObj = self.PrimOp.MakePipe(theBase, thePath)
+            RaiseIfFailed("MakePipe", self.PrimOp)
+            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.
+        #  @param theBase Base shape to be rotated.
+        #  @param theAxis Rotation axis.
+        #  @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):
+            anObj = self.PrimOp.MakeRevolutionAxisAngle(theBase, theAxis, theAngle)
+            RaiseIfFailed("MakeRevolutionAxisAngle", self.PrimOp)
+            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
+        #  @param thePreci - precision 3D used for smoothing by default 1.e-6
+        #  @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
+        def MakeThruSections(self,theSeqSections,theModeSolid,thePreci,theRuled):
+            anObj = self.PrimOp.MakeThruSections(theSeqSections,theModeSolid,thePreci,theRuled)
+            RaiseIfFailed("MakeThruSections", 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.     
+        #  @param theSeqBases - list of  Bases shape to be extruded.
+        #  @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 or list of locations can be empty.
+        #  @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
+        #  @return New GEOM_Object, containing the created pipe.
+        #
+        def MakePipeWithDifferentSections(self, theSeqBases,
+                                          theLocations, thePath,
+                                          theWithContact, theWithCorrection):
+            anObj = self.PrimOp.MakePipeWithDifferentSections(theSeqBases,
+                                                              theLocations, thePath,
+                                                              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 several profiles can be specified in the several locations of path.     
+        #  @param theSeqBases - list of  Bases shape to be extruded.
+        #  @param theSeqSubBases - list of corresponding subshapes of section 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
+        #                        locations must be coincided with first and last vertexes
+        #                        of path correspondingly.
+        #  @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
+        #  @return New GEOM_Object, containing the created solids.
+        #
+        def MakePipeWithShellSections(self,theSeqBases, theSeqSubBases,
+                                      theLocations, thePath,
+                                      theWithContact, theWithCorrection):
+            anObj = self.PrimOp.MakePipeWithShellSections(theSeqBases, theSeqSubBases,
+                                                          theLocations, thePath,
+                                                          theWithContact, theWithCorrection)
+            RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
+            return anObj
+
+        def MakePipeWithShellSectionsBySteps(self, theSeqBases, theSeqSubBases,
+                                             theLocations, thePath,
+                                             theWithContact, theWithCorrection):
+            res = []
+            nbsect = len(theSeqBases)
+            nbsubsect = len(theSeqSubBases)
+            #print "nbsect = ",nbsect
+            for i in range(1,nbsect):
+                #print "  i = ",i
+                tmpSeqBases = [ theSeqBases[i-1], theSeqBases[i] ]
+                tmpLocations = [ theLocations[i-1], theLocations[i] ]
+                tmpSeqSubBases = []
+                if nbsubsect>0: tmpSeqSubBases = [ theSeqSubBases[i-1], theSeqSubBases[i] ]
+                anObj = self.PrimOp.MakePipeWithShellSections(tmpSeqBases, tmpSeqSubBases,
+                                                              tmpLocations, thePath,
+                                                              theWithContact, theWithCorrection)
+                if self.PrimOp.IsDone() == 0:
+                    print "Problems with pipe creation between ",i," and ",i+1," sections"
+                    RaiseIfFailed("MakePipeWithShellSections", self.PrimOp)
+                    break
+                else:
+                    print "Pipe between ",i," and ",i+1," sections is OK"
+                    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.
+        #
+        def MakePipeShellsWithoutPath(self, theSeqBases, theLocations):
+            anObj = self.PrimOp.MakePipeShellsWithoutPath(theSeqBases, theLocations)
+            RaiseIfFailed("MakePipeShellsWithoutPath", self.PrimOp)
+            return anObj
+        
+        
+        # -----------------------------------------------------------------------------
+        # Create base shapes
+        # -----------------------------------------------------------------------------
+        
+        ## 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
+        def MakeEdge(self,thePnt1, thePnt2):
+            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
+        def MakeWire(self,theEdgesAndWires):
+            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
+        def MakeFace(self,theWire, isPlanarWanted):
+            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
+        def MakeFaceWires(self,theWires, isPlanarWanted):
+            anObj = self.ShapesOp.MakeFaceWires(theWires, isPlanarWanted)
+            RaiseIfFailed("MakeFaceWires", self.ShapesOp)
+            return anObj
+        
+        ## Shortcut to MakeFaceWires()
+        #
+        #  Example: see GEOM_TestOthers.py
+        def MakeFaces(self,theWires, isPlanarWanted):
+            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
+        def MakeShell(self,theFacesAndShells):
+            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
+        def MakeSolid(self,theShells):
+            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
+        def MakeCompound(self,theShapes):
+            anObj = self.ShapesOp.MakeCompound(theShapes)
+            RaiseIfFailed("MakeCompound", self.ShapesOp)
+            return anObj
+        
+        ## Gives quantity of faces in the given shape.
+        #  @param theShape Shape to count faces of.
+        #  @return Quantity of faces.
+        #
+        #  Example: see GEOM_TestOthers.py
+        def NumberOfFaces(self,theShape):
+            nb_faces = self.ShapesOp.NumberOfFaces(theShape)
+            RaiseIfFailed("NumberOfFaces", self.ShapesOp)
+            return nb_faces
+
+        ## Gives quantity of edges in the given shape.
+        #  @param theShape Shape to count edges of.
+        #  @return Quantity of edges.
+        #
+        #  Example: see GEOM_TestOthers.py
+        def NumberOfEdges(self,theShape):
+            nb_edges = self.ShapesOp.NumberOfEdges(theShape)
+            RaiseIfFailed("NumberOfEdges", self.ShapesOp)
+            return nb_edges
+        
+        ## Reverses an orientation the given shape.
+        #  @param theShape Shape to be reversed.
+        #  @return The reversed copy of theShape.
+        #
+        #  Example: see GEOM_TestAll.py
+        def ChangeOrientation(self,theShape):
+            anObj = self.ShapesOp.ChangeOrientation(theShape)
+            RaiseIfFailed("ChangeOrientation", self.ShapesOp)
+            return anObj
+        
+        ## Shortcut to ChangeOrientation()
+        #
+        #  Example: see GEOM_TestOthers.py
+        def OrientationChange(self,theShape):
+            anObj = self.ChangeOrientation(theShape)
+            return anObj
+        
+        ## 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
+        def GetFreeFacesIDs(self,theShape):
+            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
+        def GetSharedShapes(self,theShape1, theShape2, theShapeType):
+            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.
+        #  @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 and 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.
+        #  @return List of all found sub-shapes.
+        #
+        #  Example: see GEOM_TestOthers.py
+        def GetShapesOnPlane(self,theShape, theShapeType, theAx1, theState):
+            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
+        def GetShapesOnPlaneIDs(self,theShape, theShapeType, theAx1, theState):
+            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.
+        #  @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.
+        #  @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)
+            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)
+            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.
+        #  @param theShapeType Type of sub-shapes to be retrieved.
+        #  @param theAxis Vector (or line, or linear edge), specifying
+        #                 axis of the cylinder to find shapes on.
+        #  @param theRadius Radius of the cylinder 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.
+        #  @return List of all found sub-shapes.
+        #
+        #  Example: see GEOM_TestOthers.py
+        def GetShapesOnCylinder(self,theShape, theShapeType, theAxis, theRadius, theState):
+            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):
+            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.
+        #  @param theShapeType Type of sub-shapes to be retrieved.
+        #  @param theCenter Point, specifying center of the sphere to find shapes on.
+        #  @param theRadius Radius of the sphere 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.
+        #  @return List of all found sub-shapes.
+        #
+        #  Example: see GEOM_TestOthers.py
+        def GetShapesOnSphere(self,theShape, theShapeType, theCenter, theRadius, theState):
+            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
+        def GetShapesOnSphereIDs(self,theShape, theShapeType, theCenter, theRadius, theState):
+            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.
+        #  @param theShapeType Type of sub-shapes to be retrieved.
+        #  @param theTopLeftPoint Point, specifying top left corner of a quadrangle
+        #  @param theTopRigthPoint Point, specifying top right corner of a quadrangle
+        #  @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.
+        #  @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)
+            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)
+            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.
+        #  @return List of all found sub-shapes.
+        #
+        def GetShapesOnBox(self,theBox, theShape, theShapeType, theState):
+            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):
+            aList = self.ShapesOp.GetShapesOnBoxIDs(theBox, theShape, theShapeType, theState)
+            RaiseIfFailed("GetShapesOnBoxIDs", 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
+        def GetInPlace(self,theShapeWhere, theShapeWhat):
+            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.
+        #
+        #  Implementation of this method is based on a saved history of an operation,
+        #  produced \a theShapeWhere. The \a theShapeWhat must be among this operation's
+        #  arguments (an argument shape or a sub-shape of an argument shape).
+        #  The operation could be the Partition or one of boolean operations,
+        #  performed on simple shapes (not on compounds).
+        #
+        #  @param theShapeWhere Shape to find sub-shapes of.
+        #  @param theShapeWhat Shape, specifying what to find (must be in the
+        #                      building history of the ShapeWhere).
+        #  @return Group of all found sub-shapes or a single found sub-shape.
+        #
+        #  Example: see GEOM_TestOthers.py
+        def GetInPlaceByHistory(self, theShapeWhere, theShapeWhat):
+            anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat)
+            RaiseIfFailed("GetInPlaceByHistory", self.ShapesOp)
+            return anObj
+
+        ## Get sub-shape of theShapeWhere, which is
+        #  equal to \a theShapeWhat.
+        #  @param theShapeWhere Shape to find sub-shape of.
+        #  @param theShapeWhat Shape, specifying what to find.
+        #  @return New GEOM_Object for found sub-shape.
+        #
+        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 <aShape>, composed from sub-shapes
+        #  of <aShape>, selected by their unique IDs inside <aShape>
+        #
+        #  Example: see GEOM_TestAll.py
+        def GetSubShape(self,aShape, ListOfID):
+            anObj = self.AddSubShape(aShape,ListOfID)
+            return anObj
+        
+        ## Obtain unique ID of sub-shape <aSubShape> inside <aShape>
+        #
+        #  Example: see GEOM_TestAll.py
+        def GetSubShapeID(self,aShape, aSubShape):
+            anID = self.LocalOp.GetSubShapeIndex(aShape, aSubShape)
+            RaiseIfFailed("GetSubShapeIndex", self.LocalOp)
+            return anID
+        
+        # -----------------------------------------------------------------------------
+        # Decompose objects
+        # -----------------------------------------------------------------------------
+        
+        ## Explode a shape on subshapes of a given type.
+        #  @param theShape Shape to be exploded.
+        #  @param theShapeType 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):
+            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.
+        #  @return List of IDs of sub-shapes.
+        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.
+        #  @return List of sub-shapes of type theShapeType, contained in theShape.
+        #
+        #  Example: see GEOM_TestAll.py
+        def SubShapeAllSorted(self,aShape, aType):
+            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.
+        #  @return List of IDs of sub-shapes.
+        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 <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):
+            ListOfIDs = []
+            AllShapeList = self.SubShapeAll(aShape, aType)
+            for ind in ListOfInd:
+                ListOfIDs.append(self.GetSubShapeID(aShape, AllShapeList[ind - 1]))
+            anObj = self.GetSubShape(aShape, ListOfIDs)
+            return anObj
+
+        ## 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
+        def SubShapeSorted(self,aShape, aType, ListOfInd):
+            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
+        # -----------------------------------------------------------------------------
+        
+        ## 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.
+        #  @return New GEOM_Object, containing processed shape.
+        #
+        #  Example: see GEOM_TestHealing.py
+        def ProcessShape(self,theShape, theOperators, theParameters, theValues):
+            anObj = self.HealOp.ProcessShape(theShape, theOperators, theParameters, theValues)
+            RaiseIfFailed("ProcessShape", self.HealOp)
+            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
+        def SuppressFaces(self,theObject, theFaces):
+            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):
+            comp = self.MakeCompound(ListShape)
+            anObj = self.Sew(comp, theTolerance)
+            return anObj
+
+        ## Sewing of the given object.
+        #  @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):
+            anObj = self.HealOp.Sew(theObject, theTolerance)
+            RaiseIfFailed("Sew", self.HealOp)
+            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
+        def SuppressInternalWires(self,theObject, theWires):
+            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
+        def SuppressHoles(self,theObject, theWires):
+            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 <VAR>theObject</VAR>'s shape,
+        #                  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
+        def CloseContour(self,theObject, theWires, isCommonVertex):
+            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,
+        #                      if -1, then theObject itself is the edge.
+        #  @param theValue Value of parameter on edge or length parameter,
+        #                  depending on \a isByParameter.
+        #  @param isByParameter If TRUE : \a theValue is treated as a curve parameter [0..1],
+        #                       if FALSE : \a theValue is treated as a length parameter [0..1]
+        #  @return New GEOM_Object, containing processed shape.
+        #
+        #  Example: see GEOM_TestHealing.py
+        def DivideEdge(self,theObject, theEdgeIndex, theValue, isByParameter):
+            anObj = self.HealOp.DivideEdge(theObject, theEdgeIndex, theValue, isByParameter)
+            RaiseIfFailed("DivideEdge", self.HealOp)
+            return anObj
+        
+        ## Change orientation of the given object.
+        #  @param theObject Shape to be processed.
+        #  @update given shape
+        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.
+        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.
+        #  @return [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 GetFreeBoundary(self,theObject):
+            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
+        #  @param theMaxDeg a maximal degree
+        #  @param theTol2D a 2d tolerance
+        #  @param theTol3D a 3d tolerance
+        #  @param theNbIter a number of iteration
+        #  @return New GEOM_Object, containing the created filling surface.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeFilling(self,theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter):
+            anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter)
+            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.
+        #  @param doKeepNonSolids If FALSE, only solids will present in the result,
+        #                         otherwise all initial shapes.
+        #  @return New GEOM_Object, containing a copy of theShape without coincident faces.
+        #
+        #  Example: see GEOM_Spanner.py
+        def MakeGlueFaces(self, theShape, theTolerance, doKeepNonSolids=True):
+            anObj = self.ShapesOp.MakeGlueFaces(theShape, theTolerance, doKeepNonSolids)
+            if anObj is None:
+                raise RuntimeError, "MakeGlueFaces : " + self.ShapesOp.GetErrorCode()
+            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
+        def GetGlueFaces(self, theShape, theTolerance):
+            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.
+        #  @param theTolerance Maximum distance between faces,
+        #                      which can be considered as coincident.
+        #  @param theFaces List of faces for gluing.
+        #  @param doKeepNonSolids If FALSE, only solids will present in the result,
+        #                         otherwise all initial shapes.
+        #  @return New GEOM_Object, containing a copy of theShape
+        #          without some faces.
+        #
+        #  Example: see GEOM_Spanner.py
+        def MakeGlueFacesByList(self, theShape, theTolerance, theFaces, doKeepNonSolids=True):
+            anObj = self.ShapesOp.MakeGlueFacesByList(theShape, theTolerance, theFaces, doKeepNonSolids)
+            if anObj is None:
+                raise RuntimeError, "MakeGlueFacesByList : " + self.ShapesOp.GetErrorCode()
+            return anObj
+        
+        
+        # -----------------------------------------------------------------------------
+        # 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.
+        #  @param theOperation Indicates the operation to be done:
+        #                      1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
+        #  @return New GEOM_Object, containing the result shape.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeBoolean(self,theShape1, theShape2, theOperation):
+            anObj = self.BoolOp.MakeBoolean(theShape1, theShape2, theOperation)
+            RaiseIfFailed("MakeBoolean", self.BoolOp)
+            return anObj
+        
+        ## Shortcut to MakeBoolean(s1, s2, 1)
+        #
+        #  Example: see GEOM_TestOthers.py
+        def MakeCommon(self, s1, s2):
+            return self.MakeBoolean(s1, s2, 1)
+
+        ## Shortcut to MakeBoolean(s1, s2, 2)
+        #
+        #  Example: see GEOM_TestOthers.py
+        def MakeCut(self, s1, s2):
+            return self.MakeBoolean(s1, s2, 2)
+        
+        ## Shortcut to MakeBoolean(s1, s2, 3)
+        #
+        #  Example: see GEOM_TestOthers.py
+        def MakeFuse(self, s1, s2):
+            return self.MakeBoolean(s1, s2, 3)
+        
+        ## Shortcut to MakeBoolean(s1, s2, 4)
+        #
+        #  Example: see GEOM_TestOthers.py
+        def MakeSection(self, s1, s2):
+            return self.MakeBoolean(s1, s2, 4)
+        
+        ## Perform partition operation.
+        #  @param ListShapes Shapes to be intersected.
+        #  @param 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.
+        #  @param Limit Type of resulting shapes (corresponding to TopAbs_ShapeEnum).
+        #  @param KeepNonlimitShapes: if this parameter == 0 - only shapes with
+        #                             type <= Limit are kept in the result,
+        #                             else - shapes with type > Limit are kept
+        #                             also (if they exist)
+        #
+        #  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:
+        #      @param ListKeepInside Shapes, outside which the results will be deleted.
+        #         Each shape from theKeepInside must belong to theShapes also.
+        #      @param ListRemoveInside Shapes, inside which the results will be deleted.
+        #         Each shape from theRemoveInside must belong to theShapes also.
+        #      @param RemoveWebs If TRUE, perform Glue 3D algorithm.
+        #      @param ListMaterials Material indices for each shape. Make sence,
+        #         only if theRemoveWebs is TRUE.
+        #
+        #  @return New GEOM_Object, containing the result shapes.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakePartition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
+                          Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[],
+                          KeepNonlimitShapes=0):
+            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
+        #  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.
+        #
+        #  @return New GEOM_Object, containing the result shapes.
+        #
+        def MakePartitionNonSelfIntersectedShape(self, ListShapes, ListTools=[],
+                                                 ListKeepInside=[], ListRemoveInside=[],
+                                                 Limit=ShapeType["SHAPE"], RemoveWebs=0,
+                                                 ListMaterials=[], KeepNonlimitShapes=0):
+            anObj = self.BoolOp.MakePartitionNonSelfIntersectedShape(ListShapes, ListTools,
+                                                                     ListKeepInside, ListRemoveInside,
+                                                                     Limit, RemoveWebs, ListMaterials,
+                                                                     KeepNonlimitShapes);
+            RaiseIfFailed("MakePartitionNonSelfIntersectedShape", self.BoolOp)
+            return anObj
+        
+        ## Shortcut to MakePartition()
+        #
+        #  Example: see GEOM_TestOthers.py
+        def Partition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[],
+                      Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[],
+                      KeepNonlimitShapes=0):
+            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
+        def MakeHalfPartition(self,theShape, thePlane):
+            anObj = self.BoolOp.MakeHalfPartition(theShape, thePlane)
+            RaiseIfFailed("MakeHalfPartition", self.BoolOp)
+            return anObj
+        
+        # -----------------------------------------------------------------------------
+        # Transform objects
+        # -----------------------------------------------------------------------------
+        
+        ## 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.
+        #  @param thePoint1 Start point of translation vector.
+        #  @param thePoint2 End point of translation vector.
+        #  @return New GEOM_Object, containing the translated object.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeTranslationTwoPoints(self,theObject, thePoint1, thePoint2):
+            anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2)
+            RaiseIfFailed("TranslateTwoPointsCopy", 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
+        def MakeTranslation(self,theObject, theDX, theDY, theDZ):
+            anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ)
+            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
+        def MakeTranslationVector(self,theObject, theVector):
+            anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector)
+            RaiseIfFailed("TranslateVectorCopy", self.TrsfOp)
+            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.
+        #  @param theAxis Rotation axis.
+        #  @param theAngle Rotation angle in radians.
+        #  @return New GEOM_Object, containing the rotated object.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeRotation(self,theObject, theAxis, theAngle):
+            anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle)
+            RaiseIfFailed("RotateCopy", self.TrsfOp)
+            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.
+        #  @return New GEOM_Object, containing the rotated object.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeRotationThreePoints(self,theObject, theCentPoint, thePoint1, thePoint2):
+            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.
+        #  @param theFactor Scaling factor value.
+        #  @return New GEOM_Object, containing the scaled shape.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeScaleTransform(self,theObject, thePoint, theFactor):
+            anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor)
+            RaiseIfFailed("ScaleShapeCopy", self.TrsfOp)
+            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
+        def MakeMirrorByPlane(self,theObject, thePlane):
+            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
+        def MakeMirrorByAxis(self,theObject, theAxis):
+            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
+        def MakeMirrorByPoint(self,theObject, thePoint):
+            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.
+        #  @param theStartLCS Coordinate system to perform displacement from it.
+        #                     If \a theStartLCS is NULL, displacement
+        #                     will be performed from global CS.
+        #                     If \a theObject itself is used as \a theStartLCS,
+        #                     its location will be changed to \a theEndLCS.
+        #  @param theEndLCS Coordinate system to perform displacement to it.
+        #  @return New GEOM_Object, containing the displaced shape.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakePosition(self,theObject, theStartLCS, theEndLCS):
+            anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS)
+            RaiseIfFailed("PositionShapeCopy", 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
+        def MakeOffset(self,theObject, theOffset):
+            anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset)
+            RaiseIfFailed("OffsetShapeCopy", self.TrsfOp)
+            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.
+        #  @param theStep Distance to translate on.
+        #  @param theNbTimes Quantity of translations to be done.
+        #  @return New GEOM_Object, containing compound of all
+        #          the shapes, obtained after each translation.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeMultiTranslation1D(self,theObject, theVector, theStep, theNbTimes):
+            anObj = self.TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes)
+            RaiseIfFailed("MultiTranslate1D", self.TrsfOp)
+            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.
+        #  @param theStep1 Step of the first translation.
+        #  @param theNbTimes1 Quantity of translations to be done along theVector1.
+        #  @param theVector2 Direction of the second translation.
+        #  @param theStep2 Step of the second translation.
+        #  @param theNbTimes2 Quantity of translations to be done along theVector2.
+        #  @return New GEOM_Object, containing compound of all
+        #          the shapes, obtained after each translation.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MakeMultiTranslation2D(self,theObject, theVector1, theStep1, theNbTimes1,
+                                   theVector2, theStep2, theNbTimes2):
+            anObj = self.TrsfOp.MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1,
+                                                 theVector2, theStep2, theNbTimes2)
+            RaiseIfFailed("MultiTranslate2D", self.TrsfOp)
+            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.
+        #  @param theAxis The rotation axis.
+        #  @param theNbTimes Quantity of rotations to be done.
+        #  @return New GEOM_Object, containing compound of all the
+        #          shapes, obtained after each rotation.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MultiRotate1D(self,theObject, theAxis, theNbTimes):
+            anObj = self.TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes)
+            RaiseIfFailed("MultiRotate1D", self.TrsfOp)
+            return anObj
+        
+        ## Rotate the given object around the
+        #  given axis on the given angle a given number
+        #  times and multi-translate each rotation result.
+        #  Translation direction passes through center of gravity
+        #  of rotated shape and its projection on the rotation axis.
+        #  @param theObject The object to be rotated.
+        #  @param theAxis Rotation axis.
+        #  @param theAngle Rotation angle in graduces.
+        #  @param theNbTimes1 Quantity of rotations to be done.
+        #  @param theStep Translation distance.
+        #  @param theNbTimes2 Quantity of translations to be done.
+        #  @return New GEOM_Object, containing compound of all the
+        #          shapes, obtained after each transformation.
+        #
+        #  Example: see GEOM_TestAll.py
+        def MultiRotate2D(self,theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2):
+            anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2)
+            RaiseIfFailed("MultiRotate2D", self.TrsfOp)
+            return anObj
+        
+        ## The same, as MultiRotate1D(), but axis is given by direction and point
+        #
+        #  Example: see GEOM_TestOthers.py
+        def MakeMultiRotation1D(self,aShape,aDir,aPoint,aNbTimes):
+            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
+        def MakeMultiRotation2D(self,aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2):
+            aVec = self.MakeLine(aPoint,aDir)
+            anObj = self.MultiRotate2D(aShape,aVec,anAngle,nbtimes1,aStep,nbtimes2)
+            return anObj
+        
+        # -----------------------------------------------------------------------------
+        # Local operations
+        # -----------------------------------------------------------------------------
+        
+        ## 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
+        def MakeFilletAll(self,theShape, theR):
+            anObj = self.LocalOp.MakeFilletAll(theShape, theR)
+            RaiseIfFailed("MakeFilletAll", self.LocalOp)
+            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 <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
+        def MakeFillet(self,theShape, theR, theShapeType, theListShapes):
+            anObj = None
+            if theShapeType == ShapeType["EDGE"]:
+                anObj = self.LocalOp.MakeFilletEdges(theShape, theR, theListShapes)
+                RaiseIfFailed("MakeFilletEdges", self.LocalOp)
+            else:
+                anObj = self.LocalOp.MakeFilletFaces(theShape, theR, theListShapes)
+                RaiseIfFailed("MakeFilletFaces", self.LocalOp)
+            return anObj
+        
+        ## The same that MakeFillet but with two Fillet Radius R1 and R2
+        def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes):
+            anObj = None
+            if theShapeType == ShapeType["EDGE"]:
+                anObj = self.LocalOp.MakeFilletEdgesR1R2(theShape, theR1, theR2, theListShapes)
+                RaiseIfFailed("MakeFilletEdgesR1R2", self.LocalOp)
+            else:
+                anObj = self.LocalOp.MakeFilletFacesR1R2(theShape, theR1, theR2, theListShapes)
+                RaiseIfFailed("MakeFilletFacesR1R2", 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
+        def MakeChamferAll(self,theShape, theD):
+            anObj = self.LocalOp.MakeChamferAll(theShape, theD)
+            RaiseIfFailed("MakeChamferAll", self.LocalOp)
+            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.
+        #  @param theD1 Chamfer size along \a theFace1.
+        #  @param theD2 Chamfer size along \a theFace2.
+        #  @param theFace1,theFace2 Global indices of two faces of \a theShape.
+        #    \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
+        def MakeChamferEdge(self,theShape, theD1, theD2, theFace1, theFace2):
+            anObj = self.LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2)
+            RaiseIfFailed("MakeChamferEdge", self.LocalOp)
+            return anObj
+        
+        ## The Same that MakeChamferEdge but with params theD is chamfer lenght and
+        #  theAngle is Angle of chamfer (angle in radians)
+        def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2):
+            anObj = self.LocalOp.MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2)
+            RaiseIfFailed("MakeChamferEdgeAD", self.LocalOp)
+            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.
+        #  @param theD1 Chamfer size along face from \a theFaces. If both faces,
+        #               connected to the edge, are in \a theFaces, \a theD1
+        #               will be get along face, which is nearer to \a theFaces beginning.
+        #  @param theD2 Chamfer size along another of two faces, connected to the edge.
+        #  @param theFaces Sequence of global indices of faces of \a theShape.
+        #    \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
+        def MakeChamferFaces(self,theShape, theD1, theD2, theFaces):
+            anObj = self.LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces)
+            RaiseIfFailed("MakeChamferFaces", self.LocalOp)
+            return anObj
+        
+        ## The Same that MakeChamferFaces but with params theD is chamfer lenght and
+        #  theAngle is Angle of chamfer (angle in radians)
+        def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces):
+            anObj = self.LocalOp.MakeChamferFacesAD(theShape, theD, theAngle, theFaces)
+            RaiseIfFailed("MakeChamferFacesAD", self.LocalOp)
+            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 theEdges Sequence of edges of \a theShape.
+        #  @return New GEOM_Object, containing the result shape.
+        #
+        #  Example:
+        def MakeChamferEdges(self, theShape, theD1, theD2, theEdges):
+            anObj = self.LocalOp.MakeChamferEdges(theShape, theD1, theD2, theEdges)
+            RaiseIfFailed("MakeChamferEdges", self.LocalOp)
+            return anObj
+        
+        ## The Same that MakeChamferEdges but with params theD is chamfer lenght and
+        #  theAngle is Angle of chamfer (angle in radians)
+        def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges):
+            anObj = self.LocalOp.MakeChamferEdgesAD(theShape, theD, theAngle, theEdges)
+            RaiseIfFailed("MakeChamferEdgesAD", self.LocalOp)
+            return anObj
+        
+        ## Shortcut to MakeChamferEdge() and MakeChamferFaces()
+        #
+        #  Example: see GEOM_TestOthers.py
+        def MakeChamfer(self,aShape,d1,d2,aShapeType,ListShape):
+            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
+        
+        ## 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.
+        #  @param theWeight Weight og the shape.
+        #  @param theWaterDensity Density of the water.
+        #  @param theMeshDeflection Deflection of the mesh, using to compute the section.
+        #  @return New GEOM_Object, containing a section of \a theShape
+        #          by a plane, corresponding to water level.
+        #
+        #  Example: see GEOM_TestAll.py
+        def Archimede(self,theShape, theWeight, theWaterDensity, theMeshDeflection):
+            anObj = self.LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection)
+            RaiseIfFailed("MakeArchimede", self.LocalOp)
+            return anObj
+        
+        # -----------------------------------------------------------------------------
+        # Information objects
+        # -----------------------------------------------------------------------------
+        
+        ## Get point coordinates
+        #  @return [x, y, z]
+        #
+        #  Example: see GEOM_TestMeasures.py
+        def PointCoordinates(self,Point):
+            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.
+        #  @return [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 BasicProperties(self,theShape):
+            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]
+        #  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 BoundingBox(self,theShape):
+            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
+        def Inertia(self,theShape):
+            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
+        def MinDistance(self, theShape1, theShape2):
+            aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2)
+            RaiseIfFailed("GetMinDistance", self.MeasuOp)
+            return aTuple[0]
+
+        ## 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
+        def MinDistanceComponents(self, theShape1, theShape2):
+            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.
+        #  @param theShape1,theShape2 Lines or linear edges to find angle between.
+        #  @return Value of the angle between the given shapes.
+        #
+        #  Example: see GEOM_TestMeasures.py
+        def GetAngle(self, theShape1, theShape2):
+            anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)
+            RaiseIfFailed("GetAngle", self.MeasuOp)
+            return anAngle
+
+        ## Get min and max tolerances of sub-shapes of theShape
+        #  @param theShape Shape, to get tolerances of.
+        #  @return [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 Tolerance(self,theShape):
+            aTuple = self.MeasuOp.GetTolerance(theShape)
+            RaiseIfFailed("GetTolerance", self.MeasuOp)
+            return aTuple
+
+        ## Obtain description of the given shape (number of sub-shapes of each type)
+        #  @param theShape Shape to be described.
+        #  @return Description of the given shape.
+        #
+        #  Example: see GEOM_TestMeasures.py
+        def WhatIs(self,theShape):
+            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
+        def MakeCDG(self,theShape):
+            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
+        def GetNormal(self, theFace, theOptionalPoint = None):
+            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,
+        #                        if TRUE, the shape's geometry will be checked also.
+        #  @return TRUE, if the shape "seems to be valid".
+        #  If theShape is invalid, prints a description of problem.
+        #
+        #  Example: see GEOM_TestMeasures.py
+        def CheckShape(self,theShape, theIsCheckGeom = 0):
+            if theIsCheckGeom:
+                (IsValid, Status) = self.MeasuOp.CheckShapeWithGeometry(theShape)
+                RaiseIfFailed("CheckShapeWithGeometry", self.MeasuOp)
+            else:
+                (IsValid, Status) = self.MeasuOp.CheckShape(theShape)
+                RaiseIfFailed("CheckShape", self.MeasuOp)
+            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.
+        #  Axes of the LCS are obtained from shape's location or,
+        #  if the shape is a planar face, from position of its plane.
+        #
+        #  @param theShape Shape to calculate position of.
+        #  @return [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 GetPosition(self,theShape):
+            aTuple = self.MeasuOp.GetPosition(theShape)
+            RaiseIfFailed("GetPosition", self.MeasuOp)
+            return aTuple
+        
+        ## Get kind of theShape.
+        #
+        #  @param theShape Shape to get a kind of.
+        #  @return Returns a kind of shape in terms of <VAR>GEOM_IKindOfShape.shape_kind</VAR> enumeration
+        #          and a list of parameters, describing the shape.
+        #  @note  Concrete meaning of each value, returned via \a theIntegers
+        #         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.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 KindOfShape(self,theShape):
+            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
+        # -----------------------------------------------------------------------------
+        
+        ## 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.
+        #  @param theFormatName Specify format for the file reading.
+        #         Available formats can be obtained with InsertOp.ImportTranslators() method.
+        #  @return New GEOM_Object, containing the imported shape.
+        #
+        #  Example: see GEOM_TestOthers.py
+        def Import(self,theFileName, theFormatName):
+            anObj = self.InsertOp.Import(theFileName, theFormatName)
+            RaiseIfFailed("Import", self.InsertOp)
+            return anObj
+        
+        ## Shortcut to Import() for BREP format
+        #
+        #  Example: see GEOM_TestOthers.py
+        def ImportBREP(self,theFileName):
+            return self.Import(theFileName, "BREP")
+        
+        ## Shortcut to Import() for IGES format
+        #
+        #  Example: see GEOM_TestOthers.py
+        def ImportIGES(self,theFileName):
+            return self.Import(theFileName, "IGES")
+        
+        ## Shortcut to Import() for STEP format
+        #
+        #  Example: see GEOM_TestOthers.py
+        def ImportSTEP(self,theFileName):
+            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
+        def Export(self,theObject, theFileName, theFormatName):
+            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
+        def ExportBREP(self,theObject, theFileName):
+            return self.Export(theObject, theFileName, "BREP")
+        
+        ## Shortcut to Export() for IGES format
+        #
+        #  Example: see GEOM_TestOthers.py
+        def ExportIGES(self,theObject, theFileName):
+            return self.Export(theObject, theFileName, "IGES")
+        
+        ## Shortcut to Export() for STEP format
+        #
+        #  Example: see GEOM_TestOthers.py
+        def ExportSTEP(self,theObject, theFileName):
+            return self.Export(theObject, theFileName, "STEP")
+        
+        # -----------------------------------------------------------------------------
+        # Block operations
+        # -----------------------------------------------------------------------------
+        
+        ## 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
+        def MakeQuad(self,E1, E2, E3, E4):
+            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
+        def MakeQuad2Edges(self,E1, E2):
+            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
+        def MakeQuad4Vertices(self,V1, V2, V3, V4):
+            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
+        def MakeHexa(self,F1, F2, F3, F4, F5, F6):
+            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
+        def MakeHexa2Faces(self,F1, F2):
+            anObj = self.BlocksOp.MakeHexa2Faces(F1, F2)
+            RaiseIfFailed("MakeHexa2Faces", self.BlocksOp)
+            return anObj
+        
+        ## 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.
+        #  @param theEpsilon Maximum allowed distance between the resulting
+        #                    vertex and point with the given coordinates.
+        #  @return New GEOM_Object, containing the found vertex.
+        #
+        #  Example: see GEOM_TestOthers.py
+        def GetPoint(self,theShape, theX, theY, theZ, theEpsilon):
+            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
+        def GetEdge(self,theShape, thePoint1, thePoint2):
+            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
+        def GetEdgeNearPoint(self,theShape, thePoint):
+            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.
+        #  @return New GEOM_Object, containing the found face.
+        #
+        #  Example: see GEOM_Spanner.py
+        def GetFaceByPoints(self,theShape, thePoint1, thePoint2, thePoint3, thePoint4):
+            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
+        def GetFaceByEdges(self,theShape, theEdge1, theEdge2):
+            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
+        def GetOppositeFace(self,theBlock, theFace):
+            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
+        def GetFaceNearPoint(self,theShape, thePoint):
+            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 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):
+            anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector)
+            RaiseIfFailed("GetFaceByNormale", self.BlocksOp)
+            return anObj
+        
+        ## Check, if the compound of blocks is given.
+        #  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.
+        #  @param theCompound The compound to check.
+        #  @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
+        def CheckCompoundOfBlocks(self,theCompound):
+            (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
+        def RemoveExtraEdges(self,theShape):
+            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.
+        #  @return Improved compound.
+        #
+        #  Example: see GEOM_TestOthers.py
+        def CheckAndImprove(self,theShape):
+            anObj = self.BlocksOp.CheckAndImprove(theShape)
+            RaiseIfFailed("CheckAndImprove", self.BlocksOp)
+            return anObj
+        
+        ## 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.
+        #  @param 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.
+        #  @return List of GEOM_Objects, containing the retrieved blocks.
+        #
+        #  Example: see GEOM_TestOthers.py
+        def MakeBlockExplode(self,theCompound, theMinNbFaces, theMaxNbFaces):
+            aList = self.BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces)
+            RaiseIfFailed("ExplodeCompoundOfBlocks", self.BlocksOp)
+            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
+        def GetBlockNearPoint(self,theCompound, thePoint):
+            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
+        def GetBlockByParts(self,theCompound, theParts):
+            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
+        def GetBlocksByParts(self,theCompound, theParts):
+            aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts)
+            RaiseIfFailed("GetBlocksByParts", self.BlocksOp)
+            return aList
+
+        ## Multi-transformate block and glue the result.
+        #  Transformation is defined so, as to superpose direction faces.
+        #  @param Block Hexahedral solid to be multi-transformed.
+        #  @param DirFace1 ID of First direction face.
+        #  @param DirFace2 ID of Second direction face.
+        #  @param NbTimes Quantity of transformations to be done.
+        #    \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
+        def MakeMultiTransformation1D(self,Block, DirFace1, DirFace2, NbTimes):
+            anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes)
+            RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp)
+            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.
+        #  @param DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
+        #  @param NbTimesU,NbTimesV Quantity of transformations to be done.
+        #  @return New GEOM_Object, containing the result shape.
+        #
+        #  Example: see GEOM_Spanner.py
+        def MakeMultiTransformation2D(self,Block, DirFace1U, DirFace2U, NbTimesU,
+                                      DirFace1V, DirFace2V, NbTimesV):
+            anObj = self.BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU,
+                                                            DirFace1V, DirFace2V, NbTimesV)
+            RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp)
+            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.
+        #  Notion of Opposite Edge make sence only on quadrangle face.
+        #  @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
+        def Propagate(self,theShape):
+            listChains = self.BlocksOp.Propagate(theShape)
+            RaiseIfFailed("Propagate", self.BlocksOp)
+            return listChains
+        
+        # -----------------------------------------------------------------------------
+        # Group operations
+        # -----------------------------------------------------------------------------
+        
+        ## 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
+        def CreateGroup(self,theMainShape, theShapeType):
+            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
+        def AddObject(self,theGroup, theSubShapeID):
+            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
+        def RemoveObject(self,theGroup, theSubShapeID):
+            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
+        def UnionList (self,theGroup, theSubShapes):
+            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
+        def UnionIDs(self,theGroup, theSubShapes):
+            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
+        def DifferenceList (self,theGroup, theSubShapes):
+            self.GroupOp.DifferenceList(theGroup, theSubShapes)
+            RaiseIfFailed("DifferenceList", self.GroupOp)
+            pass
+
+        ## Works like the above method, but argument
+        #  theSubShapes here is a list of sub-shapes indices
+        #
+        #  Example: see GEOM_TestOthers.py
+        def DifferenceIDs(self,theGroup, theSubShapes):
+            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
+        def GetObjectIDs(self,theGroup):
+            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
+        def GetType(self,theGroup):
+            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
+        def GetMainShape(self,theGroup):
+            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):
+            edges = self.SubShapeAll(theShape, ShapeType["EDGE"])
+            edges_in_range = []
+            for edge in edges:
+                Props = self.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 = 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):
+            nb_selected = sg.SelectedCount()
+            if nb_selected < 1:
+                print "Select a shape before calling this function, please."
+                return 0
+            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
+        
+        ## Add Path to load python scripts from
+        def addPath(self,Path):
+            if (sys.path.count(Path) < 1):
+                sys.path.append(Path)
+
+import omniORB
+#Register the new proxy for GEOM_Gen
+omniORB.registerObjref(GEOM._objref_GEOM_Gen._NP_RepositoryId, geompyDC)
diff --git a/src/GEOM_SWIG/libGEOM_Swig.i b/src/GEOM_SWIG/libGEOM_Swig.i
deleted file mode 100644 (file)
index b1c76a9..0000000
+++ /dev/null
@@ -1,31 +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
-//
-//  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/GEOM_SWIG_WITHIHM/Makefile.am b/src/GEOM_SWIG_WITHIHM/Makefile.am
new file mode 100644 (file)
index 0000000..e715931
--- /dev/null
@@ -0,0 +1,127 @@
+#  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   : 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
+
+# ===============================================================
+# Swig targets
+# ===============================================================
+# (cf. http://www.geocities.com/foetsch/python/swig_linux.htm)
+#
+# Step 1: build the wrapping source files with swig
+#
+# libSALOME_LifeCycleCORBA.i -- swig --> swig_wrap.cpp
+#                                        libSALOME_Swig.py
+#
+# Step 2: build the dynamic library from cpp built source files and
+#         dependant libraries.
+#
+# swig_wrap.cpp -- gcc --> swig_wrap.o    |-- link --> _libSALOME_Swig.la
+#                          +              |
+#                          dependant libs |
+#
+# The file libSALOME_Swigcmodule.py will be installed in
+# <prefix>/lib/python<version>/site-package/salome.
+# The library will be installed in the same place.
+#
+
+# this option puts it to dist
+#BUILT_SOURCES = swig_wrap.cpp
+
+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)
+
+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 \
+       -I$(top_builddir)/salome_adm/unix
+
+libGEOM_Swigcmodule_la_LDFLAGS = \
+       ../GEOMGUI/libGEOM.la
+
+
+libGEOM_Swigcmodule_la_LIBADD  = \
+       $(PYTHON_LIBS)
+
+swig_wrap.cpp : $(SWIG_SOURCES)
+       $(SWIG) $(SWIG_FLAGS) -o $@ $<
+
+CLEANFILES = \
+       swig_wrap.cpp
+
+#
+# ===============================================================
+# Files to be installed
+# ===============================================================
+#
+
+# Scripts to be installed.
+dist_salomescript_DATA= \
+       libGEOM_Swig.py
+
+install-exec-hook:\
+       $(libdir)/_libGEOM_Swig.so
+
+$(libdir)/_libGEOM_Swig.so:
+       ( cd $(libdir); ln -sf libGEOM_Swigcmodule.so _libGEOM_Swig.so; )
diff --git a/src/GEOM_SWIG_WITHIHM/libGEOM_Swig.i b/src/GEOM_SWIG_WITHIHM/libGEOM_Swig.i
new file mode 100644 (file)
index 0000000..b1c76a9
--- /dev/null
@@ -0,0 +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.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, 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"
+
index cd0832f506a3cc783fe05cc4755d49ff0c51d6cd..8371188a6924d60d23c04357bc62a1fa1c7e7a3d 100644 (file)
@@ -77,7 +77,7 @@ GenerationGUI_FillingDlg::GenerationGUI_FillingDlg( GeometryGUI* theGeometryGUI,
   layout->addWidget( GroupPoints  );
   /***************************************************************/
 
-  setHelpFileName( "filling.htm" );
+  setHelpFileName( "creaet_filling_page.html" );
 
   /* Initialisations */
   Init();
index 4f439baae621fcece2869489c9d3b47082b7078c..3db3c88518ff5895ad3690a66b9bc6a6dbfaa93d 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -75,7 +81,7 @@ GenerationGUI_PipeDlg::GenerationGUI_PipeDlg( GeometryGUI* theGeometryGUI, QWidg
   layout->addWidget( GroupPoints );
   /***************************************************************/
 
-  setHelpFileName( "pipe_creation.htm" );
+  setHelpFileName( "create_extrusion_alongpath_page.html" );
 
   /* Initialisations */
   Init();
@@ -120,7 +126,7 @@ void GenerationGUI_PipeDlg::Init()
 
   initName( tr( "GEOM_PIPE" ) );
 
-  globalSelection( GEOM_ALLSHAPES );
+  //globalSelection( GEOM_ALLSHAPES );
 }
 
 
@@ -186,19 +192,52 @@ void GenerationGUI_PipeDlg::SelectionIntoArgument()
       return;
     
     myBase = aSelectedObject;
+    myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
     myOkBase = true;
   }
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
     myOkPath = false;
     
-    if ( !GEOMBase::GetShape( aSelectedObject, S ) ||
-        !( S.ShapeType() == TopAbs_WIRE || S.ShapeType() == TopAbs_EDGE ) )
+    if ( !GEOMBase::GetShape( aSelectedObject, S ) ) 
       return;
+
+    QString aName = GEOMBase::GetName( aSelectedObject );
     
-    myPath = aSelectedObject;
-    myOkPath = true;
+    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 ) );
+       
+       //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() );
+         myPath = aShapesOp->GetSubShape( aSelectedObject, anIndex );
+         myOkPath = true;
+       }
+       else {  // get Object from study
+         myPath = aFindedObject;
+         myOkPath = true;
+       }
+      }
+      else {
+       myOkPath = true;
+       if ( S.ShapeType() != TopAbs_EDGE ) {
+         aSelectedObject = GEOM::GEOM_Object::_nil();
+         aName = "";
+         myOkPath = false;
+       }
+       myPath = aSelectedObject;
+      }
+    }
+    myEditCurrentArgument->setText( aName );
   }
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
   
   displayPreview();
 }
@@ -211,14 +250,18 @@ void GenerationGUI_PipeDlg::SelectionIntoArgument()
 void GenerationGUI_PipeDlg::SetEditCurrentArgument()
 {
   QPushButton* send = (QPushButton*)sender();
+  globalSelection();
 
   if ( send == GroupPoints->PushButton1 ) {
     GroupPoints->LineEdit1->setFocus();
+    globalSelection( GEOM_ALLSHAPES );
     myEditCurrentArgument = GroupPoints->LineEdit1;
   }
   else if ( send == GroupPoints->PushButton2 ) {
     GroupPoints->LineEdit2->setFocus();
     myEditCurrentArgument = GroupPoints->LineEdit2;
+    globalSelection();
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   SelectionIntoArgument();
 }
@@ -300,4 +343,16 @@ bool GenerationGUI_PipeDlg::execute( ObjectList& objects )
 }
 
 
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void GenerationGUI_PipeDlg::addSubshapesToStudy()
+{
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+  objMap[GroupPoints->LineEdit2->text()] = myPath;
+
+  addSubshapesToFather( objMap );
+}
 
index ae500fda6c8f370ed25ee504c68b5818e3c714cd..4200cf1f9f1bbb661373d29ae2402ef2259dd7be 100644 (file)
@@ -47,6 +47,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );    
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index 17b01bf6cc489234356f12d3071c50a8eca72dce..4c211bb8ce48e9a503bef1bfe6a7d1afb5b75dd6 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -47,9 +54,10 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg( GeometryGUI* theGeometryGUI, QWi
                                                bool modal, Qt::WindowFlags fl )
   : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl )
 {
-  QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PRISM" ) ) );
-  QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
-  QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PRISM_2P" ) ) );
+  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" ) ) );
 
   setWindowTitle( tr( "GEOM_EXTRUSION_TITLE" ) );
 
@@ -60,8 +68,10 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg( GeometryGUI* theGeometryGUI, QWi
   mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
   mainFrame()->RadioButton3->close();
 
+  mainFrame()->RadioButton1->setChecked( true );
+  myBothway = myBothway2 = false;
+
   GroupPoints = new DlgRef_2Sel1Spin2Check( centralWidget() );
-  GroupPoints->CheckButton1->hide();
   GroupPoints->GroupBox1->setTitle( tr( "GEOM_EXTRUSION_BSV" ) );
   GroupPoints->TextLabel1->setText( tr( "GEOM_BASE" ) );
   GroupPoints->TextLabel2->setText( tr( "GEOM_VECTOR" ) );
@@ -70,9 +80,11 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg( GeometryGUI* theGeometryGUI, QWi
   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_3Sel( centralWidget() );
+  GroupPoints2 = new DlgRef_3Sel1Check( centralWidget() );
 
   GroupPoints2->GroupBox1->setTitle( tr( "GEOM_EXTRUSION_BSV_2P" ) );
   GroupPoints2->TextLabel1->setText( tr( "GEOM_BASE" ) );
@@ -81,6 +93,8 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg( GeometryGUI* theGeometryGUI, QWi
   GroupPoints2->PushButton1->setIcon( image1 );
   GroupPoints2->PushButton2->setIcon( image1 );
   GroupPoints2->PushButton3->setIcon( image1 );
+  GroupPoints2->CheckButton1->setText( tr( "GEOM_BOTHWAY" ) );
+  GroupPoints2->CheckButton1->setChecked( myBothway2 );
 
   QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
   layout->setMargin( 0 ); layout->setSpacing( 6 );
@@ -88,9 +102,8 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg( GeometryGUI* theGeometryGUI, QWi
   layout->addWidget( GroupPoints2 );
   /***************************************************************/
 
-  setHelpFileName( "extrusion.htm" );
+  setHelpFileName( "create_extrusion_page.html" );
 
-  /* Initialisations */
   Init();
 }
 
@@ -101,7 +114,7 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg( GeometryGUI* theGeometryGUI, QWi
 //=================================================================================
 GenerationGUI_PrismDlg::~GenerationGUI_PrismDlg()
 {  
-  /* no need to delete child widgets, Qt does it all for us */
+  // no need to delete child widgets, Qt does it all for us
 }
 
 
@@ -120,7 +133,7 @@ void GenerationGUI_PrismDlg::Init()
   GroupPoints2->LineEdit2->setReadOnly( true );
   GroupPoints2->LineEdit3->setReadOnly( true );
 
-  //myOkBase = myOkVec = false;
+  myPoint1 = myPoint2 = myBase = myVec = GEOM::GEOM_Object::_nil();
   myOkBase = myOkVec = myOkPnt1 = myOkPnt2 = false;
   
   /* Get setting of step value from file configuration */
@@ -128,7 +141,7 @@ void GenerationGUI_PrismDlg::Init()
   double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
 
   /* min, max, step and decimals for spin boxes & initial values */
-  initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
+  initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
   GroupPoints->SpinBox_DX->setValue( 100.0 );
 
   /* signals and slots connections */
@@ -148,23 +161,24 @@ void GenerationGUI_PrismDlg::Init()
   connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupPoints->SpinBox_DX, SLOT( SetStep( double ) ) );
   // <<-
 
-  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->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->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( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+  connect( myGeomGUI->getApp()->selectionMgr(),
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
   initName( tr( "GEOM_EXTRUSION" ) );
 
-  globalSelection( GEOM_ALLSHAPES );
   ConstructorsClicked( 0 );
 }
 
@@ -175,43 +189,38 @@ void GenerationGUI_PrismDlg::Init()
 //=================================================================================
 void GenerationGUI_PrismDlg::ConstructorsClicked( int constructorId )
 {
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
-  
+  erasePreview();
+  disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
+
   switch ( constructorId ) {
   case 0:
     {
-      globalSelection( GEOM_POINT );
+      globalSelection( GEOM_ALLSHAPES );
+
       GroupPoints2->hide();
       GroupPoints->show();
       
-      //GroupPoints->LineEdit1->setFocus();
-      //myEditCurrentArgument = GroupPoints->LineEdit1;
-      //displayPreview();
-      
       myEditCurrentArgument = GroupPoints->LineEdit1;
-      GroupPoints->LineEdit1->setText( "" );
+      GroupPoints->LineEdit1->setText( GroupPoints2->LineEdit1->text() ); // keep base
       GroupPoints->LineEdit2->setText( "" );
-      GroupPoints2->LineEdit1->setText( "" );
-      GroupPoints2->LineEdit2->setText( "" );
-      GroupPoints2->LineEdit3->setText( "" );
-      myPoint1 = myPoint2 = myBase = myVec = GEOM::GEOM_Object::_nil();
-      myOkBase = myOkVec = myOkPnt1 = myOkPnt2 = false;
+      myVec = GEOM::GEOM_Object::_nil();
+      myOkVec = false;
       
       break;
     }
   case 1:
     {
+      globalSelection( GEOM_ALLSHAPES );
+
       GroupPoints->hide();
       GroupPoints2->show();
       
       myEditCurrentArgument = GroupPoints2->LineEdit1;
-      GroupPoints2->LineEdit1->setText( "" );
+      GroupPoints2->LineEdit1->setText( GroupPoints->LineEdit1->text() ); // keep base
       GroupPoints2->LineEdit2->setText( "" );
       GroupPoints2->LineEdit3->setText( "" );
-      myPoint1 = myPoint2 = myBase = myVec = GEOM::GEOM_Object::_nil();
-      myOkBase = myOkVec = myOkPnt1 = myOkPnt2 = false;
-      GroupPoints->LineEdit1->setText("");
-      GroupPoints->LineEdit2->setText("");
+      myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil();
+      myOkPnt1 = myOkPnt2 = false;
       
       break;
     }
@@ -221,7 +230,12 @@ void GenerationGUI_PrismDlg::ConstructorsClicked( int constructorId )
   updateGeometry();
   resize( minimumSize() );
 
-  displayPreview();
+  myEditCurrentArgument->setFocus();
+  connect( myGeomGUI->getApp()->selectionMgr(),
+          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+
+  if ( !myOkBase )
+    SelectionIntoArgument();
 }
 
 
@@ -271,27 +285,55 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
 
     // nbSel == 1
     Standard_Boolean testResult = Standard_False;
-    GEOM::GEOM_Object_ptr aSelectedObject =
+    GEOM::GEOM_Object_var aSelectedObject =
       GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
 
     if ( !testResult )
       return;
 
+    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 ) );
+       
+       //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 ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
       myBase = aSelectedObject;
       myOkBase = true;
     }
-    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
+    else if ( myEditCurrentArgument == GroupPoints->LineEdit2 && myOk ) {
+      myOkVec = true;      
       myVec = aSelectedObject;
-      myOkVec = true;
     }
-    myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
-
-    displayPreview();
+    myEditCurrentArgument->setText( aName );
   }
-
   else { // getConstructorId()==1 - extrusion using 2 points
-
     if ( IObjectCount() != 1 ) {
       if ( myEditCurrentArgument == GroupPoints2->LineEdit1 )
         myOkBase = false;
@@ -310,27 +352,59 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument()
     Standard_Boolean testResult = Standard_False;
     GEOM::GEOM_Object_var aSelectedObject =
       GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
-
+    
     if ( !testResult || CORBA::is_nil( aSelectedObject ) )
       return;
+    
+    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 ) );
+
+       //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 {
+       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;
     }
-    else if ( myEditCurrentArgument == GroupPoints2->LineEdit2 ) {
-      myPoint1 = aSelectedObject;
+    else if ( myEditCurrentArgument == GroupPoints2->LineEdit2 && myOk ) {
       myOkPnt1 = true;
+      myPoint1 = aSelectedObject;
     }
-    else if ( myEditCurrentArgument == GroupPoints2->LineEdit3 ) {
-      myPoint2 = aSelectedObject;
+    else if ( myEditCurrentArgument == GroupPoints2->LineEdit3 && myOk ) {
       myOkPnt2 = true;
+      myPoint2 = aSelectedObject;
     }
-
-    myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
-
-    displayPreview();
   }
+  displayPreview();
 }
 
 
@@ -350,7 +424,7 @@ void GenerationGUI_PrismDlg::SetEditCurrentArgument()
   else if ( send == GroupPoints->PushButton2 ) {
     GroupPoints->LineEdit2->setFocus();
     myEditCurrentArgument = GroupPoints->LineEdit2;
-    globalSelection( GEOM_LINE );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   else if ( send == GroupPoints2->PushButton1 ) {
     GroupPoints2->LineEdit1->setFocus();
@@ -359,13 +433,15 @@ void GenerationGUI_PrismDlg::SetEditCurrentArgument()
   else if ( send == GroupPoints2->PushButton2 ) {
     GroupPoints2->LineEdit2->setFocus();
     myEditCurrentArgument = GroupPoints2->LineEdit2;
-    globalSelection( GEOM_POINT );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   }
   else if ( send == GroupPoints2->PushButton3 ) {
     GroupPoints2->LineEdit3->setFocus();
     myEditCurrentArgument = GroupPoints2->LineEdit3;
-    globalSelection( GEOM_POINT );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   }
+
+  myEditCurrentArgument->setFocus();
   SelectionIntoArgument();
 }
 
@@ -405,12 +481,10 @@ void GenerationGUI_PrismDlg::enterEvent( QEvent* )
 void GenerationGUI_PrismDlg::ActivateThisDialog()
 {
   GEOMBase_Skeleton::ActivateThisDialog();
-  globalSelection( GEOM_ALLSHAPES );
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+
+  connect( myGeomGUI->getApp()->selectionMgr(),
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
-  //GroupPoints->LineEdit1->setFocus();
-  //myEditCurrentArgument = GroupPoints->LineEdit1;
-  //displayPreview();
+
   ConstructorsClicked( getConstructorId() );
 }
 
@@ -449,7 +523,10 @@ GEOM::GEOM_IOperations_ptr GenerationGUI_PrismDlg::createOperation()
 //=================================================================================
 bool GenerationGUI_PrismDlg::isValid( QString& )
 {
-  return myOkBase && ( myOkVec || (myOkPnt1 && myOkPnt2) );
+  if ( getConstructorId() == 0 )
+    return ( myOkBase && myOkVec );     // by vector and height
+  else
+    return ( myOkBase && myOkPnt1 && myOkPnt2 );   // by two points
 }
 
 //=================================================================================
@@ -462,12 +539,24 @@ bool GenerationGUI_PrismDlg::execute( ObjectList& objects )
 
   switch ( getConstructorId() ) {
   case 0 :
-    anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->
-      MakePrismVecH( myBase, myVec, getHeight() );
+    if ( !myBothway ) {
+      anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->
+       MakePrismVecH( myBase, myVec, getHeight() );
+    }
+    else {
+      anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->
+       MakePrismVecH2Ways( myBase, myVec, getHeight() );
+    }
     break;
   case 1 :
-    anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->
-      MakePrismTwoPnt( myBase, myPoint1, myPoint2 );
+    if ( !myBothway2 ) {
+      anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->
+        MakePrismTwoPnt( myBase, myPoint1, myPoint2 );
+    }
+    else {
+      anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->
+        MakePrismTwoPnt2Ways( myBase, myPoint1, myPoint2 );
+    }
     break;
   }
   if ( !anObj->_is_nil() )
@@ -486,3 +575,42 @@ void GenerationGUI_PrismDlg::onReverse()
   double anOldValue = GroupPoints->SpinBox_DX->value();
   GroupPoints->SpinBox_DX->setValue( -anOldValue );
 }
+
+//=================================================================================
+// 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();
+}
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void GenerationGUI_PrismDlg::addSubshapesToStudy()
+{
+  QMap<QString, GEOM::GEOM_Object_var> 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 );
+}
index 5beda3900ae4259a7f677bd843c990fa9cb992ba..b2d3da8fe2981d09b94e2717d69ea75ad94bc234 100644 (file)
@@ -28,8 +28,8 @@
 
 #include <GEOMBase_Skeleton.h>
 
-class DlgRef_3Sel;
 class DlgRef_2Sel1Spin2Check;
+class DlgRef_3Sel1Check;
 
 //=================================================================================
 // class    : GenerationGUI_PrismDlg
@@ -48,6 +48,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );    
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
@@ -63,9 +64,11 @@ private:
   bool                               myOkVec;
   bool                               myOkPnt1;
   bool                               myOkPnt2;
+  bool                               myBothway;
+  bool                               myBothway2;
   
   DlgRef_2Sel1Spin2Check*            GroupPoints;
-  DlgRef_3Sel*                       GroupPoints2; // for second layout for extrusion using 2 points
+  DlgRef_3Sel1Check*                 GroupPoints2; // for second layout for extrusion using 2 points
   
 private slots:
   void                               ClickOnOk();
@@ -77,6 +80,8 @@ private slots:
   void                               ConstructorsClicked( int );
   void                               ValueChangedInSpinBox();
   void                               onReverse();
+  void                               onBothway();
+  void                               onBothway2();
 };
 
 #endif // GENERATIONGUI_PRISMDLG_H
index d5945e1bdf47f0d785c9c94da19c1d3b516a8bf8..01db4575e19daaa8c540149251ef7a25b9a8fe7c 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
 #include <TopExp_Explorer.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -60,9 +67,9 @@ GenerationGUI_RevolDlg::GenerationGUI_RevolDlg( GeometryGUI* theGeometryGUI, QWi
   mainFrame()->RadioButton2->close();
   mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
   mainFrame()->RadioButton3->close();
+  myBothway = false;
 
   GroupPoints = new DlgRef_2Sel1Spin2Check( centralWidget() );
-  GroupPoints->CheckButton1->hide();
   GroupPoints->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) );
   GroupPoints->TextLabel1->setText( tr( "GEOM_OBJECT" ) );
   GroupPoints->TextLabel2->setText( tr( "GEOM_AXIS" ) );
@@ -71,6 +78,7 @@ GenerationGUI_RevolDlg::GenerationGUI_RevolDlg( GeometryGUI* theGeometryGUI, QWi
   GroupPoints->PushButton2->setIcon( image1 );
   GroupPoints->LineEdit1->setReadOnly( true );
   GroupPoints->LineEdit2->setReadOnly( true );
+  GroupPoints->CheckButton1->setText( tr( "GEOM_BOTHWAY" ) );
   GroupPoints->CheckButton2->setText( tr( "GEOM_REVERSE" ) );
 
   QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
@@ -78,7 +86,7 @@ GenerationGUI_RevolDlg::GenerationGUI_RevolDlg( GeometryGUI* theGeometryGUI, QWi
   layout->addWidget( GroupPoints );
   /***************************************************************/
 
-  setHelpFileName( "revolution.htm" );
+  setHelpFileName( "create_revolution_page.html" );
 
   /* Initialisations */
   Init();
@@ -110,7 +118,7 @@ void GenerationGUI_RevolDlg::Init()
 
   double SpecificStep = 5;
   /* min, max, step and decimals for spin boxes & initial values */
-  initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, SpecificStep, 3 );
+  initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, SpecificStep, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
   GroupPoints->SpinBox_DX->setValue( 45.0 );
 
   /* signals and slots connections */
@@ -124,6 +132,7 @@ void GenerationGUI_RevolDlg::Init()
   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() ) );
 
   // VSR: TODO ->>
@@ -210,6 +219,7 @@ void GenerationGUI_RevolDlg::SelectionIntoArgument()
   // nbSel == 1
   Standard_Boolean testResult = Standard_False;
   GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+  QString aName = GEOMBase::GetName( aSelectedObject );
   
   if ( !testResult )
     return;
@@ -225,10 +235,46 @@ void GenerationGUI_RevolDlg::SelectionIntoArgument()
     myOkBase = true;
   }
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
-    myAxis = aSelectedObject;
-    myOkAxis = true;
+    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.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() );
+           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;
+       }
+      }
+    }
   }
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+
+  myEditCurrentArgument->setText( aName );
 
   displayPreview();
 }
@@ -250,7 +296,7 @@ void GenerationGUI_RevolDlg::SetEditCurrentArgument()
   else if ( send == GroupPoints->PushButton2 ) {
     GroupPoints->LineEdit2->setFocus();
     myEditCurrentArgument = GroupPoints->LineEdit2;
-    globalSelection( GEOM_LINE );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   SelectionIntoArgument();
 }
@@ -342,8 +388,14 @@ bool GenerationGUI_RevolDlg::execute( ObjectList& objects )
 {
   GEOM::GEOM_Object_var anObj;
 
-  anObj = GEOM::GEOM_I3DPrimOperations::_narrow(
-    getOperation() )->MakeRevolutionAxisAngle( 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() );
@@ -361,3 +413,29 @@ void GenerationGUI_RevolDlg::onReverse()
   double anOldValue = GroupPoints->SpinBox_DX->value();
   GroupPoints->SpinBox_DX->setValue( -anOldValue );
 }
+
+
+//=================================================================================
+// function :  onBothway()
+// purpose  :
+//=================================================================================
+void GenerationGUI_RevolDlg::onBothway()
+{
+  bool anOldValue = myBothway;
+  myBothway = !anOldValue;
+  GroupPoints->CheckButton2->setEnabled( !myBothway );  
+  displayPreview();
+}
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void GenerationGUI_RevolDlg::addSubshapesToStudy()
+{
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+  objMap[GroupPoints->LineEdit2->text()] = myAxis;
+
+  addSubshapesToFather( objMap );
+}
index e37e3fe662f49196c50a12c205748102c5bfe1a5..9eeb29146c775f08d4c61656609dbc5f630c0cab 100644 (file)
@@ -47,6 +47,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );    
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
@@ -58,6 +59,7 @@ private:
   GEOM::GEOM_Object_var              myAxis; /* Axis of the revolution */
   bool                               myOkBase; 
   bool                               myOkAxis;
+  bool                               myBothway;
   
   DlgRef_2Sel1Spin2Check*            GroupPoints;
     
@@ -70,6 +72,7 @@ private slots:
   void                               SetEditCurrentArgument();
   void                               ValueChangedInSpinBox();
   void                               onReverse();
+  void                               onBothway();
 };
 
 #endif // GENERATIONGUI_REVOLUTIONDLG_H
index 23fe8de4cc235f889630f321ac93794ed18f682d..7c27bee9bcda89f8a7ae6c8a58c10447277712bc 100644 (file)
@@ -34,6 +34,7 @@
 
 #include <DlgRef.h>
 #include <GEOMBase.h>
+#include <GeometryGUI.h>
 
 #include <GEOMImpl_Types.hxx>
 
@@ -68,17 +69,17 @@ GroupGUI_GroupDlg::GroupGUI_GroupDlg( Mode mode, GeometryGUI* theGeometryGUI, QW
   mainFrame()->GroupBoxName->setTitle( tr( "GROUP_NAME" ) );
 
   // Main shape and sub-shapes
-  myGroupBox = new DlgRef_1Sel1List4Btn( centralWidget() );
+  myGroupBox = new DlgRef_1Sel1List1Check3Btn( centralWidget() );
   myGroupBox->GroupBox1->setTitle( tr( "MAIN_SUB_SHAPES" ) );
   myGroupBox->TextLabel1->setText( tr( "MAIN_SHAPE" ) );
   myGroupBox->PushButton1->setIcon( iconSelect );
   myGroupBox->PushButton1->setEnabled( myMode == CreateGroup );
   myGroupBox->LineEdit1->setReadOnly( true );
   myGroupBox->LineEdit1->setEnabled( myMode == CreateGroup );
-  myGroupBox->PushButton2->setText( tr( "SELECT_SUB_SHAPES" ) );
-  myGroupBox->PushButton3->setText( tr( "SELECT_ALL" ) );
-  myGroupBox->PushButton4->setText( tr( "ADD" ) );
-  myGroupBox->PushButton5->setText( tr( "REMOVE" ) );
+  myGroupBox->CheckButton1->setText( tr( "SELECT_SUB_SHAPES" ) );
+  myGroupBox->PushButton2->setText( tr( "SELECT_ALL" ) );
+  myGroupBox->PushButton3->setText( tr( "ADD" ) );
+  myGroupBox->PushButton4->setText( tr( "REMOVE" ) );
   myGroupBox->ListView1->setSelectionMode( QAbstractItemView::ExtendedSelection );
   myGroupBox->ListView1->setFlow( QListView::TopToBottom );
   myGroupBox->ListView1->setWrapping( true );
@@ -87,7 +88,7 @@ GroupGUI_GroupDlg::GroupGUI_GroupDlg( Mode mode, GeometryGUI* theGeometryGUI, QW
   layout->setMargin( 0 ); layout->setSpacing( 6 );
   layout->addWidget( myGroupBox );
 
-  setHelpFileName( "working_with_groups.htm" );
+  setHelpFileName( "work_with_groups_page.html" );
 
   Init();
 }
@@ -104,6 +105,7 @@ GroupGUI_GroupDlg::~GroupGUI_GroupDlg()
 void GroupGUI_GroupDlg::Init()
 {
   // san -- TODO: clear selected sub-shapes...
+  myGroupBox->CheckButton1->setChecked( true );
 
   if ( myMode == CreateGroup ) {
     initName( tr( "GROUP_PREFIX" ) );
@@ -147,13 +149,19 @@ void GroupGUI_GroupDlg::Init()
   connect( buttonOk(),    SIGNAL( clicked() ), this, SLOT( ClickOnOk()    ) );
   connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
 
-  connect( myGroupBox->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
-  connect( myGroupBox->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
-  connect( myGroupBox->PushButton4, SIGNAL( clicked() ), this, SLOT( add() ) );
-  connect( myGroupBox->PushButton5, SIGNAL( clicked() ), this, SLOT( remove() ) );
-  connect( myGroupBox->ListView1,   SIGNAL( itemSelectionChanged() ), this, SLOT( selectionChanged() ) );
+  connect( myGroupBox->CheckButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
+  connect( myGroupBox->PushButton2,  SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
+  connect( myGroupBox->PushButton3,  SIGNAL( clicked() ), this, SLOT( add() ) );
+  connect( myGroupBox->PushButton4,  SIGNAL( clicked() ), this, SLOT( remove() ) );
+  connect( myGroupBox->ListView1,    SIGNAL( itemSelectionChanged() ), this, SLOT( selectionChanged() ) );
 
   activateSelection();
+  // activate subshapes selection if Main Shape is Selected
+  if ( !CORBA::is_nil( myMainObj ) ) {
+    myEditCurrentArgument = 0;
+    activateSelection();
+    updateState();
+  }
 }
 
 //=================================================================================
@@ -236,16 +244,16 @@ void GroupGUI_GroupDlg::LineEditReturnPressed()
 //=================================================================================
 void GroupGUI_GroupDlg::SetEditCurrentArgument()
 {
-  QPushButton* send = (QPushButton*)sender();
+  const QObject* send = sender();
 
   if ( send == myGroupBox->PushButton1 )
     myEditCurrentArgument = myGroupBox->LineEdit1;
-  else if ( send == myGroupBox->PushButton2 || send == myGroupBox->PushButton3 )
+  else if ( send == myGroupBox->CheckButton1 || send == myGroupBox->PushButton2 )
     myEditCurrentArgument = 0;
 
   activateSelection();
 
-  if ( send == myGroupBox->PushButton3 )
+  if ( send == myGroupBox->PushButton2 )
     selectAllSubShapes();
   else
     updateState();
@@ -270,7 +278,10 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
       if ( aResult && !anObj->_is_nil() && GEOMBase::IsShape( anObj ) ) {
         myMainObj = anObj;
         myEditCurrentArgument->setText( GEOMBase::GetName( anObj ) );
-        updateState();
+       // activate subshapes selection by default
+       myEditCurrentArgument = 0;
+       activateSelection();
+       updateState();
         return;
       }
     }
@@ -287,14 +298,16 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
 
     TColStd_IndexedMapOfInteger aMapIndex;
 
-    if ( IObjectCount() == 1 ) {
-      Standard_Boolean aResult = Standard_False;
-      GEOM::GEOM_Object_var anObj =
-        GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
-
-      if ( aResult && !anObj->_is_nil() )
-        ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->
-          selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
+    SALOME_ListIO aSelIOs;
+    SalomeApp_Application* app = myGeomGUI->getApp();
+    if ( app ) {
+      LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
+      if ( aSelMgr ) {
+        LightApp_SelectionMgr::MapEntryOfMapOfInteger aMap;
+        aSelMgr->selectedSubOwners( aMap );
+        if ( aMap.Size() == 1 )
+          aMapIndex = LightApp_SelectionMgr::MapEntryOfMapOfInteger::Iterator( aMap ).Value();
+      }
     }
 
     // try to find out and process the object browser selection
@@ -371,9 +384,8 @@ void GroupGUI_GroupDlg::selectAllSubShapes()
     return;
 
   GEOM::GEOM_IShapesOperations_var aShOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
-  GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() );
 
-  GEOM::ListOfGO_var aSubShapes = aShOp->MakeExplode( myMainObj, getShapeType(), false );
+  GEOM::ListOfLong_var aSubShapes = aShOp->SubShapeAllIDs( myMainObj, getShapeType(), false );
   if ( !aShOp->IsDone() )
     return;
 
@@ -382,7 +394,7 @@ void GroupGUI_GroupDlg::selectAllSubShapes()
   myGroupBox->ListView1->clear();
 
   for ( int i = 0, n = aSubShapes->length(); i < n; i++ ) {
-    CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubShapes[i] );
+    CORBA::Long anIndex = aSubShapes[i];
     if ( anIndex < 0 )
       continue;
 
@@ -393,7 +405,7 @@ void GroupGUI_GroupDlg::selectAllSubShapes()
 
   myGroupBox->ListView1->blockSignals( isBlocked );
   highlightSubShapes();
-  updateState();
+  //updateState(); // already done in highlightSubShapes()
 }
 
 //=================================================================================
@@ -408,14 +420,16 @@ void GroupGUI_GroupDlg::add()
 
   TColStd_IndexedMapOfInteger aMapIndex;
 
-  if ( IObjectCount() == 1 ) {
-    Standard_Boolean aResult = Standard_False;
-    GEOM::GEOM_Object_var anObj =
-      GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
-
-    if ( aResult && !anObj->_is_nil() )
-      ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->
-        selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
+  SALOME_ListIO aSelIOs;
+  SalomeApp_Application* app = myGeomGUI->getApp();
+  if ( app ) {
+    LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
+    if ( aSelMgr ) {
+      LightApp_SelectionMgr::MapEntryOfMapOfInteger aMap;
+      aSelMgr->selectedSubOwners( aMap );
+      if ( aMap.Size() == 1 )
+       aMapIndex = LightApp_SelectionMgr::MapEntryOfMapOfInteger::Iterator( aMap ).Value();
+    }
   }
 
   // try to find out and process the object browser selection
@@ -426,6 +440,7 @@ void GroupGUI_GroupDlg::add()
     GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() );
     GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
     
+
     for ( int i = 0; i < anObjects.length(); i++ ) {
       GEOM::GEOM_Object_var aGeomObj = anObjects[i];
       GEOM::ListOfGO_var aSubObjects  = new GEOM::ListOfGO();
@@ -475,10 +490,16 @@ void GroupGUI_GroupDlg::add()
 //=================================================================================
 void GroupGUI_GroupDlg::remove()
 {
+  bool isBlocked = myGroupBox->ListView1->signalsBlocked();
+  myGroupBox->ListView1->blockSignals( true );
+
   QListIterator<QListWidgetItem*> it( myGroupBox->ListView1->selectedItems() );
   while ( it.hasNext() )
     delete it.next();
-  updateState();
+
+  myGroupBox->ListView1->blockSignals( isBlocked );
+
+  highlightSubShapes();
 }
 
 
@@ -539,74 +560,78 @@ void GroupGUI_GroupDlg::updateState()
 
   TColStd_IndexedMapOfInteger aMapIndex;
 
-  if ( IObjectCount() == 1 ) {
-    Standard_Boolean aResult = Standard_False;
-    GEOM::GEOM_Object_var anObj =
-      GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult );
-
-    if ( aResult && !anObj->_is_nil() )
-      ( (SalomeApp_Application*)(SUIT_Session::session()->activeApplication() ) )->
-        selectionMgr()->GetIndexes( firstIObject(), aMapIndex );
+  SALOME_ListIO aSelIOs;
+  SalomeApp_Application* app = myGeomGUI->getApp();
+  if ( app ) {
+    LightApp_SelectionMgr* aSelMgr = app->selectionMgr();
+    if ( aSelMgr ) {
+      LightApp_SelectionMgr::MapEntryOfMapOfInteger aMap;
+      aSelMgr->selectedSubOwners( aMap );
+      if ( aMap.Size() == 1 )
+       aMapIndex = LightApp_SelectionMgr::MapEntryOfMapOfInteger::Iterator( aMap ).Value();
+    }
   }
 
   // try to find out and process the object browser selection
   if ( !aMapIndex.Extent() && !CORBA::is_nil( myMainObj ) ) {
     GEOM::ListOfGO anObjects;
-    GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), anObjects );
-    
+    //GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), anObjects);
+    GEOMBase::ConvertListOfIOInListOfGO( aSelIOs, anObjects );
+
     GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() );
     GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
 
-     isAdd = true;
-     
-     for ( int i = 0; i < anObjects.length(); i++ ) {
-       GEOM::GEOM_Object_var aGeomObj = anObjects[i];
-       GEOM::ListOfGO_var aSubObjects = new GEOM::ListOfGO();
-       TopoDS_Shape aShape;
-       if ( GEOMBase::GetShape( aGeomObj, aShape, getShapeType() ) ) {
-        aSubObjects->length( 1 );
-        aSubObjects[0] = aGeomObj;
-       }
-       else if ( aGeomObj->GetType() == GEOM_GROUP )
-        aSubObjects = aShapesOp->MakeExplode( aGeomObj, getShapeType(), false );
-       else {
-        aMapIndex.Clear();
-        break;
-       }
-       
-       for ( int i = 0; i < aSubObjects->length(); i++ ) {
-        TopoDS_Shape aShape;
-        aSubObjects[i];
-        if ( GEOMBase::GetShape( aSubObjects[i], aShape, getShapeType() ) ) {
-          CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] );
-          if ( anIndex >= 0 )
-            aMapIndex.Add( anIndex );
-          else
-            isAdd = false;
-        }
-        else
-          isAdd = false;
-            
-        if ( !isAdd ) {
-          aMapIndex.Clear();
-          break;
-        }
-       }
-       
-       if ( !isAdd ) {
-        aMapIndex.Clear();
-        break;
-       }
-     }
+    isAdd = true;
+
+    for ( int i = 0; i < anObjects.length(); i++ ) {
+      GEOM::GEOM_Object_var aGeomObj = anObjects[i];
+      GEOM::ListOfGO_var aSubObjects = new GEOM::ListOfGO();
+      TopoDS_Shape aShape;
+      if ( GEOMBase::GetShape( aGeomObj, aShape, getShapeType() ) ) {
+        aSubObjects->length(1);
+        aSubObjects[0] = aGeomObj;
+      }
+      else if ( aGeomObj->GetType() == GEOM_GROUP ) {
+        aSubObjects = aShapesOp->MakeExplode( aGeomObj, getShapeType(), false );
+      }
+      else {
+        aMapIndex.Clear();
+        break;
+      }
+
+      for ( int i = 0; i < aSubObjects->length(); i++ ) {
+        TopoDS_Shape aShape;
+        aSubObjects[i];
+        if ( GEOMBase::GetShape( aSubObjects[i], aShape, getShapeType() ) ) {
+          CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] );
+          if ( anIndex >= 0 )
+            aMapIndex.Add( anIndex );
+          else
+            isAdd = false;
+        }
+        else {
+          isAdd = false;
+       }
+
+        if ( !isAdd ) {
+          aMapIndex.Clear();
+          break;
+        }
+      }
+      if ( !isAdd ) {
+        aMapIndex.Clear();
+        break;
+      }
+    }
   }
   
   isAdd = aMapIndex.Extent() > 0;
 
-  myGroupBox->PushButton4->setEnabled( !myEditCurrentArgument && !CORBA::is_nil( myMainObj ) && isAdd );
+  myGroupBox->PushButton3->setEnabled( !myEditCurrentArgument && !CORBA::is_nil( myMainObj ) && isAdd );
   bool hasSel = myGroupBox->ListView1->selectedItems().count() > 0;
-  myGroupBox->PushButton5->setEnabled( hasSel );
+  myGroupBox->PushButton4->setEnabled( hasSel );
+  myGroupBox->CheckButton1->setEnabled( !CORBA::is_nil( myMainObj ) );
   myGroupBox->PushButton2->setEnabled( !CORBA::is_nil( myMainObj ) );
-  myGroupBox->PushButton3->setEnabled( !CORBA::is_nil( myMainObj ) );
 }
 
 //=================================================================================
@@ -639,18 +664,27 @@ void GroupGUI_GroupDlg::highlightSubShapes()
 
   myBusy = true;
 
-  for ( int ii = 0, nn = myGroupBox->ListView1->count(); ii < nn; ii++ )
+  int ii = 0, nn = myGroupBox->ListView1->count();
+  for ( ; ii < nn; ii++ )
     if ( myGroupBox->ListView1->item( ii )->isSelected() )
       anIds.Add( myGroupBox->ListView1->item( ii )->text().toInt() );
 
-  LightApp_SelectionMgr* aSelMgr =
-    ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr();
+  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();
+  //updateState();
+  if ( nn < 3000 ) {
+    updateState();
+  }
+  else {
+    myGroupBox->PushButton3->setEnabled( true );
+    myGroupBox->PushButton4->setEnabled( true );
+  }
 }
 
 //=================================================================================
@@ -713,15 +747,21 @@ bool GroupGUI_GroupDlg::execute( ObjectList& objects )
   if ( !anOp->IsDone()  )
     return false;
 
-  for ( int i = 0, n = aCurrList->length(); i < n; i++ ) {
-    anOp->RemoveObject( aGroup, aCurrList[i] );
-    if ( !anOp->IsDone()  )
+  if ( aCurrList->length() > 0 ) {
+    anOp->DifferenceIDs( aGroup, aCurrList );
+    if ( !anOp->IsDone() )
       return false;
   }
 
-  for ( int ii = 0, nn = myGroupBox->ListView1->count(); ii < nn; ii++ ) {
-    anOp->AddObject( aGroup, myGroupBox->ListView1->item( ii )->text().toInt() );
-    if ( !anOp->IsDone()  )
+  int ii, nn = myGroupBox->ListView1->count();
+  if ( nn > 0 ) {
+    GEOM::ListOfLong_var aNewList = new GEOM::ListOfLong;
+    aNewList->length( nn );
+    for ( ii = 0; ii < nn; ii++ ) {
+      aNewList[ii] = myGroupBox->ListView1->item( ii )->text().toInt();
+    }
+    anOp->UnionIDs( aGroup, aNewList );
+    if ( !anOp->IsDone() )
       return false;
   }
 
@@ -758,4 +798,3 @@ GEOM::GEOM_Object_ptr GroupGUI_GroupDlg::getFather( GEOM::GEOM_Object_ptr theObj
   }
   return aFatherObj._retn();
 }
-
index 11310fe3f00c64e24107d5ce82777f9160666b44..167bf9c1e3df273f88b2f18c59ba74d4e46e5f23 100644 (file)
@@ -30,7 +30,7 @@
 
 #include <TopAbs_ShapeEnum.hxx>
 
-class DlgRef_1Sel1List4Btn;
+class DlgRef_1Sel1List1Check3Btn;
 
 //=================================================================================
 // class    : GroupGUI_GroupDlg
@@ -85,7 +85,7 @@ private:
   GEOM::GEOM_Object_var               myMainObj;
   GEOM::GEOM_Object_var               myGroup;
   
-  DlgRef_1Sel1List4Btn*               myGroupBox;
+  DlgRef_1Sel1List1Check3Btn*         myGroupBox;
 };
 
 #endif // GROUPGUI_GROUPDLG_H
index ce3f20cd2b9b3991d6f898d3f95480b6f18e65a3..6b26b56118dc9c4199a876d23b8750e46f4ca8ce 100644 (file)
@@ -22,4 +22,8 @@
 # Package : src (source files directory)
 #
 
-SUBDIRS = OBJECT ARCHIMEDE NMTDS NMTTools NMTAlgo GEOMAlgo SKETCHER GEOM BREPExport BREPImport IGESExport IGESImport STEPExport STEPImport STLExport ShHealOper GEOMImpl GEOM_I GEOMClient DlgRef GEOMFiltersSelection GEOMGUI GEOMBase GEOMToolsGUI DisplayGUI BasicGUI PrimitiveGUI GenerationGUI EntityGUI BuildGUI BooleanGUI TransformationGUI OperationGUI RepairGUI MeasureGUI GroupGUI BlocksGUI GEOM_I_Superv GEOM_SWIG
+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
+endif
index cdb294d2d622c95fcc7bda8bb338581cb0149a68..b49aa8aa60bb0967a48d88d0ae8197bac35da1a7 100644 (file)
@@ -38,9 +38,11 @@ dist_libMeasureGUI_la_SOURCES =                      \
        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              \
@@ -52,9 +54,11 @@ dist_libMeasureGUI_la_SOURCES =                      \
        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            \
@@ -66,9 +70,11 @@ MOC_FILES =                                          \
        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                \
@@ -86,6 +92,7 @@ UIC_FILES =                                           \
        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
 
 BUILT_SOURCES = $(UIC_FILES)
index cc3722cbeec6319fd300dc3a483969b8d0945d4f..c1a9befdff49dc0a22f340d85979c1a37396061b 100644 (file)
 
 #include "MeasureGUI_PropertiesDlg.h"    // Method PROPERTIES
 #include "MeasureGUI_CenterMassDlg.h"    // Method CENTER MASS
+#include "MeasureGUI_NormaleDlg.h"       // Method NORMALE
 #include "MeasureGUI_InertiaDlg.h"       // Method INERTIA
 #include "MeasureGUI_BndBoxDlg.h"        // Method BNDBOX
 #include "MeasureGUI_DistanceDlg.h"      // Method DISTANCE
+#include "MeasureGUI_AngleDlg.h"         // Method ANGLE
 #include "MeasureGUI_MaxToleranceDlg.h"  // Method MAXTOLERANCE
 #include "MeasureGUI_WhatisDlg.h"        // Method WHATIS
 #include "MeasureGUI_CheckShapeDlg.h"    // Method CHECKSHAPE
@@ -81,12 +83,18 @@ bool MeasureGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
   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
diff --git a/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.ui b/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.ui
new file mode 100644 (file)
index 0000000..d983182
--- /dev/null
@@ -0,0 +1,189 @@
+<ui version="4.0" >
+ <class>MeasureGUI_2Sel4LineEdit_QTD</class>
+ <widget class="QWidget" name="MeasureGUI_2Sel4LineEdit_QTD" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>132</width>
+    <height>183</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string/>
+  </property>
+  <layout class="QGridLayout" >
+   <property name="leftMargin" >
+    <number>0</number>
+   </property>
+   <property name="topMargin" >
+    <number>0</number>
+   </property>
+   <property name="rightMargin" >
+    <number>0</number>
+   </property>
+   <property name="bottomMargin" >
+    <number>0</number>
+   </property>
+   <item row="0" column="0" >
+    <widget class="QGroupBox" name="GroupBox1" >
+     <property name="title" >
+      <string/>
+     </property>
+     <layout class="QGridLayout" >
+      <item row="0" column="0" >
+       <widget class="QLabel" name="TextLabel1" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL1</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QPushButton" name="PushButton1" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="2" >
+       <widget class="QLineEdit" name="LineEdit1" >
+        <property name="minimumSize" >
+         <size>
+          <width>50</width>
+          <height>0</height>
+         </size>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0" >
+       <widget class="QLabel" name="TextLabel2" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL2</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1" >
+       <widget class="QPushButton" name="PushButton2" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="2" >
+       <widget class="QLineEdit" name="LineEdit2" >
+        <property name="minimumSize" >
+         <size>
+          <width>50</width>
+          <height>0</height>
+         </size>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0" >
+       <widget class="QLabel" name="TextLabel3" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL3</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1" colspan="2" >
+       <widget class="QLineEdit" name="LineEdit3" />
+      </item>
+      <item row="3" column="0" >
+       <widget class="QLabel" name="TextLabel4" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL4</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1" colspan="2" >
+       <widget class="QLineEdit" name="LineEdit4" />
+      </item>
+      <item row="4" column="0" >
+       <widget class="QLabel" name="TextLabel5" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL5</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="1" colspan="2" >
+       <widget class="QLineEdit" name="LineEdit5" />
+      </item>
+      <item row="5" column="0" >
+       <widget class="QLabel" name="TextLabel6" >
+        <property name="sizePolicy" >
+         <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text" >
+         <string>TL6</string>
+        </property>
+        <property name="wordWrap" >
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1" colspan="2" >
+       <widget class="QLineEdit" name="LineEdit6" />
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/MeasureGUI/MeasureGUI_AngleDlg.cxx b/src/MeasureGUI/MeasureGUI_AngleDlg.cxx
new file mode 100644 (file)
index 0000000..10a926f
--- /dev/null
@@ -0,0 +1,333 @@
+// 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   : MeasureGUI_AngleDlg.cxx
+//  Author : Julia DOROVSKIKH, Open CASCADE S.A.S.
+//
+
+#include "MeasureGUI_AngleDlg.h"
+#include "MeasureGUI_Widgets.h"
+
+#include <GEOMBase.h>
+#include <DlgRef.h>
+
+#include <SUIT_Desktop.h>
+#include <SUIT_Session.h>
+#include <SUIT_ResourceMgr.h>
+#include <SalomeApp_Tools.h>
+#include <SUIT_MessageBox.h>
+#include <SUIT_ViewWindow.h>
+#include <SUIT_ViewManager.h>
+#include <SOCC_Prs.h>
+#include <SOCC_ViewModel.h>
+//#include "SalomeApp_Application.h"
+
+// OCCT Includes
+#include <AIS_AngleDimension.hxx>
+#include <AIS_ListIteratorOfListOfInteractive.hxx>
+#include <BRep_Tool.hxx>
+#include <BRepBuilderAPI_MakeEdge.hxx>
+#include <BRepBuilderAPI_MakeVertex.hxx>
+#include <TopExp.hxx>
+#include <TopoDS.hxx>
+#include <TopoDS_Edge.hxx>
+#include <Geom_Plane.hxx>
+#include <gce_MakePln.hxx>
+#include <Precision.hxx>
+
+// QT Includes
+#include <qlineedit.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qradiobutton.h>
+#include <qbuttongroup.h>
+
+#include "GEOMImpl_Types.hxx"
+
+#include "utilities.h"
+
+#include <Standard_Failure.hxx>
+#include <Standard_ErrorHandler.hxx> // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC
+
+//=================================================================================
+// class    : MeasureGUI_AngleDlg()
+// purpose  : Constructs a MeasureGUI_AngleDlg 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.
+//=================================================================================
+MeasureGUI_AngleDlg::MeasureGUI_AngleDlg( GeometryGUI* GUI, QWidget* parent )
+  : 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" ) ) );
+
+  setWindowTitle( tr( "GEOM_MEASURE_ANGLE_TITLE" ) );
+
+  // Widgets
+
+  mainFrame()->GroupConstructors->setTitle( tr( "GEOM_MEASURE_ANGLE_ANGLE" ) );
+  mainFrame()->RadioButton1->setIcon( image0 );
+
+  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->setIcon( image1 );
+  myGrp->PushButton2->setIcon( image1 );
+  myGrp->LineEdit1->setReadOnly( true );
+  myGrp->LineEdit2->setReadOnly( true );
+
+  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";
+
+  // Initialisation
+  Init();
+}
+
+//=================================================================================
+// function : ~MeasureGUI_AngleDlg()
+// purpose  : Destroys the object and frees any allocated resources
+//=================================================================================
+MeasureGUI_AngleDlg::~MeasureGUI_AngleDlg()
+{
+}
+
+//=================================================================================
+// function : Init()
+// purpose  :
+//=================================================================================
+void MeasureGUI_AngleDlg::Init()
+{
+  mySelBtn   = myGrp->PushButton1;
+  mySelEdit  = myGrp->LineEdit1;
+  mySelBtn2  = myGrp->PushButton2;
+  mySelEdit2 = myGrp->LineEdit2;
+
+  myEditCurrentArgument = mySelEdit;
+
+  connect( mySelEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
+  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 );
+
+  if ( !testResult )
+    aSelectedObject = GEOM::GEOM_Object::_nil();
+
+  if ( myEditCurrentArgument == mySelEdit )
+    myObj = aSelectedObject;
+  else
+    myObj2 = aSelectedObject;
+
+  processObject();
+}
+
+//=================================================================================
+// function : processObject()
+// purpose  : Fill dialogs fields in accordance with myObj and myObj2
+//=================================================================================
+void MeasureGUI_AngleDlg::processObject()
+{
+  myGrp->LineEdit1->setText( !myObj->_is_nil()  ? GEOMBase::GetName( myObj )  : "" );
+  myGrp->LineEdit2->setText( !myObj2->_is_nil() ? GEOMBase::GetName( myObj2 ) : "" );
+
+  double anAngle = 0.;
+  if ( getParameters( anAngle ) ) {
+    myGrp->LineEdit3->setText( DlgRef::PrintDoubleValue( anAngle ) );
+    redisplayPreview();
+  }
+  else {
+    myGrp->LineEdit3->setText( "" );
+    erasePreview();
+  }
+}
+
+//=================================================================================
+// function : getParameters()
+// purpose  : Get angle between objects
+//=================================================================================
+bool MeasureGUI_AngleDlg::getParameters( double& theAngle )
+{
+  QString msg;
+  if ( isValid( msg ) ) {
+    try {
+      theAngle = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->GetAngle( myObj, myObj2 );
+    }
+    catch( const SALOME::SALOME_Exception& e ) {
+      SalomeApp_Tools::QtCatchCorbaException( e );
+      return false;
+    }
+    
+    bool isDone = getOperation()->IsDone();
+    if ( !isDone ) {
+      CORBA::String_var aMsg = getOperation()->GetErrorCode();
+      SUIT_MessageBox::warning( this, 
+                               QObject::tr( "WRN_WARNING" ),
+                               QObject::tr( aMsg.in() ) );
+    }
+    return isDone;
+  }
+
+  return false;
+}
+
+//=================================================================================
+// function : SetEditCurrentArgument()
+// purpose  :
+//=================================================================================
+void MeasureGUI_AngleDlg::SetEditCurrentArgument()
+{
+  QPushButton* send = (QPushButton*)sender();
+
+  if ( send == mySelBtn ) {
+    mySelEdit->setFocus();
+    myEditCurrentArgument = mySelEdit;
+  }
+  else {
+    mySelEdit2->setFocus();
+    myEditCurrentArgument = mySelEdit2;
+  }
+
+  globalSelection( GEOM_LINE );
+  SelectionIntoArgument();
+}
+
+//=================================================================================
+// function : LineEditReturnPressed()
+// purpose  :
+//=================================================================================
+void MeasureGUI_AngleDlg::LineEditReturnPressed()
+{
+  QLineEdit* send = (QLineEdit*)sender();
+
+  if ( send == mySelEdit )
+    myEditCurrentArgument = mySelEdit;
+  else
+    myEditCurrentArgument = mySelEdit2;
+
+  if ( GEOMBase::SelectionByNameInDialogs( this, mySelEdit->text(), selectedIO() ) )
+    mySelEdit->setText( mySelEdit->text() );
+}
+
+//=================================================================================
+// function : buildPrs()
+// purpose  :
+//=================================================================================
+SALOME_Prs* MeasureGUI_AngleDlg::buildPrs()
+{
+  double anAngle = 0.;
+
+  SUIT_ViewWindow* vw = SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
+
+  if ( myObj->_is_nil() || myObj2->_is_nil() || !getParameters( anAngle ) ||
+       vw->getViewManager()->getType() != OCCViewer_Viewer::Type() )
+    return 0;
+  
+  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 ) ) {
+        TopoDS_Edge anEdge1 = TopoDS::Edge( S1 );
+        TopoDS_Edge anEdge2 = TopoDS::Edge( S2 );
+       
+        // Build a plane for angle dimension presentation {P11, P12, P3}
+        TopoDS_Vertex V11, V12, V21, V22;
+        TopExp::Vertices( anEdge1, V11, V12 );
+        TopExp::Vertices( anEdge2, V21, V22 );
+       
+        gp_Pnt aP11 = BRep_Tool::Pnt( TopExp::FirstVertex( anEdge1 ) );
+        gp_Pnt aP12 = BRep_Tool::Pnt( TopExp::LastVertex ( anEdge1 ) );
+
+        gp_Pnt aP21 = BRep_Tool::Pnt( TopExp::FirstVertex( anEdge2 ) );
+        gp_Pnt aP22 = BRep_Tool::Pnt( TopExp::LastVertex ( anEdge2 ) );
+
+        //        *P3
+        //         \
+        //          \
+        //           *P22
+        //          /
+        //         /
+        // P11    /         P12
+        // *-----/----------*
+        //  \   /
+        //   \ /
+        //    *P21
+        gp_Pnt aP3 ( aP22.XYZ() + aP11.XYZ() - aP21.XYZ() );
+
+        gce_MakePln gce_MP( aP11, aP12, aP3 );
+        Handle(Geom_Plane) aPlane = new Geom_Plane( gce_MP.Value() );
+
+        // Build the angle dimension presentation
+        QString aLabel;
+        aLabel.sprintf( "%.1f", anAngle );
+
+        Handle(AIS_AngleDimension) anIO = new AIS_AngleDimension
+          ( anEdge1, anEdge2, aPlane, anAngle * PI180,
+           TCollection_ExtendedString( (Standard_CString)aLabel.toLatin1().data() ) );
+
+        SOCC_Prs* aPrs =
+          dynamic_cast<SOCC_Prs*>( ( (SOCC_Viewer*)( vw->getViewManager()->getViewModel() ) )->CreatePrs( 0 ) );
+
+        if ( aPrs )
+          aPrs->AddObject( anIO );
+
+        return aPrs;
+      }
+    }
+    catch( Standard_Failure ) {
+    }
+  }
+
+  return 0;
+}
+
+//=================================================================================
+// function : isValid()
+// purpose  :
+//=================================================================================
+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
new file mode 100644 (file)
index 0000000..3ad6891
--- /dev/null
@@ -0,0 +1,67 @@
+// 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   : MeasureGUI_AngleDlg.h
+// Author : Julia DOROVSKIKH, Open CASCADE S.A.S.
+//
+
+#ifndef MEASUREGUI_ANGLEDLG_H
+#define MEASUREGUI_ANGLEDLG_H
+
+#include "MeasureGUI_Skeleton.h"
+
+class MeasureGUI_2Sel1LineEdit;
+
+//=================================================================================
+// class    : MeasureGUI_AngleDlg
+// purpose  :
+//=================================================================================
+class MeasureGUI_AngleDlg : public MeasureGUI_Skeleton
+{ 
+  Q_OBJECT
+
+public:
+  MeasureGUI_AngleDlg( GeometryGUI*, QWidget* );
+  ~MeasureGUI_AngleDlg();
+
+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& );
+
+private:
+  void                          Init();
+  bool                          getParameters( double& );
+
+private:
+  QLineEdit*                    myEditCurrentArgument;
+  QLineEdit*                    mySelEdit2;
+  QPushButton*                  mySelBtn2;
+  MeasureGUI_2Sel1LineEdit*     myGrp;
+
+  GEOM::GEOM_Object_var         myObj2;
+};
+
+#endif // MEASUREGUI_ANGLEDLG_H
index bacba868ffccbc41a7b7e1ffbea7c998b0306169..b478e6158741ca091512484883869f79ecd0143b 100644 (file)
@@ -86,7 +86,7 @@ MeasureGUI_BndBoxDlg::MeasureGUI_BndBoxDlg( GeometryGUI* GUI, QWidget* parent )
   
   /***************************************************************/
 
-  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#Bounding_box";
+  myHelpFileName = "using_measurement_tools_page.html#bounding_box_anchor";
 
   /* Initialisation */
   Init();
index 2ed3a2778ebb2d2626b0ba7e60017df700829387..62f484852e0569bf085f39ededed036d38733552 100644 (file)
@@ -81,7 +81,7 @@ MeasureGUI_CenterMassDlg::MeasureGUI_CenterMassDlg( GeometryGUI* theGeometryGUI,
 
   /***************************************************************/
 
-  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#Center_gravity";
+  myHelpFileName = "using_measurement_tools_page.html#center_mass_anchor";
 
   /* Initialisation */
   Init();
@@ -238,9 +238,9 @@ void MeasureGUI_CenterMassDlg::processObject()
     getParameters( x, y, z );
     
     myGrp->LineEdit1->setText( GEOMBase::GetName( myObj ) );
-    myGrp->LineEdit2->setText( QString( "%1" ).arg( x ) );
-    myGrp->LineEdit3->setText( QString( "%1" ).arg( y ) );
-    myGrp->LineEdit4->setText( QString( "%1" ).arg( z ) );
+    myGrp->LineEdit2->setText( DlgRef::PrintDoubleValue( x ) );
+    myGrp->LineEdit3->setText( DlgRef::PrintDoubleValue( y ) );
+    myGrp->LineEdit4->setText( DlgRef::PrintDoubleValue( z ) );
 
     displayPreview();
   }
index eb2f9941a0dd5f70acf2c0dd73edb126830e74b8..58cd190c286a2bfcff4ea1b0a87ccfce61ee41eb 100644 (file)
@@ -94,7 +94,7 @@ MeasureGUI_CheckCompoundOfBlocksDlg::MeasureGUI_CheckCompoundOfBlocksDlg( Geomet
 
   /***************************************************************/
 
-  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#Check_comp_blocks";
+  myHelpFileName = "using_measurement_tools_page.html#check_compound_anchor";
 
   /* Initialisation */
   Init();
index 811c274484ab5a4eead258c38c20948686b23084..0905b783b3b4741f89c7ccc6d1a72312fe6db769 100644 (file)
@@ -72,7 +72,7 @@ MeasureGUI_CheckShapeDlg::MeasureGUI_CheckShapeDlg( GeometryGUI* GUI, QWidget* p
 
   /***************************************************************/
 
-  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#check";
+  myHelpFileName = "using_measurement_tools_page.html#check_anchor";
 
   /* Initialisation */
   Init();
index 7d11a9d7023c39889dacfeb5116375166c99c089..fc4afa2d6eff1aa15d4f4462faf264c1ae8b26b0 100644 (file)
@@ -27,6 +27,7 @@
 #include "MeasureGUI_Widgets.h"
 
 #include <GEOMBase.h>
+#include <DlgRef.h>
 
 #include <SUIT_Session.h>
 #include <SUIT_Desktop.h>
@@ -66,16 +67,22 @@ MeasureGUI_DistanceDlg::MeasureGUI_DistanceDlg( GeometryGUI* GUI, QWidget* paren
   mainFrame()->GroupConstructors->setTitle( tr( "GEOM_DISTANCE" ) );
   mainFrame()->RadioButton1->setIcon( image0 );
 
-  myGrp = new MeasureGUI_2Sel1LineEdit( centralWidget() );
+  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 );
@@ -83,7 +90,7 @@ MeasureGUI_DistanceDlg::MeasureGUI_DistanceDlg( GeometryGUI* GUI, QWidget* paren
 
   /***************************************************************/
 
-  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#Min_distance";
+  myHelpFileName = "using_measurement_tools_page.html#min_distance_anchor";
 
   /* Initialisation */
   Init();
@@ -116,7 +123,6 @@ void MeasureGUI_DistanceDlg::Init()
   connect( mySelBtn2,  SIGNAL( clicked() ),       this, SLOT( SetEditCurrentArgument() ) );
 
   MeasureGUI_Skeleton::Init();
-
 }
 
 
@@ -143,7 +149,7 @@ void MeasureGUI_DistanceDlg::SelectionIntoArgument()
 
 //=================================================================================
 // function : processObject()
-// purpose  : Fill dialogs fileds in accordance with myObj and myObj2
+// purpose  : Fill dialogs fields in accordance with myObj and myObj2
 //=================================================================================
 void MeasureGUI_DistanceDlg::processObject()
 {
@@ -153,14 +159,22 @@ void MeasureGUI_DistanceDlg::processObject()
   gp_Pnt aPnt1, aPnt2;
   double aDist = 0.;
   if ( getParameters( aDist, aPnt1, aPnt2 ) ) {
-    myGrp->LineEdit3->setText( QString( "%1" ).arg( aDist ) );
+    myGrp->LineEdit3->setText( DlgRef::PrintDoubleValue( aDist ) );
+
+    gp_XYZ aVec = aPnt2.XYZ() - aPnt1.XYZ();
+    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( "" );
     erasePreview();
   }
-    
 }
 
 //=================================================================================
@@ -241,9 +255,12 @@ SALOME_Prs* MeasureGUI_DistanceDlg::buildPrs()
   double aDist = 0.;
   gp_Pnt aPnt1( 0, 0, 0 ), aPnt2( 0, 0, 0 );
   
-  if ( myObj->_is_nil() || myObj2->_is_nil() || !getParameters( aDist, aPnt1, aPnt2 ) ||
-       SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() 
-       != OCCViewer_Viewer::Type() )
+
+  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() )
     return 0;
   
   try
@@ -264,7 +281,6 @@ SALOME_Prs* MeasureGUI_DistanceDlg::buildPrs()
                     ( aPnt1.Y() + aPnt2.Y() ) / 2,
                     ( aPnt1.Z() + aPnt2.Z() ) / 2 + 100 );
 
-
       gp_Vec va( aPnt3, aPnt1 );
       gp_Vec vb( aPnt3, aPnt2 );
 
@@ -279,11 +295,7 @@ SALOME_Prs* MeasureGUI_DistanceDlg::buildPrs()
       Handle( AIS_LengthDimension ) anIO = new AIS_LengthDimension(
         aVert1, aVert2, P, aDist, TCollection_ExtendedString( (Standard_CString)aLabel.toLatin1().constData() ) );
 
-      SUIT_ViewWindow* vw = SUIT_Session::session()->activeApplication()->desktop()->activeWindow();
       SOCC_Prs* aPrs = dynamic_cast<SOCC_Prs*>( ((SOCC_Viewer*)(vw->getViewManager()->getViewModel()))->CreatePrs( 0 ) );
-      
-      //QAD_ViewFrame* vf = GEOM_Displayer::GetActiveView();
-      //OCCViewer_Prs* aPrs = dynamic_cast<OCCViewer_Prs*>( vf->CreatePrs( 0 ) );
 
       if ( aPrs )
         aPrs->AddObject( anIO );
@@ -304,17 +316,3 @@ bool MeasureGUI_DistanceDlg::isValid( QString& msg )
 {
   return MeasureGUI_Skeleton::isValid( msg ) && !myObj2->_is_nil();
 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
index fd4d697dc3611a0bb18e892e4bdf1b4683ce2b4c..d035c5a50a80691fb1b5b1aabd910533b86cfdf9 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "MeasureGUI_Skeleton.h"
 
-class MeasureGUI_2Sel1LineEdit;
+class MeasureGUI_2Sel4LineEdit;
 class gp_Pnt;
 
 //=================================================================================
@@ -63,7 +63,7 @@ private:
   QLineEdit*                          mySelEdit2;
   QPushButton*                        mySelBtn2;
   
-  MeasureGUI_2Sel1LineEdit*           myGrp;
+  MeasureGUI_2Sel4LineEdit*           myGrp;
   GEOM::GEOM_Object_var               myObj2;
 };
 
index 115768284ecd829762913f500c8cc8cf7a054245..c20964da2153805b3b5fbd795f28dc344479cf18 100644 (file)
@@ -85,7 +85,7 @@ MeasureGUI_InertiaDlg::MeasureGUI_InertiaDlg( GeometryGUI* GUI, QWidget* parent
   
   /***************************************************************/
 
-  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#Inertia_axis";
+  myHelpFileName = "using_measurement_tools_page.html#inertia_anchor";
 
   /* Initialisation */
   Init();
@@ -187,4 +187,3 @@ bool MeasureGUI_InertiaDlg::getParameters( gp_Mat& I,
     return getOperation()->IsDone();
   }
 }
-
index 7bdcaff3edd6ce54f6a9b936095fd8355b1480ac..f0b810b3c20f86b09ae390f2443f44b08da3dc69 100644 (file)
@@ -75,7 +75,7 @@ MeasureGUI_MaxToleranceDlg::MeasureGUI_MaxToleranceDlg( GeometryGUI* GUI, QWidge
   
   /***************************************************************/
 
-  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#Tolerance";
+  myHelpFileName = "using_measurement_tools_page.html#tolerance_anchor";
   
   /* Initialisation */
   Init();
@@ -169,24 +169,3 @@ bool MeasureGUI_MaxToleranceDlg::getParameters( double& theMinFaceToler,
     return getOperation()->IsDone();
   }
 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/MeasureGUI/MeasureGUI_NormaleDlg.cxx b/src/MeasureGUI/MeasureGUI_NormaleDlg.cxx
new file mode 100644 (file)
index 0000000..ef2f93b
--- /dev/null
@@ -0,0 +1,275 @@
+// 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   : MeasureGUI_NormaleDlg.cxx
+// Author : Julia DOROVSKIKH, Open CASCADE S.A.S.
+//
+
+#include "MeasureGUI_NormaleDlg.h"
+
+#include <DlgRef.h>
+#include <GEOMBase.h>
+#include <GeometryGUI.h>
+
+#include <SUIT_Session.h>
+#include <SUIT_ResourceMgr.h>
+#include <SalomeApp_Application.h>
+#include <LightApp_SelectionMgr.h>
+
+#include "GEOMImpl_Types.hxx"
+
+//=================================================================================
+// class    : MeasureGUI_NormaleDlg()
+// purpose  : Constructs a MeasureGUI_NormaleDlg 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.
+//=================================================================================
+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" ) ) );
+
+  setWindowTitle( tr( "GEOM_NORMALE_TITLE" ) );
+
+  /***************************************************************/
+  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 ( centralWidget() );
+  GroupArgs->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) );
+
+  GroupArgs->TextLabel1->setText( tr( "GEOM_FACE" ) );
+  GroupArgs->TextLabel2->setText( tr( "GEOM_POINT" ) );
+
+  GroupArgs->PushButton1->setIcon( image1 );
+  GroupArgs->PushButton2->setIcon( image1 );
+
+  QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
+  layout->setMargin( 0 ); layout->setSpacing( 6 );
+  layout->addWidget( GroupArgs );
+
+  /***************************************************************/
+
+  setHelpFileName("using_measurement_tools_page.html#normale_anchor");
+
+  Init();
+}
+
+//=================================================================================
+// function : ~MeasureGUI_NormaleDlg()
+// purpose  : Destroys the object and frees any allocated resources
+//=================================================================================
+MeasureGUI_NormaleDlg::~MeasureGUI_NormaleDlg()
+{
+}
+
+//=================================================================================
+// function : Init()
+// purpose  :
+//=================================================================================
+void MeasureGUI_NormaleDlg::Init()
+{
+  /* init variables */
+  GroupArgs->LineEdit1->setReadOnly( true );
+  GroupArgs->LineEdit2->setReadOnly( true );
+
+  myFace = GEOM::GEOM_Object::_nil();
+  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() ) );
+
+  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() ) );
+
+  initName(tr("GEOM_VECTOR_NORMALE"));
+
+  SelectionIntoArgument();
+}
+
+//=================================================================================
+// function : ClickOnOk()
+// purpose  :
+//=================================================================================
+void MeasureGUI_NormaleDlg::ClickOnOk()
+{
+  if ( ClickOnApply() )
+    ClickOnCancel();
+}
+
+//=================================================================================
+// function : ClickOnApply()
+// purpose  :
+//=================================================================================
+bool MeasureGUI_NormaleDlg::ClickOnApply()
+{
+  if ( !onAccept() )
+    return false;
+
+  initName();
+  return true;
+}
+
+//=================================================================================
+// function : SelectionIntoArgument()
+// purpose  : Called when selection as changed or other case
+//=================================================================================
+void MeasureGUI_NormaleDlg::SelectionIntoArgument()
+{
+  erasePreview();
+  myEditCurrentArgument->setText( "" );
+
+  if ( myEditCurrentArgument == GroupArgs->LineEdit1 ) {
+    myFace = GEOM::GEOM_Object::_nil();
+  }
+  else if ( myEditCurrentArgument == GroupArgs->LineEdit2 ) {
+    myPoint = GEOM::GEOM_Object::_nil();
+  }
+  
+  if ( IObjectCount() != 1 )
+    return;
+
+  // nbSel == 1
+  Standard_Boolean testResult = Standard_False;
+  GEOM::GEOM_Object_var aSelectedObject =
+    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+
+  if ( !testResult )
+    return;
+
+  if ( myEditCurrentArgument == GroupArgs->LineEdit1 ) {
+    myFace = aSelectedObject;
+  }
+  else if ( myEditCurrentArgument == GroupArgs->LineEdit2 ) {
+    myPoint = aSelectedObject;
+  }
+
+  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+
+  displayPreview();
+}
+
+//=================================================================================
+// function : LineEditReturnPressed()
+// purpose  :
+//=================================================================================
+void MeasureGUI_NormaleDlg::LineEditReturnPressed()
+{
+  QLineEdit* send = (QLineEdit*)sender();
+  if ( send == GroupArgs->LineEdit1 ||
+       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  :
+//=================================================================================
+void MeasureGUI_NormaleDlg::ActivateThisDialog()
+{
+  GEOMBase_Skeleton::ActivateThisDialog();
+
+  SelectionIntoArgument();
+}
+
+//=================================================================================
+// function : enterEvent()
+// purpose  :
+//=================================================================================
+void MeasureGUI_NormaleDlg::enterEvent( QEvent* e )
+{
+  if ( !mainFrame()->GroupConstructors->isEnabled() )
+    ActivateThisDialog();
+}
+
+//=================================================================================
+// function : createOperation
+// purpose  :
+//=================================================================================
+GEOM::GEOM_IOperations_ptr MeasureGUI_NormaleDlg::createOperation()
+{
+  return getGeomEngine()->GetIMeasureOperations( getStudyId() );
+}
+
+//=================================================================================
+// function : isValid
+// purpose  :
+//=================================================================================
+bool MeasureGUI_NormaleDlg::isValid( QString& )
+{
+  //return !CORBA::is_nil(myFace) && !CORBA::is_nil(myPoint);
+  return !CORBA::is_nil( myFace );
+}
+
+//=================================================================================
+// function : execute
+// purpose  :
+//=================================================================================
+bool MeasureGUI_NormaleDlg::execute( ObjectList& objects )
+{
+  GEOM::GEOM_Object_var anObj =
+    GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->GetNormal( myFace, myPoint );
+
+  if ( !anObj->_is_nil() )
+    objects.push_back( anObj._retn() );
+
+  return true;
+}
diff --git a/src/MeasureGUI/MeasureGUI_NormaleDlg.h b/src/MeasureGUI/MeasureGUI_NormaleDlg.h
new file mode 100644 (file)
index 0000000..cfeda36
--- /dev/null
@@ -0,0 +1,71 @@
+// 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   : MeasureGUI_NormaleDlg.h
+// Author : Julia DOROVSKIKH, Open CASCADE S.A.S.
+//
+
+#ifndef MEASUREGUI_NORMALEDLG_H
+#define MEASUREGUI_NORMALEDLG_H
+
+#include <GEOMBase_Skeleton.h>
+
+class DlgRef_2Sel;
+
+//=================================================================================
+// class    : MeasureGUI_NormaleDlg
+// purpose  :
+//=================================================================================
+class MeasureGUI_NormaleDlg : public GEOMBase_Skeleton
+{
+  Q_OBJECT
+
+public:
+  MeasureGUI_NormaleDlg( GeometryGUI*, QWidget* );
+  ~MeasureGUI_NormaleDlg();
+
+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              myFace;
+  GEOM::GEOM_Object_var              myPoint;
+
+  DlgRef_2Sel*                       GroupArgs;
+
+private slots:
+  void                               ClickOnOk();
+  bool                               ClickOnApply();
+
+  void                               ActivateThisDialog();
+  void                               LineEditReturnPressed();
+  void                               SelectionIntoArgument();
+  void                               SetEditCurrentArgument();
+};
+
+#endif // MEASUREGUI_NORMALEDLG_H
index 2d6d8f62da41b78fd3d81e15f0e3c415fb000790..f9e822710395869ff694db877aa847d3669caf2b 100644 (file)
@@ -27,6 +27,7 @@
 #include "MeasureGUI_Widgets.h"
 
 #include <GEOMBase.h>
+#include <DlgRef.h>
 
 #include <SUIT_Session.h>
 #include <SUIT_ResourceMgr.h>
@@ -76,7 +77,7 @@ MeasureGUI_PointDlg::MeasureGUI_PointDlg( GeometryGUI* GUI, QWidget* parent )
   layout->setMargin( 0 ); layout->setSpacing( 6 );
   layout->addWidget( myGrp );
 
-  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#PointCoord";
+  myHelpFileName = "using_measurement_tools_page.html#point_coord_anchor";
 
   Init();
 }
@@ -162,9 +163,9 @@ void MeasureGUI_PointDlg::SelectionIntoArgument()
     if ( !aPoint.IsNull() ) {
       gp_Pnt aPnt = BRep_Tool::Pnt( aPoint );
       myGrp->LineEdit1->setText( aName );
-      myGrp->LineEdit2->setText( QString( "%1" ).arg( aPnt.X() ) );
-      myGrp->LineEdit3->setText( QString( "%1" ).arg( aPnt.Y() ) );
-      myGrp->LineEdit4->setText( QString( "%1" ).arg( aPnt.Z() ) );
+      myGrp->LineEdit2->setText( DlgRef::PrintDoubleValue( aPnt.X() ) );
+      myGrp->LineEdit3->setText( DlgRef::PrintDoubleValue( aPnt.Y() ) );
+      myGrp->LineEdit4->setText( DlgRef::PrintDoubleValue( aPnt.Z() ) );
     }
   }
   catch( ... )
index 13bc440e3d38f83c38ab8138045fad3b9e1d9d0e..c26ec25c243d03c1c19e9a49dfcaea18ebc538d9 100644 (file)
@@ -28,6 +28,7 @@
 
 #include <GEOMImpl_Types.hxx>
 #include <GEOMBase.h>
+#include <DlgRef.h>
 
 #include <SalomeApp_Tools.h>
 #include <SUIT_Session.h>
@@ -75,7 +76,7 @@ MeasureGUI_PropertiesDlg::MeasureGUI_PropertiesDlg( GeometryGUI* GUI, QWidget* p
   
   /***************************************************************/
 
-  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#Basic_properties";
+  myHelpFileName = "using_measurement_tools_page.html#basic_prop_anchor";
 
   /* Initialisation */
   Init();
@@ -137,9 +138,9 @@ void MeasureGUI_PropertiesDlg::processObject()
     myGrp->LineEdit4->setText( "" );
   }
   else {
-    myGrp->LineEdit2->setText( QString( "%1" ).arg( aLength ) );
-    myGrp->LineEdit3->setText( QString( "%1" ).arg( anArea ) );
-    myGrp->LineEdit4->setText( QString( "%1" ).arg( aVolume ) );
+    myGrp->LineEdit2->setText( DlgRef::PrintDoubleValue( aLength ) );
+    myGrp->LineEdit3->setText( DlgRef::PrintDoubleValue( anArea ) );
+    myGrp->LineEdit4->setText( DlgRef::PrintDoubleValue( aVolume ) );
   }
 }
 
@@ -186,24 +187,3 @@ SALOME_Prs* MeasureGUI_PropertiesDlg::buildPrs()
   return getDisplayer()->BuildPrs( aResult );
   
 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
index 20fdb197ae59d15f313c2f6c5d9df34a27405838..3109b373840568724a2aebf0096e9abd4f1228f3 100644 (file)
@@ -56,7 +56,7 @@ MeasureGUI_Skeleton::MeasureGUI_Skeleton( GeometryGUI* GUI, QWidget* parent,
 {
   myMainFrame = new MeasureGUI_SkeletonBox( this );
   QVBoxLayout* topLayout = new QVBoxLayout( this );
-  topLayout->setMargin( 0 ); topLayout->setSpacing( 0 );
+  topLayout->setMargin( 9 ); topLayout->setSpacing( 0 );
   topLayout->addWidget( myMainFrame );
 
   setAttribute( Qt::WA_DeleteOnClose );
index 954c52a8e2788055bdc06d9359dbec96f693e905..e5fd4819f05cf97106bd00f1d90ca24a86419df5 100644 (file)
@@ -32,6 +32,8 @@
 #include <SUIT_ResourceMgr.h>
 #include <SalomeApp_Tools.h>
 
+#include <QScrollBar>
+
 //=================================================================================
 // class    : MeasureGUI_WhatisDlg( )
 // purpose  : Constructs a MeasureGUI_WhatisDlg which is a child of 'parent', with the
@@ -58,6 +60,15 @@ MeasureGUI_WhatisDlg::MeasureGUI_WhatisDlg( GeometryGUI* GUI, QWidget* parent )
   myGrp->GroupBox1->setTitle( tr( "GEOM_WHATIS_OBJECT" ) );
   myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) );
   myGrp->TextView1->setReadOnly( true );
+
+  // fix height to fit all text
+  myGrp->TextView1->setLineWrapMode( QTextEdit::NoWrap );
+  // myGrp->TextView1->setTextFormat( Qt::PlainText ); // VSR : TODO
+  QString allLines ("\n\n\n\n\n\n\n\n\n"); // 10 lines
+  myGrp->TextView1->setText( allLines );
+  int sbHeight = myGrp->TextView1->horizontalScrollBar()->height();
+  myGrp->TextView1->setFixedHeight( myGrp->TextView1->document()->size().height() + sbHeight );
+
   myGrp->PushButton1->setIcon( image1 );
   myGrp->LineEdit1->setReadOnly( true );
 
@@ -67,7 +78,7 @@ MeasureGUI_WhatisDlg::MeasureGUI_WhatisDlg( GeometryGUI* GUI, QWidget* parent )
 
   /***************************************************************/
 
-  myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#Whatis";
+  myHelpFileName = "using_measurement_tools_page.html#whatis_anchor";
 
   /* Initialisation */
   Init();
@@ -125,6 +136,3 @@ bool MeasureGUI_WhatisDlg::getParameters( QString& theText )
     return getOperation()->IsDone();
   }
 }
-
-
-
index b2bbf343bf01367c2f0a83bbde5d76a2588b2100..69bdec2bcdfa396d89aeb8b15ad6d0b6735af6a6 100644 (file)
@@ -122,6 +122,20 @@ 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
 //////////////////////////////////////////
index f56de2fda4858cebf54c87ea9c59d29aae3d29b8..7868113fc87d5d7b75d47765d657190a4a8dbfec 100644 (file)
@@ -136,6 +136,22 @@ public:
   ~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
 //////////////////////////////////////////
diff --git a/src/NMTDS/Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx b/src/NMTDS/Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx
new file mode 100644 (file)
index 0000000..a48a632
--- /dev/null
@@ -0,0 +1,72 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+#ifndef _Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile
+#define _Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile
+
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+
+#ifndef _Handle_TCollection_MapNode_HeaderFile
+#include <Handle_TCollection_MapNode.hxx>
+#endif
+
+class Standard_Transient;
+class Handle_Standard_Type;
+class Handle(TCollection_MapNode);
+class NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger;
+Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger);
+
+class Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger) : public Handle(TCollection_MapNode) {
+  public:
+    Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)():Handle(TCollection_MapNode)() {} 
+    Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)(const Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)& aHandle) : Handle(TCollection_MapNode)(aHandle) 
+     {
+     }
+
+    Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)(const NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger* anItem) : Handle(TCollection_MapNode)((TCollection_MapNode *)anItem) 
+     {
+     }
+
+    Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)& operator=(const Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)& aHandle)
+     {
+      Assign(aHandle.Access());
+      return *this;
+     }
+
+    Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)& operator=(const NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger* anItem)
+     {
+      Assign((Standard_Transient *)anItem);
+      return *this;
+     }
+
+    NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger* operator->() const
+     {
+      return (NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger *)ControlAccess();
+     }
+
+//   Standard_EXPORT ~Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)();
+   Standard_EXPORT static const Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger) DownCast(const Handle(Standard_Transient)& AnObject);
+};
+#endif
index 7f5d642a938a91ca2e8351ee75a165df860f45a7..edc19fc6586c3d0b24158085928b75f50baaf781 100644 (file)
@@ -31,6 +31,7 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
 
 # header files 
 salomeinclude_HEADERS = \
+       Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx \
        Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx \
        Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx \
        Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx \
@@ -40,6 +41,9 @@ salomeinclude_HEADERS = \
        Handle_NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx \
        Handle_NMTDS_StdMapNodeOfMapOfPassKey.hxx \
        NMTDS_CArray1OfIndexRange.hxx \
+       NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx \
+       NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx \
+       NMTDS_DataMapOfIntegerMapOfInteger.hxx \
        NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx \
        NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx \
        NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx \
@@ -47,7 +51,10 @@ salomeinclude_HEADERS = \
        NMTDS_IndexedDataMapOfIntegerShape.hxx \
        NMTDS_IndexedDataMapOfShapeBox.hxx \
        NMTDS_IndexRange.hxx \
+       NMTDS_InterfPool.hxx \
+       NMTDS_InterfType.hxx \
        NMTDS_Iterator.hxx \
+       NMTDS_IteratorCheckerSI.hxx \
        NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx \
        NMTDS_ListIteratorOfListOfPassKeyBoolean.hxx \
        NMTDS_ListIteratorOfListOfPassKey.hxx \
@@ -62,12 +69,17 @@ salomeinclude_HEADERS = \
        NMTDS_MapOfPassKeyBoolean.hxx  \
        NMTDS_MapOfPassKey.hxx \
        NMTDS_PassKeyBoolean.hxx \
+       NMTDS_PInterfPool.hxx \
+       NMTDS_PIterator.hxx \
        NMTDS_PassKey.hxx \
        NMTDS_PassKeyMapHasher.hxx \
+       NMTDS_PassKeyShape.hxx \
+       NMTDS_PassKeyShapeMapHasher.hxx \
        NMTDS_PShapesDataStructure.hxx \
        NMTDS_ShapesDataStructure.hxx \
        NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx \
        NMTDS_StdMapNodeOfMapOfPassKey.hxx \
+       NMTDS_Tools.hxx \
        NMTDS_BoxBndTree.hxx
 
 # Libraries targets
@@ -75,6 +87,9 @@ lib_LTLIBRARIES = libNMTDS.la
 
 dist_libNMTDS_la_SOURCES = \
        NMTDS_CArray1OfIndexRange_0.cxx \
+       NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_0.cxx \
+       NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_0.cxx \
+       NMTDS_DataMapOfIntegerMapOfInteger_0.cxx \
        NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx \
        NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx \
        NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx \
@@ -82,7 +97,9 @@ dist_libNMTDS_la_SOURCES = \
        NMTDS_IndexedDataMapOfIntegerShape_0.cxx  \
        NMTDS_IndexedDataMapOfShapeBox_0.cxx \
        NMTDS_IndexRange.cxx \
+       NMTDS_InterfPool.cxx \
        NMTDS_Iterator.cxx \
+       NMTDS_IteratorCheckerSI.cxx \
        NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx  \
        NMTDS_ListIteratorOfListOfPassKey_0.cxx  \
        NMTDS_ListIteratorOfListOfPassKeyBoolean_0.cxx \
@@ -99,9 +116,12 @@ dist_libNMTDS_la_SOURCES = \
        NMTDS_PassKeyBoolean.cxx \
        NMTDS_PassKey.cxx \
        NMTDS_PassKeyMapHasher.cxx \
+       NMTDS_PassKeyShape.cxx \
+       NMTDS_PassKeyShapeMapHasher.cxx \
        NMTDS_ShapesDataStructure.cxx \
        NMTDS_StdMapNodeOfMapOfPassKey_0.cxx \
        NMTDS_StdMapNodeOfMapOfPassKeyBoolean_0.cxx \
+       NMTDS_Tools.cxx \
        NMTDS_BoxBndTree.cxx
 
 # additionnal information to compil and link file
index c023fff9e295daf945bc788e22dda679da4a421f..cabb10f4bf016cf7f4af84cc49693984ef297602 100644 (file)
@@ -28,29 +28,49 @@ package NMTDS
        ---Purpose: 
 
 uses   
-    
     TCollection, 
     TColStd,
     Bnd,
     TopoDS, 
     TopAbs, 
     TopTools, 
-    BooleanOperations,
-    BOPTColStd
+    BooleanOperations, 
+    BOPTools,
+    BOPTColStd 
+    
 is  
+    enumeration InterfType is
+       TI_VV,
+       TI_VE,
+       TI_VF,
+       TI_EE,
+       TI_EF,
+       TI_FF,
+       TI_UNKNOWN
+    end InterfType;      
+    --
     class ShapesDataStructure;
     class IndexRange;   
     
     -- Modified to Add new classes Thu Sep 14 14:35:18 2006 
     -- Contribution of Samtech www.samcef.com BEGIN 
     class Iterator; 
+    
     class PassKey; 
     class PassKeyBoolean; 
     class PassKeyMapHasher; 
     -- Contribution of Samtech www.samcef.com END  
-    
+    class PassKeyShape; 
+    class PassKeyShapeMapHasher; 
+    --modified by NIZNHY-PKV Tue Feb  6 10:40:02 2007f 
+    class IteratorCheckerSI; 
+    class Tools; 
+    class InterfPool; 
+    --modified by NIZNHY-PKV Tue Feb  6 10:40:04 2007t 
     pointer PShapesDataStructure to ShapesDataStructure from NMTDS;
-
+    pointer PIterator to Iterator from NMTDS;
+    pointer PInterfPool to InterfPool from NMTDS;
+     
     class CArray1OfIndexRange instantiates 
        CArray1 from BOPTColStd(IndexRange from NMTDS); 
      
@@ -79,7 +99,7 @@ is
                             PassKeyMapHasher from NMTDS);   
     -- Contribution of Samtech www.samcef.com END
 
-
+--modified by NIZNHY-PKV Tue Oct 10 11:19:06 2006f 
     class IndexedDataMapOfShapeBox  
        instantiates IndexedDataMap from TCollection    (Shape from TopoDS,
                                                         Box from Bnd,
@@ -88,6 +108,12 @@ is
        instantiates IndexedDataMap from TCollection    (Integer from Standard,
                                                         Shape from TopoDS,
                                                         MapIntegerHasher from TColStd); 
+                                                         
+    class DataMapOfIntegerMapOfInteger  
+       instantiates DataMap from TCollection           (Integer from Standard, 
+                                                        MapOfInteger from TColStd, 
+                                                        MapIntegerHasher from TColStd); 
 
+--modified by NIZNHY-PKV Tue Oct 10 11:19:08 2006t
  
 end NMTDS;
diff --git a/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx b/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx
new file mode 100644 (file)
index 0000000..5c782f2
--- /dev/null
@@ -0,0 +1,115 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_HeaderFile
+#define _NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_HeaderFile
+
+#ifndef _TCollection_BasicMapIterator_HeaderFile
+#include <TCollection_BasicMapIterator.hxx>
+#endif
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile
+#include <Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx>
+#endif
+class Standard_NoSuchObject;
+class TColStd_MapOfInteger;
+class TColStd_MapIntegerHasher;
+class NMTDS_DataMapOfIntegerMapOfInteger;
+class NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger  : public TCollection_BasicMapIterator {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+
+Standard_EXPORT NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger();
+
+
+Standard_EXPORT NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger(const NMTDS_DataMapOfIntegerMapOfInteger& aMap);
+
+
+Standard_EXPORT   void Initialize(const NMTDS_DataMapOfIntegerMapOfInteger& aMap) ;
+
+
+Standard_EXPORT  const Standard_Integer& Key() const;
+
+
+Standard_EXPORT  const TColStd_MapOfInteger& Value() 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/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_0.cxx b/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_0.cxx
new file mode 100644 (file)
index 0000000..52c8d53
--- /dev/null
@@ -0,0 +1,54 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 <NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx>
+
+#ifndef _Standard_NoSuchObject_HeaderFile
+#include <Standard_NoSuchObject.hxx>
+#endif
+#ifndef _TColStd_MapOfInteger_HeaderFile
+#include <TColStd_MapOfInteger.hxx>
+#endif
+#ifndef _TColStd_MapIntegerHasher_HeaderFile
+#include <TColStd_MapIntegerHasher.hxx>
+#endif
+#ifndef _NMTDS_DataMapOfIntegerMapOfInteger_HeaderFile
+#include <NMTDS_DataMapOfIntegerMapOfInteger.hxx>
+#endif
+#ifndef _NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile
+#include <NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx>
+#endif
+
+#define TheKey Standard_Integer
+#define TheKey_hxx <Standard_Integer.hxx>
+#define TheItem TColStd_MapOfInteger
+#define TheItem_hxx <TColStd_MapOfInteger.hxx>
+#define Hasher TColStd_MapIntegerHasher
+#define Hasher_hxx <TColStd_MapIntegerHasher.hxx>
+#define TCollection_DataMapNode NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapNode_hxx <NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx>
+#define TCollection_DataMapIterator NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapIterator_hxx <NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx>
+#define Handle_TCollection_DataMapNode Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapNode_Type_() NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_Type_()
+#define TCollection_DataMap NMTDS_DataMapOfIntegerMapOfInteger
+#define TCollection_DataMap_hxx <NMTDS_DataMapOfIntegerMapOfInteger.hxx>
+#include <TCollection_DataMapIterator.gxx>
+
diff --git a/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx b/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx
new file mode 100644 (file)
index 0000000..89989c7
--- /dev/null
@@ -0,0 +1,131 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile
+#define _NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile
+#include <Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx>
+#endif
+
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _TColStd_MapOfInteger_HeaderFile
+#include <TColStd_MapOfInteger.hxx>
+#endif
+#ifndef _TCollection_MapNode_HeaderFile
+#include <TCollection_MapNode.hxx>
+#endif
+#ifndef _TCollection_MapNodePtr_HeaderFile
+#include <TCollection_MapNodePtr.hxx>
+#endif
+class TColStd_MapOfInteger;
+class TColStd_MapIntegerHasher;
+class NMTDS_DataMapOfIntegerMapOfInteger;
+class NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger;
+
+
+
+class NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger : public TCollection_MapNode {
+
+public:
+ // Methods PUBLIC
+ // 
+
+NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger(const Standard_Integer& K,const TColStd_MapOfInteger& I,const TCollection_MapNodePtr& n);
+
+  Standard_Integer& Key() const;
+
+  TColStd_MapOfInteger& Value() const;
+//Standard_EXPORT ~NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger();
+
+
+
+
+ // Type management
+ //
+ 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
+ //
+Standard_Integer myKey;
+TColStd_MapOfInteger myValue;
+
+
+};
+
+#define TheKey Standard_Integer
+#define TheKey_hxx <Standard_Integer.hxx>
+#define TheItem TColStd_MapOfInteger
+#define TheItem_hxx <TColStd_MapOfInteger.hxx>
+#define Hasher TColStd_MapIntegerHasher
+#define Hasher_hxx <TColStd_MapIntegerHasher.hxx>
+#define TCollection_DataMapNode NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapNode_hxx <NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx>
+#define TCollection_DataMapIterator NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapIterator_hxx <NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx>
+#define Handle_TCollection_DataMapNode Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapNode_Type_() NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_Type_()
+#define TCollection_DataMap NMTDS_DataMapOfIntegerMapOfInteger
+#define TCollection_DataMap_hxx <NMTDS_DataMapOfIntegerMapOfInteger.hxx>
+
+#include <TCollection_DataMapNode.lxx>
+
+#undef TheKey
+#undef TheKey_hxx
+#undef TheItem
+#undef TheItem_hxx
+#undef Hasher
+#undef Hasher_hxx
+#undef TCollection_DataMapNode
+#undef TCollection_DataMapNode_hxx
+#undef TCollection_DataMapIterator
+#undef TCollection_DataMapIterator_hxx
+#undef Handle_TCollection_DataMapNode
+#undef TCollection_DataMapNode_Type_
+#undef TCollection_DataMap
+#undef TCollection_DataMap_hxx
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
diff --git a/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_0.cxx b/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_0.cxx
new file mode 100644 (file)
index 0000000..81d4ca5
--- /dev/null
@@ -0,0 +1,100 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 <NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx>
+
+#ifndef _Standard_TypeMismatch_HeaderFile
+#include <Standard_TypeMismatch.hxx>
+#endif
+
+#ifndef _TColStd_MapOfInteger_HeaderFile
+#include <TColStd_MapOfInteger.hxx>
+#endif
+#ifndef _TColStd_MapIntegerHasher_HeaderFile
+#include <TColStd_MapIntegerHasher.hxx>
+#endif
+#ifndef _NMTDS_DataMapOfIntegerMapOfInteger_HeaderFile
+#include <NMTDS_DataMapOfIntegerMapOfInteger.hxx>
+#endif
+#ifndef _NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_HeaderFile
+#include <NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx>
+#endif
+//NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger::~NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger() {}
+
+
+Standard_EXPORT Handle_Standard_Type& NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_Type_()
+{
+
+    static Handle_Standard_Type aType1 = STANDARD_TYPE(TCollection_MapNode);
+  static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared);
+  static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient);
+
+  static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
+  static Handle_Standard_Type _aType = new Standard_Type("NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger",
+                                                        sizeof(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger),
+                                                        1,
+                                                        (Standard_Address)_Ancestors,
+                                                        (Standard_Address)NULL);
+
+  return _aType;
+}
+
+
+// DownCast method
+//   allow safe downcasting
+//
+const Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger) Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)::DownCast(const Handle(Standard_Transient)& AnObject) 
+{
+  Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger) _anOtherObject;
+
+  if (!AnObject.IsNull()) {
+     if (AnObject->IsKind(STANDARD_TYPE(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger))) {
+       _anOtherObject = Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)((Handle(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger)&)AnObject);
+     }
+  }
+
+  return _anOtherObject ;
+}
+const Handle(Standard_Type)& NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger::DynamicType() const 
+{ 
+  return STANDARD_TYPE(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger) ; 
+}
+//Standard_Boolean NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger::IsKind(const Handle(Standard_Type)& AType) const 
+//{ 
+//  return (STANDARD_TYPE(NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger) == AType || TCollection_MapNode::IsKind(AType)); 
+//}
+//Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger::~Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger() {}
+#define TheKey Standard_Integer
+#define TheKey_hxx <Standard_Integer.hxx>
+#define TheItem TColStd_MapOfInteger
+#define TheItem_hxx <TColStd_MapOfInteger.hxx>
+#define Hasher TColStd_MapIntegerHasher
+#define Hasher_hxx <TColStd_MapIntegerHasher.hxx>
+#define TCollection_DataMapNode NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapNode_hxx <NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx>
+#define TCollection_DataMapIterator NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapIterator_hxx <NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx>
+#define Handle_TCollection_DataMapNode Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapNode_Type_() NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_Type_()
+#define TCollection_DataMap NMTDS_DataMapOfIntegerMapOfInteger
+#define TCollection_DataMap_hxx <NMTDS_DataMapOfIntegerMapOfInteger.hxx>
+#include <TCollection_DataMapNode.gxx>
+
diff --git a/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger.hxx b/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger.hxx
new file mode 100644 (file)
index 0000000..2e7c5b4
--- /dev/null
@@ -0,0 +1,154 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_DataMapOfIntegerMapOfInteger_HeaderFile
+#define _NMTDS_DataMapOfIntegerMapOfInteger_HeaderFile
+
+#ifndef _TCollection_BasicMap_HeaderFile
+#include <TCollection_BasicMap.hxx>
+#endif
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile
+#include <Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx>
+#endif
+#ifndef _Standard_Boolean_HeaderFile
+#include <Standard_Boolean.hxx>
+#endif
+class Standard_DomainError;
+class Standard_NoSuchObject;
+class TColStd_MapOfInteger;
+class TColStd_MapIntegerHasher;
+class NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger;
+class NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTDS_DataMapOfIntegerMapOfInteger  : public TCollection_BasicMap {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+
+Standard_EXPORT NMTDS_DataMapOfIntegerMapOfInteger(const Standard_Integer NbBuckets = 1);
+
+
+Standard_EXPORT   NMTDS_DataMapOfIntegerMapOfInteger& Assign(const NMTDS_DataMapOfIntegerMapOfInteger& Other) ;
+  NMTDS_DataMapOfIntegerMapOfInteger& operator =(const NMTDS_DataMapOfIntegerMapOfInteger& Other) 
+{
+  return Assign(Other);
+}
+
+
+
+Standard_EXPORT   void ReSize(const Standard_Integer NbBuckets) ;
+
+
+Standard_EXPORT   void Clear() ;
+~NMTDS_DataMapOfIntegerMapOfInteger()
+{
+  Clear();
+}
+
+
+
+Standard_EXPORT   Standard_Boolean Bind(const Standard_Integer& K,const TColStd_MapOfInteger& I) ;
+
+
+Standard_EXPORT   Standard_Boolean IsBound(const Standard_Integer& K) const;
+
+
+Standard_EXPORT   Standard_Boolean UnBind(const Standard_Integer& K) ;
+
+
+Standard_EXPORT  const TColStd_MapOfInteger& Find(const Standard_Integer& K) const;
+ const TColStd_MapOfInteger& operator()(const Standard_Integer& K) const
+{
+  return Find(K);
+}
+
+
+
+Standard_EXPORT   TColStd_MapOfInteger& ChangeFind(const Standard_Integer& K) ;
+  TColStd_MapOfInteger& operator()(const Standard_Integer& K) 
+{
+  return ChangeFind(K);
+}
+
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ // 
+
+
+ // Fields PROTECTED
+ //
+
+
+private: 
+
+ // Methods PRIVATE
+ // 
+
+
+Standard_EXPORT NMTDS_DataMapOfIntegerMapOfInteger(const NMTDS_DataMapOfIntegerMapOfInteger& Other);
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
diff --git a/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger_0.cxx b/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger_0.cxx
new file mode 100644 (file)
index 0000000..ca6e0ff
--- /dev/null
@@ -0,0 +1,57 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 <NMTDS_DataMapOfIntegerMapOfInteger.hxx>
+
+#ifndef _Standard_DomainError_HeaderFile
+#include <Standard_DomainError.hxx>
+#endif
+#ifndef _Standard_NoSuchObject_HeaderFile
+#include <Standard_NoSuchObject.hxx>
+#endif
+#ifndef _TColStd_MapOfInteger_HeaderFile
+#include <TColStd_MapOfInteger.hxx>
+#endif
+#ifndef _TColStd_MapIntegerHasher_HeaderFile
+#include <TColStd_MapIntegerHasher.hxx>
+#endif
+#ifndef _NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile
+#include <NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx>
+#endif
+#ifndef _NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_HeaderFile
+#include <NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx>
+#endif
+
+#define TheKey Standard_Integer
+#define TheKey_hxx <Standard_Integer.hxx>
+#define TheItem TColStd_MapOfInteger
+#define TheItem_hxx <TColStd_MapOfInteger.hxx>
+#define Hasher TColStd_MapIntegerHasher
+#define Hasher_hxx <TColStd_MapIntegerHasher.hxx>
+#define TCollection_DataMapNode NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapNode_hxx <NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx>
+#define TCollection_DataMapIterator NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapIterator_hxx <NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx>
+#define Handle_TCollection_DataMapNode Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger
+#define TCollection_DataMapNode_Type_() NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_Type_()
+#define TCollection_DataMap NMTDS_DataMapOfIntegerMapOfInteger
+#define TCollection_DataMap_hxx <NMTDS_DataMapOfIntegerMapOfInteger.hxx>
+#include <TCollection_DataMap.gxx>
+
diff --git a/src/NMTDS/NMTDS_InterfPool.cdl b/src/NMTDS/NMTDS_InterfPool.cdl
new file mode 100644 (file)
index 0000000..8b74d08
--- /dev/null
@@ -0,0 +1,151 @@
+-- Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+-- 
+-- This library is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU Lesser General Public
+-- License as published by the Free Software Foundation; either 
+-- version 2.1 of the License.
+-- 
+-- This library is distributed in the hope that it will be useful 
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of 
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+-- Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public  
+-- License along with this library; if not, write to the Free Software 
+-- Foundation, 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
+--             <pkv@irinox>
+---Copyright:   Matra Datavision 2007
+
+
+class InterfPool from NMTDS 
+
+       ---Purpose: 
+
+uses
+    MapOfPassKeyBoolean  from NMTDS, 
+    ListOfPassKeyBoolean from NMTDS, 
+    PassKeyBoolean       from NMTDS,
+    InterfType           from NMTDS, 
+    --     
+    CArray1OfSSInterference from BOPTools,
+    CArray1OfESInterference from BOPTools,
+    CArray1OfVSInterference from BOPTools, 
+    CArray1OfEEInterference from BOPTools, 
+    CArray1OfVEInterference from BOPTools, 
+    CArray1OfVVInterference from BOPTools
+
+--raises
+
+is 
+    Create 
+       returns InterfPool from NMTDS; 
+    ---C++: alias "Standard_EXPORT virtual ~NMTDS_InterfPool();"  
+
+    Add (me:out;   
+           aPKB : PassKeyBoolean from NMTDS;
+            aType: InterfType from NMTDS) 
+       returns Boolean from Standard; 
+       
+    Add (me:out;   
+           aInd1 : Integer from Standard;
+           aInd2 : Integer from Standard; 
+            aType : InterfType from NMTDS) 
+       returns Boolean from Standard;
+      
+    Add (me:out;   
+           aInd1 : Integer from Standard;
+           aInd2 : Integer from Standard; 
+           bFlag : Boolean from Standard;                   
+            aType : InterfType from NMTDS) 
+       returns Boolean from Standard;
+
+    Contains(me; 
+           aPKB : PassKeyBoolean from NMTDS)
+       returns Boolean from Standard; 
+     
+    Contains(me; 
+           aInd1 : Integer from Standard;
+           aInd2 : Integer from Standard) 
+       returns Boolean from Standard; 
+     
+    Get(me) 
+       returns ListOfPassKeyBoolean from NMTDS; 
+    ---C++: return const &       
+
+    Get(me; 
+           aType : InterfType from NMTDS) 
+       returns ListOfPassKeyBoolean from NMTDS; 
+    ---C++: return const &      
+
+    Get(me; 
+           aInd : Integer from Standard) 
+       returns ListOfPassKeyBoolean from NMTDS; 
+    ---C++: return const & 
+      
+    Get(me; 
+           aInd : Integer from Standard; 
+           aType: InterfType from NMTDS) 
+       returns ListOfPassKeyBoolean from NMTDS; 
+    ---C++: return const &  
+    
+    -- 
+    -- Interferences 
+    -- 
+    SSInterferences (me:out)  
+       returns CArray1OfSSInterference from BOPTools; 
+       ---C++:  return  & 
+       ---Purpose: 
+       --- Returns the reference to array Of F/F interferences 
+       ---
+    ESInterferences (me:out)  
+       returns CArray1OfESInterference from BOPTools; 
+       ---C++:  return  & 
+       ---Purpose: 
+       --- Returns the reference to array Of E/F interferences 
+       ---
+    VSInterferences (me:out)  
+       returns CArray1OfVSInterference from BOPTools; 
+       ---C++:  return  &
+       ---Purpose: 
+       --- Returns the reference to array Of V/F interferences 
+       ---
+    EEInterferences (me:out)  
+       returns CArray1OfEEInterference from BOPTools; 
+       ---C++:  return  &  
+       ---Purpose: 
+       --- Returns the reference to arrray Of E/E interferences 
+       ---
+    VEInterferences (me:out)  
+       returns CArray1OfVEInterference from BOPTools; 
+       ---C++:  return  &              
+       ---Purpose: 
+       --- Returns the reference to arrray Of  V/E interferences 
+       ---
+    VVInterferences (me:out)  
+       returns CArray1OfVVInterference from BOPTools; 
+       ---C++:  return  &              
+       ---Purpose: 
+       --- Returns the reference to arrray Of  V/V interferences 
+       ---
+
+fields 
+    myTable : MapOfPassKeyBoolean from NMTDS [6] is protected; 
+    myList  : ListOfPassKeyBoolean from NMTDS is protected;
+    myMaxInd: Integer from Standard is protected; 
+    -- 
+    mySSInterferences  :  CArray1OfSSInterference from BOPTools is protected;
+    myESInterferences  :  CArray1OfESInterference from BOPTools is protected;
+    myVSInterferences  :  CArray1OfVSInterference from BOPTools is protected;
+    myEEInterferences  :  CArray1OfEEInterference from BOPTools is protected;
+    myVEInterferences  :  CArray1OfVEInterference from BOPTools is protected;
+    myVVInterferences  :  CArray1OfVVInterference from BOPTools is protected;   
+
+end InterfPool;
diff --git a/src/NMTDS/NMTDS_InterfPool.cxx b/src/NMTDS/NMTDS_InterfPool.cxx
new file mode 100644 (file)
index 0000000..95774e9
--- /dev/null
@@ -0,0 +1,281 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, 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
+//             <pkv@irinox>
+
+
+#include <NMTDS_InterfPool.ixx>
+#include <NMTDS_PassKeyBoolean.hxx>
+#include <NMTDS_ListOfPassKeyBoolean.hxx>
+#include <NMTDS_MapIteratorOfMapOfPassKeyBoolean.hxx>
+#include <NMTDS_ListIteratorOfListOfPassKeyBoolean.hxx>
+
+static
+  Standard_Integer TypeToInteger(const NMTDS_InterfType aType);
+
+//=======================================================================
+//function : 
+//purpose  : 
+//=======================================================================
+  NMTDS_InterfPool::NMTDS_InterfPool()
+{
+  myMaxInd=6;
+}
+//=======================================================================
+//function : ~
+//purpose  : 
+//=======================================================================
+  NMTDS_InterfPool::~NMTDS_InterfPool()
+{
+}
+//=======================================================================
+//function : Add
+//purpose  : 
+//=======================================================================
+  Standard_Boolean NMTDS_InterfPool::Add (const NMTDS_PassKeyBoolean& aPKB,
+                                         const NMTDS_InterfType aType)
+{
+  Standard_Boolean bRet;
+  Standard_Integer iType;
+  //
+  bRet=Standard_False;
+  //
+  iType=TypeToInteger(aType);
+  if (iType>-1 && iType<myMaxInd) {
+    bRet=myTable[iType].Add(aPKB);
+  }
+  return bRet;
+}
+//=======================================================================
+//function : Add
+//purpose  : 
+//=======================================================================
+  Standard_Boolean NMTDS_InterfPool::Add (const Standard_Integer aInd1,
+                                         const Standard_Integer aInd2,
+                                         const NMTDS_InterfType aType)
+{
+  NMTDS_PassKeyBoolean aPKB;
+  //
+  aPKB.SetIds(aInd1, aInd2);
+  return Add(aPKB, aType);
+}
+//=======================================================================
+//function : Add
+//purpose  : 
+//=======================================================================
+  Standard_Boolean NMTDS_InterfPool::Add (const Standard_Integer aInd1,
+                                         const Standard_Integer aInd2,
+                                         const Standard_Boolean bFlag,
+                                         const NMTDS_InterfType aType)
+{
+  NMTDS_PassKeyBoolean aPKB;
+  //
+  aPKB.SetIds(aInd1, aInd2);
+  aPKB.SetFlag(bFlag);
+  return Add(aPKB, aType);
+}
+//=======================================================================
+//function : Contains 
+//purpose  : 
+//=======================================================================
+  Standard_Boolean NMTDS_InterfPool::Contains(const NMTDS_PassKeyBoolean& aPKB)const
+{
+  Standard_Boolean bRet;
+  Standard_Integer i;
+  //
+  for (i=0; i<myMaxInd; ++i) {
+    bRet=myTable[i].Contains(aPKB);
+    if (bRet) {
+      break;
+    }
+  }
+  return bRet;
+}
+//=======================================================================
+//function : Contains 
+//purpose  : 
+//=======================================================================
+  Standard_Boolean NMTDS_InterfPool::Contains(const Standard_Integer aInd1,
+                                             const Standard_Integer aInd2)const
+{
+  NMTDS_PassKeyBoolean aPKB;
+  //
+  aPKB.SetIds(aInd1, aInd2);
+  return Contains(aPKB);
+}
+//=======================================================================
+//function :  Get
+//purpose  : 
+//=======================================================================
+  const NMTDS_ListOfPassKeyBoolean& NMTDS_InterfPool::Get()const
+{
+  Standard_Integer i;
+  NMTDS_ListOfPassKeyBoolean* pL;
+  //
+  pL=(NMTDS_ListOfPassKeyBoolean*)&myList;
+  pL->Clear();
+  //
+  for (i=0; i<myMaxInd; ++i) {
+    NMTDS_MapIteratorOfMapOfPassKeyBoolean aIt;
+    //
+    aIt.Initialize(myTable[i]);
+    for(; aIt.More(); aIt.Next()) {
+      const NMTDS_PassKeyBoolean& aPKB=aIt.Key();
+      pL->Append(aPKB);
+    }
+  }
+  return myList;
+}
+//=======================================================================
+//function :  Get
+//purpose  : 
+//=======================================================================
+  const NMTDS_ListOfPassKeyBoolean& NMTDS_InterfPool::Get(const Standard_Integer aInd)const
+{
+  Standard_Integer i, n1, n2;
+  NMTDS_ListOfPassKeyBoolean* pL;
+  //
+  pL=(NMTDS_ListOfPassKeyBoolean*)&myList;
+  pL->Clear();
+  //
+  for (i=0; i<myMaxInd; ++i) {
+    NMTDS_MapIteratorOfMapOfPassKeyBoolean aIt;
+    //
+    aIt.Initialize(myTable[i]);
+    for(; aIt.More(); aIt.Next()) {
+      const NMTDS_PassKeyBoolean& aPKB=aIt.Key();
+      aPKB.Ids(n1, n2);
+      if(n1==aInd || n2==aInd) {
+       pL->Append(aPKB);
+      }
+    }
+  }
+  return myList;
+}
+//=======================================================================
+//function :  Get
+//purpose  : 
+//=======================================================================
+  const NMTDS_ListOfPassKeyBoolean& NMTDS_InterfPool::Get(const NMTDS_InterfType aType)const
+{
+  Standard_Integer iType;
+  NMTDS_ListOfPassKeyBoolean* pL;
+  //
+  pL=(NMTDS_ListOfPassKeyBoolean*)&myList;
+  pL->Clear();
+  //
+  iType=TypeToInteger(aType);
+  if (iType>-1 && iType<myMaxInd) {
+    NMTDS_MapIteratorOfMapOfPassKeyBoolean aIt;
+    //
+    aIt.Initialize(myTable[iType]);
+    for(; aIt.More(); aIt.Next()) {
+      const NMTDS_PassKeyBoolean& aPKB=aIt.Key();
+      pL->Append(aPKB);
+    }
+  }
+  return myList;
+}
+//=======================================================================
+//function :  Get
+//purpose  : 
+//=======================================================================
+  const NMTDS_ListOfPassKeyBoolean& NMTDS_InterfPool::Get(const Standard_Integer aInd,
+                                                         const NMTDS_InterfType aType)const
+{
+  Standard_Integer n1, n2;
+  NMTDS_ListOfPassKeyBoolean *pL, aLPKB;
+  NMTDS_ListIteratorOfListOfPassKeyBoolean aIt;
+  //
+  aLPKB=Get(aType);
+  //
+  pL=(NMTDS_ListOfPassKeyBoolean*)&myList;
+  pL->Clear();
+  //
+  aIt.Initialize (aLPKB);
+  for (; aIt.More(); aIt.Next()) {
+    const NMTDS_PassKeyBoolean& aPKB=aIt.Value();
+    aPKB.Ids(n1, n2);
+    if(n1==aInd || n2==aInd) {
+      pL->Append(aPKB);
+    }
+  }
+  return myList;
+}
+////////////////////
+//===========================================================================
+//function : SSInterferences
+//purpose  : 
+//===========================================================================
+  BOPTools_CArray1OfSSInterference&  NMTDS_InterfPool::SSInterferences()
+{
+  return mySSInterferences;
+}
+//===========================================================================
+//function : ESInterferences
+//purpose  : 
+//===========================================================================
+  BOPTools_CArray1OfESInterference&  NMTDS_InterfPool::ESInterferences()
+{
+  return myESInterferences;
+}
+//===========================================================================
+//function : VSInterferences
+//purpose  : 
+//===========================================================================
+  BOPTools_CArray1OfVSInterference&  NMTDS_InterfPool::VSInterferences()
+{
+  return myVSInterferences;
+}
+//===========================================================================
+//function : EEInterferences
+//purpose  : 
+//===========================================================================
+  BOPTools_CArray1OfEEInterference&  NMTDS_InterfPool::EEInterferences()
+{
+  return myEEInterferences;
+}
+//===========================================================================
+//function : VEInterferences
+//purpose  : 
+//===========================================================================
+  BOPTools_CArray1OfVEInterference&  NMTDS_InterfPool::VEInterferences()
+{
+  return myVEInterferences;
+}
+//===========================================================================
+//function : VVInterferences
+//purpose  : 
+//===========================================================================
+  BOPTools_CArray1OfVVInterference&  NMTDS_InterfPool::VVInterferences()
+{
+  return myVVInterferences;
+}
+////////////////////
+//=======================================================================
+//function : TypeToInteger
+//purpose  : 
+//=======================================================================
+Standard_Integer TypeToInteger(const NMTDS_InterfType aType)
+{
+  return (Standard_Integer)aType;
+}
diff --git a/src/NMTDS/NMTDS_InterfPool.hxx b/src/NMTDS/NMTDS_InterfPool.hxx
new file mode 100644 (file)
index 0000000..f0bfd21
--- /dev/null
@@ -0,0 +1,191 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_InterfPool_HeaderFile
+#define _NMTDS_InterfPool_HeaderFile
+
+#ifndef _NMTDS_MapOfPassKeyBoolean_HeaderFile
+#include <NMTDS_MapOfPassKeyBoolean.hxx>
+#endif
+#ifndef _NMTDS_ListOfPassKeyBoolean_HeaderFile
+#include <NMTDS_ListOfPassKeyBoolean.hxx>
+#endif
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfSSInterference_HeaderFile
+#include <BOPTools_CArray1OfSSInterference.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfESInterference_HeaderFile
+#include <BOPTools_CArray1OfESInterference.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfVSInterference_HeaderFile
+#include <BOPTools_CArray1OfVSInterference.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfEEInterference_HeaderFile
+#include <BOPTools_CArray1OfEEInterference.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfVEInterference_HeaderFile
+#include <BOPTools_CArray1OfVEInterference.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfVVInterference_HeaderFile
+#include <BOPTools_CArray1OfVVInterference.hxx>
+#endif
+#ifndef _Standard_Boolean_HeaderFile
+#include <Standard_Boolean.hxx>
+#endif
+#ifndef _NMTDS_InterfType_HeaderFile
+#include <NMTDS_InterfType.hxx>
+#endif
+class NMTDS_PassKeyBoolean;
+class NMTDS_ListOfPassKeyBoolean;
+class BOPTools_CArray1OfSSInterference;
+class BOPTools_CArray1OfESInterference;
+class BOPTools_CArray1OfVSInterference;
+class BOPTools_CArray1OfEEInterference;
+class BOPTools_CArray1OfVEInterference;
+class BOPTools_CArray1OfVVInterference;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTDS_InterfPool  {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+
+Standard_EXPORT NMTDS_InterfPool();
+Standard_EXPORT virtual ~NMTDS_InterfPool();
+
+
+Standard_EXPORT   Standard_Boolean Add(const NMTDS_PassKeyBoolean& aPKB,const NMTDS_InterfType aType) ;
+
+
+Standard_EXPORT   Standard_Boolean Add(const Standard_Integer aInd1,const Standard_Integer aInd2,const NMTDS_InterfType aType) ;
+
+
+Standard_EXPORT   Standard_Boolean Add(const Standard_Integer aInd1,const Standard_Integer aInd2,const Standard_Boolean bFlag,const NMTDS_InterfType aType) ;
+
+
+Standard_EXPORT   Standard_Boolean Contains(const NMTDS_PassKeyBoolean& aPKB) const;
+
+
+Standard_EXPORT   Standard_Boolean Contains(const Standard_Integer aInd1,const Standard_Integer aInd2) const;
+
+
+Standard_EXPORT  const NMTDS_ListOfPassKeyBoolean& Get() const;
+
+
+Standard_EXPORT  const NMTDS_ListOfPassKeyBoolean& Get(const NMTDS_InterfType aType) const;
+
+
+Standard_EXPORT  const NMTDS_ListOfPassKeyBoolean& Get(const Standard_Integer aInd) const;
+
+
+Standard_EXPORT  const NMTDS_ListOfPassKeyBoolean& Get(const Standard_Integer aInd,const NMTDS_InterfType aType) const;
+
+
+//! Returns the reference to array Of F/F interferences <br>
+Standard_EXPORT   BOPTools_CArray1OfSSInterference& SSInterferences() ;
+
+
+//! Returns the reference to array Of E/F interferences <br>
+Standard_EXPORT   BOPTools_CArray1OfESInterference& ESInterferences() ;
+
+
+//! Returns the reference to array Of V/F interferences <br>
+Standard_EXPORT   BOPTools_CArray1OfVSInterference& VSInterferences() ;
+
+
+//! Returns the reference to arrray Of E/E interferences <br>
+Standard_EXPORT   BOPTools_CArray1OfEEInterference& EEInterferences() ;
+
+
+//! Returns the reference to arrray Of  V/E interferences <br>
+Standard_EXPORT   BOPTools_CArray1OfVEInterference& VEInterferences() ;
+
+
+//! Returns the reference to arrray Of  V/V interferences <br>
+Standard_EXPORT   BOPTools_CArray1OfVVInterference& VVInterferences() ;
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ // 
+
+
+ // Fields PROTECTED
+ //
+NMTDS_MapOfPassKeyBoolean myTable[6];
+NMTDS_ListOfPassKeyBoolean myList;
+Standard_Integer myMaxInd;
+BOPTools_CArray1OfSSInterference mySSInterferences;
+BOPTools_CArray1OfESInterference myESInterferences;
+BOPTools_CArray1OfVSInterference myVSInterferences;
+BOPTools_CArray1OfEEInterference myEEInterferences;
+BOPTools_CArray1OfVEInterference myVEInterferences;
+BOPTools_CArray1OfVVInterference myVVInterferences;
+
+
+private: 
+
+ // Methods PRIVATE
+ // 
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
diff --git a/src/NMTDS/NMTDS_InterfPool.ixx b/src/NMTDS/NMTDS_InterfPool.ixx
new file mode 100644 (file)
index 0000000..c608b68
--- /dev/null
@@ -0,0 +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
+
+#include <NMTDS_InterfPool.jxx>
+
+
+
diff --git a/src/NMTDS/NMTDS_InterfPool.jxx b/src/NMTDS/NMTDS_InterfPool.jxx
new file mode 100644 (file)
index 0000000..f12d529
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_PassKeyBoolean_HeaderFile
+#include <NMTDS_PassKeyBoolean.hxx>
+#endif
+#ifndef _NMTDS_ListOfPassKeyBoolean_HeaderFile
+#include <NMTDS_ListOfPassKeyBoolean.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfSSInterference_HeaderFile
+#include <BOPTools_CArray1OfSSInterference.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfESInterference_HeaderFile
+#include <BOPTools_CArray1OfESInterference.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfVSInterference_HeaderFile
+#include <BOPTools_CArray1OfVSInterference.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfEEInterference_HeaderFile
+#include <BOPTools_CArray1OfEEInterference.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfVEInterference_HeaderFile
+#include <BOPTools_CArray1OfVEInterference.hxx>
+#endif
+#ifndef _BOPTools_CArray1OfVVInterference_HeaderFile
+#include <BOPTools_CArray1OfVVInterference.hxx>
+#endif
+#ifndef _NMTDS_InterfPool_HeaderFile
+#include <NMTDS_InterfPool.hxx>
+#endif
diff --git a/src/NMTDS/NMTDS_InterfType.hxx b/src/NMTDS/NMTDS_InterfType.hxx
new file mode 100644 (file)
index 0000000..d32f983
--- /dev/null
@@ -0,0 +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.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_InterfType_HeaderFile
+#define _NMTDS_InterfType_HeaderFile
+
+
+enum NMTDS_InterfType { 
+ NMTDS_TI_VV,
+NMTDS_TI_VE,
+NMTDS_TI_VF,
+NMTDS_TI_EE,
+NMTDS_TI_EF,
+NMTDS_TI_FF,
+NMTDS_TI_UNKNOWN
+};
+
+
+#ifndef _Standard_PrimitiveTypes_HeaderFile
+#include <Standard_PrimitiveTypes.hxx>
+#endif
+
+#endif
index 05a026a73deee24dd884419b8af042855a47452f..d73a1d5d31a581f20e8e2e01b75355812ebd85e6 100755 (executable)
@@ -24,7 +24,7 @@
 
 
 class Iterator from NMTDS 
-
+     
        ---Purpose: 
 
 uses  
@@ -33,7 +33,9 @@ uses
     ShapesDataStructure  from NMTDS,
     PShapesDataStructure from NMTDS,
     ListOfPassKeyBoolean from NMTDS,
-    ListIteratorOfListOfPassKeyBoolean from NMTDS
+    ListIteratorOfListOfPassKeyBoolean from NMTDS,
+    PassKeyBoolean from NMTDS 
+    
 --raises
 
 is 
@@ -61,18 +63,28 @@ is
                aIndex2:out Integer from Standard;
                aWithSubShape: out Boolean from Standard); 
        
-    Prepare(me:out); 
-     
+    Prepare(me:out) 
+       is virtual; 
+      
+    Intersect(me:out) 
+       is virtual protected; 
+       
     ExpectedLength(me) 
        returns Integer from Standard;  
         
+    BlockLength(me) 
+       returns Integer from Standard;  
+     
     SDVertices(me) 
        returns DataMapOfIntegerListOfInteger from TColStd; 
-    ---C++:return const & 
-
+    ---C++:return const &  
+     
+    FillMVSD(myclass; 
+       aMVSD1:DataMapOfIntegerListOfInteger from TColStd; 
+       aMVSD2:out DataMapOfIntegerListOfInteger from TColStd); 
  
 fields
-    myPDS      :PShapesDataStructure from NMTDS     is protected; 
+    myDS       :PShapesDataStructure from NMTDS     is protected; 
     myLists    :ListOfPassKeyBoolean from NMTDS [6] is protected;  
     myIterator :ListIteratorOfListOfPassKeyBoolean from NMTDS is protected; 
     myEmptyList:ListOfPassKeyBoolean from NMTDS is protected; 
index d186736c06789c715c33fc4c1bad3a310a2daca2..8e894d6d4121542f1381c4d3e8f183d03f624b3f 100755 (executable)
@@ -1,18 +1,17 @@
-// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// 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
+// License as published by the Free Software Foundation; either 
 // version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
 // Lesser General Public License for more details.
 //
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
 // 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 <NMTDS_Iterator.ixx>
-#include <NMTDS_CArray1OfIndexRange.hxx>
-#include <NMTDS_IndexRange.hxx>
+//
 #include <Bnd_Box.hxx>
-#include <TopoDS_Shape.hxx>
+//
 #include <TColStd_ListOfInteger.hxx>
-#include <TColStd_Array1OfListOfInteger.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
 #include <TColStd_MapOfInteger.hxx>
 #include <TColStd_MapIteratorOfMapOfInteger.hxx>
-#include <NMTDS_PassKeyBoolean.hxx>
-#include <NMTDS_MapOfPassKeyBoolean.hxx>
-#include <NMTDS_IndexedDataMapOfShapeBox.hxx>
-#include <NMTDS_IndexedDataMapOfIntegerShape.hxx>
-#include <Bnd_HArray1OfBox.hxx>
-#include <Bnd_BoundSortBox.hxx>
-#include <TColStd_ListOfInteger.hxx>
 #include <TColStd_DataMapOfIntegerInteger.hxx>
-#include <TopTools_DataMapOfShapeInteger.hxx>
 #include <TColStd_DataMapOfIntegerListOfInteger.hxx>
-#include <TColStd_DataMapIteratorOfDataMapOfIntegerInteger.hxx>
 #include <TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger.hxx>
 #include <TColStd_MapOfInteger.hxx>
-
+//
+#include <TopoDS.hxx>
+#include <TopoDS_Vertex.hxx>
+#include <TopoDS_Shape.hxx>
+//
+#include <TopTools_DataMapOfShapeInteger.hxx>
+//
 #include <NMTDS_BoxBndTree.hxx>
 #include <NCollection_UBTreeFiller.hxx>
-
-static 
-  void ComputeBoxEx(const Standard_Integer aIx,
-                   NMTDS_ShapesDataStructure* pDS,
-                   Bnd_Box& aBoxEx);
-
-static inline
-  Standard_Boolean IsValidType(const TopAbs_ShapeEnum aT);
-
-static
-  Standard_Integer TypeToInteger(const TopAbs_ShapeEnum aType1,
-                                const TopAbs_ShapeEnum aType2);
-
+#include <NMTDS_CArray1OfIndexRange.hxx>
+#include <NMTDS_IndexRange.hxx>
+#include <NMTDS_PassKeyBoolean.hxx>
+#include <NMTDS_MapOfPassKeyBoolean.hxx>
+#include <NMTDS_IndexedDataMapOfShapeBox.hxx>
+#include <NMTDS_IndexedDataMapOfIntegerShape.hxx>
+#include <NMTDS_Tools.hxx>
+#include <NMTDS_DataMapOfIntegerMapOfInteger.hxx>
+#include <NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx>
 
 //=======================================================================
 //function : NMTDS_Iterator
@@ -69,7 +59,7 @@ static
 //=======================================================================
   NMTDS_Iterator::NMTDS_Iterator()
 {
-  myPDS=NULL; 
+  myDS=NULL; 
   myLength=0;
 }
 //=======================================================================
@@ -85,7 +75,7 @@ static
 //=======================================================================
   void NMTDS_Iterator::SetDS(const NMTDS_PShapesDataStructure& aDS)
 {
-  myPDS=aDS;
+  myDS=aDS;
 }
 //=======================================================================
 // function: DS
@@ -93,7 +83,7 @@ static
 //=======================================================================
   const NMTDS_ShapesDataStructure&  NMTDS_Iterator::DS()const
 {
-  return *myPDS;
+  return *myDS;
 }
 //=======================================================================
 // function: ExpectedLength
@@ -104,6 +94,24 @@ static
   return myLength;
 }
 //=======================================================================
+// function: BlockLength
+// purpose: 
+//=======================================================================
+  Standard_Integer NMTDS_Iterator::BlockLength() const
+{
+  Standard_Integer aNbIIs;
+  Standard_Real aCfPredict=.5;
+  
+  aNbIIs=ExpectedLength();
+  
+  if (aNbIIs<=1) {
+    return 1;
+  }
+  //
+  aNbIIs=(Standard_Integer) (aCfPredict*(Standard_Real)aNbIIs);
+  return aNbIIs;
+}
+//=======================================================================
 // function: Initialize
 // purpose: 
 //=======================================================================
@@ -112,7 +120,7 @@ static
 {
   Standard_Integer iX;
   //
-  iX=TypeToInteger(aType1, aType2);
+  iX=NMTDS_Tools::TypeToInteger(aType1, aType2);
   if (iX>=0) {
     myIterator.Initialize(myLists[iX]);
     myLength=myLists[iX].Extent();
@@ -158,52 +166,62 @@ static
 {
   return myMVSD;
 }
-
 //=======================================================================
 // function: Prepare
 // purpose: 
 //=======================================================================
   void NMTDS_Iterator::Prepare()
+{
+  Standard_Integer i;
+  //
+  myLength=0;
+  for (i=0; i<6; ++i) {
+    myLists[i].Clear();
+  }
+  myMVSD.Clear();
+  //
+  if (myDS==NULL){
+    return;
+  }
+  Intersect();
+}
+//=======================================================================
+// function: Intersect
+// purpose: 
+//=======================================================================
+  void NMTDS_Iterator::Intersect()
 {
   Standard_Boolean bFlag;
-  Standard_Integer aNb, i, aNbB, aNbR;
+  Standard_Integer aNb, i, aNbB, aNbR, iFlag;
   Standard_Integer i1, i2, aNbSD, iX, j, iDS, jB, iR, k, aNbLV;
   TColStd_ListIteratorOfListOfInteger aIt;
   TColStd_DataMapOfIntegerInteger aMII;
-  TColStd_MapOfInteger aMFence;
+  //modified by NIZNHY-PKV Mon Jan 22 15:08:00 2007f
+  //TColStd_MapOfInteger aMFence;
+  TColStd_DataMapOfIntegerListOfInteger aMVSD;
+  TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger aItVSD;
+  //modified by NIZNHY-PKV Mon Jan 22 10:21:50 2007t
   TopTools_DataMapOfShapeInteger aMSI;
   TopAbs_ShapeEnum aTi, aTj;
   NMTDS_PassKeyBoolean aPKXB; 
   NMTDS_MapOfPassKeyBoolean aMPKXB;
   NMTDS_IndexedDataMapOfShapeBox aMSB;
-  Handle(Bnd_HArray1OfBox) aHAB;
-  Bnd_BoundSortBox aBSB;
   //
   NMTDS_BoxBndTreeSelector aSelector;
   NMTDS_BoxBndTree aBBTree;
   NCollection_UBTreeFiller <Standard_Integer, Bnd_Box> aTreeFiller(aBBTree);
   //
-  if (myPDS==NULL){
-    return;
-  }
-  //
-  myLength=0;
-  for (i=0; i<6; ++i) {
-    myLists[i].Clear();
-  }
-  myMVSD.Clear();
-  //
-  const NMTDS_CArray1OfIndexRange& aRanges=myPDS->Ranges();
+  const NMTDS_CArray1OfIndexRange& aRanges=myDS->Ranges();
   aNbR=aRanges.Extent();
   //
-  aNb=myPDS->NumberOfShapesOfTheObject();
+  aNb=myDS->NumberOfShapesOfTheObject();
   for (i=1; i<=aNb; ++i) {
-    const TopoDS_Shape& aS=myPDS->Shape(i);
+    const TopoDS_Shape& aS=myDS->Shape(i);
     aTi=aS.ShapeType();
-    if (IsValidType(aTi)) {
+    if (NMTDS_Tools::HasBRep(aTi)) {
       Bnd_Box aBoxEx;
       //
-      ComputeBoxEx(i, myPDS, aBoxEx);
+      myDS->ComputeBoxEx(i, aBoxEx);
       aMSI.Bind(aS, i);
       aMSB.Add(aS, aBoxEx);
     }
@@ -228,9 +246,9 @@ static
     i1=aR.First();
     i2=aR.Last();
     for (i=i1; i<=i2; ++i) {
-      const TopoDS_Shape& aSi=myPDS->Shape(i);
+      const TopoDS_Shape& aSi=myDS->Shape(i);
       aTi=aSi.ShapeType();
-      if (!IsValidType(aTi)){
+      if (!NMTDS_Tools::HasBRep(aTi)){
        continue;
       }
       const Bnd_Box& aBoxEx=aMSB.FindFromKey(aSi);
@@ -257,25 +275,24 @@ static
        }
        //
        aPKXB.SetIds(i, j);
+       //
        if (aMPKXB.Add(aPKXB)) {
          bFlag=Standard_False;// Bounding boxes are intersected
-         const Bnd_Box& aBoxi=myPDS->GetBoundingBox(i);
-         const Bnd_Box& aBoxj=myPDS->GetBoundingBox(j);
+         const Bnd_Box& aBoxi=myDS->GetBoundingBox(i);
+         const Bnd_Box& aBoxj=myDS->GetBoundingBox(j);
          if (aBoxi.IsOut(aBoxj)) {
            bFlag=!bFlag; //Bounding boxes of Sub-shapes are intersected
          }
-         const TopoDS_Shape& aSj=myPDS->Shape(j);
+         const TopoDS_Shape& aSj=myDS->Shape(j);
          aTj=aSj.ShapeType();
-         iX=TypeToInteger(aTi, aTj);
-         
+         iX=NMTDS_Tools::TypeToInteger(aTi, aTj);
+         //bFlag=(iStatus==2);
          aPKXB.SetFlag(bFlag);
          myLists[iX].Append(aPKXB);
          //
          // VSD prepare
          if (iX==5) { //VV
-           if (aMFence.Add(j)) {
-             aLV.Append(j);
-           }
+           aLV.Append(j);
          }
        }// if (aMPKXB.Add(aPKXB)) {
       }// for (; aIt.More(); aIt.Next()) {
@@ -283,112 +300,154 @@ static
       // VSD treatment
       aNbLV=aLV.Extent();
       if (aNbLV) {
-       myMVSD.Bind(i, aLV);
+       TColStd_ListOfInteger aLV1;
+       //
+       const TopoDS_Vertex& aVi=TopoDS::Vertex(aSi);
+       aIt.Initialize(aLV);
+       for (; aIt.More(); aIt.Next()) {
+         j=aIt.Value();  
+         const TopoDS_Shape&  aSj=myDS->Shape(j);
+         const TopoDS_Vertex& aVj=TopoDS::Vertex(aSj);
+         iFlag=NMTDS_Tools::ComputeVV(aVi, aVj);
+         if (!iFlag) {
+           aLV1.Append(j);
+         }
+         else {
+           aPKXB.SetIds(i, j);
+           aMPKXB.Remove(aPKXB);
+         }
+       }
+       aMVSD.Bind(i, aLV1);
       }
     }//for (i=i1; i<=i2; ++i) {
   }//for (iR=1; iR<aNbR; ++iR) {
-}
-
-//=======================================================================
-// function: IsValidType
-// purpose: 
-//=======================================================================
-Standard_Boolean IsValidType(const TopAbs_ShapeEnum aTi)
-{
-  return (aTi==TopAbs_VERTEX || aTi==TopAbs_EDGE || aTi==TopAbs_FACE);
-}
-//=======================================================================
-// function: ComputeBoxEx
-// purpose: 
-//=======================================================================
-  void ComputeBoxEx(const Standard_Integer aIx,
-                   NMTDS_ShapesDataStructure* pDS,
-                   Bnd_Box& aBoxEx)
-{
-  Standard_Integer i, aNbS, iS;
   //
-  const Bnd_Box& aBox=pDS->GetBoundingBox(aIx);
-  aBoxEx.Add(aBox);
   //
-  aNbS=pDS->NumberOfSuccessors(aIx);
-  for (i=1; i<=aNbS; ++i) {
-    Bnd_Box aBoxS;
-    iS=pDS->GetSuccessor(aIx, i);
-    ComputeBoxEx(iS, pDS, aBoxS);
-    aBoxEx.Add(aBoxS);
-  }
+  // Chains
+  //=================
+  myMVSD.Clear();
+  NMTDS_Iterator::FillMVSD(aMVSD, myMVSD);
 }
-
 //=======================================================================
-// function: TypeToInteger
-// purpose
+//function : FillMVSD
+//purpose  
 //=======================================================================
-Standard_Integer TypeToInteger(const TopAbs_ShapeEnum aType1,
-                              const TopAbs_ShapeEnum aType2)
+  void NMTDS_Iterator::FillMVSD(const TColStd_DataMapOfIntegerListOfInteger& aMVSD,
+                               TColStd_DataMapOfIntegerListOfInteger& bMVSD)
 {
-  Standard_Integer iRet, iT1, iT2, iX;
-  //
-  iRet=-1;
-  iT1=(Standard_Integer)aType1;
-  iT2=(Standard_Integer)aType2;
+  Standard_Boolean bFound;
+  Standard_Integer aNbVSD, iCnt, i, j, k;
+  TColStd_ListOfInteger aLV;
+  TColStd_ListIteratorOfListOfInteger aIt;
+  TColStd_MapOfInteger aMF;
+  TColStd_MapIteratorOfMapOfInteger aItMI;
+  TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger aItVSD;
+  NMTDS_DataMapOfIntegerMapOfInteger aDMIMI;
+  NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger aIti, aItj;
   //
-  iX=iT2*10+iT1;
-  switch (iX) {
-    case 77:
-      iRet=5; // VV
-      break;
-    case 76:
-    case 67:
-      iRet=4; // VE
-      break;
-    case 74:
-    case 47:
-      iRet=2; // VF
-      break;
-    case 66:
-      iRet=3; // EE
-      break;
-    case 64:
-    case 46:
-      iRet=1; // EF
-      break;
-    case 44:
-      iRet=0; // FF
-      break;
-    default:
-      break;
+  aNbVSD=aMVSD.Extent();
+  if (!aNbVSD) {
+    return;
   }
-  return iRet; 
-}
-
-/*
-//
-  // check
-  TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger aIt1;
-  TColStd_DataMapIteratorOfDataMapOfIntegerInteger aIt2;
   //
-  printf(" \n");
-  printf(" aMVLV.Extent()=%d\n", aMVLV.Extent());
-  aIt1.Initialize(aMVLV);
-  for (; aIt1.More(); aIt1.Next()) {
-    i=aIt1.Key();
-    printf(" i=%d (", i);
-    const TColStd_ListOfInteger& aLV=aIt1.Value();
-    aIt.Initialize(aLV);
+  aItVSD.Initialize(aMVSD);
+  for (; aItVSD.More(); aItVSD.Next()) {
+    TColStd_MapOfInteger aMI;
+    //
+    i=aItVSD.Key();
+    aMI.Add(i);
+    const TColStd_ListOfInteger& aLVSD=aItVSD.Value();
+    aIt.Initialize(aLVSD);
     for (; aIt.More(); aIt.Next()) {
       j=aIt.Value();
-      printf(" %d", j);
+      aMI.Add(j);
     }
-    printf(")\n");
+    aDMIMI.Bind(i, aMI);
   }
-  //
-  printf(" \n");
-  printf(" aMVV.Extent()=%d\n", aMVV.Extent());
-  aIt2.Initialize(aMVV);
-  for (; aIt2.More(); aIt2.Next()) {
-    i=aIt2.Key();
-    j=aIt2.Value();
-    printf(" (%d, %d)\n", i, j);
+  // i
+  aIti.Initialize(aDMIMI);
+  for (; aIti.More(); aIti.Next()) {
+    i=aIti.Key();
+    if (aMF.Contains(i)) {
+      continue;
+    }
+    aMF.Add(i);
+    //
+    //TColStd_MapOfInteger& aMIi=aDMIMI.ChangeFind(i);
+    TColStd_MapOfInteger *pMIi=(TColStd_MapOfInteger *)&aIti.Value();
+    TColStd_MapOfInteger& aMIi=*pMIi;
+    //  j
+    while (1) {
+      iCnt=0;
+      aItj.Initialize(aDMIMI);
+      for (; aItj.More(); aItj.Next()) {
+       j=aItj.Key();
+       if (aMF.Contains(j)) {
+         continue;
+       }
+       //
+       //TColStd_MapOfInteger& aMIj=aDMIMI.ChangeFind(j);
+       TColStd_MapOfInteger *pMj=(TColStd_MapOfInteger *)&aItj.Value();
+       TColStd_MapOfInteger& aMIj=*pMj;
+       //
+       aItMI.Initialize(aMIj);
+       for (; aItMI.More(); aItMI.Next()) {
+         k=aItMI.Key();
+         bFound=aMIi.Contains(k);
+         if (bFound) {
+           break;
+         }
+       }
+       if (!bFound) {
+         continue;
+       }
+       //
+       aItMI.Initialize(aMIj);
+       for (; aItMI.More(); aItMI.Next()) {
+         k=aItMI.Key();
+         aMIi.Add(k);
+       }
+       //
+       if (aMF.Add(j)) {
+         ++iCnt;
+       }
+      } //for (; aItj.More(); aItj.Next()) {
+      if (!iCnt) {
+       break;
+      }
+    } // while (1) {
+    //
+    aLV.Clear();
+    aItMI.Initialize(aMIi);
+    for (; aItMI.More(); aItMI.Next()) {
+      k=aItMI.Key();
+       if (k!=i) {
+         aLV.Append(k);
+       }
+    }
+    bMVSD.Bind(i, aLV);
+  }// for (; aIti.More(); aIti.Next()) {
+}
+
+  /*  
+  {
+    // check
+    TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger aItX;
+    //
+    printf(" \n");
+    printf(" myMVSD.Extent()=%d\n", myMVSD.Extent());
+    aItX.Initialize(myMVSD);
+    for (; aItX.More(); aItX.Next()) {
+      i=aItX.Key();
+      printf(" i=%d (", i);
+      const TColStd_ListOfInteger& aLV=aItX.Value();
+      aIt.Initialize(aLV);
+      for (; aIt.More(); aIt.Next()) {
+       j=aIt.Value();
+       printf(" %d", j);
+      }
+      printf(")\n");
+    }
   }
-  printf("\n");
 */
+
index d2d260ccd0a6790cc709352571ed71792fb557e3..25ae15ec0fd2313c313483daa05dd622bd77f0b1 100644 (file)
@@ -95,15 +95,21 @@ Standard_EXPORT   void Next() ;
 Standard_EXPORT   void Current(Standard_Integer& aIndex1,Standard_Integer& aIndex2,Standard_Boolean& aWithSubShape) const;
 
 
-Standard_EXPORT   void Prepare() ;
+Standard_EXPORT virtual  void Prepare() ;
 
 
 Standard_EXPORT   Standard_Integer ExpectedLength() const;
 
 
+Standard_EXPORT   Standard_Integer BlockLength() const;
+
+
 Standard_EXPORT  const TColStd_DataMapOfIntegerListOfInteger& SDVertices() const;
 
 
+Standard_EXPORT static  void FillMVSD(const TColStd_DataMapOfIntegerListOfInteger& aMVSD1,TColStd_DataMapOfIntegerListOfInteger& aMVSD2) ;
+
+
 
 
 
@@ -113,9 +119,12 @@ protected:
  // 
 
 
+Standard_EXPORT virtual  void Intersect() ;
+
+
  // Fields PROTECTED
  //
-NMTDS_PShapesDataStructure myPDS;
+NMTDS_PShapesDataStructure myDS;
 NMTDS_ListOfPassKeyBoolean myLists[6];
 NMTDS_ListIteratorOfListOfPassKeyBoolean myIterator;
 NMTDS_ListOfPassKeyBoolean myEmptyList;
diff --git a/src/NMTDS/NMTDS_IteratorCheckerSI.cdl b/src/NMTDS/NMTDS_IteratorCheckerSI.cdl
new file mode 100644 (file)
index 0000000..c7f7650
--- /dev/null
@@ -0,0 +1,41 @@
+-- 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.
+--
+-- You should have received a copy of the GNU Lesser General Public  
+-- License along with this library; if not, write to the Free Software 
+-- Foundation, 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
+
+
+class IteratorCheckerSI from NMTDS  
+    inherits Iterator from NMTDS
+
+       ---Purpose: 
+
+--uses 
+--raises
+
+is 
+    Create   
+       returns IteratorCheckerSI from NMTDS;
+    ---C++: alias "Standard_EXPORT virtual ~NMTDS_IteratorCheckerSI();" 
+     
+    Intersect(me:out) 
+       is redefined protected;  
+--fields
+end IteratorCheckerSI;
diff --git a/src/NMTDS/NMTDS_IteratorCheckerSI.cxx b/src/NMTDS/NMTDS_IteratorCheckerSI.cxx
new file mode 100644 (file)
index 0000000..da2290b
--- /dev/null
@@ -0,0 +1,225 @@
+// 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.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, 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 <NMTDS_IteratorCheckerSI.ixx>
+
+#include <TopAbs_ShapeEnum.hxx>
+#include <gp_Pnt.hxx>
+#include <Bnd_Box.hxx>
+//
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Vertex.hxx>
+#include <TopoDS.hxx>
+#include <BRep_Tool.hxx>
+//
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TColStd_ListOfInteger.hxx>
+#include <TColStd_DataMapOfIntegerInteger.hxx>
+#include <TColStd_ListIteratorOfListOfInteger.hxx>
+#include <TColStd_MapOfInteger.hxx>
+#include <TColStd_MapIteratorOfMapOfInteger.hxx>
+#include <TColStd_DataMapOfIntegerListOfInteger.hxx>
+#include <TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger.hxx>
+//
+#include <TopTools_DataMapOfShapeInteger.hxx>
+//
+#include <NCollection_UBTreeFiller.hxx>
+#include <NMTDS_BoxBndTree.hxx>
+#include <NMTDS_ShapesDataStructure.hxx>
+#include <NMTDS_CArray1OfIndexRange.hxx>
+#include <NMTDS_IndexRange.hxx>
+#include <NMTDS_PassKeyBoolean.hxx>
+#include <NMTDS_MapOfPassKeyBoolean.hxx>
+#include <NMTDS_IndexedDataMapOfShapeBox.hxx>
+#include <NMTDS_Tools.hxx>
+
+//=======================================================================
+//function : 
+//purpose  : 
+//=======================================================================
+  NMTDS_IteratorCheckerSI::NMTDS_IteratorCheckerSI()
+:
+  NMTDS_Iterator()
+{
+}
+//=======================================================================
+//function : ~
+//purpose  : 
+//=======================================================================
+  NMTDS_IteratorCheckerSI::~NMTDS_IteratorCheckerSI()
+{
+}
+//=======================================================================
+// function: Intersect
+// purpose: 
+//=======================================================================
+  void NMTDS_IteratorCheckerSI::Intersect()
+{
+  Standard_Boolean bFlag;
+  Standard_Integer aNbS, i, aNbA, aNbB, iFlag;
+  Standard_Integer aNbSD, iX, j, iDS, jB, k, aNbLV;
+  TColStd_ListIteratorOfListOfInteger aIt;
+  TColStd_DataMapOfIntegerInteger aMII;
+  TColStd_DataMapOfIntegerListOfInteger aMVSD;
+  TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger aItVSD;
+  TopTools_DataMapOfShapeInteger aMSI;
+  TopAbs_ShapeEnum aTi, aTj;
+  NMTDS_PassKeyBoolean aPKXB; 
+  NMTDS_MapOfPassKeyBoolean aMPKXB;
+  NMTDS_IndexedDataMapOfShapeBox aMSB;
+  NMTDS_MapOfPassKeyBoolean aMPA;//myPairsAvoid
+  //
+  NMTDS_BoxBndTreeSelector aSelector;
+  NMTDS_BoxBndTree aBBTree;
+  NCollection_UBTreeFiller <Standard_Integer, Bnd_Box> aTreeFiller(aBBTree);
+  //
+  aNbS=myDS->NumberOfShapesOfTheObject();
+  //
+  // myPairsAvoid, aMSI, aMSB
+  for (i=1; i<=aNbS; ++i) {
+    const TopoDS_Shape& aSi=myDS->Shape(i);
+    aTi=aSi.ShapeType();
+    if (NMTDS_Tools::HasBRep(aTi)) {
+      if (aTi!=TopAbs_VERTEX) {
+       TColStd_IndexedMapOfInteger aMA;
+       //
+       myDS->GetAllSuccessors(i, aMA);
+       //
+       aNbA=aMA.Extent();
+       for (j=1; j<=aNbA; ++j) {
+         iX=aMA(j);
+         aPKXB.Clear();
+         aPKXB.SetIds(i, iX);
+         aMPA.Add(aPKXB);
+       }
+      }
+      else {
+       aPKXB.Clear();
+       aPKXB.SetIds(i, i);
+       aMPA.Add(aPKXB);
+      }
+      //
+      Bnd_Box aBoxEx;
+      //
+      myDS->ComputeBoxEx(i, aBoxEx);
+      aMSI.Bind(aSi, i);
+      aMSB.Add(aSi, aBoxEx);
+    }
+  }
+  // 
+  // aMII
+  aNbB=aMSB.Extent();
+  for (i=1; i<=aNbB; ++i) {
+    const TopoDS_Shape& aS=aMSB.FindKey(i);
+    const Bnd_Box& aBoxEx=aMSB(i);
+    //
+    aTreeFiller.Add(i, aBoxEx);
+    //
+    iDS=aMSI.Find(aS);
+    aMII.Bind(i, iDS);
+  }
+  //
+  aTreeFiller.Fill();
+  //
+  for (i=1; i<=aNbS; ++i) {
+    const TopoDS_Shape& aSi=myDS->Shape(i);
+    aTi=aSi.ShapeType();
+    if (!NMTDS_Tools::HasBRep(aTi)){
+      continue;
+    }
+    const Bnd_Box& aBoxEx=aMSB.FindFromKey(aSi);
+    aSelector.Clear();
+    aSelector.SetBox(aBoxEx);
+    //
+    aNbSD=aBBTree.Select(aSelector);
+    if (!aNbSD){
+      continue;
+    }
+    //
+    const TColStd_ListOfInteger& aLI=aSelector.Indices();
+    //
+    k=0;
+    TColStd_ListOfInteger aLV;
+    //
+    aIt.Initialize(aLI);
+    for (; aIt.More(); aIt.Next()) {
+      jB=aIt.Value();  // box index in MII
+      j=aMII.Find(jB); // DS index
+      //
+      aPKXB.SetIds(i, j);
+      if (aMPA.Contains(aPKXB)) {
+       continue;
+      }
+      //
+      if (aMPKXB.Add(aPKXB)) {
+       bFlag=Standard_False;// Bounding boxes are intersected
+       const Bnd_Box& aBoxi=myDS->GetBoundingBox(i);
+       const Bnd_Box& aBoxj=myDS->GetBoundingBox(j);
+       if (aBoxi.IsOut(aBoxj)) {
+         bFlag=!bFlag; //Bounding boxes of Sub-shapes are intersected
+       }
+       const TopoDS_Shape& aSj=myDS->Shape(j);
+       aTj=aSj.ShapeType();
+       iX=NMTDS_Tools::TypeToInteger(aTi, aTj);
+       //bFlag=(iStatus==2);
+       aPKXB.SetFlag(bFlag);
+       myLists[iX].Append(aPKXB);
+       //
+       // VSD prepare
+       if (iX==5) { //VV
+         aLV.Append(j);
+       }
+      }// if (aMPKXB.Add(aPKXB)) {
+    }// for (; aIt.More(); aIt.Next()) {
+    //
+    // VSD treatment
+    aNbLV=aLV.Extent();
+    if (aNbLV) {
+      TColStd_ListOfInteger aLV1;
+      //
+      const TopoDS_Vertex& aVi=TopoDS::Vertex(aSi);
+      aIt.Initialize(aLV);
+      for (; aIt.More(); aIt.Next()) {
+       j=aIt.Value();  
+       const TopoDS_Shape&  aSj=myDS->Shape(j);
+       const TopoDS_Vertex& aVj=TopoDS::Vertex(aSj);
+       iFlag=NMTDS_Tools::ComputeVV(aVi, aVj);
+       if (!iFlag) {
+         aLV1.Append(j);
+       }
+       else {
+         aPKXB.SetIds(i, j);
+         aMPKXB.Remove(aPKXB);
+       }
+      }        
+      aMVSD.Bind(i, aLV1);
+    }
+  }//for (i=1; i<=aNbS; ++i) {
+  //
+  //
+  // 2. Chains
+  //=================
+  myMVSD.Clear();
+  NMTDS_Iterator::FillMVSD(aMVSD, myMVSD);
+}
+
diff --git a/src/NMTDS/NMTDS_IteratorCheckerSI.hxx b/src/NMTDS/NMTDS_IteratorCheckerSI.hxx
new file mode 100644 (file)
index 0000000..f11a9c1
--- /dev/null
@@ -0,0 +1,96 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_IteratorCheckerSI_HeaderFile
+#define _NMTDS_IteratorCheckerSI_HeaderFile
+
+#ifndef _NMTDS_Iterator_HeaderFile
+#include <NMTDS_Iterator.hxx>
+#endif
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTDS_IteratorCheckerSI  : public NMTDS_Iterator {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+
+Standard_EXPORT NMTDS_IteratorCheckerSI();
+Standard_EXPORT virtual ~NMTDS_IteratorCheckerSI();
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ // 
+
+
+Standard_EXPORT virtual  void Intersect() ;
+
+
+ // Fields PROTECTED
+ //
+
+
+private: 
+
+ // Methods PRIVATE
+ // 
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
diff --git a/src/NMTDS/NMTDS_IteratorCheckerSI.ixx b/src/NMTDS/NMTDS_IteratorCheckerSI.ixx
new file mode 100644 (file)
index 0000000..6346ab5
--- /dev/null
@@ -0,0 +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
+
+#include <NMTDS_IteratorCheckerSI.jxx>
+
+
+
diff --git a/src/NMTDS/NMTDS_IteratorCheckerSI.jxx b/src/NMTDS/NMTDS_IteratorCheckerSI.jxx
new file mode 100644 (file)
index 0000000..dc6afc1
--- /dev/null
@@ -0,0 +1,22 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+#ifndef _NMTDS_IteratorCheckerSI_HeaderFile
+#include <NMTDS_IteratorCheckerSI.hxx>
+#endif
diff --git a/src/NMTDS/NMTDS_PInterfPool.hxx b/src/NMTDS/NMTDS_PInterfPool.hxx
new file mode 100644 (file)
index 0000000..7084ba3
--- /dev/null
@@ -0,0 +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
+
+#ifndef _NMTDS_PInterfPool_HeaderFile
+#define _NMTDS_PInterfPool_HeaderFile
+
+class NMTDS_InterfPool;
+
+typedef NMTDS_InterfPool* NMTDS_PInterfPool;
+
+#endif
diff --git a/src/NMTDS/NMTDS_PIterator.hxx b/src/NMTDS/NMTDS_PIterator.hxx
new file mode 100644 (file)
index 0000000..8cefa5b
--- /dev/null
@@ -0,0 +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
+
+#ifndef _NMTDS_PIterator_HeaderFile
+#define _NMTDS_PIterator_HeaderFile
+
+class NMTDS_Iterator;
+
+typedef NMTDS_Iterator* NMTDS_PIterator;
+
+#endif
index e9a637a46217fac124944f857df57f1d385d8f90..905a8d62af018cfee7fede43578abf4b2d29bbb0 100755 (executable)
@@ -1,4 +1,5 @@
--- Copyright (C) 2006 SAMTECH 
+-- Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 -- 
 -- This library is free software; you can redistribute it and/or
 -- modify it under the terms of the GNU Lesser General Public
 -- License along with this library; if not, write to the Free Software 
 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 --
--- 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:       NMTDS_PassKey.cdl
--- Created:    
+-- Created:    Mon Nov 20 12:16:13 2006
 -- Author:     Peter KURNEV
 --             <pkv@irinox>
 
+
 class PassKey from NMTDS 
 
        ---Purpose: 
 
 uses
     Shape from TopoDS, 
-    ListOfInteger from TColStd   
-        
+    IndexedMapOfInteger from TColStd, 
+    ListOfInteger from TColStd
+
 --raises
 
 is 
     Create  
        returns PassKey from NMTDS; 
-     
-    Assign(me:out;  
-           Other : PassKey from NMTDS) 
-       returns PassKey from NMTDS; 
-    ---C++: alias operator =
-    ---C++: return & 
---    
+    ---C++: alias "Standard_EXPORT virtual ~NMTDS_PassKey();" 
+
+    Create(Other:PassKey from NMTDS) 
+       returns PassKey from NMTDS;
+   ---C++: alias "Standard_EXPORT NMTDS_PassKey& operator =(const NMTDS_PassKey& Other);" 
+
+    Clear(me:out);
+    
     SetIds(me:out; 
-           aI1 :Integer from Standard;    
+           aI1  :Integer from Standard); 
+            
+    SetIds(me:out; 
+           aI1 :Integer from Standard; 
            aI2 :Integer from Standard);  
             
-    NbMax(me) 
-       returns Integer  from Standard; 
-        
-    Clear(me:out); 
+    SetIds(me:out; 
+           aI1 :Integer from Standard;    
+           aI2 :Integer from Standard;    
+           aI3 :Integer from Standard);  
+
+    SetIds(me:out; 
+           aI1 :Integer from Standard;    
+           aI2 :Integer from Standard;    
+           aI3 :Integer from Standard;    
+           aI4 :Integer from Standard); 
      
-    Compute(me:out); 
+    SetIds(me:out;  
+           aLS  :ListOfInteger from TColStd);   
+
+    NbIds(me) 
+       returns Integer  from Standard; 
      
     IsEqual(me; 
            aOther:PassKey from NMTDS) 
        returns Boolean from Standard;                       
-
-    Key(me) 
-       returns Address from Standard;  
         
     HashCode(me; 
            Upper : Integer  from Standard)  
        returns Integer from Standard;           
      
+    Id(me; 
+           aIndex: Integer  from Standard)  
+       returns  Integer from Standard;
+       
     Ids(me; 
            aI1 :out Integer from Standard;    
            aI2 :out Integer from Standard);
-     
-    Dump(me); 
 
+    Dump(me; 
+       aHex:Integer from Standard=0);  
+     
+       
 fields 
     myNbIds: Integer from Standard is protected;  
-    myNbMax: Integer from Standard is protected; 
-    mySum  : Integer from Standard is protected;   
-    myIds  : Integer from Standard [2] is protected; 
+    mySum  : Integer from Standard is protected;  
+    myMap  : IndexedMapOfInteger from TColStd is protected; 
 
 end PassKey;
index 910400cd6309b5c3aa8bd6ce99890b3380208fb2..2d2d52ea0a5386292a7eefe810383791173d3eed 100755 (executable)
@@ -1,4 +1,5 @@
-// Copyright (C) 2006 SAMTECH
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 // 
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-// File:       NMTDS_PassKey.cxx
-// Created:    
+//
+// File:       NMTDS_Algo.cxx
+// Created:    Sat Dec 04 12:39:47 2004
 // Author:     Peter KURNEV
-//             <pkv@irinox>
+//             <peter@PREFEX>
 
 
 #include <NMTDS_PassKey.ixx>
 #include <stdio.h>
 #include <string.h>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
+#include <TColStd_ListOfInteger.hxx>
 
 #ifdef WNT
 #pragma warning( disable : 4101) 
 #endif
 
-static 
-  void SortShell(const int n, int* a); 
 static
   Standard_Integer NormalizedId(const Standard_Integer aId,
                                const Standard_Integer aDiv);
@@ -44,129 +45,197 @@ static
 //=======================================================================
   NMTDS_PassKey::NMTDS_PassKey()
 {
-  Clear();
+ Clear(); 
+}
+//=======================================================================
+//function :
+//purpose  : 
+//=======================================================================
+  NMTDS_PassKey::NMTDS_PassKey(const NMTDS_PassKey& aOther)
+{
+  myNbIds=aOther.myNbIds;
+  mySum=aOther.mySum;
+  myMap=aOther.myMap;
 }
 //=======================================================================
-//function :Assign
+//function :operator =
 //purpose  : 
 //=======================================================================
-  NMTDS_PassKey& NMTDS_PassKey::Assign(const NMTDS_PassKey& anOther)
+  NMTDS_PassKey& NMTDS_PassKey::operator =(const NMTDS_PassKey& aOther)
 {
-  myNbIds=anOther.myNbIds;
-  myNbMax=anOther.myNbMax;
-  mySum=anOther.mySum;
-  memcpy(myIds, anOther.myIds, sizeof(myIds));
+  myNbIds=aOther.myNbIds;
+  mySum=aOther.mySum;
+  myMap=aOther.myMap;
   return *this;
 }
 //=======================================================================
+//function :~
+//purpose  : 
+//=======================================================================
+  NMTDS_PassKey::~NMTDS_PassKey()
+{
+}
+//=======================================================================
 //function :Clear
 //purpose  : 
 //=======================================================================
   void NMTDS_PassKey::Clear()
 {
-  Standard_Integer i;
-  //
   myNbIds=0;
-  myNbMax=2;
   mySum=0;
-  for (i=0; i<myNbMax; ++i) {
-    myIds[i]=0;
-  }
+  myMap.Clear();
+}
+//=======================================================================
+//function :SetIds
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKey::SetIds(const Standard_Integer aId1)
+                              
+{
+  Clear();
+  myNbIds=1;
+  myMap.Add(aId1);
+  mySum=NormalizedId(aId1, myNbIds);
+}
+//=======================================================================
+//function :SetIds
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKey::SetIds(const Standard_Integer aId1,
+                            const Standard_Integer aId2)
+{
+  TColStd_ListOfInteger aLI;
+  //
+  aLI.Append(aId1);
+  aLI.Append(aId2);
+  SetIds(aLI);
 }
 //=======================================================================
 //function :SetIds
 //purpose  : 
 //=======================================================================
-  void NMTDS_PassKey::SetIds(const Standard_Integer anId1,
-                            const Standard_Integer anId2)
+  void NMTDS_PassKey::SetIds(const Standard_Integer aId1,
+                            const Standard_Integer aId2,
+                            const Standard_Integer aId3)
 {
-  Standard_Integer aIdN1, aIdN2;
+  TColStd_ListOfInteger aLI;
   //
-  myNbIds=2;
-  aIdN1=NormalizedId(anId1, myNbIds);
-  aIdN2=NormalizedId(anId2, myNbIds);
-  mySum=aIdN1+aIdN2;
+  aLI.Append(aId1);
+  aLI.Append(aId2);
+  aLI.Append(aId3);
+  SetIds(aLI);
+}
+//=======================================================================
+//function :SetIds
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKey::SetIds(const Standard_Integer aId1,
+                            const Standard_Integer aId2,
+                            const Standard_Integer aId3,
+                            const Standard_Integer aId4)
+{ 
+  TColStd_ListOfInteger aLI;
   //
-  if (anId1<anId2) {
-    myIds[myNbMax-2]=anId1;
-    myIds[myNbMax-1]=anId2;
-    return;
-  }
-  myIds[myNbMax-2]=anId2;
-  myIds[myNbMax-1]=anId1;
+  aLI.Append(aId1);
+  aLI.Append(aId2);
+  aLI.Append(aId3);
+  aLI.Append(aId4);
+  SetIds(aLI);
 }
 //=======================================================================
-//function :Ids
+//function :SetIds
 //purpose  : 
 //=======================================================================
-  void NMTDS_PassKey::Ids(Standard_Integer& aId1,
-                         Standard_Integer& aId2)const
+  void NMTDS_PassKey::SetIds(const TColStd_ListOfInteger& aLI)
 {
-  aId1=myIds[0];
-  aId2=myIds[1];
+  Standard_Integer i, aId, aIdN;
+  TColStd_ListIteratorOfListOfInteger aIt;
+  //
+  Clear();
+  aIt.Initialize(aLI);
+  for (; aIt.More(); aIt.Next()) {
+    aId=aIt.Value();
+    myMap.Add(aId);
+  }
+  myNbIds=myMap.Extent();
+  for(i=1; i<=myNbIds; ++i) {
+    aId=myMap(i);
+    aIdN=NormalizedId(aId, myNbIds);
+    mySum+=aIdN;
+  }
 }
+
 //=======================================================================
-//function :NbMax
+//function :NbIds
 //purpose  : 
 //=======================================================================
-  Standard_Integer NMTDS_PassKey::NbMax()const
+  Standard_Integer NMTDS_PassKey::NbIds()const
 {
-  return myNbMax;
+  return myNbIds;
 }
 //=======================================================================
-//function :Compute
+//function :Id
 //purpose  : 
 //=======================================================================
-  void NMTDS_PassKey::Compute()
+  Standard_Integer NMTDS_PassKey::Id(const Standard_Integer aIndex) const
 {
-  SortShell(myNbIds, myIds+myNbMax-myNbIds);
+  if (aIndex<1 || aIndex>myNbIds) {
+    return -1;
+  }
+  return myMap(aIndex);
 }
 //=======================================================================
-//function :IsEqual
+//function :Ids
 //purpose  : 
 //=======================================================================
-  Standard_Boolean NMTDS_PassKey::IsEqual(const NMTDS_PassKey& anOther) const
+  void NMTDS_PassKey::Ids(Standard_Integer& aId1,
+                         Standard_Integer& aId2) const
 {
-  Standard_Integer iIsEqual;
-  Standard_Boolean bIsEqual;
-  //
-  iIsEqual=memcmp(myIds, anOther.myIds, sizeof(myIds));
-  bIsEqual=Standard_False;
-  if (!iIsEqual) {
-    bIsEqual=!bIsEqual;
+  aId1=0;
+  aId2=0;
+  if (myNbIds>1) {
+    aId1=myMap(1);
+    aId2=myMap(2);
   }
-  return bIsEqual;
 }
 //=======================================================================
-//function :Key
+//function :IsEqual
 //purpose  : 
 //=======================================================================
-  Standard_Address NMTDS_PassKey::Key()const
+  Standard_Boolean NMTDS_PassKey::IsEqual(const NMTDS_PassKey& aOther) const
 {
-  return (Standard_Address)myIds;
+  Standard_Boolean bRet;
+  Standard_Integer i, aId;
+  //
+  bRet=Standard_False;
+  //
+  if (myNbIds!=aOther.myNbIds) {
+    return bRet;
+  }
+  for (i=1; i<=myNbIds; ++i) {
+    aId=myMap(i);
+    if (!aOther.myMap.Contains(aId)) {
+      return bRet;
+    }
+  }
+  return !bRet;
 }
 //=======================================================================
 //function : HashCode
 //purpose  : 
 //=======================================================================
-  Standard_Integer NMTDS_PassKey::HashCode(const Standard_Integer Upper) const
+  Standard_Integer NMTDS_PassKey::HashCode(const Standard_Integer aUpper) const
 {
-  return ::HashCode(mySum, Upper);
+  return ::HashCode(mySum, aUpper);
 }
 //=======================================================================
 //function : Dump
 //purpose  : 
 //=======================================================================
-  void NMTDS_PassKey::Dump()const
+  void NMTDS_PassKey::Dump(const Standard_Integer )const
 {
-  Standard_Integer i;
-  //
-  printf(" PassKey: {");
-  for (i=0; i<myNbMax; ++i) {
-    printf(" %d", myIds[i]);
-  }
-  printf(" }");
 }
+
 //=======================================================================
 // function: NormalizedId
 // purpose : 
@@ -184,33 +253,109 @@ Standard_Integer NormalizedId(const Standard_Integer aId,
   }
   return aIdRet;
 }
+/*
+//=========
 //=======================================================================
-// function: SortShell
-// purpose : 
+//function : Contains
+//purpose  : 
+//=======================================================================
+  Standard_Boolean NMTDS_PassKey::Contains(const Standard_Integer aId) const
+{
+  return myMap.Contains(aId);
+}
+//=======================================================================
+//function :Contains
+//purpose  : 
+//=======================================================================
+  Standard_Boolean NMTDS_PassKey::Contains(const NMTDS_PassKey& aOther) const
+{
+  Standard_Boolean bRet;
+  Standard_Integer i, aId;
+  //
+  bRet=Standard_False;
+  //
+  if (myNbIds<aOther.myNbIds) {
+    return bRet;
+  }
+  for (i=1; i<=aOther.myNbIds; ++i) {
+    aId=aOther.myMap(i);
+    if (!myMap.Contains(aId)) {
+      return bRet;
+    }
+  }
+  return !bRet;
+}
+//=======================================================================
+//function :Intersected
+//purpose  : 
 //=======================================================================
-void SortShell(const int n, int* a) 
+  Standard_Boolean NMTDS_PassKey::Intersected(const NMTDS_PassKey& aOther) const
 {
-  int  x, nd, i, j, l, d=1;
+  Standard_Boolean bRet;
+  Standard_Integer i, aId;
   //
-  while(d<=n) {
-    d*=2;
+  bRet=Standard_False;
+  //
+  for (i=1; i<=myNbIds; ++i) {
+    aId=myMap(i);
+    if (aOther.Contains(aId)) {
+      return !bRet;
+    }
+  }
+  return bRet;
+}
+//=======================================================================
+//function : Add
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKey::Add(const Standard_Integer aId)
+{
+  TColStd_ListOfInteger aLI;
+  aLI.Append(aId);
+  //
+  Add(aLI);
+}
+//=======================================================================
+//function : Add
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKey::Add(const NMTDS_PassKey& aOther) 
+{
+  Standard_Integer i, aId;
+  TColStd_ListOfInteger aLS;
+  //
+  for(i=1; i<=myNbIds; ++i) {
+    aId=myMap(i);
+    aLS.Append(aId);
+  }
+  for(i=1; i<=aOther.myNbIds; ++i) {
+    aId=aOther.myMap(i);
+    aLS.Append(aId);
+  }
+  //
+  Add(aLS);
+}
+//=======================================================================
+//function : Add
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKey::Add(const TColStd_ListOfInteger& aLI)
+{
+  Standard_Integer i, aId;
+  TColStd_ListOfInteger aLS;
+  TColStd_ListIteratorOfListOfInteger aIt;
+  //
+  for(i=1; i<=myNbIds; ++i) {
+    aId=myMap(i);
+    aLS.Append(aId);
+  }
+  aIt.Initialize(aLI);
+  for (; aIt.More(); aIt.Next()) {
+    aId=aIt.Value();
+    aLS.Append(aId);
   }
   //
-  while (d) {
-    d=(d-1)/2;
-    //
-    nd=n-d;
-    for (i=0; i<nd; ++i) {
-      j=i;
-    m30:;
-      l=j+d;
-      if (a[l] < a[j]){
-       x=a[j];
-       a[j]=a[l];
-       a[l]=x;
-       j-=d;
-       if (j > -1) goto m30;
-      }//if (a[l] < a[j]){
-    }//for (i=0; i<nd; ++i) 
-  }//while (1)
+  SetIds(aLS);
 }
+//=========
+*/
index 65ac7bb2b80764723ae41a6d652c05535d6d12d3..379b72f79d2e5de73b5703f17114c22ecdcbbc66 100644 (file)
 #ifndef _Standard_Integer_HeaderFile
 #include <Standard_Integer.hxx>
 #endif
+#ifndef _TColStd_IndexedMapOfInteger_HeaderFile
+#include <TColStd_IndexedMapOfInteger.hxx>
+#endif
 #ifndef _Standard_Boolean_HeaderFile
 #include <Standard_Boolean.hxx>
 #endif
-#ifndef _Standard_Address_HeaderFile
-#include <Standard_Address.hxx>
-#endif
+class TColStd_ListOfInteger;
 
 
 #ifndef _Standard_HeaderFile
@@ -60,41 +61,47 @@ public:
 
 
 Standard_EXPORT NMTDS_PassKey();
+Standard_EXPORT virtual ~NMTDS_PassKey();
+
 
+Standard_EXPORT NMTDS_PassKey(const NMTDS_PassKey& Other);
+Standard_EXPORT NMTDS_PassKey& operator =(const NMTDS_PassKey& Other);
+
+
+Standard_EXPORT   void Clear() ;
 
-Standard_EXPORT   NMTDS_PassKey& Assign(const NMTDS_PassKey& Other) ;
-  NMTDS_PassKey& operator =(const NMTDS_PassKey& Other) 
-{
-  return Assign(Other);
-}
 
+Standard_EXPORT   void SetIds(const Standard_Integer aI1) ;
 
 
 Standard_EXPORT   void SetIds(const Standard_Integer aI1,const Standard_Integer aI2) ;
 
 
-Standard_EXPORT   Standard_Integer NbMax() const;
+Standard_EXPORT   void SetIds(const Standard_Integer aI1,const Standard_Integer aI2,const Standard_Integer aI3) ;
 
 
-Standard_EXPORT   void Clear() ;
+Standard_EXPORT   void SetIds(const Standard_Integer aI1,const Standard_Integer aI2,const Standard_Integer aI3,const Standard_Integer aI4) ;
 
 
-Standard_EXPORT   void Compute() ;
+Standard_EXPORT   void SetIds(const TColStd_ListOfInteger& aLS) ;
 
 
-Standard_EXPORT   Standard_Boolean IsEqual(const NMTDS_PassKey& aOther) const;
+Standard_EXPORT   Standard_Integer NbIds() const;
 
 
-Standard_EXPORT   Standard_Address Key() const;
+Standard_EXPORT   Standard_Boolean IsEqual(const NMTDS_PassKey& aOther) const;
 
 
 Standard_EXPORT   Standard_Integer HashCode(const Standard_Integer Upper) const;
 
 
+Standard_EXPORT   Standard_Integer Id(const Standard_Integer aIndex) const;
+
+
 Standard_EXPORT   void Ids(Standard_Integer& aI1,Standard_Integer& aI2) const;
 
 
-Standard_EXPORT   void Dump() const;
+Standard_EXPORT   void Dump(const Standard_Integer aHex = 0) const;
 
 
 
@@ -109,9 +116,8 @@ protected:
  // Fields PROTECTED
  //
 Standard_Integer myNbIds;
-Standard_Integer myNbMax;
 Standard_Integer mySum;
-Standard_Integer myIds[2];
+TColStd_IndexedMapOfInteger myMap;
 
 
 private: 
index 02ef906d33255b21132320b4eb74620fbd454e62..ba0d04dd17ed07bdbc4dc1403387efb9e7e78a85 100644 (file)
@@ -17,6 +17,9 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
+#ifndef _TColStd_ListOfInteger_HeaderFile
+#include <TColStd_ListOfInteger.hxx>
+#endif
 #ifndef _NMTDS_PassKey_HeaderFile
 #include <NMTDS_PassKey.hxx>
 #endif
index 2ad7871a0e4c00b0d536f274d4f4633ac279468b..c34a3244a6b5d46627ec0c191175bcae2ce7db7d 100755 (executable)
@@ -36,21 +36,16 @@ uses
 is 
     Create  
        returns PassKeyBoolean from NMTDS; 
-     
-    Assign(me:out;  
-           Other : PassKeyBoolean from NMTDS) 
-       returns PassKeyBoolean from NMTDS; 
-    ---C++: alias operator =
-    ---C++: return & 
---     
+    ---C++: alias "Standard_EXPORT virtual ~NMTDS_PassKeyBoolean();" 
+    
     SetFlag(me:out; 
            aFlag: Boolean from Standard); 
-        
+    ---C++: alias " Standard_EXPORT NMTDS_PassKeyBoolean& operator =(const NMTDS_PassKeyBoolean& Other);" 
+    
     Flag(me)  
        returns Boolean from Standard;      
 
 fields 
     myFlag: Boolean from Standard is protected;  
 
 end PassKeyBoolean;
index 11f90ee799a4730be0f1db17d6abdfc553adb251..059751fe2e180ebe2e29f2e6f81209cf5d4a7032 100755 (executable)
@@ -25,7 +25,7 @@
 #include <NMTDS_PassKeyBoolean.ixx>
 
 //=======================================================================
-//function : NMTDS_PassKeyBoolean
+//function : 
 //purpose  : 
 //=======================================================================
   NMTDS_PassKeyBoolean::NMTDS_PassKeyBoolean()
 {
 }
 //=======================================================================
-//function :Assign
+//function : ~
 //purpose  : 
 //=======================================================================
-  NMTDS_PassKeyBoolean& NMTDS_PassKeyBoolean::Assign(const NMTDS_PassKeyBoolean& anOther)
+  NMTDS_PassKeyBoolean::~NMTDS_PassKeyBoolean()
+{
+}
+//=======================================================================
+//function :operator =
+//purpose  : 
+//=======================================================================
+  NMTDS_PassKeyBoolean& NMTDS_PassKeyBoolean::operator =(const NMTDS_PassKeyBoolean& anOther)
 {
   myFlag=anOther.myFlag;
-  NMTDS_PassKey::Assign(anOther);
+  NMTDS_PassKey::operator =(anOther);
   return *this;
 }
 //=======================================================================
index 0ac2e06b628f78bcdce0c0bc0300b046bdf59c49..604cfa30b368c4c1216748e83afcb38c1ac1eebf 100644 (file)
@@ -57,17 +57,11 @@ public:
 
 
 Standard_EXPORT NMTDS_PassKeyBoolean();
-
-
-Standard_EXPORT   NMTDS_PassKeyBoolean& Assign(const NMTDS_PassKeyBoolean& Other) ;
-  NMTDS_PassKeyBoolean& operator =(const NMTDS_PassKeyBoolean& Other) 
-{
-  return Assign(Other);
-}
-
+Standard_EXPORT virtual ~NMTDS_PassKeyBoolean();
 
 
 Standard_EXPORT   void SetFlag(const Standard_Boolean aFlag) ;
+ Standard_EXPORT NMTDS_PassKeyBoolean& operator =(const NMTDS_PassKeyBoolean& Other);
 
 
 Standard_EXPORT   Standard_Boolean Flag() const;
index ae537d7873bfe80de5be02e5faf41cda152fad05..de75ce8f9de1a32bd78fe3cf1f5cc07a9e56a78d 100755 (executable)
@@ -1,4 +1,5 @@
--- Copyright (C) 2006 SAMTECH 
+-- Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, 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,8 +15,8 @@
 -- License along with this library; if not, write to the Free Software 
 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 --
--- 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:       NMTDS_PassKeyMapHasher.cdl
 -- Created:    
 -- Author:     Peter KURNEV
index 09e4ad0476214c1b831171818a912ceb853b30a2..ac7910947f683d906b4c3a45e42e33bb8164999b 100755 (executable)
@@ -1,4 +1,5 @@
-// Copyright (C) 2006 SAMTECH
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 // 
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 //function : HashCode
 //purpose  : 
 //=======================================================================
-  Standard_Integer NMTDS_PassKeyMapHasher::HashCode(const NMTDS_PassKey& aPKey,
+  Standard_Integer NMTDS_PassKeyMapHasher::HashCode(const NMTDS_PassKey& aPK,
                                                    const Standard_Integer Upper)
 {
-  return aPKey.HashCode(Upper);
+  return aPK.HashCode(Upper);
 }
 //=======================================================================
 //function :IsEqual
 //purpose  : 
 //=======================================================================
-  Standard_Boolean NMTDS_PassKeyMapHasher::IsEqual(const NMTDS_PassKey& aPKey1,
-                                                  const NMTDS_PassKey& aPKey2)
+  Standard_Boolean NMTDS_PassKeyMapHasher::IsEqual(const NMTDS_PassKey& aPK1,
+                                                  const NMTDS_PassKey& aPK2)
 {
-  return aPKey1.IsEqual(aPKey2);
+  return aPK1.IsEqual(aPK2);
 }
diff --git a/src/NMTDS/NMTDS_PassKeyShape.cdl b/src/NMTDS/NMTDS_PassKeyShape.cdl
new file mode 100644 (file)
index 0000000..0812265
--- /dev/null
@@ -0,0 +1,95 @@
+-- Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+-- 
+-- This library is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU Lesser General Public
+-- License as published by the Free Software Foundation; either 
+-- version 2.1 of the License.
+-- 
+-- This library is distributed in the hope that it will be useful 
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of 
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+-- Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public  
+-- License along with this library; if not, write to the Free Software 
+-- Foundation, 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
+--             <pkv@irinox>
+
+
+class PassKeyShape from NMTDS 
+   
+       ---Purpose: 
+
+uses
+    Shape from TopoDS, 
+    ListOfShape from TopTools,   
+    IndexedMapOfShape from TopTools 
+     
+--raises
+
+is 
+    Create  
+       returns PassKeyShape from NMTDS; 
+     ---C++: alias "Standard_EXPORT virtual ~NMTDS_PassKeyShape();" 
+     
+    Create(Other:PassKeyShape from NMTDS) 
+       returns PassKeyShape from NMTDS;
+     
+    Assign(me:out;  
+           Other : PassKeyShape from NMTDS) 
+       returns PassKeyShape from NMTDS; 
+    ---C++: alias operator =
+    ---C++: return &  
+     
+    SetShapes(me:out; 
+           aS  :Shape from TopoDS); 
+           
+    SetShapes(me:out; 
+           aS1  :Shape from TopoDS; 
+           aS2  :Shape from TopoDS); 
+     
+    SetShapes(me:out; 
+           aS1  :Shape from TopoDS; 
+           aS2  :Shape from TopoDS; 
+           aS3  :Shape from TopoDS); 
+    SetShapes(me:out;  
+           aS1  :Shape from TopoDS; 
+           aS2  :Shape from TopoDS; 
+           aS3  :Shape from TopoDS;
+           aS4  :Shape from TopoDS);
+    SetShapes(me:out;  
+           aLS  :ListOfShape from TopTools); 
+        
+    Clear(me:out); 
+     
+
+    NbIds(me) 
+       returns Integer  from Standard; 
+     
+    IsEqual(me; 
+           aOther:PassKeyShape from NMTDS) 
+       returns Boolean from Standard;                       
+        
+    HashCode(me; 
+           Upper : Integer  from Standard)  
+       returns Integer from Standard;           
+     
+    Dump(me; 
+       aHex:Integer from Standard=0);  
+       
+fields 
+    myNbIds:Integer from Standard is protected;    
+    mySum  :Integer from Standard is protected;    
+    myUpper:Integer from Standard is protected;    
+    myMap  :IndexedMapOfShape from TopTools is protected;        
+
+end PassKeyShape;
diff --git a/src/NMTDS/NMTDS_PassKeyShape.cxx b/src/NMTDS/NMTDS_PassKeyShape.cxx
new file mode 100644 (file)
index 0000000..c4af3a4
--- /dev/null
@@ -0,0 +1,227 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, 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
+//             <pkv@irinox>
+
+
+#include <NMTDS_PassKeyShape.ixx>
+
+#include <TopTools_ListOfShape.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
+
+
+static 
+  Standard_Integer NormalizedId(const Standard_Integer aId,
+                               const Standard_Integer aDiv);
+//=======================================================================
+//function :
+//purpose  : 
+//=======================================================================
+  NMTDS_PassKeyShape::NMTDS_PassKeyShape()
+{
+  myUpper=432123;
+}
+//=======================================================================
+//function :
+//purpose  : 
+//=======================================================================
+  NMTDS_PassKeyShape::NMTDS_PassKeyShape(const NMTDS_PassKeyShape& aOther)
+{
+  myUpper=432123;
+  myNbIds=aOther.myNbIds;
+  mySum=aOther.mySum;
+  myMap=aOther.myMap;
+}
+//=======================================================================
+//function :~
+//purpose  : 
+//=======================================================================
+  NMTDS_PassKeyShape::~NMTDS_PassKeyShape()
+{
+}
+//=======================================================================
+//function :Assign
+//purpose  : 
+//=======================================================================
+  NMTDS_PassKeyShape& NMTDS_PassKeyShape::Assign(const NMTDS_PassKeyShape& aOther)
+{
+  myUpper=432123;
+  myNbIds=aOther.myNbIds;
+  mySum=aOther.mySum;
+  myMap=aOther.myMap;
+  return *this;
+}
+//=======================================================================
+//function :Clear
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKeyShape::Clear()
+{
+  myNbIds=0;
+  mySum=0;
+  myMap.Clear();
+}
+//=======================================================================
+//function :SetShapes
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKeyShape::SetShapes(const TopoDS_Shape& aS1)
+                              
+{
+  Standard_Integer aHC;
+  //
+  Clear();
+  myNbIds=1;
+  myMap.Add(aS1);
+  aHC=aS1.HashCode(myUpper);
+  mySum=NormalizedId(aHC, myNbIds);
+}
+//=======================================================================
+//function :SetShapes
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKeyShape::SetShapes(const TopoDS_Shape& aS1,
+                                       const TopoDS_Shape& aS2)
+{
+  TopTools_ListOfShape aLS;
+  //
+  aLS.Append(aS1);
+  aLS.Append(aS2);
+  SetShapes(aLS);
+}
+//=======================================================================
+//function :SetShapes
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKeyShape::SetShapes(const TopoDS_Shape& aS1,
+                                       const TopoDS_Shape& aS2,
+                                       const TopoDS_Shape& aS3)
+{
+  TopTools_ListOfShape aLS;
+  //
+  aLS.Append(aS1);
+  aLS.Append(aS2);
+  aLS.Append(aS3);
+  SetShapes(aLS);
+}
+//=======================================================================
+//function :SetShapes
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKeyShape::SetShapes(const TopoDS_Shape& aS1,
+                                       const TopoDS_Shape& aS2,
+                                       const TopoDS_Shape& aS3,
+                                       const TopoDS_Shape& aS4)
+{
+  TopTools_ListOfShape aLS;
+  //
+  aLS.Append(aS1);
+  aLS.Append(aS2);
+  aLS.Append(aS3);
+  aLS.Append(aS4);
+  SetShapes(aLS);
+}
+//=======================================================================
+//function :SetShapes
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKeyShape::SetShapes(const TopTools_ListOfShape& aLS)
+{
+  Standard_Integer i, aId, aIdN;
+  TopTools_ListIteratorOfListOfShape aIt;
+  //
+  Clear();
+  aIt.Initialize(aLS);
+  for (; aIt.More(); aIt.Next()) {
+    const TopoDS_Shape& aS=aIt.Value();
+    myMap.Add(aS);
+  }
+  myNbIds=myMap.Extent();
+  for(i=1; i<=myNbIds; ++i) {
+    const TopoDS_Shape& aS=myMap(i);
+    aId=aS.HashCode(myUpper);
+    aIdN=NormalizedId(aId, myNbIds);
+    mySum+=aIdN;
+  }
+}
+//=======================================================================
+//function :NbIds
+//purpose  : 
+//=======================================================================
+  Standard_Integer NMTDS_PassKeyShape::NbIds()const
+{
+  return myNbIds;
+}
+//=======================================================================
+//function :IsEqual
+//purpose  : 
+//=======================================================================
+  Standard_Boolean NMTDS_PassKeyShape::IsEqual(const NMTDS_PassKeyShape& aOther) const
+{
+  Standard_Boolean bRet;
+  Standard_Integer i;
+  //
+  bRet=Standard_False;
+  //
+  if (myNbIds!=aOther.myNbIds) {
+    return bRet;
+  }
+  for (i=1; i<=myNbIds; ++i) {
+    const TopoDS_Shape& aS=myMap(i);
+    if (!aOther.myMap.Contains(aS)) {
+      return bRet;
+    }
+  }
+  return !bRet;
+}
+//=======================================================================
+//function : HashCode
+//purpose  : 
+//=======================================================================
+  Standard_Integer NMTDS_PassKeyShape::HashCode(const Standard_Integer aUpper) const
+{
+  return ::HashCode(mySum, aUpper);
+}
+//=======================================================================
+//function : Dump
+//purpose  : 
+//=======================================================================
+  void NMTDS_PassKeyShape::Dump(const Standard_Integer)const
+{
+}
+//=======================================================================
+// function: NormalizedId
+// purpose : 
+//=======================================================================
+Standard_Integer NormalizedId(const Standard_Integer aId,
+                             const Standard_Integer aDiv)
+{
+  Standard_Integer aMax, aTresh, aIdRet;
+  //
+  aIdRet=aId;
+  aMax=::IntegerLast();
+  aTresh=aMax/aDiv;
+  if (aId>aTresh) {
+    aIdRet=aId%aTresh;
+  }
+  return aIdRet;
+}
diff --git a/src/NMTDS/NMTDS_PassKeyShape.hxx b/src/NMTDS/NMTDS_PassKeyShape.hxx
new file mode 100644 (file)
index 0000000..81eaa80
--- /dev/null
@@ -0,0 +1,146 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_PassKeyShape_HeaderFile
+#define _NMTDS_PassKeyShape_HeaderFile
+
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _TopTools_IndexedMapOfShape_HeaderFile
+#include <TopTools_IndexedMapOfShape.hxx>
+#endif
+#ifndef _Standard_Boolean_HeaderFile
+#include <Standard_Boolean.hxx>
+#endif
+class TopoDS_Shape;
+class TopTools_ListOfShape;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTDS_PassKeyShape  {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+
+Standard_EXPORT NMTDS_PassKeyShape();
+Standard_EXPORT virtual ~NMTDS_PassKeyShape();
+
+
+Standard_EXPORT NMTDS_PassKeyShape(const NMTDS_PassKeyShape& Other);
+
+
+Standard_EXPORT   NMTDS_PassKeyShape& Assign(const NMTDS_PassKeyShape& Other) ;
+  NMTDS_PassKeyShape& operator =(const NMTDS_PassKeyShape& Other) 
+{
+  return Assign(Other);
+}
+
+
+
+Standard_EXPORT   void SetShapes(const TopoDS_Shape& aS) ;
+
+
+Standard_EXPORT   void SetShapes(const TopoDS_Shape& aS1,const TopoDS_Shape& aS2) ;
+
+
+Standard_EXPORT   void SetShapes(const TopoDS_Shape& aS1,const TopoDS_Shape& aS2,const TopoDS_Shape& aS3) ;
+
+
+Standard_EXPORT   void SetShapes(const TopoDS_Shape& aS1,const TopoDS_Shape& aS2,const TopoDS_Shape& aS3,const TopoDS_Shape& aS4) ;
+
+
+Standard_EXPORT   void SetShapes(const TopTools_ListOfShape& aLS) ;
+
+
+Standard_EXPORT   void Clear() ;
+
+
+Standard_EXPORT   Standard_Integer NbIds() const;
+
+
+Standard_EXPORT   Standard_Boolean IsEqual(const NMTDS_PassKeyShape& aOther) const;
+
+
+Standard_EXPORT   Standard_Integer HashCode(const Standard_Integer Upper) const;
+
+
+Standard_EXPORT   void Dump(const Standard_Integer aHex = 0) const;
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ // 
+
+
+ // Fields PROTECTED
+ //
+Standard_Integer myNbIds;
+Standard_Integer mySum;
+Standard_Integer myUpper;
+TopTools_IndexedMapOfShape myMap;
+
+
+private: 
+
+ // Methods PRIVATE
+ // 
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
diff --git a/src/NMTDS/NMTDS_PassKeyShape.ixx b/src/NMTDS/NMTDS_PassKeyShape.ixx
new file mode 100644 (file)
index 0000000..90c37bd
--- /dev/null
@@ -0,0 +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
+
+#include <NMTDS_PassKeyShape.jxx>
+
+
+
diff --git a/src/NMTDS/NMTDS_PassKeyShape.jxx b/src/NMTDS/NMTDS_PassKeyShape.jxx
new file mode 100644 (file)
index 0000000..9d79955
--- /dev/null
@@ -0,0 +1,28 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
+#endif
+#ifndef _TopTools_ListOfShape_HeaderFile
+#include <TopTools_ListOfShape.hxx>
+#endif
+#ifndef _NMTDS_PassKeyShape_HeaderFile
+#include <NMTDS_PassKeyShape.hxx>
+#endif
diff --git a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cdl b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cdl
new file mode 100644 (file)
index 0000000..77c0667
--- /dev/null
@@ -0,0 +1,47 @@
+-- Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+-- 
+-- This library is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU Lesser General Public
+-- License as published by the Free Software Foundation; either 
+-- version 2.1 of the License.
+-- 
+-- This library is distributed in the hope that it will be useful 
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of 
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+-- Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public  
+-- License along with this library; if not, write to the Free Software 
+-- Foundation, 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
+--             <pkv@irinox>
+
+
+class PassKeyShapeMapHasher from NMTDS 
+
+       ---Purpose: 
+
+uses 
+    PassKeyShape from NMTDS 
+
+--raises
+
+is 
+    HashCode(myclass;  
+           aPKey : PassKeyShape from NMTDS;  
+           Upper : Integer from Standard)  
+       returns Integer from Standard;
+       
+       
+    IsEqual(myclass;  
+           aPKey1 : PassKeyShape from NMTDS;  
+           aPKey2 : PassKeyShape from NMTDS)  
+       returns Boolean from Standard;
+
+end PassKeyShapeMapHasher;
diff --git a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cxx b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cxx
new file mode 100644 (file)
index 0000000..e637e33
--- /dev/null
@@ -0,0 +1,45 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, 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
+//             <pkv@irinox>
+
+
+#include <NMTDS_PassKeyShapeMapHasher.ixx>
+
+//=======================================================================
+//function : HashCode
+//purpose  : 
+//=======================================================================
+  Standard_Integer NMTDS_PassKeyShapeMapHasher::HashCode(const NMTDS_PassKeyShape& aPK,
+                                                        const Standard_Integer Upper)
+{
+  return aPK.HashCode(Upper);
+}
+//=======================================================================
+//function :IsEqual
+//purpose  : 
+//=======================================================================
+  Standard_Boolean NMTDS_PassKeyShapeMapHasher::IsEqual(const NMTDS_PassKeyShape& aPK1,
+                                                       const NMTDS_PassKeyShape& aPK2)
+{
+  return aPK1.IsEqual(aPK2);
+}
diff --git a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.hxx b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.hxx
new file mode 100644 (file)
index 0000000..e484367
--- /dev/null
@@ -0,0 +1,99 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_PassKeyShapeMapHasher_HeaderFile
+#define _NMTDS_PassKeyShapeMapHasher_HeaderFile
+
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _Standard_Boolean_HeaderFile
+#include <Standard_Boolean.hxx>
+#endif
+class NMTDS_PassKeyShape;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTDS_PassKeyShapeMapHasher  {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+
+Standard_EXPORT static  Standard_Integer HashCode(const NMTDS_PassKeyShape& aPKey,const Standard_Integer Upper) ;
+
+
+Standard_EXPORT static  Standard_Boolean IsEqual(const NMTDS_PassKeyShape& aPKey1,const NMTDS_PassKeyShape& aPKey2) ;
+
+
+
+
+
+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/NMTDS/NMTDS_PassKeyShapeMapHasher.ixx b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.ixx
new file mode 100644 (file)
index 0000000..c7148fd
--- /dev/null
@@ -0,0 +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
+
+#include <NMTDS_PassKeyShapeMapHasher.jxx>
+
+
+
diff --git a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.jxx b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.jxx
new file mode 100644 (file)
index 0000000..f0e81fc
--- /dev/null
@@ -0,0 +1,25 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_PassKeyShape_HeaderFile
+#include <NMTDS_PassKeyShape.hxx>
+#endif
+#ifndef _NMTDS_PassKeyShapeMapHasher_HeaderFile
+#include <NMTDS_PassKeyShapeMapHasher.hxx>
+#endif
index 1922b4861f8e3a0d21c7e6ee7d2cfadc99911b7f..5a2f93f72ce08f2eb8f8d62f9f15f0a8a699e754 100644 (file)
@@ -27,8 +27,10 @@ class ShapesDataStructure from NMTDS
 
        ---Purpose: 
 
-uses
-    Shape from TopoDS,  
+uses  
+    Box from Bnd,
+    IndexedMapOfInteger from TColStd,
+    Shape from TopoDS, 
     IndexedDataMapOfShapeAncestorsSuccessors from BooleanOperations,
     CArray1OfIndexRange from NMTDS, 
     IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger from NMTDS
@@ -79,6 +81,14 @@ is
            aMS :out IndexedDataMapOfShapeAncestorsSuccessors from BooleanOperations); 
 -- Contribution of Samtech www.samcef.com END 
 
+    GetAllSuccessors(me; 
+       anIndex:Integer from Standard; 
+       aScrs  :out IndexedMapOfInteger from TColStd);   
+
+    ComputeBoxEx(me; 
+       anIndex:Integer from Standard; 
+       aBox:out Box from Bnd);   
+
 fields
     myCompositeShape:  Shape from TopoDS is protected; 
     myRanges        :  CArray1OfIndexRange from NMTDS is protected; 
index c7355995b5c7ac561d89b35293cebb3c156af3d7..a9a0e7370c65e3b5b0201ec41e137b1cab3cd2b6 100644 (file)
 
 
 #include <NMTDS_ShapesDataStructure.ixx>
-
-#include <TColStd_MapOfInteger.hxx>
-
 #include <TopoDS_Iterator.hxx>
 #include <TopoDS_Shape.hxx>
-
-#include <BooleanOperations_ShapeAndInterferences.hxx>
 #include <BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors.hxx>
-#include <BooleanOperations_AncestorsSeqAndSuccessorsSeq.hxx>
-
 #include <NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx>
 #include <NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx>
+#include <BooleanOperations_ShapeAndInterferences.hxx>
 #include <NMTDS_IndexRange.hxx>
+//
+#include <BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors.hxx>
+#include <BooleanOperations_AncestorsSeqAndSuccessorsSeq.hxx>
+#include <TColStd_MapOfInteger.hxx>
+#include <NMTDS_Tools.hxx>
+
+
+static
+  void ComputeBoxExS(const Standard_Integer aIx,
+                    const NMTDS_ShapesDataStructure* pDS,
+                    Bnd_Box& aBoxEx);
+static
+  void GetAllSuccessorsS(const Standard_Integer nS,
+                        const NMTDS_ShapesDataStructure* myDS,
+                        TColStd_IndexedMapOfInteger& aMA);
 
 //===========================================================================
 //function : NMTDS_ShapesDataStructure::NMTDS_ShapesDataStructure
     }
     //modified by NIZNHY-PKV Tue Feb 27 17:06:03 2007t
   }
-  //
   aNbS=aMSA.Extent(); 
   //
   // Fill myRanges
   // Contribution of Samtech www.samcef.com BEGIN
   //
   // Fill the table
+    
   //aShift=0;
   //for (i=0; i<2; ++i) {
   //  if (i) {
   //    InsertShapeAndAncestorsSuccessors(aSx, aASx, aShift);
   //  }
   //}
-
+  
   aShift=0;
   for (j=1; j<=aNbS; ++j) {
     const TopoDS_Shape& aSx=aMSA.FindKey(j);
   // Contribution of Samtech www.samcef.com END
   return aIndex;
 }
+
+//=======================================================================
+//function : ComputeBoxEx
+//purpose  : 
+//=======================================================================
+  void NMTDS_ShapesDataStructure::ComputeBoxEx (const Standard_Integer aIx,
+                                               Bnd_Box& aBoxEx)const
+{
+  ComputeBoxExS(aIx, this, aBoxEx);
+}
+//=======================================================================
+//function : GetAllSuccessors
+//purpose  : 
+//=======================================================================
+  void NMTDS_ShapesDataStructure::GetAllSuccessors(const Standard_Integer nS,
+                                                  TColStd_IndexedMapOfInteger& aMA)const
+{
+  GetAllSuccessorsS(nS, this, aMA);
+}
+//=======================================================================
+//function : GetAllSuccessorsS
+//purpose  : 
+//=======================================================================
+void GetAllSuccessorsS(const Standard_Integer nS,
+                      const NMTDS_ShapesDataStructure* myDS,
+                      TColStd_IndexedMapOfInteger& aMA)
+{
+  TopAbs_ShapeEnum aT;
+  Standard_Integer i, nSx, aNbSuccessors, *pSuccessors;
+  Standard_Address xSuccessors;
+  //
+  const TopoDS_Shape& aS=myDS->Shape(nS);
+  aT=aS.ShapeType();
+  if(NMTDS_Tools::HasBRep(aT)) {
+    aMA.Add(nS);
+    //
+    if (aT==TopAbs_VERTEX) {
+      return;
+    }
+  }
+  //
+  myDS->GetSuccessors(nS, xSuccessors, aNbSuccessors);
+  pSuccessors=(Standard_Integer*)xSuccessors;
+  for (i=0; i<aNbSuccessors; ++i) {
+    nSx=pSuccessors[i];
+    GetAllSuccessorsS(nSx, myDS, aMA);
+  }
+}
+//=======================================================================
+// function: ComputeBoxExS
+// purpose: 
+//=======================================================================
+  void ComputeBoxExS(const Standard_Integer aIx,
+                    const NMTDS_ShapesDataStructure* pDS,
+                    Bnd_Box& aBoxEx)
+{
+  Standard_Integer i, aNbS, iS;
+  //
+  const Bnd_Box& aBox=pDS->GetBoundingBox(aIx);
+  aBoxEx.Add(aBox);
+  //
+  aNbS=pDS->NumberOfSuccessors(aIx);
+  for (i=1; i<=aNbS; ++i) {
+    Bnd_Box aBoxS;
+    iS=pDS->GetSuccessor(aIx, i);
+    ComputeBoxExS(iS, pDS, aBoxS);
+    aBoxEx.Add(aBoxS);
+  }
+}
index b3e8065f806efda98797b152fa085bf75db8bbde..9d149f5a716193fbbe630634b059634643430b47 100644 (file)
@@ -38,6 +38,8 @@
 class TopoDS_Shape;
 class NMTDS_CArray1OfIndexRange;
 class BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors;
+class TColStd_IndexedMapOfInteger;
+class Bnd_Box;
 
 
 #ifndef _Standard_HeaderFile
@@ -98,6 +100,12 @@ Standard_EXPORT   void FillMap(const TopoDS_Shape& aS,BooleanOperations_IndexedD
 Standard_EXPORT   void FillSubshapes(const TopoDS_Shape& aS,BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& aMSA,BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& aMS) const;
 
 
+Standard_EXPORT   void GetAllSuccessors(const Standard_Integer anIndex,TColStd_IndexedMapOfInteger& aScrs) const;
+
+
+Standard_EXPORT   void ComputeBoxEx(const Standard_Integer anIndex,Bnd_Box& aBox) const;
+
+
 
 
 
index 5ae9a8554dc5459dd0c73c8b7ddb2e56c2bd763b..41897c6155a228076677b1cea8c684a07c6ee55b 100644 (file)
 #ifndef _BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors_HeaderFile
 #include <BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors.hxx>
 #endif
+#ifndef _TColStd_IndexedMapOfInteger_HeaderFile
+#include <TColStd_IndexedMapOfInteger.hxx>
+#endif
+#ifndef _Bnd_Box_HeaderFile
+#include <Bnd_Box.hxx>
+#endif
 #ifndef _NMTDS_ShapesDataStructure_HeaderFile
 #include <NMTDS_ShapesDataStructure.hxx>
 #endif
diff --git a/src/NMTDS/NMTDS_Tools.cdl b/src/NMTDS/NMTDS_Tools.cdl
new file mode 100644 (file)
index 0000000..1465d4d
--- /dev/null
@@ -0,0 +1,64 @@
+-- Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+-- 
+-- This library is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU Lesser General Public
+-- License as published by the Free Software Foundation; either 
+-- version 2.1 of the License.
+-- 
+-- This library is distributed in the hope that it will be useful 
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of 
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+-- Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public  
+-- License along with this library; if not, write to the Free Software 
+-- Foundation, 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
+--             <pkv@irinox>
+---Copyright:   Matra Datavision 2007
+
+
+class Tools from NMTDS 
+
+       ---Purpose: 
+
+uses
+    ShapeEnum from TopAbs, 
+    Vertex    from TopoDS,
+    Shape     from TopoDS,
+    IndexedDataMapOfShapeShape from TopTools 
+    
+--raises
+
+is 
+    TypeToInteger(myclass; 
+           aT1: ShapeEnum from TopAbs; 
+           aT2: ShapeEnum from TopAbs) 
+       returns Integer from Standard; 
+        
+    HasBRep(myclass; 
+           aT: ShapeEnum from TopAbs) 
+       returns Boolean from Standard;  
+        
+    ComputeVV(myclass;  
+           aV1:Vertex from TopoDS;  
+           aV2:Vertex from TopoDS) 
+       returns Integer from Standard;  
+
+    CopyShape(myclass; 
+           aS:Shape from TopoDS;  
+           aSC:out Shape from TopoDS);  
+
+    CopyShape(myclass; 
+           aS:Shape from TopoDS;  
+           aSC  :out Shape from TopoDS; 
+           aMSS :out IndexedDataMapOfShapeShape from TopTools);
+--fields
+
+end Tools;
diff --git a/src/NMTDS/NMTDS_Tools.cxx b/src/NMTDS/NMTDS_Tools.cxx
new file mode 100644 (file)
index 0000000..8944fe5
--- /dev/null
@@ -0,0 +1,173 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either 
+// version 2.1 of the License.
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, 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
+//             <pkv@irinox>
+
+
+#include <NMTDS_Tools.ixx>
+#include <TopoDS_Vertex.hxx>
+#include <gp_Pnt.hxx>
+#include <BRep_Tool.hxx>
+#include <TopoDS_Shape.hxx>
+#include <TopTools_IndexedDataMapOfShapeShape.hxx>
+#include <TopAbs_ShapeEnum.hxx>
+#include <TopoDS_Iterator.hxx>
+#include <BRep_Builder.hxx>
+
+void CopySource(const TopoDS_Shape& aS, 
+               TopTools_IndexedDataMapOfShapeShape& aMapSS, 
+               TopoDS_Shape& aSC);
+
+//=======================================================================
+//function : CopyShape
+//purpose  : 
+//=======================================================================
+  void NMTDS_Tools::CopyShape(const TopoDS_Shape& aS, 
+                             TopoDS_Shape& aSC)
+{
+  TopTools_IndexedDataMapOfShapeShape aMapSS;
+  //
+  CopySource(aS, aMapSS, aSC);
+}
+//=======================================================================
+//function : CopyShape
+//purpose  : 
+//=======================================================================
+  void NMTDS_Tools::CopyShape(const TopoDS_Shape& aS, 
+                             TopoDS_Shape& aSC,
+                             TopTools_IndexedDataMapOfShapeShape& aMapSS)
+{
+  CopySource(aS, aMapSS, aSC);
+}
+//=======================================================================
+//function : CopySource
+//purpose  : 
+//=======================================================================
+void CopySource(const TopoDS_Shape& aS, 
+               TopTools_IndexedDataMapOfShapeShape& aMapSS, 
+               TopoDS_Shape& aSC)
+{
+  Standard_Boolean bFree;
+  TopAbs_ShapeEnum aT;
+  TopoDS_Iterator aIt;
+  BRep_Builder BB;
+  //
+  aT=aS.ShapeType();
+  //
+  if (aMapSS.Contains(aS)) {
+    aSC=aMapSS.ChangeFromKey(aS);
+    aSC.Orientation(aS.Orientation());
+    return;
+  }
+  else {
+    aSC=aS.EmptyCopied();
+    aMapSS.Add(aS, aSC);
+  }
+  //
+  bFree=aSC.Free();
+  aSC.Free(Standard_True);
+  aIt.Initialize(aS);
+  for (; aIt.More();  aIt.Next()) {
+    TopoDS_Shape aSCx;
+    //
+    const TopoDS_Shape& aSx=aIt.Value();
+    //
+    CopySource (aSx, aMapSS, aSCx);  
+    //
+    aSCx.Orientation(aSx.Orientation());
+    BB.Add(aSC, aSCx);
+  }
+  aSC.Free(bFree);
+}
+//=======================================================================
+// function: ComputeVV
+// purpose: 
+//=======================================================================
+  Standard_Integer NMTDS_Tools::ComputeVV(const TopoDS_Vertex& aV1, 
+                                         const TopoDS_Vertex& aV2)
+{
+  Standard_Real aTolV1, aTolV2, aTolSum, aTolSum2, aD2;
+  gp_Pnt aP1, aP2;
+  //
+  aTolV1=BRep_Tool::Tolerance(aV1);
+  aTolV2=BRep_Tool::Tolerance(aV2);
+  aTolSum=aTolV1+aTolV2;
+  aTolSum2=aTolSum*aTolSum;
+  //
+  aP1=BRep_Tool::Pnt(aV1);
+  aP2=BRep_Tool::Pnt(aV2);
+  //
+  aD2=aP1.SquareDistance(aP2);
+  if (aD2>aTolSum2) {
+    return -1;
+  }
+  return 0;
+}
+//=======================================================================
+// function: HasBRep
+// purpose: 
+//=======================================================================
+  Standard_Boolean NMTDS_Tools::HasBRep(const TopAbs_ShapeEnum aTi)
+{
+  return (aTi==TopAbs_VERTEX || aTi==TopAbs_EDGE || aTi==TopAbs_FACE);
+}
+//=======================================================================
+//function : TypeToInteger
+//purpose  : 
+//=======================================================================
+  Standard_Integer NMTDS_Tools::TypeToInteger(const TopAbs_ShapeEnum aType1,
+                                           const TopAbs_ShapeEnum aType2)
+{
+  Standard_Integer iRet, iT1, iT2, iX;
+  //
+  iRet=-1;
+  iT1=(Standard_Integer)aType1;
+  iT2=(Standard_Integer)aType2;
+  //
+  iX=iT2*10+iT1;
+  switch (iX) {
+    case 77:
+      iRet=5; // VV
+      break;
+    case 76:
+    case 67:
+      iRet=4; // VE
+      break;
+    case 74:
+    case 47:
+      iRet=2; // VF
+      break;
+    case 66:
+      iRet=3; // EE
+      break;
+    case 64:
+    case 46:
+      iRet=1; // EF
+      break;
+    case 44:
+      iRet=0; // FF
+      break;
+    default:
+      break;
+  }
+  return iRet; 
+}
diff --git a/src/NMTDS/NMTDS_Tools.hxx b/src/NMTDS/NMTDS_Tools.hxx
new file mode 100644 (file)
index 0000000..c7eb8fd
--- /dev/null
@@ -0,0 +1,113 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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 _NMTDS_Tools_HeaderFile
+#define _NMTDS_Tools_HeaderFile
+
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _TopAbs_ShapeEnum_HeaderFile
+#include <TopAbs_ShapeEnum.hxx>
+#endif
+#ifndef _Standard_Boolean_HeaderFile
+#include <Standard_Boolean.hxx>
+#endif
+class TopoDS_Vertex;
+class TopoDS_Shape;
+class TopTools_IndexedDataMapOfShapeShape;
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTDS_Tools  {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+
+Standard_EXPORT static  Standard_Integer TypeToInteger(const TopAbs_ShapeEnum aT1,const TopAbs_ShapeEnum aT2) ;
+
+
+Standard_EXPORT static  Standard_Boolean HasBRep(const TopAbs_ShapeEnum aT) ;
+
+
+Standard_EXPORT static  Standard_Integer ComputeVV(const TopoDS_Vertex& aV1,const TopoDS_Vertex& aV2) ;
+
+
+Standard_EXPORT static  void CopyShape(const TopoDS_Shape& aS,TopoDS_Shape& aSC) ;
+
+
+Standard_EXPORT static  void CopyShape(const TopoDS_Shape& aS,TopoDS_Shape& aSC,TopTools_IndexedDataMapOfShapeShape& aMSS) ;
+
+
+
+
+
+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/NMTDS/NMTDS_Tools.ixx b/src/NMTDS/NMTDS_Tools.ixx
new file mode 100644 (file)
index 0000000..8e5877b
--- /dev/null
@@ -0,0 +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
+
+#include <NMTDS_Tools.jxx>
+
+
+
diff --git a/src/NMTDS/NMTDS_Tools.jxx b/src/NMTDS/NMTDS_Tools.jxx
new file mode 100644 (file)
index 0000000..4359a18
--- /dev/null
@@ -0,0 +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.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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_Vertex_HeaderFile
+#include <TopoDS_Vertex.hxx>
+#endif
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
+#endif
+#ifndef _TopTools_IndexedDataMapOfShapeShape_HeaderFile
+#include <TopTools_IndexedDataMapOfShapeShape.hxx>
+#endif
+#ifndef _NMTDS_Tools_HeaderFile
+#include <NMTDS_Tools.hxx>
+#endif
index 67fa6c11480ccd72a4c3757c5eb09320503c59e5..ecd125530e2bbce5685e8ca7e2db95b3cc5abd9a 100644 (file)
@@ -38,12 +38,12 @@ salomeinclude_HEADERS = \
        Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx \
        Handle_NMTTools_ListNodeOfListOfCommonBlock.hxx \
        Handle_NMTTools_ListNodeOfListOfCoupleOfShape.hxx \
+       NMTTools_CheckerSI.hxx \
        NMTTools_CommonBlockAPI.hxx \
        NMTTools_CommonBlock.hxx \
        NMTTools_CommonBlockPool.hxx \
        NMTTools_CoupleOfShape.hxx \
        NMTTools_DEProcessor.hxx \
-       NMTTools_DSFiller.hxx \
        NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx \
        NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx \
        NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx \
@@ -58,8 +58,6 @@ salomeinclude_HEADERS = \
        NMTTools_ListOfCommonBlock.hxx \
        NMTTools_ListOfCoupleOfShape.hxx \
        NMTTools_PaveFiller.hxx \
-       NMTTools_PCurveMaker.hxx \
-       NMTTools_PDSFiller.hxx \
        NMTTools_PPaveFiller.hxx \
        NMTTools_Tools.hxx \
        Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx \
@@ -75,12 +73,13 @@ salomeinclude_HEADERS = \
 lib_LTLIBRARIES = libNMTTools.la
 
 dist_libNMTTools_la_SOURCES = \
+       NMTTools_CheckerSI.cxx \
+       NMTTools_CheckerSI_1.cxx \
        NMTTools_CommonBlockAPI.cxx \
        NMTTools_CommonBlock.cxx \
        NMTTools_CommonBlockPool_0.cxx \
        NMTTools_CoupleOfShape.cxx \
        NMTTools_DEProcessor.cxx \
-       NMTTools_DSFiller.cxx \
        NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_0.cxx \
        NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_0.cxx \
        NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_0.cxx \
@@ -105,7 +104,6 @@ dist_libNMTTools_la_SOURCES = \
        NMTTools_PaveFiller_8.cxx \
        NMTTools_PaveFiller_9.cxx \
        NMTTools_PaveFiller.cxx \
-       NMTTools_PCurveMaker.cxx \
        NMTTools_Tools.cxx \
        NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock_0.cxx \
        NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_0.cxx \
index 6342a3082816a076090775dab1e62d9764d917cb..14ce83e18de44cb5602624cf88063d0d2bde7593 100644 (file)
@@ -44,18 +44,21 @@ uses
     NMTDS
 
 is 
-    class IteratorOfCoupleOfShape; 
-    class DSFiller; 
+    --class IteratorOfCoupleOfShape; 
+    --class DSFiller; 
     class PaveFiller; 
     class Tools; 
     class CommonBlock; 
     class CommonBlockAPI; 
-    class PCurveMaker; 
+    --class PCurveMaker; 
     class DEProcessor; 
-    class CoupleOfShape; 
-        
+    class CoupleOfShape;  
+    --modified by NIZNHY-PKV Mon Feb 19 11:39:24 2007f
+    class CheckerSI;
+    --modified by NIZNHY-PKV Mon Feb 19 11:39:27 2007t 
+
     pointer PPaveFiller to PaveFiller from NMTTools;
-    pointer PDSFiller   to DSFiller   from NMTTools;
+    --pointer PDSFiller   to DSFiller   from NMTTools;
 
     class ListOfCommonBlock  instantiates  
        List from TCollection(CommonBlock from NMTTools); 
diff --git a/src/NMTTools/NMTTools_CheckerSI.cdl b/src/NMTTools/NMTTools_CheckerSI.cdl
new file mode 100644 (file)
index 0000000..50518ec
--- /dev/null
@@ -0,0 +1,64 @@
+-- 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.
+--
+-- You should have received a copy of the GNU Lesser General Public  
+-- License along with this library; if not, write to the Free Software 
+-- Foundation, 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
+
+
+class CheckerSI from NMTTools 
+       inherits PaveFiller from NMTTools 
+       ---Purpose: 
+
+uses 
+    ShapeEnum  from  TopAbs
+
+--raises
+
+is
+    Create 
+       returns CheckerSI from NMTTools;  
+    ---C++: alias "Standard_EXPORT virtual ~NMTTools_CheckerSI();" 
+     
+    Perform (me:out) 
+       is redefined; 
+        
+    Init  (me:out) 
+       is redefined protected;
+    Clear (me:out) 
+       is redefined protected;
+    PreparePaveBlocks (me:out;   
+           nE:Integer from Standard) 
+       is redefined protected;                 
+
+    PreparePaveBlocks (me:out; 
+           aType1: ShapeEnum  from  TopAbs; 
+           aType2: ShapeEnum  from  TopAbs) 
+       is redefined protected; 
+    
+    StopStatus(me) 
+       returns Integer from Standard;   
+
+
+fields
+    myStopStatus: Integer from Standard is protected; 
+     
+end CheckerSI;
diff --git a/src/NMTTools/NMTTools_CheckerSI.cxx b/src/NMTTools/NMTTools_CheckerSI.cxx
new file mode 100644 (file)
index 0000000..f315879
--- /dev/null
@@ -0,0 +1,177 @@
+// 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.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, 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
+//             <pkv@irinox>
+
+
+#include <NMTTools_CheckerSI.ixx>
+
+#include <NMTDS_ShapesDataStructure.hxx>
+#include <NMTDS_IteratorCheckerSI.hxx>
+#include <NMTDS_InterfPool.hxx>
+#include <NMTTools_DEProcessor.hxx>
+
+//=======================================================================
+//function : 
+//purpose  : 
+//=======================================================================
+  NMTTools_CheckerSI::NMTTools_CheckerSI()
+:
+  NMTTools_PaveFiller()
+{
+  myStopStatus=0;
+}
+//=======================================================================
+//function : ~
+//purpose  : 
+//=======================================================================
+  NMTTools_CheckerSI::~NMTTools_CheckerSI()
+{
+}
+//=======================================================================
+//function : Clear
+//purpose  : 
+//=======================================================================
+  void NMTTools_CheckerSI::Clear()
+{
+  NMTTools_PaveFiller::Clear();
+}
+//=======================================================================
+//function : StopStatus
+//purpose  : 
+//=======================================================================
+  Standard_Integer NMTTools_CheckerSI::StopStatus()const
+{
+  return myStopStatus;
+}
+//=======================================================================
+//function : Init
+//purpose  : 
+//=======================================================================
+  void NMTTools_CheckerSI::Init()
+{
+  myIsDone=Standard_False;
+  if (myCompositeShape.IsNull()) {
+    return;
+  }
+  //
+  Clear();
+  // 1.
+  myDS=new NMTDS_ShapesDataStructure;
+  myDS->SetCompositeShape(myCompositeShape);
+  myDS->Init();
+  //
+  // 2.
+  myDSIt=new NMTDS_IteratorCheckerSI;
+  myDSIt->SetDS(myDS);
+  myDSIt->Prepare();
+  //
+  // 4.
+  myNbSources=myDS->NumberOfShapesOfTheObject()+
+              myDS->NumberOfShapesOfTheTool();
+  myNbEdges=myDS->NbEdges();
+  // 5
+  myIP=new NMTDS_InterfPool;
+}
+//=======================================================================
+//function : Perform
+//purpose  : 
+//=======================================================================
+  void NMTTools_CheckerSI::Perform()
+{
+  myIsDone=Standard_False;
+  myStopStatus=0;
+  //
+  Init();
+  //1.VV
+  //
+  PerformVV();
+  //
+  // 2.VE
+  myPavePool.Resize (myNbEdges);
+
+  PrepareEdges();
+  //
+  PerformVE();
+  //
+  // 3.VF
+  PerformVF();
+  //
+  // 4.EE
+  myCommonBlockPool.Resize (myNbEdges);
+  mySplitShapesPool.Resize (myNbEdges);
+  myPavePoolNew    .Resize (myNbEdges);
+  //
+  PreparePaveBlocks(TopAbs_VERTEX, TopAbs_EDGE);
+  if (myStopStatus) {
+    return;
+  }
+  PreparePaveBlocks(TopAbs_EDGE, TopAbs_EDGE);
+  if (myStopStatus) {
+    return;
+  }
+  //
+  PerformEE();
+  //
+  RefinePavePool ();
+  if (myStopStatus) {
+    return;
+  }
+  //
+  myPavePoolNew.Destroy();
+  myPavePoolNew.Resize (myNbEdges);
+  //
+  // 5.EF
+  PreparePaveBlocks(TopAbs_EDGE, TopAbs_FACE);
+  if (myStopStatus) {
+    return;
+  }
+  //
+  PerformEF();
+  //
+  RefinePavePool();
+  if (myStopStatus) {
+    return;
+  }
+  //
+  myPavePoolNew.Destroy();
+  //
+  MakeSplitEdges();
+  //
+  UpdateCommonBlocks();
+  //
+  // 6. FF
+  PerformFF ();
+  //
+  MakeBlocks();
+  //
+  MakePCurves();
+  //
+  // 7. Postprocessing 
+  UpdatePaveBlocks();
+  //
+  NMTTools_DEProcessor aDEP(*this);
+  aDEP.Do();
+  //
+  MakeAloneVertices();
+  //
+  myIsDone=Standard_True;
+}
diff --git a/src/NMTTools/NMTTools_CheckerSI.hxx b/src/NMTTools/NMTTools_CheckerSI.hxx
new file mode 100644 (file)
index 0000000..4aacb49
--- /dev/null
@@ -0,0 +1,118 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// 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_CheckerSI_HeaderFile
+#define _NMTTools_CheckerSI_HeaderFile
+
+#ifndef _Standard_Integer_HeaderFile
+#include <Standard_Integer.hxx>
+#endif
+#ifndef _NMTTools_PaveFiller_HeaderFile
+#include <NMTTools_PaveFiller.hxx>
+#endif
+#ifndef _TopAbs_ShapeEnum_HeaderFile
+#include <TopAbs_ShapeEnum.hxx>
+#endif
+
+
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
+
+class NMTTools_CheckerSI  : public NMTTools_PaveFiller {
+
+public:
+
+    void* operator new(size_t,void* anAddress) 
+      {
+        return anAddress;
+      }
+    void* operator new(size_t size) 
+      { 
+        return Standard::Allocate(size); 
+      }
+    void  operator delete(void *anAddress) 
+      { 
+        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+      }
+ // Methods PUBLIC
+ // 
+
+
+Standard_EXPORT NMTTools_CheckerSI();
+Standard_EXPORT virtual ~NMTTools_CheckerSI();
+
+
+Standard_EXPORT virtual  void Perform() ;
+
+
+Standard_EXPORT   Standard_Integer StopStatus() const;
+
+
+
+
+
+protected:
+
+ // Methods PROTECTED
+ // 
+
+
+Standard_EXPORT virtual  void Init() ;
+
+
+Standard_EXPORT virtual  void Clear() ;
+
+
+Standard_EXPORT virtual  void PreparePaveBlocks(const Standard_Integer nE) ;
+
+
+Standard_EXPORT virtual  void PreparePaveBlocks(const TopAbs_ShapeEnum aType1,const TopAbs_ShapeEnum aType2) ;
+
+
+ // Fields PROTECTED
+ //
+Standard_Integer myStopStatus;
+
+
+private: 
+
+ // Methods PRIVATE
+ // 
+
+
+ // Fields PRIVATE
+ //
+
+
+};
+
+
+
+
+
+// other Inline functions and methods (like "C++: function call" methods)
+//
+
+
+#endif
diff --git a/src/NMTTools/NMTTools_CheckerSI.ixx b/src/NMTTools/NMTTools_CheckerSI.ixx
new file mode 100644 (file)
index 0000000..5d3e020
--- /dev/null
@@ -0,0 +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
+
+#include <NMTTools_CheckerSI.jxx>
+
+
+
diff --git a/src/NMTTools/NMTTools_CheckerSI.jxx b/src/NMTTools/NMTTools_CheckerSI.jxx
new file mode 100644 (file)
index 0000000..68bdc30
--- /dev/null
@@ -0,0 +1,22 @@
+// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+
+#ifndef _NMTTools_CheckerSI_HeaderFile
+#include <NMTTools_CheckerSI.hxx>
+#endif
diff --git a/src/NMTTools/NMTTools_CheckerSI_1.cxx b/src/NMTTools/NMTTools_CheckerSI_1.cxx
new file mode 100755 (executable)
index 0000000..36ab867
--- /dev/null
@@ -0,0 +1,160 @@
+// 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.
+//
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
+// Foundation, 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
+//             <pkv@irinox>
+
+
+#include <NMTTools_CheckerSI.ixx>
+#include <NMTDS_ShapesDataStructure.hxx>
+#include <NMTDS_IteratorCheckerSI.hxx>
+
+#include <NMTDS_InterfPool.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS_Vertex.hxx>
+#include <BOPTools_ListOfPaveBlock.hxx>
+#include <TopoDS.hxx>
+#include <BRep_Tool.hxx>
+#include <BOPTools_PaveSet.hxx>
+#include <BOPTools_PaveBlockIterator.hxx>
+#include <BOPTools_PaveBlock.hxx>
+#include <IntTools_Range.hxx>
+#include <BOPTools_Pave.hxx>
+#include <IntTools_ShrunkRange.hxx>
+#include <BOPTColStd_Failure.hxx>
+#include <BOPTColStd_Dump.hxx>
+#include <Geom_Curve.hxx>
+#include <gp_Pnt.hxx>
+
+
+
+static
+  Standard_Boolean IsValid(const TopoDS_Edge& aE,
+                          const TopoDS_Vertex& aV,
+                          const Standard_Real aTV1,
+                          const Standard_Real aTV2);
+
+//=======================================================================
+// function: PreparePaveBlocks
+// purpose: 
+//=======================================================================
+  void NMTTools_CheckerSI::PreparePaveBlocks(const TopAbs_ShapeEnum aType1, 
+                                            const TopAbs_ShapeEnum aType2)
+{
+  NMTTools_PaveFiller::PreparePaveBlocks(aType1, aType2);
+}
+//=======================================================================
+// function: PreparePaveBlocks
+// purpose: 
+//=======================================================================
+  void NMTTools_CheckerSI::PreparePaveBlocks(const Standard_Integer nE)
+{
+  myIsDone=Standard_False;
+  //
+  char buf[32]={"SR"};
+  Standard_Boolean bIsValid;
+  Standard_Integer nV1, nV2, iErr;
+  Standard_Real aT1, aT2;
+  TopoDS_Edge aE;
+  TopoDS_Vertex aV1, aV2;
+  //
+  BOPTools_ListOfPaveBlock& aLPB=mySplitShapesPool(myDS->RefEdge(nE));
+  // Edge 
+  aE=TopoDS::Edge(myDS->Shape(nE));
+  if (BRep_Tool::Degenerated(aE)) {
+    myIsDone=Standard_True;
+    return;
+  }
+  //
+  BOPTools_PaveSet& aPS=myPavePool(myDS->RefEdge(nE));
+  
+  BOPTools_PaveBlockIterator aPBIt(nE, aPS);
+  for (; aPBIt.More(); aPBIt.Next()) {
+    BOPTools_PaveBlock& aPB=aPBIt.Value();
+    const IntTools_Range& aRange=aPB.Range();
+    //
+    const BOPTools_Pave& aPave1=aPB.Pave1();
+    nV1=aPave1.Index();
+    aV1=TopoDS::Vertex(myDS->Shape(nV1));
+    aT1=aPave1.Param();
+    //
+    const BOPTools_Pave& aPave2=aPB.Pave2();
+    nV2=aPave2.Index();
+    aV2=TopoDS::Vertex(myDS->Shape(nV2)); 
+    aT2=aPave2.Param();
+    //
+    bIsValid=Standard_True;
+    if (nV1==nV2) {
+      bIsValid=IsValid(aE, aV1, aT1, aT2);
+      if (!bIsValid) {
+       //printf(" pb SR: nV    nE: %d  nV1:( %d %15.10lf ) nV2:( %d %15.10lf )\n", nE, nV1, aT1, nV2, aT2);
+       myStopStatus=1;
+      }
+    }
+    //
+    IntTools_ShrunkRange aSR (aE, aV1, aV2, aRange, myContext);
+    iErr=aSR.ErrorStatus();
+    if (!aSR.IsDone()) {
+      //printf(" pb SR: Done  nE: %d  nV1:( %d %15.10lf ) nV2:( %d %15.10lf )\n", nE, nV1, aT1, nV2, aT2);
+      aSR.SetShrunkRange(aRange);
+      //throw BOPTColStd_Failure(buf) ;
+    }
+    else if (iErr!=6) {
+      CorrectShrunkRanges (0, aPave1, aSR);
+      CorrectShrunkRanges (1, aPave2, aSR);
+    }
+    aPB.SetShrunkRange(aSR);
+    aLPB.Append(aPB);
+  } //for (; aPBIt.More(); aPBIt.Next()) 
+  myIsDone=Standard_True;
+}
+
+//=======================================================================
+//function : IsValid
+//purpose  : 
+//=======================================================================
+Standard_Boolean IsValid(const TopoDS_Edge& aE,
+                        const TopoDS_Vertex& aV,
+                        const Standard_Real aTV1,
+                        const Standard_Real aTV2)
+{
+  Standard_Boolean bRet;
+  Standard_Integer i, aNbP, aNbP1;
+  Standard_Real aTolV2, aTC1, aTC2, dT, aTC, aD2;
+  Handle(Geom_Curve) aC;
+  gp_Pnt aPV, aPC;
+  //
+  bRet=Standard_False;
+  aTolV2=BRep_Tool::Tolerance(aV);
+  aTolV2=aTolV2*aTolV2;
+  aPV=BRep_Tool::Pnt(aV);
+  aC=BRep_Tool::Curve(aE, aTC1, aTC2);
+  aNbP=7;
+  aNbP1=aNbP-1;
+  dT=(aTV2-aTV1)/aNbP1;
+  //
+  for (i=1; i<aNbP-1 && !bRet ; ++i) {
+    aTC=aTV1+dT*i;
+    aC->D0(aTC, aPC);
+    aD2=aPV.SquareDistance(aPC);
+    bRet=aD2>aTolV2;
+  }
+  return bRet;
+}
index 9c5f860f5fca955c6cf1ba8dc0f371ed0fbe8e5a..0933b0104516cb8ef58776ecc00a8dba94345d70 100644 (file)
@@ -74,7 +74,7 @@
 #include <BOPTools_PavePool.hxx>
 #include <BOPTools_PaveSet.hxx>
 #include <BOPTools_Tools3D.hxx>
-#include <BOPTools_InterferencePool.hxx>
+
 #include <BOPTools_CArray1OfSSInterference.hxx>
 #include <BOPTools_SplitShapesPool.hxx>
 
@@ -90,7 +90,7 @@
 #include <ElCLib.hxx>
 #include <gp_Lin2d.hxx>
 
-
+#include <NMTDS_InterfPool.hxx>
 
 //=======================================================================
 // function: NMTTools_DEProcessor::NMTTools_DEProcessor
   void NMTTools_DEProcessor::DoPaves()
 {
 
-  Standard_Integer i, aNbE, nED, nVD, nFD, aNbLPB;
+  Standard_Integer i, aNbE, nED, nVD, aNbLPB, nFD;
   //
   nFD=0;
   aNbE=myDEMap.Extent();
     TColStd_ListIteratorOfListOfInteger anIt(nLF);
     for (; anIt.More(); anIt.Next()) {
       nFD=anIt.Value();
-      //
+      
       BOPTools_ListOfPaveBlock aLPB;
       FindPaveBlocks(nED, nVD, nFD, aLPB);
-      //modified by NIZNHY-PKV Fri Mar 23 10:35:27 2007f
-      //
+      // xxf
       aNbLPB=aLPB.Extent();
       if (!aNbLPB) {
        continue;
       }
-      //modified by NIZNHY-PKV Fri Mar 23 10:35:33 2007t
+      //xxt
       FillPaveSet (nED, nVD, nFD, aLPB);
     }
     // 
   BOPTools_ListIteratorOfListOfPaveBlock anIt;
   Standard_Integer i, aNb, nF2, nV;
   //
-  BOPTools_CArray1OfSSInterference& aFFs=(myFiller->InterfPool())->SSInterferences();
+  //BOPTools_CArray1OfSSInterference& aFFs=(myFiller->InterfPool())->SSInterferences();
+  BOPTools_CArray1OfSSInterference& aFFs=(myFiller->IP())->SSInterferences();
   //
   aNb=aFFs.Extent();
   for (i=1; i<=aNb; ++i) {
index 3cee74a1a95e9f2609fe5abc39b36c3567e89d44..ca5202204ad707a37599291cf6a27ccf114833aa 100644 (file)
@@ -28,28 +28,25 @@ class PaveFiller from NMTTools
        ---Purpose: 
 
 uses   
-    -- Modified to add new definitions Thu Sep 14 14:35:18 2006 
-    -- Contribution of Samtech www.samcef.com BEGIN   
-    ListOfInteger from TColStd, 
-    -- Contribution of Samtech www.samcef.com END 
     DataMapOfIntegerInteger from TColStd,
     Pnt from gp,
     ShapeEnum  from  TopAbs, 
     Vertex     from  TopoDS, 
     Face       from  TopoDS,  
+    Shape      from TopoDS, 
     -- Modified to add new definitions Thu Sep 14 14:35:18 2006 
     -- Contribution of Samtech www.samcef.com BEGIN 
     Edge       from  TopoDS, 
-    ListOfShape from TopTools, 
+    ListOfShape from TopTools,  
+    DataMapOfShapeShape from TopTools,
+    ListOfInteger from TColStd,  
     -- Contribution of Samtech www.samcef.com END 
     
     Context     from IntTools, 
     ShrunkRange from IntTools,
     
     IndexedDataMapOfShapeInteger from BooleanOperations, 
-    
-    InterferencePool  from BOPTools,
-    PInterferencePool from BOPTools, 
+
     PavePool          from BOPTools, 
     PaveBlock         from BOPTools,
     ListOfPaveBlock   from BOPTools,
@@ -66,48 +63,60 @@ uses
     CommonBlockPool         from NMTTools, 
     CommonBlock             from NMTTools, 
     ListOfCommonBlock       from NMTTools, 
-    -- Modified to add new definitions Thu Sep 14 14:35:18 2006 
-    -- Contribution of Samtech www.samcef.com BEGIN
-    IndexedDataMapOfIndexedMapOfInteger from NMTTools,  
-    -- Contribution of Samtech www.samcef.com END
+   
     ShapesDataStructure  from NMTDS,  
+
     -- Modified to add new definitions Thu Sep 14 14:35:18 2006 
     -- Contribution of Samtech www.samcef.com BEGIN
     PShapesDataStructure from NMTDS, 
-    Iterator             from NMTDS 
+    Iterator             from NMTDS, 
+    IndexedDataMapOfIndexedMapOfInteger from NMTTools,  
     -- Contribution of Samtech www.samcef.com END
+     
+    PIterator from NMTDS, 
+    PInterfPool from NMTDS
 
 --raises
 
 is 
     Create 
-       returns PaveFiller from NMTTools; 
+       returns PaveFiller from NMTTools;  
+    ---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller();"
       
-    Create(aIP:InterferencePool from BOPTools)
-       returns PaveFiller from NMTTools; 
+  
      
-    Destroy (me: in out) 
-       is  virtual;    
-    ---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller(){Destroy();}"
-    -- 
-    --  Selectors/Modifiers
-    SetInterferencePool(me:out; 
-           aIP:InterferencePool from BOPTools);
-    
-    InterfPool(me:out) 
-       returns PInterferencePool from BOPTools; 
+    SetCompositeShape (me:out;  
+           aS:  Shape from TopoDS);  
+     
+    CompositeShape(me) 
+       returns  Shape from TopoDS; 
+       ---C++:  return  const&  
+       
+            
+    DS(me:out) 
+       returns PShapesDataStructure from NMTDS;  
+    DSIt(me:out) 
+       returns PIterator from NMTDS; 
+     
+    IP(me:out)  
+       returns PInterfPool from NMTDS; 
     --  
     --  Perform the algo  
     -- Modified to add new method Thu Sep 14 14:35:18 2006 
     -- Contribution of Samtech www.samcef.com BEGIN      
-    Init       (me:out); 
+    Init       (me:out) 
+       is virtual  protected; 
     -- Contribution of Samtech www.samcef.com END
         
+    Clear   (me:out) 
+       is virtual  protected;
+
     Perform    (me:out) 
        is virtual;   
         
     PerformVV  (me:out) 
-       is virtual ;  
+       is virtual protected;  
      
     PerformVE  (me:out) 
        is virtual protected; 
@@ -141,29 +150,16 @@ is
     PreparePaveBlocks (me:out;   
            anE:Integer from Standard) 
        is virtual protected;             
-                      
-    PerformNewVertices  (me:out) 
-       is virtual ;  
+       
      
     PrepareEdges  (me:out) 
        is virtual protected;  
      
-    SortTypes      (me;   
-           anInd1:in out Integer from Standard; 
-            anInd2:in out Integer from Standard) 
-       is protected; 
-     
-    ExpectedPoolLength(me) 
-       returns  Integer from Standard 
-       is protected;  
     --
     -- Query section 
     IsDone(me) 
        returns  Boolean from Standard; 
 
-    DS(me:out) 
-       returns PShapesDataStructure from NMTDS;  
-        
     Context(me) 
         returns Context from IntTools; 
        ---C++:return const &   
@@ -200,7 +196,7 @@ is
                    nV:  Integer  from  Standard) 
        returns Integer from Standard; 
 
-    IsSuccesstorsComputed (me;  
+    IsSuccessorsComputed (me;  
            iF1:Integer from  Standard; 
            iF2:Integer from  Standard) 
        returns  Boolean from Standard 
@@ -369,16 +365,16 @@ is
     RealPaveBlock(me:out;   
            aPB:PaveBlock from BOPTools) 
        returns PaveBlock from BOPTools; 
-    ---C++: return const &       
+    ---C++: return const &        
     
-    -- Modified to add new method Thu Sep 14 14:35:18 2006 
-    -- Contribution of Samtech www.samcef.com BEGIN  
+    --modified by NIZNHY-PKV Fri Nov 30 10:30:54 2007  f
     RealPaveBlock(me:out;   
            aPB:PaveBlock from BOPTools; 
-           aLB:out ListOfInteger from TColStd) 
+           aLB:out ListOfInteger from TColStd; 
+           aIsCommonBlock:out  Integer from Standard) 
        returns PaveBlock from BOPTools; 
     ---C++: return const &      
-    -- Contribution of Samtech www.samcef.com END 
+    --modified by NIZNHY-PKV Fri Nov 30 10:30:58 2007  t 
      
     RealSplitsFace  (me:out;  
                 nF2 :Integer from Standard;  
@@ -500,18 +496,16 @@ is
                 aLSE :out ListOfShape   from TopTools); 
     -- Contribution of Samtech www.samcef.com END 
 
+    FuseVertices(me; 
+       aC:Shape from TopoDS; 
+       aDMVV:  out  DataMapOfShapeShape from TopTools);  
+     
 fields 
-    myIntrPool         :  PInterferencePool from BOPTools      is protected; 
     myDS               :  PShapesDataStructure from NMTDS      is protected;   
     myIsDone           :  Boolean from Standard                 is protected; 
     myNbSources        :  Integer from Standard                 is protected;  
     myNbEdges          :  Integer from Standard                is protected;  
 
-    -- Modified to add new field Thu Sep 14 14:35:18 2006 
-    -- Contribution of Samtech www.samcef.com BEGIN     
-    myDSIt             :  Iterator from NMTDS is protected; 
-    -- Contribution of Samtech www.samcef.com END 
-     
     myPavePool         :  PavePool from BOPTools                is protected;     
     myPavePoolNew      :  PavePool from BOPTools                is protected;  
     myCommonBlockPool  :  CommonBlockPool from NMTTools         is protected;  
@@ -521,6 +515,9 @@ fields
     mySectionAttribute :  SSIntersectionAttribute from BOPTools is protected; 
     myAloneVertices    :  IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;   
     --
-    myVSD              :  DataMapOfIntegerInteger from TColStd is protected;
-    --
+    myVSD              :  DataMapOfIntegerInteger from TColStd is protected; 
+    myDSIt             :  PIterator from NMTDS is protected;  
+    myCompositeShape   :  Shape from TopoDS is protected;
+    myIP               :  PInterfPool from NMTDS is protected;     
+
 end PaveFiller;
index 9c76d8910d5521a1ec049e919fec55635afa35f3..236a077dcc04ffb74213b12b852a20c02c23f412 100644 (file)
 #include <BOPTColStd_Failure.hxx>
 #include <NMTDS_ShapesDataStructure.hxx>
 #include <NMTTools_DEProcessor.hxx>
+#include <NMTDS_Iterator.hxx>
+#include <NMTDS_InterfPool.hxx>
 
-//
 //=======================================================================
 // function: NMTTools_PaveFiller::NMTTools_PaveFiller
 // purpose: 
 //=======================================================================
   NMTTools_PaveFiller::NMTTools_PaveFiller()
 {
-  myIntrPool=NULL;
   myDS=NULL;
+  myDSIt=NULL;
   myIsDone=Standard_False;
   myNbSources=0;
   myNbEdges=0;
+  myIP=NULL;
 }
 //=======================================================================
-// function:NMTTools_PaveFiller::NMTTools_PaveFiller
+// function: ~
 // purpose: 
 //=======================================================================
-  NMTTools_PaveFiller::NMTTools_PaveFiller(const BOPTools_InterferencePool& aIP)
+  NMTTools_PaveFiller::~NMTTools_PaveFiller()
 {
-  SetInterferencePool(aIP);
+  Clear();
 }
 //=======================================================================
-// function: Destroy
+// function: Clear
 // purpose: 
 //=======================================================================
-  void NMTTools_PaveFiller::Destroy()
+  void NMTTools_PaveFiller::Clear()
 {
+  if (myDSIt) {
+    delete myDSIt;
+  } 
+  if (myDS) {
+    delete myDS;
+  }
+  myDSIt=NULL;
+  myDS=NULL;
+  
+  if (myIP) {
+    delete myIP;
+  }
+  myIP=NULL;
 }
 //=======================================================================
-// function: SetInterferencePool
+// function: SetCompositeShape
 // purpose: 
 //=======================================================================
-  void NMTTools_PaveFiller::SetInterferencePool(const BOPTools_InterferencePool& aIP)
+  void NMTTools_PaveFiller::SetCompositeShape(const TopoDS_Shape& aS)
 {
-  myIsDone=Standard_False;
-  //
-  myIntrPool=(BOPTools_InterferencePool*)&aIP;
-  myDS=(NMTDS_ShapesDataStructure*)myIntrPool->DS();
-  myNbSources=myDS->NumberOfShapesOfTheObject()+myDS->NumberOfShapesOfTheTool();
-  myNbEdges=myDS->NbEdges();
+  myCompositeShape=aS;
 }
 //=======================================================================
-// function:  InterfPool
+// function: CompositeShape
 // purpose: 
 //=======================================================================
-  BOPTools_PInterferencePool NMTTools_PaveFiller::InterfPool()
+  const TopoDS_Shape& NMTTools_PaveFiller::CompositeShape()const
 {
-  return myIntrPool;
+  return myCompositeShape;
 }
 //=======================================================================
-// function:IsDone
+// function:  DS
 // purpose: 
 //=======================================================================
-  Standard_Boolean NMTTools_PaveFiller::IsDone() const
+  NMTDS_PShapesDataStructure NMTTools_PaveFiller::DS()
 {
-  return myIsDone;
+  return myDS;
 }
 //=======================================================================
-// function:  DS
+// function: DSIt
 // purpose: 
 //=======================================================================
-  NMTDS_PShapesDataStructure NMTTools_PaveFiller::DS()
+  NMTDS_PIterator NMTTools_PaveFiller::DSIt()
 {
-  return myDS;
+  return myDSIt;
+}
+//=======================================================================
+// function:  IP
+// purpose: 
+//=======================================================================
+  NMTDS_PInterfPool NMTTools_PaveFiller::IP()
+{
+  return myIP;
+}
+//=======================================================================
+// function:IsDone
+// purpose: 
+//=======================================================================
+  Standard_Boolean NMTTools_PaveFiller::IsDone() const
+{
+  return myIsDone;
 }
 //=======================================================================
 // function: Context
 {
   return mySplitShapesPool;
 }
-
 //=======================================================================
 // function:  ChangeSplitShapesPool
 // purpose: 
 //=======================================================================
   void NMTTools_PaveFiller::Init()
 {
-  myDSIt.SetDS(myDS);
-  // Modified Thu Sep 14 14:35:18 2006 
-  // Contribution of Samtech www.samcef.com BEGIN
-  myDSIt.Prepare();
-  // Contribution of Samtech www.samcef.com END 
+  myIsDone=Standard_False;
+  if (myCompositeShape.IsNull()) {
+    return;
+  }
+  //
+  Clear();
+  // 1.
+  myDS=new NMTDS_ShapesDataStructure;
+  myDS->SetCompositeShape(myCompositeShape);
+  myDS->Init();
+  //
+  // 2.
+  myDSIt=new NMTDS_Iterator;
+  myDSIt->SetDS(myDS);
+  myDSIt->Prepare();
+  //
+  // 3.
+  myNbSources=myDS->NumberOfShapesOfTheObject()+
+              myDS->NumberOfShapesOfTheTool();
+  myNbEdges=myDS->NbEdges();
+  //
+  // 4
+  myIP=new NMTDS_InterfPool;
 }
 
 //=======================================================================
 {
   myIsDone=Standard_False;
   //
+  //----------------
   try {
     // 0.
     // Modified Thu Sep 14 14:35:18 2006 
     //1.VV
     //
     PerformVV();
-    PerformNewVertices();
     //
     // 2.VE
     myPavePool.Resize (myNbEdges);
     //
     // 5.EF
     PreparePaveBlocks(TopAbs_EDGE, TopAbs_FACE);
-
     PerformEF();
     //
     RefinePavePool();
index ab479896eadc3f6bb9333ee7df0a48b2822e1273..35b23a61da0dad8eacf1681a1dbec535c9901375 100644 (file)
@@ -1,28 +1,27 @@
-// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// File generated by CPPExt (Value)
 //
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+//                     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 distributed in the hope that it will be useful
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// 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
 
-#ifndef _BOPTools_PInterferencePool_HeaderFile
-#include <BOPTools_PInterferencePool.hxx>
-#endif
 #ifndef _NMTDS_PShapesDataStructure_HeaderFile
 #include <NMTDS_PShapesDataStructure.hxx>
 #endif
@@ -32,9 +31,6 @@
 #ifndef _Standard_Integer_HeaderFile
 #include <Standard_Integer.hxx>
 #endif
-#ifndef _NMTDS_Iterator_HeaderFile
-#include <NMTDS_Iterator.hxx>
-#endif
 #ifndef _BOPTools_PavePool_HeaderFile
 #include <BOPTools_PavePool.hxx>
 #endif
 #ifndef _TColStd_DataMapOfIntegerInteger_HeaderFile
 #include <TColStd_DataMapOfIntegerInteger.hxx>
 #endif
+#ifndef _NMTDS_PIterator_HeaderFile
+#include <NMTDS_PIterator.hxx>
+#endif
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
+#endif
+#ifndef _NMTDS_PInterfPool_HeaderFile
+#include <NMTDS_PInterfPool.hxx>
+#endif
 #ifndef _TopAbs_ShapeEnum_HeaderFile
 #include <TopAbs_ShapeEnum.hxx>
 #endif
 #ifndef _Standard_Real_HeaderFile
 #include <Standard_Real.hxx>
 #endif
-class BOPTools_InterferencePool;
+class TopoDS_Shape;
 class BOPTools_Pave;
 class IntTools_ShrunkRange;
 class IntTools_Context;
@@ -86,6 +91,7 @@ class gp_Pnt;
 class NMTTools_IndexedDataMapOfIndexedMapOfInteger;
 class TopTools_ListOfShape;
 class TopoDS_Edge;
+class TopTools_DataMapOfShapeShape;
 
 
 #ifndef _Standard_HeaderFile
@@ -117,39 +123,30 @@ public:
 
 
 Standard_EXPORT NMTTools_PaveFiller();
+Standard_EXPORT virtual ~NMTTools_PaveFiller();
 
 
-Standard_EXPORT NMTTools_PaveFiller(const BOPTools_InterferencePool& aIP);
+Standard_EXPORT   void SetCompositeShape(const TopoDS_Shape& aS) ;
 
 
-Standard_EXPORT virtual  void Destroy() ;
-Standard_EXPORT virtual ~NMTTools_PaveFiller(){Destroy();}
+Standard_EXPORT  const TopoDS_Shape& CompositeShape() const;
 
 
-Standard_EXPORT   void SetInterferencePool(const BOPTools_InterferencePool& aIP) ;
+Standard_EXPORT   NMTDS_PShapesDataStructure DS() ;
 
 
-Standard_EXPORT   BOPTools_PInterferencePool InterfPool() ;
+Standard_EXPORT   NMTDS_PIterator DSIt() ;
 
 
-Standard_EXPORT   void Init() ;
+Standard_EXPORT   NMTDS_PInterfPool IP() ;
 
 
 Standard_EXPORT virtual  void Perform() ;
 
 
-Standard_EXPORT virtual  void PerformVV() ;
-
-
-Standard_EXPORT virtual  void PerformNewVertices() ;
-
-
 Standard_EXPORT   Standard_Boolean IsDone() const;
 
 
-Standard_EXPORT   NMTDS_PShapesDataStructure DS() ;
-
-
 Standard_EXPORT  const IntTools_Context& Context() const;
 
 
@@ -222,7 +219,7 @@ Standard_EXPORT   void PrepareFace(const Standard_Integer nF,TopoDS_Face& aF) ;
 Standard_EXPORT  const BOPTools_PaveBlock& RealPaveBlock(const BOPTools_PaveBlock& aPB) ;
 
 
-Standard_EXPORT  const BOPTools_PaveBlock& RealPaveBlock(const BOPTools_PaveBlock& aPB,TColStd_ListOfInteger& aLB) ;
+Standard_EXPORT  const BOPTools_PaveBlock& RealPaveBlock(const BOPTools_PaveBlock& aPB,TColStd_ListOfInteger& aLB,Standard_Integer& aIsCommonBlock) ;
 
 
 Standard_EXPORT   void RealSplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
@@ -285,6 +282,9 @@ Standard_EXPORT   Standard_Integer CheckIntermediatePoint(const BOPTools_PaveBlo
 Standard_EXPORT   void SharedEdges(const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLNE,TopTools_ListOfShape& aLSE) ;
 
 
+Standard_EXPORT   void FuseVertices(const TopoDS_Shape& aC,TopTools_DataMapOfShapeShape& aDMVV) const;
+
+
 
 
 
@@ -294,6 +294,15 @@ protected:
  // 
 
 
+Standard_EXPORT virtual  void Init() ;
+
+
+Standard_EXPORT virtual  void Clear() ;
+
+
+Standard_EXPORT virtual  void PerformVV() ;
+
+
 Standard_EXPORT virtual  void PerformVE() ;
 
 
@@ -324,13 +333,7 @@ Standard_EXPORT virtual  void PreparePaveBlocks(const Standard_Integer anE) ;
 Standard_EXPORT virtual  void PrepareEdges() ;
 
 
-Standard_EXPORT   void SortTypes(Standard_Integer& anInd1,Standard_Integer& anInd2) const;
-
-
-Standard_EXPORT   Standard_Integer ExpectedPoolLength() const;
-
-
-Standard_EXPORT   Standard_Boolean IsSuccesstorsComputed(const Standard_Integer iF1,const Standard_Integer iF2) const;
+Standard_EXPORT   Standard_Boolean IsSuccessorsComputed(const Standard_Integer iF1,const Standard_Integer iF2) const;
 
 
 Standard_EXPORT   Standard_Boolean IsBlocksCoinside(const BOPTools_PaveBlock& aPB1,const BOPTools_PaveBlock& aPB2) const;
@@ -392,12 +395,10 @@ Standard_EXPORT   void MakeAloneVertices() ;
 
  // Fields PROTECTED
  //
-BOPTools_PInterferencePool myIntrPool;
 NMTDS_PShapesDataStructure myDS;
 Standard_Boolean myIsDone;
 Standard_Integer myNbSources;
 Standard_Integer myNbEdges;
-NMTDS_Iterator myDSIt;
 BOPTools_PavePool myPavePool;
 BOPTools_PavePool myPavePoolNew;
 NMTTools_CommonBlockPool myCommonBlockPool;
@@ -406,6 +407,9 @@ IntTools_Context myContext;
 BOPTools_SSIntersectionAttribute mySectionAttribute;
 NMTTools_IndexedDataMapOfIndexedMapOfInteger myAloneVertices;
 TColStd_DataMapOfIntegerInteger myVSD;
+NMTDS_PIterator myDSIt;
+TopoDS_Shape myCompositeShape;
+NMTDS_PInterfPool myIP;
 
 
 private: 
index 0e63c963e9a887f232637aadd31255d811433980..1c7e98a59ac4ee6869c377404e9bcc2cee9b7cf0 100644 (file)
@@ -17,8 +17,8 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
-#ifndef _BOPTools_InterferencePool_HeaderFile
-#include <BOPTools_InterferencePool.hxx>
+#ifndef _TopoDS_Shape_HeaderFile
+#include <TopoDS_Shape.hxx>
 #endif
 #ifndef _BOPTools_Pave_HeaderFile
 #include <BOPTools_Pave.hxx>
@@ -89,6 +89,9 @@
 #ifndef _TopoDS_Edge_HeaderFile
 #include <TopoDS_Edge.hxx>
 #endif
+#ifndef _TopTools_DataMapOfShapeShape_HeaderFile
+#include <TopTools_DataMapOfShapeShape.hxx>
+#endif
 #ifndef _NMTTools_PaveFiller_HeaderFile
 #include <NMTTools_PaveFiller.hxx>
 #endif
index e64607d3e8d06880a03ab2e469d38f0fc55da724..6a355d3df5941f0bf7b39139b0f722df8ff41435 100644 (file)
@@ -1,65 +1,70 @@
 // Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// 
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
+// License as published by the Free Software Foundation; either 
 // version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
 // Lesser General Public License for more details.
 //
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
 // Foundation, 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
+// File:       NMTTools_PaveFiller_0.cxx
+// Created:    Mon Dec  8 11:45:51 2003
 // Author:     Peter KURNEV
 //             <pkv@irinox>
 
+
 #include <NMTTools_PaveFiller.ixx>
 
+#include <TColStd_IndexedMapOfInteger.hxx>
 #include <TopAbs_ShapeEnum.hxx>
-#include <BOPTools_ListOfCoupleOfInteger.hxx>
+
+#include <NMTDS_InterfPool.hxx>
 #include <NMTDS_ShapesDataStructure.hxx>
-#include <BooleanOperations_OnceExplorer.hxx>
+#include <NMTDS_Iterator.hxx>
 
 //=======================================================================
-//function : SortTypes
-//purpose  
+// function:IsSuccesstorsComputed
+// purpose
 //=======================================================================
-  void NMTTools_PaveFiller::SortTypes(Standard_Integer& theWhat,
-                                     Standard_Integer& theWith)const 
-{ 
-  Standard_Boolean aReverseFlag=Standard_True;
-
-  TopAbs_ShapeEnum aType1= myDS->GetShapeType(theWhat),
-                   aType2= myDS->GetShapeType(theWith);
-  
-  if (aType1==aType2)
-    return;
-  
-  if (aType1==TopAbs_EDGE && aType2==TopAbs_FACE){
-    aReverseFlag=Standard_False;
+  Standard_Boolean NMTTools_PaveFiller::IsSuccessorsComputed(const Standard_Integer aN1,
+                                                            const Standard_Integer aN2)const
+{
+  Standard_Boolean bComputed;
+  Standard_Integer i, nSuc, n1, n2, ntmp, aNbS;
+  TopAbs_ShapeEnum aType;
+  TColStd_IndexedMapOfInteger aMSuc;
+  //
+  n1=aN1;
+  n2=aN2;
+  aType=myDS->GetShapeType(aN1);
+  if (aType!=TopAbs_VERTEX) {
+    ntmp=n1;
+    n1=n2;
+    n2=ntmp;
   }
-
-  if (aType1==TopAbs_VERTEX && 
-      (aType2==TopAbs_FACE || aType2==TopAbs_EDGE)) {
-    aReverseFlag=Standard_False;
+  //
+  myDS->GetAllSuccessors(n2, aMSuc);
+  aNbS=aMSuc.Extent();
+  for (i=1; i<=aNbS; ++i) {
+    nSuc=aMSuc(i);
+    bComputed=myIP->Contains(n1, nSuc); 
+    if (bComputed) {
+      break;
+    }
   }
-  
-  Standard_Integer aWhat, aWith;
-  aWhat=(aReverseFlag) ? theWith : theWhat;
-  aWith=(aReverseFlag) ? theWhat : theWith;
-  
-  theWhat=aWhat;
-  theWith=aWith;
+  return bComputed;
 }
+/*
 //=======================================================================
 // function:  ExpectedPoolLength
 // purpose: 
@@ -72,7 +77,7 @@
   // Contribution of Samtech www.samcef.com BEGIN
   //const BOPTools_ListOfCoupleOfInteger& aLC=myDSIt.ListOfCouple();
   //aNbIIs=aLC.Extent();
-  aNbIIs=myDSIt.ExpectedLength();
+  aNbIIs=myDSIt->ExpectedLength();
   // Contribution of Samtech www.samcef.com END
   //
   if (aNbIIs==1) {
   
   return aNbIIs;
 }
+*/
+/*
 //=======================================================================
-// function:IsSuccesstorsComputed
-// purpose
+//function : SortTypes
+//purpose  
 //=======================================================================
-  Standard_Boolean NMTTools_PaveFiller::IsSuccesstorsComputed(const Standard_Integer aN1,
-                                                             const Standard_Integer aN2)const
-{
-  Standard_Integer nSuc, n1, n2;
-
-  BooleanOperations_OnceExplorer aExp(*myDS);
-  TopAbs_ShapeEnum aType=myDS->GetShapeType(aN1);
-
-  n1=aN1;
-  n2=aN2;
-
-  if (aType!=TopAbs_VERTEX) {
-    Standard_Integer ntmp=n1;
-    n1=n2;
-    n2=ntmp;
+  void NMTTools_PaveFiller::SortTypes(Standard_Integer& theWhat,
+                                     Standard_Integer& theWith)const 
+{ 
+  Standard_Integer aWhat, aWith;
+  Standard_Boolean aReverseFlag;
+  TopAbs_ShapeEnum aType1, aType2;
+  //
+  aType1= myDS->GetShapeType(theWhat),
+  aType2= myDS->GetShapeType(theWith);
+  //
+  if (aType1==aType2) {
+    return;
   }
-
-  aType=myDS->GetShapeType(n2);
-  if (aType==TopAbs_EDGE) {
-    aExp.Init(n2, TopAbs_VERTEX);
-    for (; aExp.More(); aExp.Next()) {
-      nSuc=aExp.Current();
-      if (myIntrPool->IsComputed(n1, nSuc)) {
-       return Standard_True;
-      }
-    }
-  return Standard_False;
+  //
+  aReverseFlag=Standard_True;
+  if (aType1==TopAbs_EDGE && aType2==TopAbs_FACE) {
+    aReverseFlag=Standard_False;
   }
-
-  else if (aType==TopAbs_FACE) {
-    aExp.Init(n2, TopAbs_VERTEX);
-    for (; aExp.More(); aExp.Next()) {
-      nSuc=aExp.Current();
-      if (myIntrPool->IsComputed(n1, nSuc)) {
-       return Standard_True;
-      }
-    }
-
-    aExp.Init(n2, TopAbs_EDGE);
-    for (; aExp.More(); aExp.Next()) {
-      nSuc=aExp.Current();
-      if (myIntrPool->IsComputed(n1, nSuc)) {
-       return Standard_True;
-      }
-    }
-    return Standard_False;
+  if (aType1==TopAbs_VERTEX && 
+      (aType2==TopAbs_FACE || aType2==TopAbs_EDGE)) {
+    aReverseFlag=Standard_False;
   }
-
-  return Standard_False;
+  //
+  aWhat=(aReverseFlag) ? theWith : theWhat;
+  aWith=(aReverseFlag) ? theWhat : theWith;
+  //
+  theWhat=aWhat;
+  theWith=aWith;
 }
+*/
index 086e395f62558fe2439f360edf19111e6cadd809..d4cca964a85ebc0394ca9af5e4aa3e80aff7d60d 100644 (file)
 // Created:    Mon Dec  8 11:47:55 2003
 // Author:     Peter KURNEV
 //             <pkv@irinox>
+
 #include <NMTTools_PaveFiller.ixx>
 
 #include <TColStd_DataMapOfIntegerListOfInteger.hxx>
 #include <TColStd_ListOfInteger.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
 #include <TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger.hxx>
-  
+
 #include <TopoDS.hxx>
 #include <TopoDS_Shape.hxx>
 #include <TopoDS_Vertex.hxx>
 #include <TopTools_ListOfShape.hxx>
 
 #include <IntTools_Tools.hxx>
+#include <BooleanOperations_AncestorsSeqAndSuccessorsSeq.hxx>
 #include <BOPTools_VVInterference.hxx>
 #include <BOPTools_CArray1OfVVInterference.hxx>
-#include <BOPTools_VVInterference.hxx>
-#include <BooleanOperations_AncestorsSeqAndSuccessorsSeq.hxx>
 
+#include <NMTDS_Iterator.hxx>
+#include <NMTDS_InterfPool.hxx>
 #include <NMTDS_ShapesDataStructure.hxx>
+
 #include <NMTTools_Tools.hxx>
 
 //=======================================================================
 {
   myIsDone=Standard_False;
   //
-  Standard_Integer anIndexIn, aWhat, aWith, aNbVVs, aBlockLength, aNbVSD; 
-  Standard_Integer nVnew;
+  Standard_Integer aNbVVs, aBL, aNbVSD, nVnew, i, j, n1, n2;
   TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger aIt1;
-  TColStd_ListIteratorOfListOfInteger aIt;
+  TColStd_ListIteratorOfListOfInteger aItX, aItY;
+  TColStd_ListOfInteger aLIX;
   TopTools_ListOfShape aLV;
   TopoDS_Vertex aVnew;
-  TopoDS_Shape aS;
   //
   myVSD.Clear();
   //
-  BOPTools_CArray1OfVVInterference& aVVs=myIntrPool->VVInterferences();
-  //
-  // BlockLength correction
-  aNbVVs=ExpectedPoolLength();
-  aBlockLength=aVVs.BlockLength();
-  if (aNbVVs > aBlockLength) {
-    aVVs.SetBlockLength(aNbVVs);
-  }
-  //
-  const TColStd_DataMapOfIntegerListOfInteger& aMVSD=myDSIt.SDVertices();
+  const TColStd_DataMapOfIntegerListOfInteger& aMVSD=myDSIt->SDVertices();
   aNbVSD=aMVSD.Extent();
   if (!aNbVSD) {
     return;
   }
   //
+  BOPTools_CArray1OfVVInterference& aVVs=myIP->VVInterferences();
+  //
+  // BlockLength correction
+  myDSIt->Initialize(TopAbs_VERTEX, TopAbs_VERTEX);
+  aNbVVs=myDSIt->BlockLength();
+  aBL=aVVs.BlockLength();
+  if (aNbVVs > aBL) {
+    aVVs.SetBlockLength(aNbVVs);
+  }
+  //
   aIt1.Initialize(aMVSD);
   for (; aIt1.More(); aIt1.Next()) {
     aLV.Clear();
     //
-    aWhat=aIt1.Key();
+    n1=aIt1.Key();
     const TColStd_ListOfInteger& aLIV=aIt1.Value();
     //
     // new vertex
-    aIt.Initialize(aLIV);
-    for (; aIt.More(); aIt.Next()) {
-      aWith=aIt.Value();
-      aS=myDS->Shape(aWith);
-      aLV.Append(aS);
+    const TopoDS_Shape& aS1=myDS->Shape(n1);
+    aLV.Append(aS1);
+    aItX.Initialize(aLIV);
+    for (; aItX.More(); aItX.Next()) {
+      n2=aItX.Value();
+      const TopoDS_Shape& aS2=myDS->Shape(n2);
+      aLV.Append(aS2);
     }
-    aS=myDS->Shape(aWhat);
-    aLV.Append(aS);
     //
     NMTTools_Tools::MakeNewVertex(aLV, aVnew);
     //
     nVnew=myDS->NumberOfInsertedShapes();
     myDS->SetState (nVnew, BooleanOperations_ON);
     //
+    // myVSD, aLIX
+    aLIX.Clear();
+    aLIX.Append(n1);
+    myVSD.Bind(n1, nVnew);
+    //
+    aItX.Initialize(aLIV);
+    for (; aItX.More(); aItX.Next()) {
+      n2=aItX.Value();
+      aLIX.Append(n2);
+      myVSD.Bind(n2, nVnew);
+    }
+    //
     // interferences
-    aIt.Initialize(aLIV);
-    for (; aIt.More(); aIt.Next()) {
-      aWith=aIt.Value();
-      BOPTools_VVInterference aVV(aWhat, aWith);
-      aVV.SetNewShape(nVnew);
-      anIndexIn=aVVs.Append(aVV);
-      myIntrPool->AddInterference(aWhat, aWith, BooleanOperations_VertexVertex, anIndexIn);
-      //
-      // to find SD-Vertices
-      myVSD.Bind(aWith, nVnew);
+    aItX.Initialize(aLIX);
+    for (i=0; aItX.More(); aItX.Next(), ++i) {
+      aItY.Initialize(aLIX);
+      for (j=0; aItY.More(); aItY.Next(), ++j) {
+       if (j>i) {
+         n1=aItX.Value();
+         n2=aItY.Value();
+         myIP->Add(n1, n2, Standard_True, NMTDS_TI_VV);
+         //
+         BOPTools_VVInterference aVV(n1, n2);
+         aVV.SetNewShape(nVnew);
+         aVVs.Append(aVV);    
+       }
+      }
     }
-     myVSD.Bind(aWhat, nVnew);
   }//for (; aIt1.More(); aIt1.Next()) {
   myIsDone=Standard_True;
 }
 //=======================================================================
-// function: PerformNewVertices
-// purpose: 
-//=======================================================================
-  void NMTTools_PaveFiller::PerformNewVertices() 
-{
-}
-//=======================================================================
 // function: FindSDVertex
 // purpose: 
 //=======================================================================
   }
   return nVSD;
 }
+/*
+//=======================================================================
+// function: PerformNewVertices
+// purpose: 
+//=======================================================================
+  void NMTTools_PaveFiller::PerformNewVertices() 
+{
+}
+*/
index 8febb88c27ef7462923e935df9f2e2ccb307d637..4c3c9ed33f0360fed3ab019a5ac993936a4c3f01 100644 (file)
@@ -1,18 +1,18 @@
 // Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// 
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
+// License as published by the Free Software Foundation; either 
 // version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
 // Lesser General Public License for more details.
 //
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
 // 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 <BOPTools_VEInterference.hxx>
 
 #include <BooleanOperations_AncestorsSeqAndSuccessorsSeq.hxx>
-
+#include <NMTDS_Iterator.hxx>
 #include <NMTDS_ShapesDataStructure.hxx>
+#include <NMTDS_InterfPool.hxx>
 //
 // Modified  Thu Sep 14 14:35:18 2006 
 // Contribution of Samtech www.samcef.com BEGIN
 #include <BOPTools_IndexedMapOfCoupleOfInteger.hxx>
 #include <BOPTools_CoupleOfInteger.hxx>
 #include <BooleanOperations_OnceExplorer.hxx>
-//
+
 
 static
   Standard_Boolean Contains(const TopoDS_Edge& aE,
                            const TopoDS_Vertex& aV);
 // Contribution of Samtech www.samcef.com END
+
+//=======================================================================
+// function: PerformVE
+// purpose: 
+//=======================================================================
+  void NMTTools_PaveFiller::PerformVE() 
+{
+  myIsDone=Standard_False;
+  //
+  Standard_Boolean bJustAdd;
+  Standard_Integer n1, n2, anIndexIn, aFlag, aWhat, aWith, aNbVEs, aBlockLength, iSDV, nV1;
+  Standard_Real aT;
+  TopoDS_Vertex aV1;
+  TopoDS_Edge aE2;
+  BOPTools_IndexedMapOfCoupleOfInteger aSnareMap;
+  BOPTools_CoupleOfInteger aCouple;
+  //
+  BOPTools_CArray1OfVEInterference& aVEs=myIP->VEInterferences();
+  //
+  myDSIt->Initialize (TopAbs_VERTEX, TopAbs_EDGE);
+  //
+  // BlockLength correction
+  aNbVEs=myDSIt->BlockLength();
+  aBlockLength=aVEs.BlockLength();
+  if (aNbVEs > aBlockLength) {
+    aVEs.SetBlockLength(aNbVEs);
+  }
+  //
+  for (; myDSIt->More(); myDSIt->Next()) {
+    myDSIt->Current(n1, n2, bJustAdd);
+    if (!IsSuccessorsComputed(n1, n2)) {
+      anIndexIn=0;
+      aWhat=n1; // Vertex
+      aWith=n2; // Edge
+      if (myDS->GetShapeType(n1)==TopAbs_EDGE) {
+       aWhat=n2;
+       aWith=n1;
+      }
+      //
+      if(bJustAdd) {
+       //myIntrPool->AddInterference(aWhat, aWith, BooleanOperations_VertexEdge, anIndexIn);
+       continue;
+      }
+      // Edge
+      aE2=TopoDS::Edge(myDS->Shape(aWith));
+      if (BRep_Tool::Degenerated(aE2)){
+       continue;
+      }
+      // Vertex
+      nV1=aWhat;
+      aV1=TopoDS::Vertex(myDS->Shape(aWhat));
+      //
+      iSDV=FindSDVertex(aWhat);
+      if (iSDV) {
+       nV1=iSDV;
+       aV1=TopoDS::Vertex(myDS->Shape(nV1));
+       // Modified to find same domain vertex Thu Sep 14 14:35:18 2006 
+       // Contribution of Samtech www.samcef.com BEGIN
+       Standard_Integer nVE, iSDVE, iRet;
+       //
+       BooleanOperations_OnceExplorer aExp(*myDS);
+       iRet=0;
+       aExp.Init(aWith, TopAbs_VERTEX);
+       for (; aExp.More(); aExp.Next()) {
+         nVE=aExp.Current();
+         iSDVE=FindSDVertex(nVE);
+         if (iSDVE==iSDV) {
+           iRet=1;
+           break;
+         }
+       }
+       if (iRet) {
+         continue;
+       }
+      }
+      else {
+       if (Contains(aE2, aV1)) {
+         continue;
+       }
+       // Contribution of Samtech www.samcef.com END
+      }
+      //
+      aFlag=myContext.ComputeVE (aV1, aE2, aT);
+      //
+      if (!aFlag) {
+       // Add Interference to the Pool
+       BOPTools_VEInterference anInterf (aWhat, aWith, aT);
+       anIndexIn=aVEs.Append(anInterf);
+       //
+       // Add Pave to the Edge's myPavePool
+       aCouple.SetCouple(nV1, aWith);
+       if (!aSnareMap.Contains(aCouple)){
+         aSnareMap.Add(aCouple);
+         //
+         BOPTools_Pave aPave(nV1, aT, BooleanOperations_VertexEdge);
+         aPave.SetInterference(anIndexIn);
+         BOPTools_PaveSet& aPaveSet= myPavePool(myDS->RefEdge(aWith));
+         aPaveSet.Append(aPave);
+       }
+       //
+       // State for the Vertex in DS;
+       myDS->SetState (aWhat, BooleanOperations_ON);
+       // Insert Vertex in Interference Object
+       BOPTools_VEInterference& aVE=aVEs(anIndexIn);
+       aVE.SetNewShape(aWhat);
+       // qqf
+       {
+         myIP->Add(aWhat, aWith, Standard_True, NMTDS_TI_VE);
+       }         
+       // qqt
+      }
+      //myIntrPool->AddInterference(aWhat, aWith, BooleanOperations_VertexEdge, anIndexIn);
+    }
+  }
+  myIsDone=Standard_True;
+}
 //=======================================================================
 // function: PrepareEdges
 // purpose: 
@@ -106,116 +223,7 @@ static
     }
   }
 }
-//=======================================================================
-// function: PerformVE
-// purpose: 
-//=======================================================================
-  void NMTTools_PaveFiller::PerformVE() 
-{
-  myIsDone=Standard_False;
-  //
-  Standard_Boolean bJustAddInterference;
-  Standard_Integer n1, n2, anIndexIn, aFlag, aWhat, aWith, aNbVEs, aBlockLength, iSDV, nV1;
-  Standard_Real aT;
-  TopoDS_Vertex aV1;
-  TopoDS_Edge aE2;
-  BOPTools_IndexedMapOfCoupleOfInteger aSnareMap;
-  BOPTools_CoupleOfInteger aCouple;
-  //
-  BOPTools_CArray1OfVEInterference& aVEs=myIntrPool->VEInterferences();
-  //
-  myDSIt.Initialize (TopAbs_VERTEX, TopAbs_EDGE);
-  //
-  // BlockLength correction
-  aNbVEs=ExpectedPoolLength();
-  aBlockLength=aVEs.BlockLength();
-  if (aNbVEs > aBlockLength) {
-    aVEs.SetBlockLength(aNbVEs);
-  }
-  //
-  for (; myDSIt.More(); myDSIt.Next()) {
-    myDSIt.Current(n1, n2, bJustAddInterference);
-    //
-    if (! myIntrPool->IsComputed(n1, n2)) {
-      if (! IsSuccesstorsComputed(n1, n2)) {
-       anIndexIn=0;
-       aWhat=n1; // Vertex
-       aWith=n2; // Edge
-       SortTypes(aWhat, aWith);
-       //
-       if(bJustAddInterference) {
-        myIntrPool->AddInterference(aWhat, aWith, BooleanOperations_VertexEdge, anIndexIn);
-        continue;
-       }
-       // Edge
-       aE2=TopoDS::Edge(myDS->Shape(aWith));
-       if (BRep_Tool::Degenerated(aE2)){
-         continue;
-       }
-       // Vertex
-       nV1=aWhat;
-       aV1=TopoDS::Vertex(myDS->Shape(aWhat));
-       //
-       iSDV=FindSDVertex(aWhat);
-       if (iSDV) {
-         nV1=iSDV;
-         aV1=TopoDS::Vertex(myDS->Shape(nV1));
-         // Modified to find same domain vertex Thu Sep 14 14:35:18 2006 
-         // Contribution of Samtech www.samcef.com BEGIN
-         Standard_Integer nVE, iSDVE, iRet;
-         //
-         BooleanOperations_OnceExplorer aExp(*myDS);
-         iRet=0;
-         aExp.Init(aWith, TopAbs_VERTEX);
-         for (; aExp.More(); aExp.Next()) {
-           nVE=aExp.Current();
-           iSDVE=FindSDVertex(nVE);
-           if (iSDVE==iSDV) {
-             iRet=1;
-             break;
-           }
-         }
-         if (iRet) {
-           continue;
-         }
-       }
-       else {
-         if (Contains(aE2, aV1)) {
-           continue;
-         }
-         // Contribution of Samtech www.samcef.com END
-       }
-       //
-       aFlag=myContext.ComputeVE (aV1, aE2, aT);
-       //
-       if (!aFlag) {
-         // Add Interference to the Pool
-         BOPTools_VEInterference anInterf (aWhat, aWith, aT);
-         anIndexIn=aVEs.Append(anInterf);
-         //
-         // Add Pave to the Edge's myPavePool
-         aCouple.SetCouple(nV1, aWith);
-         if (!aSnareMap.Contains(aCouple)){
-           aSnareMap.Add(aCouple);
-           //
-           BOPTools_Pave aPave(nV1, aT, BooleanOperations_VertexEdge);
-           aPave.SetInterference(anIndexIn);
-           BOPTools_PaveSet& aPaveSet= myPavePool(myDS->RefEdge(aWith));
-           aPaveSet.Append(aPave);
-         }
-         //
-         // State for the Vertex in DS;
-         myDS->SetState (aWhat, BooleanOperations_ON);
-         // Insert Vertex in Interference Object
-         BOPTools_VEInterference& aVE=aVEs(anIndexIn);
-         aVE.SetNewShape(aWhat);
-       }
-       myIntrPool->AddInterference(aWhat, aWith, BooleanOperations_VertexEdge, anIndexIn);
-      }
-    }
-  }
-  myIsDone=Standard_True;
-}
+
 // Modified  Thu Sep 14 14:35:18 2006 
 // Contribution of Samtech www.samcef.com BEGIN
 //=======================================================================
index 7869f87d03432b566e38c77e2b68173b91c04658..ca458c3292f7e8918ef25abad89ede80a32b0f91 100644 (file)
@@ -1,18 +1,18 @@
 // Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// 
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
+// License as published by the Free Software Foundation; either 
 // version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// 
+// This library is distributed in the hope that it will be useful 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
 // Lesser General Public License for more details.
 //
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
+// You should have received a copy of the GNU Lesser General Public  
+// License along with this library; if not, write to the Free Software 
 // 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 <TopoDS_Vertex.hxx>
 #include <TopoDS_Face.hxx>
 
+#include <TopExp_Explorer.hxx>
+
 #include <BOPTools_VSInterference.hxx>
 #include <BOPTools_CArray1OfVSInterference.hxx>
 
+#include <NMTDS_Iterator.hxx>
 #include <NMTDS_ShapesDataStructure.hxx>
-#include <TopExp_Explorer.hxx>
+#include <NMTDS_InterfPool.hxx>
+
 
 // Modified  Thu Sep 14 14:35:18 2006 
 // Contribution of Samtech www.samcef.com BEGIN
@@ -50,71 +54,76 @@ static
 {
   myIsDone=Standard_False;
   //
-  Standard_Boolean aJustAddInterference;
+  Standard_Boolean aJustAdd;
   Standard_Integer n1, n2, anIndexIn, aFlag, aWhat, aWith, aNbVSs, aBlockLength, iSDV;
   Standard_Real aU, aV;
   TopoDS_Vertex aV1;
   TopoDS_Face aF2;
   //
-  BOPTools_CArray1OfVSInterference& aVSs=myIntrPool->VSInterferences();
+  BOPTools_CArray1OfVSInterference& aVSs=myIP->VSInterferences();
   //
   // V/E Interferences 
-  myDSIt.Initialize(TopAbs_VERTEX, TopAbs_FACE);
+  myDSIt->Initialize(TopAbs_VERTEX, TopAbs_FACE);
   //
   // BlockLength correction
-  aNbVSs=ExpectedPoolLength();
+  aNbVSs=myDSIt->BlockLength();
   aBlockLength=aVSs.BlockLength();
   if (aNbVSs > aBlockLength) {
     aVSs.SetBlockLength(aNbVSs);
   }
   //
-  for (; myDSIt.More(); myDSIt.Next()) {
-    myDSIt.Current(n1, n2, aJustAddInterference);
-    //
-    if (! myIntrPool->IsComputed(n1, n2)) {
-      if (! IsSuccesstorsComputed(n1, n2)) {
-       anIndexIn=0;
-       aWhat=n1; // Vertex
-       aWith=n2; // Face
-       SortTypes(aWhat, aWith);
-       //
-       iSDV=FindSDVertex(aWhat);
-       //
-       if(aJustAddInterference) {
-         myIntrPool->AddInterference(aWhat, aWith, BooleanOperations_VertexSurface, anIndexIn);
-         continue;
-       }
-       //
-       aV1=TopoDS::Vertex(myDS->Shape(aWhat));
-       if (iSDV) {
-         aV1=TopoDS::Vertex(myDS->Shape(iSDV));
-       }
+  for (; myDSIt->More(); myDSIt->Next()) {
+    myDSIt->Current(n1, n2, aJustAdd);
+    if (! IsSuccessorsComputed(n1, n2)) {
+      anIndexIn=0;
+      aWhat=n1; // Vertex
+      aWith=n2; // Face
+      if (myDS->GetShapeType(n1)==TopAbs_FACE) {
+       aWhat=n2;
+       aWith=n1;
+      }
+      //
+      iSDV=FindSDVertex(aWhat);
        //
-       aF2=TopoDS::Face(myDS->Shape(aWith));
+      if(aJustAdd) {
+       //myIntrPool->AddInterference(aWhat, aWith, BooleanOperations_VertexSurface, anIndexIn);
+       continue;
+      }
+      //
+      aV1=TopoDS::Vertex(myDS->Shape(aWhat));
+      if (iSDV) {
+       aV1=TopoDS::Vertex(myDS->Shape(iSDV));
+      }
        //
-       // Modified  Thu Sep 14 14:35:18 2006 
-       // Contribution of Samtech www.samcef.com BEGIN
-       if (Contains(aF2, aV1)) {
-         continue;
-       }
-       // Contribution of Samtech www.samcef.com END
+      aF2=TopoDS::Face(myDS->Shape(aWith));
+      //
+      // Modified  Thu Sep 14 14:35:18 2006 
+      // Contribution of Samtech www.samcef.com BEGIN
+      if (Contains(aF2, aV1)) {
+       continue;
+      }
+      // Contribution of Samtech www.samcef.com END
+      //
+      aFlag=myContext.ComputeVS (aV1, aF2, aU, aV);
+      //
+      if (!aFlag) {
        //
-       aFlag=myContext.ComputeVS (aV1, aF2, aU, aV);
+       // Add Interference to the Pool
+       BOPTools_VSInterference anInterf (aWhat, aWith, aU, aV);
+       anIndexIn=aVSs.Append(anInterf);
        //
-       if (!aFlag) {
-         //
-         // Add Interference to the Pool
-         BOPTools_VSInterference anInterf (aWhat, aWith, aU, aV);
-         anIndexIn=aVSs.Append(anInterf);
-         //
-         // SetState for Vertex in DS;
-         myDS->SetState (aWhat, BooleanOperations_ON);
-         // Insert Vertex in Interference Object
-         BOPTools_VSInterference& aVS=aVSs(anIndexIn);
-         aVS.SetNewShape(aWhat);
+       // SetState for Vertex in DS;
+       myDS->SetState (aWhat, BooleanOperations_ON);
+       // Insert Vertex in Interference Object
+       BOPTools_VSInterference& aVS=aVSs(anIndexIn);
+       aVS.SetNewShape(aWhat);
+       // qqf
+       {
+         myIP->Add(aWhat, aWith, Standard_True, NMTDS_TI_VF);
        }
-       myIntrPool->AddInterference(aWhat, aWith, BooleanOperations_VertexSurface, anIndexIn);
+       // qqt
       }
+      //myIntrPool->AddInterference(aWhat, aWith, BooleanOperations_VertexSurface, anIndexIn);
     }
   }
   myIsDone=Standard_True;
index 3a9a1c5c9187b19370b1e59e163c7e43ccf73526..2c1d50e26251bb01820c5f7ea09065b805e1bf2e 100644 (file)
 #include <stdio.h>
 #include <Precision.hxx>
 
+#include <gp_XYZ.hxx>
+#include <gp_Pnt.hxx>
+#include <Bnd_Box.hxx>
+
 #include <TColStd_MapOfInteger.hxx>
 #include <TColStd_IndexedMapOfInteger.hxx>
+#include <TColStd_ListIteratorOfListOfInteger.hxx>
+#include <TColStd_MapIteratorOfMapOfInteger.hxx>
 
 #include <TopoDS.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopoDS_Compound.hxx>
 
 #include <TopTools_IndexedMapOfShape.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
+#include <TopTools_DataMapIteratorOfDataMapOfShapeListOfShape.hxx>
+#include <TopTools_DataMapOfShapeListOfShape.hxx>
+#include <TopTools_ListOfShape.hxx>
+#include <TopTools_DataMapOfShapeShape.hxx>
 
 #include <BRep_Tool.hxx>
 #include <BRep_Builder.hxx>
+#include <BRepBndLib.hxx>
 
-#include <Bnd_Box.hxx>
+#include <BOPTColStd_Dump.hxx>
+#include <BOPTColStd_Failure.hxx>
 
 #include <IntTools_ShrunkRange.hxx>
 #include <IntTools_Range.hxx>
 #include <BOPTools_ListIteratorOfListOfPave.hxx>
 #include <BOPTools_SequenceOfPaveBlock.hxx>
 
-#include <BOPTColStd_Dump.hxx>
-#include <BOPTColStd_Failure.hxx>
-
 #include <BooleanOperations_AncestorsSeqAndSuccessorsSeq.hxx>
 #include <BooleanOperations_IndexedDataMapOfShapeInteger.hxx>
 #include <BooleanOperations_KindOfInterference.hxx>
 
+#include <NMTDS_Iterator.hxx>
 #include <NMTDS_ShapesDataStructure.hxx>
+#include <NMTDS_IndexedDataMapOfIntegerShape.hxx>
+#include <NMTDS_IndexedDataMapOfShapeBox.hxx>
+#include <NMTDS_BoxBndTree.hxx>
+#include <NCollection_UBTreeFiller.hxx>
+#include <NMTDS_InterfPool.hxx>
 
 #include <NMTTools_IndexedDataMapOfIndexedMapOfInteger.hxx>
 #include <NMTTools_ListOfCommonBlock.hxx>
 #include <BOPTools_VSInterference.hxx>
 // Contribution of Samtech www.samcef.com END
 //
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-#include <Bnd_HArray1OfBox.hxx>
-#include <Bnd_BoundSortBox.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopTools_DataMapIteratorOfDataMapOfShapeListOfShape.hxx>
-#include <TopTools_DataMapOfShapeListOfShape.hxx>
-#include <NMTDS_IndexedDataMapOfIntegerShape.hxx>
-#include <NMTDS_IndexedDataMapOfShapeBox.hxx>
-#include <Bnd_Box.hxx>
-#include <BRepBndLib.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_DataMapOfShapeShape.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <gp_XYZ.hxx>
-#include <gp_Pnt.hxx>
-#include <BRep_Builder.hxx>
-#include <BRep_Tool.hxx>
-#include <TColStd_MapOfInteger.hxx>
 //
-#include <NMTDS_BoxBndTree.hxx>
-#include <NCollection_UBTreeFiller.hxx>
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_MapIteratorOfMapOfInteger.hxx>
 
 
 static
@@ -165,31 +158,30 @@ static
   BooleanOperations_IndexedDataMapOfShapeInteger aMapVI;
   BOPTools_IDMapOfPaveBlockIMapOfPaveBlock aMapCB;
   //
-  BOPTools_CArray1OfEEInterference& aEEs=myIntrPool->EEInterferences();
+  BOPTools_CArray1OfEEInterference& aEEs=myIP->EEInterferences();
+  //
+  myDSIt->Initialize(TopAbs_EDGE, TopAbs_EDGE);
   //
   // BlockLength correction
-  aNbVEs=ExpectedPoolLength();
+  aNbVEs=myDSIt->BlockLength();
   aBlockLength=aEEs.BlockLength();
   if (aNbVEs > aBlockLength) {
     aEEs.SetBlockLength(aNbVEs);
   }
   //
-  myDSIt.Initialize(TopAbs_EDGE, TopAbs_EDGE);
-  //
-  for (; myDSIt.More(); myDSIt.Next()) {
-    myDSIt.Current(n1, n2, bJustAdd);
+  for (; myDSIt->More(); myDSIt->Next()) {
+    myDSIt->Current(n1, n2, bJustAdd);
     anIndexIn = 0;
     //
-    if (myIntrPool->IsComputed(n1, n2)) {
-      continue;
-    }
+    //if (myIntrPool->IsComputed(n1, n2)) {
+    //  continue;
+    //}
     //
     nE1=n1; 
     nE2=n2; 
-    SortTypes(nE1, nE2);
     //
     if(bJustAdd) {
-      myIntrPool->AddInterference (nE1, nE2, BooleanOperations_EdgeEdge, anIndexIn);
+      //myIntrPool->AddInterference (nE1, nE2, BooleanOperations_EdgeEdge, anIndexIn);
       continue;
     }
     //
@@ -296,17 +288,68 @@ static
                bIsOnPave2=IsOnPave(aT2, aR2, aTol);
                //
                if(bIsOnPave1 || bIsOnPave2) {
-                 myIntrPool->AddInterference (aWhat, aWith, BooleanOperations_EdgeEdge, anIndexIn);
-                 continue;
+                  continue;
                }
                //
                BOPTools_Tools::MakeNewVertex(aEWhat, aT1, aEWith, aT2, aNewVertex);
                //
+               //modified by NIZNHY-PKV Mon Jun 19 11:40:09 2007f
+               {
+                 Standard_Integer nV11, nV12, nV21, nV22, nVS[2], k, j, iFound;
+                 Standard_Real aTolVx, aTolVnew, aD2, aDT2;
+                 TColStd_MapOfInteger aMV;
+                 gp_Pnt aPnew, aPx;
+                 //
+                 iFound=0;
+                 j=-1;
+                 nV11=aPB1.Pave1().Index();
+                 nV12=aPB1.Pave2().Index();
+                 nV21=aPB2.Pave1().Index();
+                 nV22=aPB2.Pave2().Index();
+                 aMV.Add(nV11);
+                 aMV.Add(nV12);
+                 //
+                 if (aMV.Contains(nV21)) {
+                   ++j;
+                   nVS[j]=nV21;
+                 }
+                 if (aMV.Contains(nV22)) {
+                   ++j;
+                   nVS[j]=nV22;
+                 }
+                 //
+                 aTolVnew=BRep_Tool::Tolerance(aNewVertex);
+                 aPnew=BRep_Tool::Pnt(aNewVertex);
+                 //
+                 for (k=0; k<=j; ++k) {
+                   const TopoDS_Vertex& aVx=TopoDS::Vertex(myDS->Shape(nVS[k]));
+                   aTolVx=BRep_Tool::Tolerance(aVx);
+                   aPx=BRep_Tool::Pnt(aVx);
+                   aD2=aPnew.SquareDistance(aPx);
+                   //
+                   aDT2=100.*(aTolVnew+aTolVx)*(aTolVnew+aTolVx);
+                   //
+                   if (aD2<aDT2) {
+                     iFound=1;
+                     break;
+                   }
+                 }
+                 //
+                 if (iFound) {
+                   continue;
+                 }
+               }
+               //modified by NIZNHY-PKV Mon Jun 19 11:40:16 2007t
+               //
                // Add Interference to the Pool
                BOPTools_EEInterference anInterf (aWhat, aWith, aCPart);
                //
                anIndexIn=aEEs.Append(anInterf);
-               myIntrPool->AddInterference (aWhat, aWith, BooleanOperations_EdgeEdge, anIndexIn);
+               // qqf
+               {
+                 myIP->Add(aWhat, aWith, Standard_True, NMTDS_TI_EE);
+               }
+               // qqt
                //
                // Collect
                aMapVI.Add(aNewVertex, anIndexIn);
@@ -321,7 +364,7 @@ static
                aCoinsideFlag=IsBlocksCoinside(aPB1, aPB2);
                //
                if (aNbComPrt2>1 || !aCoinsideFlag) {
-                 myIntrPool->AddInterference (aWhat, aWith, BooleanOperations_EdgeEdge, anIndexIn);
+                 //myIntrPool->AddInterference (aWhat, aWith, BooleanOperations_EdgeEdge, anIndexIn);
                  break;
                }
                //
@@ -349,6 +392,11 @@ static
                  aMapPB.Add(aPB2); 
                  aMapCB.Add(aPB2, aMapPB);
                }
+               // qqf
+               {
+                 myIP->Add(aWhat, aWith, Standard_True, NMTDS_TI_EE);
+               }
+               // qqt
              }
                break;
            default:
@@ -396,7 +444,7 @@ static
   TColStd_MapOfInteger aMFence;
   BOPTools_Pave aPave;
   //
-  BOPTools_CArray1OfEEInterference& aEEs=myIntrPool->EEInterferences();
+  BOPTools_CArray1OfEEInterference& aEEs=myIP->EEInterferences();
   //
   aNb=aMapVI.Extent();
   if (!aNb) { // no new vertices, no new problems 
@@ -575,10 +623,7 @@ void TreatNewVertices(const BooleanOperations_IndexedDataMapOfShapeInteger& aMap
     //...
     aNbIP=aMIPC.Extent();
     if (!aNbIP) {
-      //modified by NIZNHY-PKV Tue Jan  9 14:26:09 2007f
       aMIPC.Add(i);
-      //continue;
-      //modified by NIZNHY-PKV Tue Jan  9 14:26:12 2007t
     }
     //
     aIt1.Initialize(aMIPC);
@@ -698,7 +743,7 @@ void MakeNewVertex(const TopTools_ListOfShape& aLV,
   BooleanOperations_AncestorsSeqAndSuccessorsSeq anASSeq;      
   BOPTools_Pave aPave;
   //
-  BOPTools_CArray1OfEEInterference& aEEs=myIntrPool->EEInterferences();
+  BOPTools_CArray1OfEEInterference& aEEs=myIP->EEInterferences();
   //
   // one new vertex case is treated in usual way
   //
@@ -770,58 +815,43 @@ void MakeNewVertex(const TopTools_ListOfShape& aLV,
 {
   myIsDone=Standard_False;
   //
-  Standard_Boolean Ok1, Ok2, Ok3;
-  Ok1= (aType1==TopAbs_VERTEX) &&  (aType2==TopAbs_EDGE) ;
-  Ok2= (aType1==TopAbs_EDGE)   &&  (aType2==TopAbs_EDGE) ;
-  Ok3= (aType1==TopAbs_EDGE)   &&  (aType2==TopAbs_FACE) ;
-  if (!Ok1 && !Ok2 && !Ok3) {
-    // error: Type mismatch
+  Standard_Boolean bOk1, bOk2, bOk3, bFlag;
+  Standard_Integer i, aNb, nE[2], n1, n2, aNbSplits;
+  TColStd_MapOfInteger aMap;
+  
+  bOk1= (aType1==TopAbs_VERTEX) &&  (aType2==TopAbs_EDGE) ;
+  bOk2= (aType1==TopAbs_EDGE)   &&  (aType2==TopAbs_EDGE) ;
+  bOk3= (aType1==TopAbs_EDGE)   &&  (aType2==TopAbs_FACE) ;
+  if (!bOk1 && !bOk2 && !bOk3) {// error: Type mismatch
     return;
   }
   //
-  Standard_Boolean aFlag = Standard_False;
-  Standard_Integer n1, n2, nE1, nE2, aNbSplits;
-  TColStd_MapOfInteger aMap;
-  //
-  myDSIt.Initialize(aType1, aType2);
+  aNb=bOk2 ? 2 : 1;
   //
-  for (; myDSIt.More(); myDSIt.Next()) {
-    myDSIt.Current(n1, n2, aFlag);
-    nE1=n1; 
-    nE2=n2; 
-    SortTypes(nE1, nE2);
+  myDSIt->Initialize(aType1, aType2);
+  for (; myDSIt->More(); myDSIt->Next()) {
+    myDSIt->Current(n1, n2, bFlag);
     //
-    if (aType1==TopAbs_EDGE) {
-      BOPTools_ListOfPaveBlock& aLPB1=mySplitShapesPool(myDS->RefEdge(nE1));
-      aNbSplits=aLPB1.Extent();
-      if (!aNbSplits) {
-       if (!aMap.Contains(nE1)) { 
-         aMap.Add(nE1);
-         PreparePaveBlocks(nE1);
-         //
-         if (!myIsDone) {
-           return;
-         }
-       }
-      }
+    nE[0]=n1; 
+    nE[1]=n2; 
+    if (myDS->GetShapeType(n1)!=TopAbs_EDGE) {
+      nE[0]=n2; 
+      nE[1]=n1;
     }
     //
-    if (aType2==TopAbs_EDGE) {
-      BOPTools_ListOfPaveBlock& aLPB2=mySplitShapesPool(myDS->RefEdge(nE2));
-      aNbSplits=aLPB2.Extent();
+    for (i=0; i<aNb; ++i) {
+      BOPTools_ListOfPaveBlock& aLPB=mySplitShapesPool(myDS->RefEdge(nE[i]));
+      aNbSplits=aLPB.Extent();
       if (!aNbSplits) {
-       if (!aMap.Contains(nE2)) { 
-         aMap.Add(nE2);
-         PreparePaveBlocks(nE2);
-         //
+       if (aMap.Add(nE[i])) { 
+         PreparePaveBlocks(nE[i]);
          if (!myIsDone) {
            return;
          }
        }
       }
-    }// if (aType2==TopAbs_EDGE)
+    }
   }// for (; myDSIt.More(); myDSIt.Next()) 
-
   myIsDone=Standard_True;
 }
 //=======================================================================
@@ -831,65 +861,60 @@ void MakeNewVertex(const TopTools_ListOfShape& aLV,
   void NMTTools_PaveFiller::PreparePaveBlocks(const Standard_Integer nE)
 {
   myIsDone=Standard_False;
-  
-  Standard_Integer nV1, nV2;
-
+  //
+  char buf[512];
+  Standard_Integer nV1, nV2, iErr;
   TopoDS_Edge aE;
   TopoDS_Vertex aV1, aV2;
-    
-  // SplitShapesPool
+  //
   BOPTools_ListOfPaveBlock& aLPB=mySplitShapesPool(myDS->RefEdge(nE));
   // Edge 
   aE=TopoDS::Edge(myDS->Shape(nE));
+  if (BRep_Tool::Degenerated(aE)) {
+    myIsDone=Standard_True;
+    return;
+  }
   //
-  if (!BRep_Tool::Degenerated(aE)){
+  BOPTools_PaveSet& aPS=myPavePool(myDS->RefEdge(nE));
+  
+  BOPTools_PaveBlockIterator aPBIt(nE, aPS);
+  for (; aPBIt.More(); aPBIt.Next()) {
+    BOPTools_PaveBlock& aPB=aPBIt.Value();
+    const IntTools_Range& aRange=aPB.Range();
     //
-    BOPTools_PaveSet& aPS=myPavePool(myDS->RefEdge(nE));
-    
-    BOPTools_PaveBlockIterator aPBIt(nE, aPS);
-    for (; aPBIt.More(); aPBIt.Next()) {
-      BOPTools_PaveBlock& aPB=aPBIt.Value();
-      
-      const IntTools_Range& aRange=aPB.Range();
-      
-      const BOPTools_Pave& aPave1=aPB.Pave1();
-      nV1=aPave1.Index();
-      aV1=TopoDS::Vertex(myDS->GetShape(nV1));
-      
-      const BOPTools_Pave& aPave2=aPB.Pave2();
-      nV2=aPave2.Index();
-      aV2=TopoDS::Vertex(myDS->GetShape(nV2));
-      //
-      // ShrunkRange
-      IntTools_ShrunkRange aSR (aE, aV1, aV2, aRange, myContext);
-      //
-      Standard_Integer anErrorStatus;
-      anErrorStatus=aSR.ErrorStatus();
-
-      char buf[512];
-      if (!aSR.IsDone()) {
-       sprintf (buf, "Can not obtain ShrunkRange for Edge %d\n", nE);
-       BOPTColStd_Dump::PrintMessage(buf);
-       sprintf (buf, "Can not obtain ShrunkRange for Edge %d", nE);
-       throw 
-         BOPTColStd_Failure(buf) ;
-      }
-      //
-      if (anErrorStatus==6) {
-       sprintf(buf,
-               "Warning: [PreparePaveBlocks()] Max.Dummy Shrunk Range for Edge %d\n", nE);
-       BOPTColStd_Dump::PrintMessage(buf);
-      }
-      else {
-       // Check left paves and correct ShrunkRange if it is necessary
-       CorrectShrunkRanges (0, aPave1, aSR);
-       CorrectShrunkRanges (1, aPave2, aSR);
-      }
-      //
-      aPB.SetShrunkRange(aSR);
-      aLPB.Append(aPB);
-    } //for (; aPBIt1.More(); aPBIt1.Next()) 
-  }
+    const BOPTools_Pave& aPave1=aPB.Pave1();
+    nV1=aPave1.Index();
+    aV1=TopoDS::Vertex(myDS->GetShape(nV1));
+    //
+    const BOPTools_Pave& aPave2=aPB.Pave2();
+    nV2=aPave2.Index();
+    aV2=TopoDS::Vertex(myDS->GetShape(nV2));
+    //
+    // ShrunkRange
+    IntTools_ShrunkRange aSR (aE, aV1, aV2, aRange, myContext);
+    iErr=aSR.ErrorStatus();
+    if (!aSR.IsDone()) {
+      sprintf (buf, "Can not obtain ShrunkRange for Edge %d\n", nE);
+      BOPTColStd_Dump::PrintMessage(buf);
+      sprintf (buf, "Can not obtain ShrunkRange for Edge %d", nE);
+      throw 
+       BOPTColStd_Failure(buf) ;
+    }
+    //
+    if (iErr==6) {
+      sprintf(buf,
+             "Warning: [PreparePaveBlocks()] Max.Dummy Shrunk Range for Edge %d\n", nE);
+      BOPTColStd_Dump::PrintMessage(buf);
+    }
+    else {
+      // Check left paves and correct ShrunkRange if it is necessary
+      CorrectShrunkRanges (0, aPave1, aSR);
+      CorrectShrunkRanges (1, aPave2, aSR);
+    }
+    //
+    aPB.SetShrunkRange(aSR);
+    aLPB.Append(aPB);
+  } //for (; aPBIt.More(); aPBIt.Next()) 
   myIsDone=Standard_True;
 }
 //=======================================================================
@@ -915,7 +940,7 @@ void MakeNewVertex(const TopTools_ListOfShape& aLV,
     return;
   }
 
-  BOPTools_CArray1OfEEInterference& aEEs=myIntrPool->EEInterferences();
+  BOPTools_CArray1OfEEInterference& aEEs=myIP->EEInterferences();
   const BOPTools_EEInterference& aEE=aEEs(anIndexInterf);
   const IntTools_CommonPrt& aCP=aEE.CommonPrt();
   const TopoDS_Edge& aE1=aCP.Edge1();
@@ -945,8 +970,10 @@ void MakeNewVertex(const TopTools_ListOfShape& aLV,
       tNV=tV+aCoeff*(tNV-tV);
       aNewRange.SetFirst(tNV);
       aNewRange.SetLast (aSR.Last());
-
-      if(aNewRange.First() > aNewRange.Last()) {
+      //modified by NIZNHY-PKV Tue Jan 23 14:07:55 2007f
+      //if(aNewRange.First() > aNewRange.Last()) {
+      if(aNewRange.First() < aNewRange.Last()) {
+      //modified by NIZNHY-PKV Tue Jan 23 14:08:02 2007t
        aShrunkRange.SetShrunkRange(aNewRange);
       }
     }
@@ -1370,8 +1397,8 @@ void ProcessBlock(const BOPTools_PaveBlock& aPB,
   TColStd_ListOfInteger aLFI;
   TColStd_ListIteratorOfListOfInteger aItLFI;
   //
-  BOPTools_CArray1OfVSInterference& aVSs=myIntrPool->VSInterferences();
-  BOPTools_CArray1OfEEInterference& aEEs=myIntrPool->EEInterferences();
+  BOPTools_CArray1OfVSInterference& aVSs=myIP->VSInterferences();
+  BOPTools_CArray1OfEEInterference& aEEs=myIP->EEInterferences();
   //
   aNbS=myDS->NumberOfShapesOfTheObject();
   for (i=1; i<=aNbS; ++i) {
@@ -1427,213 +1454,3 @@ void ProcessBlock(const BOPTools_PaveBlock& aPB,
   }
 } 
 // Contribution of Samtech www.samcef.com END
-/*
-//=======================================================================
-// function:EENewVertices
-// purpose: 
-//=======================================================================
-  void NMTTools_PaveFiller::EENewVertices (const BooleanOperations_IndexedDataMapOfShapeInteger& aMapVI) 
-{
-  Standard_Integer aNb, i, j, aNewShape, aNbEdges, aNbIEE, aNbVV, aNbSimple;
-  Standard_Integer aWhat, aWith, i1, i2, nE1, nE2, nE, nV, aFlag;
-  Standard_Real aT;
-  TopoDS_Compound aCompound;
-  BRep_Builder aBB;
-  NMTTools_IndexedDataMapOfIndexedMapOfInteger aMNVE, aMNVIEE;
-  BooleanOperations_AncestorsSeqAndSuccessorsSeq anASSeq;      
-  BOPTools_Pave aPave;
-  TopoDS_Vertex aNewVertex;
-  TopTools_IndexedMapOfShape aMNVComplex, aMNVSimple;
-  //
-  BOPTools_CArray1OfEEInterference& aEEs=myIntrPool->EEInterferences();
-  //
-  aNb=aMapVI.Extent();
-  //
-  if (!aNb) { // no new vertices, no new problems 
-    return;
-  }
-  //
-  // 0. 
-  if (aNb==1) {
-    aNewVertex=TopoDS::Vertex(aMapVI.FindKey(1));
-    EENewVertices(aNewVertex, aMapVI);
-    return;
-  }
-  //
-  // 1. Make compound from new vertices
-  aBB.MakeCompound(aCompound);
-  for (i=1; i<=aNb; ++i) {
-    const TopoDS_Shape& aV=aMapVI.FindKey(i);
-    aBB.Add(aCompound, aV);
-  }
-  //
-  // 2. VV intersection between these vertices 
-  //       using the auxiliary Filler
-  NMTDS_ShapesDataStructure tDS;
-  //
-  tDS.SetCompositeShape(aCompound);
-  tDS.Init();
-  //
-  BOPTools_InterferencePool tInterfPool(tDS);
-  NMTTools_PaveFiller tPaveFiller(tInterfPool);
-  //
-  tPaveFiller.Init();
-  //
-  tPaveFiller.PerformVV();
-  tPaveFiller.PerformNewVertices();
-  //
-  const BOPTools_CArray1OfVVInterference& aVVInterfs=tInterfPool.VVInterfs();
-  //
-  // 3. Separate Comlex and Simple new vertices
-  aNbVV=aVVInterfs.Extent();
-  for (i=1; i<=aNbVV; ++i) {
-    const BOPTools_VVInterference& aVV=aVVInterfs(i);
-    aVV.Indices(aWhat, aWith);
-    const TopoDS_Shape& aV1=tDS.Shape(aWhat);
-    const TopoDS_Shape& aV2=tDS.Shape(aWith);
-    aMNVComplex.Add(aV1);
-    aMNVComplex.Add(aV2);
-  }
-  //
-  for (i=1; i<=aNb; ++i) {
-    const TopoDS_Shape& aV=aMapVI.FindKey(i);
-    if (!aMNVComplex.Contains(aV)) {
-      aMNVSimple.Add(aV);
-    }
-  }
-  //
-  // 4. Treat Simple new Vertices
-  aNbSimple=aMNVSimple.Extent();
-  for (i=1; i<=aNbSimple; ++i) {
-    const TopoDS_Vertex& aV=TopoDS::Vertex(aMNVSimple(i));
-    EENewVertices(aV, aMapVI);
-  }
-  //
-  // 3. Fill Maps : NewVertex-edges (aMNVE) 
-  //                NewVertex-interferences (aMNVIEE)
-  for (i=1; i<=aNbVV; ++i) {
-    const BOPTools_VVInterference& aVV=aVVInterfs(i);
-    aNewShape=aVV.NewShape();
-    if (!aNewShape) {
-      continue;
-    }
-    //
-    if (!aMNVE.Contains(aNewShape)) {
-      TColStd_IndexedMapOfInteger aMx;
-      aMNVE.Add(aNewShape, aMx);
-    }
-    if (!aMNVIEE.Contains(aNewShape)) {
-      TColStd_IndexedMapOfInteger aMx;
-      aMNVIEE.Add(aNewShape, aMx);
-    }
-    //
-    TColStd_IndexedMapOfInteger& aME=aMNVE.ChangeFromKey(aNewShape);
-    TColStd_IndexedMapOfInteger& aMIEE=aMNVIEE.ChangeFromKey(aNewShape);
-    //
-    aVV.Indices(aWhat, aWith);
-    //aWhat
-    const TopoDS_Shape& aV1=tDS.Shape(aWhat);
-    i1=aMapVI.FindFromKey(aV1);
-    const BOPTools_EEInterference& aEE1=aEEs(i1);
-    aEE1.Indices(nE1, nE2);
-    aME.Add(nE1);
-    aME.Add(nE2);
-    aMIEE.Add(i1);
-    //aWith
-    const TopoDS_Shape& aV2=tDS.Shape(aWith);
-    i2=aMapVI.FindFromKey(aV2);
-    const BOPTools_EEInterference& aEE2=aEEs(i2);
-    aEE2.Indices(nE1, nE2);
-    aME.Add(nE1);
-    aME.Add(nE2);
-    aMIEE.Add(i2);
-    //
-    //printf(" VV: (%d, %d) -> %d\n", aWhat, aWith, aNewShape);
-  }
-  //
-  // 4. Process new vertices
-  aNb=aMNVE.Extent();
-  for (i=1; i<=aNb; ++i) { // xx
-    //
-    //  new Vertex
-    nV=aMNVE.FindKey(i);
-    aNewVertex=TopoDS::Vertex(tDS.Shape(nV));
-    //
-    // Insert New Vertex in DS;
-    myDS->InsertShapeAndAncestorsSuccessors(aNewVertex, anASSeq);
-    aNewShape=myDS->NumberOfInsertedShapes();
-    myDS->SetState (aNewShape, BooleanOperations_ON);
-    //
-    // Update index of NewShape in EE interferences
-    const TColStd_IndexedMapOfInteger& aMIEE=aMNVIEE.FindFromKey(nV);//(i);
-    aNbIEE=aMIEE.Extent();
-    for (j=1; j<=aNbIEE; ++j) {
-      i1=aMIEE(j);
-      BOPTools_EEInterference& aEE1=aEEs(i1);
-      aEE1.SetNewShape(aNewShape);
-    }
-    // 
-    // Update Paves on edges
-    const TColStd_IndexedMapOfInteger& aME=aMNVE(i);
-    aNbEdges=aME.Extent();
-    for (j=1; j<=aNbEdges; ++j) {
-      nE=aME(j);
-      const TopoDS_Edge aE=TopoDS::Edge(myDS->Shape(nE));//mpv
-      //
-      aFlag=myContext.ComputeVE (aNewVertex, aE, aT);
-      //
-      if (!aFlag) {
-       aPave.SetInterference(-1);
-       aPave.SetType (BooleanOperations_EdgeEdge);
-       aPave.SetIndex(aNewShape);
-       aPave.SetParam(aT);
-       //
-       BOPTools_PaveSet& aPaveSet=myPavePoolNew(myDS->RefEdge(nE));
-       aPaveSet.Append(aPave);
-      }
-    }
-  }// for (i=1; i<=aNb; ++i) {// xx
-}
-//=======================================================================
-// function:EENewVertices
-// purpose: 
-//=======================================================================
-  void NMTTools_PaveFiller::EENewVertices (const TopoDS_Vertex& aNewVertex,
-                                          const BooleanOperations_IndexedDataMapOfShapeInteger& aMapVI) 
-{
-  Standard_Integer  i, aNewShape, nE1, nE2;
-  Standard_Real  aT1, aT2;
-  BooleanOperations_AncestorsSeqAndSuccessorsSeq anASSeq;      
-  BOPTools_Pave aPave;
-  //
-  BOPTools_CArray1OfEEInterference& aEEs=myIntrPool->EEInterferences();
-  //
-  // one new vertex case is treated in usual way
-  //
-  // Insert New Vertex in DS;
-  myDS->InsertShapeAndAncestorsSuccessors(aNewVertex, anASSeq);
-  aNewShape=myDS->NumberOfInsertedShapes();
-  myDS->SetState (aNewShape, BooleanOperations_ON);
-  // Insert New Vertex in EE Interference
-  i=aMapVI.FindFromKey(aNewVertex);
-  BOPTools_EEInterference& aEEInterf= aEEs(i);
-  aEEInterf.SetNewShape(aNewShape);
-  // Extact interference info
-  aEEInterf.Indices(nE1, nE2);
-  const IntTools_CommonPrt& aCPart=aEEInterf.CommonPrt();
-  VertexParameters(aCPart, aT1, aT2);
-  //
-  // Add Paves to the myPavePoolNew
-  aPave.SetInterference(i);
-  aPave.SetType (BooleanOperations_EdgeEdge);
-  aPave.SetIndex(aNewShape);
-  // Pave for edge nE1
-  aPave.SetParam(aT1);
-  BOPTools_PaveSet& aPaveSet1=myPavePoolNew(myDS->RefEdge(nE1));
-  aPaveSet1.Append(aPave);
-  // Pave for edge nE2
-  aPave.SetParam(aT2);
-  BOPTools_PaveSet& aPaveSet2=myPavePoolNew(myDS->RefEdge(nE2));
-  aPaveSet2.Append(aPave);
-}
-*/
index 0c6dbab260a9233240bde2cb2dfdcff5980a92a0..01ec5e0bb346676c244a86f119f49fba88549ffc 100644 (file)
@@ -40,6 +40,8 @@
 #include <TopoDS_Vertex.hxx>
 #include <TopoDS_Compound.hxx>
 
+#include <TopExp.hxx>
+
 #include <TopTools_IndexedMapOfShape.hxx>
 
 #include <IntTools_ShrunkRange.hxx>
@@ -63,7 +65,7 @@
 #include <BOPTools_ListOfPaveBlock.hxx>
 #include <BOPTools_ListIteratorOfListOfPaveBlock.hxx>
 #include <BOPTools_ESInterference.hxx>
-#include <BOPTools_InterferencePool.hxx>
+
 #include <BOPTools_CArray1OfVVInterference.hxx>
 #include <BOPTools_CArray1OfESInterference.hxx>
 #include <BOPTools_VVInterference.hxx>
 #include <BOPTools_IMapOfPaveBlock.hxx>
 
 #include <NMTDS_ShapesDataStructure.hxx>
+#include <NMTDS_Iterator.hxx>
+#include <NMTDS_InterfPool.hxx>
 
 #include <NMTTools_ListOfCommonBlock.hxx>
 #include <NMTTools_CommonBlockAPI.hxx>
 #include <NMTTools_IndexedDataMapOfIndexedMapOfInteger.hxx>
 #include <NMTTools_CommonBlockAPI.hxx>
 #include <NMTTools_ListOfCommonBlock.hxx>
-#include <TopTools_IndexedMapOfShape.hxx>
-#include <TopExp.hxx>
+
 
 static
   void VertexParameter(const IntTools_CommonPrt& aCPart,
@@ -105,28 +108,32 @@ static
   BOPTools_IDMapOfPaveBlockIMapOfInteger aMapCB;
   BOPTools_IMapOfPaveBlock aIMPBx;
   //
-  BOPTools_CArray1OfESInterference& aEFs=myIntrPool->ESInterferences();
+  BOPTools_CArray1OfESInterference& aEFs=myIP->ESInterferences();
   //
-  myDSIt.Initialize(TopAbs_EDGE, TopAbs_FACE);
+  myDSIt->Initialize(TopAbs_EDGE, TopAbs_FACE);
   //
   // BlockLength correction
-  aNbEFs=ExpectedPoolLength();
+  aNbEFs=myDSIt->BlockLength();
   aBlockLength=aEFs.BlockLength();
   if (aNbEFs > aBlockLength) {
     aEFs.SetBlockLength(aNbEFs);
   }
   //
-  for (; myDSIt.More(); myDSIt.Next()) {
-    myDSIt.Current(n1, n2, bJustAdd);
+  for (; myDSIt->More(); myDSIt->Next()) {
+    myDSIt->Current(n1, n2, bJustAdd);
     anIndexIn = 0;
     //
-    if (myIntrPool->IsComputed(n1, n2)) {
-      continue;
-    }
+    //if (myIntrPool->IsComputed(n1, n2)) {
+    //  continue;
+    //}
     //
     nE=n1; 
-    nF=n2; 
-    SortTypes(nE, nF);
+    nF=n2;
+    if (myDS->GetShapeType(n2)==TopAbs_EDGE) {
+      nE=n2; 
+      nF=n1;
+    }
+    //SortTypes(nE, nF);
     //
     // all Common Blocks for face nF
     //XXX
@@ -135,7 +142,7 @@ static
     NMTTools_CommonBlockAPI aCBAPIF(aLCBF);
     //XXX
     if(bJustAdd) {
-      myIntrPool->AddInterference (nE, nF, BooleanOperations_EdgeSurface, anIndexIn);
+      //myIntrPool->AddInterference (nE, nF, BooleanOperations_EdgeSurface, anIndexIn);
       continue;
     }
     // Edge
@@ -246,10 +253,15 @@ static
                  //
                  aMapVI.Add(aNewVertex, anIndexIn);
                  aIMPBx.Add(aPB);
+                 // qqf
+                 {
+                   myIP->Add(nE, nF, Standard_True, NMTDS_TI_EF);
+                 }
+                 // qqt
                  //
                }// if (!nVF)
              }// if (!bIsOnPave1 && !bIsOnPave2) 
-             myIntrPool->AddInterference (nE, nF, BooleanOperations_EdgeSurface, anIndexIn);
+             //myIntrPool->AddInterference (nE, nF, BooleanOperations_EdgeSurface, anIndexIn);
            }// case TopAbs_VERTEX:
              break;
            //
@@ -258,7 +270,7 @@ static
              //
              aCoinsideFlag=BOPTools_Tools::IsBlockInOnFace(aPB, aF, myContext);
              if (!aCoinsideFlag) {
-               myIntrPool->AddInterference (nE, nF, BooleanOperations_EdgeSurface, anIndexIn);
+               //myIntrPool->AddInterference (nE, nF, BooleanOperations_EdgeSurface, anIndexIn);
                break;
              }
              //
@@ -272,9 +284,12 @@ static
                aMapF.Add(nF);
                aMapCB.Add(aPB, aMapF);
              }
-             //modified by NIZNHY-PKV Fri Jan 23 14:13:08 2004 f
              aIMPBx.Add(aPB);
-             //modified by NIZNHY-PKV Fri Jan 23 14:13:10 2004 t
+             // qqf
+             {
+               myIP->Add(nE, nF, Standard_True, NMTDS_TI_EF);
+             }
+             // qqt
            }// case TopAbs_EDGE:
              break;
 
@@ -370,7 +385,7 @@ static
   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;
+  Standard_Integer aWhat, aWith, nE, nF, nV, aNbIEF, aNbEdges, iTmp;
   Standard_Real aT;
   TopoDS_Compound aCompound;
   TopoDS_Vertex aNewVertex;
@@ -380,7 +395,7 @@ static
   BooleanOperations_AncestorsSeqAndSuccessorsSeq anASSeq;
   TopTools_IndexedMapOfShape aMNVComplex, aMNVSimple;
   //
-  BOPTools_CArray1OfESInterference& aEFs=myIntrPool->ESInterferences();
+  BOPTools_CArray1OfESInterference& aEFs=myIP->ESInterferences();
   //
   aNb=aMapVI.Extent();
   //
@@ -404,20 +419,19 @@ static
   //
   // 2. VV intersection between these vertices 
   //       using the auxiliary Filler
-  NMTDS_ShapesDataStructure tDS;
-  //
-  tDS.SetCompositeShape(aCompound);
-  tDS.Init();
-  //
-  BOPTools_InterferencePool tInterfPool(tDS);
-  NMTTools_PaveFiller tPaveFiller(tInterfPool);
+  NMTTools_PaveFiller tPF;
   //
-  tPaveFiller.Init();
+  tPF.SetCompositeShape(aCompound);
   //
-  tPaveFiller.PerformVV();
-  tPaveFiller.PerformNewVertices();
+  tPF.Init();
+  tPF.PerformVV();
+  //tPF.PerformNewVertices(); qq
   //
-  const BOPTools_CArray1OfVVInterference& aVVInterfs=tInterfPool.VVInterfs();
+  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
   aNbVV=aVVInterfs.Extent();
@@ -472,7 +486,12 @@ static
     iX=aMapVI.FindFromKey(aV1);
     const BOPTools_ESInterference& aEF1=aEFs(iX);
     aEF1.Indices(nE, nF);
-    SortTypes(nE, nF);
+    //SortTypes(nE, nF);
+    if (myDS->GetShapeType(nF)==TopAbs_EDGE) {
+      iTmp=nE;
+      nE=nF;
+      nF=iTmp;
+    }
     aME.Add(nE);
     aMIEF.Add(iX);
     //aWith
@@ -480,7 +499,12 @@ static
     iX=aMapVI.FindFromKey(aV2);
     const BOPTools_ESInterference& aEF2=aEFs(iX);
     aEF2.Indices(nE, nF);
-    SortTypes(nE, nF);
+    //SortTypes(nE, nF);
+    if (myDS->GetShapeType(nF)==TopAbs_EDGE) {
+      iTmp=nE;
+      nE=nF;
+      nF=iTmp;
+    }
     aME.Add(nE);
     aMIEF.Add(iX);
   }
@@ -539,7 +563,7 @@ static
   BOPTools_Pave aPave;
   BooleanOperations_AncestorsSeqAndSuccessorsSeq anASSeq;
   //
-  BOPTools_CArray1OfESInterference& aEFs=myIntrPool->ESInterferences();
+  BOPTools_CArray1OfESInterference& aEFs=myIP->ESInterferences();
   //
   // Insert New Vertex in DS;
   myDS->InsertShapeAndAncestorsSuccessors(aNewVertex, anASSeq);
@@ -551,7 +575,10 @@ static
   aEFInterf.SetNewShape(aNewShape);
   // Extract interference info
   aEFInterf.Indices(nE, nF);
-  SortTypes(nE, nF);
+  //SortTypes(nE, nF);
+  if (myDS->GetShapeType(nF)==TopAbs_EDGE) {
+    nE=nF;
+  }
   const IntTools_CommonPrt& aCPart=aEFInterf.CommonPrt();
   VertexParameter(aCPart, aT);
   //
index 298162362255814d0cf6c3d184a81ea3fb8dd0f1..90b631205ef0d6783a4fdd8d53c666afe7073424 100644 (file)
 
 #include <TColStd_IndexedMapOfInteger.hxx>
 #include <TColStd_MapOfInteger.hxx>
+#include <TColStd_MapIteratorOfMapOfInteger.hxx>
+#include <TColStd_DataMapOfIntegerListOfInteger.hxx>
+#include <TColStd_ListOfInteger.hxx>
+#include <TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger.hxx>
+#include <TColStd_ListIteratorOfListOfInteger.hxx>
 
-#include <Geom2d_Curve.hxx>
 #include <Geom_TrimmedCurve.hxx>
-
+#include <Geom2d_TrimmedCurve.hxx>
+#include <Geom2d_Curve.hxx>
 #include <GeomAdaptor_Curve.hxx>
+
 #include <BndLib_Add3dCurve.hxx>
 
 #include <TopoDS_Face.hxx>
 #include <TopoDS.hxx>
 #include <TopoDS_Compound.hxx>
+#include <TopoDS_Vertex.hxx>
+#include <TopoDS_Edge.hxx>
 
 #include <TopExp.hxx>
 
+#include <BRepLib.hxx>
 #include <BRep_Builder.hxx>
 #include <BRep_Tool.hxx>
 #include <BRepBndLib.hxx>
 
 #include <TopTools_IndexedMapOfShape.hxx>
+#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
+#include <TopTools_ListOfShape.hxx>
+#include <TopTools_ListIteratorOfListOfShape.hxx>
 
 #include <BOPTColStd_IndexedDataMapOfIntegerIndexedMapOfInteger.hxx>
 #include <BOPTColStd_IndexedDataMapOfIntegerInteger.hxx>
 #include <IntTools_SequenceOfCurves.hxx>
 #include <IntTools_FaceFace.hxx>
 #include <IntTools_Tools.hxx>
+#include <IntTools_ShrunkRange.hxx>
 
 #include <BOPTools_CArray1OfSSInterference.hxx>
-#include <BOPTools_ListIteratorOfListOfInterference.hxx>
-#include <BOPTools_CArray1OfInterferenceLine.hxx>
-#include <BOPTools_InterferenceLine.hxx>
-#include <BOPTools_ListOfInterference.hxx>
-#include <BOPTools_Interference.hxx>
-#include <BOPTools_InterferencePool.hxx>
+//#include <BOPTools_ListIteratorOfListOfInterference.hxx>
+//#include <BOPTools_CArray1OfInterferenceLine.hxx>
+//#include <BOPTools_InterferenceLine.hxx>
+//#include <BOPTools_ListOfInterference.hxx>
+//#include <BOPTools_Interference.hxx>
+
 #include <BOPTools_SSInterference.hxx>
 #include <BOPTools_ListOfPaveBlock.hxx>
 #include <BOPTools_ListIteratorOfListOfPaveBlock.hxx>
 #include <BOPTools_PaveBlockIterator.hxx>
 #include <BOPTools_Tools2D.hxx>
 
+#include <NMTDS_Iterator.hxx>
 #include <NMTDS_ShapesDataStructure.hxx>
+#include <NMTDS_InterfPool.hxx>
+
+#include <NMTTools_Tools.hxx>
 #include <NMTTools_IndexedDataMapOfShapePaveBlock.hxx>
 #include <NMTTools_CommonBlockAPI.hxx>
-#include <Geom2d_Curve.hxx>
-#include <NMTTools_Tools.hxx>
-#include <BRepLib.hxx>
-#include <Geom2d_TrimmedCurve.hxx>
-//
-#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
-#include <TopTools_ListOfShape.hxx>
-#include <TopTools_ListIteratorOfListOfShape.hxx>
-#include <TopoDS_Vertex.hxx>
-#include <TopoDS.hxx>
-#include <TopoDS_Edge.hxx>
-#include <TColStd_ListOfInteger.hxx>
-////
 #include <NMTTools_DataMapOfIntegerListOfPaveBlock.hxx>
 #include <NMTTools_ListIteratorOfListOfCommonBlock.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
+
 #include <NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx>
-#include <BOPTools_ListIteratorOfListOfPaveBlock.hxx>
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_MapIteratorOfMapOfInteger.hxx>
-#include <TColStd_DataMapOfIntegerListOfInteger.hxx>
-#include <TColStd_ListOfInteger.hxx>
-#include <TColStd_DataMapIteratorOfDataMapOfIntegerListOfInteger.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
 #include <NMTTools_MapOfPaveBlock.hxx>
-//
-#include <IntTools_ShrunkRange.hxx>
-
-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);
 
 // Modified  Thu Sep 14 14:35:18 2006 
 // Contribution of Samtech www.samcef.com BEGIN
@@ -137,9 +113,11 @@ static
                    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
@@ -149,7 +127,7 @@ static
 {
   myIsDone=Standard_False;
   //
-  Standard_Boolean bIsFound, bJustAdd, bIsComputed;
+  Standard_Boolean bJustAdd;//, bIsComputed, bIsFound;
   Standard_Integer n1, n2, anIndexIn, nF1, nF2, aBlockLength, aNbFFs;
   Standard_Boolean bToApproxC3d, bToApproxC2dOnS1, bToApproxC2dOnS2, bIsDone;
   Standard_Integer aNbCurves, aNbPoints;
@@ -159,25 +137,25 @@ static
   IntTools_SequenceOfCurves aCvs;
   BooleanOperations_KindOfInterference aTypeFF=BooleanOperations_SurfaceSurface;
   //
-  BOPTools_CArray1OfSSInterference& aFFs=myIntrPool->SSInterferences();
+  BOPTools_CArray1OfSSInterference& aFFs=myIP->SSInterferences();
   //
   //  F/F Interferences  [BooleanOperations_SurfaceSurface]
-  myDSIt.Initialize(TopAbs_FACE, TopAbs_FACE);
+  myDSIt->Initialize(TopAbs_FACE, TopAbs_FACE);
   //
   // BlockLength correction
-  aNbFFs=ExpectedPoolLength();
+  aNbFFs=myDSIt->BlockLength();
   aBlockLength=aFFs.BlockLength();
   if (aNbFFs > aBlockLength) {
     aFFs.SetBlockLength(aNbFFs);
   }
   //
-  for (; myDSIt.More(); myDSIt.Next()) {
-    myDSIt.Current(n1, n2, bJustAdd);
+  for (; myDSIt->More(); myDSIt->Next()) {
+    myDSIt->Current(n1, n2, bJustAdd);
     //
-    bIsComputed=myIntrPool->IsComputed(n1, n2);
-    if (bIsComputed) {
-      continue;
-    }
+    //bIsComputed=myIntrPool->IsComputed(n1, n2);
+    //if (bIsComputed) {
+    //  continue;
+    //}
     //
     nF1 = n2;
     nF2 = n1;
@@ -189,8 +167,8 @@ static
     aPnts.Clear();
     aCvs.Clear();
     //
+    /*
     bIsFound=IsPairFound(nF1, nF2, myIntrPool, aMapWhat, aMapWith);
-    //
     if (bJustAdd) {
       if (!bIsFound) {
        myIntrPool->AddInterference (nF1, nF2, aTypeFF, anIndexIn);
@@ -202,6 +180,7 @@ static
       }
       continue;
     }
+    */
     //
     const TopoDS_Face aF1=TopoDS::Face(myDS->Shape(nF1));//mpv
     const TopoDS_Face aF2=TopoDS::Face(myDS->Shape(nF2));//mpv
@@ -222,7 +201,9 @@ static
     //
     bIsDone=aFF.IsDone();
     //
+
     if (!bIsDone) {
+      /*
       if (!bIsFound) {
        myIntrPool->AddInterference (nF1, nF2, aTypeFF, anIndexIn);
       }
@@ -231,6 +212,7 @@ static
        anIndexIn=aFFs.Append(anInterf);
        myIntrPool->AddInterference (nF1, nF2, aTypeFF, anIndexIn);
       }
+      */
       continue;
     }
     //
@@ -251,14 +233,14 @@ 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);
+      //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);
+      //myIntrPool->AddInterference (nF1, nF2, aTypeFF, anIndexIn);
     }
     //
   }// for (; myDSIt.More(); myDSIt.Next()) 
@@ -278,7 +260,7 @@ static
   Standard_Boolean bIsExistingPaveBlock, bIsValidIn2D, bIsCoincided;
   // Contribution of Samtech www.samcef.com END
   //
-  Standard_Boolean bIsMicroEdge;
+  Standard_Boolean bIsMicroEdge, bHasES;
   Standard_Integer i, aNbFFs, nF1, nF2, aBid=0;
   Standard_Integer nV1, nV2, j, aNbCurves;
   Standard_Real aTolR3D, aTol2D, aT1, aT2, aTolPPC=Precision::PConfusion();
@@ -286,7 +268,7 @@ static
   BooleanOperations_IndexedDataMapOfShapeInteger aMapEI;
   BOPTools_ListIteratorOfListOfPaveBlock anIt;  
   //
-  BOPTools_CArray1OfSSInterference& aFFs=myIntrPool->SSInterferences();
+  BOPTools_CArray1OfSSInterference& aFFs=myIP->SSInterferences();
   //
   aNbFFs=aFFs.Extent();
   //
@@ -375,11 +357,9 @@ static
   //
   // 1. Produce Section Edges from intersection curves
   //    between each pair of faces
-  //
   aNbFFs=aFFs.Extent();
   //
   for (i=1; i<=aNbFFs; ++i) {
-    
     BOPTools_SSInterference& aFFi=aFFs(i);
     // 
     // Faces
@@ -456,6 +436,7 @@ static
     }
     //
     //  Pave Blocks on Curves
+    bHasES=Standard_False;
     for (j=1; j<=aNbCurves; ++j) {
       BOPTools_Curve& aBC=aSCvs(j);
       const IntTools_Curve& aIC= aBC.Curve();
@@ -472,13 +453,12 @@ static
        nV2=aPBNew.Pave2().Index();
        aT1=aPBNew.Pave1().Param();
        aT2=aPBNew.Pave2().Param();
-       // ???
+       // 
        if((nV1==nV2) && (Abs(aT2 - aT1) < aTolPPC)) {
-         continue;// mkk ft
+         continue;// mkk ft ???
        }
        //
        // 1
-       
        bIsExistingPaveBlock=IsExistingPaveBlock(aPBNew, aLPB, aTolR3D);
        if (bIsExistingPaveBlock) {
          continue;
@@ -517,17 +497,13 @@ static
        //
        BOPTools_Tools::MakeSectEdge (aIC, aV1, aT1, aV2, aT2, aES);
        //
-       // use_01 f
-       //
        NMTTools_Tools::UpdateEdge (aES, aTolR3D);
        bIsMicroEdge=IsMicroEdge(aES, myContext);
        if (bIsMicroEdge) {
          continue;
        }
        //
-       //use_01 t
-       //
-       // SKL/PartC5 f
+       
        {
          Handle(Geom2d_Curve) aC2D1, aC2D2;
          //
@@ -536,14 +512,19 @@ static
          //
          NMTTools_Tools::MakePCurve(aES, aF1, aC2D1);
          NMTTools_Tools::MakePCurve(aES, aF2, aC2D2);
-         //SKL/PartC5 t 
        }
        //
        aMEPB.Add(aES, aPBNew);
        aMapEI.Add(aES, i);
-      }
-      
+       //
+       bHasES=Standard_True;
+      }// for (; aPBIter.More(); aPBIter.Next())
     } // end of for (j=1; j<=aNbCurves; ++j)
+    // qqf
+    if (bHasES) {
+      myIP->Add(nF1, nF2, Standard_True, NMTDS_TI_FF);
+    }
+    // qqt
   }// for (i=1; i<=aNbFFs; ++i)
   //=============================================================
   //
@@ -572,18 +553,14 @@ static
   //
   //
   // 2. Intersect SE using auxiliary Filler
-  NMTDS_ShapesDataStructure tDS;
-  //
-  tDS.SetCompositeShape(aCompound);
-  tDS.Init();
+  NMTTools_PaveFiller tPF;
   //
-  BOPTools_InterferencePool tIP(tDS);
-  NMTTools_PaveFiller tPF(tIP);
+  tPF.SetCompositeShape(aCompound);
   //
   // 2.1.VV
   tPF.Init();
   tPF.PerformVV();
-  tPF.PerformNewVertices();
+  //tPF.PerformNewVertices(); qq
   //
   // 2.2.VE
   tPF.myPavePool.Resize (tPF.myNbEdges);
@@ -617,6 +594,7 @@ static
   BOPTools_ListIteratorOfListOfPaveBlock aIt;
   BOPTColStd_IndexedDataMapOfIntegerInteger aMNewOld;
   //
+  const NMTDS_ShapesDataStructure& tDS=*(tPF.DS());
   const BOPTools_SplitShapesPool& aSSP=tPF.mySplitShapesPool;
   const NMTTools_CommonBlockPool& aCBP=tPF.myCommonBlockPool;
   //
@@ -743,11 +721,9 @@ static
        aF2FWD=aF2;
        aF2FWD.Orientation(TopAbs_FORWARD);
        //
-       // SKL/PartC5 f
        NMTTools_Tools::MakePCurve(aEx, aF1FWD, aC2D1);
        NMTTools_Tools::MakePCurve(aEx, aF2FWD, aC2D2);
        NMTTools_Tools::UpdateEdge (aEx, aTolEx);
-       //SKL/PartC5 t
       } //if (aCBAPI.IsCommonBlock(aPB))
       //
       // new SE
@@ -816,13 +792,13 @@ static
 {
   Standard_Integer i, aNb,  nF1, nF2, nE;
   Standard_Integer aNbCB, aNbF, nSp, nF;
+  TopAbs_ShapeEnum aType;
   TopoDS_Face aF1FWD, aF2FWD;
   TColStd_ListIteratorOfListOfInteger aItF;
   BOPTools_ListIteratorOfListOfPaveBlock anIt;
   NMTTools_ListIteratorOfListOfCommonBlock aItCB;
-  TopAbs_ShapeEnum aType;
   //
-  BOPTools_CArray1OfSSInterference& aFFs=myIntrPool->SSInterferences();
+  BOPTools_CArray1OfSSInterference& aFFs=myIP->SSInterferences();
   //
   aNb=aFFs.Extent();
   for (i=1; i<=aNb; i++) {
@@ -849,7 +825,7 @@ static
       BOPTools_Tools2D::BuildPCurveForEdgeOnFace(aE, aF1FWD);
       BOPTools_Tools2D::BuildPCurveForEdgeOnFace(aE, aF2FWD);
     }
-  }
+  } 
   //
   //modified by NIZNHY-PKV Fri Mar 23 10:35:02 2007f
   // Check common blocks between edges and faces
@@ -1211,122 +1187,8 @@ static
   }
 }
 /////////////
-//=======================================================================
-// 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;
-}
 // Modified  Thu Sep 14 14:35:18 2006 
 // Contribution of Samtech www.samcef.com BEGIN
 //=======================================================================
@@ -1475,7 +1337,7 @@ void SharedEdges1(const TopoDS_Face& aF1,
 //
 // Contribution of Samtech www.samcef.com END
 
-// use_01 f
+//modified by NIZNHY-PKV Mon Dec  4 12:30:38 2006f use_01
 //=======================================================================
 //function : IsMicroEdge
 //purpose  : 
@@ -1514,4 +1376,139 @@ Standard_Boolean IsMicroEdge(const TopoDS_Edge& aE,
   //
   return bRet;
 }
-// use_01 t
+//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;
+}
+*/
index 30b69f3f02f5c69724f686f7048697776e7d7133..ef23a7e29b74b506cb1f636e75789390bf98ea37 100644 (file)
 
 #include <NMTTools_PaveFiller.ixx>
 
+#include <Bnd_HArray1OfBox.hxx>
+#include <Bnd_BoundSortBox.hxx>
+#include <Bnd_Box.hxx>
+#include <BRepBndLib.hxx>
+
+#include <TColStd_MapOfInteger.hxx>
+#include <TColStd_ListIteratorOfListOfInteger.hxx>
+#include <TopTools_DataMapOfShapeListOfInteger.hxx>
+#include <TColStd_ListOfInteger.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+
+#include <TopAbs_Orientation.hxx>
+
 #include <TopoDS_Vertex.hxx>
 #include <TopoDS_Edge.hxx>
 #include <TopoDS.hxx>
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Compound.hxx>
 
-#include <NMTDS_ShapesDataStructure.hxx>
-#include <TopAbs_Orientation.hxx>
-#include <BOPTools_ListOfPaveBlock.hxx>
-#include <BOPTools_ListIteratorOfListOfPaveBlock.hxx>
-#include <BOPTools_PaveBlock.hxx>
-#include <BOPTools_Pave.hxx>
-#include <BOPTools_Tools.hxx>
-#include <BooleanOperations_AncestorsSeqAndSuccessorsSeq.hxx>
+#include <TopTools_DataMapIteratorOfDataMapOfIntegerShape.hxx>
+#include <TopTools_DataMapIteratorOfDataMapOfShapeInteger.hxx>
+#include <TopTools_DataMapOfShapeInteger.hxx>
+#include <TopTools_DataMapOfShapeShape.hxx>
+#include <TopTools_DataMapOfShapeListOfInteger.hxx>
+#include <TopTools_DataMapIteratorOfDataMapOfShapeListOfInteger.hxx>
+#include <TopTools_DataMapOfIntegerShape.hxx>
+
+#include <BRep_Builder.hxx>
 #include <BRep_Tool.hxx>
-#include <NMTTools_ListIteratorOfListOfCommonBlock.hxx>
-#include <BOPTools_SSInterference.hxx>
-#include <BOPTools_CArray1OfSSInterference.hxx>
+
 #include <TopExp_Explorer.hxx>
-#include <TopoDS_Shape.hxx>
 #include <TopExp.hxx>
-#include <TColStd_IndexedMapOfInteger.hxx>
-
 //
 #include <IntTools_SequenceOfPntOn2Faces.hxx>
 #include <IntTools_PntOnFace.hxx>
 #include <IntTools_PntOn2Faces.hxx>
-#include <BOPTools_Tools.hxx>
-#include <TopTools_DataMapOfShapeListOfInteger.hxx>
-#include <TColStd_ListOfInteger.hxx>
-#include <TopoDS_Compound.hxx>
-#include <BRep_Builder.hxx>
+
+#include <BooleanOperations_AncestorsSeqAndSuccessorsSeq.hxx>
+
+#include <BOPTools_SSInterference.hxx>
+#include <BOPTools_CArray1OfSSInterference.hxx>
 #include <BOPTools_CArray1OfVVInterference.hxx>
 #include <BOPTools_VVInterference.hxx>
-#include <TopTools_DataMapOfShapeShape.hxx>
-#include <TopTools_DataMapOfShapeListOfInteger.hxx>
-#include <TopTools_DataMapIteratorOfDataMapOfShapeListOfInteger.hxx>
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_ListIteratorOfListOfInteger.hxx>
-#include <TopTools_DataMapOfIntegerShape.hxx>
-#include <Bnd_HArray1OfBox.hxx>
-#include <Bnd_BoundSortBox.hxx>
-#include <Bnd_Box.hxx>
-#include <BRepBndLib.hxx>
-#include <TopTools_DataMapIteratorOfDataMapOfIntegerShape.hxx>
-#include <TopTools_DataMapOfShapeInteger.hxx>
-#include <TopTools_DataMapIteratorOfDataMapOfShapeInteger.hxx>
-#include <TopTools_DataMapOfShapeInteger.hxx>
-#include <BooleanOperations_AncestorsSeqAndSuccessorsSeq.hxx>
+#include <BOPTools_Tools.hxx>
+#include <BOPTools_ListOfPaveBlock.hxx>
+#include <BOPTools_ListIteratorOfListOfPaveBlock.hxx>
+#include <BOPTools_PaveBlock.hxx>
+#include <BOPTools_Pave.hxx>
+#include <BOPTools_Tools.hxx>
 
+#include <NMTDS_Iterator.hxx>
+#include <NMTDS_ShapesDataStructure.hxx>
+#include <NMTDS_InterfPool.hxx>
+
+#include <NMTTools_ListIteratorOfListOfCommonBlock.hxx>
 // Modified  Thu Sep 14 14:35:18 2006 
 // Contribution of Samtech www.samcef.com BEGIN
 static 
@@ -286,7 +293,7 @@ static
   BOPTools_Pave aPave1, aPave2;
   BOPTools_PaveBlock aPB;
   //
-  BOPTools_CArray1OfSSInterference& aFFs=myIntrPool->SSInterferences();
+  BOPTools_CArray1OfSSInterference& aFFs=myIP->SSInterferences();
   //
   aNbFFs=aFFs.Extent();
   for (i=1; i<=aNbFFs; ++i) {
@@ -371,7 +378,7 @@ static
   //
   myAloneVertices.Clear();
   //
-  BOPTools_CArray1OfSSInterference& aFFs=myIntrPool->SSInterferences();
+  BOPTools_CArray1OfSSInterference& aFFs=myIP->SSInterferences();
   //
   // 1. Collect alone vertices from FFs
   aNbV=0;
@@ -545,6 +552,50 @@ static
       }
     }
   }
+  // qqf
+  {
+    Standard_Integer aNbF, aNbAV, nF, k;
+    NMTTools_IndexedDataMapOfIndexedMapOfInteger aMAVF;
+    //
+    aNbF=myAloneVertices.Extent();
+    if (aNbF<2) {
+      return;
+    }
+    //
+    // 1. fill map Alone Vertex/Face ->  aMAVF
+    for (i=1; i<=aNbF; ++i) {
+      nF=myAloneVertices.FindKey(i);
+      const TColStd_IndexedMapOfInteger& aMAV=myAloneVertices(i);
+      aNbAV=aMAV.Extent();
+      for(j=1; j<=aNbAV; ++j) {
+       nV=aMAV(j);
+       if (aMAVF.Contains(nV)) {
+         TColStd_IndexedMapOfInteger& aMF=aMAVF.ChangeFromKey(nV);
+         aMF.Add(nF);
+       }
+       else{
+         TColStd_IndexedMapOfInteger aMF;
+         aMF.Add(nF);
+         aMAVF.Add(nV, aMF);
+       }
+      }
+    }
+    //
+    // 2 Obtain pairs of faces
+    aNbAV=aMAVF.Extent();
+    for (i=1; i<=aNbAV; ++i) {
+      const TColStd_IndexedMapOfInteger& aMF=aMAVF(i);
+      aNbF=aMF.Extent();
+      for(j=1; j<aNbF; ++j) {
+       nF1=aMF(j);
+       for(k=j+1; k<=aNbF; ++k) {
+         nF2=aMF(k);
+         myIP->Add(nF1, nF2, Standard_True, NMTDS_TI_FF);
+       }
+      }
+    }
+  }
+  // qqt
 }
 //=======================================================================
 // function: AloneVertices
@@ -558,24 +609,22 @@ static
 // function: FuseVertices
 // purpose: 
 //=======================================================================
-void FuseVertices(const TopoDS_Shape& aCompound,
-                 TopTools_DataMapOfShapeShape& aDMVV)
+  void NMTTools_PaveFiller::FuseVertices(const TopoDS_Shape& aCompound,
+                                        TopTools_DataMapOfShapeShape& aDMVV)const
 {
   Standard_Integer i, aNbVV, n1, n2, nX;
-  NMTDS_ShapesDataStructure tDS;
-  //
-  tDS.SetCompositeShape(aCompound);
-  tDS.Init();
+  NMTTools_PaveFiller tPF;
   //
-  BOPTools_InterferencePool tInterfPool(tDS);
-  NMTTools_PaveFiller tPaveFiller(tInterfPool);
+  tPF.SetCompositeShape(aCompound);
   //
-  tPaveFiller.Init();
+  tPF.Init();
   //
-  tPaveFiller.PerformVV();
-  tPaveFiller.PerformNewVertices();
+  tPF.PerformVV();
+  //tPF.PerformNewVertices(); //qq
   //
-  const BOPTools_CArray1OfVVInterference& aVVt=tInterfPool.VVInterfs();
+  NMTDS_ShapesDataStructure& tDS=*(tPF.DS());
+  NMTDS_InterfPool& tInterfPool=*(tPF.IP()); 
+  BOPTools_CArray1OfVVInterference& aVVt=tInterfPool.VVInterferences();
   //
   aNbVV=aVVt.Extent();
   for (i=1; i<=aNbVV; ++i) {
index b8686673ec6d63a6a112d2fcec18317521a7705d..6d7a77c1ba85b3ccaae235807b276364286be0fc 100644 (file)
 // function: RealPaveBlock
 // purpose:
 //=======================================================================
-  const BOPTools_PaveBlock& NMTTools_PaveFiller::RealPaveBlock(const BOPTools_PaveBlock& aPB,
-                                                              TColStd_ListOfInteger& aLB)
+  const BOPTools_PaveBlock& NMTTools_PaveFiller::RealPaveBlock
+     (const BOPTools_PaveBlock& aPB,
+      TColStd_ListOfInteger& aLB,
+      Standard_Integer& aIsCommonBlock)
 {
   Standard_Integer nE, nSpx;
   BOPTools_ListIteratorOfListOfPaveBlock aItPBx;
   //
+  aIsCommonBlock=0;
   aLB.Clear();
   nE=aPB.OriginalEdge();
   const NMTTools_ListOfCommonBlock& aLCBE=myCommonBlockPool(myDS->RefEdge(nE));
@@ -96,6 +99,8 @@
   if (aCBAPI.IsCommonBlock(aPB)) {
     NMTTools_CommonBlock& aCB=aCBAPI.CommonBlock(aPB);
     //
+    aIsCommonBlock=1;   
+    //
     const BOPTools_ListOfPaveBlock& aLPBx=aCB.PaveBlocks();
     aItPBx.Initialize(aLPBx);
     for (; aItPBx.More(); aItPBx.Next()) {
index e1ff415418bc65d33122661f1d44c6921443ed0b..6771efaa98b2f5b0204e744a13ce48c505e138e6 100644 (file)
   \class GEOM_Actor GEOM_Actor.h
   \brief This class allows to display an OpenCASCADE CAD model in a VTK viewer.
 */
-
-#include "GEOM_Actor.h"
-
-#include <vtkObjectFactory.h>
-#include <vtkPolyData.h>
-#include <vtkPolyDataMapper.h>
-#include <vtkPolyDataNormals.h>
-
+#include "GEOM_Actor.h" 
+#include "GEOM_DeviceActor.h" 
+#include "GEOM_VertexSource.h" 
+#include "GEOM_EdgeSource.h" 
+#include "GEOM_WireframeFace.h" 
+#include "GEOM_ShadingFace.h"
+#include "SVTK_Actor.h"
+
+#include <vtkObjectFactory.h> 
+#include <vtkRenderer.h> 
+#include <vtkProperty.h> 
+#include <vtkPointPicker.h>
+#include <vtkCellPicker.h>
+#include <TopAbs_ShapeEnum.hxx>
+#include <TopExp_Explorer.hxx>
+#include <Poly_Triangulation.hxx>
+#include <BRepMesh_IncrementalMesh.hxx>
+#include <Bnd_Box.hxx>
+#include <TopoDS.hxx>
+#include <BRep_Tool.hxx>
+#include <BRepBndLib.hxx>
+#include <TopTools_ListOfShape.hxx>
+#include <TopoDS_Iterator.hxx>
+#include <TopExp.hxx>
+#include <vtkPolyDataWriter.h> 
+#include <vtkAppendPolyData.h>  
+#include <vtkPolyDataMapper.h>  
+#include <vtkPolyData.h>  
 #include <vtkTransform.h>
 #include <vtkMatrix4x4.h>
 #include <vtkMath.h>
-
-#include <vtkProperty.h>
-#include <vtkRenderer.h>
 #include <vtkCamera.h>
 
-// OpenCASCADE Includes
-#include "GEOM_OCCReader.h"
-#include <BRep_Tool.hxx>
+//vtkStandardNewMacro(GEOM_Actor);
+
+#ifndef MYDEBUG
+//#define MYDEBUG
+#endif
 
-using namespace std;
+GEOM_Actor::GEOM_Actor(): 
+  //  myDisplayMode(eWireframe), 
+  myIsSelected(false), 
+  myVertexActor(GEOM_DeviceActor::New(),true), 
+  myVertexSource(GEOM_VertexSource::New(),true), 
+  myIsolatedEdgeActor(GEOM_DeviceActor::New(),true), 
+  myIsolatedEdgeSource(GEOM_EdgeSource::New(),true), 
+  myOneFaceEdgeActor(GEOM_DeviceActor::New(),true), 
+  myOneFaceEdgeSource(GEOM_EdgeSource::New(),true), 
+  mySharedEdgeActor(GEOM_DeviceActor::New(),true), 
+  mySharedEdgeSource(GEOM_EdgeSource::New(),true), 
+  myWireframeFaceActor(GEOM_DeviceActor::New(),true), 
+  myWireframeFaceSource(GEOM_WireframeFace::New(),true), 
+  myShadingFaceActor(GEOM_DeviceActor::New(),true), 
+  myShadingFaceSource(GEOM_ShadingFace::New(),true), 
+  myHighlightActor(GEOM_DeviceActor::New(),true), 
+  myAppendFilter(vtkAppendPolyData::New(),true), 
+  myPolyDataMapper(vtkPolyDataMapper::New(),true),
+
+  myHighlightProp(vtkProperty::New()),
+  myPreHighlightProp(vtkProperty::New()),
+  myShadingFaceProp(vtkProperty::New())
+  
+{ 
+#ifdef MYDEBUG
+  cout <<this<< " GEOM_Actor::GEOM_Actor"<<endl;
+#endif
+
+  myPolyDataMapper->SetInput(myAppendFilter->GetOutput()); 
+  vtkProperty* aProperty; 
+
+  myHighlightProp->SetAmbient(0.5);
+  myHighlightProp->SetDiffuse(0.3);
+  myHighlightProp->SetSpecular(0.2);
+  myHighlightProp->SetRepresentationToSurface();
+  myHighlightProp->SetAmbientColor(1, 1, 1);
+  myHighlightProp->SetDiffuseColor(1, 1, 1);
+  myHighlightProp->SetSpecularColor(0.5, 0.5, 0.5);
+  myHighlightActor->SetProperty(myHighlightProp.GetPointer());
+
+  this->myHighlightActor->SetInput(myAppendFilter->GetOutput(),false);
+
+  myPreHighlightProp->SetColor(0,1,1);
+  myPreHighlightProp->SetPointSize(SALOME_POINT_SIZE+2);
+  myPreHighlightProp->SetLineWidth(SALOME_LINE_WIDTH+1);
+  myPreHighlightProp->SetRepresentationToWireframe();
+
+  myAppendFilter->AddInput(myVertexSource->GetOutput()); 
+  myVertexActor->SetInput(myVertexSource->GetOutput(),false); 
+  aProperty = myVertexActor->GetProperty(); 
+  aProperty->SetRepresentation(VTK_POINTS); 
+  aProperty->SetPointSize(3); 
+  aProperty->SetColor(1, 1, 0);
+  myAppendFilter->AddInput(myIsolatedEdgeSource->GetOutput()); 
+  myIsolatedEdgeActor->SetInput(myIsolatedEdgeSource->GetOutput(),false); 
+  aProperty = myIsolatedEdgeActor->GetProperty(); 
+  aProperty->SetRepresentation(VTK_WIREFRAME); 
+  aProperty->SetColor(1, 0, 0);
+  myAppendFilter->AddInput(myOneFaceEdgeSource->GetOutput()); 
+  myOneFaceEdgeActor->SetInput(myOneFaceEdgeSource->GetOutput(),false); 
+  aProperty = myOneFaceEdgeActor->GetProperty(); 
+  aProperty->SetRepresentation(VTK_WIREFRAME); 
+  aProperty->SetColor(0, 1, 0);
+  myAppendFilter->AddInput(mySharedEdgeSource->GetOutput()); 
+  mySharedEdgeActor->SetInput(mySharedEdgeSource->GetOutput(),false); 
+  aProperty = mySharedEdgeActor->GetProperty(); 
+  aProperty->SetRepresentation(VTK_WIREFRAME); 
+  aProperty->SetColor(1, 1, 0);
+  myAppendFilter->AddInput(myWireframeFaceSource->GetOutput()); 
+  myWireframeFaceActor->SetInput(myWireframeFaceSource->GetOutput(),false); 
+  aProperty = myWireframeFaceActor->GetProperty(); 
+  aProperty->SetRepresentation(VTK_WIREFRAME); 
+  aProperty->SetColor(0.5, 0.5, 0.5);
 
-//-------------------------------------------------------------
-// Main methods
-//-------------------------------------------------------------
+  myShadingFaceActor->SetInput(myShadingFaceSource->GetOutput(),true); 
 
+  myShadingFaceProp->SetRepresentation(VTK_SURFACE); 
+  myShadingFaceProp->SetInterpolationToGouraud(); 
+  myShadingFaceProp->SetAmbient(1.0);
+  myShadingFaceProp->SetDiffuse(1.0);
+  myShadingFaceProp->SetSpecular(0.4);
+  myShadingFaceProp->SetAmbientColor(0.329412, 0.223529, 0.027451);
+  myShadingFaceProp->SetDiffuseColor(0.780392, 0.568627, 0.113725);
+  myShadingFaceProp->SetSpecularColor(0.992157, 0.941176, 0.807843);
 
-GEOM_Actor* GEOM_Actor::New()
-{
-  // First try to create the object from the vtkObjectFactory
-  vtkObject* ret = vtkObjectFactory::CreateInstance("GEOM_Actor");
-  if(ret)
-    {
-      return (GEOM_Actor*)ret;
-    }
-  // If the factory was unable to create the object, then create it here.
-  return new GEOM_Actor;
-}
+  myShadingFaceActor->SetProperty(myShadingFaceProp.GetPointer());
 
+  // Toggle display mode 
+  setDisplayMode(0); // WIRE FRAME
 
-GEOM_Actor::GEOM_Actor()
+} 
+GEOM_Actor::~GEOM_Actor() 
+{ 
+#ifdef MYDEBUG
+  cout <<this<< " ~GEOM_Actor::GEOM_Actor"<<endl;
+#endif
+  myHighlightProp->Delete();
+  myPreHighlightProp->Delete();
+  myShadingFaceProp->Delete();
+} 
+GEOM_Actor*  
+GEOM_Actor:: 
+New() 
+{ 
+  GEOM_Actor* anObject = new GEOM_Actor(); 
+  anObject->SetMapper(anObject->myPolyDataMapper.Get()); 
+  return anObject; 
+} 
+void Write(vtkPolyData* theDataSet, const char* theFileName){ 
+  vtkPolyDataWriter* aWriter = vtkPolyDataWriter::New(); 
+  cout<<"Write - "<<theFileName<<"' : "<<theDataSet->GetNumberOfPoints()<<"; "<<theDataSet->GetNumberOfCells()<<endl; 
+  aWriter->SetInput(theDataSet); 
+  aWriter->SetFileName(theFileName); 
+  //aWriter->Write(); 
+  aWriter->Delete(); 
+} 
+void 
+GEOM_Actor:: 
+SetModified() 
+{ 
+  this->myVertexSource->Modified(); 
+  this->myIsolatedEdgeSource->Modified(); 
+  this->myOneFaceEdgeSource->Modified(); 
+  this->mySharedEdgeSource->Modified(); 
+  this->myWireframeFaceSource->Modified(); 
+  this->myShadingFaceSource->Modified(); 
+} 
+
+void  
+GEOM_Actor:: 
+SetMapper(vtkMapper* theMapper) 
+{ 
+  SALOME_Actor::SetMapper(theMapper); 
+} 
+
+void 
+GEOM_Actor:: 
+AddToRender(vtkRenderer* theRenderer)
 {
-  this->Device = vtkActor::New();
+  //SALOME_Actor::AddToRender(theRenderer);
+  
+  theRenderer->AddActor(this); 
+  this->myHighlightActor->AddToRender(theRenderer); 
+  
 
-  this->WireframeMapper = NULL;
-  this->ShadingMapper = NULL;
+  myShadingFaceActor->AddToRender(theRenderer); 
+  myWireframeFaceActor->AddToRender(theRenderer); 
+  mySharedEdgeActor->AddToRender(theRenderer); 
+  myOneFaceEdgeActor->AddToRender(theRenderer); 
+  myIsolatedEdgeActor->AddToRender(theRenderer); 
+  myVertexActor->AddToRender(theRenderer); 
+}
+void 
+GEOM_Actor:: 
+RemoveFromRender(vtkRenderer* theRenderer)
+{
+  //SALOME_Actor::RemoveFromRender(theRenderer);
 
-  this->ShadingProperty = NULL;
-  this->WireframeProperty = NULL;
+  
+  theRenderer->RemoveActor(this);
 
-  this->deflection = 0;
-  myDisplayMode = 0; 
+  myHighlightActor->RemoveFromRender(theRenderer); 
+  myShadingFaceActor->RemoveFromRender(theRenderer); 
+  myWireframeFaceActor->RemoveFromRender(theRenderer); 
+  mySharedEdgeActor->RemoveFromRender(theRenderer); 
+  myOneFaceEdgeActor->RemoveFromRender(theRenderer); 
+  myIsolatedEdgeActor->RemoveFromRender(theRenderer); 
+  myVertexActor->RemoveFromRender(theRenderer);
+
+  
+  SetSelected(false);
+  SetVisibility(false);
+}
 
-  this->myIO = NULL;
-  this->myName = "";
+void  
+GEOM_Actor:: 
+setDisplayMode(int theMode) 
+{ 
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::SetDisplayMode = "<<theMode  <<endl;
+#endif
+  VTKViewer_Actor::setDisplayMode(theMode);
+  SetVisibility(GetVisibility()); 
+} 
+
+void  
+GEOM_Actor:: 
+SetSelected(bool theIsSelected) 
+{ 
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::SetSelected = "<<theIsSelected  <<endl;
+#endif
+
+  myIsSelected = theIsSelected; 
+  SetVisibility(GetVisibility()); 
+} 
+
+void  
+GEOM_Actor:: 
+SetVisibility(int theVisibility) 
+{ 
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::SetVisibility = "<<theVisibility <<"  myIsSelected="<< myIsSelected
+       << " theVisibility="<<theVisibility<<" myIsPreselected="<<myIsPreselected<<endl;
+#endif
+
+  SALOME_Actor::SetVisibility(theVisibility);
+
+  this->myHighlightActor->SetVisibility(theVisibility && (myIsSelected || myIsPreselected));
+  
+  myShadingFaceActor->SetVisibility(theVisibility && (myDisplayMode == (int)eShading) && (!myIsSelected || !myIsPreselected)); 
+  myWireframeFaceActor->SetVisibility(theVisibility && (myDisplayMode ==(int)eWireframe) && !myIsSelected);
 
-  this->HighlightProperty = NULL;
-  this->myIsHighlighted = false;
+  mySharedEdgeActor->SetVisibility(theVisibility && myDisplayMode == (int)eWireframe && !myIsSelected);
+  myOneFaceEdgeActor->SetVisibility(theVisibility && myDisplayMode == (int)eWireframe && !myIsSelected);
+  myIsolatedEdgeActor->SetVisibility(theVisibility && !myIsSelected);
 
-  this->subshape = false;
-  this->myIsInfinite = false;
+  myVertexActor->SetVisibility(false);// must be added new mode points 
 }
 
-GEOM_Actor::~GEOM_Actor()
+void
+GEOM_Actor
+::SetNbIsos(const int theNb[2])
 {
-  if (WireframeMapper != NULL)
-    WireframeMapper->Delete();
-  if (ShadingMapper != NULL)
-    ShadingMapper->Delete();
-  if (ShadingProperty != NULL)
-    ShadingProperty->Delete();
-  if (WireframeProperty != NULL)
-    WireframeProperty->Delete();
-  if (HighlightProperty != NULL)
-    HighlightProperty->Delete();
+  myNbIsos[0] = theNb[0];
+  myNbIsos[1] = theNb[1];
 }
 
-
-void GEOM_Actor::ShallowCopy(vtkProp *prop)
+void
+GEOM_Actor
+::GetNbIsos(int &theNbU,int &theNbV)
 {
-  GEOM_Actor *f = GEOM_Actor::SafeDownCast(prop);
-  if ( f != NULL )
-    {
-      this->setInputShape(f->getTopo(),f->getDeflection(),f->getDisplayMode(),f->isVector());
-      this->setName( f->getName() );
-      if ( f->hasIO() )
-       this->setIO( f->getIO() );
-      this->ShadingMapper = NULL;
-      this->WireframeMapper = NULL;
-    } else {
-      this->myIO = NULL;
-      this->myName = "";
-      this->ShadingMapper = NULL;
-      this->WireframeMapper = NULL;
-    }
-
-  // Now do superclass
-  this->SALOME_Actor::ShallowCopy(prop);
+  theNbU = myNbIsos[0];
+  theNbV = myNbIsos[1];
 }
 
-//-------------------------------------------------------------
-// Set parameters
-//-------------------------------------------------------------
-
-
-void GEOM_Actor::setDisplayMode(int thenewmode) {
-  myDisplayMode = thenewmode;
-  if ( thenewmode >=1 ) {
-    if ((myShape.ShapeType() == TopAbs_WIRE) || 
-       (myShape.ShapeType() == TopAbs_EDGE) || 
-       (myShape.ShapeType() == TopAbs_VERTEX)) {
-      if ( !subshape )
-       CreateWireframeMapper();
-      else
-       return;
-    } else
-      CreateShadingMapper();
-  } else
-    CreateWireframeMapper();
+static 
+void 
+MeshShape(const TopoDS_Shape& theShape,
+          float& theDeflection, 
+          bool theIsRelative)
+{ 
+  static Standard_Real RELATIVE_DEFLECTION = 0.0001; 
+  Standard_Real aDeflection = theDeflection; 
+
+  if(theDeflection <= 0) { // Compute default theDeflection
+    Bnd_Box B;
+    BRepBndLib::Add(theShape, B);
+    Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax;
+    B.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
+    Standard_Real aDiagonal = (aXmax-aXmin)*(aXmax-aXmin) +
+                              (aYmax-aYmin)*(aYmax-aYmin) +
+                              (aZmax-aZmin)*(aZmax-aZmin);
+    aDiagonal = sqrt(aDiagonal); 
+    aDeflection = aDiagonal*RELATIVE_DEFLECTION; 
+    if(theIsRelative) 
+      theDeflection = RELATIVE_DEFLECTION; 
+    else 
+      theDeflection = aDeflection; 
+  }
+  
+  BRepMesh_IncrementalMesh aMesh(theShape,aDeflection);
 }
 
-void GEOM_Actor::setDeflection(double adef) {
-  deflection = adef;
-}
+void  
+GEOM_Actor:: 
+SetDeflection(float theDeflection, bool theIsRelative) 
+{ 
+  myDeflection = theDeflection; 
+  myIsRelative = theIsRelative; 
+  MeshShape(myShape,myDeflection,myIsRelative); 
+  SetModified(); 
+} 
 
-void GEOM_Actor::setInputShape(const TopoDS_Shape& aShape, double adef,
-                               int imode, bool isVector)
+void GEOM_Actor::SetShape (const TopoDS_Shape& theShape,
+                           float theDeflection,
+                           bool theIsRelative,
+                           bool theIsVector)
 {
-  myShape = aShape;
-  deflection = adef;
-  myIsVector = isVector;
-  setDisplayMode(imode);
-}
+  myShape = theShape;
+
+  myVertexSource->Clear();
+  myIsolatedEdgeSource->Clear();
+  myOneFaceEdgeSource->Clear();
+  mySharedEdgeSource->Clear();
+  myWireframeFaceSource->Clear();
+  myShadingFaceSource->Clear();
+
+  TopExp_Explorer aVertexExp (theShape,TopAbs_VERTEX);
+  for (; aVertexExp.More(); aVertexExp.Next())
+  {
+     const TopoDS_Vertex& aVertex = TopoDS::Vertex(aVertexExp.Current());
+     myVertexSource->AddVertex(aVertex);
+  }
+  SetDeflection(theDeflection, theIsRelative);
 
-//-------------------------------------------------------------
-// Get parameters
-//-------------------------------------------------------------
+  // look if edges are free or shared
+  TopTools_IndexedDataMapOfShapeListOfShape anEdgeMap;
+  TopExp::MapShapesAndAncestors(theShape,TopAbs_EDGE,TopAbs_FACE,anEdgeMap);
 
-const TopoDS_Shape& GEOM_Actor::getTopo() {
-  return myShape;
+  SetShape(theShape,anEdgeMap,theIsVector);
 }
 
-double GEOM_Actor::getDeflection() {
-  return deflection;
-}
+void GEOM_Actor::SetShape (const TopoDS_Shape& theShape,
+                           const TopTools_IndexedDataMapOfShapeListOfShape& theEdgeMap,
+                           bool theIsVector)
+{
+  if (theShape.ShapeType() == TopAbs_COMPOUND) {
+    TopoDS_Iterator anItr(theShape);
+    for (; anItr.More(); anItr.Next()) {
+      SetShape(anItr.Value(),theEdgeMap,theIsVector);
+    }
+  }
 
-void GEOM_Actor::SetWireframeProperty(vtkProperty* Prop) {
-  this->WireframeProperty = Prop;
+  switch (theShape.ShapeType()) {
+    case TopAbs_WIRE: {
+      TopExp_Explorer anEdgeExp(theShape,TopAbs_EDGE);
+      for (; anEdgeExp.More(); anEdgeExp.Next()){
+        const TopoDS_Edge& anEdge = TopoDS::Edge(anEdgeExp.Current());
+        if (!BRep_Tool::Degenerated(anEdge))
+          myIsolatedEdgeSource->AddEdge(anEdge,theIsVector);
+      }
+      break;
+    }
+    case TopAbs_EDGE: {
+      const TopoDS_Edge& anEdge = TopoDS::Edge(theShape);
+      if (!BRep_Tool::Degenerated(anEdge))
+        myIsolatedEdgeSource->AddEdge(anEdge,theIsVector);
+      break;
+    }
+    case TopAbs_VERTEX: {
+      break;
+    }
+    default: {
+      TopExp_Explorer aFaceExp (theShape,TopAbs_FACE);
+      for(; aFaceExp.More(); aFaceExp.Next()) {
+        const TopoDS_Face& aFace = TopoDS::Face(aFaceExp.Current());
+        myWireframeFaceSource->AddFace(aFace);
+        myShadingFaceSource->AddFace(aFace);
+        TopExp_Explorer anEdgeExp(aFaceExp.Current(), TopAbs_EDGE);
+       for(; anEdgeExp.More(); anEdgeExp.Next()) {
+         const TopoDS_Edge& anEdge = TopoDS::Edge(anEdgeExp.Current());
+          if(!BRep_Tool::Degenerated(anEdge)){
+           // compute the number of faces
+           int aNbOfFaces = theEdgeMap.FindFromKey(anEdge).Extent();
+           switch(aNbOfFaces){
+           case 0:  // isolated edge
+             myIsolatedEdgeSource->AddEdge(anEdge,theIsVector);
+             break;
+           case 1:  // edge in only one face
+             myOneFaceEdgeSource->AddEdge(anEdge,theIsVector);
+             break;
+           default: // edge shared by at least two faces
+             mySharedEdgeSource->AddEdge(anEdge,theIsVector);
+           }
+          }
+        }
+      }
+    }
+  }
 }
 
-void GEOM_Actor::SetShadingProperty(vtkProperty* Prop) {
-  this->ShadingProperty = Prop;
+// OLD METHODS
+void GEOM_Actor::setDeflection(double adef) {
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::setDeflection"<<endl;
+#endif
+  SetDeflection((float)adef,GetIsRelative());
 }
 
 
-//-------------------------------------------------------------
-// Mapper creating function
-//-------------------------------------------------------------
-void GEOM_Actor::CreateMapper(int theMode) {
-  this->myIsInfinite = (bool)myShape.Infinite();  
-  if(myShape.ShapeType() == TopAbs_VERTEX) {
-    gp_Pnt aPnt = BRep_Tool::Pnt(TopoDS::Vertex(myShape));
-    this->SetPosition(aPnt.X(),aPnt.Y(),aPnt.Z());
-  }
-  GEOM_OCCReader* aread = GEOM_OCCReader::New();
-  aread->setTopo(myShape, myIsVector);
-  aread->setDisplayMode(theMode);
-  aread->GetOutput()->ReleaseDataFlagOn(); 
-
-  vtkPolyDataMapper* aMapper = vtkPolyDataMapper::New();
-  if (theMode == 0) { 
-    aMapper->SetInput(aread->GetOutput());
-  } else {
-    vtkPolyDataNormals *normals = vtkPolyDataNormals::New();
-    normals->SetInput(aread->GetOutput());
-    aMapper->SetInput(normals->GetOutput());
-  }
-  aread->Delete();
-  this->SetMapper(theMode == 0? WireframeMapper = aMapper : ShadingMapper = aMapper);
-}
+// warning! must be checked!
+// SetHighlightProperty
+// SetWireframeProperty
+// SetShadingProperty
 
-void GEOM_Actor::CreateShadingMapper() {
-  CreateMapper(1);
+void GEOM_Actor::SetHighlightProperty(vtkProperty* Prop)
+{
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::SetHighlightProperty"<<endl;
+#endif
+  this->myHighlightActor->GetProperty()->DeepCopy(Prop);
+  
 }
 
+void GEOM_Actor::SetWireframeProperty(vtkProperty* Prop)
+{
+#ifdef MYDEBUG
+  cout << this << " GEOM_Actor::SetWireframeProperty"<<endl;
+#endif
+  // must be filled
+  myWireframeFaceActor->SetProperty(Prop);
+}
 
-void GEOM_Actor::CreateWireframeMapper() {
-  CreateMapper(0);
+void GEOM_Actor::SetShadingProperty(vtkProperty* Prop)
+{
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::SetShadingProperty"<<endl;
+#endif
+  myShadingFaceProp->DeepCopy(Prop);
 }
 
-//-------------------------------------------------------------
-// Render function
-//-------------------------------------------------------------
 
-void GEOM_Actor::Render(vtkRenderer *ren, vtkMapper *Mapper)
+void GEOM_Actor::Render(vtkRenderer *ren, vtkMapper *theMapper)
 {
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::Render"<<endl;
+#endif
+
+  if(!GetVisibility())
+    return;
+
   /* render the property */
   if (!this->Property) {
     // force creation of a property
@@ -238,17 +524,29 @@ void GEOM_Actor::Render(vtkRenderer *ren, vtkMapper *Mapper)
     this->Property->SetSpecularColor(0.99,0.98,0.83);
   }
 
-  if(!myIsHighlighted) {
-    if ( myIsPreselected ) 
-      this->Property = PreviewProperty;
-    else if(myDisplayMode >= 1) {
-      // SHADING
-      this->Property = ShadingProperty;
-    }
-    else {
-      this->Property = WireframeProperty;     
-    }
+  switch(myDisplayMode){
+  case 0://wireframe
+    myPreHighlightProp->SetRepresentationToWireframe();
+    myHighlightProp->SetRepresentationToWireframe();
+    break;
+  case 1://shading
+    myPreHighlightProp->SetRepresentationToSurface();
+    myHighlightProp->SetRepresentationToSurface();
+    break;
+  }
 
+  if(!myIsSelected){
+    if(myIsPreselected){
+      this->myHighlightActor->SetProperty(myPreHighlightProp.GetPointer());
+      myShadingFaceActor->SetProperty(myPreHighlightProp.GetPointer());
+    } else {
+      this->myHighlightActor->SetProperty(myShadingFaceProp.GetPointer());
+      myShadingFaceActor->SetProperty(myShadingFaceProp.GetPointer());
+    }
+  }
+  else{
+    this->myHighlightActor->SetProperty(myHighlightProp.GetPointer());
+    myShadingFaceActor->SetProperty(myHighlightProp.GetPointer());
   }
 
   this->Property->Render(this, ren);
@@ -257,24 +555,6 @@ void GEOM_Actor::Render(vtkRenderer *ren, vtkMapper *Mapper)
     this->Device->SetBackfaceProperty(this->BackfaceProperty);
   }
   this->Device->SetProperty(this->Property);
-  // Store information on time it takes to render.
-  // We might want to estimate time from the number of polygons in mapper.
-  if(myDisplayMode >= 1) {
-    if((myShape.ShapeType() == TopAbs_WIRE) || 
-       (myShape.ShapeType() == TopAbs_EDGE) || 
-       (myShape.ShapeType() == TopAbs_VERTEX)) {
-      if ( !subshape ) {
-       if(WireframeMapper==NULL) CreateWireframeMapper();
-      } else
-       return;
-    }
-    else {
-      if(ShadingMapper==NULL) CreateShadingMapper();
-    }
-  }
-  else {
-    if(WireframeMapper==NULL) CreateWireframeMapper();
-  }
   if(myShape.ShapeType() == TopAbs_VERTEX) {
     if(ren){
       //The parameter determine size of vertex actor relate to diagonal of RendererWindow
@@ -289,107 +569,207 @@ void GEOM_Actor::Render(vtkRenderer *ren, vtkMapper *Mapper)
     vtkMatrix4x4 *aMatrix = vtkMatrix4x4::New();
     this->GetMatrix(ren->GetActiveCamera(), aMatrix);
     this->Device->SetUserMatrix(aMatrix);
-    this->Device->Render(ren,this->Mapper);
+    this->Device->Render(ren,theMapper);
     aMatrix->Delete();    
   } else
-    this->Device->Render(ren, this->Mapper);
- if(WireframeMapper!=NULL) this->EstimatedRenderTime = WireframeMapper->GetTimeToDraw(); 
- else if(ShadingMapper!=NULL) this->EstimatedRenderTime = ShadingMapper->GetTimeToDraw();
+    this->Device->Render(ren, theMapper);
+
+}
+
+void GEOM_Actor::ReleaseGraphicsResources(vtkWindow *)
+{
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::ReleaseGraphicsResources"<<endl;
+#endif  
+}
+
+
+
+void GEOM_Actor::ShallowCopy(vtkProp *prop)
+{
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::ShallowCopy"<<endl;
+#endif
+  GEOM_Actor *f = GEOM_Actor::SafeDownCast(prop);
+  if ( f != NULL )
+    {
+      this->SetShape(f->getTopo(),f->GetDeflection(),f->GetIsRelative());
+    }
+
+  // Now do superclass
+  this->SALOME_Actor::ShallowCopy(prop);
+}
+
+const TopoDS_Shape& GEOM_Actor::getTopo() {
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::getTopo"<<endl;
+#endif
+  return myShape;
+}
+
+void GEOM_Actor::setInputShape(const TopoDS_Shape& ashape, double adef1,
+                               int imode, bool isVector)
+{
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::setInputShape"<<endl;
+#endif
+}
+
+double GEOM_Actor::getDeflection()
+{
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::getDeflection"<<endl;
+#endif
+  return (double) GetDeflection();
+}
+
+
+double GEOM_Actor::isVector()
+{
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::isVector"<<endl;
+#endif  
+  return 0;
 }
 
-// SubShape
 void GEOM_Actor::SubShapeOn()
 {
-  subshape = true;
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::SubShapeOn"<<endl;
+#endif  
 }
+
 void GEOM_Actor::SubShapeOff()
 {
-  subshape = false;
+#ifdef MYDEBUG
+  cout << "GEOM_Actor::SubShapeOff"<<endl;
+#endif
 }
 
-//-------------------------------------------------------------
-// Opacity methods
-//-------------------------------------------------------------
+void GEOM_Actor::highlight(bool highlight)
+{
+#ifdef MYDEBUG
+  cout << this << " GEOM_Actor::highlight highlight="<<highlight<<endl;
+#endif
+  SALOME_Actor::highlight(highlight);
+}
 
 void GEOM_Actor::SetOpacity(vtkFloatingPointType opa)
 {
-  //HighlightProperty->SetOpacity(opa);
-  SALOME_Actor::SetOpacity(opa);
-  ShadingProperty->SetOpacity(opa);
+  // enk:tested OK
+  myShadingFaceProp->SetOpacity(opa);
+  myHighlightProp->SetOpacity(opa);
+  myPreHighlightProp->SetOpacity(opa);
 }
 
-vtkFloatingPointType GEOM_Actor::GetOpacity() {
-  return ShadingProperty->GetOpacity();
+vtkFloatingPointType GEOM_Actor::GetOpacity()
+{
+  // enk:tested OK
+  return myShadingFaceProp->GetOpacity(); 
 }
 
-//-------------------------------------------------------------
-// Color methods
-//-------------------------------------------------------------
-void GEOM_Actor::SetColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b) {
-  ShadingProperty->SetColor(r,g,b);  
+void GEOM_Actor::SetColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b)
+{
+  // enk:tested OK
+  myShadingFaceProp->SetColor(r,g,b);
 }
 
-void GEOM_Actor::GetColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b) {
-  vtkFloatingPointType color[3];
-  ShadingProperty->GetColor(color);
-  r = color[0];
-  g = color[1];
-  b = color[2];
+void GEOM_Actor::GetColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b)
+{
+  // enk:tested OK
+  vtkFloatingPointType aRGB[3];
+  myShadingFaceProp->GetColor(aRGB);
+  r = aRGB[0];
+  g = aRGB[1];
+  b = aRGB[2];
 }
 
-//-------------------------------------------------------------
-// Highlight methods
-//-------------------------------------------------------------
-
-void GEOM_Actor::highlight(bool highlight) {
-
-  if(highlight && !myIsHighlighted) {
-    myIsHighlighted=true;
-    // build highlight property is necessary
-    if(HighlightProperty==NULL) {
-      HighlightProperty = vtkProperty::New();
-      HighlightProperty->SetAmbient(0.5);
-      HighlightProperty->SetDiffuse(0.3);
-      HighlightProperty->SetSpecular(0.2);
-      HighlightProperty->SetRepresentationToSurface();
-      HighlightProperty->SetAmbientColor(1, 1, 1);
-      HighlightProperty->SetDiffuseColor(1, 1, 1);
-      HighlightProperty->SetSpecularColor(0.5, 0.5, 0.5); 
-    }
-      
-    this->Property = HighlightProperty;
-  }
-  else if (!highlight) {
-    if(myIsHighlighted) {
-      myIsHighlighted=false;
-      if(myDisplayMode==1) {
-       //unhilight in shading
-       this->Property = ShadingProperty;
-      }
-      else {
-       //unhilight in wireframe
-       this->Property = WireframeProperty;
-      }
-    }
-  }
+bool GEOM_Actor::IsInfinite()
+{
+  return (bool)(myShape.Infinite());
 }
 
-void GEOM_Actor::SetHighlightProperty(vtkProperty* Prop) {
-  this->HighlightProperty = Prop;
+/*!
+  To map current selection to VTK representation
+*/
+void
+GEOM_Actor
+::Highlight(bool theIsHighlight)
+{
+  myIsSelected = theIsHighlight;
+#ifdef MYDEBUG
+  cout << this << " GEOM_Actor::Highlight myIsSelected="<<myIsSelected<<endl;
+#endif
+  
+  SALOME_Actor::Highlight(theIsHighlight); // this method call ::highlight(theIsHighlight) in the end
+  SetVisibility(GetVisibility());
 }
 
-
-void GEOM_Actor::ReleaseGraphicsResources(vtkWindow *renWin) 
+/*!
+  To process prehighlight (called from SVTK_InteractorStyle)
+*/
+bool
+GEOM_Actor
+::PreHighlight(vtkInteractorStyle *theInteractorStyle, 
+              SVTK_SelectionEvent* theSelectionEvent,
+              bool theIsHighlight)
 {
-  vtkActor::ReleaseGraphicsResources(renWin);
+#ifdef MYDEBUG
+  cout << this<<" GEOM_Actor::PreHighlight (3) theIsHighlight="<<theIsHighlight<<endl;
+#endif
+
+  if ( !GetPickable() )
+    return false;  
+
+  myPreHighlightActor->SetVisibility( false );
+  bool anIsPreselected = myIsPreselected;
   
-  // broadcast the message down to the individual LOD mappers
+  Selection_Mode aSelectionMode = theSelectionEvent->mySelectionMode;
+  bool anIsChanged = (mySelectionMode != aSelectionMode);
+
+  if( !theIsHighlight ) {
+    SetPreSelected( false );
+  }else{
+    switch(aSelectionMode){
+    case ActorSelection : 
+    {
+      if( !mySelector->IsSelected( myIO ) ) {
+       SetPreSelected( true );
+      }
+    }
+    default:
+      break;
+    }
+  }
 
-  if(WireframeMapper) this->WireframeMapper->ReleaseGraphicsResources(renWin);
-  if(ShadingMapper) this->ShadingMapper->ReleaseGraphicsResources(renWin);
+  mySelectionMode = aSelectionMode;
+  anIsChanged |= (anIsPreselected != myIsPreselected);
+
+  SetVisibility(GetVisibility());
+  return anIsChanged;
 }
 
+/*!
+  To process highlight (called from SVTK_InteractorStyle)
+*/
+bool
+GEOM_Actor
+::Highlight(vtkInteractorStyle *theInteractorStyle, 
+           SVTK_SelectionEvent* theSelectionEvent,
+           bool theIsHighlight)
+{
+  // define the selection of object
+#ifdef MYDEBUG
+  cout << endl << this << " GEOM_Actor::Highlight (3) myIsSelected="<<myIsSelected<<endl;
+#endif
+  bool aRet = SALOME_Actor::Highlight(theInteractorStyle,theSelectionEvent,theIsHighlight);
+  SetSelected(theIsHighlight);
+  if(theIsHighlight)
+    SetPreSelected(false);
+  
+  return aRet;
+}
 
 // Copy the follower's composite 4x4 matrix into the matrix provided.
 void GEOM_Actor::GetMatrix(vtkCamera* theCam, vtkMatrix4x4 *result)
index fe465835bebed06701669d76d1865ee49cb7deb4..afbaf16194c17746036a072a5a505c6f026d51ef 100644 (file)
 #define GEOM_ACTOR_H
 
 #include "GEOM_OBJECT_defs.hxx"
+#include "GEOM_SmartPtr.h"
 
-#include "SALOME_Actor.h"
+#include <SALOME_Actor.h>
 
-//OpenCASCADE
 #include <TopoDS_Shape.hxx>
-#include <TopoDS.hxx>
+#include <vtkSmartPointer.h>
 
 class vtkCamera;
 
-class GEOM_OBJECT_EXPORT GEOM_Actor : public SALOME_Actor {
- public:
-  vtkTypeMacro(GEOM_Actor,SALOME_Actor);
+class GEOM_VertexSource;
+typedef GEOM_SmartPtr<GEOM_VertexSource> PVertexSource;
+
+class GEOM_EdgeSource;
+typedef GEOM_SmartPtr<GEOM_EdgeSource> PEdgeSource;
+
+class GEOM_WireframeFace;
+typedef GEOM_SmartPtr<GEOM_WireframeFace> PWFaceSource;
+
+class GEOM_ShadingFace;
+typedef GEOM_SmartPtr<GEOM_ShadingFace> PSFaceSource;
+
+#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
+class vtkRenderer;
+
+class vtkAppendPolyData;
+typedef GEOM_SmartPtr<vtkAppendPolyData> PAppendFilter;
 
+class GEOM_OBJECT_EXPORT GEOM_Actor: public SALOME_Actor
+{
+public:
+  vtkTypeMacro(GEOM_Actor,SALOME_Actor);
   static GEOM_Actor* New();
 
+  void SetShape(const TopoDS_Shape& theShape,
+                float theDeflection,
+                bool theIsRelative,
+                bool theIsVector = false);
+
+  void SetDeflection(float theDeflection, bool theIsRelative);
+  float GetDeflection() const{ return myDeflection;}
+  bool GetIsRelative() const{ return myIsRelative;}
+
+  void AddToRender(vtkRenderer* theRenderer);
+  void RemoveFromRender(vtkRenderer* theRenderer);
+
+  enum EDisplayMode{ eWireframe, eShading};
+
+/*   void SetDisplayMode(EDisplayMode theMode);  */
+/*   EDisplayMode GetDisplayMode() const { return myDisplayMode;}  */
+
+  void SetSelected(bool theIsSelected);
+  bool IsSelected() const { return myIsSelected;}
+
+  // OLD METHODS
+  // Properties
+  void SetHighlightProperty(vtkProperty* Prop);
+  void SetWireframeProperty(vtkProperty* Prop);
+  void SetShadingProperty(vtkProperty* Prop);
+
+  void setDeflection(double adef);
+  virtual void setDisplayMode(int thenewmode);
+
   // Description:
   // This causes the actor to be rendered. It, in turn, will render the actor's
   // property and then mapper.
   virtual void Render(vtkRenderer *, vtkMapper *);
-
   // Description:
   // Release any graphics resources that are being consumed by this actor.
   // The parameter window could be used to determine which graphic
   // resources to release.
   void ReleaseGraphicsResources(vtkWindow *);
-
   const TopoDS_Shape& getTopo();
   void setInputShape(const TopoDS_Shape& ashape, double adef1,
                     int imode, bool isVector = false);
-
   double getDeflection();
-  void setDeflection(double adefl);
-
-  double isVector() { return myIsVector; }
+  double isVector();
 
   // SubShape
   void SubShapeOn();
   void SubShapeOff();
-  
-  // Display Mode
-  virtual void setDisplayMode(int);
 
   // Highlight
   virtual void highlight(bool theHighlight);
@@ -78,11 +117,6 @@ class GEOM_OBJECT_EXPORT GEOM_Actor : public SALOME_Actor {
 
   void ShallowCopy(vtkProp *prop);
 
-  // Properties
-  void SetHighlightProperty(vtkProperty* Prop);
-  void SetWireframeProperty(vtkProperty* Prop);
-  void SetShadingProperty(vtkProperty* Prop);
-
   // Opacity
   void SetOpacity(vtkFloatingPointType opa);
   vtkFloatingPointType GetOpacity();
@@ -91,37 +125,98 @@ class GEOM_OBJECT_EXPORT GEOM_Actor : public SALOME_Actor {
   void SetColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b);
   void GetColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b);
 
-  virtual bool IsInfinite() {return myIsInfinite;}  
- protected:
+  virtual bool IsInfinite();
+
+  // overloaded functions
+  //! To map current selection to VTK representation
+  virtual
+  void
+  Highlight(bool theHighlight);
+
+  //----------------------------------------------------------------------------
+  //! To process prehighlight (called from #SVTK_InteractorStyle)
+  virtual
+  bool
+  PreHighlight(vtkInteractorStyle* theInteractorStyle,
+              SVTK_SelectionEvent* theSelectionEvent,
+              bool theIsHighlight);
+
+  //! To process highlight (called from #SVTK_InteractorStyle)
+  virtual
+  bool
+  Highlight(vtkInteractorStyle* theInteractorStyle,
+           SVTK_SelectionEvent* theSelectionEvent,
+           bool theIsHighlight);
+
+  //! Visibility management
+  virtual
+  void
+  SetVisibility( int );
+
+  //! IsoLines management
+  // theNb[0] - number of U lines
+  // theNb[1] - number of V lines
+  virtual
+  void
+  SetNbIsos(const int theNb[2]);
+
+  virtual
+  void
+  GetNbIsos(int &theNbU,int &theNbV);
+
+protected:
+  void SetShape(const TopoDS_Shape& theShape,
+                const TopTools_IndexedDataMapOfShapeListOfShape& theEdgeMap,
+                bool theIsVector = false);
+
+  void SetModified();
+
+  void GetMatrix(vtkCamera* theCam, vtkMatrix4x4 *result);
 
   GEOM_Actor();
   ~GEOM_Actor();
-  GEOM_Actor(const GEOM_Actor&) {};
-  void operator=(const GEOM_Actor&) {};
 
-  void CreateWireframeMapper();
-  void CreateShadingMapper();
-  void CreateMapper(int theMode);
-  void GetMatrix(vtkCamera* theCam, vtkMatrix4x4 *result);
+private:
+  TopoDS_Shape myShape;
+  int myNbIsos[2];
 
+  float myDeflection;
+  bool myIsRelative;
+  bool myIsForced;
 
- private:
+  //  EDisplayMode myDisplayMode;
+  bool myIsSelected;
 
-  bool subshape;
-  bool myIsInfinite;
+  PDeviceActor myVertexActor;
+  PVertexSource myVertexSource;
 
-  TopoDS_Shape myShape;
-  double deflection;
-  bool myIsVector;
+  PDeviceActor myIsolatedEdgeActor;
+  PEdgeSource myIsolatedEdgeSource;
 
-  vtkMapper* ShadingMapper;
-  vtkMapper* WireframeMapper;
+  PDeviceActor myOneFaceEdgeActor;
+  PEdgeSource myOneFaceEdgeSource;
 
-  vtkProperty* ShadingProperty;
-  vtkProperty* WireframeProperty;
-  vtkProperty* HighlightProperty;
-};
+  PDeviceActor mySharedEdgeActor;
+  PEdgeSource mySharedEdgeSource;
 
+  PDeviceActor myWireframeFaceActor;
+  PWFaceSource myWireframeFaceSource;
 
-#endif //GEOM_ACTOR_H
+  PDeviceActor myShadingFaceActor;
+  PSFaceSource myShadingFaceSource;
+
+  PDeviceActor myHighlightActor;
+  vtkSmartPointer<vtkProperty>  myHighlightProp;
+  vtkSmartPointer<vtkProperty>  myPreHighlightProp;
+  vtkSmartPointer<vtkProperty>  myShadingFaceProp;
 
+  PAppendFilter myAppendFilter;
+  PPolyDataMapper myPolyDataMapper;
+
+  virtual void SetMapper(vtkMapper*);
+
+  GEOM_Actor(const GEOM_Actor&);
+  void operator=(const GEOM_Actor&);
+};
+
+#endif //GEOM_ACTOR_H
index 3ba95145b97c727aea62348ddc2581505023e141..741352e18800d8bf5a281afe255e969a9b0eb45b 100644 (file)
@@ -76,7 +76,7 @@ void GEOM_AssemblyBuilder::InitProperties(vtkProperty* IsoProp,
                                          vtkProperty* VertexProp,
                                          vtkProperty* IsoPVProp,
                                          vtkProperty* EdgePVProp,
-                                         vtkProperty* VertexPVProp)
+                                         vtkProperty* VertexPVProp)
 {
   // Shading like default OCC material
   FaceProp->SetRepresentationToSurface();
@@ -180,6 +180,7 @@ void GEOM_AssemblyBuilder::MeshShape(const TopoDS_Shape myShape,
       // Compute default deflection
       Bnd_Box B;
       BRepBndLib::Add(myShape, B);
+      if ( B.IsVoid() ) return; // NPAL15983 (Bug when displaying empty groups) 
       Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax;
       B.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
       deflection = MAX3( aXmax-aXmin , aYmax-aYmin , aZmax-aZmin) * 0.001 *4;
@@ -196,8 +197,28 @@ vtkActorCollection* GEOM_AssemblyBuilder::BuildActors(const TopoDS_Shape& myShap
                                                       Standard_Boolean forced,
                                                       Standard_Boolean isVector)
 {
+  /*
+  vtkProperty* IsoProp = vtkProperty::New();
+  vtkProperty* FaceProp = vtkProperty::New();
+  vtkProperty* EdgeFProp = vtkProperty::New();
+  vtkProperty* EdgeSProp = vtkProperty::New();
+  vtkProperty* EdgeIProp = vtkProperty::New();
+  vtkProperty* VertexProp = vtkProperty::New();
+  vtkProperty* IsoPVProp = vtkProperty::New();
+  vtkProperty* EdgePVProp = vtkProperty::New();
+  vtkProperty* VertexPVProp = vtkProperty::New();
+  InitProperties(IsoProp,FaceProp,EdgeFProp,EdgeSProp,EdgeIProp,VertexProp,IsoPVProp,EdgePVProp,VertexPVProp);
+  */
+
   vtkActorCollection* AISActors = vtkActorCollection::New();
+  MeshShape(myShape,deflection,forced);
+  GEOM_Actor* aGeomActor = GEOM_Actor::New();
+  aGeomActor->SetShape(myShape,(float)deflection,false,isVector);
+  AISActors->AddItem(aGeomActor);
 
+  aGeomActor->Delete();
+  
+  /*
   if(myShape.ShapeType() == TopAbs_COMPOUND) {
     TopoDS_Iterator anItr(myShape);
     for(; anItr.More(); anItr.Next()) {
@@ -325,6 +346,8 @@ vtkActorCollection* GEOM_AssemblyBuilder::BuildActors(const TopoDS_Shape& myShap
     AISActors->AddItem(VertexActor);
   
   } 
+  */
+  
   
   return AISActors;
 
@@ -343,8 +366,7 @@ vtkAssembly*  GEOM_AssemblyBuilder::BuildAssembly(const TopoDS_Shape& myShape,
   // Create a new vtkAssembly
 
   vtkAssembly* myVTKShape = vtkAssembly::New();
-
-
+  /*
   // Create graphics properties
 
   vtkProperty* IsoProp = vtkProperty::New();
@@ -423,6 +445,8 @@ vtkAssembly*  GEOM_AssemblyBuilder::BuildAssembly(const TopoDS_Shape& myShape,
     }
     myVTKShape->AddPart(myFaceAssembly);
   }
+
+  */
   
   return myVTKShape;
  
diff --git a/src/OBJECT/GEOM_DeviceActor.cxx b/src/OBJECT/GEOM_DeviceActor.cxx
new file mode 100755 (executable)
index 0000000..9d66243
--- /dev/null
@@ -0,0 +1,83 @@
+#include "GEOM_DeviceActor.h" 
+
+#include <vtkObjectFactory.h> 
+#include <vtkPoints.h> 
+#include <vtkPolyData.h> 
+#include <vtkStripper.h>  
+#include <vtkPolyDataMapper.h>  
+#include <vtkPolyDataNormals.h>  
+#include <vtkActor.h> 
+#include <vtkRenderer.h> 
+vtkStandardNewMacro(GEOM_DeviceActor);
+GEOM_DeviceActor::GEOM_DeviceActor(): 
+  myStripper(vtkStripper::New(),true), 
+  myPolyDataMapper(vtkPolyDataMapper::New(),true), 
+  myPolyDataNormals(vtkPolyDataNormals::New(),true), 
+  myActor(vtkActor::New(),true) 
+{ 
+  myStripper->SetInput(myPolyDataNormals->GetOutput()); 
+  myPolyDataMapper->SetInput(myStripper->GetOutput()); 
+  myActor->SetMapper(myPolyDataMapper.Get()); 
+  myActor->PickableOff(); 
+} 
+GEOM_DeviceActor::~GEOM_DeviceActor() 
+{ 
+} 
+void 
+GEOM_DeviceActor:: 
+SetInput(vtkPolyData* thePolyData, bool theUseStripper)
+{ 
+  if(theUseStripper)
+    myPolyDataNormals->SetInput(thePolyData); 
+  else 
+    myPolyDataMapper->SetInput(thePolyData); 
+}
+void 
+GEOM_DeviceActor:: 
+SetProperty(vtkProperty* theProperty)
+{
+  myActor->SetProperty(theProperty);
+}
+vtkProperty* 
+GEOM_DeviceActor:: 
+GetProperty()
+{
+  return myActor->GetProperty();
+}
+void 
+GEOM_DeviceActor:: 
+SetVisibility(int theVisibility)
+{
+  myActor->SetVisibility(theVisibility);
+}
+int 
+GEOM_DeviceActor:: 
+GetVisibility()
+{
+  return myActor->GetVisibility();
+}
+void 
+GEOM_DeviceActor:: 
+AddToRender(vtkRenderer* theRenderer)
+{
+  theRenderer->AddActor(myActor.GetPointer());
+}
+
+void 
+GEOM_DeviceActor:: 
+RemoveFromRender(vtkRenderer* theRenderer)
+{
+  theRenderer->RemoveActor(myActor.GetPointer());
+}
diff --git a/src/OBJECT/GEOM_DeviceActor.h b/src/OBJECT/GEOM_DeviceActor.h
new file mode 100755 (executable)
index 0000000..85809da
--- /dev/null
@@ -0,0 +1,60 @@
+#ifndef GEOM_DEVICEACTOR_H 
+#define GEOM_DEVICEACTOR_H 
+#include "GEOM_SmartPtr.h" 
+class vtkPoints; 
+typedef GEOM_SmartPtr<vtkPoints> PPoints; 
+class vtkPolyData; 
+typedef GEOM_SmartPtr<vtkPolyData> PPolyData; 
+class vtkStripper; 
+typedef GEOM_SmartPtr<vtkStripper> PStripper; 
+class vtkPolyDataNormals; 
+typedef GEOM_SmartPtr<vtkPolyDataNormals> PPolyDataNormals; 
+class vtkActor; 
+typedef GEOM_SmartPtr<vtkActor> PActor; 
+class vtkProperty; 
+class vtkRenderer; 
+#include <vtkObject.h> 
+class VTK_EXPORT GEOM_DeviceActor: public vtkObject 
+{  
+public: 
+  vtkTypeMacro(GEOM_DeviceActor,vtkObject); 
+  static GEOM_DeviceActor* New(); 
+
+  void SetProperty(vtkProperty* theProperty);
+  vtkProperty* GetProperty();
+  void SetVisibility(int theVisibility); 
+  int GetVisibility(); 
+  void SetInput(vtkPolyData* thePolyData, bool theUseStripper); 
+
+  void AddToRender(vtkRenderer* theRenderer); 
+  void RemoveFromRender(vtkRenderer* theRenderer);
+protected: 
+  PPolyDataNormals myPolyDataNormals; 
+  PPolyDataMapper myPolyDataMapper; 
+  PStripper myStripper; 
+  PActor myActor; 
+  GEOM_DeviceActor(); 
+  ~GEOM_DeviceActor(); 
+private: 
+  // Not implememnted 
+  GEOM_DeviceActor(const GEOM_DeviceActor&); 
+  void operator=(const GEOM_DeviceActor&); 
+}; 
+#endif //GEOM_DEVICEACTOR_H 
diff --git a/src/OBJECT/GEOM_EdgeSource.cxx b/src/OBJECT/GEOM_EdgeSource.cxx
new file mode 100755 (executable)
index 0000000..23cb30d
--- /dev/null
@@ -0,0 +1,221 @@
+#include "GEOM_EdgeSource.h" 
+#include <vtkObjectFactory.h> 
+
+#include <vtkPoints.h> 
+#include <vtkCellArray.h> 
+
+#include <BRep_Tool.hxx>
+#include <Poly_Polygon3D.hxx>
+#include <Poly_Triangulation.hxx>
+#include <TColStd_Array1OfInteger.hxx>
+#include <Poly_PolygonOnTriangulation.hxx>
+#include <vtkStripper.h>  
+#include <vtkPolyData.h>  
+vtkStandardNewMacro(GEOM_EdgeSource);
+GEOM_EdgeSource::GEOM_EdgeSource() 
+{ 
+} 
+GEOM_EdgeSource::~GEOM_EdgeSource() 
+{ 
+} 
+
+void GEOM_EdgeSource::AddEdge (const TopoDS_Edge& theEdge,
+                               bool theIsVector)
+{
+  myEdgeSet.Add(theEdge);
+  myIsVector = theIsVector;
+}
+
+void
+GEOM_EdgeSource:: 
+Execute()
+{
+  vtkPolyData* aPolyData = GetOutput();
+  aPolyData->Allocate();
+  vtkPoints* aPts = vtkPoints::New();
+  aPolyData->SetPoints(aPts);
+  aPts->Delete();
+
+  TEdgeSet::Iterator anIter (myEdgeSet);
+  for (; anIter.More(); anIter.Next()) {
+    const TopoDS_Edge& anEdge = anIter.Value();
+    OCC2VTK(anEdge,aPolyData,aPts,myIsVector);
+  }
+}
+
+void GEOM_EdgeSource::OCC2VTK (const TopoDS_Edge& theEdge,  
+                               vtkPolyData* thePolyData, 
+                               vtkPoints* thePts,
+                               bool theIsVector) 
+{
+  Handle(Poly_PolygonOnTriangulation) aEdgePoly;
+  Standard_Integer i = 1;
+  Handle(Poly_Triangulation) T;
+  TopLoc_Location aEdgeLoc;
+  BRep_Tool::PolygonOnTriangulation(theEdge, aEdgePoly, T, aEdgeLoc, i);
+
+  Handle(Poly_Polygon3D) P;
+  if(aEdgePoly.IsNull())
+    P = BRep_Tool::Polygon3D(theEdge, aEdgeLoc);
+
+  if(P.IsNull() && aEdgePoly.IsNull())
+    return;
+  
+  // Location edges
+  //---------------
+  gp_Trsf edgeTransf;
+  Standard_Boolean isidtrsf = true;
+  if(!aEdgeLoc.IsIdentity())  {
+    isidtrsf = false;
+    edgeTransf = aEdgeLoc.Transformation();
+  }
+
+  gp_Pnt aP1, aP2;
+
+  if (aEdgePoly.IsNull()) {
+    Standard_Integer aNbNodes = P->NbNodes();
+    const TColgp_Array1OfPnt& aNodesP = P->Nodes();
+
+    aP1 = aNodesP(1);
+    aP2 = aNodesP(aNbNodes);
+
+    for (int j = 1; j < aNbNodes; j++) {
+      gp_Pnt pt1 = aNodesP(j);
+      gp_Pnt pt2 = aNodesP(j+1);
+
+      if (!isidtrsf) {
+        // apply edge transformation
+        pt1.Transform(edgeTransf);
+        pt2.Transform(edgeTransf);
+      }
+
+      float aCoord1[3] = {pt1.X(), pt1.Y(), pt1.Z()};
+      vtkIdType anIds[2];
+      anIds[0] = thePts->InsertNextPoint(aCoord1);
+
+      float aCoord2[3] = {pt2.X(), pt2.Y(), pt2.Z()};
+      anIds[1] = thePts->InsertNextPoint(aCoord2);
+
+      thePolyData->InsertNextCell(VTK_LINE,2,anIds);
+    }
+  } else {
+    Standard_Integer aNbNodes = aEdgePoly->NbNodes();
+    const TColStd_Array1OfInteger& aNodeIds = aEdgePoly->Nodes();
+    const TColgp_Array1OfPnt& anId2Pnts = T->Nodes();
+
+    aP1 = anId2Pnts(1);
+    aP2 = anId2Pnts(aNbNodes);
+
+    for(int j = 1; j < aNbNodes; j++) {
+      Standard_Integer id1 = aNodeIds(j);
+      Standard_Integer id2 = aNodeIds(j+1);
+      
+      gp_Pnt pt1 = anId2Pnts(id1);
+      gp_Pnt pt2 = anId2Pnts(id2);
+          
+      if(!isidtrsf) {
+       // apply edge transformation
+        pt1.Transform(edgeTransf);
+        pt2.Transform(edgeTransf);
+      }
+      
+      float aCoord1[3] = {pt1.X(), pt1.Y(), pt1.Z()};
+      vtkIdType anIds[2];
+      anIds[0] = thePts->InsertNextPoint(aCoord1);
+
+      float aCoord2[3] = {pt2.X(), pt2.Y(), pt2.Z()};
+      anIds[1] = thePts->InsertNextPoint(aCoord2);
+
+      thePolyData->InsertNextCell(VTK_LINE,2,anIds);
+    }
+  }
+
+  // vector representation has an arrow on its end
+  if (theIsVector)
+  {
+    if (!isidtrsf) {
+      // apply edge transformation
+      aP1.Transform(edgeTransf);
+      aP2.Transform(edgeTransf);
+    }
+
+    // draw an arrow
+    gp_Vec aDirVec (aP1, aP2);
+    Standard_Real aDist = aDirVec.Magnitude();
+    if (aDist < gp::Resolution()) return;
+    gp_Dir aDirection (aDirVec);
+
+    Standard_Real anAngle = PI/180.*5.;
+    Standard_Real aLength = aDist/10.;
+
+    Standard_Real dx,dy,dz;
+    aDirection.Coord(dx,dy,dz);
+
+    // Pointe de la fleche
+    Standard_Real xo,yo,zo;
+    aP2.Coord(xo,yo,zo);
+
+    // Centre du cercle base de la fleche
+    gp_XYZ aPc = aP2.XYZ() - aDirection.XYZ() * aLength;
+
+    // Construction d'un repere i,j pour le cercle
+    gp_Dir aDirN;
+    if      (Abs(dx) <= Abs(dy) && Abs(dx) <= Abs(dz)) aDirN = gp::DX();
+    else if (Abs(dy) <= Abs(dz) && Abs(dy) <= Abs(dx)) aDirN = gp::DY();
+    else aDirN = gp::DZ();
+
+    gp_Dir aDirI = aDirection ^ aDirN;
+    gp_Dir aDirJ = aDirection ^ aDirI;
+
+    // Add points and segments, composing the arrow
+    Standard_Real cosinus, sinus, Tg = tan(anAngle);
+
+    float coord[3] = {xo, yo, zo};
+
+    vtkIdType ptLoc = thePts->InsertNextPoint(coord);
+    vtkIdType ptFirst = 0;
+    vtkIdType ptPrev = 0;
+    vtkIdType ptCur = 0;
+
+    vtkIdType pts[2];
+
+    int NbPoints = 15;
+    for (int i = 1; i <= NbPoints; i++, ptPrev = ptCur)
+    {
+      cosinus = cos(2. * PI / NbPoints * (i-1));   
+      sinus   = sin(2. * PI / NbPoints * (i-1));
+
+      gp_XYZ aP = aPc + (aDirI.XYZ() * cosinus + aDirJ.XYZ() * sinus) * aLength * Tg;
+      coord[0] = aP.X();
+      coord[1] = aP.Y();
+      coord[2] = aP.Z();
+
+      // insert pts
+      ptCur = thePts->InsertNextPoint(coord);
+      pts[0] = ptCur;
+
+      if (i == 1) {
+        ptFirst = ptCur;
+      }
+      else {
+        // insert line (ptCur,ptPrev)
+        pts[1] = ptPrev;
+        thePolyData->InsertNextCell(VTK_LINE,2,pts);
+      }
+
+      // insert line (ptCur,ptLoc)
+      pts[1] = ptLoc;
+      thePolyData->InsertNextCell(VTK_LINE,2,pts);
+    }
+
+    // insert line (ptCur,ptFirst)
+    pts[0] = ptCur;
+    pts[1] = ptFirst;
+    thePolyData->InsertNextCell(VTK_LINE,2,pts);
+  }
+}
diff --git a/src/OBJECT/GEOM_EdgeSource.h b/src/OBJECT/GEOM_EdgeSource.h
new file mode 100755 (executable)
index 0000000..56813e0
--- /dev/null
@@ -0,0 +1,48 @@
+#ifndef GEOM_EDGESOURCE_H 
+#define GEOM_EDGESOURCE_H 
+#include "GEOM_DeviceActor.h" 
+#include <TopoDS_Edge.hxx> 
+#include <NCollection_Set.hxx> 
+typedef NCollection_Set<TopoDS_Edge> TEdgeSet; 
+#include <vtkPolyDataSource.h> 
+class VTK_EXPORT GEOM_EdgeSource: public vtkPolyDataSource 
+{ 
+public: 
+  vtkTypeMacro(GEOM_EdgeSource,vtkPolyDataSource); 
+  static GEOM_EdgeSource* New(); 
+  void AddEdge (const TopoDS_Edge& theEdge,
+                bool theIsVector = false);
+  void Clear(){ myEdgeSet.Clear();} 
+  static  
+  void OCC2VTK(const TopoDS_Edge& theEdge,  
+               vtkPolyData* thePolyData, 
+               vtkPoints* thePts,
+               bool theIsVector = false); 
+protected: 
+  TEdgeSet myEdgeSet;
+  // The <myIsVector> flag is common for all edges, because the shape,
+  // representing a vector, can have only one edge.
+  bool myIsVector;
+  void Execute(); 
+  GEOM_EdgeSource(); 
+  ~GEOM_EdgeSource(); 
+private: 
+  // Not implememnted 
+  GEOM_EdgeSource(const GEOM_EdgeSource&); 
+  void operator=(const GEOM_EdgeSource&); 
+}; 
+#endif //GEOM_EDGESOURCE_H 
diff --git a/src/OBJECT/GEOM_FaceSource.cxx b/src/OBJECT/GEOM_FaceSource.cxx
new file mode 100755 (executable)
index 0000000..4f0d914
--- /dev/null
@@ -0,0 +1,44 @@
+#include "GEOM_FaceSource.h" 
+#include <vtkObjectFactory.h> 
+
+#include <vtkPoints.h>
+#include <vtkCellArray.h>
+#include <vtkPolyDataMapper.h>  
+#include <vtkPolyData.h>  
+GEOM_FaceSource::GEOM_FaceSource() 
+{ 
+} 
+GEOM_FaceSource::~GEOM_FaceSource() 
+{ 
+} 
+void  
+GEOM_FaceSource:: 
+AddFace(const TopoDS_Face& theFace) 
+{ 
+  myFaceSet.Add(theFace); 
+} 
+void 
+GEOM_FaceSource::
+MoveTo(gp_Pnt thePnt, 
+       vtkPoints* thePts)
+{    
+  thePts->InsertNextPoint(thePnt.X(), thePnt.Y(), thePnt.Z());
+} 
+
+void 
+GEOM_FaceSource::
+DrawTo(gp_Pnt thePnt,
+       vtkPolyData* thePolyData,
+       vtkPoints* thePts)
+{
+  vtkIdType anId = 
+    thePts->InsertNextPoint(thePnt.X(), thePnt.Y(), thePnt.Z());
+  vtkIdType anIds[2] = {anId-1, anId};
+  thePolyData->InsertNextCell(VTK_LINE,2,anIds);
+}
diff --git a/src/OBJECT/GEOM_FaceSource.h b/src/OBJECT/GEOM_FaceSource.h
new file mode 100755 (executable)
index 0000000..8c03167
--- /dev/null
@@ -0,0 +1,47 @@
+#ifndef GEOM_FACESOURCE_H 
+#define GEOM_FACESOURCE_H 
+#include "GEOM_DeviceActor.h" 
+#include <gp_Pnt.hxx>
+#include <TopoDS_Face.hxx> 
+#include <NCollection_Set.hxx> 
+typedef NCollection_Set<TopoDS_Face> TFaceSet; 
+#include <vtkPolyDataSource.h> 
+class GEOM_FaceSource; 
+typedef GEOM_SmartPtr<GEOM_FaceSource> PFaceSource; 
+class VTK_EXPORT GEOM_FaceSource: public vtkPolyDataSource 
+{ 
+public: 
+  vtkTypeMacro(GEOM_FaceSource,vtkPolyDataSource); 
+  void AddFace(const TopoDS_Face& theFace); 
+  void Clear(){ myFaceSet.Clear();} 
+protected: 
+  TFaceSet myFaceSet; 
+  static 
+  void MoveTo(gp_Pnt thePnt, 
+              vtkPoints* thePts);
+  static 
+  void DrawTo(gp_Pnt thePnt,
+              vtkPolyData* thePolyData,
+              vtkPoints* thePts); 
+  GEOM_FaceSource(); 
+  ~GEOM_FaceSource(); 
+private: 
+  // Not implememnted 
+  GEOM_FaceSource(const GEOM_FaceSource&); 
+  void operator=(const GEOM_FaceSource&); 
+}; 
+#endif //GEOM_FACESOURCE_H 
diff --git a/src/OBJECT/GEOM_ShadingFace.cxx b/src/OBJECT/GEOM_ShadingFace.cxx
new file mode 100755 (executable)
index 0000000..9009081
--- /dev/null
@@ -0,0 +1,84 @@
+#include "GEOM_ShadingFace.h" 
+#include <vtkObjectFactory.h> 
+#include <vtkPoints.h> 
+#include <vtkCellArray.h> 
+
+#include <vtkPolyDataMapper.h>  
+#include <vtkPolyData.h>  
+
+#include <BRep_Tool.hxx>
+#include <Poly_Triangulation.hxx>
+
+vtkStandardNewMacro(GEOM_ShadingFace);
+GEOM_ShadingFace::GEOM_ShadingFace() 
+{ 
+} 
+GEOM_ShadingFace::~GEOM_ShadingFace() 
+{ 
+} 
+void
+GEOM_ShadingFace:: 
+Execute()
+{
+  vtkPolyData* aPolyData = GetOutput();
+  aPolyData->Allocate();
+  vtkPoints* aPts = vtkPoints::New();
+  aPolyData->SetPoints(aPts);
+  aPts->Delete();
+
+  TFaceSet::Iterator anIter(myFaceSet);
+  for(; anIter.More(); anIter.Next()){
+    const TopoDS_Face& aFace = anIter.Value();
+    OCC2VTK(aFace,aPolyData,aPts);
+  }
+}
+
+void  
+GEOM_ShadingFace:: 
+OCC2VTK(const TopoDS_Face& theFace,  
+        vtkPolyData* thePolyData, 
+        vtkPoints* thePts) 
+{
+  TopLoc_Location aLoc;
+  Handle(Poly_Triangulation) aPoly = BRep_Tool::Triangulation(theFace,aLoc);
+  if(aPoly.IsNull()) 
+    return;
+  else{
+    gp_Trsf myTransf;
+    Standard_Boolean identity = true;
+    if(!aLoc.IsIdentity()){
+      identity = false;
+      myTransf = aLoc.Transformation();
+    }          
+      
+    Standard_Integer i; 
+    int aNbOfNodes = thePts->GetNumberOfPoints();
+    const TColgp_Array1OfPnt& Nodes = aPoly->Nodes();
+    Standard_Integer nbNodesInFace = aPoly->NbNodes(); 
+    for(i = 1; i <= nbNodesInFace; i++) {
+      gp_Pnt P = Nodes(i);
+      if(!identity) 
+        P.Transform(myTransf);
+      thePts->InsertNextPoint(P.X(),P.Y(),P.Z());
+    }
+
+    const Poly_Array1OfTriangle& Triangles = aPoly->Triangles();
+    Standard_Integer nbTriInFace = aPoly->NbTriangles();
+    for(i = 1; i <= nbTriInFace; i++){
+      // Get the triangle
+      Standard_Integer N1,N2,N3;
+      Triangles(i).Get(N1,N2,N3);
+      N1 += aNbOfNodes - 1;
+      N2 += aNbOfNodes - 1;
+      N3 += aNbOfNodes - 1;
+      vtkIdType anIds[3] = {N1, N2, N3};
+      thePolyData->InsertNextCell(VTK_TRIANGLE,3,anIds);
+    }
+  } 
+}
diff --git a/src/OBJECT/GEOM_ShadingFace.h b/src/OBJECT/GEOM_ShadingFace.h
new file mode 100755 (executable)
index 0000000..4414f9f
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef GEOM_SHADINGFACE_H 
+#define GEOM_SHADINGFACE_H 
+#include "GEOM_FaceSource.h" 
+class VTK_EXPORT GEOM_ShadingFace: public GEOM_FaceSource 
+{ 
+public: 
+  vtkTypeMacro(GEOM_ShadingFace,GEOM_FaceSource); 
+  static GEOM_ShadingFace* New(); 
+  static  
+  void OCC2VTK(const TopoDS_Face& theFace,  
+               vtkPolyData* theCells, 
+               vtkPoints* thePts); 
+protected: 
+  void Execute(); 
+  GEOM_ShadingFace(); 
+  ~GEOM_ShadingFace(); 
+private: 
+  // Not implememnted 
+  GEOM_ShadingFace(const GEOM_ShadingFace&); 
+  void operator=(const GEOM_ShadingFace&); 
+}; 
+#endif //GEOM_SHADINGFACE_H 
diff --git a/src/OBJECT/GEOM_SmartPtr.h b/src/OBJECT/GEOM_SmartPtr.h
new file mode 100755 (executable)
index 0000000..886a085
--- /dev/null
@@ -0,0 +1,33 @@
+#ifndef GEOM_SMARTPTR_H 
+#define GEOM_SMARTPTR_H 
+#include <vtkSmartPointer.h> 
+template <class T>
+class GEOM_SmartPtr: public vtkSmartPointer<T>
+{
+public:
+  GEOM_SmartPtr() {}
+  GEOM_SmartPtr(T* r, bool theIsOwner = false): vtkSmartPointer<T>(r) { 
+    if(r && theIsOwner) 
+      r->Delete();
+  }
+  GEOM_SmartPtr& operator()(T* r, bool theIsOwner = false){ 
+    vtkSmartPointer<T>::operator=(r); 
+    if(r && theIsOwner) 
+      r->Delete();
+    return *this;
+  }
+  GEOM_SmartPtr& operator=(T* r){ vtkSmartPointer<T>::operator=(r); return *this;}
+  T* Get() const { return this->GetPointer();} 
+}; 
+class GEOM_DeviceActor; 
+typedef GEOM_SmartPtr<GEOM_DeviceActor> PDeviceActor; 
+class vtkPolyDataMapper; 
+typedef GEOM_SmartPtr<vtkPolyDataMapper> PPolyDataMapper; 
+#endif //GEOM_SMARTPTR_H 
diff --git a/src/OBJECT/GEOM_VertexSource.cxx b/src/OBJECT/GEOM_VertexSource.cxx
new file mode 100755 (executable)
index 0000000..5027762
--- /dev/null
@@ -0,0 +1,56 @@
+#include "GEOM_VertexSource.h" 
+#include <vtkObjectFactory.h> 
+
+#include <vtkPoints.h> 
+#include <vtkCellArray.h> 
+#include <vtkPolyData.h> 
+#include <vtkPolyDataMapper.h> 
+#include <gp_Pnt.hxx>
+#include <BRep_Tool.hxx>
+vtkStandardNewMacro(GEOM_VertexSource);
+GEOM_VertexSource::GEOM_VertexSource() 
+{ 
+} 
+GEOM_VertexSource::~GEOM_VertexSource() 
+{ 
+} 
+void  
+GEOM_VertexSource:: 
+AddVertex(const TopoDS_Vertex& theVertex) 
+{ 
+  myVertexSet.Add(theVertex); 
+} 
+void
+GEOM_VertexSource:: 
+Execute()
+{
+  vtkPolyData* aPolyData = GetOutput();
+  aPolyData->Allocate();
+  vtkPoints* aPts = vtkPoints::New();
+  aPolyData->SetPoints(aPts);
+  aPts->Delete();
+
+  TVertexSet::Iterator anIter(myVertexSet);
+  for(; anIter.More(); anIter.Next()){
+    const TopoDS_Vertex& aVertex = anIter.Value();
+    OCC2VTK(aVertex,aPolyData,aPts);
+  }
+}
+
+void  
+GEOM_VertexSource:: 
+OCC2VTK(const TopoDS_Vertex& theVertex,  
+        vtkPolyData* thePolyData, 
+        vtkPoints* thePts) 
+{ 
+  gp_Pnt aPnt = BRep_Tool::Pnt(theVertex);
+  vtkIdType anId = thePts->InsertNextPoint(aPnt.X(),aPnt.Y(),aPnt.Z());
+  thePolyData->InsertNextCell(VTK_VERTEX,1,&anId);
+}
diff --git a/src/OBJECT/GEOM_VertexSource.h b/src/OBJECT/GEOM_VertexSource.h
new file mode 100755 (executable)
index 0000000..46a64f0
--- /dev/null
@@ -0,0 +1,43 @@
+#ifndef GEOM_VERTEXSOURCE_H 
+#define GEOM_VERTEXSOURCE_H 
+#include "GEOM_DeviceActor.h" 
+#include <TopoDS_Vertex.hxx> 
+#include <NCollection_Set.hxx> 
+typedef NCollection_Set<TopoDS_Vertex> TVertexSet; 
+#include <vtkPolyDataSource.h> 
+class VTK_EXPORT GEOM_VertexSource: public vtkPolyDataSource 
+{ 
+public: 
+  vtkTypeMacro(GEOM_VertexSource,vtkPolyDataSource); 
+  static GEOM_VertexSource* New(); 
+  void AddVertex(const TopoDS_Vertex& theVertex); 
+  void Clear(){ myVertexSet.Clear();} 
+  static  
+  void OCC2VTK(const TopoDS_Vertex& theVertex,  
+               vtkPolyData* thePolyData, 
+               vtkPoints* thePts); 
+protected: 
+  TVertexSet myVertexSet; 
+  void Execute(); 
+  GEOM_VertexSource(); 
+  ~GEOM_VertexSource(); 
+private: 
+  // Not implememnted 
+  GEOM_VertexSource(const GEOM_VertexSource&); 
+  void operator=(const GEOM_VertexSource&); 
+}; 
+#endif //GEOM_VERTEXSOURCE_H 
diff --git a/src/OBJECT/GEOM_WireframeFace.cxx b/src/OBJECT/GEOM_WireframeFace.cxx
new file mode 100755 (executable)
index 0000000..dc1aba5
--- /dev/null
@@ -0,0 +1,466 @@
+#include "GEOM_WireframeFace.h" 
+#include <vtkObjectFactory.h> 
+#include <vtkPoints.h> 
+#include <vtkCellArray.h> 
+
+#include <vtkPolyDataMapper.h>  
+#include <vtkPolyData.h>  
+#include <Precision.hxx>
+#include <BRepTools.hxx>
+#include <TopExp_Explorer.hxx>
+#include <Geom2dHatch_Hatcher.hxx>
+#include <Geom2dHatch_Intersector.hxx>
+#include <TColStd_Array1OfReal.hxx>
+#include <TColStd_Array1OfInteger.hxx>
+#include <TopoDS.hxx> 
+#include <TopoDS_Edge.hxx> 
+#include <BRep_Tool.hxx>
+#include <Geom2d_TrimmedCurve.hxx>
+#include <Geom2d_Line.hxx>
+#include <gp_Dir2d.hxx>
+#include <gp_Pnt2d.hxx>
+#include <Geom2dHatch_Hatcher.hxx>
+#include <HatchGen_Domain.hxx>
+
+#include <Adaptor3d_HCurve.hxx>
+
+vtkStandardNewMacro(GEOM_WireframeFace);
+GEOM_WireframeFace::GEOM_WireframeFace(): 
+  NbIso(1), 
+  Discret(15) 
+{ 
+} 
+GEOM_WireframeFace::~GEOM_WireframeFace() 
+{ 
+} 
+void
+GEOM_WireframeFace:: 
+Execute()
+{
+  vtkPolyData* aPolyData = GetOutput();
+  aPolyData->Allocate();
+  vtkPoints* aPts = vtkPoints::New();
+  aPolyData->SetPoints(aPts);
+  aPts->Delete();
+
+  TFaceSet::Iterator anIter(myFaceSet);
+  for(; anIter.More(); anIter.Next()){
+    const TopoDS_Face& aFace = anIter.Value();
+    OCC2VTK(aFace,aPolyData,aPts,NbIso,Discret);
+  }
+}
+
+void  
+GEOM_WireframeFace:: 
+OCC2VTK(const TopoDS_Face& theFace,
+        vtkPolyData* thePolyData,
+                   vtkPoints* thePts,  
+        const int theNbIso, 
+        const int theDiscret) 
+{ 
+  TopoDS_Face aFace = theFace; 
+  aFace.Orientation(TopAbs_FORWARD);
+  CreateIso(aFace,theNbIso,theDiscret,thePolyData,thePts);
+}
+
+void 
+GEOM_WireframeFace:: 
+CreateIso(const TopoDS_Face& theFace,
+               const int theNbIso, 
+          const int theDiscret, 
+          vtkPolyData* thePolyData,
+          vtkPoints* thePts)
+{
+  // Constants for iso building
+  static Standard_Real INTERSECTOR_CONFUSION = 1.e-10 ; // -8 ;
+  static Standard_Real INTERSECTOR_TANGENCY  = 1.e-10 ; // -8 ;
+
+  static Standard_Real HATHCER_CONFUSION_2D = 1.e-8 ;
+  static Standard_Real HATHCER_CONFUSION_3D = 1.e-8 ;
+
+  Geom2dHatch_Hatcher 
+    aHatcher(Geom2dHatch_Intersector(INTERSECTOR_CONFUSION,
+                                     INTERSECTOR_TANGENCY),
+                        HATHCER_CONFUSION_2D,
+                        HATHCER_CONFUSION_3D,
+                                    Standard_True,
+                                    Standard_False);
+  
+  Standard_Real anUMin, anUMax, aVMin, aVMax;
+  TColStd_Array1OfReal anUPrm(1, theNbIso), aVPrm(1, theNbIso);
+  TColStd_Array1OfInteger anUInd(1, theNbIso), aVInd(1, theNbIso);
+
+  anUInd.Init(0);
+  aVInd.Init(0);
+
+  //-----------------------------------------------------------------------
+  // If the Min Max bounds are infinite, there are bounded to Infinite
+  // value.
+  //-----------------------------------------------------------------------
+  BRepTools::UVBounds(theFace, anUMin, anUMax, aVMin, aVMax) ;
+  Standard_Boolean InfiniteUMin = Precision::IsNegativeInfinite (anUMin) ;
+  Standard_Boolean InfiniteUMax = Precision::IsPositiveInfinite (anUMax) ;
+  Standard_Boolean InfiniteVMin = Precision::IsNegativeInfinite (aVMin) ;
+  Standard_Boolean InfiniteVMax = Precision::IsPositiveInfinite (aVMax) ;
+
+  static float VTKINFINITE = 1.0E38;
+  if(InfiniteUMin && InfiniteUMax){
+    anUMin = - VTKINFINITE ;
+    anUMax =   VTKINFINITE ;
+  }else if(InfiniteUMin){
+    anUMin = anUMax - VTKINFINITE ;
+  }else if(InfiniteUMax){
+    anUMax = anUMin + VTKINFINITE ;
+  }
+
+  if(InfiniteVMin && InfiniteVMax){
+    aVMin = - VTKINFINITE ;
+    aVMax =   VTKINFINITE ;
+  }else if(InfiniteVMin){
+    aVMin = aVMax - VTKINFINITE ;
+  }else if(InfiniteVMax){
+    aVMax = aVMin + VTKINFINITE ;
+  }
+
+  //-----------------------------------------------------------------------
+  // Retreiving the edges and loading them into the hatcher.
+  //-----------------------------------------------------------------------
+  TopExp_Explorer ExpEdges(theFace, TopAbs_EDGE);
+  for(; ExpEdges.More(); ExpEdges.Next()){
+    const TopoDS_Edge& anEdge = TopoDS::Edge(ExpEdges.Current());
+    Standard_Real U1, U2 ;
+    const Handle(Geom2d_Curve) PCurve = 
+      BRep_Tool::CurveOnSurface(anEdge, theFace, U1, U2) ;
+
+    if(PCurve.IsNull() || U1 == U2)
+      return;
+
+    //-- Test if a TrimmedCurve is necessary
+    if(Abs(PCurve->FirstParameter()-U1) <= Precision::PConfusion() &&
+            Abs(PCurve->LastParameter()-U2) <= Precision::PConfusion())
+    { 
+      aHatcher.AddElement(PCurve, anEdge.Orientation()) ;      
+    }else{ 
+      if(!PCurve->IsPeriodic()){
+             Handle(Geom2d_TrimmedCurve) TrimPCurve =
+          Handle(Geom2d_TrimmedCurve)::DownCast(PCurve);
+             if(!TrimPCurve.IsNull()){
+          Handle_Geom2d_Curve aBasisCurve = TrimPCurve->BasisCurve();
+               if(aBasisCurve->FirstParameter()-U1 > Precision::PConfusion() ||
+                  U2-aBasisCurve->LastParameter() > Precision::PConfusion()) 
+          {
+                 aHatcher.AddElement(PCurve, anEdge.Orientation()) ;      
+                 return;
+               }
+             }else{
+               if(PCurve->FirstParameter()-U1 > Precision::PConfusion()){
+                 U1=PCurve->FirstParameter();
+               }
+               if(U2-PCurve->LastParameter()  > Precision::PConfusion()){
+                 U2=PCurve->LastParameter();
+               }
+             }
+      }
+      Handle(Geom2d_TrimmedCurve) TrimPCurve = 
+        new Geom2d_TrimmedCurve(PCurve, U1, U2);
+      aHatcher.AddElement(TrimPCurve, anEdge.Orientation());
+    }
+  }
+
+
+  //-----------------------------------------------------------------------
+  // Loading and trimming the hatchings.
+  //-----------------------------------------------------------------------
+  Standard_Integer IIso;
+  Standard_Real DeltaU = Abs(anUMax - anUMin) ;
+  Standard_Real DeltaV = Abs(aVMax - aVMin) ;
+  Standard_Real confusion = Min(DeltaU, DeltaV) * HATHCER_CONFUSION_3D ;
+  aHatcher.Confusion3d (confusion) ;
+
+  Standard_Real StepU = DeltaU / (Standard_Real)theNbIso;
+  if(StepU > confusion){
+    Standard_Real UPrm = anUMin + StepU / 2.;
+    gp_Dir2d Dir(0., 1.) ;
+    for(IIso = 1 ; IIso <= theNbIso ; IIso++) {
+      anUPrm(IIso) = UPrm ;
+      gp_Pnt2d Ori (UPrm, 0.) ;
+      Geom2dAdaptor_Curve HCur (new Geom2d_Line (Ori, Dir)) ;
+      anUInd(IIso) = aHatcher.AddHatching (HCur) ;
+      UPrm += StepU ;
+    }
+  }
+
+  Standard_Real StepV = DeltaV / (Standard_Real) theNbIso ;
+  if(StepV > confusion){
+    Standard_Real VPrm = aVMin + StepV / 2.;
+    gp_Dir2d Dir(1., 0.);
+    for(IIso = 1 ; IIso <= theNbIso ; IIso++){
+      aVPrm(IIso) = VPrm;
+      gp_Pnt2d Ori (0., VPrm);
+      Geom2dAdaptor_Curve HCur(new Geom2d_Line (Ori, Dir));
+      aVInd(IIso) = aHatcher.AddHatching (HCur) ;
+      VPrm += StepV ;
+    }
+  }
+
+  //-----------------------------------------------------------------------
+  // Computation.
+  //-----------------------------------------------------------------------
+  aHatcher.Trim() ;
+
+  Standard_Integer aNbDom = 0 ; // for debug purpose
+  for(IIso = 1 ; IIso <= theNbIso ; IIso++){
+    Standard_Integer Index ;
+
+    Index = anUInd(IIso) ;
+    if(Index != 0){
+      if(aHatcher.TrimDone(Index) && !aHatcher.TrimFailed(Index)){
+             aHatcher.ComputeDomains(Index);
+             if(aHatcher.IsDone (Index)) 
+          aNbDom = aHatcher.NbDomains (Index);
+      }
+    }
+
+    Index = aVInd(IIso);
+    if(Index != 0){
+      if(aHatcher.TrimDone (Index) && !aHatcher.TrimFailed(Index)){
+             aHatcher.ComputeDomains (Index);
+             if(aHatcher.IsDone (Index)) 
+          aNbDom = aHatcher.NbDomains (Index);
+      }
+    }
+  }
+
+  //-----------------------------------------------------------------------
+  // Push iso lines in vtk kernel
+  //-----------------------------------------------------------------------
+  for(Standard_Integer UIso = anUPrm.Lower() ; UIso <= anUPrm.Upper(); UIso++){
+    Standard_Integer UInd = anUInd.Value(UIso);
+    if(UInd != 0){
+      Standard_Real UPrm = anUPrm.Value(UIso);
+      if(aHatcher.IsDone(UInd)){
+             Standard_Integer NbDom = aHatcher.NbDomains(UInd);
+             for(Standard_Integer IDom = 1 ; IDom <= NbDom ; IDom++){
+               const HatchGen_Domain& Dom = aHatcher.Domain(UInd, IDom) ;
+               Standard_Real V1 = Dom.HasFirstPoint()? Dom.FirstPoint().Parameter(): aVMin - VTKINFINITE;
+               Standard_Real V2 = Dom.HasSecondPoint()? Dom.SecondPoint().Parameter(): aVMax + VTKINFINITE;
+               CreateIso_(theFace, GeomAbs_IsoU, UPrm, V1, V2, theDiscret, thePolyData, thePts);
+       }
+           }
+    }
+  }
+
+  for(Standard_Integer VIso = aVPrm.Lower() ; VIso <= aVPrm.Upper(); VIso++){
+    Standard_Integer VInd = aVInd.Value(VIso);
+    if(VInd != 0){
+      Standard_Real VPrm = aVPrm.Value(VIso);
+      if(aHatcher.IsDone (VInd)){
+             Standard_Integer NbDom = aHatcher.NbDomains(VInd);
+             for (Standard_Integer IDom = 1 ; IDom <= NbDom ; IDom++){
+               const HatchGen_Domain& Dom = aHatcher.Domain(VInd, IDom);
+               Standard_Real U1 = Dom.HasFirstPoint()? Dom.FirstPoint().Parameter(): aVMin - VTKINFINITE;
+               Standard_Real U2 = Dom.HasSecondPoint()? Dom.SecondPoint().Parameter(): aVMax + VTKINFINITE;
+           CreateIso_(theFace, GeomAbs_IsoV, VPrm, U1, U2, theDiscret, thePolyData, thePts);
+             }
+      }
+    }
+  }
+}
+
+
+void 
+GEOM_WireframeFace:: 
+CreateIso_(const TopoDS_Face& theFace,
+           GeomAbs_IsoType theIsoType, 
+           Standard_Real Par, 
+           Standard_Real T1,
+           Standard_Real T2,
+           const int theDiscret, 
+           vtkPolyData* thePolyData,
+           vtkPoints* thePts)
+{
+  Standard_Real U1, U2, V1, V2, stepU=0., stepV=0.;
+  Standard_Integer j;
+  gp_Pnt P;
+
+  TopLoc_Location aLoc;
+  const Handle(Geom_Surface)& S = BRep_Tool::Surface(theFace,aLoc);
+
+  if(!S.IsNull()){
+    BRepAdaptor_Surface S(theFace,Standard_False);
+      
+    GeomAbs_SurfaceType SurfType = S.GetType();
+
+    GeomAbs_CurveType CurvType = GeomAbs_OtherCurve;
+
+    Standard_Integer Intrv, nbIntv;
+    Standard_Integer nbUIntv = S.NbUIntervals(GeomAbs_CN);
+    Standard_Integer nbVIntv = S.NbVIntervals(GeomAbs_CN);
+    TColStd_Array1OfReal TI(1,Max(nbUIntv, nbVIntv)+1);
+
+    if(theIsoType == GeomAbs_IsoU){
+      S.VIntervals(TI, GeomAbs_CN);
+      V1 = Max(T1, TI(1));
+      V2 = Min(T2, TI(2));
+      U1 = Par;
+      U2 = Par;
+      stepU = 0;
+      nbIntv = nbVIntv;
+    }else{
+      S.UIntervals(TI, GeomAbs_CN);
+      U1 = Max(T1, TI(1));
+      U2 = Min(T2, TI(2));
+      V1 = Par;
+      V2 = Par;
+      stepV = 0;
+      nbIntv = nbUIntv;
+    }  
+       
+    S.D0(U1,V1,P);
+    MoveTo(P,thePts);
+
+    for(Intrv = 1; Intrv <= nbIntv; Intrv++){
+      if(TI(Intrv) <= T1 && TI(Intrv + 1) <= T1)
+       continue;
+      if(TI(Intrv) >= T2 && TI(Intrv + 1) >= T2)
+             continue;
+      if(theIsoType == GeomAbs_IsoU){
+             V1 = Max(T1, TI(Intrv));
+             V2 = Min(T2, TI(Intrv + 1));
+             stepV = (V2 - V1) / theDiscret;
+      }else{
+             U1 = Max(T1, TI(Intrv));
+             U2 = Min(T2, TI(Intrv + 1));
+             stepU = (U2 - U1) / theDiscret;
+      }
+
+      switch (SurfType) {
+      case GeomAbs_Plane :
+             break;
+      case GeomAbs_Cylinder :
+      case GeomAbs_Cone :
+       if(theIsoType == GeomAbs_IsoV){
+               for(j = 1; j < theDiscret; j++){
+                 U1 += stepU;
+                 V1 += stepV;
+                 S.D0(U1,V1,P);
+                 DrawTo(P,thePolyData,thePts);
+               }
+             }
+             break;
+      case GeomAbs_Sphere :
+      case GeomAbs_Torus :
+      case GeomAbs_OffsetSurface :
+      case GeomAbs_OtherSurface :
+       for(j = 1; j < theDiscret; j++){
+               U1 += stepU;
+               V1 += stepV;
+               S.D0(U1,V1,P);
+               DrawTo(P,thePolyData,thePts);
+             }
+             break;
+      case GeomAbs_BezierSurface :
+      case GeomAbs_BSplineSurface :
+       for(j = 1; j <= theDiscret/2; j++){
+          Standard_Real aStep = (theIsoType == GeomAbs_IsoV) ? stepU*2. : stepV*2.;
+               CreateIso__(S, theIsoType, U1, V1, aStep, thePolyData, thePts);
+               U1 += stepU*2.;
+               V1 += stepV*2.;
+             }
+             break;
+      case GeomAbs_SurfaceOfExtrusion :
+      case GeomAbs_SurfaceOfRevolution :
+       if((theIsoType == GeomAbs_IsoV && SurfType == GeomAbs_SurfaceOfRevolution) ||
+                (theIsoType == GeomAbs_IsoU && SurfType == GeomAbs_SurfaceOfExtrusion)) 
+        {
+               if(SurfType == GeomAbs_SurfaceOfExtrusion) 
+            break;
+               for(j = 1; j < theDiscret; j++){
+                 U1 += stepU;
+                 V1 += stepV;
+                 S.D0(U1,V1,P);
+                 DrawTo(P,thePolyData,thePts);
+               }
+             }else{
+               CurvType = (S.BasisCurve())->GetType();
+               switch(CurvType){
+               case GeomAbs_Line :
+                 break;
+               case GeomAbs_Circle :
+               case GeomAbs_Ellipse :
+                 for (j = 1; j < theDiscret; j++) {
+                   U1 += stepU;
+                   V1 += stepV;
+                   S.D0(U1,V1,P);
+                   DrawTo(P,thePolyData,thePts);
+                 }
+                 break;
+               case GeomAbs_Parabola :
+               case GeomAbs_Hyperbola :
+               case GeomAbs_BezierCurve :
+               case GeomAbs_BSplineCurve :
+               case GeomAbs_OtherCurve :
+                 for(j = 1; j <= theDiscret/2; j++){
+              Standard_Real aStep = (theIsoType == GeomAbs_IsoV) ? stepU*2. : stepV*2.;
+                 CreateIso__(S, theIsoType, U1, V1, aStep, thePolyData, thePts);
+                   U1 += stepU*2.;
+                   V1 += stepV*2.;
+                 }
+                 break;
+               }
+             }
+      }
+    }
+    S.D0(U2,V2,P);
+    DrawTo(P,thePolyData,thePts);
+  }  
+}
+void 
+GEOM_WireframeFace:: 
+CreateIso__(const BRepAdaptor_Surface& theSurface, 
+            GeomAbs_IsoType theIsoType,
+                                   Standard_Real& theU, 
+                                   Standard_Real& theV, 
+                                   Standard_Real theStep, 
+            vtkPolyData* thePolyData,
+            vtkPoints* thePts)
+{
+  gp_Pnt Pl, Pr, Pm;
+  if (theIsoType == GeomAbs_IsoU) {
+    theSurface.D0(theU, theV, Pl);
+    theSurface.D0(theU, theV + theStep/2., Pm);
+    theSurface.D0(theU, theV + theStep, Pr);
+  } else {
+    theSurface.D0(theU, theV, Pl);
+    theSurface.D0(theU + theStep/2., theV, Pm);
+    theSurface.D0(theU + theStep, theV, Pr);
+  }
+
+  static Standard_Real ISO_RATIO = 1.001;
+  if (Pm.Distance(Pl) + Pm.Distance(Pr) <= ISO_RATIO*Pl.Distance(Pr)) {
+    DrawTo(Pr,thePolyData,thePts);
+  } else {
+    if (theIsoType == GeomAbs_IsoU) {
+      CreateIso__(theSurface, theIsoType, theU, theV, theStep/2, thePolyData, thePts);
+      Standard_Real aLocalV = theV + theStep/2 ;
+      CreateIso__(theSurface, theIsoType, theU, aLocalV , theStep/2, thePolyData, thePts);
+    } else {
+      CreateIso__(theSurface, theIsoType, theU, theV, theStep/2, thePolyData, thePts);
+      Standard_Real aLocalU = theU + theStep/2 ;
+      CreateIso__(theSurface, theIsoType, aLocalU , theV, theStep/2, thePolyData, thePts);
+    }
+  }
+}
diff --git a/src/OBJECT/GEOM_WireframeFace.h b/src/OBJECT/GEOM_WireframeFace.h
new file mode 100755 (executable)
index 0000000..cdbe122
--- /dev/null
@@ -0,0 +1,75 @@
+#ifndef GEOM_WIREFRAME_FACE_H 
+#define GEOM_WIREFRAME_FACE_H 
+#include "GEOM_FaceSource.h" 
+
+#include <GeomAbs_IsoType.hxx>
+#include <BRepAdaptor_Surface.hxx>
+#include <vtkPolyDataSource.h> 
+class VTK_EXPORT GEOM_WireframeFace: public GEOM_FaceSource 
+{ 
+public: 
+  vtkTypeMacro(GEOM_WireframeFace,GEOM_FaceSource); 
+  static GEOM_WireframeFace* New(); 
+  vtkSetMacro(NbIso,int); 
+  vtkGetMacro(NbIso,int); 
+  vtkSetMacro(Discret,int); 
+  vtkGetMacro(Discret,int); 
+  static  
+  void OCC2VTK(const TopoDS_Face& theFace,  
+               vtkPolyData* thePolyData, 
+               vtkPoints* thePts, 
+               int theNbIso = 1, 
+               int theDiscret = 15); 
+protected: 
+  int NbIso, Discret; 
+  static  
+  void 
+  CreateIso(const TopoDS_Face& theFace,
+                 const int theNbIso, 
+            const int theDiscret, 
+            vtkPolyData* thePolyData,
+            vtkPoints* thePts);
+  static  
+  void 
+  CreateIso_(const TopoDS_Face& theFace,
+             GeomAbs_IsoType theIsoType, 
+             Standard_Real Par, 
+             Standard_Real T1,
+             Standard_Real T2,
+             const int theDiscret, 
+             vtkPolyData* thePolyData,
+             vtkPoints* thePts);
+  static  
+  void 
+  CreateIso__(const BRepAdaptor_Surface& theSurface, 
+              GeomAbs_IsoType theIsoType,
+                                   Standard_Real& theU, 
+                                   Standard_Real& theV, 
+                                     Standard_Real theStep, 
+              vtkPolyData* thePolyData,
+              vtkPoints* thePts);
+
+  void Execute(); 
+  GEOM_WireframeFace(); 
+  ~GEOM_WireframeFace(); 
+private: 
+  // Not implememnted 
+  GEOM_WireframeFace(const GEOM_WireframeFace&); 
+  void operator=(const GEOM_WireframeFace&); 
+}; 
+#endif //GEOM_WFACEACTOR_H 
index 828e4e686198311a779a41ca7805324ec4d263e8..88f780ddaa84f31f9c945a90221c0d140b928164 100644 (file)
@@ -39,7 +39,14 @@ salomeinclude_HEADERS = \
        GEOM_AISTrihedron.hxx \
        GEOM_VTKTrihedron.hxx \
        GEOM_AISVector.hxx \
-       GEOM_OBJECT_defs.hxx
+       GEOM_OBJECT_defs.hxx \
+       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
@@ -52,7 +59,13 @@ dist_libGEOMObject_la_SOURCES = \
        GEOM_InteractiveObject.cxx \
        GEOM_AISTrihedron.cxx \
        GEOM_VTKTrihedron.cxx \
-       GEOM_AISVector.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 = \
index 8e28dcb1498539439b767a36114d3ba27849a650..f8de2e2da8553ad6d98618cfbc1ec5ea45c073a8 100644 (file)
@@ -36,7 +36,6 @@ dist_libOperationGUI_la_SOURCES =     \
        OperationGUI.h                  \
        OperationGUI_ArchimedeDlg.h     \
        OperationGUI_PartitionDlg.h     \
-       OperationGUI_MaterialDlg.h      \
        OperationGUI_FilletDlg.h        \
        OperationGUI_ChamferDlg.h       \
        OperationGUI_ClippingDlg.h      \
@@ -44,7 +43,6 @@ dist_libOperationGUI_la_SOURCES =     \
        OperationGUI.cxx                \
        OperationGUI_ArchimedeDlg.cxx   \
        OperationGUI_PartitionDlg.cxx   \
-       OperationGUI_MaterialDlg.cxx    \
        OperationGUI_FilletDlg.cxx      \
        OperationGUI_ChamferDlg.cxx     \
        OperationGUI_ClippingDlg.cxx
@@ -52,7 +50,6 @@ dist_libOperationGUI_la_SOURCES =     \
 MOC_FILES = \
        OperationGUI_ArchimedeDlg_moc.cxx       \
        OperationGUI_PartitionDlg_moc.cxx       \
-       OperationGUI_MaterialDlg_moc.cxx        \
        OperationGUI_FilletDlg_moc.cxx          \
        OperationGUI_ChamferDlg_moc.cxx         \
        OperationGUI_ClippingDlg_moc.cxx
index eee1cc71b94cc0f11a19320bcb10fc828cd33f40..ac0f0c5384a80badf5a0b1a518e035c2e630cad3 100644 (file)
@@ -73,7 +73,7 @@ OperationGUI_ArchimedeDlg::OperationGUI_ArchimedeDlg( GeometryGUI* theGeometryGU
 
   /***************************************************************/
 
-  setHelpFileName( "archimede.htm" );
+  setHelpFileName( "archimede_page.html" );
 
   /* Initialisations */
   Init();
@@ -106,9 +106,9 @@ void OperationGUI_ArchimedeDlg::Init()
   double SpecificStep1 = 0.1;
   double SpecificStep2 = 0.01;
   /* min, max, myStep and decimals for spin boxes & initial values */
-  initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, myStep, 3 );
-  initSpinBox( GroupPoints->SpinBox_DY, 0.001, COORD_MAX, SpecificStep1, 3 );
-  initSpinBox( GroupPoints->SpinBox_DZ, 0.001, COORD_MAX, SpecificStep2, 3 );
+  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 );
index a2d2f2341897d0bc800a2e985dd792dee2792594..002280d408d9997cc165a0e3ca6d5f26bfa538c2 100644 (file)
@@ -53,8 +53,9 @@ OperationGUI_ChamferDlg::OperationGUI_ChamferDlg( GeometryGUI* theGeometryGUI, Q
   : GEOMBase_Skeleton( theGeometryGUI, parent, false )
 {
   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" ) ) );
+  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" ) ) );
 
   setWindowTitle( tr( "GEOM_CHAMFER_TITLE" ) );
@@ -64,6 +65,8 @@ OperationGUI_ChamferDlg::OperationGUI_ChamferDlg( GeometryGUI* theGeometryGUI, Q
   mainFrame()->RadioButton1->setIcon( image1 );
   mainFrame()->RadioButton2->setIcon( image2 );
   mainFrame()->RadioButton3->setIcon( image3 );
+  mainFrame()->RadioButton4->show();
+  mainFrame()->RadioButton4->setIcon( image4 );
 
   // Create first group
 
@@ -90,13 +93,10 @@ OperationGUI_ChamferDlg::OperationGUI_ChamferDlg( GeometryGUI* theGeometryGUI, Q
   createSelWg( tr( "FACE_1" ),           iconSelect, myGrp2, aLayout, Face1 );
   createSelWg( tr( "FACE_2" ),           iconSelect, myGrp2, aLayout, Face2 );
 
-  row = aLayout->rowCount();
+  createRadioWg( tr( "GEOM_D1" ), tr( "GEOM_D2" ),    myGrp2, aLayout, RadioButton21, SpinBox21, SpinBox22 );
+  createRadioWg( tr( "GEOM_D" ),  tr( "GEOM_ANGLE" ), myGrp2, aLayout, RadioButton22, SpinBox23, SpinBox24 );
 
-  aLayout->addWidget( new QLabel( tr( "GEOM_D1" ), myGrp2 ), row, 0 );
-  aLayout->addWidget( ( mySpinBox[ SpinBox21 ] = new QDoubleSpinBox( myGrp2 ) ), row++, 2 );
-  aLayout->addWidget( new QLabel( tr( "GEOM_D2" ), myGrp2 ), row, 0 );
-  aLayout->addWidget( ( mySpinBox[ SpinBox22 ] = new QDoubleSpinBox( myGrp2 ) ), row++, 2 );
-  aLayout->setRowStretch( row, 10 );
+  aLayout->setRowStretch( aLayout->rowCount(), 10 );
 
   // Create third group
 
@@ -108,13 +108,25 @@ OperationGUI_ChamferDlg::OperationGUI_ChamferDlg( GeometryGUI* theGeometryGUI, Q
   createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, myGrp3, aLayout, MainObj3 );
   createSelWg( tr( "SELECTED_FACES" ),   iconSelect, myGrp3, aLayout, Faces );
 
-  row = aLayout->rowCount();
+  createRadioWg( tr( "GEOM_D1" ), tr( "GEOM_D2" ),    myGrp3, aLayout, RadioButton31, SpinBox31, SpinBox32 );
+  createRadioWg( tr( "GEOM_D" ),  tr( "GEOM_ANGLE" ), myGrp3, aLayout, RadioButton32, SpinBox33, SpinBox34 );
 
-  aLayout->addWidget( new QLabel( tr( "GEOM_D1" ), myGrp3 ), row, 0 );
-  aLayout->addWidget( ( mySpinBox[ SpinBox31 ] = new QDoubleSpinBox( myGrp3 ) ), row++, 2 );
-  aLayout->addWidget( new QLabel( tr( "GEOM_D2" ), myGrp3 ), row, 0 );
-  aLayout->addWidget( ( mySpinBox[ SpinBox32 ] = new QDoubleSpinBox( myGrp3 ) ), row++, 2 );
-  aLayout->setRowStretch( row, 10 );
+  aLayout->setRowStretch( aLayout->rowCount(), 10 );
+
+  // Create fourth group
+
+  myGrp4 = new QGroupBox( tr( "GEOM_CHAMFER_EDGE" ), centralWidget() );
+
+  aLayout = new QGridLayout( myGrp4 );
+  aLayout->setMargin( 9 ); aLayout->setSpacing( 6 );
+
+  createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, myGrp4, aLayout, MainObj4 );
+  createSelWg( tr( "SELECTED_EDGE" ),    iconSelect, myGrp4, aLayout, Edges );
+
+  createRadioWg( tr( "GEOM_D1" ), tr( "GEOM_D2" ),    myGrp4, aLayout, RadioButton41, SpinBox41, SpinBox42 );
+  createRadioWg( tr( "GEOM_D" ),  tr( "GEOM_ANGLE" ), myGrp4, aLayout, RadioButton42, SpinBox43, SpinBox44 );
+
+  aLayout->setRowStretch( aLayout->rowCount(), 10 );
 
   // Add groups to layout
 
@@ -123,18 +135,24 @@ OperationGUI_ChamferDlg::OperationGUI_ChamferDlg( GeometryGUI* theGeometryGUI, Q
   layout->addWidget( myGrp1 );
   layout->addWidget( myGrp2 );
   layout->addWidget( myGrp3 );
+  layout->addWidget( myGrp4 );
 
   // Set range of spinboxes
 
   double SpecificStep = 10.0;
   QMap< int, QDoubleSpinBox* >::iterator anIter;
-  for ( anIter = mySpinBox.begin(); anIter != mySpinBox.end(); ++anIter )
-    initSpinBox( anIter.value(), 0.001, COORD_MAX, SpecificStep, 3 );
+  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.htm" );
+  setHelpFileName( "chamfer_operation_page.html" );
 
   /* Initialisations */
   Init();
+  myRadioButton[ RadioButton21 ]->click();
 }
 
 
@@ -183,6 +201,12 @@ void OperationGUI_ChamferDlg::Init()
     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.value(), SIGNAL( clicked() ),
+            this, SLOT( RadioButtonPressed() ) );
+
   // selection
   connect( myGeomGUI->getApp()->selectionMgr(), 
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
@@ -210,16 +234,26 @@ void OperationGUI_ChamferDlg::ConstructorsClicked( int constructorId )
     return;
 
   // Get values from previous widget
-  double D1 = 5, D2 = 5;
+  double D1 = 5, D2 = 5, D = 5, Angle = 5;
   if ( myConstructorId == 0 )
     D1 = D2 = mySpinBox[ SpinBox1 ]->value();
   else if ( myConstructorId == 1 ) {
     D1 = mySpinBox[ SpinBox21 ]->value();
     D2 = mySpinBox[ SpinBox22 ]->value();
+    D =  mySpinBox[ SpinBox23 ]->value();
+    Angle = mySpinBox[ SpinBox24 ]->value();
   }
   else if ( myConstructorId == 2 ) {
     D1 = mySpinBox[ SpinBox31 ]->value();
     D2 = mySpinBox[ SpinBox32 ]->value();
+    D =  mySpinBox[ SpinBox33 ]->value();
+    Angle = mySpinBox[ SpinBox34 ]->value();
+  }
+  else if ( myConstructorId == 3 ) {
+    D1 = mySpinBox[ SpinBox41 ]->value();
+    D2 = mySpinBox[ SpinBox42 ]->value();
+    D =  mySpinBox[ SpinBox43 ]->value();
+    Angle = mySpinBox[ SpinBox44 ]->value();
   }
 
   myConstructorId = constructorId;
@@ -228,22 +262,40 @@ void OperationGUI_ChamferDlg::ConstructorsClicked( int constructorId )
   case 0:
     myGrp2->hide();
     myGrp3->hide();
+    myGrp4->hide();
     myGrp1->show();
     mySpinBox[ SpinBox1 ]->setValue( D1 );
     break;
   case 1:
     myGrp1->hide();
     myGrp3->hide();
+    myGrp4->hide();
     myGrp2->show();
     mySpinBox[ SpinBox21 ]->setValue( D1 );
     mySpinBox[ SpinBox22 ]->setValue( D2 );
+    mySpinBox[ SpinBox23 ]->setValue( D );
+    mySpinBox[ SpinBox24 ]->setValue( Angle );
     break;
   case 2:
     myGrp1->hide();
     myGrp2->hide();
+    myGrp4->hide();
     myGrp3->show();
     mySpinBox[ SpinBox31 ]->setValue( D1 );
     mySpinBox[ SpinBox32 ]->setValue( D2 );        
+    mySpinBox[ SpinBox32 ]->setValue( D2 );
+    mySpinBox[ SpinBox33 ]->setValue( D );
+    mySpinBox[ SpinBox34 ]->setValue( 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 );
     break;
   default:
     break;
@@ -251,7 +303,8 @@ void OperationGUI_ChamferDlg::ConstructorsClicked( int constructorId )
   
   if      ( constructorId == 0 ) myEditCurrentArgument = mySelName[ MainObj1 ];
   else if ( constructorId == 1 ) myEditCurrentArgument = mySelName[ MainObj2 ];
-  else                           myEditCurrentArgument = mySelName[ MainObj3 ];
+  else if ( constructorId == 2 ) myEditCurrentArgument = mySelName[ MainObj3 ];
+  else                           myEditCurrentArgument = mySelName[ MainObj4 ];
 
   activateSelection(); 
   enableWidgets();
@@ -316,7 +369,7 @@ void OperationGUI_ChamferDlg::SelectionIntoArgument()
   }
 
   // If selection of main object is activated
-  if ( aCurrFocus == MainObj1 || aCurrFocus == MainObj2 || aCurrFocus == MainObj3 ) {
+  if ( aCurrFocus == MainObj1 || aCurrFocus == MainObj2 || aCurrFocus == MainObj3 || aCurrFocus == MainObj4) {
     if ( IObjectCount() == 1 ) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
@@ -358,8 +411,8 @@ void OperationGUI_ChamferDlg::SelectionIntoArgument()
 
     myFace[ aCurrFocus ] = -1;
   }
-  // If face selection of third tab is activated
-  else if ( aCurrFocus == Faces ) {
+  // If face selection of third or fourth tab is activated
+  else if ( aCurrFocus == Faces  || aCurrFocus == Edges ) {
     if ( IObjectCount() == 1 ) {
       Standard_Boolean aResult = Standard_False;
       GEOM::GEOM_Object_var anObj =
@@ -370,24 +423,30 @@ void OperationGUI_ChamferDlg::SelectionIntoArgument()
        ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr()->GetIndexes( firstIObject(), anIndexes );
        
        if ( anIndexes.Extent() > 0 ) {
-         QString aFaceName;
+         QString aName;
          if ( anIndexes.Extent() == 1 ) {
            int anIndex = anIndexes( 1 );
            
-           aFaceName = QString( GEOMBase::GetName( anObj ) ) + QString( ":%1" ).arg( anIndex );
+           aName = QString( GEOMBase::GetName( anObj ) ) + QString( ":%1" ).arg( anIndex );
          }
          else {
-           aFaceName = tr( "GEOM_MEN_POPUP_NAME" ).arg( anIndexes.Extent() );
+           aName = tr( "GEOM_MEN_POPUP_NAME" ).arg( anIndexes.Extent() );
          }
          
-         myEditCurrentArgument->setText( aFaceName );
-         myFaces = anIndexes;
+         myEditCurrentArgument->setText( aName );
+         int aConstructorId = getConstructorId();
+         if ( aConstructorId == 2)
+           myFaces = anIndexes;
+         else if ( aConstructorId == 3 )
+           myEdges = anIndexes;
+            
          displayPreview();
          return;
        }
       }
     }
     myFaces.Clear();
+    myEdges.Clear();
   }
 }
 
@@ -409,6 +468,54 @@ void OperationGUI_ChamferDlg::LineEditReturnPressed()
 }
 
 
+//=================================================================================
+// 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();
+}
+
+
 //=================================================================================
 // function : SetEditCurrentArgument()
 // purpose  :
@@ -484,7 +591,32 @@ void OperationGUI_ChamferDlg::createSelWg( const QString& theLbl,
   int row = theLayout->rowCount();
   theLayout->addWidget( lab,                row, 0 );
   theLayout->addWidget( mySelBtn[ theId ],  row, 1 );
-  theLayout->addWidget( mySelName[ theId ], row, 2 );
+  theLayout->addWidget( mySelName[ theId ], row, 2, 1, 4 ); // take into account createRadioWg()
+}
+
+//=================================================================================
+// function : createRadioWg()
+// purpose  :
+//=================================================================================
+void OperationGUI_ChamferDlg::createRadioWg( const QString& theLbl1, 
+                                            const QString& theLbl2, 
+                                            QWidget*       theParent, 
+                                            QGridLayout*   theLayout, 
+                                            const int      theRbId,
+                                            const int      theSpin1Id,
+                                            const int      theSpin2Id )
+{
+  myRadioButton[ theRbId ] = new QRadioButton( theParent );
+  QLabel* lab1 = new QLabel( theLbl1, theParent ); 
+  QLabel* lab2 = new QLabel( theLbl2, theParent ); 
+  mySpinBox[ theSpin1Id ]  = new QDoubleSpinBox( theParent );
+  mySpinBox[ theSpin2Id ]  = new QDoubleSpinBox( 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 );
 }
 
 //=================================================================================
@@ -508,11 +640,13 @@ void OperationGUI_ChamferDlg::reset()
 
   if      ( aConstructorId == 0 ) myEditCurrentArgument = mySelName[ MainObj1 ];
   else if ( aConstructorId == 1 ) myEditCurrentArgument = mySelName[ MainObj2 ];
-  else                            myEditCurrentArgument = mySelName[ MainObj3 ];
+  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;
 
@@ -532,10 +666,13 @@ void OperationGUI_ChamferDlg::activateSelection()
   if (  !myShape->_is_nil() &&
        ( myEditCurrentArgument == mySelName[ Face1 ] ||
          myEditCurrentArgument == mySelName[ Face2 ] ||
-         myEditCurrentArgument == mySelName[ Faces ] ) )
+         myEditCurrentArgument == mySelName[ Faces ] ) ) {
     localSelection( myShape, TopAbs_FACE );
-  else
-  {
+  }
+  else if ( !myShape->_is_nil() && myEditCurrentArgument == mySelName[ Edges ] ) {
+    localSelection( myShape, TopAbs_EDGE );
+  }
+  else {
     TColStd_MapOfInteger aMap;
     aMap.Add( GEOM_SHELL );
     aMap.Add( GEOM_SOLID );
@@ -574,9 +711,18 @@ void OperationGUI_ChamferDlg::enableWidgets()
   else if ( anId == 2 )
   {
     mySelName[ Faces ]->setEnabled( toEnable );
-
-    if ( !toEnable )
-      myFaces.Clear();
+    if ( !toEnable ) {
+      mySelName[ Faces ]->setText( "" );
+      myFaces = -1;
+    }
+  }
+  else if ( anId == 3 ) {
+    mySelName[ Edges ]->setEnabled( toEnable );
+    
+    if ( !toEnable ) {
+      mySelName[ Edges ]->setText( "" );
+      myEdges = -1;
+    }
   }
 }
 
@@ -600,6 +746,7 @@ bool OperationGUI_ChamferDlg::isValid( QString& )
     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;
     default: return false;
   }
 }
@@ -611,47 +758,74 @@ bool OperationGUI_ChamferDlg::isValid( QString& )
 bool OperationGUI_ChamferDlg::execute( ObjectList& objects )
 {
   GEOM::GEOM_Object_var anObj;
+  bool flag = ( myRadioButton[ RadioButton21 ]->isChecked() &&
+                myRadioButton[ RadioButton31 ]->isChecked() &&
+                myRadioButton[ RadioButton41 ]->isChecked() );
 
   int anId = getConstructorId();
-  if ( anId == 0 )
+  if ( anId == 0 ) {
     anObj = GEOM::GEOM_ILocalOperations::_narrow(
       getOperation() )->MakeChamferAll( myShape,
                                         mySpinBox[ SpinBox1 ]->value() );
-  else if ( anId == 1 )
-    anObj = GEOM::GEOM_ILocalOperations::_narrow(
-      getOperation() )->MakeChamferEdge( myShape,
-                                         mySpinBox[ SpinBox21 ]->value(),
-                                         mySpinBox[ SpinBox22 ]->value(),
-                                         myFace[ Face1 ],
-                                         myFace[ Face2 ] );
+  }
+  else if ( anId == 1 ) {
+    if ( flag ) {
+      anObj = GEOM::GEOM_ILocalOperations::_narrow( getOperation() )->
+       MakeChamferEdge( myShape,
+                        mySpinBox[ SpinBox21 ]->value(),
+                        mySpinBox[ SpinBox22 ]->value(),
+                        myFace[ Face1 ],
+                        myFace[ Face2 ] );
+    }
+    else {
+      anObj = GEOM::GEOM_ILocalOperations::_narrow( getOperation() )->
+       MakeChamferEdgeAD( myShape,
+                          mySpinBox[ SpinBox23 ]->value(),
+                          mySpinBox[ SpinBox24 ]->value() * 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 ]->value(),
                                           mySpinBox[ SpinBox32 ]->value(),
                                           anArray );
+    else
+    anObj = GEOM::GEOM_ILocalOperations::_narrow(
+      getOperation() )->MakeChamferFacesAD( myShape,
+                                            mySpinBox[ SpinBox33 ]->value(),
+                                            mySpinBox[ SpinBox34 ]->value() * PI180,
+                                            anArray );
+  }
+  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 );
+    }
+    else {
+      anObj = GEOM::GEOM_ILocalOperations::_narrow( getOperation() )->
+       MakeChamferEdgesAD( myShape, mySpinBox[ SpinBox43 ]->value(),
+                           mySpinBox[ SpinBox44 ]->value() * PI180, anArray );
+    }
   }
-
 
   if ( !anObj->_is_nil() )
     objects.push_back( anObj._retn() );
 
   return true;
 }
-
-
-
-
-
-
-
-
-
index be6048d680584751d03ceeefe7ec9a621844d4ed..0f69bee51db22ab013a41e776e0a5671eb0e98f3 100644 (file)
@@ -38,6 +38,7 @@ class QPushButton;
 class QLineEdit;
 class QDoubleSpinBox;
 class QGridLayout;
+class QRadioButton;
 
 //=================================================================================
 // class    : OperationGUI_ChamferDlg
@@ -47,8 +48,14 @@ class OperationGUI_ChamferDlg : public GEOMBase_Skeleton
 { 
   Q_OBJECT
 
-  enum { MainObj1, MainObj2, Face1, Face2, MainObj3, Faces };
-  enum { SpinBox1, SpinBox21, SpinBox22, SpinBox31, SpinBox32 };
+  enum { MainObj1, MainObj2, Face1, Face2, MainObj3, Faces, MainObj4, Edges};
+  enum { SpinBox1,
+        SpinBox21, SpinBox22, SpinBox23, SpinBox24, 
+        SpinBox31, SpinBox32, SpinBox33, SpinBox34,
+        SpinBox41, SpinBox42, SpinBox43, SpinBox44  };
+  enum { RadioButton21, RadioButton22,
+         RadioButton31, RadioButton32,
+         RadioButton41, RadioButton42 };
 
 public:
   OperationGUI_ChamferDlg( GeometryGUI*, QWidget* );
@@ -65,6 +72,7 @@ private slots:
   bool                                ClickOnApply();
   void                                ActivateThisDialog();
   void                                LineEditReturnPressed();
+  void                                RadioButtonPressed();
   void                                SelectionIntoArgument();
   void                                SetEditCurrentArgument();
   void                                ValueChangedInSpinBox( double );
@@ -76,6 +84,8 @@ private:
   void                                reset();
   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();
   
@@ -85,14 +95,17 @@ private:
   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)
   
   QGroupBox*                          myGrp1;
   QGroupBox*                          myGrp2;
   QGroupBox*                          myGrp3;
+  QGroupBox*                          myGrp4;
   
   QMap< int, QPushButton* >           mySelBtn;
   QMap< int, QLineEdit* >             mySelName;
   QMap< int, QDoubleSpinBox* >        mySpinBox;
+  QMap< int, QRadioButton* >          myRadioButton;
 };
 
 #endif // OPERATIONGUI_CHAMFERDLG_H
index a59387bb5ac1a5eeb441e824c39c732be1bcdc8d..9971b3b0423de42a799b2b5a521210120b2a8d29 100644 (file)
@@ -94,8 +94,8 @@ OperationGUI_ClippingDlg::OperationGUI_ClippingDlg( GeometryGUI* theGeometryGUI,
   layout->addWidget( GroupArguments );
 
   /* Initialisations */
-  initSpinBox( SpinBox_Near, COORD_MIN, COORD_MAX, 10.0, 3 );
-  initSpinBox( SpinBox_Far, COORD_MIN, COORD_MAX, 10.0, 3 );
+  initSpinBox( SpinBox_Near, COORD_MIN, COORD_MAX, 10.0, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( SpinBox_Far, COORD_MIN, COORD_MAX, 10.0, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
 
   /* signals and slots connections */
   connect( buttonOk(),    SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
@@ -268,15 +268,6 @@ void OperationGUI_ClippingDlg::enterEvent( QEvent* )
   this->setEnabled( true );
 }
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void OperationGUI_ClippingDlg::closeEvent( QCloseEvent* e )
-{
-  QDialog::closeEvent( e );
-}
-
 //=================================================================================
 // function : onReset()
 // purpose  :
index 296a0adbb5fbcda55a95d1abbf7d4c7a090cc52a..7197f1386f42b4777f2e07cb07330082cc3cd0bd 100644 (file)
@@ -51,7 +51,6 @@ public:
 private:
   void              Init();
   
-  virtual void      closeEvent( QCloseEvent* );
   void              enterEvent( QEvent* );
   
 private:
index c650525d84b65f825e7908fa2dddf487ea2a26b7..cdf2dd39611858233511510379575c83cca2e8f9 100644 (file)
@@ -75,21 +75,25 @@ OperationGUI_FilletDlg::OperationGUI_FilletDlg( GeometryGUI* theGeometryGUI, QWi
   Group1->PushButton1->setIcon( iconSelect );
   Group1->LineEdit1->setReadOnly( true );
 
-  Group2 = new DlgRef_2Sel1Spin( centralWidget() );
+  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_2Sel1Spin( centralWidget() );
+  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 );
@@ -103,11 +107,15 @@ OperationGUI_FilletDlg::OperationGUI_FilletDlg( GeometryGUI* theGeometryGUI, QWi
   /***************************************************************/
 
   double SpecificStep = 10.0;
-  initSpinBox( Group1->SpinBox_DX, 0.001, COORD_MAX, SpecificStep, 3 );
-  initSpinBox( Group2->SpinBox_DX, 0.001, COORD_MAX, SpecificStep, 3 );
-  initSpinBox( Group3->SpinBox_DX, 0.001, COORD_MAX, SpecificStep, 3 );
-
-  setHelpFileName( "fillet.htm" );
+  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 */
   Init();
@@ -154,9 +162,19 @@ void OperationGUI_FilletDlg::Init()
   // 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 ) ) );
+  connect( Group2->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
   connect( Group3->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
+  connect( Group3->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
+  connect( Group3->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
+
+  // 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
+  // selection
   connect( myGeomGUI->getApp()->selectionMgr(), 
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
@@ -182,10 +200,20 @@ void OperationGUI_FilletDlg::ConstructorsClicked( int constructorId )
     return;
 
   // Get radius from previous widget
-  double R = 5;
-  if      ( myConstructorId == 0 ) R = Group1->SpinBox_DX->value();
-  else if ( myConstructorId == 1 ) R = Group2->SpinBox_DX->value();
-  else                             R = Group3->SpinBox_DX->value();
+  double R = 5, R1 = 5, R2 = 5;
+  if      ( myConstructorId == 0 ) { 
+    R = Group1->SpinBox_DX->value();
+  }
+  else if ( myConstructorId == 1 ) {
+    R = Group2->SpinBox_DX->value();
+    R1 = Group2->SpinBox_DY->value();
+    R2 = Group2->SpinBox_DZ->value();
+  }
+  else {
+    R = Group3->SpinBox_DX->value();
+    R1 = Group3->SpinBox_DY->value();
+    R2 = Group3->SpinBox_DZ->value();
+  }
 
   myConstructorId = constructorId;
 
@@ -201,12 +229,16 @@ void OperationGUI_FilletDlg::ConstructorsClicked( int constructorId )
     Group3->hide();
     Group2->show();
     Group2->SpinBox_DX->setValue( R );
+    Group2->SpinBox_DY->setValue( R1 );
+    Group2->SpinBox_DZ->setValue( 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 );
     break;
   default:
     break;
@@ -425,7 +457,11 @@ 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( "" );
@@ -539,8 +575,7 @@ bool OperationGUI_FilletDlg::execute( ObjectList& objects )
   int anId = getConstructorId();
   if ( anId == 0 )
     anObj = GEOM::GEOM_ILocalOperations::_narrow(
-      getOperation() )->MakeFilletAll( myShape,
-                                       getRadius() );
+      getOperation() )->MakeFilletAll( myShape, getRadius() );
   else if ( anId == 1 ) {
     GEOM::ListOfLong_var aList = new GEOM::ListOfLong;
     aList->length( myEdges.Extent() );
@@ -548,8 +583,15 @@ bool OperationGUI_FilletDlg::execute( ObjectList& objects )
     for ( int i = 1, n = myEdges.Extent(); i <= n; i++ )
       aList[ i - 1 ] = myEdges( i );
 
-    anObj = GEOM::GEOM_ILocalOperations::_narrow(
-      getOperation() )->MakeFilletEdges( myShape, getRadius(), aList );
+    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->value(),
+                            Group2->SpinBox_DZ->value(),
+                            aList );
   }
   else if ( anId == 2 ) {
     GEOM::ListOfLong_var aList = new GEOM::ListOfLong;
@@ -558,8 +600,16 @@ bool OperationGUI_FilletDlg::execute( ObjectList& objects )
     for ( int i = 1, n = myFaces.Extent(); i <= n; i++ )
       aList[ i - 1 ] = myFaces( i );
 
-    anObj = GEOM::GEOM_ILocalOperations::_narrow(
-      getOperation() )->MakeFilletFaces( myShape, getRadius(), aList );
+    if ( Group3->RadioButton1->isChecked() ) {
+      anObj = GEOM::GEOM_ILocalOperations::_narrow( getOperation() )->
+       MakeFilletFaces( myShape, getRadius(), aList );
+    }
+    else {
+      anObj = GEOM::GEOM_ILocalOperations::_narrow( getOperation() )->
+       MakeFilletFacesR1R2( myShape, 
+                            Group3->SpinBox_DY->value(),
+                            Group3->SpinBox_DZ->value(), aList );
+    }
   }
 
   if ( !anObj->_is_nil() )
@@ -579,3 +629,38 @@ double OperationGUI_FilletDlg::getRadius() const
   else if ( anId == 1 ) return Group2->SpinBox_DX->value();
   else                  return Group3->SpinBox_DX->value();
 }
+
+//=================================================================================
+// function : RadiobuttonClicked
+// purpose  :
+//=================================================================================
+
+void OperationGUI_FilletDlg::RadioButtonClicked()
+{
+  const QObject* s = sender();
+
+  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();  
+}
index e4ed93a5e60e046ca7cff3c194d933c3c8942343..70e493325f947608a2b8e21b9e8a0e939c5c072d 100644 (file)
@@ -31,7 +31,7 @@
 #include <TColStd_IndexedMapOfInteger.hxx>
 
 class DlgRef_1Sel1Spin;
-class DlgRef_2Sel1Spin;
+class DlgRef_2Sel3Spin2Rb;
 
 //=================================================================================
 // class    : OperationGUI_FilletDlg
@@ -60,6 +60,7 @@ private slots:
   void                                SetEditCurrentArgument();
   void                                ValueChangedInSpinBox( double );
   void                                ConstructorsClicked( int );
+  void                                RadioButtonClicked();
   
 private:
   void                                Init();
@@ -77,8 +78,8 @@ private:
   TColStd_IndexedMapOfInteger         myFaces;
   
   DlgRef_1Sel1Spin*                   Group1;
-  DlgRef_2Sel1Spin*                   Group2;
-  DlgRef_2Sel1Spin*                   Group3;
+  DlgRef_2Sel3Spin2Rb*                Group2;
+  DlgRef_2Sel3Spin2Rb*                Group3;
 };
 
 #endif // OPERATIONGUI_FILLETDLG_H
index 88fb4e1d5d9e4fb2b0d88225bb54697faea4c659..11ee931dae8677ad6d634d52b905a108e495d476 100644 (file)
@@ -76,7 +76,7 @@ OperationGUI_MaterialDlg::OperationGUI_MaterialDlg( GeometryGUI* theGeometryGUI,
   layout->addWidget( GroupPoints );
   /***************************************************************/
 
-  setHelpFileName( "partition.htm" ); 
+  setHelpFileName("partition_page.html"); 
 
   Init();
 }
index a566b5664b981f6ecc0a01c03eecc6260ab91aa2..a729d4dfcd4d8528ca40bcf03932675bbab9244b 100644 (file)
@@ -24,7 +24,6 @@
 //
 
 #include "OperationGUI_PartitionDlg.h"
-#include "OperationGUI_MaterialDlg.h"
 
 #include <DlgRef.h>
 #include <GeometryGUI.h>
@@ -63,7 +62,7 @@ OperationGUI_PartitionDlg::OperationGUI_PartitionDlg( GeometryGUI* theGeometryGU
   mainFrame()->RadioButton3->close();
 
   // Full partition (contains half-space partition)
-  GroupPoints = new DlgRef_2Sel1List( centralWidget() );
+  GroupPoints = new DlgRef_2Sel1List1Check( centralWidget() );
   GroupPoints->GroupBox1->setTitle( tr( "GEOM_PARTITION" ) );
   GroupPoints->TextLabel1->setText( tr( "GEOM_OBJECTS" ) );
   GroupPoints->TextLabel2->setText( tr( "GEOM_TOOL_OBJECT" ) );
@@ -72,6 +71,7 @@ OperationGUI_PartitionDlg::OperationGUI_PartitionDlg( GeometryGUI* theGeometryGU
   GroupPoints->PushButton2->setIcon( image2 );
   GroupPoints->LineEdit1->setReadOnly( true );
   GroupPoints->LineEdit2->setReadOnly( true );
+  GroupPoints->CheckButton1->setText( tr( "GEOM_KEEP_NONLIMIT_SHAPES" ) );
 
   QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
   layout->setMargin( 0 ); layout->setSpacing( 6 );
@@ -79,7 +79,7 @@ OperationGUI_PartitionDlg::OperationGUI_PartitionDlg( GeometryGUI* theGeometryGU
 
   /***************************************************************/
 
-  setHelpFileName( "partition.htm" ); 
+  setHelpFileName( "partition_page.html" );
  
   Init();
 }
@@ -117,6 +117,7 @@ void OperationGUI_PartitionDlg::Init()
   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 );
   
   /* signals and slots connections */
   connect( buttonOk(),    SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
@@ -132,7 +133,9 @@ void OperationGUI_PartitionDlg::Init()
   
   connect( GroupPoints->ComboBox1, SIGNAL( activated( int ) ), this, SLOT( ComboTextChanged() ) );
   
-  connect( myGeomGUI->getApp()->selectionMgr(), 
+  connect( GroupPoints->CheckButton1, SIGNAL( stateChanged( int ) ), this, SLOT( ReverseSense( int ) ) );
+
+  connect( myGeomGUI->getApp()->selectionMgr(),
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
   
   initName( tr( "GEOM_PARTITION" ) );
@@ -162,14 +165,15 @@ void OperationGUI_PartitionDlg::ConstructorsClicked( int constructorId )
     GroupPoints->TextLabel2->setText( tr( "GEOM_TOOL_OBJECT" ) );
     GroupPoints->TextLabel3->show();
     GroupPoints->ComboBox1->show();
-    
     GroupPoints->ComboBox1->setCurrentIndex( 0 );
+    GroupPoints->CheckButton1->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->CheckButton1->hide();
     break;
   } 
 
@@ -356,15 +360,25 @@ 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->CheckButton1->isChecked() ) {
+      aKeepNonlimitShapes = 1;
+    }
+    else {
+      aKeepNonlimitShapes = 0;
+    }
+  }
 
   if ( isValid( msg ) ) {
-    anObj = GEOM::GEOM_IBooleanOperations::_narrow(getOperation())->
-      MakePartition(myListShapes, myListTools,
-                    myListKeepInside, myListRemoveInside,
-                   aLimit, false, myListMaterials);
+    anObj = GEOM::GEOM_IBooleanOperations::_narrow( getOperation() )->
+      MakePartition( myListShapes, myListTools,
+                    myListKeepInside, myListRemoveInside,
+                    aLimit, false, myListMaterials, aKeepNonlimitShapes );
     res = true;
   }
 
@@ -375,16 +389,6 @@ bool OperationGUI_PartitionDlg::execute( ObjectList& objects )
 }
 
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void OperationGUI_PartitionDlg::closeEvent( QCloseEvent* e )
-{
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
-
 //=======================================================================
 //function : ComboTextChanged
 //purpose  : 
index 1f1f221f71fb979b4e193995439cc191d3a6662e..ee3cbdd23ee272c74b5d477ae53c8afc49be1ff9 100644 (file)
@@ -28,7 +28,7 @@
 
 #include <GEOMBase_Skeleton.h>
 
-class DlgRef_2Sel1List;
+class DlgRef_2Sel1List1Check;
 
 //=================================================================================
 // class    : OperationGUI_PartitionDlg
@@ -50,8 +50,6 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
 
 private:
   void                               Init();
@@ -65,7 +63,7 @@ private:
   GEOM::ListOfGO                     myListRemoveInside;
   GEOM::ListOfGO                     myListKeepInside;
 
-  DlgRef_2Sel1List*                  GroupPoints;
+  DlgRef_2Sel1List1Check*            GroupPoints;
 
 private slots:
   void                               ClickOnOk();
index 9b15f02a033f93a430d318c965924f640e1ff9bf..467838ca16a400ab60057985ee8c0939ff45e3cd 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -79,7 +85,7 @@ PrimitiveGUI_BoxDlg::PrimitiveGUI_BoxDlg( GeometryGUI* theGeometryGUI, QWidget*
   layout->addWidget( GroupDimensions );
   /***************************************************************/
 
-  setHelpFileName( "box.htm" );
+  setHelpFileName( "create_box_page.html" );
   
   Init();
 }
@@ -113,9 +119,9 @@ void PrimitiveGUI_BoxDlg::Init()
   double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
   
   /* min, max, step and decimals for spin boxes */
-  initSpinBox( GroupDimensions->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
+  initSpinBox( GroupDimensions->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
 
   double initValue = 200.0;
   GroupDimensions->SpinBox_DX->setValue( initValue );
@@ -144,7 +150,7 @@ void PrimitiveGUI_BoxDlg::Init()
   connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupDimensions->SpinBox_DZ, SLOT( SetStep( double ) ) );
   // <<-
 
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 
+  connect( myGeomGUI->getApp()->selectionMgr(), 
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
   initName( tr( "GEOM_BOX" ) );
@@ -159,12 +165,14 @@ void PrimitiveGUI_BoxDlg::Init()
 //=================================================================================
 void PrimitiveGUI_BoxDlg::ConstructorsClicked( int constructorId )
 {
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication( ) ) )->selectionMgr(), 0, this, 0 );
+  disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
   
   switch (  constructorId ) {
   case 0:
     {
-      globalSelection( GEOM_POINT );
+      //globalSelection( GEOM_POINT );
+      globalSelection(); // close local contexts, if any
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
       
       GroupDimensions->hide();
       GroupPoints->show();
@@ -174,7 +182,7 @@ void PrimitiveGUI_BoxDlg::ConstructorsClicked( int constructorId )
       GroupPoints->LineEdit2->setText( "" );
       myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil();
       
-      connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 
+      connect( myGeomGUI->getApp()->selectionMgr(),
               SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
       break;
     }
@@ -182,6 +190,7 @@ void PrimitiveGUI_BoxDlg::ConstructorsClicked( int constructorId )
     {
       GroupPoints->hide();
       GroupDimensions->show();
+      globalSelection(); // close local contexts, if any
       break;
     }
   }
@@ -246,13 +255,43 @@ void PrimitiveGUI_BoxDlg::SelectionIntoArgument()
   if ( !testResult || CORBA::is_nil( aSelectedObject ) )
     return;
   
+  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) { // Local Selection
+      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 );
+      }
+      else {
+       aSelectedObject = aFindedObject; // get Object from study       
+      }
+    }
+    else { // Global Selection
+      if ( aShape.ShapeType() != TopAbs_VERTEX ) {
+        aSelectedObject = GEOM::GEOM_Object::_nil();
+        aName = "";
+      }
+    }
+  }
+
+  myEditCurrentArgument->setText( aName );
+
   if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
     myPoint1 = aSelectedObject;
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
     myPoint2 = aSelectedObject;
   
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
-  
   displayPreview();
 }
 
@@ -270,7 +309,9 @@ void PrimitiveGUI_BoxDlg::SetEditCurrentArgument()
   else if ( send == GroupPoints->PushButton2 )
     myEditCurrentArgument = GroupPoints->LineEdit2;
   
-  globalSelection( GEOM_POINT );
+  //  globalSelection( GEOM_POINT );
+  globalSelection(); // close local contexts, if any
+  localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   
   myEditCurrentArgument->setFocus();
   SelectionIntoArgument();
@@ -298,8 +339,8 @@ void PrimitiveGUI_BoxDlg::LineEditReturnPressed()
 void PrimitiveGUI_BoxDlg::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() ) );
   
   ConstructorsClicked( getConstructorId() );
 }
@@ -385,10 +426,15 @@ bool PrimitiveGUI_BoxDlg::execute( ObjectList& objects )
 }
 
 //=================================================================================
-// function : closeEvent
-// purpose  :
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
 //=================================================================================
-void PrimitiveGUI_BoxDlg::closeEvent( QCloseEvent* e )
+void PrimitiveGUI_BoxDlg::addSubshapesToStudy()
 {
-  GEOMBase_Skeleton::closeEvent( e );
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+  if ( getConstructorId() == 0 ) {
+    objMap[GroupPoints->LineEdit1->text()] = myPoint1;
+    objMap[GroupPoints->LineEdit2->text()] = myPoint2;
+    addSubshapesToFather( objMap );
+  }
 }
index 0387d7ec96bdad9809ff55a6b4c66df1f3e8b748..e4f4b866e23fc0222f9bcdc3b7e7abd37582dd6a 100644 (file)
@@ -48,8 +48,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index b6507478da2bc5c893c5975dcaf515f95d3d959f..65cb9066135baf6e8058dda642f4668426289905 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -82,7 +89,7 @@ PrimitiveGUI_ConeDlg::PrimitiveGUI_ConeDlg( GeometryGUI* theGeometryGUI, QWidget
   layout->addWidget( GroupDimensions );
   /***************************************************************/
 
-  setHelpFileName( "cone.htm" );
+  setHelpFileName( "create_cone_page.html" );
   
   Init();
 }
@@ -116,12 +123,12 @@ void PrimitiveGUI_ConeDlg::Init()
   double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
   
   /* min, max, step and decimals for spin boxes & initial values */
-  initSpinBox( GroupPoints->SpinBox_DX, 0.000, COORD_MAX, step, 3 );
-  initSpinBox( GroupPoints->SpinBox_DY, 0.000, COORD_MAX, step, 3 );
-  initSpinBox( GroupPoints->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DX, 0.000, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DY, 0.000, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
+  initSpinBox( GroupPoints->SpinBox_DX, 0.000, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupPoints->SpinBox_DY, 0.000, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupPoints->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DX, 0.000, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DY, 0.000, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
 
   double aRadius1( 100.0 ), aRadius2( 0.0 ), aHeight( 300.0 );
   GroupPoints->SpinBox_DX->setValue( aRadius1 );
@@ -159,7 +166,7 @@ void PrimitiveGUI_ConeDlg::Init()
   connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupDimensions->SpinBox_DZ, SLOT( SetStep( double ) ) );
   // <<-
   
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+  connect( myGeomGUI->getApp()->selectionMgr(), 
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
   
   initName( tr( "GEOM_CONE" ) );
@@ -174,12 +181,15 @@ void PrimitiveGUI_ConeDlg::Init()
 //=================================================================================
 void PrimitiveGUI_ConeDlg::ConstructorsClicked( int constructorId )
 {
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
+  disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
   
   switch( constructorId ) { 
   case 0 :
     {
-      globalSelection( GEOM_POINT );
+      //globalSelection( GEOM_POINT );
+      globalSelection(); // to break prvious local selection
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
+
       GroupDimensions->hide();
       GroupPoints->show();
       
@@ -188,15 +198,17 @@ void PrimitiveGUI_ConeDlg::ConstructorsClicked( int constructorId )
       GroupPoints->LineEdit2->setText( "" );
       myPoint = myDir = GEOM::GEOM_Object::_nil();
       
-      connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+      connect( myGeomGUI->getApp()->selectionMgr(), 
               SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
       break;
     }
   case 1 :
     { 
+      globalSelection(); // close local contexts, if any
+
       GroupPoints->hide();
       GroupDimensions->show();
-      
+       
       break;
     }
   }
@@ -259,13 +271,51 @@ void PrimitiveGUI_ConeDlg::SelectionIntoArgument()
   if ( !testResult || CORBA::is_nil( aSelectedObject ) )
     return;
 
+  TopoDS_Shape aShape;
+  QString aName = GEOMBase::GetName( aSelectedObject );
+
+  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 ) {
+      int anIndex = aMap(1);
+      if ( aNeedType == TopAbs_EDGE )
+        aName.append( ":edge_" + QString::number( anIndex ) );
+      else
+        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 );
+      }
+      else {
+       aSelectedObject = aFindedObject; // get Object from study       
+      }
+    }
+    else {
+      if ( aShape.ShapeType() != aNeedType ) {
+        aSelectedObject = GEOM::GEOM_Object::_nil();
+        aName = "";
+      }
+    }
+  }
+
+  myEditCurrentArgument->setText( aName );
+
   if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
     myPoint = aSelectedObject;
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
     myDir = aSelectedObject;
   
-  
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
   displayPreview();
 }
 
@@ -280,11 +330,13 @@ void PrimitiveGUI_ConeDlg::SetEditCurrentArgument()
   
   if ( send == GroupPoints->PushButton1 ) {
     myEditCurrentArgument = GroupPoints->LineEdit1;
-    globalSelection( GEOM_POINT );
+    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 );
+    globalSelection( GEOM_LINE );// to break prvious local selection
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   
   myEditCurrentArgument->setFocus();
@@ -314,8 +366,8 @@ void PrimitiveGUI_ConeDlg::LineEditReturnPressed()
 void PrimitiveGUI_ConeDlg::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() ) );
   
   ConstructorsClicked( getConstructorId() );
 }
@@ -405,16 +457,6 @@ bool PrimitiveGUI_ConeDlg::execute( ObjectList& objects )
   return res;
 }
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void PrimitiveGUI_ConeDlg::closeEvent( QCloseEvent* e )
-{
-  // myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 
 //=================================================================================
 // function : getRadius1()
@@ -459,3 +501,22 @@ double PrimitiveGUI_ConeDlg::getHeight() const
     return GroupDimensions->SpinBox_DZ->value();
   return 0;
 }
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void PrimitiveGUI_ConeDlg::addSubshapesToStudy()
+{
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+  
+  switch ( getConstructorId() ) {
+  case 0:
+    objMap[GroupPoints->LineEdit1->text()] = myPoint;
+    objMap[GroupPoints->LineEdit2->text()] = myDir;
+    break;
+  case 1:
+    return;
+  }
+  addSubshapesToFather( objMap );
+}
index 0895bc4a28e7450bb1f483ec392ee19e338995fd..96b67b1ace6f4a119b293443d0e5a07f5a8bc0b8 100644 (file)
@@ -48,8 +48,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index e11a5e968eef51e6b260d7e34a31f389282c8713..8cc0796aa39c820dcf9d8d96b217ed45c483c4ee 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -81,7 +88,7 @@ PrimitiveGUI_CylinderDlg::PrimitiveGUI_CylinderDlg( GeometryGUI* theGeometryGUI,
   layout->addWidget( GroupDimensions );
   /***************************************************************/
 
-  setHelpFileName( "cylinder.htm" );
+  setHelpFileName( "create_cylinder_page.html" );
 
   Init();
 }
@@ -116,13 +123,13 @@ void PrimitiveGUI_CylinderDlg::Init()
 
   /* min, max, step and decimals for spin boxes & initial values */
   /* First constructor : radius */
-  initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, step, 3 );
+  initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
   /* First constructor : algebric height */
-  initSpinBox( GroupPoints->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
+  initSpinBox( GroupPoints->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
   /* Second constructor : radius */
-  initSpinBox( GroupDimensions->SpinBox_DX, 0.001, COORD_MAX, step, 3 );
+  initSpinBox( GroupDimensions->SpinBox_DX, 0.001, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
   /* Second constructor : algebric height */
-  initSpinBox( GroupDimensions->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
+  initSpinBox( GroupDimensions->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
 
   GroupPoints->SpinBox_DX->setValue( 100.0 );
   GroupPoints->SpinBox_DY->setValue( 300.0 );
@@ -153,7 +160,7 @@ void PrimitiveGUI_CylinderDlg::Init()
   connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupDimensions->SpinBox_DY, SLOT( SetStep( double ) ) );
   // <<-
   
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+  connect( myGeomGUI->getApp()->selectionMgr(), 
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
   
   initName( tr( "GEOM_CYLINDER" ) );
@@ -167,12 +174,13 @@ void PrimitiveGUI_CylinderDlg::Init()
 //=================================================================================
 void PrimitiveGUI_CylinderDlg::ConstructorsClicked( int constructorId )
 {
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
+  disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
     
   switch( constructorId ) { 
   case 0 :
     {
-      globalSelection( GEOM_POINT );
+      globalSelection( GEOM_POINT ); // to break previous local selection
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
       
       GroupDimensions->hide();
       GroupPoints->show();
@@ -182,12 +190,14 @@ void PrimitiveGUI_CylinderDlg::ConstructorsClicked( int constructorId )
       GroupPoints->LineEdit2->setText( "" );
       myPoint = myDir = GEOM::GEOM_Object::_nil();
       
-      connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 
+      connect( myGeomGUI->getApp()->selectionMgr(), 
               SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
       break;
     }
   case 1 :
     { 
+      globalSelection(); // close local contexts, if any
+      
       GroupPoints->hide();
       GroupDimensions->show();
       break;
@@ -254,13 +264,51 @@ void PrimitiveGUI_CylinderDlg::SelectionIntoArgument()
   if ( !testResult || CORBA::is_nil( aSelectedObject ) )
     return;
   
+
+  QString 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 )
+      aNeedType = TopAbs_EDGE;
+
+    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.append( ":edge_" + QString::number( anIndex ) );
+      else
+        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 );
+      }
+      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 == GroupPoints->LineEdit1 )
     myPoint = aSelectedObject;
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
     myDir = aSelectedObject;
     
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
   displayPreview();
 }
 
@@ -275,11 +323,13 @@ void PrimitiveGUI_CylinderDlg::SetEditCurrentArgument()
   
   if ( send == GroupPoints->PushButton1 ) {
     myEditCurrentArgument = GroupPoints->LineEdit1;
-    globalSelection( GEOM_POINT );
+    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 );
+    globalSelection( GEOM_LINE );  // to break previous local selection
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   
   myEditCurrentArgument->setFocus();
@@ -309,8 +359,8 @@ void PrimitiveGUI_CylinderDlg::LineEditReturnPressed()
 void PrimitiveGUI_CylinderDlg::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() ) );
   
   ConstructorsClicked( getConstructorId() );
 }
@@ -396,15 +446,6 @@ bool PrimitiveGUI_CylinderDlg::execute( ObjectList& objects )
   return res;
 }
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void  PrimitiveGUI_CylinderDlg::closeEvent( QCloseEvent* e )
-{
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 
 //=================================================================================
 // function : getRadius()
@@ -434,3 +475,22 @@ double PrimitiveGUI_CylinderDlg::getHeight() const
     return GroupDimensions->SpinBox_DY->value();
   return 0;
 }
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void PrimitiveGUI_CylinderDlg::addSubshapesToStudy()
+{
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+  switch ( getConstructorId() ) {
+  case 0:
+    objMap[GroupPoints->LineEdit1->text()] = myPoint;
+    objMap[GroupPoints->LineEdit2->text()] = myDir;
+    break;
+  case 1:
+    return;
+  }
+  addSubshapesToFather( objMap );
+}
index caf9b204ea4ec07bd0086a016a858c2345da65de..6a46329141634a3a2a00cb78a31014bae9cd331e 100644 (file)
@@ -48,8 +48,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index 4fd3963cc08d40ee896250f792f9ed7079719a06..65cfc86a033135f2fa12676164b691e5f37f0e1d 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -76,7 +82,7 @@ PrimitiveGUI_SphereDlg::PrimitiveGUI_SphereDlg( GeometryGUI* theGeometryGUI, QWi
   layout->addWidget( GroupDimensions );
   /***************************************************************/
 
-  setHelpFileName( "sphere.htm" );
+  setHelpFileName( "create_sphere_page.html" );
 
   Init();
 }
@@ -109,8 +115,8 @@ void PrimitiveGUI_SphereDlg::Init()
   double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
 
   /* min, max, step and decimals for spin boxes */
-  initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DX, 0.001, COORD_MAX, step, 3 );
+  initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DX, 0.001, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
   GroupPoints->SpinBox_DX->setValue( 100.0 );
   GroupDimensions->SpinBox_DX->setValue( 100.0 );
   
@@ -131,8 +137,8 @@ void PrimitiveGUI_SphereDlg::Init()
   connect(myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupDimensions->SpinBox_DX, SLOT( SetStep( double ) ) );
   // <<-
 
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( SelectionIntoArgument() ) );
 
   initName( tr( "GEOM_SPHERE" ) );
 
@@ -146,12 +152,14 @@ void PrimitiveGUI_SphereDlg::Init()
 //=================================================================================
 void PrimitiveGUI_SphereDlg::ConstructorsClicked( int constructorId )
 {
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
+  disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
   
   switch ( constructorId ) {
   case 0:
     {
-      globalSelection( GEOM_POINT );
+      globalSelection(); // close local contexts, if any
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
+
       GroupDimensions->hide();
       GroupPoints->show();
       
@@ -159,12 +167,14 @@ void PrimitiveGUI_SphereDlg::ConstructorsClicked( int constructorId )
       GroupPoints->LineEdit1->setText( "" );
       myPoint = GEOM::GEOM_Object::_nil();
       
-      connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+      connect( myGeomGUI->getApp()->selectionMgr(), 
               SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
       break;
     }
   case 1:
     {
+      globalSelection(); // close local contexts, if any
+      
       GroupPoints->hide();
       GroupDimensions->show();
       
@@ -229,8 +239,38 @@ void PrimitiveGUI_SphereDlg::SelectionIntoArgument()
   if ( !testResult || CORBA::is_nil( aSelectedObject ) )
     return;
     
+  QString 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 ) { // 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 );
+
+      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( GEOMBase::GetName( myPoint ) );
   
   displayPreview();
 }
@@ -261,7 +301,8 @@ void PrimitiveGUI_SphereDlg::SetEditCurrentArgument()
   if ( send == GroupPoints->PushButton1 ) {
     GroupPoints->LineEdit1->setFocus();
     myEditCurrentArgument = GroupPoints->LineEdit1;
-    globalSelection( GEOM_POINT );
+    globalSelection(); // close local contexts, if any
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
     SelectionIntoArgument();
   }
 }
@@ -274,8 +315,8 @@ void PrimitiveGUI_SphereDlg::SetEditCurrentArgument()
 void PrimitiveGUI_SphereDlg::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() ) );
   
   ConstructorsClicked( getConstructorId() );
 }
@@ -364,17 +405,6 @@ bool PrimitiveGUI_SphereDlg::execute( ObjectList& objects )
   return res;
 }
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void PrimitiveGUI_SphereDlg::closeEvent( QCloseEvent* e )
-{
-  //myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
-
 
 //=================================================================================
 // function : getRadius()
@@ -389,3 +419,21 @@ double PrimitiveGUI_SphereDlg::getRadius() const
     return GroupDimensions->SpinBox_DX->value();
   return 0;
 }
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void PrimitiveGUI_SphereDlg::addSubshapesToStudy()
+{
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+  switch ( getConstructorId() ) {
+  case 0:
+    objMap[GroupPoints->LineEdit1->text()] = myPoint;
+    break;
+  case 1:
+    return;
+  }
+  addSubshapesToFather( objMap );
+}
index fd1aa2ae813f7658f4cbf950b5b0aafd01e209e2..9bcbaad3bfa27ce9be93bb25c11e436ed39dc371 100644 (file)
@@ -48,8 +48,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index 0cc9120847f38c9f7e73df9d4428ead43fb3a949..06fe551b51c5673178509b30698b699614143388 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -47,9 +54,10 @@ PrimitiveGUI_TorusDlg::PrimitiveGUI_TorusDlg( GeometryGUI* theGeometryGUI, QWidg
                                              bool modal, Qt::WindowFlags fl )
   : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl )
 {
-  QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_TORUS_PV" ) ) );
-  QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_TORUS_DXYZ" ) ) );
-  QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
+  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" ) ) );
 
   setWindowTitle( tr( "GEOM_TORUS_TITLE" ) );
 
@@ -80,7 +88,7 @@ PrimitiveGUI_TorusDlg::PrimitiveGUI_TorusDlg( GeometryGUI* theGeometryGUI, QWidg
   layout->addWidget( GroupDimensions );
   /***************************************************************/
 
-  setHelpFileName( "turus.htm" );
+  setHelpFileName( "create_torus_page.html" );
   
   Init();
 }
@@ -114,10 +122,10 @@ void PrimitiveGUI_TorusDlg::Init()
   double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
 
   /* min, max, step and decimals for spin boxes & initial values */
-  initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, step, 3 );
-  initSpinBox( GroupPoints->SpinBox_DY, 0.001, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DX, 0.001, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DY, 0.001, COORD_MAX, step, 3 );
+  initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupPoints->SpinBox_DY, 0.001, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DX, 0.001, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DY, 0.001, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
 
   GroupPoints->SpinBox_DX->setValue( 300.0 );
   GroupPoints->SpinBox_DY->setValue( 100.0 );
@@ -147,8 +155,8 @@ void PrimitiveGUI_TorusDlg::Init()
   connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupDimensions->SpinBox_DX, SLOT( SetStep( double ) ) );
   connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupDimensions->SpinBox_DY, SLOT( SetStep( double ) ) );
   
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
-          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+  connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ),
+          this, SLOT( SelectionIntoArgument() ) );
   
   initName( tr( "GEOM_TORUS" ) );
 
@@ -162,12 +170,13 @@ void PrimitiveGUI_TorusDlg::Init()
 //=================================================================================
 void PrimitiveGUI_TorusDlg::ConstructorsClicked( int constructorId )
 {
-  disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
+  disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
   
   switch( constructorId ) {
   case 0 :
     {
-      globalSelection( GEOM_LINE );
+      globalSelection(); // close local contexts, if any
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
       
       GroupDimensions->hide();
       GroupPoints->show();
@@ -177,14 +186,16 @@ void PrimitiveGUI_TorusDlg::ConstructorsClicked( int constructorId )
       GroupPoints->LineEdit2->setText( "" );
       myPoint = myDir = GEOM::GEOM_Object::_nil();
       
-      connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+      connect( myGeomGUI->getApp()->selectionMgr(),
               SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+      SelectionIntoArgument();
       break;
     }
   case 1:
     {
       GroupPoints->hide();
       GroupDimensions->show();
+      globalSelection(); // close local contexts, if any
       
       break ;
     }
@@ -219,7 +230,7 @@ bool PrimitiveGUI_TorusDlg::ClickOnApply()
     return false;
 
   initName();
-  ConstructorsClicked( getConstructorId() );
+
   return true;
 }
 
@@ -250,12 +261,50 @@ void PrimitiveGUI_TorusDlg::SelectionIntoArgument()
   if ( !testResult || CORBA::is_nil( aSelectedObject ) )
     return;
   
+
+  QString 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 )
+      aNeedType = TopAbs_EDGE;
+
+    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.append( ":edge_" + QString::number( anIndex ) );
+      else
+        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 );
+      }
+      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 == GroupPoints->LineEdit1 )
     myPoint = aSelectedObject;
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
     myDir = aSelectedObject;
     
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
   displayPreview();
 }
 
@@ -267,14 +316,16 @@ void PrimitiveGUI_TorusDlg::SelectionIntoArgument()
 void PrimitiveGUI_TorusDlg::SetEditCurrentArgument()
 {
   QPushButton* send = (QPushButton*)sender();
+  globalSelection( GEOM_POINT ); // to break previous local selection
   
   if ( send == GroupPoints->PushButton1 ) {
     myEditCurrentArgument = GroupPoints->LineEdit1;
-    globalSelection( GEOM_POINT );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   }
   else if ( send == GroupPoints->PushButton2 ) {
     myEditCurrentArgument = GroupPoints->LineEdit2;
-    globalSelection( GEOM_LINE );
+    GEOM::GEOM_Object_var anObj;
+    localSelection( anObj, TopAbs_EDGE );
   }
   
   myEditCurrentArgument->setFocus();
@@ -304,7 +355,7 @@ void PrimitiveGUI_TorusDlg::LineEditReturnPressed()
 void PrimitiveGUI_TorusDlg::ActivateThisDialog()
 {
   GEOMBase_Skeleton::ActivateThisDialog();
-  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+  connect( myGeomGUI->getApp()->selectionMgr(),
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
  
   ConstructorsClicked( getConstructorId() );
@@ -322,16 +373,6 @@ void PrimitiveGUI_TorusDlg::enterEvent( QEvent* )
 }
 
 
-//=================================================================================
-// function : DeactivateActiveDialog()
-// purpose  : public slot to deactivate if active
-//=================================================================================
-void PrimitiveGUI_TorusDlg::DeactivateActiveDialog()
-{
-  GEOMBase_Skeleton::DeactivateActiveDialog();
-}
-
-
 //=================================================================================
 // function : ValueChangedInSpinBox
 // purpose  :
@@ -392,16 +433,6 @@ bool PrimitiveGUI_TorusDlg::execute( ObjectList& objects )
 }
 
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void PrimitiveGUI_TorusDlg::closeEvent( QCloseEvent* e )
-{
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
-
 //=================================================================================
 // function : getRadius1()
 // purpose  :
@@ -430,3 +461,22 @@ double PrimitiveGUI_TorusDlg::getRadius2() const
     return GroupDimensions->SpinBox_DY->value();
   return 0;
 }
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void PrimitiveGUI_TorusDlg::addSubshapesToStudy()
+{
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+  switch ( getConstructorId() ) {
+  case 0:
+    objMap[GroupPoints->LineEdit1->text()] = myPoint;
+    objMap[GroupPoints->LineEdit2->text()] = myDir;
+    break;
+  case 1:
+    return;
+  }
+  addSubshapesToFather( objMap );
+}
index e9e6c7a1f0bc065518ef1d1722ae8e9dc07846ea..ce47b29e2ce21468ba295ef3f6ba916346848ad7 100644 (file)
@@ -48,8 +48,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
@@ -66,7 +65,6 @@ private slots:
   void                               ClickOnOk();
   bool                               ClickOnApply();
   void                               ActivateThisDialog();
-  void                               DeactivateActiveDialog();
   void                               LineEditReturnPressed();
   void                               SelectionIntoArgument();
   void                               SetEditCurrentArgument();
index 7e3ed836c32207b844067201114aa32cbb099126..6e9c46474c8b8cc74b9ebd9760c5ff22087b8744 100644 (file)
@@ -45,6 +45,7 @@ dist_libRepairGUI_la_SOURCES =                        \
        RepairGUI_FreeFacesDlg.h                \
        RepairGUI_ChangeOrientationDlg.h        \
        RepairGUI_GlueDlg.h                     \
+       RepairGUI_RemoveExtraEdgesDlg.h         \
                                                \
        RepairGUI.cxx                           \
        RepairGUI_SewingDlg.cxx                 \
@@ -57,7 +58,8 @@ dist_libRepairGUI_la_SOURCES =                        \
        RepairGUI_FreeBoundDlg.cxx              \
        RepairGUI_FreeFacesDlg.cxx              \
        RepairGUI_ChangeOrientationDlg.cxx      \
-       RepairGUI_GlueDlg.cxx
+       RepairGUI_GlueDlg.cxx                   \
+       RepairGUI_RemoveExtraEdgesDlg.cxx
 
 MOC_FILES = \
        RepairGUI_SewingDlg_moc.cxx             \
@@ -70,7 +72,8 @@ MOC_FILES = \
        RepairGUI_FreeBoundDlg_moc.cxx          \
        RepairGUI_FreeFacesDlg_moc.cxx          \
        RepairGUI_ChangeOrientationDlg_moc.cxx  \
-       RepairGUI_GlueDlg_moc.cxx     
+       RepairGUI_GlueDlg_moc.cxx               \
+       RepairGUI_RemoveExtraEdgesDlg_moc.cxx
 
 nodist_libRepairGUI_la_SOURCES = \
        $(MOC_FILES)
index 30dccd4e6d5f8277fd226aee31433a1cdb879344..bb0d607e3c8b4aee56d1e04571f5dbbfad145986 100644 (file)
@@ -42,6 +42,7 @@
 #include "RepairGUI_FreeFacesDlg.h"     // Method FREE FACES
 #include "RepairGUI_GlueDlg.h"          // Method GLUE FACES
 #include "RepairGUI_ChangeOrientationDlg.h" // Method CHANGE ORIENTATION
+#include "RepairGUI_RemoveExtraEdgesDlg.h" // Method REMOVE EXTRA EDGES
 
 //=======================================================================
 // function : RepairGUI()
@@ -85,6 +86,7 @@ bool RepairGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
     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 ) );
       break;
index 0d454e2c0b6a35495ffc2a0310aa7b51b63923d1..2f2f4e2a2b910e63f9da8ad84ef3837cd8c7487e 100644 (file)
@@ -75,7 +75,7 @@ RepairGUI_ChangeOrientationDlg::RepairGUI_ChangeOrientationDlg( GeometryGUI* the
   layout->setMargin( 0 ); layout->setSpacing( 6 );
   layout->addWidget( GroupPoints );
 
-  setHelpFileName( "change_orientation.htm" );
+  setHelpFileName( "change_orientation_operation_page.html" );
 
   Init();
 }
@@ -235,17 +235,6 @@ void RepairGUI_ChangeOrientationDlg::enterEvent( QEvent* )
 }
 
 
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void RepairGUI_ChangeOrientationDlg::closeEvent( QCloseEvent* e )
-{
-  //myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
-
 //=================================================================================
 // function : createOperation
 // purpose  :
index 768ca617d578b829c9a25fc6cc02bcd5c524d605..0187d6c235f008cb81b3c941915ba5186ec8c8c8 100644 (file)
@@ -51,7 +51,6 @@ protected:
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
-  void                               closeEvent( QCloseEvent* );
   
 private:
   GEOM::GEOM_Object_var              myObject;
index 739e8827271a6c6374f171ba7c5ac5b37b4592da..d24f6f31b47d0c671998a091e4abdff385e9545b 100644 (file)
@@ -93,7 +93,7 @@ RepairGUI_CloseContourDlg::RepairGUI_CloseContourDlg( GeometryGUI* theGeometryGU
 
   /***************************************************************/
 
-  setHelpFileName( "close_contour.htm" );
+  setHelpFileName( "close_contour_operation_page.html" );
 
   Init();
 }
@@ -282,16 +282,6 @@ void RepairGUI_CloseContourDlg::enterEvent( QEvent* )
 }
 
 
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void RepairGUI_CloseContourDlg::closeEvent( QCloseEvent* e )
-{
-  //myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 //=================================================================================
 // function : createOperation
 // purpose  :
index 635423987b1b871aa5a001bff632485f0e2c24d3..b68866e58bc5dbe716641a74b65b665c5151a0b0 100644 (file)
@@ -52,7 +52,6 @@ protected:
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
-  void                               closeEvent( QCloseEvent* );
   void                               initSelection();
   
   bool                               getIsByVertex() const;
index 0d563cc0220657e2317228f2881d933ef2d3fc2f..18e906e82a491aa5027a8eee90574e3bf8fa7b78 100644 (file)
@@ -95,7 +95,7 @@ RepairGUI_DivideEdgeDlg::RepairGUI_DivideEdgeDlg( GeometryGUI* theGeometryGUI, Q
 
   /***************************************************************/
 
-  setHelpFileName( "add_point_on_edge.htm" );
+  setHelpFileName( "add_point_on_edge_operation_page.html" );
 
   Init();
 }
@@ -275,16 +275,6 @@ void RepairGUI_DivideEdgeDlg::enterEvent( QEvent* )
     ActivateThisDialog();
 }
 
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void RepairGUI_DivideEdgeDlg::closeEvent( QCloseEvent* e )
-{
-  //myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 
 //=================================================================================
 // function : createOperation
index d1ee53d437ebe4271d9ae82c98ecc5d54c5d6c1c..ad5a1648c689a42db78fa21053e970d3137ef887 100644 (file)
@@ -53,7 +53,6 @@ protected:
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
-  void                               closeEvent( QCloseEvent* );
   void                               initSelection();
   
   bool                               getIsByParameter() const;
index b56382fc5a58a7c66ca9c1fb6744e0a975eaa138..6f26180e5dd509c2935313d505b4da33e68748d2 100644 (file)
@@ -109,8 +109,8 @@ RepairGUI_FreeBoundDlg::RepairGUI_FreeBoundDlg( GeometryGUI* theGUI, QWidget* th
   aLay->setMargin( MARGIN );
   aLay->addWidget( aMainGrp );
   aLay->addWidget( aFrame );
-  
-  myHelpFileName = "check_free_boundaries.htm";
+
+  myHelpFileName = "using_measurement_tools_page.html#boundaries_anchor";
 
   connect( aCloseBtn, SIGNAL( clicked() ), SLOT( onClose() ) );
   connect( aHelpBtn,  SIGNAL( clicked() ), SLOT( onHelp() ) );
index c4f81bd1e9642c18916a3311cdda3f59756bb1c5..89afe958095c6e805187482b2711a94f9aa1ce02 100644 (file)
@@ -118,8 +118,8 @@ RepairGUI_FreeFacesDlg::RepairGUI_FreeFacesDlg( GeometryGUI* GUI, QWidget* paren
   aLay->addWidget( aMainGrp );
   aLay->addStretch();
   aLay->addWidget( aFrame );
-  
-  myHelpFileName = "check_free_faces.htm";
+
+  myHelpFileName = "using_measurement_tools_page.html#faces_anchor";
 
   connect( aCloseBtn, SIGNAL( clicked() ), SLOT( onClose() ) );
   connect( aHelpBtn,  SIGNAL( clicked() ), SLOT( onHelp() ) );
index da25d00a1c6574a9ed6a15a28ac9b81f63735ee9..5b1feaced16a9909f614dd13adfe07fce7e453ed 100644 (file)
@@ -120,7 +120,7 @@ RepairGUI_GlueDlg::RepairGUI_GlueDlg( GeometryGUI* theGeometryGUI, QWidget* pare
 
   /***************************************************************/
 
-  setHelpFileName( "glue_faces.htm" );
+  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() 
@@ -358,16 +358,6 @@ void RepairGUI_GlueDlg::enterEvent( QEvent* )
     ActivateThisDialog();
 }
 
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void RepairGUI_GlueDlg::closeEvent( QCloseEvent* e )
-{
-  //myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 
 //=================================================================================
 // function : createOperation
@@ -397,63 +387,65 @@ bool RepairGUI_GlueDlg::execute( ObjectList& objects )
   objects.clear();
 
   switch ( getConstructorId() ) {
-  case 0 :
+  case 0:
     {
       GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow
-        ( getOperation() )->MakeGlueFaces( myObject, myTolEdt2->value() );
+        ( getOperation() )->MakeGlueFaces( myObject, myTolEdt2->value(), true );
       aResult = !anObj->_is_nil();
       if ( aResult )
-       objects.push_back( anObj._retn() );
+        objects.push_back( anObj._retn() );
       break;
     }
-  case 1 :
-    if ( IsPreview() ) {
-      // if this method is used for displaying preview then we must detect glue faces only
+  case 1:
+    {
+      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 )
+          objects.push_back( GEOM::GEOM_Object::_duplicate( *anIter ) );
+        return myTmpObjs.size() ? true : false;
+      } // IsPreview
+
+      // Make glue face by list.
+      // Iterate through myTmpObjs and verifies where each object is currently selected or not.
+      QMap<QString, char> selected;
+
+      // Get names of selected objects
+      SALOME_ListIteratorOfListIO it ( selectedIO() );
+      for ( ; it.More(); it.Next() ) 
+        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)
-       objects.push_back( GEOM::GEOM_Object::_duplicate( *anIter ) );
-      return myTmpObjs.size() ? true : false;
-    } // IsPreview
-    
-    // Make glue face by list.
-    // Iterate through myTmpObjs and verifies where each object is currently selected or not.
-    QMap<QString, char> selected;
-    
-    // Get names of selected objects
-    SALOME_ListIteratorOfListIO it ( selectedIO() );
-    for ( ; it.More(); it.Next() ) 
-      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 ) {
-      if ( selected.contains( myGeomGUI->getApp()->orb()->object_to_string(*anIter) ) )
-       toGlue.push_back(*anIter);
-    }
-          
-    // make glue faces
-    GEOM::ListOfGO_var aListForGlue = new GEOM::ListOfGO();
-    aListForGlue->length( toGlue.size() );
-    ObjectList::iterator anIter3 = toGlue.begin();
-    for ( int i = 0; anIter3 != toGlue.end(); ++anIter3, ++i )
-      aListForGlue[ i ] = *anIter3;
-    GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow
-      ( getOperation() )->MakeGlueFacesByList( myObject, myTolEdt2->value(), aListForGlue );
-        
-    aResult = !anObj->_is_nil();
-    
-    if ( aResult )
-      objects.push_back( anObj._retn() );
-    
-    // Remove from engine useless objects        
-    clearTemporary();
-    
-    updateButtonState();
-    
-    break;
-  } // case
+      for ( anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter ) {
+        if ( selected.contains( myGeomGUI->getApp()->orb()->object_to_string(*anIter) ) )
+          toGlue.push_back( *anIter );
+      }
+      
+      // make glue faces
+      GEOM::ListOfGO_var aListForGlue = new GEOM::ListOfGO();
+      aListForGlue->length( toGlue.size() );
+      ObjectList::iterator anIter3 = toGlue.begin();
+      for ( int i = 0; anIter3 != toGlue.end(); ++anIter3, ++i )
+        aListForGlue[ i ] = *anIter3;
+      GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow
+        ( getOperation() )->MakeGlueFacesByList( myObject, myTolEdt2->value(), aListForGlue, true );
+
+      aResult = !anObj->_is_nil();
+
+      if ( aResult )
+        objects.push_back( anObj._retn() );
+
+      // Remove from engine useless objects
+      clearTemporary();
+
+      updateButtonState();
+
+      break;
+    } // case 1
+  } // switch
 
   return aResult;
 }
index 93b85d9d7a1e447029a465841f8bb160aa7653da..0333e9ca1b02b15a0aaa8bba6f0ab774c7808021 100644 (file)
@@ -54,7 +54,6 @@ protected:
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
-  void                               closeEvent( QCloseEvent* );
   void                               initSelection();
   
   void                               clearTemporary();
diff --git a/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.cxx b/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.cxx
new file mode 100644 (file)
index 0000000..a63feb0
--- /dev/null
@@ -0,0 +1,271 @@
+// GEOM GEOMGUI : GUI for Geometry component
+// 
+// This library is distributed in the hope that it will be useful, 
+// but WITHOUT ANY WARRANTY; without even the implied warranty of 
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// Lesser General Public License for more details. 
+// 
+// You should have received a copy of the GNU Lesser General Public 
+// License along with this library; if not, write to the Free Software 
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+//  File   : RepairGUI_RemoveExtraEdgesDlg.cxx
+//  Author : Michael Zorin, Open CASCADE S.A.S.
+//
+
+#include "RepairGUI_RemoveExtraEdgesDlg.h"
+
+#include <DlgRef.h>
+#include <GeometryGUI.h>
+#include <GEOMBase.h>
+
+#include <SalomeApp_Application.h>
+#include <LightApp_SelectionMgr.h>
+#include <SUIT_Session.h>
+#include <SUIT_ResourceMgr.h>
+
+#include <GEOMImpl_Types.hxx>
+
+#include <TColStd_MapOfInteger.hxx>
+
+//=================================================================================
+// class    : RepairGUI_RemoveExtraEdgesDlg()
+// purpose  : Constructs a RepairGUI_RemoveExtraEdgesDlg 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.
+//=================================================================================
+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" ) ) );
+    
+  setWindowTitle( tr( "GEOM_REMOVE_EXTRA_EDGES_TITLE" ) );
+
+  /***************************************************************/
+  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( centralWidget() );
+  GroupPoints->GroupBox1->setTitle( tr( "GEOM_REMOVE_EXTRA_EDGES" ) );
+  GroupPoints->TextLabel1->setText( tr( "GEOM_SELECTED_SHAPE" ) );
+  GroupPoints->PushButton1->setIcon( image1 );
+  GroupPoints->LineEdit1->setReadOnly( true );
+
+  QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
+  layout->setMargin( 0 ); layout->setSpacing( 6 );
+  layout->addWidget( GroupPoints );
+
+  /***************************************************************/
+  
+  setHelpFileName( "remove_extra_edges_operation_page.html" );
+
+  Init();
+}
+
+
+//=================================================================================
+// function : ~RepairGUI_RemoveExtraEdgesDlg()
+// purpose  : Destroys the object and frees any allocated resources
+//=================================================================================
+RepairGUI_RemoveExtraEdgesDlg::~RepairGUI_RemoveExtraEdgesDlg()
+{
+}
+
+
+//=================================================================================
+// function : Init()
+// purpose  :
+//=================================================================================
+void RepairGUI_RemoveExtraEdgesDlg::Init()
+{
+  /* init variables */
+  myEditCurrentArgument = GroupPoints->LineEdit1;
+  
+  myOkObject = false;
+
+  activateSelection();
+  
+  /* 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( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+
+  initName( tr( "REMOVE_EXTRA_EDGES_NEW_OBJ_NAME" ) );
+}
+
+
+//=================================================================================
+// function : ClickOnOk()
+// purpose  : Same than click on apply but close this dialog.
+//=================================================================================
+void RepairGUI_RemoveExtraEdgesDlg::ClickOnOk()
+{
+  if ( ClickOnApply() )
+    ClickOnCancel();
+}
+
+//=================================================================================
+// function : ClickOnApply()
+// purpose  :
+//=================================================================================
+bool RepairGUI_RemoveExtraEdgesDlg::ClickOnApply()
+{
+  if ( !onAccept() )
+    return false;
+
+  initName();
+
+  myEditCurrentArgument->setText( "" );
+  myObject = GEOM::GEOM_Object::_nil();
+  
+  activateSelection();
+
+  return true;
+}
+
+
+//=================================================================================
+// function : SelectionIntoArgument()
+// purpose  : Called when selection as changed or other case
+//          : used only by SelectButtonC1A1 (LineEditC1A1)
+//=================================================================================
+void RepairGUI_RemoveExtraEdgesDlg::SelectionIntoArgument()
+{
+  myEditCurrentArgument->setText( "" );
+  QString aName;
+  
+  if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
+    if ( IObjectCount() != 1 ) {
+      if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
+        myOkObject = false;
+      return;
+    }
+  }
+  
+  // nbSel == 1
+  Standard_Boolean testResult = Standard_False;
+  GEOM::GEOM_Object_ptr aSelectedObject =
+    GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+
+  if ( !testResult )
+    return;
+  
+  if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) {
+    myObject = aSelectedObject;
+    myOkObject = true;
+  }
+
+  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+}
+
+//=================================================================================
+// function : SetEditCurrentArgument()
+// purpose  :
+//=================================================================================
+void RepairGUI_RemoveExtraEdgesDlg::SetEditCurrentArgument()
+{
+  if( sender() == GroupPoints->PushButton1 ) {
+    GroupPoints->LineEdit1->setFocus();
+    myEditCurrentArgument = GroupPoints->LineEdit1;
+  }
+  SelectionIntoArgument();
+}
+
+
+//=================================================================================
+// function : LineEditReturnPressed()
+// purpose  :
+//=================================================================================
+void RepairGUI_RemoveExtraEdgesDlg::LineEditReturnPressed()
+{
+  if ( sender() == GroupPoints->LineEdit1 ) {
+    myEditCurrentArgument = GroupPoints->LineEdit1;
+    GEOMBase_Skeleton::LineEditReturnPressed();
+  }
+}
+
+
+//=================================================================================
+// function : ActivateThisDialog()
+// purpose  :
+//=================================================================================
+void RepairGUI_RemoveExtraEdgesDlg::ActivateThisDialog()
+{
+  GEOMBase_Skeleton::ActivateThisDialog();
+  connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
+          SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
+
+  activateSelection();
+}
+
+
+//=================================================================================
+// function : enterEvent()
+// purpose  : Mouse enter onto the dialog to activate it
+//=================================================================================
+void RepairGUI_RemoveExtraEdgesDlg::enterEvent(QEvent* e)
+{
+  if ( !mainFrame()->GroupConstructors->isEnabled() )
+    ActivateThisDialog();
+}
+
+
+//=================================================================================
+// function : activateSelection
+// purpose  : activate selection of solids and compounds
+//=================================================================================
+void RepairGUI_RemoveExtraEdgesDlg::activateSelection()
+{
+  TColStd_MapOfInteger aTypes;
+  aTypes.Add( GEOM_SOLID );
+  aTypes.Add( GEOM_COMPOUND );
+  globalSelection( aTypes );
+}
+
+//=================================================================================
+// function : createOperation
+// purpose  :
+//=================================================================================
+GEOM::GEOM_IOperations_ptr RepairGUI_RemoveExtraEdgesDlg::createOperation()
+{
+  return getGeomEngine()->GetIBlocksOperations( getStudyId() );
+}
+
+//=================================================================================
+// function : isValid
+// purpose  :
+//=================================================================================
+bool RepairGUI_RemoveExtraEdgesDlg::isValid( QString& msg )
+{
+  return myOkObject;
+}
+
+//=================================================================================
+// function : execute
+// purpose  :
+//=================================================================================
+bool RepairGUI_RemoveExtraEdgesDlg::execute( ObjectList& objects )
+{
+  GEOM::GEOM_Object_var anObj;
+  
+  anObj = GEOM::GEOM_IBlocksOperations::_narrow( getOperation() )->RemoveExtraEdges( myObject );
+  
+  if ( !anObj->_is_nil() )
+    objects.push_back( anObj._retn() );
+
+  return true;
+}
diff --git a/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.h b/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.h
new file mode 100644 (file)
index 0000000..927d2f0
--- /dev/null
@@ -0,0 +1,73 @@
+// 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   : RepairGUI_RemoveExtraEdgesDlg.h
+//  Author : Michael ZORIN, Open CASCADE S.A.S.
+//
+
+#ifndef REPAIRGUI_REMOVEEXTRAEDGESDLG_H
+#define REPAIRGUI_REMOVEEXTRAEDGESDLG_H
+
+#include <GEOMBase_Skeleton.h>
+
+class DlgRef_1Sel;
+
+//=================================================================================
+// class    : RepairGUI_RemoveExtraEdgesDlg
+// purpose  : Remove all seam and degenerated edges from a given shape.
+//=================================================================================
+class RepairGUI_RemoveExtraEdgesDlg : public GEOMBase_Skeleton
+{ 
+  Q_OBJECT
+
+public:
+  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& );    
+
+private:
+  void                               Init();
+  void                               enterEvent( QEvent* );
+  void                               activateSelection();
+
+private:
+  GEOM::GEOM_Object_var              myObject;
+  bool                               myOkObject;
+
+  DlgRef_1Sel*                       GroupPoints;
+
+private slots:
+  void                               ClickOnOk();
+  bool                               ClickOnApply();
+
+  void                               ActivateThisDialog();
+
+  void                               LineEditReturnPressed();
+  void                               SelectionIntoArgument();
+  void                               SetEditCurrentArgument();
+};
+
+#endif // REPAIRGUI_REMOVEEXTRAEDGESDLG_H
index 48473aa631a80ded2a8e1f176986d181bce4fc86..d803e744cc88283235fb6e8444f707f86b53fd2e 100644 (file)
@@ -87,7 +87,7 @@ RepairGUI_RemoveHolesDlg::RepairGUI_RemoveHolesDlg( GeometryGUI* theGeometryGUI,
 
   /***************************************************************/
 
-  setHelpFileName( "suppress_holes.htm" );
+  setHelpFileName( "suppress_holes_operation_page.html" );
 
   Init();
 }
@@ -277,16 +277,6 @@ void RepairGUI_RemoveHolesDlg::enterEvent( QEvent* )
 }
 
 
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void RepairGUI_RemoveHolesDlg::closeEvent( QCloseEvent* e )
-{
-  //myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 //=================================================================================
 // function : createOperation
 // purpose  :
index 5127d8171f3a5f2886a789edc0167921c58d4152..0d47f034fa4790c25f9686ff99455227e7e0025f 100644 (file)
@@ -52,7 +52,6 @@ protected:
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
-  void                               closeEvent( QCloseEvent* );
   void                               initSelection();
   
 private:
index cfbd4494b544599cb610ece8a4f447c7f6ceb9e2..3f866d513d529d7ff45db896c94469718b2836d2 100644 (file)
@@ -80,7 +80,7 @@ RepairGUI_RemoveIntWiresDlg::RepairGUI_RemoveIntWiresDlg( GeometryGUI* theGeomet
 
   /***************************************************************/
 
-  setHelpFileName( "suppress_internal_wires.htm" );
+  setHelpFileName( "suppress_internal_wires_operation_page.html" );
 
   Init();
 }
@@ -261,16 +261,6 @@ void RepairGUI_RemoveIntWiresDlg::enterEvent( QEvent* )
     ActivateThisDialog();
 }
 
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void RepairGUI_RemoveIntWiresDlg::closeEvent( QCloseEvent* e )
-{
-  //myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 //=================================================================================
 // function : createOperation
 // purpose  :
index 8d9ddefcfe7c5cf5f5820fe4a4b2ce58580711cd..032b94d44ec004c0db41860369266bdeee9edc4b 100644 (file)
@@ -51,7 +51,6 @@ protected:
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
-  void                               closeEvent( QCloseEvent* );
   void                               initSelection();
   
 private:
index 34bd691de8ca3f362b5fe6a3560dd3b8fe161834..4055f3df614ee740a13c746e171cdfb9481aa1af 100644 (file)
@@ -89,7 +89,7 @@ RepairGUI_SewingDlg::RepairGUI_SewingDlg( GeometryGUI* theGeometryGUI, QWidget*
   layout->addWidget( GroupPoints );
   /***************************************************************/
 
-  setHelpFileName( "sewing.htm" );
+  setHelpFileName( "sewing_operation_page.html" );
 
   Init();
 }
@@ -246,16 +246,6 @@ void RepairGUI_SewingDlg::enterEvent( QEvent* )
 }
 
 
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void RepairGUI_SewingDlg::closeEvent( QCloseEvent* e )
-{
-  //myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 //=================================================================================
 // function : createOperation
 // purpose  :
index 2b0f0a5671a3d7834caafac1bb204cf3da1f8fbf..4830d979ca71ea32b50a762ad2febdcbd40c9b61 100644 (file)
@@ -53,7 +53,6 @@ protected:
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
-  void                               closeEvent( QCloseEvent* );
   void                               initSelection();
 
 private:
index 4fbf55ea804bc4cc1e22831cb1927f4af8b0c01a..fed28dc93455fcf9678ac61509188648ef7de1be 100755 (executable)
@@ -55,7 +55,7 @@ RepairGUI_ShapeProcessDlg::RepairGUI_ShapeProcessDlg( GeometryGUI* theGeometryGU
                                                      bool modal )
   : GEOMBase_Skeleton( theGeometryGUI, parent, modal )
 {
-  setHelpFileName( "shape_processing.htm" );
+  setHelpFileName( "shape_processing_operation_page.html" );
   init();
 }
 
@@ -423,17 +423,6 @@ void RepairGUI_ShapeProcessDlg::enterEvent( QEvent* )
 }
 
 
-//=================================================================================
-// 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
index 55582f26e33266684b702ede71aa5422e80851d2..4cfd35302623c093f3db2ee9bba5b7413a55095d 100755 (executable)
@@ -55,8 +55,6 @@ protected:
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList&  );
   
-  virtual void                       closeEvent( QCloseEvent* );        
-
 private:
   void                               init();
   void                               reset();
index 3d53acd0d10b2ca524698f87de80464e5f183823..f3a239ddc8c2ca5559bc1a162dc128d80c09f74f 100644 (file)
@@ -77,7 +77,7 @@ RepairGUI_SuppressFacesDlg::RepairGUI_SuppressFacesDlg( GeometryGUI* theGeometry
   layout->addWidget( GroupPoints );
   /***************************************************************/
   
-  setHelpFileName( "suppress_faces.htm" );
+  setHelpFileName( "suppress_faces_operation_page.html" );
 
   Init();
 }
@@ -258,16 +258,6 @@ void RepairGUI_SuppressFacesDlg::enterEvent( QEvent* )
 }
 
 
-//=================================================================================
-// function : closeEvent()
-// purpose  :
-//=================================================================================
-void RepairGUI_SuppressFacesDlg::closeEvent( QCloseEvent* e )
-{
-  //myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 //=================================================================================
 // function : createOperation
 // purpose  :
index c80c4851b3288b0e51a1295964e3983aa40edb33..1de0bd0378d0164776c3e11e9062df1fd8e1cb1c 100644 (file)
@@ -54,7 +54,6 @@ protected:
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
-  void                               closeEvent( QCloseEvent* );
 
   void                               Convert( const TColStd_IndexedMapOfInteger&, 
                                              GEOM::short_array& );
index fb662e83c689b20a1974b8e590cd03a2b4d9b091..8fc57aa678f362c60fb2006a97e254757dc126d8 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -77,7 +84,7 @@ TransformationGUI_MirrorDlg::TransformationGUI_MirrorDlg( GeometryGUI* theGeomet
   layout->addWidget( GroupPoints );
   /***************************************************************/
 
-  setHelpFileName( "mirror_image.htm" );
+  setHelpFileName( "mirror_operation_page.html" );
   
   Init();
 }
@@ -217,10 +224,52 @@ void TransformationGUI_MirrorDlg::SelectionIntoArgument()
       return;
     }
     Standard_Boolean testResult = Standard_False;
-    myArgument = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    myArgument = aSelectedObject;
     if ( !testResult || CORBA::is_nil( myArgument ) )
       return;
-    aName = GEOMBase::GetName( myArgument );
+
+    aName = GEOMBase::GetName( aSelectedObject );
+    
+    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 = "";
+         }
+       }
+      }
+    }
   }
   myEditCurrentArgument->setText( aName );
    
@@ -250,19 +299,19 @@ void TransformationGUI_MirrorDlg::LineEditReturnPressed()
 void TransformationGUI_MirrorDlg::SetEditCurrentArgument()
 {
   QPushButton* send = (QPushButton*)sender();
+  globalSelection();
   
   if ( send == GroupPoints->PushButton1 ) {
     myEditCurrentArgument = GroupPoints->LineEdit1;
-    globalSelection();
   }
   else if ( send == GroupPoints->PushButton2 ) {
     myEditCurrentArgument = GroupPoints->LineEdit2;
     switch ( getConstructorId() ) {
     case 0:
-      globalSelection( GEOM_POINT );
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
       break;
     case 1:
-      globalSelection( GEOM_LINE );
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
       break;
     case 2:
       globalSelection( GEOM_PLANE );
@@ -394,20 +443,34 @@ bool  TransformationGUI_MirrorDlg::execute( ObjectList& objects )
 }
 
 //=================================================================================
-// function : closeEvent
+// function :  CreateCopyModeChanged()
 // purpose  :
 //=================================================================================
-void  TransformationGUI_MirrorDlg::closeEvent( QCloseEvent* e )
+void TransformationGUI_MirrorDlg::CreateCopyModeChanged( bool isCreateCopy )
 {
-  GEOMBase_Skeleton::closeEvent( e );
+  mainFrame()->GroupBoxName->setEnabled( isCreateCopy );
 }
 
-
 //=================================================================================
-// function :  CreateCopyModeChanged()
-// purpose  :
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
 //=================================================================================
-void TransformationGUI_MirrorDlg::CreateCopyModeChanged( bool isCreateCopy )
+void TransformationGUI_MirrorDlg::addSubshapesToStudy()
 {
-  mainFrame()->GroupBoxName->setEnabled( isCreateCopy );
+  bool toCreateCopy = IsPreview() || GroupPoints->CheckButton1->isChecked();
+  if ( toCreateCopy ) {
+    QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+    switch ( getConstructorId() ) {
+    case 0:
+      objMap[GroupPoints->LineEdit2->text()] = myArgument;
+      break;
+    case 1:
+      objMap[GroupPoints->LineEdit2->text()] = myArgument;
+      break;
+    case 2:
+      return;
+    }
+    addSubshapesToFather( objMap );
+  }
 }
index 251860a0638f8f46a7f5c120c2c04ec86c7df26c..25c00ce6aec0a6b6e37e36d7bf6265f69233eddb 100644 (file)
@@ -48,8 +48,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index 9480a6b09cc5615b3e2d6a57e93b4322250533e8..170023e41ee80e9cd9b0aeb48427fbdf1c0107f9 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -91,7 +98,7 @@ TransformationGUI_MultiRotationDlg::TransformationGUI_MultiRotationDlg
   layout->addWidget( GroupDimensions );
   /***************************************************************/
 
-  setHelpFileName( "multi_rotation.htm" );
+  setHelpFileName( "multi_rotation_operation_page.html" );
 
   Init();
 }
@@ -120,13 +127,13 @@ void TransformationGUI_MultiRotationDlg::Init()
   double SpecificStep1 = 5;
   double SpecificStep2 = 1;
   /* min, max, step and decimals for spin boxes & initial values */
-  initSpinBox( GroupPoints->SpinBox_DX, 1.0, MAX_NUMBER, SpecificStep2, 3 );
+  initSpinBox( GroupPoints->SpinBox_DX, 1.0, MAX_NUMBER, SpecificStep2, 10 );
   GroupPoints->SpinBox_DX->setValue( myNbTimes1 );
 
-  initSpinBox( GroupDimensions->SpinBox_DX1, COORD_MIN, COORD_MAX, SpecificStep1, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DY1, 1.0, MAX_NUMBER, SpecificStep2, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DX2, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DY2, 1.0, MAX_NUMBER, SpecificStep2, 3 );
+  initSpinBox( GroupDimensions->SpinBox_DX1, COORD_MIN, COORD_MAX, SpecificStep1, 10 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DY1, 1.0, MAX_NUMBER, SpecificStep2, 10 );
+  initSpinBox( GroupDimensions->SpinBox_DX2, COORD_MIN, COORD_MAX, step, 10 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DY2, 1.0, MAX_NUMBER, SpecificStep2, 10 );
   GroupDimensions->SpinBox_DX1->setValue( myAng );
   GroupDimensions->SpinBox_DY1->setValue( myNbTimes1 );
   GroupDimensions->SpinBox_DX2->setValue( myStep );
@@ -164,7 +171,7 @@ void TransformationGUI_MultiRotationDlg::Init()
 
   connect( GroupDimensions->CheckButton1, SIGNAL( toggled( bool ) ), this, SLOT( ReverseAngle() ) );
   
-  connect( myGeomGUI->getApp()->selectionMgr(), 
+  connect( myGeomGUI->getApp()->selectionMgr(),
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
   initName( tr( "GEOM_MULTIROTATION" ) );
@@ -282,14 +289,47 @@ void TransformationGUI_MultiRotationDlg::SelectionIntoArgument()
   if ( !testResult || CORBA::is_nil( aSelectedObject) || !GEOMBase::IsShape( aSelectedObject ) )
     return;
 
+  QString aName = GEOMBase::GetName( aSelectedObject );
+
   if ( myEditCurrentArgument == GroupPoints->LineEdit1 ||
        myEditCurrentArgument == GroupDimensions->LineEdit1 )
     myBase = aSelectedObject;
   else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ||
-            myEditCurrentArgument == GroupDimensions->LineEdit2 )
-    myVector = aSelectedObject;
-
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+            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;
+       }
+      }
+    }
+  }
+  myEditCurrentArgument->setText( aName );
 
   displayPreview();
 }
@@ -302,22 +342,21 @@ void TransformationGUI_MultiRotationDlg::SelectionIntoArgument()
 void TransformationGUI_MultiRotationDlg::SetEditCurrentArgument()
 {
   QPushButton* send = (QPushButton*)sender();
+  globalSelection( GEOM_ALLSHAPES );
   
   if ( send == GroupPoints->PushButton1 ) {
     myEditCurrentArgument = GroupPoints->LineEdit1;
-    globalSelection( GEOM_ALLSHAPES );
   }
   else if ( send == GroupPoints->PushButton2 ) {
     myEditCurrentArgument = GroupPoints->LineEdit2;
-    globalSelection( GEOM_LINE  );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   else if ( send == GroupDimensions->PushButton1 ) {
     myEditCurrentArgument = GroupDimensions->LineEdit1;
-    globalSelection( GEOM_ALLSHAPES );
   }
   else if ( send == GroupDimensions->PushButton2 ) {
     myEditCurrentArgument = GroupDimensions->LineEdit2;
-    globalSelection( GEOM_LINE  );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
 
   myEditCurrentArgument->setFocus();
@@ -457,13 +496,21 @@ bool TransformationGUI_MultiRotationDlg::execute( ObjectList& objects )
   return res;
 }
 
-
 //=================================================================================
-// function : closeEvent
-// purpose  :
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
 //=================================================================================
-void TransformationGUI_MultiRotationDlg::closeEvent( QCloseEvent* e )
+void TransformationGUI_MultiRotationDlg::addSubshapesToStudy()
 {
-  // myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
+  QMap<QString, GEOM::GEOM_Object_var> objMap;
+  
+  switch ( getConstructorId() ) {
+  case 0:
+    objMap[GroupPoints->LineEdit2->text()] = myVector;
+    break;
+  case 1:
+    objMap[GroupDimensions->LineEdit2->text()] = myVector;
+    break;
+  }
+  addSubshapesToFather( objMap );
 }
index 8f6f4f0b9ff368f528ba08190a7aabf69743912b..fd7926e846aea34c2136aa7c8d22d2b3d756f3ba 100644 (file)
@@ -49,8 +49,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index cbbfb05f12d6457b08a9f69db3bc12db6db8f96e..b46c582fbddb968c631f92eebc532f1647d9b70b 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -97,7 +104,7 @@ TransformationGUI_MultiTranslationDlg::TransformationGUI_MultiTranslationDlg
   layout->addWidget( GroupDimensions );
   /***************************************************************/
 
-  setHelpFileName( "multi_translation.htm" );
+  setHelpFileName( "multi_translation_operation_page.html" );
 
   Init();
 }
@@ -125,15 +132,15 @@ void TransformationGUI_MultiTranslationDlg::Init()
   
   double SpecificStep = 1;
   /* min, max, step and decimals for spin boxes & initial values */
-  initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupPoints->SpinBox_DY, 1.0, MAX_NUMBER, SpecificStep, 3 );
+  initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, step, 10 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupPoints->SpinBox_DY, 1.0, MAX_NUMBER, SpecificStep, 10 );
   GroupPoints->SpinBox_DX->setValue( myStepU );
   GroupPoints->SpinBox_DY->setValue( myNbTimesU );
 
-  initSpinBox( GroupDimensions->SpinBox_DX1, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DY1, 1.0, MAX_NUMBER, SpecificStep, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DX2, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupDimensions->SpinBox_DY2, 1.0, MAX_NUMBER, SpecificStep, 3 );
+  initSpinBox( GroupDimensions->SpinBox_DX1, COORD_MIN, COORD_MAX, step, 10 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DY1, 1.0, MAX_NUMBER, SpecificStep, 10 );
+  initSpinBox( GroupDimensions->SpinBox_DX2, COORD_MIN, COORD_MAX, step, 10 ); // VSR: TODO: DBL_DIGITS_DISPLAY
+  initSpinBox( GroupDimensions->SpinBox_DY2, 1.0, MAX_NUMBER, SpecificStep, 10 );
   GroupDimensions->SpinBox_DX1->setValue( myStepU );
   GroupDimensions->SpinBox_DY1->setValue( myNbTimesU );
   GroupDimensions->SpinBox_DX2->setValue( myStepV );
@@ -177,9 +184,8 @@ void TransformationGUI_MultiTranslationDlg::Init()
   connect( GroupDimensions->CheckButton1, SIGNAL( toggled( bool ) ), this, SLOT( ReverseStepU() ) );
   connect( GroupDimensions->CheckButton2, SIGNAL( toggled( bool ) ), this, SLOT( ReverseStepV() ) );
   
-  connect( myGeomGUI->getApp()->selectionMgr(), 
+  connect( myGeomGUI->getApp()->selectionMgr(),
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
-
   
   initName( tr( "GEOM_MULTITRANSLATION" ) );
 
@@ -299,16 +305,58 @@ void TransformationGUI_MultiTranslationDlg::SelectionIntoArgument()
   if ( !testResult || CORBA::is_nil( aSelectedObject ) || !GEOMBase::IsShape( aSelectedObject ) )
     return;
 
-  if ( myEditCurrentArgument == GroupPoints->LineEdit1 || 
+  QString aName = GEOMBase::GetName( aSelectedObject );
+
+  if ( myEditCurrentArgument == GroupPoints->LineEdit1 ||
        myEditCurrentArgument == GroupDimensions->LineEdit1 )
-    myBase = aSelectedObject;        
-  else if ( myEditCurrentArgument == GroupPoints->LineEdit2 || 
-           myEditCurrentArgument == GroupDimensions->LineEdit2 )
-    myVectorU = aSelectedObject;
-  else if ( myEditCurrentArgument == GroupDimensions->LineEdit3 ) 
-    myVectorV = aSelectedObject;
-
-  myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
+    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 );
+         
+         //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 );
   
   displayPreview();    
 }
@@ -321,27 +369,25 @@ void TransformationGUI_MultiTranslationDlg::SelectionIntoArgument()
 void TransformationGUI_MultiTranslationDlg::SetEditCurrentArgument()
 {
   QPushButton* send = (QPushButton*)sender();
+  globalSelection( GEOM_ALLSHAPES );
 
   if ( send == GroupPoints->PushButton1 ) {
     myEditCurrentArgument = GroupPoints->LineEdit1;
-    globalSelection( GEOM_ALLSHAPES );
   }
   else if ( send == GroupPoints->PushButton2 ) {
     myEditCurrentArgument = GroupPoints->LineEdit2;
-    globalSelection( GEOM_LINE  );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   else if ( send == GroupDimensions->PushButton1 ) {
     myEditCurrentArgument = GroupDimensions->LineEdit1;
-    globalSelection( GEOM_ALLSHAPES );
   }
   else if ( send == GroupDimensions->PushButton2 ) {
     myEditCurrentArgument = GroupDimensions->LineEdit2;
-    globalSelection( GEOM_LINE  );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   else if ( send == GroupDimensions->PushButton3 ) {
     myEditCurrentArgument = GroupDimensions->LineEdit3;
-    globalSelection( GEOM_LINE  );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   
   myEditCurrentArgument->setFocus();
@@ -514,11 +560,21 @@ bool TransformationGUI_MultiTranslationDlg::execute( ObjectList& objects )
 
 
 //=================================================================================
-// function : closeEvent
-// purpose  :
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
 //=================================================================================
-void TransformationGUI_MultiTranslationDlg::closeEvent( QCloseEvent* e )
+void TransformationGUI_MultiTranslationDlg::addSubshapesToStudy()
 {
-  // myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
+  QMap<QString, GEOM::GEOM_Object_var> 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 );
 }
index 02bde0328917c58059b6457f868d26e4e75349ba..469a8940ab7d517aaddbeb5c9d943cf2c9dda710 100644 (file)
@@ -49,8 +49,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index 1672774334fb1259803be4d7a65245a69d95f26d..df76011a403776942abddc17e8de5e73a6f4dcb4 100644 (file)
@@ -75,7 +75,7 @@ TransformationGUI_OffsetDlg::TransformationGUI_OffsetDlg( GeometryGUI* theGeomet
   
   /***************************************************************/
 
-  setHelpFileName( "offset_surface.htm" );  
+  setHelpFileName( "offset_operation_page.html" );
   
   Init();
 }
@@ -105,9 +105,7 @@ void TransformationGUI_OffsetDlg::Init()
   double step = 1;
    
   /* min, max, step and decimals for spin boxes & initial values */
-  initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
-  GroupPoints->SpinBox_DX->setDecimals( 5 );
-  //@ GroupPoints->SpinBox_DX->setDblPrecision(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
@@ -128,7 +126,6 @@ void TransformationGUI_OffsetDlg::Init()
   initName( tr( "GEOM_OFFSET" ) );
 
   globalSelection( GEOM_ALLSHAPES );
-  
 }
 
 
@@ -308,16 +305,6 @@ bool TransformationGUI_OffsetDlg::execute( ObjectList& objects )
   return res;
 }
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void TransformationGUI_OffsetDlg::closeEvent( QCloseEvent* e )
-{
-  // myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 
 //=================================================================================
 // function : GetOffset()
index 4bbd833dee9bf8a4d6f71678e274600937e67fe9..19d7120daa8464d4a3946919a86993dea73e2a47 100644 (file)
@@ -49,8 +49,6 @@ protected:
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
   
-  virtual void                       closeEvent( QCloseEvent* );
-
 private:
   void                               Init();
   void                               enterEvent( QEvent* );
index 880d8b523d4e7060292b9f4e6c596d914a7b46b5..7eb472e137c5bc6950486c1e86747975bee28fa7 100644 (file)
@@ -85,7 +85,7 @@ TransformationGUI_PositionDlg::TransformationGUI_PositionDlg
   
   /***************************************************************/
 
-  setHelpFileName( "modify_the_location.htm" );
+  setHelpFileName( "modify_location_operation_page.html" );
   
   Init();
 }
@@ -407,15 +407,6 @@ bool TransformationGUI_PositionDlg::execute( ObjectList& objects )
   return res;
 }
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void  TransformationGUI_PositionDlg::closeEvent( QCloseEvent* e )
-{
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
 
 //=================================================================================
 // function :  CreateCopyModeChanged()
index 058157b77d29c6a5f467c201c774a0de982bc5e4..6b817dc52f69240b70bb5034decfe3b8946397d6 100644 (file)
@@ -48,8 +48,6 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
 
 private:
   void                               Init();
index ad7188a371d57d548dba5aba905b41be4af9e33c..f6927542d41f8180fe53232570c8bcf69d6ae8bc 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -88,7 +95,7 @@ TransformationGUI_RotationDlg::TransformationGUI_RotationDlg
   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 );
+  initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, SpecificStep, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
   GroupPoints->SpinBox_DX->setValue( anAngle );
 
   // Activate Create a Copy mode
@@ -116,7 +123,7 @@ TransformationGUI_RotationDlg::TransformationGUI_RotationDlg
   connect( myGeomGUI->getApp()->selectionMgr(),
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
-  setHelpFileName( "rotation.htm" );
+  setHelpFileName( "rotation_operation_page.html" );
 
   Init();
 }
@@ -251,7 +258,44 @@ void TransformationGUI_RotationDlg::SelectionIntoArgument()
     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 )
@@ -260,8 +304,6 @@ void TransformationGUI_RotationDlg::SelectionIntoArgument()
       myPoint1 = aSelectedObject;
     else if ( myEditCurrentArgument == GroupPoints->LineEdit5 )
       myPoint2 = aSelectedObject;
-    
-    aName = GEOMBase::GetName( aSelectedObject );
   }
   myEditCurrentArgument->setText( aName );
   
@@ -276,23 +318,25 @@ void TransformationGUI_RotationDlg::SelectionIntoArgument()
 void TransformationGUI_RotationDlg::SetEditCurrentArgument()
 {
   QPushButton* send = (QPushButton*)sender();
+  globalSelection();
   
   if ( send == GroupPoints->PushButton1 ) {
     myEditCurrentArgument = GroupPoints->LineEdit1;
-    globalSelection();
   }
   else if ( send == GroupPoints->PushButton2 ) {
     myEditCurrentArgument = GroupPoints->LineEdit2;
-    getConstructorId() == 0 ? globalSelection( GEOM_LINE ) :
-                              globalSelection( GEOM_POINT  );
+    if ( getConstructorId() == 0 )
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
+    else
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   }
   else if ( send == GroupPoints->PushButton4 ) {
     myEditCurrentArgument = GroupPoints->LineEdit4;
-    globalSelection( GEOM_POINT );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   }
   else if ( send == GroupPoints->PushButton5 ) {
     myEditCurrentArgument = GroupPoints->LineEdit5;
-    globalSelection( GEOM_POINT );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   }
 
   myEditCurrentArgument->setFocus();
@@ -435,16 +479,6 @@ bool TransformationGUI_RotationDlg::execute( ObjectList& objects )
 }
 
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void TransformationGUI_RotationDlg::closeEvent( QCloseEvent* e )
-{
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
-
 //=================================================================================
 // function : GetAngle()
 // purpose  :
@@ -474,3 +508,26 @@ void TransformationGUI_RotationDlg::onReverse()
   double anOldValue = GroupPoints->SpinBox_DX->value();
   GroupPoints->SpinBox_DX->setValue( -anOldValue );
 }
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void TransformationGUI_RotationDlg::addSubshapesToStudy()
+{
+  bool toCreateCopy = IsPreview() || GroupPoints->CheckButton1->isChecked();
+  if ( toCreateCopy ) {
+    QMap<QString, GEOM::GEOM_Object_var> objMap;
+    switch ( getConstructorId() ) {
+    case 0:
+      objMap[GroupPoints->LineEdit2->text()] = myAxis;
+      break;
+    case 1:
+      objMap[GroupPoints->LineEdit2->text()] = myCentPoint;
+      objMap[GroupPoints->LineEdit4->text()] = myPoint1;
+      objMap[GroupPoints->LineEdit5->text()] = myPoint2;
+      break;
+    }
+    addSubshapesToFather( objMap );
+  }
+}
index 2509cd2b60f4a9b9ac79f1bf221e1027f51caf72..f9354c1af70e30e53b443d3d95d0ec48a2d97df6 100644 (file)
@@ -48,8 +48,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index ab5ad3d51f6e8aefe5c4e79484e5a8fd0a158b69..fe2d72bba7538c27878f03498be86b7bee0e00be 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -82,7 +88,7 @@ TransformationGUI_ScaleDlg::TransformationGUI_ScaleDlg( GeometryGUI* theGeometry
   double aFactor = 2.0;
   double SpecificStep = 0.5;
   /* min, max, step and decimals for spin boxes & initial values */
-  initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, SpecificStep, 3 );
+  initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, SpecificStep, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY
   GroupPoints->SpinBox_DX->setValue( aFactor );
   
   // Activate Create a Copy mode
@@ -108,7 +114,7 @@ TransformationGUI_ScaleDlg::TransformationGUI_ScaleDlg( GeometryGUI* theGeometry
   connect( myGeomGUI->getApp()->selectionMgr(), 
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
-  setHelpFileName( "scale_transform.htm" );
+  setHelpFileName( "scale_operation_page.html" );
 
   Init();
 }
@@ -189,10 +195,43 @@ void TransformationGUI_ScaleDlg::SelectionIntoArgument()
       return;
     }
     Standard_Boolean testResult = Standard_False;
-    myPoint = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult );
+    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 );
+       
+       //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 = "";
+       }
+      }
+    }
+    
+    myPoint = aSelectedObject;
+
     if ( !testResult || CORBA::is_nil( myPoint ) )
       return;
-    aName = GEOMBase::GetName( myPoint );
   }
   myEditCurrentArgument->setText( aName );
   
@@ -222,14 +261,14 @@ void TransformationGUI_ScaleDlg::LineEditReturnPressed()
 void TransformationGUI_ScaleDlg::SetEditCurrentArgument()
 {
   QPushButton* send = (QPushButton*)sender();
+  globalSelection();
   
   if ( send == GroupPoints->PushButton1 ) {
     myEditCurrentArgument = GroupPoints->LineEdit1;
-    globalSelection();
   }
   else if ( send == GroupPoints->PushButton2 ) {
     myEditCurrentArgument = GroupPoints->LineEdit2;
-    globalSelection( GEOM_POINT );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   }
   
   myEditCurrentArgument->setFocus();
@@ -318,16 +357,6 @@ bool TransformationGUI_ScaleDlg::execute( ObjectList& objects )
 }
 
 
-//=================================================================================
-// function : closeEvent
-// purpose  :
-//=================================================================================
-void  TransformationGUI_ScaleDlg::closeEvent( QCloseEvent* e )
-{
-  GEOMBase_Skeleton::closeEvent( e );
-}
-
-
 //=================================================================================
 // function : GetFactor()
 // purpose  :
@@ -346,3 +375,19 @@ void TransformationGUI_ScaleDlg::CreateCopyModeChanged( bool isCreateCopy )
 {
   mainFrame()->GroupBoxName->setEnabled(isCreateCopy);
 }
+
+//=================================================================================
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
+//=================================================================================
+void TransformationGUI_ScaleDlg::addSubshapesToStudy()
+{
+  bool toCreateCopy = IsPreview() || GroupPoints->CheckButton1->isChecked();
+  if ( toCreateCopy ) {
+    QMap<QString, GEOM::GEOM_Object_var> objMap;
+
+    objMap[GroupPoints->LineEdit2->text()] = myPoint;
+    
+    addSubshapesToFather( objMap );
+  }
+}
index 2e49ed7e90af66e7d1fbf4bdfd5ab882dc383e29..38aeec76c1e9d5ebdc9e6c67d81b3f9d3ee3296d 100644 (file)
@@ -50,8 +50,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
index cc4a084228ba82a75ec4ba58f274fbe88403b9c5..979cf2242ff60cd34ee4078d6de14bb3c3d049f2 100644 (file)
 #include <SalomeApp_Application.h>
 #include <LightApp_SelectionMgr.h>
 
+#include <TopoDS_Shape.hxx>
+#include <TopoDS_Edge.hxx>
+#include <TopoDS.hxx>
+#include <TopExp.hxx>
+#include <TColStd_IndexedMapOfInteger.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+
 #include <GEOMImpl_Types.hxx>
 
 //=================================================================================
@@ -79,7 +86,7 @@ TransformationGUI_TranslationDlg::TransformationGUI_TranslationDlg
   layout->addWidget( GroupPoints );
   /***************************************************************/
   
-  setHelpFileName( "translation.htm" );
+  setHelpFileName( "translation_operation_page.html" );
   
   Init();
 }
@@ -118,9 +125,9 @@ void TransformationGUI_TranslationDlg::Init()
   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 );
-  initSpinBox( GroupPoints->SpinBox2, COORD_MIN, COORD_MAX, step, 3 );
-  initSpinBox( GroupPoints->SpinBox3, COORD_MIN, COORD_MAX, step, 3 );
+  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 );
@@ -165,6 +172,7 @@ void TransformationGUI_TranslationDlg::Init()
 //=================================================================================
 void TransformationGUI_TranslationDlg::ConstructorsClicked( int constructorId )
 {
+  erasePreview();
   disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 );
   
   myEditCurrentArgument = GroupPoints->LineEdit1;
@@ -229,7 +237,7 @@ bool TransformationGUI_TranslationDlg::ClickOnApply()
     return false;
   
   initName();
-  ConstructorsClicked( getConstructorId() );
+
   return true;
 }
 
@@ -271,14 +279,49 @@ void TransformationGUI_TranslationDlg::SelectionIntoArgument()
     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 )
       myPoint1 = aSelectedObject;
     else if ( myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2 )
       myVector = aSelectedObject;
     else if ( myEditCurrentArgument == GroupPoints->LineEdit3 )
-      myPoint2 = aSelectedObject; 
-    
-    aName = GEOMBase::GetName( aSelectedObject );
+      myPoint2 = aSelectedObject;
   }
   
   myEditCurrentArgument->setText( aName );
@@ -308,19 +351,21 @@ void TransformationGUI_TranslationDlg::LineEditReturnPressed()
 void TransformationGUI_TranslationDlg::SetEditCurrentArgument()
 {    
   QPushButton* send = (QPushButton*)sender();
+  globalSelection();
   
   if ( send == GroupPoints->PushButton1 ) {
     myEditCurrentArgument = GroupPoints->LineEdit1;
-    globalSelection();
   }
   else if ( send == GroupPoints->PushButton2 ) {
     myEditCurrentArgument = GroupPoints->LineEdit2;
-    getConstructorId() == 1 ? globalSelection( GEOM_POINT ) :
-      globalSelection( GEOM_LINE  );
+    if ( getConstructorId() == 1 )
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
+    else 
+      localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
   }
   else if ( send == GroupPoints->PushButton3 ) {
     myEditCurrentArgument = GroupPoints->LineEdit3;
-    globalSelection( GEOM_POINT );
+    localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
   }
   
   myEditCurrentArgument->setFocus();
@@ -335,6 +380,7 @@ void TransformationGUI_TranslationDlg::SetEditCurrentArgument()
 void TransformationGUI_TranslationDlg::ActivateThisDialog()
 {
   GEOMBase_Skeleton::ActivateThisDialog();
+  
   connect( myGeomGUI->getApp()->selectionMgr(), 
           SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
 
@@ -369,7 +415,7 @@ void TransformationGUI_TranslationDlg::ValueChangedInSpinBox()
 //=================================================================================
 GEOM::GEOM_IOperations_ptr TransformationGUI_TranslationDlg::createOperation()
 {
-  return myGeomGUI->GetGeomGen()->GetITransformOperations( getStudyId() );
+  return getGeomEngine()->GetITransformOperations( getStudyId() );
 }
 
 
@@ -476,21 +522,35 @@ bool TransformationGUI_TranslationDlg::execute( ObjectList& objects )
 
 
 //=================================================================================
-// function : closeEvent
+// function :  CreateCopyModeChanged()
 // purpose  :
 //=================================================================================
-void  TransformationGUI_TranslationDlg::closeEvent( QCloseEvent* e )
+void TransformationGUI_TranslationDlg::CreateCopyModeChanged( bool isCreateCopy )
 {
-  // myGeomGUI->SetState( -1 );
-  GEOMBase_Skeleton::closeEvent( e );
+  mainFrame()->GroupBoxName->setEnabled( isCreateCopy );
 }
 
-
 //=================================================================================
-// function :  CreateCopyModeChanged()
-// purpose  :
+// function : addSubshapeToStudy
+// purpose  : virtual method to add new SubObjects if local selection
 //=================================================================================
-void TransformationGUI_TranslationDlg::CreateCopyModeChanged( bool isCreateCopy )
+void TransformationGUI_TranslationDlg::addSubshapesToStudy()
 {
-  mainFrame()->GroupBoxName->setEnabled( isCreateCopy );
+  bool toCreateCopy = IsPreview() || GroupPoints->CheckBox1->isChecked();
+  if ( toCreateCopy ) {
+    QMap<QString, GEOM::GEOM_Object_var> 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 );
+  }
 }
index 823437e2697b0366401894d51cf94e34d9312080..126f96795ac9c5f46c1c9b50541aecc0e31edd15 100644 (file)
@@ -48,8 +48,7 @@ protected:
   virtual GEOM::GEOM_IOperations_ptr createOperation();
   virtual bool                       isValid( QString& );
   virtual bool                       execute( ObjectList& );
-  
-  virtual void                       closeEvent( QCloseEvent* );
+  virtual void                       addSubshapesToStudy();
 
 private:
   void                               Init();
@@ -68,8 +67,8 @@ private slots:
   void                               LineEditReturnPressed();
   void                               SelectionIntoArgument();
   void                               SetEditCurrentArgument();
-  void                               ValueChangedInSpinBox();
   void                               ConstructorsClicked( int );
+  void                               ValueChangedInSpinBox();
   void                               CreateCopyModeChanged( bool );
 };