X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FGEOM_Gen.idl;h=304b16a861880d0a674f075b0d20cb0c1464ade6;hb=9786cc6a9a37e0a090625fb81402adef442d832b;hp=1109bde2c156f264283cc599fda7ade7eb33f705;hpb=8e1ef24a91d1db7af5b9e7b3bae0f39048846c49;p=modules%2Fgeom.git diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 1109bde2c..304b16a86 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2010 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 @@ -19,9 +19,10 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // File : GEOM_Gen.idl // Author : Sergey RUIN - +// #ifndef __GEOM_GEN__ #define __GEOM_GEN__ @@ -40,6 +41,17 @@ module GEOM enum shape_type { COMPOUND, COMPSOLID, SOLID, SHELL, FACE, WIRE, EDGE, VERTEX, SHAPE }; + /*! + * Marker type + */ + enum marker_type { MT_NONE, MT_POINT, MT_PLUS, MT_STAR, MT_O, MT_X, MT_O_POINT, MT_O_PLUS, + MT_O_STAR, MT_O_X, MT_BALL, MT_RING1, MT_RING2, MT_RING3, MT_USER }; + + /*! + * Marker size + */ + enum marker_size { MS_NONE, MS_10, MS_15, MS_20, MS_25, MS_30, MS_35, + MS_40, MS_45, MS_50, MS_55, MS_60, MS_65, MS_70 }; /*! * State of shape relatively geometrical surface like plane, sphere or cylinder. @@ -103,6 +115,22 @@ module GEOM FSM_GetInPlaceByHistory }; + /*! + * Kind of method to perform filling operation + * Is used in functions GEOM_Gen.MakeFilling() + */ + enum filling_oper_method + { + /*! Default (standard behaviour) */ + FOM_Default, + + /*! Use edges orientation */ + FOM_UseOri, + + /*! Auto-correct edges orientation */ + FOM_AutoCorrect + }; + typedef sequence string_array; typedef sequence short_array; @@ -172,6 +200,38 @@ module GEOM */ boolean GetAutoColor(); + /*! + * Set standard point marker for the object + * \param theType standard marker type + * \param theSize marker relative size + */ + void SetMarkerStd(in marker_type theType, in marker_size theSize ); + + /*! + * Set custom point marker for the object. The texture can be added + * by LoadTexture() or AddTexture() functions. + * \param theTextureId texture ID + */ + void SetMarkerTexture(in long theTextureId); + + /*! + * Get type of the point marker assigned to the object + * \return current marker type (MT_NONE if no marker is set) + */ + marker_type GetMarkerType(); + + /*! + * Get size of the point marker assigned to the object + * \return current marker relative size (MS_NONE if no marker is set) + */ + marker_size GetMarkerSize(); + + /*! + * Get texture idenifier of the point marker assigned to the object + * \return marker texture ID (0 if no marker set) + */ + long GetMarkerTexture(); + /*! * Set a Study entry where this object was published. */ @@ -240,7 +300,7 @@ module GEOM * used for object creation */ void SetParameters (in string theParameters); - + /*! * Return list of notebook variables used for object creation separated by ":" symbol */ @@ -327,6 +387,19 @@ module GEOM GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve, in double theParameter); + /*! + * Create a point on the given curve, projecting given point + * \param theRefCurve The referenced curve. + * \param theXParameter X co-ordinate of point to project on curve + * \param theYParameter Y co-ordinate of point to project on curve + * \param theZParameter Z co-ordinate of point to project on curve + * \return New GEOM_Object, containing the created point. + */ + GEOM_Object MakePointOnCurveByCoord (in GEOM_Object theRefCurve, + in double theXParameter, + in double theYarameter, + in double theZPameter); + /*! * Create a point, corresponding to the given parameters on the * given surface. @@ -339,6 +412,20 @@ module GEOM in double theUParameter, in double theVParameter); + /*! + * Create a point on the given surface, projecting given point + * \param theRefSurf The referenced surface. + * \param theXParameter X co-ordinate of point to project on curve + * \param theYParameter Y co-ordinate of point to project on curve + * \param theZParameter Z co-ordinate of point to project on curve + * \return New GEOM_Object, containing the created point. + */ + GEOM_Object MakePointOnSurfaceByCoord (in GEOM_Object theRefSurf, + in double theXParameter, + in double theYarameter, + in double theZPameter); + + /*! * Create a point, on two lines intersection. * \param theRefLine1, theRefLine2 The referenced lines. @@ -435,7 +522,7 @@ module GEOM */ GEOM_Object MakePlaneFace (in GEOM_Object theFace, in double theTrimSize); - + /*! * Create a plane, by two vectors. * \param theVec1 Vector1, the plane has to pass through first point of this vector. @@ -446,7 +533,7 @@ module GEOM GEOM_Object MakePlane2Vec (in GEOM_Object theVec1, in GEOM_Object theVec2, in double theTrimSize); - + /*! * Create a plane, defined by local coordinate system. * \param theLCS Referenced LCS(Marker). @@ -469,6 +556,22 @@ module GEOM in double theXDX, in double theXDY, in double theXDZ, in double theYDX, in double theYDY, in double theYDZ); + /*! + * Create a local coordinate system from shape. + * \param theShape The initial shape to detect the coordinate system. + * \return New GEOM_Object, containing the created coordinate system. + */ + GEOM_Object MakeMarkerFromShape (in GEOM_Object theShape); + + /*! + * Create a local coordinate system from point and two vectors (DX, DY). + * \param theOrigin Point of coordinate system origin. + * \param theXVec Vector of X direction. + * \param theYVec Vector of Y direction. + * \return New GEOM_Object, containing the created coordinate system. + */ + GEOM_Object MakeMarkerPntTwoVec (in GEOM_Object theOrigin, in GEOM_Object theXVec, in GEOM_Object theYVec); + /*! * Create a tangent plane to specified face in the point with specified parameters. * Values of parameters should be between 0. and 1.0 @@ -895,7 +998,7 @@ module GEOM * vertical (H) and horisontal (W). * \param theVec defines plane. * \param theH vertical size (height). - * \param theW horisontal size (width). + * \param theW horisontal size (width). * \return New GEOM_Object, containing the created face. */ GEOM_Object MakeFaceObjHW (in GEOM_Object theObj, in double theH, in double theW); @@ -917,7 +1020,7 @@ module GEOM GEOM_Object MakeDiskThreePnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2, in GEOM_Object thePnt3); - + /*! * Create a disk specified dimensions along OX-OY coordinate axes, * Center of the disk at point (0, 0, 0). @@ -926,7 +1029,7 @@ module GEOM * \return New GEOM_Object, containing the created disk. */ GEOM_Object MakeDiskR (in double theR, in short theOrientation); - + /*! * Create a cylinder with given radius and height at * the origin of coordinate system. Axis of the cylinder @@ -1048,7 +1151,7 @@ module GEOM GEOM_Object MakePrismTwoPnt2Ways (in GEOM_Object theBase, in GEOM_Object thePoint1, in GEOM_Object thePoint2); - + /*! * Create a shape by extrusion of the base shape along a vector, defined by DX DY DZ. * \param theBase Base shape to be extruded. @@ -1094,12 +1197,15 @@ module GEOM * \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. * \return New GEOM_Object, containing the created filling surface. */ GEOM_Object MakeFilling (in GEOM_Object theShape, in long theMinDeg, in long theMaxDeg, in double theTol2D, in double theTol3D, - in long theNbIter, in boolean theApprox); + in long theNbIter, + in filling_oper_method theMethod, + in boolean theApprox); /*! * Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices. @@ -1117,7 +1223,7 @@ module GEOM /*! * 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. + * 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 @@ -1138,7 +1244,7 @@ module GEOM /*! * 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. + * 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 subshapes of section shapes. * \param theLocations - list of locations on the path corresponding @@ -1169,7 +1275,7 @@ module GEOM /*! * 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 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. @@ -1178,8 +1284,8 @@ module GEOM * along the sweep surface. * \return New GEOM_Object, containing the created pipe. */ - GEOM_Object MakePipeBiNormalAlongVector (in GEOM_Object theBase, - in GEOM_Object thePath, + GEOM_Object MakePipeBiNormalAlongVector (in GEOM_Object theBase, + in GEOM_Object thePath, in GEOM_Object theVec); }; @@ -1284,6 +1390,13 @@ module GEOM GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, in double theTolerance, in ListOfGO theFaces, in boolean doKeepNonSolids); + /*! + * Deprecated method. Use MakeAllSubShapes() instead. + */ + ListOfGO MakeExplode (in GEOM_Object theShape, + in long theShapeType, + in boolean isSorted); + /*! * Explode a shape on subshapes of a given type. * \param theShape Shape to be exploded. @@ -1292,23 +1405,30 @@ module GEOM * sorted by coordinates of their gravity centers. * \return List of sub-shapes of type theShapeType, contained in theShape. */ - ListOfGO MakeExplode (in GEOM_Object theShape, - in long theShapeType, - in boolean isSorted); + ListOfGO MakeAllSubShapes (in GEOM_Object theShape, + in long theShapeType, + in boolean isSorted); + + /*! + * Deprecated method. Use GetAllSubShapesIDs() instead. + */ + ListOfLong SubShapeAllIDs (in GEOM_Object theShape, + in long theShapeType, + in boolean isSorted); /*! * Explode a shape on subshapes of a given type. - * Does the same, as the above method, but returns IDs of sub-shapes, - * not GEOM_Objects. It works faster. + * Does the same, as MakeAllSubShapes, but returns IDs of + * sub-shapes, not GEOM_Objects. It works faster. * \param theShape Shape to be exploded. * \param theShapeType Type of sub-shapes to be retrieved. * \param isSorted If this parameter is TRUE, sub-shapes will be * sorted by coordinates of their gravity centers. * \return List of IDs of sub-shapes of type theShapeType, contained in theShape. */ - ListOfLong SubShapeAllIDs (in GEOM_Object theShape, - in long theShapeType, - in boolean isSorted); + ListOfLong GetAllSubShapesIDs (in GEOM_Object theShape, + in long theShapeType, + in boolean isSorted); /*! * Get a sub shape defined by its unique ID inside \a theMainShape @@ -1396,6 +1516,15 @@ module GEOM in GEOM_Object theShape2, in long theShapeType); + /*! + * Get all sub-shapes, shared by all shapes in the list \a theShapes. + * \param theShapes Shapes to find common sub-shapes of. + * \param theShapeType Type of sub-shapes to be retrieved. + * \return List of objects, that are sub-shapes of all given shapes. + */ + ListOfGO GetSharedShapesMulti (in ListOfGO theShapes, + in long theShapeType); + /*! * 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. @@ -1446,6 +1575,25 @@ module GEOM in double theRadius, in shape_state theState); + /*! + * Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively + * the specified cylinder 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. + * \param theAxis Vector (or line, or linear edge), specifying + * axis of the cylinder to find shapes on. + * \param thePnt Point specifying location of the bottom of the cylinder. + * \param theRadius Radius of the cylinder to find shapes on. + * \param theState The state of the subshapes to find. + * \return List of all found sub-shapes. + */ + ListOfGO GetShapesOnCylinderWithLocation (in GEOM_Object theShape, + in long theShapeType, + in GEOM_Object theAxis, + in GEOM_Object thePnt, + in double theRadius, + in shape_state theState); + /*! * Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively * the specified sphere by the certain way, defined through \a theState parameter. @@ -1531,6 +1679,25 @@ module GEOM in double theRadius, in shape_state theState); + /*! + * Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively + * the specified cylinder 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. + * \param theAxis Vector (or line, or linear edge), specifying + * axis of the cylinder to find shapes on. + * \param thePnt Point specifying location of the bottom of the cylinder. + * \param theRadius Radius of the cylinder to find shapes on. + * \param theState The state of the subshapes to find. + * \return List of IDs all found sub-shapes. + */ + ListOfLong GetShapesOnCylinderWithLocationIDs (in GEOM_Object theShape, + in long theShapeType, + in GEOM_Object theAxis, + in GEOM_Object thePnt, + in double theRadius, + in shape_state theState); + /*! * Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively * the specified sphere by the certain way, defined through \a theState parameter. @@ -1595,7 +1762,7 @@ module GEOM /*! * \brief Find subshapes complying with given status - * \param theCheckShape - the shape to check state of subshapes against + * \param theCheckShape - the shape to check state of subshapes against. It must be a solid. * \param theShape - the shape to explore * \param theShapeType - type of subshape of theShape * \param theState - required state @@ -1608,7 +1775,7 @@ module GEOM /*! * \brief Find subshapes complying with given status - * \param theCheckShape - the shape to check state of subshapes against + * \param theCheckShape - the shape to check state of subshapes against. It must be a solid. * \param theShape - the shape to explore * \param theShapeType - type of subshape of theShape * \param theState - required state @@ -1621,7 +1788,7 @@ module GEOM /*! * \brief Find subshapes complying with given status - * \param theCheckShape - the shape to check state of subshapes against + * \param theCheckShape - the shape to check state of subshapes against. It must be a solid. * \param theShape - the shape to explore * \param theShapeType - type of subshape of theShape * \param theState - required state @@ -2036,10 +2203,10 @@ 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 - only shapes with - # type <= Limit are kept in the result, - # else - shapes with type > Limit are kept - # also (if they exist) + * \param KeepNonlimitShapes: 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). * * After implementation new version of PartitionAlgo (October 2006) * other parameters are ignored by current functionality. They are kept @@ -2179,7 +2346,7 @@ module GEOM in GEOM_Object thePnt1, in GEOM_Object thePnt2, in boolean theSense); - + /*! * Create an arc of ellipse of center C and two points P1 P2. * \param theCenter Center point of the arc. @@ -2209,9 +2376,11 @@ module GEOM /*! * Create B-Spline curve on the set of points. * \param thePoints Sequence of points for the B-Spline curve. + * \param theIsClosed If TRUE, build a closed curve. * \return New GEOM_Object, containing the created B-Spline curve. */ - GEOM_Object MakeSplineInterpolation (in ListOfGO thePoints); + GEOM_Object MakeSplineInterpolation (in ListOfGO thePoints, + in boolean theIsClosed); /*! * Create a sketcher (wire or face), following the textual description, @@ -2248,7 +2417,7 @@ module GEOM * \return New GEOM_Object, containing the created wire. */ GEOM_Object MakeSketcher (in string theCommand, in ListOfDouble theWorkingPlane); - + /*! * Create a 3D sketcher, following the numerical description, * passed through points created by \a theCoordinates argument. \n @@ -2256,7 +2425,7 @@ module GEOM * * "Make3DSketcher[x1, y1, z1, x2, y2, z2, ..., xN, yN, zN]" */ - + GEOM_Object Make3DSketcher (in ListOfDouble theCoordinates); /*! @@ -2314,12 +2483,12 @@ module GEOM GEOM_Object MakeFilletFaces (in GEOM_Object theShape, in double theR, in ListOfLong theFaces); - + GEOM_Object MakeFilletFacesR1R2 (in GEOM_Object theShape, in double theR1, in double theR2, in ListOfLong theFaces); - + /*! * Perform a fillet on face of the specified vertexes of the given shape. * \param theShape Shape, to perform fillet on. @@ -2333,6 +2502,21 @@ module GEOM in double theR, in ListOfLong theVertexes); + /*! + * Perform a fillet on edges of the specified vertexes of the given wire. + * \param theShape Shape, to perform fillet on. + * \param theR Fillet radius. + * \param theVertexes Global indices of vertexes to perform fillet on. + * \note Global index of sub-shape can be obtained, using method + * GEOM_IShapesOperations.GetSubShapeIndex(). + * \note The list of vertices coudl be empty, in this case fillet fill be done + * at all vertices in given wire + * \return New GEOM_Object, containing the result shape. + */ + GEOM_Object MakeFillet1D (in GEOM_Object theShape, + in double theR, + in ListOfLong theVertexes); + /*! * Perform a symmetric chamfer on all edges of the given shape. * \param theShape Shape, to perform chamfer on. @@ -2584,6 +2768,8 @@ module GEOM * \param theFileName The file, containing the shape. * \param theFormatName Specify format for the file reading. * Available formats can be obtained with ImportTranslators() method. + * If format 'IGES_SCALE' is used instead 'IGES' length unit will be + * set to 'meter' and result model will be scaled. * \return New GEOM_Object, containing the imported shape. */ GEOM_Object Import (in string theFileName, in string theFormatName); @@ -2605,6 +2791,37 @@ module GEOM */ void ExportTranslators (out string_array theFormats, out string_array thePatterns); + + /*! + * Load texture from file + * \param theTextureFile texture file name + * \return unique texture identifier + */ + long LoadTexture(in string theTextureFile); + + /*! + * Add texture to the study + * \param theWidth texture width in pixels + * \param theHeight texture height in pixels + * \param theTexture texture byte array + * \return unique texture identifier + */ + long AddTexture(in long theWidth, in long theHeight, in SALOMEDS::TMPFile theTexture); + + /*! + * Get previously loaded texture data + * \param theID texture identifier + * \param theWidth texture width in pixels + * \param theHeight texture height in pixels + * \return texture byte array + */ + SALOMEDS::TMPFile GetTexture(in long theID, out long theWidth, out long theHeight); + + /*! + * Get list of all avaiable texture IDs + * \return list of all texture IDs avaiable for the current study + */ + ListOfLong GetAllTextures(); }; /*! @@ -2648,7 +2865,9 @@ module GEOM SEGMENT, // segment EDGE, // other edge // VERTEX - VERTEX + VERTEX, + // ADVANCED shapes + ADVANCED // all advanced shapes (temporary implementation) }; }; @@ -2711,6 +2930,15 @@ module GEOM * \return New GEOM_Object, containing the created point. */ GEOM_Object GetCentreOfMass (in GEOM_Object theShape); + + + /* + * Get the vertex by index for 1D objects depends the edge/wire orientation + * \param theShape Shape (wire or edge) to find the vertex on it + * \param theIndex Index of vertex subshape + * \return New GEOM_Object, vertex. + */ + GEOM_Object GetVertexByIndex( in GEOM_Object theShape, in long index ); /*! * Get a vector, representing the normal of theFace. @@ -2943,6 +3171,135 @@ module GEOM }; + /*! + * GEOM_IAdvancedOperations: Interface for advanced modeling functions. + */ + interface GEOM_IAdvancedOperations : GEOM_IOperations + { + /*! + * 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 theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true) + * \return List of GEOM_Objects, containing the created shape and propagation groups. + */ + ListOfGO MakePipeTShape (in double theR1, in double theW1, in double theL1, + in double theR2, in double theW2, in double theL2, + in boolean theHexMesh); + /*! + * 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 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_Objects, containing the created shape and propagation groups. + */ + ListOfGO MakePipeTShapeWithPosition (in double theR1, in double theW1, in double theL1, + in double theR2, in double theW2, in double theL2, + in boolean theHexMesh, + in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3); + /*! + * 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 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_Objects, containing the created shape and propagation groups. + */ + ListOfGO MakePipeTShapeChamfer (in double theR1, in double theW1, in double theL1, + in double theR2, in double theW2, in double theL2, + in double theH, in double theW, in boolean theHexMesh); + /*! + * 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 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_Objects, containing the created shape and propagation groups. + */ + ListOfGO MakePipeTShapeChamferWithPosition (in double theR1, in double theW1, in double theL1, + in double theR2, in double theW2, in double theL2, + in double theH, in double theW, in boolean theHexMesh, + in GEOM_Object theP1, in GEOM_Object theP2, in GEOM_Object theP3); + /*! + * 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 theRF Radius of curvature of fillet. + * \param theHexMesh Boolean indicating if shape is prepared for hex mesh (default=true) + * \return List of GEOM_Objects, containing the created shape and propagation groups. + */ + ListOfGO MakePipeTShapeFillet (in double theR1, in double theW1, in double theL1, + in double theR2, in double theW2, in double theL2, + in double theRF, in boolean theHexMesh); + /*! + * 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 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_Objects, containing the created shape and propagation groups. + */ + ListOfGO MakePipeTShapeFilletWithPosition (in double theR1, in double theW1, in double theL1, + 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); + /*@@ insert new functions before this line @@ do not remove this line @@*/ + }; + /*! * GEOM_Gen: Interface to access other GEOM interfaces. * Also contains some methods to access and manage GEOM objects. @@ -2987,13 +3344,16 @@ module GEOM * 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. - * \return True in case of success, False otherwise. + * \param theAddPrefix add prefix "from_" to names of restored sub-shapes, + * and prefix "from_subshapes_of_" to names of partially restored subshapes. + * \return list of published sub-shapes */ - boolean RestoreSubShapesO (in SALOMEDS::Study theStudy, - in GEOM_Object theObject, - in ListOfGO theArgs, - in find_shape_method theFindMethod, - in boolean theInheritFirstArg); + ListOfGO RestoreSubShapesO (in SALOMEDS::Study theStudy, + in GEOM_Object theObject, + in ListOfGO theArgs, + in find_shape_method theFindMethod, + in boolean theInheritFirstArg, + in boolean theAddPrefix); /*! * Publish sub-shapes, standing for arguments and sub-shapes of arguments @@ -3001,11 +3361,12 @@ module GEOM * Work like the above method, but accepts study object theSObject instead of GEOM_Object. * \param theSObject study object, referencing GEOM object, arguments of which will be published */ - boolean RestoreSubShapesSO (in SALOMEDS::Study theStudy, - in SALOMEDS::SObject theSObject, - in ListOfGO theArgs, - in find_shape_method theFindMethod, - in boolean theInheritFirstArg); + ListOfGO RestoreSubShapesSO (in SALOMEDS::Study theStudy, + in SALOMEDS::SObject theSObject, + in ListOfGO theArgs, + in find_shape_method theFindMethod, + in boolean theInheritFirstArg, + in boolean theAddPrefix); /*! * Methods to access interfaces for objects creation and transformation @@ -3022,6 +3383,7 @@ module GEOM GEOM_IMeasureOperations GetIMeasureOperations (in long theStudyID) raises (SALOME::SALOME_Exception); GEOM_IBlocksOperations GetIBlocksOperations (in long theStudyID) raises (SALOME::SALOME_Exception); GEOM_IGroupOperations GetIGroupOperations (in long theStudyID) raises (SALOME::SALOME_Exception); + GEOM_IAdvancedOperations GetIAdvancedOperations (in long theStudyID) raises (SALOME::SALOME_Exception); /*! * Objects Management @@ -3077,6 +3439,15 @@ module GEOM * into python script to avoid the same names in SMESH script */ string_array GetAllDumpNames(); + + /*! + * Publishes the named subshapes of given object in the study. + * \param theStudy The study in which the object is published + * \param theObject The object which named subshapes are published + */ + ListOfGO PublishNamedShapesInStudy(in SALOMEDS::Study theStudy, + //in SObject theSObject, + in Object theObject); }; };