-// 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
//
// 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__
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.
FSM_GetInPlaceByHistory
};
+ /*!
+ * Kind of method to perform filling operation
+ * Is used in functions GEOM_Gen.MakeFilling<xxx>()
+ */
+ enum filling_oper_method
+ {
+ /*! Default (standard behaviour) */
+ FOM_Default,
+
+ /*! Use edges orientation */
+ FOM_UseOri,
+
+ /*! Auto-correct edges orientation */
+ FOM_AutoCorrect
+ };
+
typedef sequence<string> string_array;
typedef sequence<short> short_array;
*/
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.
*/
* used for object creation
*/
void SetParameters (in string theParameters);
-
+
/*!
* Return list of notebook variables used for object creation separated by ":" symbol
*/
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.
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.
*/
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.
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).
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
* 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);
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).
* \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
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.
* \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.
/*!
* 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
/*!
* 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
/*!
* 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.
* 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);
};
/*!
* Create a wire from the set of edges and wires.
* \param theEdgesAndWires List of edge and/or wires.
+ * \param theTolerance Maximum distance between vertices, that will be merged.
+ * Values less than 1e-07 are equivalent to 1e-07 (Precision::Confusion()).
* \return New GEOM_Object, containing the created wire.
*/
- GEOM_Object MakeWire (in ListOfGO theEdgesAndWires);
+ GEOM_Object MakeWire (in ListOfGO theEdgesAndWires,
+ in double theTolerance);
/*!
* Create a face on the given wire.
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.
* 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
*/
long NumberOfEdges (in GEOM_Object theShape);
+ /*!
+ * Count number of subshapes of type \a theShapeType in the given shape.
+ * \param theShape Shape to count subshapes in.
+ * \param theShapeType The type of subshapes to count.
+ * \return Number of subshapes of type \a theShapeType in \a theShape.
+ */
+ long NumberOfSubShapes (in GEOM_Object theShape,
+ in long theShapeType);
+
/*!
* Reverses an orientation the given shape.
* \param theShape Shape to be reversed.
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.
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.
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.
/*!
* \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
/*!
* \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
/*!
* \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
* \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
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.
/*!
* 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,
* \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
*
* "Make3DSketcher[x1, y1, z1, x2, y2, z2, ..., xN, yN, zN]"
*/
-
+
GEOM_Object Make3DSketcher (in ListOfDouble theCoordinates);
/*!
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.
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
+ * <VAR>GEOM_IShapesOperations.GetSubShapeIndex()</VAR>.
+ * \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.
* \param theFileName The file, containing the shape.
* \param theFormatName Specify format for the file reading.
* Available formats can be obtained with <VAR>ImportTranslators()</VAR> 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);
*/
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();
};
/*!
SEGMENT, // segment
EDGE, // other edge
// VERTEX
- VERTEX
+ VERTEX,
+ // ADVANCED shapes
+ ADVANCED // all advanced shapes (temporary implementation)
};
};
* \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.
};
+ /*!
+ * 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.
* 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
* 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
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
* 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);
};
};