X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FGEOM_Gen.idl;h=23083c1f450e88f4c670b0bf8046cd019bdfaa6b;hb=c5b6deb54b470e71d9673c2eab919afd029bdd15;hp=f35c7935e7ed0be5b96fdcaa788e906f96734643;hpb=eb33929a623da3858f8105e54f0834f8393f5414;p=modules%2Fgeom.git diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index f35c7935e..23083c1f4 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -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 @@ -190,6 +190,25 @@ module GEOM HEXAGON }; + /*! + * \brief Object creation parameters + * + * Is returned by GEOM_Object::GetCreationInformation() + */ + struct Parameter + { + string name; + //any value; + string value; + }; + typedef sequence Parameters; + + struct CreationInformation + { + string operationName; + Parameters params; + }; + typedef sequence string_array; typedef sequence short_array; @@ -200,6 +219,7 @@ module GEOM interface GEOM_Object; typedef sequence ListOfGO; + typedef sequence object_list; //# GEOM_Object /*! @@ -410,9 +430,14 @@ module GEOM * \brief Return list of notebook variables used for object creation separated by ":" symbol */ string GetParameters(); + + /*! + * \brief Return name of operation and values of parameters used for object creation + */ + CreationInformation GetCreationInformation(); }; - // # GEOM_IOperations: + // # GEOM_IOperations: /*! * \brief Basic methods of all geometric operations */ @@ -804,7 +829,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 +843,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 +913,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 +972,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 +1179,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 +1566,20 @@ 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 + * \param isCopy To make a copy of \a theObject ot to modify \a theObject. + * \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 +1880,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 +2582,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 +2710,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 +2931,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. @@ -3211,6 +3349,22 @@ module GEOM */ GEOM_Object Sew (in GEOM_Object theObject, in double theTolerance); + /*! + * Sewing of the given object. Allows non-manifold sewing. + * \param theObject Shape to be processed. + * \param theTolerance Required tolerance value. + * \return New GEOM_Object, containing processed shape. + */ + GEOM_Object SewAllowNonManifold(in GEOM_Object theObject, in double theTolerance); + + /*! + * Rebuild the topology of theCompound of solids by removing + * of the faces that are shared by several solids. + * \param theCompound Shape to be processed. + * \return New GEOM_Object, containing processed shape. + */ + GEOM_Object RemoveInternalFaces (in GEOM_Object theCompound); + /*! * \brief Addition of a point to a given edge object. * \param theObject Shape to be processed. @@ -3537,16 +3691,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 +3787,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 +4013,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,12 +4142,263 @@ 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. * \param theR Radius of the disk * \param theRatio Relative size of the central square diagonal against the disk diameter * \param theOrientation Plane on which the disk will be built + * \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON * \return New GEOM_Object, containing the created shape. */ GEOM_Object MakeDividedDisk (in double theR, @@ -3984,6 +4412,7 @@ module GEOM * \param theVec Vector, normal to the plane of the disk. * \param theR Disk radius. * \param theRatio Relative size of the central square diagonal against the disk diameter + * \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON * \return New GEOM_Object, containing the created disk. */ GEOM_Object MakeDividedDiskPntVecR ( in GEOM_Object thePnt, @@ -3996,11 +4425,19 @@ module GEOM * Builds a cylinder prepared for hexa meshes * \param theR Radius of the cylinder * \param theH Height of the cylinder + * \param thePattern Division pattern. It can be GEOM.SQUARE or GEOM.HEXAGON * \return New GEOM_Object, containing the created shape. */ GEOM_Object MakeDividedCylinder (in double theR, in double theH, in pattern thePattern ); + /*! + * + * Create a smoothing surface from a set of points + * \param thelPoints list of points + * \return New GEOM_Object, containing the created shape. + */ + GEOM_Object MakeSmoothingSurface (in ListOfGO thelPoints); /*@@ insert new functions before this line @@ do not remove this line @@*/ }; @@ -4202,6 +4639,54 @@ module GEOM ListOfGO PublishNamedShapesInStudy(in SALOMEDS::Study theStudy, //in SObject theSObject, in Object theObject); + + /*! + * \brief Creates a new folder + * + * Creates a new container (folder) for any GEOM objects. + * Folder will have name theName. + * If theFather is not NULL, the folder is placed under theFather object. + * Otherwise, the folder takes place under root 'Geometry' object. + * + * \param theName name of the folder + * \param theFather parent object + * \return SObject represented the created folder. + */ + SALOMEDS::SObject CreateFolder (in string theName, + in SALOMEDS::SObject theFather); + + /*! + * \brief Moves object to the specified folder + * + * The moved object should be first published in the study. + * \param theObject GEOM object to move + * \param theFolder target folder + */ + void MoveToFolder (in GEOM_Object theObject, + in SALOMEDS::SObject theFolder); + + /*! + * \brief Moves list of objects to the specified folder + * + * The moved objects should be first published in the study. + * \param theListOfGO list of GEOM objects to move + * \param theFolder target folder + */ + void MoveListToFolder (in ListOfGO theListOfGO, + in SALOMEDS::SObject theFolder); + + /*! + * \brief Moves objects to the specified position + * + * This function is used in the drag-n-drop functionality. + * + * \param what objects being moved + * \param where parent object where objects are moved to + * \param row position in the parent object's children list at which objects are moved + */ + void Move( in object_list what, + in SALOMEDS::SObject where, + in long row ); }; };