]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Merge from V6_3_BR 15/07/2011
authorvsr <vsr@opencascade.com>
Fri, 15 Jul 2011 10:48:49 +0000 (10:48 +0000)
committervsr <vsr@opencascade.com>
Fri, 15 Jul 2011 10:48:49 +0000 (10:48 +0000)
29 files changed:
configure.ac
doc/salome/gui/GEOM/doxyfile_py.in
doc/salome/gui/GEOM/images/curve1.png
doc/salome/gui/GEOM/images/curve2.png
doc/salome/gui/GEOM/images/curve3.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/curve4.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/glue7.png [new file with mode: 0644]
doc/salome/gui/GEOM/images/glue8.png [new file with mode: 0644]
doc/salome/gui/GEOM/input/creating_curve.doc
doc/salome/gui/GEOM/input/creating_edge.doc
doc/salome/gui/GEOM/input/creating_explode.doc
doc/salome/gui/GEOM/input/creating_point.doc
doc/salome/gui/GEOM/input/glue_edges_operation.doc [new file with mode: 0644]
doc/salome/gui/GEOM/input/glue_faces_operation.doc
doc/salome/gui/GEOM/input/repairing_operations.doc
doc/salome/gui/GEOM/input/restore_presentation_parameters.doc
doc/salome/gui/GEOM/static/header_py.html.in [new file with mode: 0644]
src/EntityGUI/EntityGUI_SubShapeDlg.cxx
src/EntityGUI/EntityGUI_SubShapeDlg.h
src/GEOMAlgo/GEOMAlgo_Gluer2.cxx
src/GEOMAlgo/GEOMAlgo_Gluer2_3.cxx
src/GEOMBase/GEOM_GenericObjPtr.h
src/GEOMClient/GEOM_Client.cxx
src/GEOMClient/GEOM_Client.hxx
src/GEOMGUI/GEOM_msg_en.ts
src/GEOMImpl/GEOMImpl_ICurvesOperations.cxx
src/GEOMImpl/GEOMImpl_ShapeDriver.cxx
src/GroupGUI/GroupGUI_GroupDlg.cxx
src/GroupGUI/GroupGUI_GroupDlg.h

index a16f24ccf9768e5f420bf7206a65f1c4fa510964..af9313f9d757ab5ab05bffe9be8741f14a990eb0 100644 (file)
@@ -24,7 +24,7 @@
 # Modified by : Alexander BORODIN (OCN) - autotools usage
 # Created from configure.in.base
 #
-AC_INIT([Salome2 Project GEOM module], [6.3.0], [webmaster.salome@opencascade.com], [SalomeGEOM])
+AC_INIT([Salome2 Project GEOM module], [6.3.1], [webmaster.salome@opencascade.com], [SalomeGEOM])
 AC_CONFIG_AUX_DIR(adm_local/unix/config_files)
 AC_CANONICAL_HOST
 AC_CANONICAL_TARGET
@@ -416,6 +416,7 @@ AC_OUTPUT([ \
   doc/salome/gui/GEOM/doxyfile_py \
   doc/salome/gui/GEOM/doxyfile_tui \
   doc/salome/gui/GEOM/static/header.html \
+  doc/salome/gui/GEOM/static/header_py.html \
   doc/salome/tui/Makefile \
   doc/salome/tui/doxyfile \
   doc/salome/tui/static/header.html \
index 68f02fbde07ceb3b2f6e2956afdd11a85f266e1c..e54f1c3e6503cf6b04449ed43c6742e41f488ac4 100755 (executable)
@@ -110,7 +110,7 @@ RECURSIVE         = NO
 #---------------------------------------------------------------------------
 GENERATE_HTML     = YES
 HTML_OUTPUT       = geompy_doc
-HTML_HEADER       = @builddir@/static/header.html
+HTML_HEADER       = @builddir@/static/header_py.html
 HTML_FOOTER       = @srcdir@/static/footer.html
 HTML_STYLESHEET   = @srcdir@/static/doxygen.css
 TOC_EXPAND        = YES
index 3a271f221a531f6bff2e163ee542c01859410144..5b87ba81fd81d205e819037255e727ddc60168c0 100644 (file)
Binary files a/doc/salome/gui/GEOM/images/curve1.png and b/doc/salome/gui/GEOM/images/curve1.png differ
index 370df7128b5828bada59e48f93e959c7189bbe86..a9dd3f0f7076c9a1539173c6737946da0f153ea2 100644 (file)
Binary files a/doc/salome/gui/GEOM/images/curve2.png and b/doc/salome/gui/GEOM/images/curve2.png differ
diff --git a/doc/salome/gui/GEOM/images/curve3.png b/doc/salome/gui/GEOM/images/curve3.png
new file mode 100644 (file)
index 0000000..7d711c2
Binary files /dev/null and b/doc/salome/gui/GEOM/images/curve3.png differ
diff --git a/doc/salome/gui/GEOM/images/curve4.png b/doc/salome/gui/GEOM/images/curve4.png
new file mode 100644 (file)
index 0000000..cbb6092
Binary files /dev/null and b/doc/salome/gui/GEOM/images/curve4.png differ
diff --git a/doc/salome/gui/GEOM/images/glue7.png b/doc/salome/gui/GEOM/images/glue7.png
new file mode 100644 (file)
index 0000000..a365ca2
Binary files /dev/null and b/doc/salome/gui/GEOM/images/glue7.png differ
diff --git a/doc/salome/gui/GEOM/images/glue8.png b/doc/salome/gui/GEOM/images/glue8.png
new file mode 100644 (file)
index 0000000..20e3aec
Binary files /dev/null and b/doc/salome/gui/GEOM/images/glue8.png differ
index 3d9a1fcb8e111e9ac1008779986b7012e56b74d7..aa3019d69dc1b9f9954f22c65e8f9965715eafcd 100644 (file)
@@ -5,58 +5,93 @@
 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
+There are three <b>Curve Construction</b> menu choices corresponding to three
 possible types of curves: Polyline, Besier or B-spline (Interpolated).
+The curve is defined by a list of \b Points through which it passes.
+
+
+\n There are two ways to define these <b>Points</b>:
+<ul>
+<li> <b>By Selection</b> manual picking of the points in the Object Browser or 3D Viewer.
+<li> <b>Analytical</b> parametric definition of the points through
+python expressions.
+</ul>
+
 \n The \b Result of each operation will be a GEOM_Object (edge).
-\n There are two ways to define <b>Points</b>:
+
+<b>Polyline</b>
+
+\image html polyline.png
+
+Polyline or polygonal chain is a connected series of line segments. It
+can be defined by the following parameters:
+
+\image html curve2.png
+
 <ul>
-<li> <b>By Selection</b> choice of the points manually in the Object Browser or 3D Viewer.
-<li> <b>Analitical</b> parametric definition of the points through python expressions.
+<li><b>Points</b> at least 2 points which will serve as nodes on the curve.</li>
+<li><b>Build a closed wire</b> checkbox allows creating the curve as
+closed wire.</li>
 </ul>
 
-\n <b>TUI Commands:</b>
+\n <b>TUI Command:</b> <em>geompy.MakePolyline(ListOfShapes,isClosed)</em>
+
+<b>Bezier</b>
+
+\image html bezier.png
+
+Bezier curve is a curve completely contained in a convex hull of its
+control points. It can be defined by the following parameters:
+
+
+\image html curve3.png
+
 <ul>
-<li><em>geompy.MakePolyline(ListOfShapes,isClosed)</em></li>
-<li><em>geompy.MakeBezier(ListOfShapes,isClosed)</em></li>
-<li><em>geompy.MakeInterpol(ListOfShapes,isClosed,doReordering)</em></li>
-<li><em>geompy.MakeCurveParametric(XExpr, YExpt, ZExpt, tMin, tMax, tStep, curveType)</em></li>
+<li><b>Points</b> at least 2 points used to approximate the curve.</li>
+<li><b>Build a closed edge</b> checkbox allows creating the curve as
+closed edge.</li>
 </ul>
-ListOfShape is a list of points through which the curve passes.
-If isClosed is True, MakeBezier and MakeInterpol builds a closed edge,
-MakePolyline builds a closed wire. If doReordering is True,
-MakeInterpol does not follow the order of vertices but searches for the
-closest vertex.
-\n XExpr, YExpr, ZExpr python expressions for the X, Y and Z coordinates of the basic points of the curve.
-\n tMin, tMax minimum and maximun values of the parameter \b t.
-\n tStep step of the parameter \b t
-\n curveType type of the curve Polyline, Bezier or Interpolation.
-
-<b>Arguments:</b>
+
+\n <b>TUI Command:</b> <em>geompy.MakeBezier(ListOfShapes,isClosed)</em>
+
+<b>B-spline</b>
+
+\image html interpol.png
+
+B-spline is a union of curve segments defined at each node span. It
+can be defined by the following parameters:
+
+\image html curve4.png
+
 <ul>
-<li>Name + at least 2 points which will serve as nodes on the curve, or</li>
-<li>Name + 3 string + 3 values (python expressions for the X, Y and Z coordinates, minimum, 
-maximum and step values of the parameter)</li>
+<li><b>Points</b> at least 2 points which will serve as nodes on the curve.</li>
+<li><b>Build a closed edge</b> checkbox allows creating the curve as
+closed edge.</li>
+<li> If <b>Reorder vertices taking into account distances</b> is
+checked, the interpolation algorithm does not follow the order of
+vertices but searches for the closest vertex.</li>
 </ul>
 
+\n <b>TUI Command:</b>
+<em>geompy.MakeInterpol(ListOfShapes,isClosed,doReordering)</em>
 
-\n<b>Advanced options</b> \ref preview_anchor "Preview"
+<b>Analytical Definition</b>
 
-\image html curve.png
-\image html curve1.png
-\image html curve2.png
+The input parameters for analytical definition are common for all
+types of curves. 
 
-<b>Examples:</b>
+\image html curve1.png
 
-\image html polyline.png
-<center>Polyline</center>
+<ul>
+<li><b>X(t)equation, Y(t)equation, Z(t)equation</b> are python
+expressions for X, Y and Z coordinates of the basic points of the curve.</li>
+<li><b>Min t, Max t</b> are minimum and maximum values of the parameter \b t.</li>
+<li><b>Step</b> is the step of the parameter \b t.</li>
+</ul> 
 
-\image html bezier.png
-<center>Bezier</center>
+\n <b>TUI Command:</b> <em>geompy.MakeCurveParametric(XExpr, YExpt, ZExpt, tMin, tMax, tStep, curveType)</em>
 
-\image html interpol.png
-<center>B-Spline</center>
+\n<b>Advanced options</b> \ref preview_anchor "Preview"
 
 Our <b>TUI Scripts</b> provide you with useful examples of creation of 
 \ref tui_creation_curve "Basic Geometric Objects".
index ce4f7b8b0f5cd3cad4c32805959b7ff123ec72d2..f22f4c4955ffca60297f4a80a54400cb39e21881 100644 (file)
@@ -41,17 +41,21 @@ the connection points (sharp bend) is not processed.
 
 \image html edge2.png "Create edge from wire"
 
-The third case allows building edges of desired length on any existing
-curve (selected existing edge). <b>Start Point</b> parameter is optional.
-Any point can be selected for it, the new edge will begin at the end
-of initial edge, close to the selected point. <b>Length</b> can exceed
-the initial edge's length or be negative to extrapolate existing edge
-along its curve (except bezier and b-spline curves).
+Thirdly, it is possible to build an edge of required \b Length on any existing
+\b Edge. 
+
+<b>Start Point</b> parameter is optional:
+- if used, it allows selecting any existing point - in such a case the start point
+of the new edge will be chosen as start or end point of the selected \b Edge 
+whatever is closest to the selected <b>Start Point</b> 
+- if it is missed, the start point of the initial edge is used
+
+<b>Length</b> can exceed the length of the initial edge length or be
+negative. In this case the existing edge is extrapolated
+along its curve (except for bezier and b-spline curves).
 
 <b>TUI Command:</b> <em>geompy.MakeEdgeOnCurveByLength(Edge, Length, StartPoint = None)</em><br>
 <b>Arguments:</b> Name + 1 edge + Length + 1 Vertex
-(StartPoint parameter is optional, it allows switching from one end of
-initial edge to another. Length can exceed the initial edge's length or be negative).
 
 \image html edge3.png "Create edge on curve"
 
index dfda1d3849522a43686f2ad6d02658979d8276c8..fd90a038302237961905cc23c70c4d1aa371b1b1 100644 (file)
@@ -16,7 +16,7 @@ obtain from it.
 variety of ways:
 <ul>
 <li><em>geompy.ExtractShapes(Shape, Type, isSorted)</em> explodes a
-Shape on subshapes of a given Type and returns a List of sub-shapes.
+Shape into subshapes of a given Type and returns a List of sub-shapes.
 This method does not return the Shape itself if it matches the
 Type.</li>
 <li><em>geompy.SubShapeAll(Shape, Type)</em> explodes a Shape on
index 7b3e4cba971b267991d72c7ec2a6868016dda586..9844a3cff6892564c7c6416b6ff829df0ad8ff9a 100644 (file)
@@ -33,15 +33,17 @@ point is located in the middle of the edge.
 position of the point on the given edge.
 \image html point3.png
 
-Alternatively, it is possible to define the point by \b Edge and \b Length,
-the given length can exceed the length of the edge or be negative
-(except bezier and b-spline curves). The orientation of the edge can
-be reversed by the \b StartPoint selection.
-\n <b>TUI Command:</b> <em>geompy.MakeVertexOnCurveByLength(Edge,Length,StartPoint=None).</em>
-\n <b>Arguments:</b> Name + 1 edge  + 1 Length defining the position
-of the point on the given edge + 1 Point defining the direction for
-the calculation of the length (if not defined, the first vertex of
+Alternatively, it is possible to define a point by an \b Edge and a \b Length.
+The \b Length defines the position of the point on the given edge. It
+can exceed the length of the edge or be negative. In this case the edge
+is extrapolated along its curve (except for bezier and b-spline
+curves). 
+The <b>Start Point</b> defines the direction for the length
+calculation (if not defined, the first vertex of
 Edge is used, else the vertex of Edge closest to StartPoint is used).
+\n <b>TUI Command:</b> <em>geompy.MakeVertexOnCurveByLength(Edge,Length,StartPoint=None).</em>
+\n <b>Arguments:</b> Name + 1 edge  + 1 Length  + 1 Point.
+
 \image html point3_3.png
 
 It is also possible to define 3D coordinates of the point
diff --git a/doc/salome/gui/GEOM/input/glue_edges_operation.doc b/doc/salome/gui/GEOM/input/glue_edges_operation.doc
new file mode 100644 (file)
index 0000000..3f82fc5
--- /dev/null
@@ -0,0 +1,60 @@
+/*!
+
+\page glue_edges_operation_page Glue Edges
+
+\n To <b>Glue Edges</b> in the <b>Main Menu</b> select <b>Repair - > Glue Edges</b>.
+
+\n This operation glues edges that are coincident with respect to the
+given tolerance value.
+
+\n <b>Arguments:</b> Name + Compound of shapes + Tolerance value.
+\n <b>Advanced option:</b>
+   \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments".
+\n The \b Result will be a \b GEOM_Object.
+
+
+\image html glue4.png
+
+\n <b>TUI Command:</b>
+\n <em>geompy.MakeGlueEdges(theShape,theTolerance)</em>,
+\n where \em theShape is a compound of shapes to be glued, and \em 
+ theTolerance is a maximum distance between two faces/edges, which can
+ be considered as coincident. 
+
+\n It is also possible to manually select the edges that will be 
+glued - select the shape, specify the tolerance and press \b Detect button.
+
+\image html glue5.png
+
+\n \b Geometry module detects the edges where gluing can be
+performed and displays a notification.
+
+\image html glue7.png
+
+\n The edges that can be glued are colored in red. It is
+possible to select the edges for gluing in the 3D viewer.
+The selected edges will be marked in white.
+
+\n <b>TUI Command:</b>
+\n <em>geompy.GetGlueEdges(theShape,theTolerance)</em>,
+\n where \em theShape is a compound of shapes to be glued, \em
+ theTolerance is a maximum distance between two edges, which can
+ be considered as coincident. The \b Result will be a list of \b
+ GEOM_Objects, containing one sub shape per each detected set of
+ coincident sub shapes.
+
+\n <em>geompy.MakeGlueEdgesByList(theShape,theTolerance,theEdges)</em>,
+\n where \em theShape is a compound of shapes to be glued, \em
+ theTolerance is a maximum distance between two edges, which can
+ be considered as coincident, \em theEdges is a list of
+ subshapes to be glued. 
+
+\n <b>Example:</b>
+
+\image html glue8.png
+<center><em>Box with an edge that can be glued</em></center>
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+<b>Repairing Operations</b> \ref tui_glue_edges "Glue Edges".
+
+*/
index 435a303fa2000fe3632f3779de1464b8f3e52a98..5e887d1d9e9e06ad6d6037e2b676c0bbb1a2df40 100644 (file)
@@ -1,11 +1,11 @@
 /*!
 
-\page glue_faces_operation_page Glue Faces / Edges
+\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 To <b>Glue Edges</b> in the <b>Main Menu</b> select <b>Repair - > Glue Edges</b>.
 
-\n This operation glues faces/edges that are coincident with respect to the
+
+\n This operation glues faces that are coincident with respect to the
 given tolerance value.
 
 \n <b>Arguments:</b> Name + Compound of shapes + Tolerance value.
@@ -14,51 +14,46 @@ given tolerance value.
 \n The \b Result will be a \b GEOM_Object.
 
 \image html glue1.png
-\n \image html glue4.png
+
 
 \n <b>TUI Commands:</b>
- <em>geompy.MakeGlueFaces(theShape,theTolerance,doKeepNonSolids)</em> and
- <em>geompy.MakeGlueEdges(theShape,theTolerance)</em>,
- where \em theShape is a compound of shapes to be glued, \em
- theTolerance is a maximum distance between two faces/edges, which can
+\n <em>geompy.MakeGlueFaces(theShape,theTolerance,doKeepNonSolids)</em>,
+\n where \em theShape is a compound of shapes to be glued, \em
+ theTolerance is a maximum distance between two faces, which can
  be considered as coincident. The \em doKeepNonSolids flag allows to
  throw away non-solids from the result, if false. The \b Result will
  be a new \b GEOM_Object.
 
-\n It is also possible to manually select the faces/edges that will be 
+\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 \image html glue5.png
 
-\n \b Geometry module detects the faces/edges where gluing can be
+\n \b Geometry module detects the faces where gluing can be
 performed and displays a notification.
 
 \image html glue3.png
 
-\n The faces/edges that can be glued are colored in red. It is
-possible to select the faces/edges for gluing in the 3D viewer.
-The selected faces/edges will be marked in white.
+\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 For faces gluing their edges are also glued. By default, other
-edges are not glued (this concerns only Glue Faces, of course).
-To force all edges gluing, check the "Glue all coincident edges"
+\n When the faces are glued their edges are glued as well. By default, other
+edges are not glued. To force gluing of all edges, check <b>Glue all coincident edges</b>
 checkbox.
 
 \n <b>TUI Commands:</b>
- <em>geompy.GetGlueFaces(theShape,theTolerance)</em> and
- <em>geompy.GetGlueEdges(theShape,theTolerance)</em>,
- where \em theShape is a compound of shapes to be glued, \em
- theTolerance is a maximum distance between two faces/edges, which can
+\n <em>geompy.GetGlueFaces(theShape,theTolerance)</em>,
+\n where \em theShape is a compound of shapes to be glued, \em
+ theTolerance is a maximum distance between two faces, which can
  be considered as coincident. The \b Result will be a list of \b
  GEOM_Objects, containing one sub shape per each detected set of
  coincident sub shapes.
 
-\n <em>geompy.MakeGlueFacesByList(theShape,theTolerance,theFaces,doKeepNonSolids,doGlueAllEdges)</em>
- and <em>geompy.MakeGlueEdgesByList(theShape,theTolerance,theEdges)</em>,
- where \em theShape is a compound of shapes to be glued, \em
- theTolerance is a maximum distance between two faces/edges, which can
- be considered as coincident, \em theFaces/theEdges is a list of
+\n <em>geompy.MakeGlueFacesByList(theShape,theTolerance,theFaces,doKeepNonSolids,doGlueAllEdges)</em>,
+\n where \em theShape is a compound of shapes to be glued, \em
+ theTolerance is a maximum distance between two faces, which can
+ be considered as coincident, \em theFaces is a list of
  subshapes to be glued. The \em doKeepNonSolids flag allows to throw
  away non-solids from the result, if false. The \em doGlueAllEdges
  allows to glue all edges, not only owned by glued faces. The \b
@@ -76,7 +71,6 @@ checkbox.
 <center><em>Manual selection of faces for gluing</em></center>
 
 Our <b>TUI Scripts</b> provide you with useful examples of the use of
-<b>Repairing Operations</b> \ref tui_glue_faces "Glue Faces" and \ref
-tui_glue_edges "Glue Edges".
+<b>Repairing Operations</b> \ref tui_glue_faces "Glue Faces".
 
 */
index 592c1b65346ae1a7df5fdc20c76b8e19c7ad1cb2..3e10dcd074b08606af74cd6fcc3e4b24f0867be2 100644 (file)
@@ -17,6 +17,8 @@ holes with free boundaries on a selected face.</li>
 <li>\subpage sewing_operation_page "Sewing" - sews faces or shells.</li>
 <li>\subpage glue_faces_operation_page "Glue faces" - unites
 coincident faces within the given tolerance.</li>
+<li>\subpage glue_edges_operation_page "Glue edges" - unites
+coincident edges within the given tolerance.</li>
 <li>\subpage limit_tolerance_operation_page "Limit Tolerance" - tries
 to set new tolerance value for the given shape.</li>
 <li>\subpage add_point_on_edge_operation_page "Add point on edge" -
index ff7d59c6fef81d9ccb9c2b4d286fe701637cf944..fd26d05e2817c5c37bb8d9ace11dfb4c6ad4dd2c 100644 (file)
@@ -4,7 +4,7 @@
 
 <br><center><b>Set presentation parameters and subshapes from arguments</b></center>
 
-\n This option allows the operation result to inherit colour
+\n This option allows the operation result to inherit color
 and subshapes from its arguments.
 
 \n To activate this functionality, check in "Set
@@ -17,7 +17,7 @@ faces and Cylinder_1 with free published edges.
 \image html restore-ss-viewer-before.png "The initial box and cylinder"
 
 First, we examine the case when the resulting shape corresponds to one argument (after transformation, 
-after the boolean operation Cut, or after the partiton with one object shape). 
+after the Boolean operation Cut, or after the partiton with one object shape). 
 
 We create a Cut of Box_1 with Cylinder_1.
 
@@ -28,7 +28,7 @@ The resulting shape inherits the subshapes and the colour of Box_1.
 \image html restore-ss-viewer-cut.png "The resulting shape"
 
 Second, we examine the case when the  resulting shape is composed from multiple arguments
-(after all boolean operations, except for Cut, or after the partition with
+(after all Boolean operations, except for Cut, or after the partition with
 several object shapes, or if the resulting shape is a compound).
 
 We create a Common of Box_1 and Cylinder_1.
@@ -37,7 +37,7 @@ We create a Common of Box_1 and Cylinder_1.
 
 \n The resulting object is created with several subshapes that correspond to the
 operation arguments and their published subshapes. The resulting shape
-has a default colour, but its subshapes inherit colors corresponding
+has a default color, but its subshapes inherit colors corresponding
 to arguments and their subshapes.
 
 \image html restore-ss-viewer-after.png "The resulting shape"
@@ -62,6 +62,6 @@ restored sub-shapes, and the prefix "from_subshapes_of_" to the names of partial
 By default this option is On.
 
 \anchor preview_anchor <br><center><b>Preview</b></center>
-<b>Preview</b> checkbox allows display/erase simulation of the <b>Result</b> in the viewer.
+<b>Preview</b> checkbox allows displaying/erasing simulation of the <b>Result</b> in the viewer.
 
 */
diff --git a/doc/salome/gui/GEOM/static/header_py.html.in b/doc/salome/gui/GEOM/static/header_py.html.in
new file mode 100644 (file)
index 0000000..36e6a0c
--- /dev/null
@@ -0,0 +1,23 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>$title</title>
+<link href="$relpath$tabs.css" rel="stylesheet" type="text/css"/>
+<link href="$relpath$search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="$relpath$search/search.js"></script>
+<link href="$relpath$navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="$relpath$jquery.js"></script>
+<script type="text/javascript" src="$relpath$navtree.js"></script>
+<script type="text/javascript" src="$relpath$resize.js"></script>
+<script type="text/javascript">
+$(document).ready(initResizable);
+</script>
+<link href="$relpath$doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body onload='searchBox.OnSelectItem(0);'>
+<div id="top"><!-- do not remove this div! -->
+<div id="titlearea"><div align="right"><div class="version">Version: @VERSION@</div></div></div>
+<div align="bottom-left"><a href=../index.html>Home</a></div>
+
+</div>
index d46c3635311e5383347b11fa5f7333671d568c76..19d30cbf4f0e961cba3c2997ce942ca291aaa2a3 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 // GEOM GEOMGUI : GUI for Geometry component
 // File   : EntityGUI_SubShapeDlg.cxx
@@ -64,7 +63,9 @@
 //=================================================================================
 EntityGUI_SubShapeDlg::EntityGUI_SubShapeDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
                                               bool modal, Qt::WindowFlags fl)
-  : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl)
+  : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl),
+    myWithShape(true),
+    myIsHiddenMain(false)
 {
   QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_SUBSHAPE")));
   QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT")));
@@ -111,6 +112,11 @@ EntityGUI_SubShapeDlg::EntityGUI_SubShapeDlg(GeometryGUI* theGeometryGUI, QWidge
 //=================================================================================
 EntityGUI_SubShapeDlg::~EntityGUI_SubShapeDlg()
 {
+  if (myIsHiddenMain) {
+    GEOM_Displayer* aDisplayer = getDisplayer();
+    aDisplayer->Display(myObject);
+    myIsHiddenMain = false;
+  }
 }
 
 //=================================================================================
@@ -289,6 +295,12 @@ void EntityGUI_SubShapeDlg::SelectionIntoArgument()
     return;
   }
 
+  if (myIsHiddenMain) {
+    GEOM_Displayer* aDisplayer = getDisplayer();
+    aDisplayer->Display(myObject);
+    myIsHiddenMain = false;
+  }
+
   TopoDS_Shape S = GEOMBase::GetTopoFromSelection(aSelList);
   if (S.IsNull() || S.ShapeType() == TopAbs_VERTEX) {
     myObject = GEOM::GEOM_Object::_nil();
@@ -393,6 +405,11 @@ void EntityGUI_SubShapeDlg::LineEditReturnPressed()
 //=================================================================================
 void EntityGUI_SubShapeDlg::ResetStateOfDialog()
 {
+  if (myIsHiddenMain) {
+    GEOM_Displayer* aDisplayer = getDisplayer();
+    aDisplayer->Display(myObject);
+    myIsHiddenMain = false;
+  }
   myObject = GEOM::GEOM_Object::_nil();
   myShape.Nullify();
   myEditCurrentArgument->setText("");
@@ -496,7 +513,7 @@ unsigned int EntityGUI_SubShapeDlg::NumberOfSubShapes(const TopoDS_Shape& S,
 void EntityGUI_SubShapeDlg::updateButtonState()
 {
   if (SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() != OCCViewer_Viewer::Type() ||
-       myObject->_is_nil() || shapeType() == TopAbs_SHAPE || shapeType() == TopAbs_COMPOUND) {
+      myObject->_is_nil() || shapeType() == TopAbs_SHAPE || shapeType() == TopAbs_COMPOUND) {
     GroupPoints->CheckButton1->setChecked(false);
     GroupPoints->CheckButton1->setEnabled(false);
   }
@@ -641,7 +658,15 @@ void EntityGUI_SubShapeDlg::activateSelection()
   if (!myObject->_is_nil() && !isAllSubShapes())
   {
     GEOM_Displayer* aDisplayer = getDisplayer();
-    aDisplayer->Erase(myObject, false, false);
+    SALOME_View* view = GEOM_Displayer::GetActiveView();
+    if (view) {
+      CORBA::String_var aMainEntry = myObject->GetStudyEntry();
+      Handle(SALOME_InteractiveObject) io = new SALOME_InteractiveObject (aMainEntry.in(), "GEOM", "TEMP_IO");
+      if (view->isVisible(io)) {
+        aDisplayer->Erase(myObject, false, false);
+        myIsHiddenMain = true;
+      }
+    }
 
     int prevDisplayMode = aDisplayer->SetDisplayMode(0);
 
index 2bcf9011e281bc26e8ce527ca155e937dd442195..7ac5e8b75bfac92c583927ceab8408db6ee7ad03 100644 (file)
@@ -88,6 +88,8 @@ private:
 
   bool                                myWithShape;
 
+  bool                                myIsHiddenMain;
+
   DlgRef_1Sel1List1Check3Btn*         GroupPoints;
 };
 
index 6d26dfea130199a96181d10a5e9cb05c0ec52093..b6e0558e4506a92f8e7eb11a1f50421ed1fe77a4 100644 (file)
@@ -19,7 +19,6 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-
 // File:        GEOMAlgo_Gluer2.cxx
 // Author:      Peter KURNEV
 
index b6ab53be94dacf05beaf2ce9aa4559389c2fad61..d39bb4f9017e57f126c17866858da5a768d534fb 100644 (file)
@@ -22,8 +22,7 @@
 // File:       GEOMAlgo_Gluer2_3.cxx
 // Created:    
 // Author:     Peter KURNEV
-//             <peter@PREFEX>
-//
+
 #include <GEOMAlgo_Gluer2.hxx>
 
 #include <TopAbs_ShapeEnum.hxx>
@@ -332,16 +331,41 @@ void MapShapes1(const TopoDS_Shape& aS,
               const TopAbs_ShapeEnum aType,
               TopTools_IndexedMapOfShape& aM)
 {
-  TopExp_Explorer aEx (aS, aType);
-  while (aEx.More()) {
-    const TopoDS_Shape aSx=aEx.Current();
+  TopExp_Explorer aExp;
+  
+  aExp.Init (aS, aType);
+  for ( ;aExp.More(); aExp.Next()) {
+    const TopoDS_Shape aSx=aExp.Current();
+    if (aType==TopAbs_EDGE) {
+      const TopoDS_Edge& aEx=*((TopoDS_Edge*)&aSx);
+      if (BRep_Tool::Degenerated(aEx)) {
+       continue;
+      }
+    }
+    aM.Add(aSx);
+  }
+}
+/*
+//=======================================================================
+//function : MapShapes1
+//purpose  : 
+//=======================================================================
+void MapShapes1(const TopoDS_Shape& aS,
+              const TopAbs_ShapeEnum aType,
+              TopTools_IndexedMapOfShape& aM)
+{
+  TopExp_Explorer aExp (aS, aType);
+  while (aExp.More()) {
+    const TopoDS_Shape aSx=aExp.Current();
     if (aType==TopAbs_EDGE) {
       const TopoDS_Edge& aEx=*((TopoDS_Edge*)&aSx);
       if (BRep_Tool::Degenerated(aEx)) {
+       aExp.Next();
        continue;
       }
     }
     aM.Add(aSx);
-    aEx.Next();
+    aExp.Next();
   }
 }
+*/
index 43eca3feb7fd3d9301744b659439467ada29e9f8..fa48ae28dfcc904fa5befa97d4a41c5c5072d57b 100644 (file)
@@ -25,6 +25,8 @@
 #ifndef GEOM_GenericObjPtr_H
 #define GEOM_GenericObjPtr_H
 
+#include "GEOM_GEOMBase.hxx"
+
 #include "SALOMEconfig.h"
 #include CORBA_SERVER_HEADER(GEOM_Gen)
 
@@ -228,7 +230,7 @@ namespace GEOM
   typedef GenericObjPtr<GEOM::GEOM_IGroupOperations>     GroupOpPtr;
   typedef GenericObjPtr<GEOM::GEOM_IAdvancedOperations>  AdvancedOpPtr;
 
-  template<> bool GenericObjPtr<GEOM::GEOM_Object>::isSame( GEOM::GEOM_Object_ptr theLeft, GEOM::GEOM_Object_ptr theRight );
+  template<> bool GEOMBASE_EXPORT GenericObjPtr<GEOM::GEOM_Object>::isSame( GEOM::GEOM_Object_ptr theLeft, GEOM::GEOM_Object_ptr theRight );
 }
 
 #endif // GEOM_GenericObjPtr_H
index 33f0a2d60487137132b4a26381f57adfb69c8521..7a598d9b8ecfe5c2a72ef63e82619412541b4877 100644 (file)
@@ -55,7 +55,6 @@
 
 #define HST_CLIENT_LEN 256
 
-
 //=======================================================================
 // function : Load()
 // purpose  :
@@ -105,10 +104,8 @@ GEOM_Client::GEOM_Client()
 //=======================================================================
 GEOM_Client::GEOM_Client(const GEOM_Client& client)
 {
-  myIORs = client.myIORs;
-  myShapes = client.myShapes;
-  _myIndexes = client._myIndexes;
   _mySubShapes = client._mySubShapes;
+  myShapesMap = client.myShapesMap;
   pid_client = client.pid_client;
 }
 
@@ -142,30 +139,29 @@ GEOM_Client GEOM_Client::get_client()
 // function : Find()
 // purpose  :
 //=======================================================================
-Standard_Integer GEOM_Client::Find( const TCollection_AsciiString& IOR, TopoDS_Shape& S )
+Standard_Boolean GEOM_Client::Find (const TCollection_AsciiString& IOR, TopoDS_Shape& S)
 {
-  if (_myIndexes.count(IOR) != 0)
-  {
-    Standard_Integer i = _myIndexes[IOR];
-    S = myShapes.Value(i);
-    return i;
+  if (myShapesMap.count(IOR) != 0) {
+    S = myShapesMap[IOR];
+    return Standard_True;
   }
-  return 0;
+  return Standard_False;
 }
 
 //=======================================================================
 // function : Find()
 // purpose  :
 //=======================================================================
-Standard_Integer GEOM_Client::Find( const TopoDS_Shape& S, TCollection_AsciiString& IOR )
+Standard_Boolean GEOM_Client::Find (const TopoDS_Shape& S, TCollection_AsciiString& IOR)
 {
-  for ( Standard_Integer i = 1; i<= myShapes.Length(); i++ ) {
-    if (myShapes.Value(i) == S) {
-      IOR = myIORs.Value(i);
-      return i;
+  std::map< TCollection_AsciiString, TopoDS_Shape >::const_iterator it;
+  for (it = myShapesMap.begin(); it != myShapesMap.end(); ++it) {
+    if ((*it).second == S) {
+      IOR = (*it).first;
+      return Standard_True;
     }
   }
-  return 0;
+  return Standard_False;
 }
 
 //=======================================================================
@@ -174,9 +170,7 @@ Standard_Integer GEOM_Client::Find( const TopoDS_Shape& S, TCollection_AsciiStri
 //=======================================================================
 void GEOM_Client::Bind( const TCollection_AsciiString& IOR, const TopoDS_Shape& S )
 {
-  myIORs.Append(IOR);
-  myShapes.Append(S);
-  _myIndexes[IOR] = myIORs.Length();
+  myShapesMap[IOR] = S;
 }
 
 //=======================================================================
@@ -185,15 +179,11 @@ void GEOM_Client::Bind( const TCollection_AsciiString& IOR, const TopoDS_Shape&
 //=======================================================================
 void GEOM_Client::RemoveShapeFromBuffer( const TCollection_AsciiString& IOR)
 {
-  if( myIORs.IsEmpty() )
+  if (myShapesMap.size() == 0)
     return;
 
-  TopoDS_Shape S;
-  Standard_Integer anIndex = Find( IOR, S );
-  if( anIndex != 0 ) {
-    myIORs.Remove(anIndex);
-    myShapes.Remove(anIndex);
-    _myIndexes.erase(IOR);
+  if (myShapesMap.count(IOR) != 0) {
+    myShapesMap.erase(IOR);
     _mySubShapes.erase(IOR);
   }
 }
@@ -204,13 +194,11 @@ void GEOM_Client::RemoveShapeFromBuffer( const TCollection_AsciiString& IOR)
 //=======================================================================
 void GEOM_Client::ClearClientBuffer()
 {
-  if( myIORs.IsEmpty() )
+  if (myShapesMap.size() == 0)
     return;
-  myIORs.Clear();
-  myShapes.Clear();
-  _myIndexes.clear();
+
   _mySubShapes.clear();
-  return;
+  myShapesMap.clear();
 }
 
 //=======================================================================
@@ -219,7 +207,7 @@ void GEOM_Client::ClearClientBuffer()
 //=======================================================================
 unsigned int GEOM_Client::BufferLength()
 {
-  return myIORs.Length();
+  return myShapesMap.size();
 }
 
 //=======================================================================
@@ -231,9 +219,9 @@ TopoDS_Shape GEOM_Client::GetShape( GEOM::GEOM_Gen_ptr geom, GEOM::GEOM_Object_p
   TopoDS_Shape S;
   CORBA::String_var anIOR = geom->GetStringFromIOR(aShape);
   TCollection_AsciiString IOR = (char*)anIOR.in();
-  Standard_Integer anIndex = Find(IOR, S);
+  Standard_Boolean anIndex = Find(IOR, S);
 
-  if (anIndex != 0) return S;
+  if (anIndex) return S;
 
   /******* in case of a MAIN GEOM::SHAPE ********/
   if (aShape->IsMainShape()) {
@@ -251,7 +239,7 @@ TopoDS_Shape GEOM_Client::GetShape( GEOM::GEOM_Gen_ptr geom, GEOM::GEOM_Object_p
   TCollection_AsciiString mainIOR = (char*)aMainIOR.in();
 
   //find subshapes only one time
-  if(_mySubShapes.count(mainIOR)==0)
+  if (_mySubShapes.count(mainIOR) == 0)
   {
     TopTools_IndexedMapOfShape anIndices;
     TopExp::MapShapes(aMainShape, anIndices);
index 4fffd02867168002483ee6d89e5d0e160caaa9cd..304b26207fecd2b23119f619cdb36c6836e8998b 100644 (file)
@@ -111,9 +111,9 @@ class GEOMCLIENT_EXPORT GEOM_Client  {
   //Standard_EXPORT
   GEOM_Client(const GEOM_Client& client);
   //Standard_EXPORT
-  Standard_Integer Find( const TCollection_AsciiString& IOR, TopoDS_Shape& S ) ;
+  Standard_Boolean Find( const TCollection_AsciiString& IOR, TopoDS_Shape& S ) ;
   //Standard_EXPORT
-  Standard_Integer Find( const TopoDS_Shape& S, TCollection_AsciiString& IOR ) ;
+  Standard_Boolean Find( const TopoDS_Shape& S, TCollection_AsciiString& IOR ) ;
   //Standard_EXPORT
   void Bind( const TCollection_AsciiString& IOR, const TopoDS_Shape& S ) ;
   //Standard_EXPORT
@@ -134,10 +134,8 @@ class GEOMCLIENT_EXPORT GEOM_Client  {
  private:
   // Fields PRIVATE
   //
-  TColStd_SequenceOfAsciiString myIORs ;
-  TopTools_SequenceOfShape myShapes ;
-  std::map< TCollection_AsciiString , int > _myIndexes;
   std::map< TCollection_AsciiString , std::vector<TopoDS_Shape> > _mySubShapes;
+  std::map< TCollection_AsciiString , TopoDS_Shape > myShapesMap;
   long  pid_client;
 };
 
index fd5aec4c2b21678c60a6d54a84b0584831bd3512..2052270b670aa75f4e92bc74f69e013244a8e026 100644 (file)
@@ -4344,7 +4344,7 @@ Otherwise the dimensions will be kept without modifications.</translation>
     </message>
     <message>
         <source>GEOM_CURVE_ANALITICAL</source>
-        <translation>Analitical</translation>
+        <translation>Analytical</translation>
     </message>        
 </context>
 <context>
index 7fb4b5b291840c67684b2e56b0e38dc5bb04cd7a..b545e3c4880c24aa142d8b73d08a37b87f4a3543 100644 (file)
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
+#ifdef WNT
+// E.A. : On windows with python 2.6, there is a conflict
+// E.A. : between pymath.h and Standard_math.h which define
+// E.A. : some same symbols : acosh, asinh, ...
+#include <Standard_math.hxx>
+#include <pymath.h>
+#endif
+
 #include <Python.h>
 #include <structmember.h>
 
@@ -875,7 +883,7 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeCurveParametric(const char*
   aPyScript += thezExpr;
   aPyScript += "\n";
   
-  aPyScript +="def coordCalucator(tmin, tmax, tstep):                      \n";
+  aPyScript +="def coordCalculator(tmin, tmax, tstep):                      \n";
   aPyScript +="   coords = []                                              \n";
   aPyScript +="   while tmin <= tmax :                                     \n";
   aPyScript +="      coords.append([X(tmin), Y(tmin), Z(tmin)])            \n";
@@ -909,7 +917,8 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeCurveParametric(const char*
   PyObject* obj = PyRun_String(aPyScript.ToCString(), Py_file_input, main_dict, NULL);
 
   if (obj == NULL) {
-    SetErrorCode("Error during run python script !!!");
+    SetErrorCode("Error during executing of python script !!!");
+    PyErr_Print();
     PyGILState_Release(gstate);
     return NULL;
   } else {
@@ -917,7 +926,7 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeCurveParametric(const char*
   }
 
   PyObject * func = NULL;
-  func = PyObject_GetAttrString(main_mod, "coordCalucator");
+  func = PyObject_GetAttrString(main_mod, "coordCalculator");
   
   if (func == NULL){
     SetErrorCode("Can't get function from python module !!!");
@@ -936,7 +945,7 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeCurveParametric(const char*
     PyErr_Print();
     PySys_SetObject((char*)"stderr", PySys_GetObject((char*)"__stderr__"));
     Py_DECREF(new_stderr);
-    MESSAGE("Can't evaluate coordCalucator()" << " error is " << err_description);
+    MESSAGE("Can't evaluate coordCalculator()" << " error is " << err_description);
     SetErrorCode("Can't evaluate the expressions, please check them !!!");
     PyGILState_Release(gstate);
     return NULL;
index 5d6d2c89b9fc2ac593a36d6ed74d195155e9b589..f254c2a0c6ef8e5940923bd97e27fc262cc64b96 100644 (file)
@@ -789,7 +789,10 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(TFunction_Logbook& log) const
 
           concatcurve->SetValue(concatcurve->Lower(), Concat.BSplineCurve());
         }
-
+        // rnc : prevents the driver from building an edge without C1 continuity
+        if (concatcurve->Value(concatcurve->Lower())->Continuity()==GeomAbs_C0){
+          Standard_ConstructionError::Raise("Construction aborted : The given Wire has sharp bends between some Edges, no valid Edge can be built");
+        }
         ResEdge = BRepLib_MakeEdge(concatcurve->Value(concatcurve->Lower()),
                                    FirstVertex, LastVertex);
       }
index b5c9ff9253912b9f4f08506db8272d1dd04b6a6e..43fd816b3810852dbe8cfe43c324f73ecd861da6 100644 (file)
@@ -18,7 +18,6 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-//
 
 //  GEOM GEOMGUI : GUI for Geometry component
 //  File   : GroupGUI_GroupDlg.cxx
@@ -72,7 +71,8 @@ GroupGUI_GroupDlg::GroupGUI_GroupDlg (Mode mode, GeometryGUI* theGeometryGUI, QW
   : GEOMBase_Skeleton(theGeometryGUI, parent, false),
     myMode(mode),
     myBusy(false),
-    myIsShapeType(false)
+    myIsShapeType(false),
+    myIsHiddenMain(false)
 {
   SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
 
@@ -184,6 +184,11 @@ GroupGUI_GroupDlg::GroupGUI_GroupDlg (Mode mode, GeometryGUI* theGeometryGUI, QW
 
 GroupGUI_GroupDlg::~GroupGUI_GroupDlg()
 {
+  if (myIsHiddenMain) {
+    GEOM_Displayer* aDisplayer = getDisplayer();
+    aDisplayer->Display(myMainObj);
+    myIsHiddenMain = false;
+  }
 }
 
 //=================================================================================
@@ -461,6 +466,11 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
         GEOMBase::ConvertIOinGEOMObject(aSelList.First());
 
       if (GEOMBase::IsShape(anObj)) {
+        if (myIsHiddenMain) {
+          GEOM_Displayer* aDisplayer = getDisplayer();
+          aDisplayer->Display(myMainObj);
+          myIsHiddenMain = false;
+        }
         myMainObj = anObj;
         myEditCurrentArgument->setText(GEOMBase::GetName(anObj));
         // activate subshapes selection by default
@@ -470,6 +480,11 @@ void GroupGUI_GroupDlg::SelectionIntoArgument()
       }
     }
     else {
+      if (myIsHiddenMain) {
+        GEOM_Displayer* aDisplayer = getDisplayer();
+        aDisplayer->Display(myMainObj);
+        myIsHiddenMain = false;
+      }
       myMainObj = GEOM::GEOM_Object::_nil();
     }
   }
@@ -788,7 +803,15 @@ void GroupGUI_GroupDlg::activateSelection()
       myIsShapeType) // check if shape type is already choosen by user
   {
     GEOM_Displayer* aDisplayer = getDisplayer();
-    aDisplayer->Erase(myMainObj, false, false);
+    SALOME_View* view = GEOM_Displayer::GetActiveView();
+    if (view) {
+      CORBA::String_var aMainEntry = myMainObj->GetStudyEntry();
+      Handle(SALOME_InteractiveObject) io = new SALOME_InteractiveObject (aMainEntry.in(), "GEOM", "TEMP_IO");
+      if (view->isVisible(io)) {
+        aDisplayer->Erase(myMainObj, false, false);
+        myIsHiddenMain = true;
+      }
+    }
 
     int prevDisplayMode = aDisplayer->SetDisplayMode(0);
 
@@ -909,7 +932,7 @@ void GroupGUI_GroupDlg::highlightSubShapes()
       int id = myIdList->item(ii)->text().toInt();
       if (subSelectionWay() != ALL_SUBSHAPES &&
           !myMain2InPlaceIndices.IsBound(id)) {
-        myIdList->item(ii)->setSelected(false);
+        //myIdList->item(ii)->setSelected(false);
       }
       else {
         anIds.Add(id);
index 7bcec71b2f403dfffbb242226cff2c17c2bb2f1d..49faaa0e0c90479f6820d7fbae82fe11335e9a09 100644 (file)
@@ -96,6 +96,7 @@ private:
   Mode                                myMode;
   bool                                myBusy;
   bool                                myIsShapeType;
+  bool                                myIsHiddenMain;
   GEOM::GEOM_Object_var               myMainObj;
   GEOM::GEOM_Object_var               myGroup;
   GEOM::GEOM_Object_var               myInPlaceObj;