Salome HOME
EDF 2281: Transaltions
[modules/geom.git] / idl / GEOM_Gen.idl
index c50451044c1d36428eb066e42afbc4ed7c700b88..cf3d1bc680c52ba7a0ec476a9841535fefc5ca09 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  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
@@ -188,7 +188,7 @@ module GEOM
 
   typedef sequence<GEOM_Object> ListOfGO;
 
-  # GEOM_Object
+  //# GEOM_Object
   /*!
    *  \brief Interface of geometric object
    */
@@ -273,7 +273,7 @@ module GEOM
 
     /*!
      *  Toggle auto color mode on the object.
-     *  \param theAtoColor is a flag which toggles auto color mode.
+     *  \param theAutoColor is a flag which toggles auto color mode.
      */
     void SetAutoColor(in boolean theAutoColor);
 
@@ -343,9 +343,9 @@ module GEOM
      */
     long long getShape();
 
-    ######################################################################
-    # Internal methods (For sub-shape identification)
-    ######################################################################
//   ######################################################################
//   # Internal methods (For sub-shape identification)
//   ######################################################################
     /*!
      *  \brief Get geometric shape of the object as a byte stream
      */
@@ -395,7 +395,7 @@ module GEOM
     string GetParameters();
   };
 
-  # GEOM_IOperations:
// # GEOM_IOperations:
   /*!
    *  \brief Basic methods of all geometric operations
    */
@@ -438,7 +438,7 @@ module GEOM
      */
     void AbortOperation();
   };
-  # GEOM_IBasicOperations:
+  //# GEOM_IBasicOperations:
   /*!
    *  \brief Interface for basic geometry creation
    *
@@ -499,8 +499,8 @@ module GEOM
      */
     GEOM_Object MakePointOnCurveByCoord (in GEOM_Object theRefCurve,
                                          in double theXParameter,
-                                         in double theYarameter,
-                                         in double theZPameter);
+                                         in double theYParameter,
+                                         in double theZParameter);
 
     /*!
      *  \brief Create a point, corresponding to the given parameters on the
@@ -524,8 +524,8 @@ module GEOM
      */
     GEOM_Object MakePointOnSurfaceByCoord (in GEOM_Object theRefSurf,
                                            in double theXParameter,
-                                           in double theYarameter,
-                                           in double theZPameter);
+                                           in double theYParameter,
+                                           in double theZParameter);
 
 
     /*!
@@ -540,8 +540,8 @@ module GEOM
      *  \brief Create a vector, corresponding to tangent to the given parameter on the given curve.
      *  \param theRefCurve The referenced curve.
      *  \param theParameter Value of parameter on the referenced curve.This value should be have value
-     *  \between 0. and 1.. Value of 0. corresponds first parameter of curve value 1. corresponds
-     *  \last parameter of curve.
+     *                      between 0. and 1.. Value of 0. corresponds first parameter of curve; value
+     *                      1. corresponds last parameter of curve.
      *  \return New GEOM_Object, containing the created point.
      */
      GEOM_Object MakeTangentOnCurve (in GEOM_Object theRefCurve,
@@ -628,7 +628,7 @@ module GEOM
     /*!
      *  \brief Create a plane, by two vectors.
      *  \param theVec1 Vector1, the plane has to pass through first point of this vector.
-     *  \param theVec Vector2, defining the plane normal direction.
+     *  \param theVec2 Vector2, 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.
      */
@@ -761,7 +761,7 @@ module GEOM
      *  \param theObject The object to be translated.
      *  \param theVector Translation vector, giving a direction.
      *  \param theDistance Translation distance, giving a distance.
-     *  \param theCope Translation copy, creating its copy if true.
+     *  \param theCopy Translation copy, creating its copy if true.
      *  \return New GEOM_Object, containing the translated object.
      */
     GEOM_Object TranslateVectorDistance (in GEOM_Object theObject,
@@ -807,8 +807,8 @@ module GEOM
      *  \brief Rotate given object around vector perpendicular to plane containing three points.
      *  \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.
+     *                      containing the three points.
+     *  \param thePoint1,thePoint2 - in a perpendicular plan of the axis.
      *  \return theObject.
      */
     GEOM_Object RotateThreePoints (in GEOM_Object theObject,
@@ -824,7 +824,7 @@ module GEOM
      *  \param theObject The object to be rotated.
      *  \param theCentPoint central point - the axis is the vector perpendicular to the plane
      *  containing the three points.
-     *  \param thePoint1 and thePoint2 - in a perpendicular plan of the axis.
+     *  \param thePoint1,thePoint2 - in a perpendicular plan of the axis.
      *  \return New GEOM_Object, containing the rotated object.
      */
     GEOM_Object RotateThreePointsCopy (in GEOM_Object theObject,
@@ -1053,7 +1053,7 @@ module GEOM
      *  \param  thePath Wire or Edge along that the object will be translated.
      *  \param  theDistance progress of Path (0 = actual location, 1 = end of path location).
      *  \param  theCopy is a true or false parameter. true is to create a copy, false to move the object.
-     *  \param  theCopy is a true or false parameter. true is to reverse direction, false is to move normal direction.
+     *  \param  theReverse is a true or false parameter. true is to reverse direction, false is to move normal direction.
      *  \return New GEOM_Object, containing the displaced shape.
      */
     GEOM_Object PositionAlongPath (in GEOM_Object theObject,
@@ -1081,7 +1081,7 @@ module GEOM
     GEOM_Object RecomputeObject (in GEOM_Object theObject);
   };
   
-  # GEOM_I3DPrimOperations:
// # GEOM_I3DPrimOperations:
   /*!
    *  \brief Interface for 3D primitives creation
    *
@@ -1125,7 +1125,7 @@ module GEOM
     /*!
      *  \brief Create a face by normale vector or edge and two specified sizes,
      *  vertical (H) and horisontal (W).
-     *  \param theVec defines plane.
+     *  \param theObj defines plane.
      *  \param theH vertical size (height).
      *  \param theW horisontal size (width).
      *  \return New GEOM_Object, containing the created face.
@@ -1298,7 +1298,7 @@ module GEOM
     /*!
      *  \brief Create a shape by extrusion of the base shape along a vector, defined by DX DY DZ.
      *  \param theBase Base shape to be extruded.
-     *  \param DX, DY, DZ end of extrusion vector.
+     *  \param theDX, theDY, theDZ end of extrusion vector.
      *  \return New GEOM_Object, containing the created prism.
      */
     GEOM_Object MakePrismDXDYDZ (in GEOM_Object theBase,
@@ -1311,6 +1311,23 @@ module GEOM
                                             in double theDX, in double theDY, in double theDZ,
                                             in double theScaleFactor);
 
+
+    /*!
+     *  \brief Add / Remove material to / from  a solid by extrusion of the base shape on the given distance.
+     *  \param theInitShape Initial shape on which to perform the feature.It has to be a solid or 
+     *   a compound made of a single solid
+     *  \param theBase Edge or wire defining the base shape to be extruded. 
+     *  \param theHeight Prism dimension along the normal of the face.
+     *  \param theAngle Draft angel in degrees
+     *  \param theFuse If true material is added else material is removed
+     *  \return New GEOM_Object, containing the modified shape
+     */
+    GEOM_Object MakeDraftPrism (in GEOM_Object theInitShape,
+                                in GEOM_Object theBase,
+                                in double theHeight, 
+                                in double theAngle,
+                                in boolean theFuse);
+
     /*!
      *  \brief Create a shape by extrusion of the base shape along
      *  the path shape. The path shape can be a wire or an edge.
@@ -1341,12 +1358,14 @@ module GEOM
 
     /*!
      *  \brief Create a filling from the given compound of contours.
+     *  \param theShape Initial shape on which to perform the feature.
      *  \param theMinDeg a minimal degree of BSpline surface to create
      *  \param theMaxDeg a maximal degree of BSpline surface to create
      *  \param theTol2D a 2d tolerance to be reached
      *  \param theTol3D a 3d tolerance to be reached
      *  \param theNbIter a number of iteration of approximation algorithm
      *  \param theMethod Kind of method to perform filling operation.
+     *  \param theApprox Boolean indicating if result should be approximated
      *  \return New GEOM_Object, containing the created filling surface.
      */
     GEOM_Object MakeFilling (in GEOM_Object theShape,
@@ -1382,7 +1401,7 @@ module GEOM
      *  \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
+     *  \param theWithCorrection - defining that the section is rotated to be
      *                                 orthogonal to the spine tangent in the correspondent point
      *  \return New GEOM_Object, containing the created pipe.
      */
@@ -1406,7 +1425,7 @@ module GEOM
      *  \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
+     *  \param theWithCorrection - defining that the section is rotated to be
      *                                 orthogonal to the spine tangent in the correspondent point
      *  \return New GEOM_Object, containing the created pipe.
      */
@@ -1444,7 +1463,7 @@ module GEOM
 
   };
 
-  # GEOM_IShapesOperations
// # GEOM_IShapesOperations
   /*!
    *  \brief Interface for Shapes creation:
    *
@@ -1596,7 +1615,7 @@ module GEOM
      *  in compliance with given list of edges
      *  \param theShape Initial shape.
      *  \param theTolerance Maximum distance between edges, which can be considered as coincident.
-     *  \param theFaces List of edges for gluing.
+     *  \param theEdges List of edges for gluing.
      *  \return New GEOM_Object, containing a copy of theShape without some edges.
      */
     GEOM_Object MakeGlueEdgesByList (in GEOM_Object theShape,
@@ -1798,7 +1817,7 @@ module GEOM
                                in GEOM_Object theAx1,
                                in shape_state theState);
     /*!
-     *  \briefFind in \a theShape all sub-shapes of type \a theShapeType, situated relatively
+     *  \brief 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.
@@ -2099,9 +2118,20 @@ module GEOM
      */
     GEOM_Object GetSame (in GEOM_Object theShapeWhere,
                                 in GEOM_Object theShapeWhat);
+
+    /*!
+     *  \brief Get sub-shape Ids of theShapeWhere, which are
+     *   coincident with \a theShapeWhat that can either SOLID, FACE, EDGE or VERTEX.
+     *  \param theShapeWhere Shape to find sub-shapes of.
+     *  \param theShapeWhat Shape, specifying what to find.
+     *  \return found sub-shape Ids.
+     */
+    ListOfLong GetSameIDs (in GEOM_Object theShapeWhere,
+                           in GEOM_Object theShapeWhat);
+
   };
 
-  # GEOM_IBlocksOperations: 
// # GEOM_IBlocksOperations: 
   /*!
    *  \brief Interface for Blocks construction
    *  Face from points or edges, Block from faces,
@@ -2110,7 +2140,7 @@ module GEOM
   interface GEOM_IBlocksOperations : GEOM_IOperations
   {
    
-    # Creation of blocks
+  //  # Creation of blocks
 
     /*!
      *  \brief Create a quadrangle face from four edges. Order of Edges is not
@@ -2150,7 +2180,7 @@ module GEOM
      *  faces is not important. 
      *
      *  It is  not necessary that Faces share the same edge.
-     *  \param theFace1-theFace6 Faces for the hexahedral solid.
+     *  \param theFace1,theFace2,theFace3,theFace4,theFace5,theFace6 Faces for the hexahedral solid.
      *  \return New GEOM_Object, containing the created solid.
      */
     GEOM_Object MakeHexa (in GEOM_Object theFace1,
@@ -2171,7 +2201,7 @@ module GEOM
                                 in GEOM_Object theFace2);
 
     
-    # Extract elements of blocks and blocks compounds
+  //  # Extract elements of blocks and blocks compounds
      
 
     /*!
@@ -2219,7 +2249,7 @@ module GEOM
     /*!
      *  \brief Returns a face, found in the given shape by four given corner vertices.
      *  \param theShape Block or a compound of blocks.
-     *  \param thePoint1-thePoint4 Points, close to the corners of the desired face.
+     *  \param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face.
      *  \return New GEOM_Object, containing the found face.
      */
     GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
@@ -2258,7 +2288,7 @@ module GEOM
 
     /*!
      *  \brief Find a face of block, whose outside normale has minimal angle with the given vector.
-     *  \param theShape Block or a compound of blocks.
+     *  \param theBlock Block or a compound of blocks.
      *  \param theVector Vector, close to the normale of the desired face.
      *  \return New GEOM_Object, containing the found face.
      */
@@ -2281,7 +2311,7 @@ module GEOM
                                     in long        theShapeType,
                                     in double      theTolerance);
 
-     #  Extract blocks from blocks compounds
+   //  #  Extract blocks from blocks compounds
      
 
     /*!
@@ -2290,8 +2320,8 @@ module GEOM
      *  \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.
+     *  \param theNbBlocks Number of specified blocks in theCompound.
      *  \return TRUE, if the given compound contains only blocks.
-     *  \return theNbBlocks Number of specified blocks in theCompound.
      */
     boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
                                 in long        theMinNbFaces,
@@ -2344,8 +2374,8 @@ module GEOM
      *  - The glue between two quadrangle faces should be applied.
      *    \note Single block is also accepted as a valid compound of blocks.
      *  \param theCompound The compound to check.
+     *  \param theErrors Structure, containing discovered errors and incriminated sub-shapes.
      *  \return TRUE, if the given shape is a compound of blocks.
-     *  \return theErrors Structure, containing discovered errors and incriminated sub-shapes.
      */
     boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
                                    out BCErrors   theErrors);
@@ -2425,7 +2455,7 @@ module GEOM
     ListOfGO GetBlocksByParts (in GEOM_Object theCompound,
                                in ListOfGO    theParts);
 
-   #  Operations on blocks with gluing of result
+  // #  Operations on blocks with gluing of result
 
     /*!
      *  \brief Multi-transformate block and glue the result.
@@ -2460,7 +2490,7 @@ module GEOM
                                            in long        theDirFace2V,
                                            in long        theNbTimesV);
 
-   # Special operation - propagation
+  // # Special operation - propagation
    
 
     /*!
@@ -2475,7 +2505,7 @@ module GEOM
     ListOfGO Propagate (in GEOM_Object theShape);
   };
 
-  # GEOM_IBooleanOperations
// # GEOM_IBooleanOperations
   /*!
    *  \brief Interface for boolean operations (Cut, Fuse, Common)
    */
@@ -2501,7 +2531,7 @@ 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, then only shapes of
+     *  \param theKeepNonlimitShapes: if this parameter == 0, then only shapes of
      *                             target type (equal to Limit) are kept in the result,
      *                             else standalone shapes of lower dimension
      *                             are kept also (if they exist).
@@ -2561,7 +2591,7 @@ module GEOM
                                    in GEOM_Object thePlane);
   };
 
-  # GEOM_ICurvesOperations:
// # GEOM_ICurvesOperations:
   /*!
    *  \brief Interface for curves creation.
    *
@@ -2717,7 +2747,7 @@ module GEOM
      *  \param thezExpr parametric equation of the coordinates Z.
      *  \param theParamMin the minimal value of the parameter.
      *  \param theParamMax the maximum value of the parameter.
-     *  \param theParamStep the number of steps of the parameter discretization.
+     *  \param theParamNbStep the number of steps of the parameter discretization.
      *  \param theCurveType the type of the curve.
      *  \return New GEOM_Object, containing the created curve.
      */    
@@ -2790,7 +2820,7 @@ module GEOM
     GEOM_Object MakeSketcherOnPlane (in string theCommand, in GEOM_Object theWorkingPlane);
   };
 
-  # GEOM_ILocalOperations:
// # GEOM_ILocalOperations:
   /*!
    *  \brief Interface for fillet and chamfer creation.
    */
@@ -2927,7 +2957,7 @@ module GEOM
     *  \brief 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 theD1,theD2 Chamfer size
     *  \param theEdges Sequence of edges of \a theShape.
     *  \return New GEOM_Object, containing the result shape.
     */
@@ -2965,7 +2995,7 @@ module GEOM
     long GetSubShapeIndex (in GEOM_Object theShape, in GEOM_Object theSubShape);
   };
 
-  #  GEOM_IHealingOperations: 
// #  GEOM_IHealingOperations: 
   /*!
    *  \brief Interface for shape healing operations
    *
@@ -3107,7 +3137,7 @@ module GEOM
 
   };
 
-  # GEOM_IInsertOperations:
// # GEOM_IInsertOperations:
   /*!
    *  \brief Interface for shape insert operations (like copy, import).
    *
@@ -3190,7 +3220,7 @@ module GEOM
     ListOfLong GetAllTextures();
   };
 
-  # GEOM_IKindOfShape:
// # GEOM_IKindOfShape:
   /*!
    *  \brief Interface for shape_kind enumeration.
    */
@@ -3264,7 +3294,7 @@ module GEOM
     };
   };
 
-  # GEOM_IMeasureOperations:
// # GEOM_IMeasureOperations:
   /*!
    *  \brief Interface for measurement (distance, whatis) and
    *  properties calculation (like Centre of Mass, Inertia, etc.).
@@ -3346,7 +3376,7 @@ module GEOM
     /*!
      *  \brief Get inertia matrix and moments of inertia of theShape.
      *  \param theShape Shape to calculate inertia of.
-     *  \param I(1-3)(1-3) Output. Components of the inertia matrix of the given shape.
+     *  \param I11,I12,I13,I21,I22,I23,I31,I32,I33 Output. Components of the inertia matrix of the given shape.
      *  \param Ix,Iy,Iz Output. Moments of inertia of the given shape.
      *  \return Returns inertia through the last twelve arguments.
      */
@@ -3517,7 +3547,7 @@ module GEOM
 
   };
 
-  # GEOM_IGroupOperations:
// # GEOM_IGroupOperations:
   /*!
    *  \brief Interface for groups creation.
    */
@@ -3595,7 +3625,7 @@ module GEOM
     ListOfLong GetObjects (in GEOM_Object theGroup);
   };
 
-  # GEOM_IAdvancedOperations:
// # GEOM_IAdvancedOperations:
   /*!
    *  \brief Interface for advanced modeling functions.
    */
@@ -3728,10 +3758,19 @@ module GEOM
                                                in double theR2, in double theW2, in double theL2,
                                                in double theRF, in boolean theHexMesh,
                                                in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
+    /*!
+     *  This function allows to create a disk already divided into blocks. It
+     *  can be use to create divided pipes for later meshing in hexaedra.
+     *  \param theR Radius of the disk
+     *  \param theRatio Relative size of the central square diagonal against the disk diameter
+     *  \return New GEOM_Object, containing the created shape.
+     */
+    GEOM_Object MakeDividedDisk (in double theR, in double theRatio, in short theOrientation);
+
     /*@@ insert new functions before this line @@ do not remove this line @@*/
   };
 
-  # GEOM_Gen:
// # GEOM_Gen:
   /*!
    *  \brief Interface to access other GEOM interfaces.
    *
@@ -3826,7 +3865,24 @@ module GEOM
      *
      *  To be used from GUI and from geompy.addToStudy.
      *  Work like the above method, but accepts study object theSObject instead of GEOM_Object.
+     *  \param theStudy  the study, in which theObject is published already,
+     *                   and in which the arguments will be published
      *  \param theSObject study object, referencing GEOM_Object, arguments of which will be published
+     *  \param theArgs   list of GEOM_Object, operation arguments to be published.
+     *                   If this list is empty, all operation arguments will be published
+     *  \param theFindMethod method to search sub-shapes, corresponding to arguments and
+     *                       their sub-shapes. Value from enumeration GEOM::find_shape_method.
+     *  \param theInheritFirstArg set properties of the first argument for \a theObject.
+     *                            Do not publish sub-shapes in place of arguments, but only
+     *                            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
+     *                            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.
+     *  \param theAddPrefix add prefix "from_" to names of restored sub-shapes,
+     *                      and prefix "from_subshapes_of_" to names of partially restored sub-shapes.
      */
     ListOfGO RestoreSubShapesSO (in SALOMEDS::Study   theStudy,
                                  in SALOMEDS::SObject theSObject,
@@ -3835,7 +3891,7 @@ module GEOM
                                  in boolean           theInheritFirstArg,
                                  in boolean           theAddPrefix);
 
-    #  Methods to access interfaces for objects creation and transformation
+   // #  Methods to access interfaces for objects creation and transformation
     
     GEOM_IBasicOperations     GetIBasicOperations    (in long theStudyID) raises (SALOME::SALOME_Exception);
     GEOM_ITransformOperations GetITransformOperations(in long theStudyID) raises (SALOME::SALOME_Exception);
@@ -3851,7 +3907,7 @@ module GEOM
     GEOM_IGroupOperations     GetIGroupOperations    (in long theStudyID) raises (SALOME::SALOME_Exception);
     GEOM_IAdvancedOperations  GetIAdvancedOperations (in long theStudyID) raises (SALOME::SALOME_Exception);
 
-    # Objects Management
+  //  # Objects Management
      
 
     /*!
@@ -3877,7 +3933,7 @@ module GEOM
      */
     GEOM_Object AddSubShape (in GEOM_Object theMainShape, in ListOfLong theIndices);
 
-  #  GEOM_Objects IOR Management
// #  GEOM_Objects IOR Management
     
     /*!
      *  \brief Returns a GEOM_Object defined by its IOR