Salome HOME
0022179: [CEA 800] Suppress common edges on two continuous faces without using Remove...
[modules/geom.git] / idl / GEOM_Gen.idl
index f35c7935e7ed0be5b96fdcaa788e906f96734643..874f7d6069fa9dc0f720b9b728d49dfef39494d0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2013  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
@@ -804,7 +804,7 @@ module GEOM
     /*!
      *  \brief Translate the given object along the given vector a given number times
      *  \param theObject The object to be translated.
-     *  \param theVector Direction of the translation.
+     *  \param theVector Direction of the translation. DX if None.
      *  \param theStep Distance to translate on.
      *  \param theNbTimes Quantity of translations to be done.
      *  \return New GEOM_Object, containing compound of all
@@ -818,10 +818,10 @@ module GEOM
     /*!
      *  \brief Conseqently apply two specified translations to theObject specified number of times.
      *  \param theObject The object to be translated.
-     *  \param theVector1 Direction of the first translation.
+     *  \param theVector1 Direction of the first translation. DX if None.
      *  \param theStep1 Step of the first translation.
      *  \param theNbTimes1 Quantity of translations to be done along theVector1.
-     *  \param theVector2 Direction of the second translation.
+     *  \param theVector2 Direction of the second translation. DY if None.
      *  \param theStep2 Step of the second translation.
      *  \param theNbTimes2 Quantity of translations to be done along theVector2.
      *  \return New GEOM_Object, containing compound of all
@@ -888,20 +888,56 @@ module GEOM
                             in GEOM_Object theAxis,
                             in double theAngle);
 
-
     /*!
      *  \brief Rotate the given object around the given axis a given number times.
      *
-     *  Rotation angle will be 2*PI/theNbTimes.
+     *  Rotation angle will be 2*PI/theNbObjects.
      *  \param theObject The object to be rotated.
-     *  \param theAxis The rotation axis.
-     *  \param theNbTimes Quantity of rotations to be done.
+     *  \param theAxis The rotation axis. DZ if None.
+     *  \param theNbObjects Quantity of rotations to be done.
      *  \return New GEOM_Object, containing compound of all the
      *          shapes, obtained after each rotation.
      */
     GEOM_Object MultiRotate1D (in GEOM_Object theObject,
                                in GEOM_Object theAxis,
-                               in long theNbTimes);
+                               in long theNbObjects);
+
+    /*!
+     *  \brief Rotate the given object around the given axis
+     *         a given number times on the given angle.
+     *
+     *  \param theObject The object to be rotated.
+     *  \param theAxis The rotation axis. DZ if None.
+     *  \param theAngleStep Rotation angle in radians.
+     *  \param theNbSteps Quantity of rotations to be done.
+     *  \return New GEOM_Object, containing compound of all the
+     *          shapes, obtained after each rotation.
+     */
+    GEOM_Object MultiRotate1DByStep (in GEOM_Object theObject,
+                                     in GEOM_Object theAxis,
+                                     in double theAngleStep,
+                                     in long theNbSteps);
+
+    /*!
+     *  \brief Rotate the given object around the given axis
+     *  a given number times and multi-translate each rotation result.
+     *
+     *  Rotation angle will be 2*PI/theNbObjects.
+     *  Translation direction passes through center of gravity
+     *  of rotated shape and its projection on the rotation axis.
+     *  \param theObject The object to be rotated.
+     *  \param theAxis Rotation axis. DZ if None.
+     *  \param theNbObjects Quantity of rotations to be done.
+     *  \param theRadialStep Translation distance.
+     *  \param theNbSteps Quantity of translations to be done.
+     *  \return New GEOM_Object, containing compound of all the
+     *          shapes, obtained after each transformation.
+     */
+    GEOM_Object MultiRotate2DNbTimes (in GEOM_Object theObject,
+                                      in GEOM_Object theAxis,
+                                      in long theNbObjects,
+                                      in double theRadialStep,
+                                      in long theNbSteps);
 
     /*!
      *  \brief Rotate the given object around the
@@ -911,20 +947,43 @@ module GEOM
      *  Translation direction passes through center of gravity
      *  of rotated shape and its projection on the rotation axis.
      *  \param theObject The object to be rotated.
-     *  \param theAxis Rotation axis.
-     *  \param theAngle Rotation angle in graduces.
-     *  \param theNbTimes1 Quantity of rotations to be done.
-     *  \param theStep Translation distance.
-     *  \param theNbTimes2 Quantity of translations to be done.
+     *  \param theAxis Rotation axis. DZ if None.
+     *  \param theAngleStep Rotation angle in radians.
+     *  \param theNbSteps1 Quantity of rotations to be done.
+     *  \param theRadialStep Translation distance.
+     *  \param theNbSteps2 Quantity of translations to be done.
+     *  \return New GEOM_Object, containing compound of all the
+     *          shapes, obtained after each transformation.
+     */
+    GEOM_Object MultiRotate2DByStep (in GEOM_Object theObject,
+                                     in GEOM_Object theAxis,
+                                     in double theAngleStep,
+                                     in long theNbSteps1,
+                                     in double theRadialStep,
+                                     in long theNbSteps2);
+
+    /*!
+     *  \brief Rotate the given object around the
+     *  given axis on the given angle a given number
+     *  times and multi-translate each rotation result.
+     *
+     *  Translation direction passes through center of gravity
+     *  of rotated shape and its projection on the rotation axis.
+     *  \param theObject The object to be rotated.
+     *  \param theAxis Rotation axis. DZ if None.
+     *  \param theAngleStep Rotation angle in degrees.
+     *  \param theNbSteps1 Quantity of rotations to be done.
+     *  \param theRadialStep Translation distance.
+     *  \param theNbSteps2 Quantity of translations to be done.
      *  \return New GEOM_Object, containing compound of all the
      *          shapes, obtained after each transformation.
      */
     GEOM_Object MultiRotate2D (in GEOM_Object theObject,
                                in GEOM_Object theAxis,
-                               in double theAngle,
-                               in long theNbTimes1,
-                               in double theStep,
-                               in long theNbTimes2);
+                               in double theAngleStep,
+                               in long theNbSteps1,
+                               in double theRadialStep,
+                               in long theNbSteps2);
 
     /*!
      *  \brief Replace the given object by an object,
@@ -1095,17 +1154,6 @@ module GEOM
                                    in boolean theCopy,
                                    in boolean theReverse);
 
-    /*!
-     *  \brief Transform the shape in the same way what was used for the sample shape creation.
-     *  \param theObject The object to be transformed.
-     *  \param theSample The object containing information about required transformation.
-     *  \note Implementation of this method is limited by multi-transformations now.
-     *  \note Internal method.
-     *  \return New GEOM_Object, containing the transformed shape.
-     */
-    GEOM_Object TransformLikeOtherCopy (in GEOM_Object theObject,
-                                        in GEOM_Object theSample);
-
     /*!
      *  \brief Recompute the shape from its arguments.
      *  \param theObject The object to be recomputed.
@@ -1493,6 +1541,19 @@ module GEOM
                                              in GEOM_Object thePath,
                                              in GEOM_Object theVec);
 
+
+     /*!
+     *  \brief Make a thick solid from a surface shape (face or shell)
+     *  \param theObject Surface from which the thick solid is made
+     *  \param theThickness Value of the thickness
+     *  \return New GEOM_Object, containing the created pipe if isCopy = true
+     *          or the modified object if isCopy = false
+     */
+    GEOM_Object MakeThickening (in GEOM_Object theObject,
+                                in double theThickness,
+                                in boolean isCopy);
+
+    
     /*!
      *  \brief Build a middle path of a pipe-like shape.
      *
@@ -1793,6 +1854,14 @@ module GEOM
      */
     long GetSubShapeIndex (in GEOM_Object theMainShape, in GEOM_Object theSubShape);
 
+    /*!
+     *  Get global indices of \a theSubShapes in \a theMainShape.
+     *  \param theMainShape Main shape.
+     *  \param theSubShapes List of sub-shapes of the main shape.
+     *  \return list of global indices of \a theSubShapes in \a theMainShape.
+     */
+    ListOfLong GetSubShapesIndices (in GEOM_Object theMainShape, in ListOfGO theSubShapes);
+
     /*!
      *  \brief Get index of \a theSubShape in \a theMainShape, unique among sub-shapes of the same type.
      *
@@ -2487,6 +2556,15 @@ module GEOM
     GEOM_Object RemoveExtraEdges (in GEOM_Object theShape,
                                   in long        theOptimumNbFaces);
 
+    /*!
+     *  \brief Performs union faces of \a theShape.
+     *
+     *  Unite faces sharing one surface.
+     *  \param theShape The compound or single solid that contains faces to perform union.
+     *  \return Improved shape.
+     */
+    GEOM_Object UnionFaces (in GEOM_Object theShape);
+
     /*!
      *  \brief Check, if the given shape is a blocks compound.
      *
@@ -2606,6 +2684,29 @@ module GEOM
                              in GEOM_Object theShape2,
                              in long theOperation);
 
+    /*!
+     *  \brief Perform fusion boolean operation on list of objects.
+     *  \param theShapes Shapes to be fused.
+     *  \return New GEOM_Object, containing the result shape.
+     */
+    GEOM_Object MakeFuseList (in ListOfGO theShapes);
+
+    /*!
+     *  \brief Perform common boolean operation on list of objects.
+     *  \param theShapes Shapes for common operation.
+     *  \return New GEOM_Object, containing the result shape.
+     */
+    GEOM_Object MakeCommonList (in ListOfGO theShapes);
+
+    /*!
+     *  \brief Perform cutting of list of objects from theMainShape.
+     *  \param theMainShape the object for cut operation.
+     *  \param theShapes Shapes to be cut from theMainShape (tools).
+     *  \return New GEOM_Object, containing the result shape.
+     */
+    GEOM_Object MakeCutList (in GEOM_Object theMainShape,
+                             in ListOfGO theShapes);
+
     /*!
      *  \brief Perform partition operation.
      *
@@ -2804,6 +2905,17 @@ module GEOM
                                          in boolean  theIsClosed,
                                          in boolean  theDoReordering);
 
+    /*!
+     *  \brief Create B-Spline curve on the set of points.
+     *  \param thePoints Sequence of points for the B-Spline curve.
+     *  \param theFirstVec Vector object, defining the curve direction at its first point.
+     *  \param theLastVec Vector object, defining the curve direction at its last point.
+     *  \return New GEOM_Object, containing the created B-Spline curve.
+     */
+    GEOM_Object MakeSplineInterpolWithTangents (in ListOfGO    thePoints,
+                                                in GEOM_Object theFirstVec,
+                                                in GEOM_Object theLastVec);
+
     /*!
      *  \brief Creates a curve using the parametric definition of the basic points.
      *  \param thexExpr parametric equation of the coordinates X.
@@ -3537,16 +3649,27 @@ module GEOM
     /*!
      *  \brief Get parameters of bounding box of the given shape
      *  \param theShape Shape to obtain bounding box of.
+     *  \param precise TRUE for precise computation; FALSE for fast one.
      *  \param Xmin,Xmax Output. Limits of shape along OX axis.
      *  \param Ymin,Ymax Output. Limits of shape along OY axis.
      *  \param Zmin,Zmax Output. Limits of shape along OZ axis.
      *  \return Returns parameters of bounding box through the last six arguments.
      */
     void GetBoundingBox (in GEOM_Object theShape,
+                         in boolean precise,
                          out double Xmin, out double Xmax,
                          out double Ymin, out double Ymax,
                          out double Zmin, out double Zmax);
 
+    /*!
+     *  \brief Get bounding box of the given shape
+     *  \param theShape Shape to obtain bounding box of.
+     *  \param precise TRUE for precise computation; FALSE for fast one.
+     *  \return New GEOM_Object, containing the created bounding box.
+     */
+    GEOM_Object MakeBoundingBox (in GEOM_Object theShape,
+                                 in boolean precise);
+
     /*!
      *  \brief Get min and max tolerances of sub-shapes of theShape
      *  \param theShape Shape, to get tolerances of.
@@ -3622,6 +3745,16 @@ module GEOM
                            out double X1, out double Y1, out double Z1,
                            out double X2, out double Y2, out double Z2);
 
+    /*!
+     *  \brief Get closest points of the given shapes.
+     *  \param theShape1,theShape2 Shapes to find closest points of.
+     *  \param theCoords Output. List of (X, Y, Z) coordinates for all couples of points.
+     *  \return The number of found solutions (-1 in case of infinite number of solutions).
+     */
+    long ClosestPoints (in GEOM_Object theShape1,
+                        in GEOM_Object theShape2,
+                        out ListOfDouble theCoords);
+
     /*!
      *  \brief Get angle between the given lines or linear edges.
      *  \param theShape1,theShape2 Shapes to find angle between. Lines or linear edges.
@@ -3838,6 +3971,8 @@ module GEOM
    */
   interface GEOM_IAdvancedOperations : GEOM_IOperations
   {
+    // T-Shape WITHOUT Thickness reduction
+
     /*!
      *  \brief Create a T-shape object with specified caracteristics for the main and
      *  the incident pipes (radius, width, half-length).
@@ -3965,6 +4100,256 @@ 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);
+
+    // T-Shape WITH Thickness reduction
+
+    /*!
+     *  \brief Create a T-shape object with specified caracteristics for the main and
+     *  the incident pipes (radius, width, half-length).
+     *
+     *  Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
+     *  \param theR1 Internal radius of main pipe
+     *  \param theW1 Width of main pipe
+     *  \param theL1 Half-length of main pipe
+     *  \param theR2 Internal radius of incident pipe (R2 < R1)
+     *  \param theW2 Width of incident pipe (R2+W2 < R1+W1)
+     *  \param theL2 Half-length of incident pipe
+     *
+     *  \param theRL Internal radius of left thickness reduction
+     *  \param theWL Width of left thickness reduction
+     *  \param theLtransL Length of left transition part
+     *  \param theLthinL Length of left thin part
+     *
+     *  \param theRR Internal radius of right thickness reduction
+     *  \param theWR Width of right thickness reduction
+     *  \param theLtransR Length of right transition part
+     *  \param theLthinR Length of right thin part
+     *
+     *  \param theRI Internal radius of incident thickness reduction
+     *  \param theWI Width of incident thickness reduction
+     *  \param theLtransI Length of incident transition part
+     *  \param theLthinI Length of incident thin part
+     *
+     *  \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
+     *  \return List of GEOM_Object, containing the created shape and propagation groups.
+     */
+    ListOfGO MakePipeTShapeTR (in double theR1, in double theW1, in double theL1,
+                               in double theR2, in double theW2, in double theL2,
+                               in double theRL, in double theWL, in double theLtransL, in double theLthinL,
+                               in double theRR, in double theWR, in double theLtransR, in double theLthinR,
+                               in double theRI, in double theWI, in double theLtransI, in double theLthinI,
+                               in boolean theHexMesh);
+    /*!
+     *  \brief Create a T-shape object with specified caracteristics for the main and
+     *  the incident pipes (radius, width, half-length).
+     *
+     *  The extremities of the main pipe are located on junctions points P1 and P2.
+     *  The extremity of the incident pipe is located on junction point P3.
+     *  \param theR1 Internal radius of main pipe
+     *  \param theW1 Width of main pipe
+     *  \param theL1 Half-length of main pipe
+     *  \param theR2 Internal radius of incident pipe (R2 < R1)
+     *  \param theW2 Width of incident pipe (R2+W2 < R1+W1)
+     *  \param theL2 Half-length of incident pipe
+     *
+     *  \param theRL Internal radius of left thickness reduction
+     *  \param theWL Width of left thickness reduction
+     *  \param theLtransL Length of left transition part
+     *  \param theLthinL Length of left thin part
+     *
+     *  \param theRR Internal radius of right thickness reduction
+     *  \param theWR Width of right thickness reduction
+     *  \param theLtransR Length of right transition part
+     *  \param theLthinR Length of right thin part
+     *
+     *  \param theRI Internal radius of incident thickness reduction
+     *  \param theWI Width of incident thickness reduction
+     *  \param theLtransI Length of incident transition part
+     *  \param theLthinI Length of incident thin part
+     *
+     *  \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
+     *  \param theP1 1st junction point of main pipe
+     *  \param theP2 2nd junction point of main pipe
+     *  \param theP3 Junction point of incident pipe
+     *  \return List of GEOM_Object, containing the created shape and propagation groups.
+     */
+    ListOfGO MakePipeTShapeTRWithPosition
+                 (in double theR1, in double theW1, in double theL1,
+                  in double theR2, in double theW2, in double theL2,
+                  in double theRL, in double theWL, in double theLtransL, in double theLthinL,
+                  in double theRR, in double theWR, in double theLtransR, in double theLthinR,
+                  in double theRI, in double theWI, in double theLtransI, in double theLthinI,
+                  in boolean theHexMesh,
+                  in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
+    /*!
+     *  \brief Create a T-shape object with specified caracteristics for the main and
+     *  the incident pipes (radius, width, half-length). A chamfer is created
+     *  on the junction of the pipes.
+     *  
+     *  Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
+     *  \param theR1 Internal radius of main pipe
+     *  \param theW1 Width of main pipe
+     *  \param theL1 Half-length of main pipe
+     *  \param theR2 Internal radius of incident pipe (R2 < R1)
+     *  \param theW2 Width of incident pipe (R2+W2 < R1+W1)
+     *  \param theL2 Half-length of incident pipe
+     *
+     *  \param theRL Internal radius of left thickness reduction
+     *  \param theWL Width of left thickness reduction
+     *  \param theLtransL Length of left transition part
+     *  \param theLthinL Length of left thin part
+     *
+     *  \param theRR Internal radius of right thickness reduction
+     *  \param theWR Width of right thickness reduction
+     *  \param theLtransR Length of right transition part
+     *  \param theLthinR Length of right thin part
+     *
+     *  \param theRI Internal radius of incident thickness reduction
+     *  \param theWI Width of incident thickness reduction
+     *  \param theLtransI Length of incident transition part
+     *  \param theLthinI Length of incident thin part
+     *
+     *  \param theH Height of the chamfer.
+     *  \param theW Width of the chamfer.
+     *  \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
+     *  \return List of GEOM_Object, containing the created shape and propagation groups.
+     */
+    ListOfGO MakePipeTShapeTRChamfer
+                 (in double theR1, in double theW1, in double theL1,
+                  in double theR2, in double theW2, in double theL2,
+                  in double theRL, in double theWL, in double theLtransL, in double theLthinL,
+                  in double theRR, in double theWR, in double theLtransR, in double theLthinR,
+                  in double theRI, in double theWI, in double theLtransI, in double theLthinI,
+                  in double theH, in double theW, in boolean theHexMesh);
+    /*!
+     *  \brief Create a T-shape object with specified caracteristics for the main and
+     *  the incident pipes (radius, width, half-length). 
+     * 
+     *  A chamfer is created on the junction of the pipes.
+     *  The extremities of the main pipe are located on junctions points P1 and P2.
+     *  The extremity of the incident pipe is located on junction point P3.
+     *  \param theR1 Internal radius of main pipe
+     *  \param theW1 Width of main pipe
+     *  \param theL1 Half-length of main pipe
+     *  \param theR2 Internal radius of incident pipe (R2 < R1)
+     *  \param theW2 Width of incident pipe (R2+W2 < R1+W1)
+     *  \param theL2 Half-length of incident pipe
+     *
+     *  \param theRL Internal radius of left thickness reduction
+     *  \param theWL Width of left thickness reduction
+     *  \param theLtransL Length of left transition part
+     *  \param theLthinL Length of left thin part
+     *
+     *  \param theRR Internal radius of right thickness reduction
+     *  \param theWR Width of right thickness reduction
+     *  \param theLtransR Length of right transition part
+     *  \param theLthinR Length of right thin part
+     *
+     *  \param theRI Internal radius of incident thickness reduction
+     *  \param theWI Width of incident thickness reduction
+     *  \param theLtransI Length of incident transition part
+     *  \param theLthinI Length of incident thin part
+     *
+     *  \param theH Height of the chamfer.
+     *  \param theW Width of the chamfer.
+     *  \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
+     *  \param theP1 1st junction point of main pipe
+     *  \param theP2 2nd junction point of main pipe
+     *  \param theP3 Junction point of incident pipe
+     *  \return List of GEOM_Object, containing the created shape and propagation groups.
+     */
+    ListOfGO MakePipeTShapeTRChamferWithPosition
+                 (in double theR1, in double theW1, in double theL1,
+                  in double theR2, in double theW2, in double theL2,
+                  in double theRL, in double theWL, in double theLtransL, in double theLthinL,
+                  in double theRR, in double theWR, in double theLtransR, in double theLthinR,
+                  in double theRI, in double theWI, in double theLtransI, in double theLthinI,
+                  in double theH, in double theW, in boolean theHexMesh,
+                  in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3);
+    /*!
+     *  \brief Create a T-shape object with specified caracteristics for the main and
+     *  the incident pipes (radius, width, half-length). 
+     *
+     *  A fillet is created on the junction of the pipes.
+     *  Center of the shape is (0,0,0). The main plane of the T-shape is XOY.
+     *  \param theR1 Internal radius of main pipe
+     *  \param theW1 Width of main pipe
+     *  \param theL1 Half-length of main pipe
+     *  \param theR2 Internal radius of incident pipe (R2 < R1)
+     *  \param theW2 Width of incident pipe (R2+W2 < R1+W1)
+     *  \param theL2 Half-length of incident pipe
+     *
+     *  \param theRL Internal radius of left thickness reduction
+     *  \param theWL Width of left thickness reduction
+     *  \param theLtransL Length of left transition part
+     *  \param theLthinL Length of left thin part
+     *
+     *  \param theRR Internal radius of right thickness reduction
+     *  \param theWR Width of right thickness reduction
+     *  \param theLtransR Length of right transition part
+     *  \param theLthinR Length of right thin part
+     *
+     *  \param theRI Internal radius of incident thickness reduction
+     *  \param theWI Width of incident thickness reduction
+     *  \param theLtransI Length of incident transition part
+     *  \param theLthinI Length of incident thin part
+     *
+     *  \param theRF Radius of curvature of fillet.
+     *  \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
+     *  \return List of GEOM_Object, containing the created shape and propagation groups.
+     */
+    ListOfGO MakePipeTShapeTRFillet
+                 (in double theR1, in double theW1, in double theL1,
+                  in double theR2, in double theW2, in double theL2,
+                  in double theRL, in double theWL, in double theLtransL, in double theLthinL,
+                  in double theRR, in double theWR, in double theLtransR, in double theLthinR,
+                  in double theRI, in double theWI, in double theLtransI, in double theLthinI,
+                  in double theRF, in boolean theHexMesh);
+    /*!
+     *  \brief Create a T-shape object with specified caracteristics for the main and
+     *  the incident pipes (radius, width, half-length).
+     *
+     *  A fillet is created on the junction of the pipes.
+     *  The extremities of the main pipe are located on junctions points P1 and P2.
+     *  The extremity of the incident pipe is located on junction point P3.
+     *  \param theR1 Internal radius of main pipe
+     *  \param theW1 Width of main pipe
+     *  \param theL1 Half-length of main pipe
+     *  \param theR2 Internal radius of incident pipe (R2 < R1)
+     *  \param theW2 Width of incident pipe (R2+W2 < R1+W1)
+     *  \param theL2 Half-length of incident pipe
+     *
+     *  \param theRL Internal radius of left thickness reduction
+     *  \param theWL Width of left thickness reduction
+     *  \param theLtransL Length of left transition part
+     *  \param theLthinL Length of left thin part
+     *
+     *  \param theRR Internal radius of right thickness reduction
+     *  \param theWR Width of right thickness reduction
+     *  \param theLtransR Length of right transition part
+     *  \param theLthinR Length of right thin part
+     *
+     *  \param theRI Internal radius of incident thickness reduction
+     *  \param theWI Width of incident thickness reduction
+     *  \param theLtransI Length of incident transition part
+     *  \param theLthinI Length of incident thin part
+     *
+     *  \param theRF Radius of curvature of fillet.
+     *  \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true)
+     *  \param theP1 1st junction point of main pipe
+     *  \param theP2 2nd junction point of main pipe
+     *  \param theP3 Junction point of incident pipe
+     *  \return List of GEOM_Object, containing the created shape and propagation groups.
+     */
+    ListOfGO MakePipeTShapeTRFilletWithPosition
+                 (in double theR1, in double theW1, in double theL1,
+                  in double theR2, in double theW2, in double theL2,
+                  in double theRL, in double theWL, in double theLtransL, in double theLthinL,
+                  in double theRR, in double theWR, in double theLtransR, in double theLthinR,
+                  in double theRI, in double theWI, in double theLtransI, in double theLthinI,
+                  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.