]> SALOME platform Git repositories - modules/geom.git/blobdiff - idl/GEOM_Gen.idl
Salome HOME
0022746: [EDF] Improvement of Glue Faces and Glue Edges operations
[modules/geom.git] / idl / GEOM_Gen.idl
index 149bf96744ec5420bf3e7340c3144a141f4cb4c1..b9cfadd17d25b93591e4778dae5e2785c4aa9a4a 100644 (file)
@@ -164,7 +164,8 @@ module GEOM
   /*!
    * \brief Kind of the curves.
    *
-   * Used in the functions GEOM_ICurvesOperations.MakeCurveParametric(), GEOM_ICurvesOperations.MakeCurveParametricNew()
+   * Used in the functions GEOM_ICurvesOperations.MakeCurveParametric(), GEOM_ICurvesOperations.MakeCurveParametricNew(),
+   * GEOM_ICurvesOperations.MakePolyline2D, GEOM_ICurvesOperations.MakePolyline2DOnPlane.
    */
   enum curve_type {
     /*! Polyline curve */
@@ -208,11 +209,12 @@ module GEOM
   };
 
 
-  typedef sequence<string>      string_array;
-  typedef sequence<short>       short_array;
-  typedef sequence<boolean>     ListOfBool;
-  typedef sequence<long>        ListOfLong;
-  typedef sequence<double>      ListOfDouble;
+  typedef sequence<string>       string_array;
+  typedef sequence<short>        short_array;
+  typedef sequence<boolean>      ListOfBool;
+  typedef sequence<long>         ListOfLong;
+  typedef sequence<double>       ListOfDouble;
+  typedef sequence<ListOfDouble> ListOfListOfDouble;
 
   interface GEOM_Object;
   interface GEOM_BaseObject;
@@ -1939,64 +1941,64 @@ module GEOM
     GEOM_Object MakeCompound (in ListOfGO theShapes);
 
     /*!
-     *  \brief Replace coincident faces in theShape by one face.
-     *  \param theShape Initial shape.
+     *  \brief Replace coincident faces in \a theShapes by one face.
+     *  \param theShapes Initial shapes.
      *  \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.
+     *  \return New GEOM_Object containing copies of theShapes without coincident faces.
      */
-    GEOM_Object MakeGlueFaces (in GEOM_Object theShape, in double theTolerance, in boolean doKeepNonSolids);
+    GEOM_Object MakeGlueFaces (in ListOfGO theShapes, in double theTolerance, in boolean doKeepNonSolids);
 
     /*!
-     *  Find coincident faces in theShape for possible gluing.
-     *  \param theShape Initial shape.
+     *  Find coincident faces in theShapes for possible gluing.
+     *  \param theShapes Initial shapes.
      *  \param theTolerance Maximum distance between faces, which can be considered as coincident.
      *  \return ListOfGO
      */
-    ListOfGO GetGlueFaces (in GEOM_Object theShape, in double theTolerance);
+    ListOfGO GetGlueFaces (in ListOfGO theShapes, in double theTolerance);
 
     /*!
-     *  \brief Replace coincident faces in theShape by one face
-     *  in compliance with given list of faces
-     *  \param theShape Initial shape.
+     *  \brief Replace coincident faces in \a theShapes by one face
+     *         in compliance with given list of faces
+     *  \param theShapes Initial shapes.
      *  \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.
      *  \param doGlueAllEdges If TRUE, all coincident edges of <VAR>theShape</VAR>
      *                        will be glued, otherwise only the edges,
      *                        belonging to <VAR>theFaces</VAR>.
-     *  \return New GEOM_Object, containing a copy of theShape without some faces.
+     *  \return New GEOM_Object containing copies of theShapes without coincident faces.
      */
-    GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, in double theTolerance,
-                                     in ListOfGO theFaces, in boolean doKeepNonSolids,
+    GEOM_Object MakeGlueFacesByList (in ListOfGO theShapes, in double theTolerance,
+                                     in ListOfGO theFaces,  in boolean doKeepNonSolids,
                                      in boolean doGlueAllEdges);
 
     /*!
-     *  \brief Replace coincident edges in theShape by one edge.
-     *  \param theShape Initial shape.
+     *  \brief Replace coincident edges in \a theShapes by one edge.
+     *  \param theShapes Initial shapes.
      *  \param theTolerance Maximum distance between edges, which can be considered as coincident.
-     *  \return New GEOM_Object, containing a copy of theShape without coincident edges.
+     *  \return New GEOM_Object containing copies of theShapes without coincident edges.
      */
-    GEOM_Object MakeGlueEdges (in GEOM_Object theShape, in double theTolerance);
+    GEOM_Object MakeGlueEdges (in ListOfGO theShapes, in double theTolerance);
 
     /*!
-     *  Find coincident edges in theShape for possible gluing.
-     *  \param theShape Initial shape.
+     *  Find coincident edges in \a theShapes for possible gluing.
+     *  \param theShapes Initial shapes.
      *  \param theTolerance Maximum distance between edges, which can be considered as coincident.
      *  \return ListOfGO
      */
-    ListOfGO GetGlueEdges (in GEOM_Object theShape, in double theTolerance);
+    ListOfGO GetGlueEdges (in ListOfGO theShapes, in double theTolerance);
 
     /*!
-     *  \brief Replace coincident edges in theShape by one edge
-     *  in compliance with given list of edges
-     *  \param theShape Initial shape.
+     *  \brief Replace coincident edges in \a theShapes by one edge
+     *         in compliance with given list of edges
+     *  \param theShapes Initial shapes.
      *  \param theTolerance Maximum distance between edges, which can be considered as coincident.
      *  \param theEdges List of edges for gluing.
-     *  \return New GEOM_Object, containing a copy of theShape without some edges.
+     *  \return New GEOM_Object containing copies of theShapes without some edges.
      */
-    GEOM_Object MakeGlueEdgesByList (in GEOM_Object theShape,
-                                     in double theTolerance,
+    GEOM_Object MakeGlueEdgesByList (in ListOfGO theShape,
+                                     in double   theTolerance,
                                      in ListOfGO theEdges);
 
     /*!
@@ -3332,6 +3334,72 @@ module GEOM
      *  \return New GEOM_Object, containing the created wire.
      */
     GEOM_Object Make3DSketcher (in ListOfDouble theCoordinates);
+
+    /*!
+     *  \brief Create a 2D polyline (wire or a compound of wires).
+     *
+     *  The polyline can have several sections. Each section represents a set
+     *  of points in the form of list of coordinates of the following order:
+     *  x1, y1, x2, y2, ..., xN, yN
+     *  Each section has its own name, type of curve (can be either
+     *  GEOM::Polyline or GEOM::Interpolation) and Closed flag.
+     *  For each section a wire is created. It represents either a polyline or
+     *  interpolation BSpline either closed or not depending on the Closed flag.
+     *  The result represents a wire if there is only one section is defined.
+     *  Otherwise a compound of wires is returned.
+     *
+     *  \param theCoordsList the list of coordinates list. theCoordsList[0]
+     *         is the coordinates list of the first section. theCoordsList[1]
+     *         is for the second section etc.
+     *  \param theNamesList the list of names. The order corresponds to
+     *         theCoordsList.
+     *  \param theTypesList the list of curve types. The order corresponds to
+     *         theCoordsList.
+     *  \param theClosedList the list of Closed flags. The order corresponds to
+     *         theCoordsList.
+     *  \param theWorkingPlane 9 double values, defining origin,
+     *         OZ and OX directions of the working plane.
+     *  \return New GEOM_Object, containing the created wire or a compound
+     *          of wires.
+     */
+    GEOM_Object MakePolyline2D (in ListOfListOfDouble theCoordsList,
+                                in string_array       theNamesList,
+                                in short_array        theTypesList,
+                                in ListOfBool         theClosedList,
+                                in ListOfDouble       theWorkingPlane);
+
+    /*!
+     *  \brief Create a 2D polyline (wire or a compound of wires).
+     *
+     *  The polyline can have several sections. Each section represents a set
+     *  of points in the form of list of coordinates of the following order:
+     *  x1, y1, x2, y2, ..., xN, yN
+     *  Each section has its own name, type of curve (can be either
+     *  GEOM::Polyline or GEOM::Interpolation) and Closed flag.
+     *  For each section a wire is created. It represents either a polyline or
+     *  interpolation BSpline either closed or not depending on the Closed flag.
+     *  The result represents a wire if there is only one section is defined.
+     *  Otherwise a compound of wires is returned.
+     *
+     *  \param theCoordsList the list of coordinates list. theCoordsList[0]
+     *         is the coordinates list of the first section. theCoordsList[1]
+     *         is for the second section etc.
+     *  \param theNamesList the list of names. The order corresponds to
+     *         theCoordsList.
+     *  \param theTypesList the list of curve types. The order corresponds to
+     *         theCoordsList.
+     *  \param theClosedList the list of Closed flags. The order corresponds to
+     *         theCoordsList.
+     *  \param theWorkingPlane planar Face or LCS(Marker) of the working plane.
+     *  \return New GEOM_Object, containing the created wire or a compound
+     *          of wires.
+     */
+    GEOM_Object MakePolyline2DOnPlane (in ListOfListOfDouble theCoordsList,
+                                       in string_array       theNamesList,
+                                       in short_array        theTypesList,
+                                       in ListOfBool         theClosedList,
+                                       in GEOM_Object        theWorkingPlane);
+
   };
 
  // # GEOM_ILocalOperations:
@@ -3612,7 +3680,7 @@ module GEOM
      *  \param theTolerance Required tolerance value.
      *  \return New GEOM_Object, containing processed shape.
      */
-    GEOM_Object Sew (in GEOM_Object theObject, in double theTolerance);
+    GEOM_Object Sew (in ListOfGO theObjects, in double theTolerance);
 
     /*!
      *  Sewing of the given object. Allows non-manifold sewing.
@@ -3620,7 +3688,7 @@ module GEOM
      *  \param theTolerance Required tolerance value.
      *  \return New GEOM_Object, containing processed shape.
      */
-    GEOM_Object SewAllowNonManifold(in GEOM_Object theObject, in double theTolerance);
+    GEOM_Object SewAllowNonManifold(in ListOfGO theObjects, in double theTolerance);
 
     /*!
      *  Rebuild the topology of theCompound of solids by removing
@@ -3657,12 +3725,12 @@ module GEOM
     /*!
      *  \brief 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.
+     *  \param theObject Shapes to get free boundary of.
      *  \param theClosedWires Output. Closed wires on the free boundary of the given shape.
      *  \param theOpenWires Output. Open wires on the free boundary of the given shape.
      *  \return FALSE, if an error(s) occured during the method execution.
      */
-    boolean GetFreeBoundary (in GEOM_Object theObject,
+    boolean GetFreeBoundary (in ListOfGO theObjects,
                              out ListOfGO theClosedWires,
                              out ListOfGO theOpenWires);
 
@@ -3720,7 +3788,7 @@ module GEOM
      *            file length unit will be ignored (set to 'meter') and result model will be scaled.
      *  \return List of GEOM_Object, containing the created shape and groups of materials.
      */
-    ListOfGO ImportFile (in string theFileName, in string theFormatName);
+    ListOfGBO ImportFile (in string theFileName, in string theFormatName);
 
     /*!
      *  \brief Deprecated method. Use ReadValue (from the corresponding plugin) instead.