Salome HOME
Typo-fix by Kunda
[modules/geom.git] / idl / GEOM_Gen.idl
index 1e572a79f9deeb3e7273c0cbd96c89989e0461b3..cd8f8c8089006c8f4d18d5b1826a0e4a87490e5f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -299,7 +299,9 @@ module GEOM
     long GetStudyID();
 
     /*!
-     *  \brief Get internal type of the object (POINT, BOX, CYLINDER, EXTRUSION...).
+     *  \brief Get internal type of operation created this object (POINT, BOX, CYLINDER, EXTRUSION...).
+     *  \note To get topological information on the object, use \ref GEOM_IMeasureOperations::WhatIs() "WhatIs()"
+     * or \ref GEOM_IMeasureOperations::KindOfShape() "KindOfShape()" operation.
      */
     long GetType();
 
@@ -389,7 +391,7 @@ module GEOM
      *
      *  This function is useful for the compounds only; for simple shapes it
      *  exactly the same value as GetShapeType().
-     *  Note, that compounds are procesed recursively.
+     *  Note, that compounds are processed recursively.
      *
      *  \sa GetShapeType(), GetTopologyType(), GetMaxShapeType()
      */
@@ -400,7 +402,7 @@ module GEOM
      *
      *  This function is useful for the compounds only; for simple shapes it
      *  exactly the same value as GetShapeType().
-     *  Note, that compounds are procesed recursively.
+     *  Note, that compounds are processed recursively.
      *
      *  \sa GetShapeType(), GetTopologyType(), GetMinShapeType()
      */
@@ -680,7 +682,7 @@ module GEOM
 
     /*!
      *  \brief Set the operation error code
-     *  \param theErrorID is a string describing the error occured
+     *  \param theErrorID is a string describing the error occurred
      *  \note This method is supposed to be used only by interfaces inheriting from IOperations.
      */
     void SetErrorCode (in string theErrorID);
@@ -701,7 +703,7 @@ module GEOM
     void StartOperation();
 
     /*!
-     *  \brief Closes the previously opened trasaction
+     *  \brief Closes the previously opened transaction
      */
     void FinishOperation();
 
@@ -853,7 +855,7 @@ module GEOM
 
     /*!
      *  C\brief reate a line, passing through the given point
-     *  and parrallel to the given direction
+     *  and parallel 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.
@@ -1298,17 +1300,23 @@ module GEOM
      *  \brief Replace the given object by its offset.
      *  \param theObject The base object for the offset.
      *  \param theOffset Offset value.
+     *  \param theJoinByPipes To join offset surfaces by pipes or by intersection.
      *  \return theObject.
      */
-    GEOM_Object OffsetShape (in GEOM_Object theObject, in double theOffset);
+    GEOM_Object OffsetShape (in GEOM_Object theObject,
+                             in double      theOffset,
+                             in boolean     theJoinByPipes);
 
     /*!
      *  \brief Create new object as offset of the given one.
      *  \param theObject The base object for the offset.
      *  \param theOffset Offset value.
+     *  \param theJoinByPipes To join offset surfaces by pipes or by intersection.
      *  \return New GEOM_Object, containing the offset object.
      */
-    GEOM_Object OffsetShapeCopy (in GEOM_Object theObject, in double theOffset);
+    GEOM_Object OffsetShapeCopy (in GEOM_Object theObject,
+                                 in double      theOffset,
+                                 in boolean     theJoinByPipes);
 
     /*!
      *  \brief Create new object as projection of the given one on a 2D surface.
@@ -1895,7 +1903,7 @@ module GEOM
      *  \param theBase Base shape to be extruded.
      *  \param thePath Path shape to extrude the base shape along it.
      *  \param theVec Vector defines a constant binormal direction to keep the
-     *                same angle beetween the Direction and the sections
+     *                same angle between the Direction and the sections
      *                along the sweep surface.
      *  \param IsGenerateGroups flag that tells if it is necessary to
      *         return groups (true) or not (false).
@@ -2780,6 +2788,43 @@ module GEOM
                                        in comparison_condition theCondition,
                                        in double               theTolerance);
 
+    /**
+     * This enumeration represents an extraction statistics type. It is used in
+     * the interface GEOM_IShapesOperations::MakeExtraction.
+     */
+    enum ExtractionStatType
+    {
+      EST_Removed,  ///< Removed sub-shapes
+      EST_Modified, ///< Modified sub-shapes
+      EST_Added     ///< Newly created sub-shapes
+    };
+
+    /*!
+     * This structure defines a format of extraction statistics. It is used in
+     * the interface GEOM_IShapesOperations::MakeExtraction.
+     */
+    struct ExtractionStat
+    {
+      ExtractionStatType type;    ///< Type of extraction statistics.
+      ListOfLong         indices; ///< Shape indices touched by this type of modification.
+    };
+
+    typedef sequence<ExtractionStat> ExtractionStats;
+
+    /*!
+     * \brief Return the shape that is constructed from theShape without
+     * extracted sub-shapes from the input list.
+     *
+     * \param theShape the original shape.
+     * \param theSubShapeIDs the list of sub-shape IDs to be extracted from
+     *        the original shape.
+     * \param theStats the operation statistics. Output parameter.
+     * \return the shape without extracted sub-shapes.
+     */
+    GEOM_Object MakeExtraction(in GEOM_Object      theShape,
+                               in ListOfLong       theSubShapeIDs,
+                               out ExtractionStats theStats);
+
   };
 
  // # GEOM_IBlocksOperations: 
@@ -3178,7 +3223,7 @@ module GEOM
      *
      *  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.
+     *  Notion of Opposite Edge make sense only on quadrangle face.
      *  \param theShape Shape to build propagation groups on.
      *  \return List of GEOM_Object, each of them is a propagation group.
      */
@@ -3277,7 +3322,7 @@ module GEOM
      *  \param theRemoveInside Shapes, inside which the results will be deleted.
      *         Each shape from theRemoveInside must belong to theShapes also.
      *  \param theRemoveWebs If TRUE, perform Glue 3D algorithm.
-     *  \param theMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
+     *  \param theMaterials Material indices for each shape. Make sense, only if theRemoveWebs is TRUE.
      *
      *  \return New GEOM_Object, containing the result shapes.
      */
@@ -3293,7 +3338,7 @@ module GEOM
     /*!
      *  \brief Perform partition operation.
      *
-     *  This method may be usefull if it is needed to make a partition for
+     *  This method may be useful if it is needed to make a partition for
      *  a compound containing nonintersected shapes. Performance will be better
      *  since intersection between shapes from compound is not performed.
      *
@@ -3756,7 +3801,7 @@ module GEOM
      *  \param theVertexes Global indices of vertexes to perform fillet on.
      *    \note Global index of sub-shape can be obtained, using method
      *          <VAR>GEOM_IShapesOperations.GetSubShapeIndex()</VAR>.
-     *    \note The list of vertices coudl be empty, in this case fillet fill be done
+     *    \note The list of vertices could be empty, in this case fillet fill be done
      *          at all vertices in given wire
      *  \param doIgnoreSecantVertices If FALSE, fillet radius is always limited
      *         by the length of the edges, nearest to the fillet vertex.
@@ -3795,7 +3840,7 @@ module GEOM
                                  in double theD1, in double theD2,
                                  in long theFace1, in long theFace2);
     /*!
-     *  \brief The Same but with params theD = Chamfer Lenght
+     *  \brief The Same but with params theD = Chamfer Length
      *  and theAngle = Chamfer Angle (Angle in radians)
      */
     GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
@@ -3819,7 +3864,7 @@ module GEOM
                                   in double theD1, in double theD2,
                                   in ListOfLong theFaces);
     /*!
-     *  The Same but with params theD = Chamfer Lenght
+     *  The Same but with params theD = Chamfer Length
      *  and theAngle = Chamfer Angle (Angle in radians)
      */
     GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
@@ -3838,7 +3883,7 @@ module GEOM
                                   in double theD1, in double theD2,
                                   in ListOfLong theEdges);
     /*!
-     *  The Same but with params theD = Chamfer Lenght
+     *  The Same but with params theD = Chamfer Length
      *  and theAngle = Chamfer Angle (Angle in radians)
      */
     GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
@@ -4025,7 +4070,7 @@ module GEOM
      *  \param theObjects 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.
+     *  \return FALSE, if an error(s) occurred during the method execution.
      */
     boolean GetFreeBoundary (in  ListOfGO theObjects,
                              out ListOfGO theClosedWires,
@@ -4139,8 +4184,8 @@ module GEOM
     SALOMEDS::TMPFile GetTexture(in long theID, out long theWidth, out long theHeight);
 
     /*!
-     * \brief Get list of all avaiable texture IDs
-     * \return list of all texture IDs avaiable for the current study
+     * \brief Get list of all available texture IDs
+     * \return list of all texture IDs available for the current study
      */
     ListOfLong GetAllTextures();
 
@@ -4155,7 +4200,7 @@ module GEOM
     };
 
     /*!
-     *  \brief Sequence of non-topological information tranfer data.
+     *  \brief Sequence of non-topological information transfer data.
      */
     typedef sequence<TransferDatum> ListOfTransferDatum;
 
@@ -4170,7 +4215,7 @@ module GEOM
      *  \param theResult statistics of the operation. Output parameter. It
      *         represents a sequence of Transfer Datum. A datum has the type
      *         (string code), the total number of items of this type and
-     *         the number of transfered items.
+     *         the number of transferred items.
      *  \return true in case of success; otherwise false.
      */
     boolean TransferData(in  GEOM_Object         theObjectFrom,
@@ -4298,12 +4343,14 @@ module GEOM
      *  \brief Get summarized length of all wires,
      *  area of surface and volume of the given shape.
      *  \param theShape Shape to define properties of.
+     *  \param theTolerance maximal relative error of area and volume computation.
      *  \param theLength Output. Summarized length of all wires of the given shape.
      *  \param theSurfArea Output. Area of surface of the given shape.
      *  \param theVolume Output. Volume of the given shape.
      *  \return Returns shape properties through the last three arguments.
      */
     void GetBasicProperties (in GEOM_Object theShape,
+                             in double theTolerance,
                              out double theLength,
                              out double theSurfArea,
                              out double theVolume);
@@ -4497,7 +4544,7 @@ module GEOM
     /*!
      *  \brief Detect self-intersections of the given shape with algorithm based on mesh intersections.
      *  \param theShape Shape to check validity of.
-     *  \param theDeflection Linear deflection coefficient that specifies quality of tesselation.
+     *  \param theDeflection Linear deflection coefficient that specifies quality of tessellation.
      *  \param theTolerance Specifies a distance between sub-shapes used for detecting gaps:
      *                       - if \a theTolerance <= 0, algorithm detects intersections
      *                       - if \a theTolerance > 0, algorithm detects gaps
@@ -4509,6 +4556,14 @@ module GEOM
                                        in double      theTolerance,
                                        out ListOfLong theIntersections);
 
+    /*!
+     *  \brief Check boolean and partition operations arguments.
+     *  \param theShape the argument of an operation to be checked.
+     *  \return TRUE if the argument is valid for a boolean or partition
+     *          operation; FALSE otherwise.
+     */
+    boolean CheckBOPArguments (in GEOM_Object theShape);
+
     /*!
      *  \brief Detect intersections of the given shapes with algorithm based on mesh intersections.
      *  \param theShape1 First source object
@@ -4516,7 +4571,7 @@ module GEOM
      *  \param theTolerance Specifies a distance between shapes used for detecting gaps:
      *                       - if \a theTolerance <= 0, algorithm detects intersections
      *                       - if \a theTolerance > 0, algorithm detects gaps
-     *  \param theDeflection Linear deflection coefficient that specifies quality of tesselation:
+     *  \param theDeflection Linear deflection coefficient that specifies quality of tessellation:
      *                       - if \a theDeflection <= 0, default deflection 0.001 is used
      *  \param theIntersections1 Output: contains list of sub-shapes IDs from 1st shape that localize intersection
      *  \param theIntersections2 Output: contains list of sub-shapes IDs from 2nd shape that localize intersection
@@ -4863,7 +4918,7 @@ module GEOM
      *                            in place of sub-shapes of the first argument,
      *                            because the whole shape corresponds to the first argument.
      *                            Mainly to be used after transformations, but it also can be
-     *                            usefull after partition with one object shape, and some other
+     *                            useful after partition with one object shape, and some other
      *                            operations, where only the first argument has to be considered.
      *                            If theObject has only one argument shape, this flag is automatically
      *                            considered as True, not regarding really passed value.
@@ -4894,7 +4949,7 @@ module GEOM
      *                            in place of sub-shapes of the first argument,
      *                            because the whole shape corresponds to the first argument.
      *                            Mainly to be used after transformations, but it also can be
-     *                            usefull after partition with one object shape, and some other
+     *                            useful after partition with one object shape, and some other
      *                            operations, where only the first argument has to be considered.
      *                            If theObject has only one argument shape, this flag is automatically
      *                            considered as True, not regarding really passed value.
@@ -4926,7 +4981,7 @@ module GEOM
      *                            in place of sub-shapes of the first argument,
      *                            because the whole shape corresponds to the first argument.
      *                            Mainly to be used after transformations, but it also can be
-     *                            usefull after partition with one object shape, and some other
+     *                            useful after partition with one object shape, and some other
      *                            operations, where only the first argument has to be considered.
      *                            If theObject has only one argument shape, this flag is automatically
      *                            considered as True, not regarding really passed value.
@@ -4989,7 +5044,7 @@ module GEOM
     
     /*!
      *  \brief Returns a GEOM_Object defined by its IOR
-     *  \param theIOR a string containg an IOR of the requested GEOM_Object
+     *  \param theIOR a string containing an IOR of the requested GEOM_Object
      */
     GEOM_Object GetIORFromString (in string theIOR);