+ in GEOM_Object theAxis,
+ in double theAngle);
+ /* The Same Revolution but in both ways forward&backward */
+ GEOM_Object MakeRevolutionAxisAngle2Ways (in GEOM_Object theBase,
+ in GEOM_Object theAxis,
+ in double theAngle);
+
+ /*!
+ * \brief Create a face from a given set of contours.
+ * \param theContours either a list or a compound of edges/wires.
+ * \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 (face), containing the created filling surface.
+ */
+ GEOM_Object MakeFilling (in ListOfGO theContours,
+ in long theMinDeg, in long theMaxDeg,
+ in double theTol2D, in double theTol3D,
+ in long theNbIter,
+ in filling_oper_method theMethod,
+ in boolean theApprox);
+
+ /*!
+ * \brief Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
+ * \param theSeqSections - set of specified sections.
+ * \param theModeSolid - mode defining building solid or shell
+ * \param thePreci - precision 3D used for smoothing by default 1.e-6
+ * \param theRuled - mode defining type of the result surfaces (ruled or smoothed).
+ * \return New GEOM_Object, containing the created shell or solid.
+ */
+ GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
+ in boolean theModeSolid,
+ in double thePreci,
+ in boolean theRuled);
+
+ /*!
+ * \brief Create a shape by extrusion of the profile shape along
+ * the path shape.
+ *
+ * The path shape can be a wire or an edge.
+ * the several profiles can be specified in the several locations of path.
+ * \param theSeqBases - list of Bases shape to be extruded.
+ * \param theLocations - list of locations on the path corresponding
+ * specified list of the Bases shapes. Number of locations
+ * should be equal to number of bases or list of locations can be empty.
+ * \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. Ignored if IsBySteps is set.
+ * \param theWithCorrection - defining that the section is rotated to be
+ * orthogonal to the spine tangent in
+ * the correspondent point. Ignored if IsBySteps is set.
+ * \param IsBySteps - flag that tells if the result should be created
+ * step by step or as a whole. If IsBySteps is set no correction
+ * of bases is allowed.
+ * \param IsGenerateGroups flag that tells if it is necessary to
+ * return groups (true) or not (false).
+ * \return The list of objects. The first one is a result pipe,
+ * the other ones are the created groups. If \a IsGenerateGroups
+ * is not set the returned list contains a single object, which
+ * is the operation result.
+ */
+ ListOfGO MakePipeWithDifferentSections (in ListOfGO theSeqBases,
+ in ListOfGO theLocations,
+ in GEOM_Object thePath,
+ in boolean theWithContact ,
+ in boolean theWithCorrection,
+ in boolean IsBySteps,
+ in boolean IsGenerateGroups);
+
+ /*!
+ * \brief Create a shape by extrusion of the profile shape along
+ * the path shape.
+ *
+ * The path shape can be a shell or a face.
+ * the several profiles can be specified in the several locations of path.
+ * \param theSeqBases - list of Bases shape to be extruded.
+ * \param theSeqSubBases - list of corresponding sub-shapes of section shapes.
+ * \param theLocations - list of locations on the path corresponding
+ * specified list of the Bases shapes. Number of locations
+ * should be equal to number of bases.
+ * \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 theWithCorrection - defining that the section is rotated to be
+ * orthogonal to the spine tangent in the correspondent point
+ * \param IsGenerateGroups flag that tells if it is necessary to
+ * return groups (true) or not (false).
+ * \return The list of objects. The first one is a result pipe,
+ * the other ones are the created groups. If \a IsGenerateGroups
+ * is not set the returned list contains a single object, which
+ * is the operation result.
+ */
+ ListOfGO MakePipeWithShellSections (in ListOfGO theSeqBases,
+ in ListOfGO theSeqSubBases,
+ in ListOfGO theLocations,
+ in GEOM_Object thePath,
+ in boolean theWithContact,
+ in boolean theWithCorrection,
+ in boolean IsGenerateGroups);
+
+ /*!
+ * \brief Create solids between given sections
+ * \param theSeqBases - list of sections (shell or face).
+ * \param theLocations - list of corresponding vertexes
+ * \param IsGenerateGroups flag that tells if it is necessary to
+ * return groups (true) or not (false).
+ * \return The list of objects. The first one is a result pipe,
+ * the other ones are the created groups. If \a IsGenerateGroups
+ * is not set the returned list contains a single object, which
+ * is the operation result.
+ */
+ ListOfGO MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
+ in ListOfGO theLocations,
+ in boolean IsGenerateGroups);
+
+ /*!
+ * \brief Create a shape by extrusion of the base shape along
+ * the path shape with constant bi-normal direction along the given vector.
+ *
+ * The path shape can be a wire or an edge.
+ * \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
+ * along the sweep surface.
+ * \param IsGenerateGroups flag that tells if it is necessary to
+ * return groups (true) or not (false).
+ * \return The list of objects. The first one is a result pipe,
+ * the other ones are the created groups. If \a IsGenerateGroups
+ * is not set the returned list contains a single object, which
+ * is the operation result.
+ */
+ ListOfGO MakePipeBiNormalAlongVector (in GEOM_Object theBase,
+ in GEOM_Object thePath,
+ in GEOM_Object theVec,
+ in boolean IsGenerateGroups);
+
+
+ /*!
+ * \brief Make a thick solid from a shape.
+ *
+ * If the input is a surface shape (face or shell) the result is
+ * a thick solid. If an input shape is a solid the result is a hollowed
+ * solid with removed faces.
+ * \param theObject face or shell to get thick solid or solid to get
+ * hollowed solid.
+ * \param theFacesIDs the list of face IDs to be removed from the result.
+ * It can be empty.
+ * \param theThickness Value of the thickness
+ * \param isCopy To make a copy of \a theObject or to modify \a theObject
+ * \param isInside If true the thickness is applied towards inside
+ * \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 ListOfLong theFacesIDs,
+ in double theThickness,
+ in boolean isCopy,
+ in boolean isInside);
+
+
+ /*!
+ * \brief Build a middle path of a pipe-like shape.
+ *
+ * The path shape can be a wire or an edge.
+ * \param theShape It can be closed or unclosed pipe-like shell
+ * or a pipe-like solid.
+ * \param theBase1, theBase2 Two bases of the supposed pipe. This
+ * should be wires or faces of \a theShape.
+ * \note It is not assumed that exact or approximate copy of \a theShape
+ * can be obtained by applying existing Pipe operation on the
+ * resulting "Path" wire taking \a theBase1 as the base - it is not
+ * always possible; though in some particular cases it might work
+ * it is not guaranteed. Thus, RestorePath function should not be
+ * considered as an exact reverse operation of the Pipe.
+ * \return New GEOM_Object, containing an edge or wire that represent
+ * source pipe's "path".
+ */
+ GEOM_Object RestorePath (in GEOM_Object theShape,
+ in GEOM_Object theBase1,
+ in GEOM_Object theBase2);
+
+ /*!
+ * \brief Build a middle path of a pipe-like shape.
+ *
+ * The path shape can be a wire or an edge.
+ * \param theShape It can be closed or unclosed pipe-like shell
+ * or a pipe-like solid.
+ * \param theBase1, theBase2 Two bases of the supposed pipe. This
+ * should be lists of edges of \a theShape.
+ * \note It is not assumed that exact or approximate copy of \a theShape
+ * can be obtained by applying existing Pipe operation on the
+ * resulting "Path" wire taking \a theBase1 as the base - it is not
+ * always possible; though in some particular cases it might work
+ * it is not guaranteed. Thus, RestorePath function should not be
+ * considered as an exact reverse operation of the Pipe.
+ * \return New GEOM_Object, containing an edge or wire that represent
+ * source pipe's "path".
+ */
+ GEOM_Object RestorePathEdges (in GEOM_Object theShape,
+ in ListOfGO theBase1,
+ in ListOfGO theBase2);