-// 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
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_GetShapesOnShape,
/*! Use GetInPlaceByHistory method (can work only after Partition) */
- FSM_GetInPlaceByHistory
+ FSM_GetInPlaceByHistory,
+
+ /*! To be used only for multi-transformation result.
+ * Only this method can be used after multi-transformation.
+ */
+ FSM_MultiTransformed
+ };
+
+ /*!
+ * 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
};
*/
shape_type GetShapeType();
+ /*!
+ * Get the topology type of the object value.
+ * In contrast to the shape type, this function returns type of the most
+ * top-level sub-shape of the COMPOUND or COMPSOLID, if there is only one
+ * sub-shape there.
+ * \sa GetShapeType()
+ */
+ shape_type GetTopologyType();
+
+ /*!
+ * Get a minimal type of the top-level shapes contained in the object.
+ * This function is useful for the compounds only; for simple shapes it
+ * exactly the same value as GetShapeType().
+ * Note, that compounds are procesed recursively.
+ * \sa GetShapeType(), GetTopologyType(), GetMaxShapeType()
+ */
+ shape_type GetMinShapeType();
+
+ /*!
+ * Get a maximal type of the top-level shapes contained in the object.
+ * This function is useful for the compounds only; for simple shapes it
+ * exactly the same value as GetShapeType().
+ * Note, that compounds are procesed recursively.
+ * \sa GetShapeType(), GetTopologyType(), GetMinShapeType()
+ */
+ shape_type GetMaxShapeType();
+
/*!
* Set name of the object.
* \param theName is a name which will be associated with this object.
*/
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
*/
* \return New GEOM_Object, containing the created point.
*/
GEOM_Object MakePointWithReference (in GEOM_Object theReference,
- in double theX, in double theY, in double theZ);
+ in double theX, in double theY, in double theZ);
/*!
* Create a point, corresponding to the given parameter on the given curve.
* \return New GEOM_Object, containing the created point.
*/
GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve,
- in double theParameter);
+ 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
* \return New GEOM_Object, containing the created point.
*/
GEOM_Object MakePointOnSurface (in GEOM_Object theRefSurf,
- in double theUParameter,
- in double theVParameter);
+ 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.
* \return New GEOM_Object, containing the created point.
*/
GEOM_Object MakePointOnLinesIntersection (in GEOM_Object theRefLine1,
- in GEOM_Object theRefLine2);
+ in GEOM_Object theRefLine2);
/*!
* Create a vector, corresponding to tangent to the given parameter on the given curve.
* \return New GEOM_Object, containing the created point.
*/
GEOM_Object MakeTangentOnCurve (in GEOM_Object theRefCurve,
- in double theParameter);
+ in double theParameter);
/*!
* Create a vector with the given components.
* \return New GEOM_Object, containing the created vector.
*/
GEOM_Object MakeVectorDXDYDZ (in double theDX,
- in double theDY,
- in double theDZ);
+ in double theDY,
+ in double theDZ);
/*!
* Create a vector between two points.
* \return New GEOM_Object, containing the created plane.
*/
GEOM_Object MakePlaneThreePnt (in GEOM_Object thePnt1,
- in GEOM_Object thePnt2,
- in GEOM_Object thePnt3,
- in double theTrimSize);
+ in GEOM_Object thePnt2,
+ in GEOM_Object thePnt3,
+ in double theTrimSize);
/*!
* Create a plane, passing through the given point
* \return New GEOM_Object, containing the created plane.
*/
GEOM_Object MakePlanePntVec (in GEOM_Object thePnt,
- in GEOM_Object theVec,
- in double theTrimSize);
+ in GEOM_Object theVec,
+ in double theTrimSize);
/*!
* Create a plane, similar to the existing one, but with another size of representing face.
* \return New GEOM_Object, containing the created plane.
*/
GEOM_Object MakePlaneFace (in GEOM_Object theFace,
- in double theTrimSize);
-
+ in double theTrimSize);
+
/*!
* Create a plane, by two vectors.
* \param theVec1 Vector1, the plane has to pass through first point of this vector.
* \return New GEOM_Object, containing the created plane.
*/
GEOM_Object MakePlane2Vec (in GEOM_Object theVec1,
- in GEOM_Object theVec2,
- in double theTrimSize);
-
+ in GEOM_Object theVec2,
+ in double theTrimSize);
+
/*!
* Create a plane, defined by local coordinate system.
* \param theLCS Referenced LCS(Marker).
* \return New GEOM_Object, containing the created plane.
*/
GEOM_Object MakePlaneLCS (in GEOM_Object theLCS,
- in double theTrimSize,
- in double theOrientation);
+ in double theTrimSize,
+ in double theOrientation);
/*!
* Create a local coordinate system.
* \return New GEOM_Object, containing the created coordinate system.
*/
GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ,
- in double theXDX, in double theXDY, in double theXDZ,
- in double theYDX, in double theYDY, in double theYDZ);
+ 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.
* \return New GEOM_Object, containing the face built on tangent plane.
*/
GEOM_Object MakeTangentPlaneOnFace(in GEOM_Object theFace,
- in double theParameterU,
- in double theParameterV,
- in double theTrimSize);
+ in double theParameterU,
+ in double theParameterV,
+ in double theTrimSize);
};
interface GEOM_ITransformOperations : GEOM_IOperations
* \return theObject.
*/
GEOM_Object TranslateTwoPoints (in GEOM_Object theObject,
- in GEOM_Object thePoint1,
- in GEOM_Object thePoint2);
+ in GEOM_Object thePoint1,
+ in GEOM_Object thePoint2);
/*!
* Translate the given object along the vector, specified
* \return New GEOM_Object, containing the translated object.
*/
GEOM_Object TranslateTwoPointsCopy (in GEOM_Object theObject,
- in GEOM_Object thePoint1,
+ in GEOM_Object thePoint1,
in GEOM_Object thePoint2);
/*!
* \return theObject.
*/
GEOM_Object TranslateDXDYDZ (in GEOM_Object theObject,
- in double theDX, in double theDY, in double theDZ);
+ in double theDX, in double theDY, in double theDZ);
/*!
* Translate the given object along the vector, specified
* \return New GEOM_Object, containing the translated object.
*/
GEOM_Object TranslateDXDYDZCopy (in GEOM_Object theObject,
- in double theDX, in double theDY, in double theDZ);
+ in double theDX, in double theDY, in double theDZ);
/*!
* \return theObject.
*/
GEOM_Object TranslateVector (in GEOM_Object theObject,
- in GEOM_Object theVector);
+ in GEOM_Object theVector);
/*!
* Translate the given object along the given vector,
* \return New GEOM_Object, containing the translated object.
*/
GEOM_Object TranslateVectorCopy (in GEOM_Object theObject,
- in GEOM_Object theVector);
+ in GEOM_Object theVector);
/*!
* Translate the given object along the given vector on given distance,
* \return New GEOM_Object, containing the translated object.
*/
GEOM_Object TranslateVectorDistance (in GEOM_Object theObject,
- in GEOM_Object theVector,
- in double theDistance,
- in boolean theCopy);
+ in GEOM_Object theVector,
+ in double theDistance,
+ in boolean theCopy);
/*!
* Translate the given object along the given vector a given number times
* the shapes, obtained after each translation.
*/
GEOM_Object MultiTranslate1D (in GEOM_Object theObject,
- in GEOM_Object theVector,
- in double theStep,
- in long theNbTimes);
+ in GEOM_Object theVector,
+ in double theStep,
+ in long theNbTimes);
/*!
* Conseqently apply two specified translations to theObject specified number of times.
* the shapes, obtained after each translation.
*/
GEOM_Object MultiTranslate2D (in GEOM_Object theObject,
- in GEOM_Object theVector1,
- in double theStep1,
- in long theNbTimes1,
- in GEOM_Object theVector2,
- in double theStep2,
- in long theNbTimes2);
+ in GEOM_Object theVector1,
+ in double theStep1,
+ in long theNbTimes1,
+ in GEOM_Object theVector2,
+ in double theStep2,
+ in long theNbTimes2);
/*!
* Rotate given object around vector perpendicular to plane containing three points.
* \return theObject.
*/
GEOM_Object RotateThreePoints (in GEOM_Object theObject,
- in GEOM_Object theCentPoint,
- in GEOM_Object thePoint1,
- in GEOM_Object thePoint2);
+ in GEOM_Object theCentPoint,
+ in GEOM_Object thePoint1,
+ in GEOM_Object thePoint2);
/*!
* \return New GEOM_Object, containing the rotated object.
*/
GEOM_Object RotateThreePointsCopy (in GEOM_Object theObject,
- in GEOM_Object theCentPoint,
- in GEOM_Object thePoint1,
- in GEOM_Object thePoint2);
+ in GEOM_Object theCentPoint,
+ in GEOM_Object thePoint1,
+ in GEOM_Object thePoint2);
/*!
* Rotate the given object around the given axis on the given angle.
* \return theObject.
*/
GEOM_Object Rotate (in GEOM_Object theObject,
- in GEOM_Object theAxis,
- in double theAngle);
+ in GEOM_Object theAxis,
+ in double theAngle);
/*!
* \return New GEOM_Object, containing the rotated object.
*/
GEOM_Object RotateCopy (in GEOM_Object theObject,
- in GEOM_Object theAxis,
- in double theAngle);
+ in GEOM_Object theAxis,
+ in double theAngle);
/*!
* shapes, obtained after each rotation.
*/
GEOM_Object MultiRotate1D (in GEOM_Object theObject,
- in GEOM_Object theAxis,
- in long theNbTimes);
+ in GEOM_Object theAxis,
+ in long theNbTimes);
/*!
* Rotate the given object around 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 GEOM_Object theAxis,
+ in double theAngle,
+ in long theNbTimes1,
+ in double theStep,
+ in long theNbTimes2);
/*!
* Replace the given object by an object,
* \return theObject.
*/
GEOM_Object ScaleShape (in GEOM_Object theObject, in GEOM_Object thePoint,
- in double theFactor);
+ in double theFactor);
/*!
* Scale the given object by the factor, creating its copy before the scaling.
* \return New GEOM_Object, containing the scaled shape.
*/
GEOM_Object ScaleShapeCopy (in GEOM_Object theObject, in GEOM_Object thePoint,
- in double theFactor);
+ in double theFactor);
/*!
* Scale the given object by different factors along coordinate axes.
* \return theObject.
*/
GEOM_Object PositionShape (in GEOM_Object theObject,
- in GEOM_Object theStartLCS,
- in GEOM_Object theEndLCS);
+ in GEOM_Object theStartLCS,
+ in GEOM_Object theEndLCS);
/*!
* Modify the Location of the given object by LCS,
* \return New GEOM_Object, containing the displaced shape.
*/
GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
- in GEOM_Object theStartLCS,
- in GEOM_Object theEndLCS);
+ in GEOM_Object theStartLCS,
+ in GEOM_Object theEndLCS);
/*!
* Modify the Location of the given object by Path,
* \param theObject The object to be displaced.
* \param thePath Wire or Edge along that the object will be translated.
- * \param theDistance progress of Path (0 = actual location, 1 = end of path location).
- * \param theCopy is a true or false parameter. true is to create a copy, false to move the object.
- * \param theCopy is a true or false parameter. true is to reverse direction, false is to move normal direction.
+ * \param theDistance progress of Path (0 = actual location, 1 = end of path location).
+ * \param theCopy is a true or false parameter. true is to create a copy, false to move the object.
+ * \param theCopy is a true or false parameter. true is to reverse direction, false is to move normal direction.
* \return New GEOM_Object, containing the displaced shape.
*/
-
GEOM_Object PositionAlongPath (in GEOM_Object theObject,
- in GEOM_Object thePath,
- in double theDistance,
- in boolean theCopy,
- in boolean theReverse);
+ in GEOM_Object thePath,
+ in double theDistance,
+ in boolean theCopy,
+ in boolean theReverse);
+
+ /*!
+ * 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);
/*!
* Recompute the shape from its arguments.
* 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);
* \return New GEOM_Object, containing the created disk.
*/
GEOM_Object MakeDiskPntVecR (in GEOM_Object thePnt,
- in GEOM_Object theVec,
- in double theR);
+ in GEOM_Object theVec,
+ in double theR);
/*!
* Create a disk (circular face), passing through three given points
* \param thePnt1, thePnt2, thePnt3 Points, defining the disk.
* \return New GEOM_Object, containing the created disk.
*/
GEOM_Object MakeDiskThreePnt (in GEOM_Object thePnt1,
- in GEOM_Object thePnt2,
- in GEOM_Object thePnt3);
-
+ 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
* \return New GEOM_Object, containing the created cylinder.
*/
GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt,
- in GEOM_Object theAxis,
- in double theR,
- in double theH);
+ in GEOM_Object theAxis,
+ in double theR,
+ in double theH);
/*!
* Create a cone with given height and radiuses at
* \return New GEOM_Object, containing the created cone.
*/
GEOM_Object MakeConePntVecR1R2H (in GEOM_Object thePnt,
- in GEOM_Object theAxis,
- in double theR1,
- in double theR2,
- in double theH);
+ in GEOM_Object theAxis,
+ in double theR1,
+ in double theR2,
+ in double theH);
/*!
* Create a torus with given radiuses at the origin of coordinate system.
* \return New GEOM_Object, containing the created torus.
*/
GEOM_Object MakeTorusRR (in double theRMajor,
- in double theRMinor);
+ in double theRMinor);
/*!
* Create a torus with given center, normal vector and radiuses.
* \return New GEOM_Object, containing the created torus.
*/
GEOM_Object MakeTorusPntVecRR (in GEOM_Object thePnt,
- in GEOM_Object theVec,
- in double theRMajor,
- in double theRMinor);
+ in GEOM_Object theVec,
+ in double theRMajor,
+ in double theRMinor);
/*!
* Create a sphere with given radius at the origin of coordinate system.
* \return New GEOM_Object, containing the created prism.
*/
GEOM_Object MakePrismVecH (in GEOM_Object theBase,
- in GEOM_Object theVec,
- in double theH);
+ in GEOM_Object theVec,
+ in double theH);
/* The Same Prism but in 2 directions (forward&backward) */
GEOM_Object MakePrismVecH2Ways (in GEOM_Object theBase,
- in GEOM_Object theVec,
- in double theH);
+ in GEOM_Object theVec,
+ in double theH);
/*!
* Create a shape by extrusion of the base shape along a vector, defined by two points.
* \return New GEOM_Object, containing the created prism.
*/
GEOM_Object MakePrismTwoPnt (in GEOM_Object theBase,
- in GEOM_Object thePoint1,
- in GEOM_Object thePoint2);
+ in GEOM_Object thePoint1,
+ in GEOM_Object thePoint2);
/* The same prism but in two directions forward&backward */
GEOM_Object MakePrismTwoPnt2Ways (in GEOM_Object theBase,
- in GEOM_Object thePoint1,
- in GEOM_Object thePoint2);
-
+ 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.
* \return New GEOM_Object, containing the created prism.
*/
GEOM_Object MakePrismDXDYDZ (in GEOM_Object theBase,
- in double theDX, in double theDY, in double theDZ);
+ in double theDX, in double theDY, in double theDZ);
/* The same prism but in two directions forward&backward */
GEOM_Object MakePrismDXDYDZ2Ways (in GEOM_Object theBase,
in double theDX, in double theDY, in double theDZ);
* \return New GEOM_Object, containing the created revolution.
*/
GEOM_Object MakeRevolutionAxisAngle (in GEOM_Object theBase,
- in GEOM_Object theAxis,
- in double theAngle);
+ 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);
+ in GEOM_Object theAxis,
+ in double theAngle);
/*!
* Create a filling from the given compound of contours.
* \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 theMinDeg, in long theMaxDeg,
+ in double theTol2D, in double theTol3D,
+ 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.
* \return New GEOM_Object, containing the created shell or solid.
*/
GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
- in boolean theModeSolid,
- in double thePreci,
+ in boolean theModeSolid,
+ in double thePreci,
in boolean theRuled);
/*!
* 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
* \param theWithContact - the mode defining that the section is translated to be in
* contact with the spine.
* \param - WithCorrection - defining that the section is rotated to be
- * orthogonal to the spine tangent in the correspondent point
+ * orthogonal to the spine tangent in the correspondent point
* \return New GEOM_Object, containing the created pipe.
*/
GEOM_Object MakePipeWithDifferentSections (in ListOfGO theSeqBases,
- in ListOfGO theLocations,
- in GEOM_Object thePath,
- in boolean theWithContact ,
- in boolean theWithCorrection );
+ in ListOfGO theLocations,
+ in GEOM_Object thePath,
+ in boolean theWithContact ,
+ in boolean theWithCorrection );
/*!
* 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
* \param theWithContact - the mode defining that the section is translated to be in
* contact with the spine.
* \param - WithCorrection - defining that the section is rotated to be
- * orthogonal to the spine tangent in the correspondent point
+ * orthogonal to the spine tangent in the correspondent point
* \return New GEOM_Object, containing the created pipe.
*/
GEOM_Object MakePipeWithShellSections (in ListOfGO theSeqBases,
- in ListOfGO theSeqSubBases,
- in ListOfGO theLocations,
- in GEOM_Object thePath,
- in boolean theWithContact ,
- in boolean theWithCorrection );
+ in ListOfGO theSeqSubBases,
+ in ListOfGO theLocations,
+ in GEOM_Object thePath,
+ in boolean theWithContact ,
+ in boolean theWithCorrection );
/*!
* Create solids between given sections
* \return New GEOM_Object, containing the created solids.
*/
GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases,
- in ListOfGO theLocations);
+ in ListOfGO theLocations);
/*!
* 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,
- in GEOM_Object theVec);
+ GEOM_Object MakePipeBiNormalAlongVector (in GEOM_Object theBase,
+ in GEOM_Object thePath,
+ in GEOM_Object theVec);
};
*/
GEOM_Object MakeEdge (in GEOM_Object thePnt1, in GEOM_Object thePnt2);
+ /*!
+ * Create an edge from specified wire.
+ * \param theWire source Wire.
+ * \param theLinearTolerance linear tolerance value
+ * \param theAngularTolerance angular tolerance value
+ * \return New GEOM_Object, containing the created edge.
+ */
+ GEOM_Object MakeEdgeWire (in GEOM_Object theWire,
+ in double theLinearTolerance,
+ in double theAngularTolerance);
+
/*!
* Create a wire from the set of edges and wires.
* \param theEdgesAndWires List of edge and/or wires.
* \return New GEOM_Object, containing a copy of theShape without some faces.
*/
GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, in double theTolerance,
- in ListOfGO theFaces, in boolean doKeepNonSolids);
+ in ListOfGO theFaces, in boolean doKeepNonSolids);
+
+ /*!
+ * Get all sub-shapes and groups of \a theShape,
+ * that were created already by any other methods.
+ * \param theShape Any shape.
+ * \param theGroupsOnly If this parameter is TRUE, only groups will be
+ * returned, else all found sub-shapes and groups.
+ * \return List of existing sub-objects of \a theShape.
+ */
+ ListOfGO GetExistingSubObjects (in GEOM_Object theShape,
+ in boolean theGroupsOnly);
+
+ /*!
+ * 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.
* 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
* Don't try to apply modification operations on them.
*/
GEOM_Object GetSubShape (in GEOM_Object theMainShape,
- in long theID);
+ in long theID);
/*!
* Get global index of \a theSubShape in \a theMainShape.
* \return List of sub-shapes of theShape1, shared with theShape2.
*/
ListOfGO GetSharedShapes (in GEOM_Object theShape1,
- in GEOM_Object theShape2,
- in long theShapeType);
+ 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
* \return List of all found sub-shapes.
*/
ListOfGO GetShapesOnPlane (in GEOM_Object theShape,
- in long theShapeType,
- in GEOM_Object theAx1,
- in shape_state theState);
+ in long theShapeType,
+ in GEOM_Object theAx1,
+ in shape_state theState);
/*!
* 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.
* \return List of all found sub-shapes.
*/
ListOfGO GetShapesOnPlaneWithLocation (in GEOM_Object theShape,
- in long theShapeType,
- in GEOM_Object theAx1,
- in GEOM_Object thePnt,
- in shape_state theState);
+ in long theShapeType,
+ in GEOM_Object theAx1,
+ in GEOM_Object thePnt,
+ in shape_state theState);
* \return List of all found sub-shapes.
*/
ListOfGO GetShapesOnCylinder (in GEOM_Object theShape,
- in long theShapeType,
- in GEOM_Object theAxis,
- in double theRadius,
- in shape_state theState);
+ in long theShapeType,
+ in GEOM_Object theAxis,
+ 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
* \return List of all found sub-shapes.
*/
ListOfGO GetShapesOnSphere (in GEOM_Object theShape,
- in long theShapeType,
- in GEOM_Object theCenter,
- in double theRadius,
- in shape_state theState);
+ in long theShapeType,
+ in GEOM_Object theCenter,
+ in double theRadius,
+ in shape_state theState);
/*!
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
* \return List of IDs of all found sub-shapes.
*/
ListOfLong GetShapesOnPlaneIDs (in GEOM_Object theShape,
- in long theShapeType,
- in GEOM_Object theAx1,
- in shape_state theState);
+ in long theShapeType,
+ in GEOM_Object theAx1,
+ in shape_state theState);
/*!
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
* \return List of IDs of all found sub-shapes.
*/
ListOfLong GetShapesOnPlaneWithLocationIDs (in GEOM_Object theShape,
- in long theShapeType,
- in GEOM_Object theAx1,
- in GEOM_Object thePnt,
- in shape_state theState);
+ in long theShapeType,
+ in GEOM_Object theAx1,
+ in GEOM_Object thePnt,
+ in shape_state theState);
/*!
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
* \return List of IDs of all found sub-shapes.
*/
ListOfLong GetShapesOnCylinderIDs (in GEOM_Object theShape,
- in long theShapeType,
- in GEOM_Object theAxis,
- in double theRadius,
- in shape_state theState);
+ in long theShapeType,
+ in GEOM_Object theAxis,
+ 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
* \return List of IDs of all found sub-shapes.
*/
ListOfLong GetShapesOnSphereIDs (in GEOM_Object theShape,
- in long theShapeType,
- in GEOM_Object theCenter,
- in double theRadius,
- in shape_state theState);
+ in long theShapeType,
+ in GEOM_Object theCenter,
+ in double theRadius,
+ in shape_state theState);
/*!
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
* \return List of IDs of all found sub-shapes.
*/
ListOfLong GetShapesOnBoxIDs (in GEOM_Object theBox,
- in GEOM_Object theShape,
- in long theShapeType,
- in shape_state theState);
+ in GEOM_Object theShape,
+ in long theShapeType,
+ in shape_state theState);
/*!
* \brief Find subshapes complying with given status
* \return List of all found sub-shapes.
*/
ListOfGO GetShapesOnBox (in GEOM_Object theBox,
- in GEOM_Object theShape,
- in long theShapeType,
- in shape_state theState);
+ in GEOM_Object theShape,
+ in long theShapeType,
+ in shape_state theState);
/*!
* \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
* \return List of IDs of all found sub-shapes.
*/
ListOfLong GetShapesOnShapeIDs (in GEOM_Object theCheckShape,
- in GEOM_Object theShape,
- in short theShapeType,
- in shape_state theState);
+ in GEOM_Object theShape,
+ in short theShapeType,
+ in shape_state theState);
/*!
* \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
* \return List of all found sub-shapes.
*/
ListOfGO GetShapesOnShape (in GEOM_Object theCheckShape,
- in GEOM_Object theShape,
- in short theShapeType,
- in shape_state theState);
+ in GEOM_Object theShape,
+ in short theShapeType,
+ in shape_state theState);
/*!
* \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
* \return compound includes all found sub-shapes.
*/
GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape,
- in GEOM_Object theShape,
- in short theShapeType,
- in shape_state theState);
+ in GEOM_Object theShape,
+ in short theShapeType,
+ in shape_state theState);
/*!
* Get sub-shape(s) of \a theShapeWhere, which are
* \return Group of all found sub-shapes or a single found sub-shape.
*/
GEOM_Object GetInPlace (in GEOM_Object theShapeWhere,
- in GEOM_Object theShapeWhat);
+ in GEOM_Object theShapeWhat);
/*!
* Get sub-shape(s) of \a theShapeWhere, which are
* \return Group of all found sub-shapes or a single found sub-shape.
*/
GEOM_Object GetInPlaceByHistory (in GEOM_Object theShapeWhere,
- in GEOM_Object theShapeWhat);
+ in GEOM_Object theShapeWhat);
/*!
* Get sub-shape of theShapeWhere, which are
* \return found sub-shape.
*/
GEOM_Object GetSame (in GEOM_Object theShapeWhere,
- in GEOM_Object theShapeWhat);
+ in GEOM_Object theShapeWhat);
};
/*!
* \return New GEOM_Object, containing the created face.
*/
GEOM_Object MakeQuad (in GEOM_Object theEdge1,
- in GEOM_Object theEdge2,
- in GEOM_Object theEdge3,
- in GEOM_Object theEdge4);
+ in GEOM_Object theEdge2,
+ in GEOM_Object theEdge3,
+ in GEOM_Object theEdge4);
/*!
* Create a quadrangle face on two edges.
* \return New GEOM_Object, containing the created face.
*/
GEOM_Object MakeQuad2Edges (in GEOM_Object theEdge1,
- in GEOM_Object theEdge2);
+ in GEOM_Object theEdge2);
/*!
* Create a quadrangle face with specified corners.
* \return New GEOM_Object, containing the created face.
*/
GEOM_Object MakeQuad4Vertices (in GEOM_Object thePnt1,
- in GEOM_Object thePnt2,
- in GEOM_Object thePnt3,
- in GEOM_Object thePnt4);
+ in GEOM_Object thePnt2,
+ in GEOM_Object thePnt3,
+ in GEOM_Object thePnt4);
/*!
* Create a hexahedral solid, bounded by the six given faces. Order of
* \return New GEOM_Object, containing the created solid.
*/
GEOM_Object MakeHexa (in GEOM_Object theFace1,
- in GEOM_Object theFace2,
- in GEOM_Object theFace3,
- in GEOM_Object theFace4,
- in GEOM_Object theFace5,
- in GEOM_Object theFace6);
+ in GEOM_Object theFace2,
+ in GEOM_Object theFace3,
+ in GEOM_Object theFace4,
+ in GEOM_Object theFace5,
+ in GEOM_Object theFace6);
/*!
* Create a hexahedral solid between two given faces.
* \return New GEOM_Object, containing the created solid.
*/
GEOM_Object MakeHexa2Faces (in GEOM_Object theFace1,
- in GEOM_Object theFace2);
+ in GEOM_Object theFace2);
/*!
* Extract elements of blocks and blocks compounds
* \return New GEOM_Object, containing the found vertex.
*/
GEOM_Object GetPoint (in GEOM_Object theShape,
- in double theX,
- in double theY,
- in double theZ,
- in double theEpsilon);
+ in double theX,
+ in double theY,
+ in double theZ,
+ in double theEpsilon);
+
+ /*!
+ * Find a vertex of the given shape, which has minimal distance to the given point.
+ * \param theShape Any shape.
+ * \param thePoint Point, close to the desired vertex.
+ * \return New GEOM_Object, containing the found vertex.
+ */
+ GEOM_Object GetVertexNearPoint (in GEOM_Object theShape,
+ in GEOM_Object thePoint);
/*!
* Get an edge, found in the given shape by two given vertices.
* \return New GEOM_Object, containing the found edge.
*/
GEOM_Object GetEdge (in GEOM_Object theShape,
- in GEOM_Object thePoint1,
- in GEOM_Object thePoint2);
+ in GEOM_Object thePoint1,
+ in GEOM_Object thePoint2);
/*!
* Find an edge of the given shape, which has minimal distance to the given point.
* \return New GEOM_Object, containing the found edge.
*/
GEOM_Object GetEdgeNearPoint (in GEOM_Object theShape,
- in GEOM_Object thePoint);
+ in GEOM_Object thePoint);
/*!
* Returns a face, found in the given shape by four given corner vertices.
* \return New GEOM_Object, containing the found face.
*/
GEOM_Object GetFaceByPoints (in GEOM_Object theShape,
- in GEOM_Object thePoint1,
- in GEOM_Object thePoint2,
- in GEOM_Object thePoint3,
- in GEOM_Object thePoint4);
+ in GEOM_Object thePoint1,
+ in GEOM_Object thePoint2,
+ in GEOM_Object thePoint3,
+ in GEOM_Object thePoint4);
/*!
* Get a face of block, found in the given shape by two given edges.
* \return New GEOM_Object, containing the found face.
*/
GEOM_Object GetFaceByEdges (in GEOM_Object theShape,
- in GEOM_Object theEdge1,
- in GEOM_Object theEdge2);
+ in GEOM_Object theEdge1,
+ in GEOM_Object theEdge2);
/*!
* Find a face, opposite to the given one in the given block.
* \return New GEOM_Object, containing the found face.
*/
GEOM_Object GetOppositeFace (in GEOM_Object theBlock,
- in GEOM_Object theFace);
+ in GEOM_Object theFace);
/*!
* Find a face of the given shape, which has minimal distance to the given point.
* \return New GEOM_Object, containing the found face.
*/
GEOM_Object GetFaceNearPoint (in GEOM_Object theShape,
- in GEOM_Object thePoint);
+ in GEOM_Object thePoint);
/*!
* Find a face of block, whose outside normale has minimal angle with the given vector.
* \return New GEOM_Object, containing the found face.
*/
GEOM_Object GetFaceByNormale (in GEOM_Object theBlock,
- in GEOM_Object theVector);
+ in GEOM_Object theVector);
+
+ /*!
+ * Find all subshapes of type \a theShapeType of the given shape,
+ * which have minimal distance to the given point.
+ * \param theShape Any shape.
+ * \param thePoint Point, close to the desired shape.
+ * \param theShapeType Defines what kind of subshapes is searched.
+ * \param theTolerance The tolerance for distances comparison. All shapes
+ * with distances to the given point in interval
+ * [minimal_distance, minimal_distance + theTolerance] will be gathered.
+ * \return New GEOM_Object, containing a group of all found shapes.
+ */
+ GEOM_Object GetShapesNearPoint (in GEOM_Object theShape,
+ in GEOM_Object thePoint,
+ in long theShapeType,
+ in double theTolerance);
/*!
* Extract blocks from blocks compounds
* \return theNbBlocks Number of specified blocks in theCompound.
*/
boolean IsCompoundOfBlocks (in GEOM_Object theCompound,
- in long theMinNbFaces,
- in long theMaxNbFaces,
- out long theNbBlocks);
+ in long theMinNbFaces,
+ in long theMaxNbFaces,
+ out long theNbBlocks);
/*!
* Enumeration of Blocks Compound defects.
* \return theErrors Structure, containing discovered errors and incriminated sub-shapes.
*/
boolean CheckCompoundOfBlocks (in GEOM_Object theCompound,
- out BCErrors theErrors);
+ out BCErrors theErrors);
/*!
* Convert sequence of Blocks Compound errors, returned by
* \return String, describing all the errors in form, suitable for printing.
*/
string PrintBCErrors (in GEOM_Object theCompound,
- in BCErrors theErrors);
+ in BCErrors theErrors);
/*!
* Remove all seam and degenerated edges from \a theShape.
* \return List of GEOM_Objects, containing the retrieved blocks.
*/
ListOfGO ExplodeCompoundOfBlocks (in GEOM_Object theCompound,
- in long theMinNbFaces,
- in long theMaxNbFaces);
+ in long theMinNbFaces,
+ in long theMaxNbFaces);
/*!
* Find block, containing the given point inside its volume or on boundary.
* \return New GEOM_Object, containing the found block.
*/
GEOM_Object GetBlockNearPoint (in GEOM_Object theCompound,
- in GEOM_Object thePoint);
+ in GEOM_Object thePoint);
/*!
* Find block, containing all the elements, passed as the parts, or maximum quantity of them.
* \return New GEOM_Object, containing the found block.
*/
GEOM_Object GetBlockByParts (in GEOM_Object theCompound,
- in ListOfGO theParts);
+ in ListOfGO theParts);
/*!
* Return all blocks, containing all the elements, passed as the parts.
* \return List of GEOM_Objects, containing the found blocks.
*/
ListOfGO GetBlocksByParts (in GEOM_Object theCompound,
- in ListOfGO theParts);
+ in ListOfGO theParts);
/*!
* Operations on blocks with gluing of result
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
- in long theDirFace1,
- in long theDirFace2,
- in long theNbTimes);
+ in long theDirFace1,
+ in long theDirFace2,
+ in long theNbTimes);
/*!
* Multi-transformate block and glue the result.
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeMultiTransformation2D (in GEOM_Object theBlock,
- in long theDirFace1U,
- in long theDirFace2U,
- in long theNbTimesU,
- in long theDirFace1V,
- in long theDirFace2V,
- in long theNbTimesV);
+ in long theDirFace1U,
+ in long theDirFace2U,
+ in long theNbTimesU,
+ in long theDirFace1V,
+ in long theDirFace2V,
+ in long theNbTimesV);
/*!
* Special operation - propagation
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeBoolean (in GEOM_Object theShape1,
- in GEOM_Object theShape2,
- in long theOperation);
+ in GEOM_Object theShape2,
+ in long theOperation);
/*!
* Perform partition operation.
* \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
* \return New GEOM_Object, containing the result shapes.
*/
GEOM_Object MakePartition (in ListOfGO theShapes,
- in ListOfGO theTools,
- in ListOfGO theKeepInside,
- in ListOfGO theRemoveInside,
- in short theLimit,
- in boolean theRemoveWebs,
- in ListOfLong theMaterials,
- in short theKeepNonlimitShapes);
+ in ListOfGO theTools,
+ in ListOfGO theKeepInside,
+ in ListOfGO theRemoveInside,
+ in short theLimit,
+ in boolean theRemoveWebs,
+ in ListOfLong theMaterials,
+ in short theKeepNonlimitShapes);
/*!
* Perform partition operation.
* \return New GEOM_Object, containing the result shapes.
*/
GEOM_Object MakePartitionNonSelfIntersectedShape (in ListOfGO theShapes,
- in ListOfGO theTools,
- in ListOfGO theKeepInside,
- in ListOfGO theRemoveInside,
- in short theLimit,
- in boolean theRemoveWebs,
- in ListOfLong theMaterials,
- in short theKeepNonlimitShapes);
+ in ListOfGO theTools,
+ in ListOfGO theKeepInside,
+ in ListOfGO theRemoveInside,
+ in short theLimit,
+ in boolean theRemoveWebs,
+ in ListOfLong theMaterials,
+ in short theKeepNonlimitShapes);
/*!
* Perform partition of the Shape with the Plane
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeHalfPartition (in GEOM_Object theShape,
- in GEOM_Object thePlane);
+ in GEOM_Object thePlane);
};
/*!
* \return New GEOM_Object, containing the created circle.
*/
GEOM_Object MakeCirclePntVecR (in GEOM_Object thePnt,
- in GEOM_Object theVec,
- in double theR);
+ in GEOM_Object theVec,
+ in double theR);
/*!
* Create a circle, passing through three given points
* \param thePnt1,thePnt2,thePnt3 Points, defining the circle.
* \return New GEOM_Object, containing the created circle.
*/
GEOM_Object MakeCircleThreePnt (in GEOM_Object thePnt1,
- in GEOM_Object thePnt2,
- in GEOM_Object thePnt3);
+ in GEOM_Object thePnt2,
+ in GEOM_Object thePnt3);
/*!
* Create a circle with given center, with a radius equals the distance from center to Point1
* and on a plane defined by all of three points.
* \return New GEOM_Object, containing the created circle.
*/
GEOM_Object MakeCircleCenter2Pnt (in GEOM_Object thePnt1,
- in GEOM_Object thePnt2,
- in GEOM_Object thePnt3);
+ in GEOM_Object thePnt2,
+ in GEOM_Object thePnt3);
/*!
* Create an ellipse with given center, normal vector and radiuses.
* \param thePnt Ellipse center.
* \return New GEOM_Object, containing the created ellipse.
*/
GEOM_Object MakeEllipse (in GEOM_Object thePnt,
- in GEOM_Object theVec,
- in double theRMajor,
- in double theRMinor);
+ in GEOM_Object theVec,
+ in double theRMajor,
+ in double theRMinor);
/*!
* Create an ellipse with given center, normal vector, main axis vector and radiuses.
* \return New GEOM_Object, containing the created ellipse.
*/
GEOM_Object MakeEllipseVec (in GEOM_Object thePnt,
- in GEOM_Object theVec,
- in double theRMajor,
- in double theRMinor,
- in GEOM_Object theVecMaj);
+ in GEOM_Object theVec,
+ in double theRMajor,
+ in double theRMinor,
+ in GEOM_Object theVecMaj);
/*!
* Create an arc of circle, passing through three given points.
* \return New GEOM_Object, containing the created arc.
*/
GEOM_Object MakeArc (in GEOM_Object thePnt1,
- in GEOM_Object thePnt2,
- in GEOM_Object thePnt3);
+ in GEOM_Object thePnt2,
+ in GEOM_Object thePnt3);
/*!
* Create an arc of circle of center C from one point to another
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.
* \return New GEOM_Object, containing the created arc.
*/
GEOM_Object MakeArcOfEllipse (in GEOM_Object theCenter,
- in GEOM_Object thePnt1,
- in GEOM_Object thePnt2);
+ in GEOM_Object thePnt1,
+ in GEOM_Object thePnt2);
/*!
/*!
* 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);
/*!
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeFilletAll (in GEOM_Object theShape,
- in double theR);
+ in double theR);
/*!
* Perform a fillet on the specified edges of the given shape
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
- in double theR,
- in ListOfLong theEdges);
+ in double theR,
+ in ListOfLong theEdges);
GEOM_Object MakeFilletEdgesR1R2 (in GEOM_Object theShape,
- in double theR1,
- in double theR2,
- in ListOfLong theEdges);
+ in double theR1,
+ in double theR2,
+ in ListOfLong theEdges);
/*!
* Perform a fillet on all edges of the specified faces of the given shape.
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
- in double theR,
- in ListOfLong theFaces);
-
+ in double theR,
+ in ListOfLong theFaces);
+
GEOM_Object MakeFilletFacesR1R2 (in GEOM_Object theShape,
- in double theR1,
- in double theR2,
- in ListOfLong theFaces);
-
+ 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.
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeFillet2D (in GEOM_Object theShape,
- in double theR,
- in ListOfLong theVertexes);
+ 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.
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeChamferAll (in GEOM_Object theShape,
- in double theD);
+ in double theD);
/*!
* Perform a chamfer on edges, common to the specified faces.
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
- in double theD1, in double theD2,
- in long theFace1, in long theFace2);
+ in double theD1, in double theD2,
+ in long theFace1, in long theFace2);
/*!
* The Same but with params theD = Chamfer Lenght
* and theAngle = Chamfer Angle (Angle in radians)
*/
GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape,
- in double theD, in double theAngle,
- in long theFace1, in long theFace2);
+ in double theD, in double theAngle,
+ in long theFace1, in long theFace2);
/*!
* Perform a chamfer on all edges of the specified faces.
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
- in double theD1, in double theD2,
- in ListOfLong theFaces);
+ in double theD1, in double theD2,
+ in ListOfLong theFaces);
/*!
* The Same but with params theD = Chamfer Lenght
* and theAngle = Chamfer Angle (Angle in radians)
*/
GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape,
- in double theD, in double theAngle,
- in ListOfLong theFaces);
+ in double theD, in double theAngle,
+ in ListOfLong theFaces);
/*!
* Perform a chamfer on edges,
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeChamferEdges (in GEOM_Object theShape,
- in double theD1, in double theD2,
- in ListOfLong theEdges);
+ in double theD1, in double theD2,
+ in ListOfLong theEdges);
/*!
* The Same but with params theD = Chamfer Lenght
* and theAngle = Chamfer Angle (Angle in radians)
*/
GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape,
- in double theD, in double theAngle,
- in ListOfLong theEdges);
+ in double theD, in double theAngle,
+ in ListOfLong theEdges);
/*!
* Perform an Archimde operation on the given shape with given parameters.
* by a plane, corresponding to water level.
*/
GEOM_Object MakeArchimede (in GEOM_Object theShape,
- in double theWeight,
- in double theWaterDensity,
- in double theMeshDeflection);
+ in double theWeight,
+ in double theWaterDensity,
+ in double theMeshDeflection);
/*!
* Duplicates <VAR>GEOM_IShapesOperations.GetSubShapeIndex()</VAR>.
* \return New GEOM_Object, containing processed shape.
*/
GEOM_Object ProcessShape (in GEOM_Object theShapes,
- in string_array theOperators,
- in string_array theParameters,
- in string_array theValues);
+ in string_array theOperators,
+ in string_array theParameters,
+ in string_array theValues);
/*!
* Get default sequence of operators, their parameters and parameters' values
* as parameters are listed in \a theParameters list.
*/
void GetShapeProcessParameters (out string_array theOperators,
- out string_array theParameters,
- out string_array theValues);
+ out string_array theParameters,
+ out string_array theValues);
/*!
* Get parameters and parameters' values for the given Shape Process operation.
* In the current implementation the defaults are
* as parameters are listed in \a theParameters list.
*/
void GetOperatorParameters (in string theOperator,
- out string_array theParameters,
- out string_array theValues);
+ out string_array theParameters,
+ out string_array theValues);
/*!
* Remove faces from the given object (shape).
* \return New GEOM_Object, containing processed shape.
*/
GEOM_Object CloseContour (in GEOM_Object theObject, in short_array theWires,
- in boolean isCommonVertex);
+ in boolean isCommonVertex);
/*!
* Remove internal wires and edges from the given object (face).
* \return New GEOM_Object, containing processed shape.
*/
GEOM_Object DivideEdge (in GEOM_Object theObject, in short theEdgeIndex,
- in double theValue, in boolean isByParameter);
+ in double theValue, in boolean isByParameter);
/*!
* Get a list of wires (wrapped in GEOM_Object-s),
* \return FALSE, if an error(s) occured during the method execution.
*/
boolean GetFreeBoundary (in GEOM_Object theObject,
- out ListOfGO theClosedWires,
- out ListOfGO theOpenWires);
+ out ListOfGO theClosedWires,
+ out ListOfGO theOpenWires);
/*!
* Change orientation of the given object.
GEOM_Object ChangeOrientation (in GEOM_Object theObject);
GEOM_Object ChangeOrientationCopy (in GEOM_Object theObject);
+ /*!
+ * Try to limit tolerance of the given object by value \a theTolerance.
+ * \param theObject Shape to be processed.
+ * \param theTolerance Required tolerance value.
+ * \return New GEOM_Object, containing processed shape.
+ */
+ GEOM_Object LimitTolerance (in GEOM_Object theObject, in double theTolerance);
+
};
/*!
* \return Returns available formats and patterns through the arguments.
*/
void ImportTranslators (out string_array theFormats,
- out string_array thePatterns);
+ out string_array thePatterns);
/*!
* Get the supported export formats and corresponding patterns for File dialog.
* \return Returns available formats and patterns through the arguments.
*/
void ExportTranslators (out string_array theFormats,
- out string_array thePatterns);
+ 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)
};
};
*/
//short KindOfShape (in GEOM_Object theShape,
GEOM_IKindOfShape::shape_kind KindOfShape (in GEOM_Object theShape,
- out ListOfLong theIntegers,
- out ListOfDouble theDoubles);
+ out ListOfLong theIntegers,
+ out ListOfDouble theDoubles);
/*!
* Get position (LCS) of theShape.
* \return Returns position of the shape through the last nine arguments.
*/
void GetPosition (in GEOM_Object theShape,
- out double Ox, out double Oy, out double Oz,
- out double Zx, out double Zy, out double Zz,
- out double Xx, out double Xy, out double Xz);
+ out double Ox, out double Oy, out double Oz,
+ out double Zx, out double Zy, out double Zz,
+ out double Xx, out double Xy, out double Xz);
/*!
* Get summarized length of all wires,
* \return Returns shape properties through the last three arguments.
*/
void GetBasicProperties (in GEOM_Object theShape,
- out double theLength,
- out double theSurfArea,
- out double theVolume);
+ out double theLength,
+ out double theSurfArea,
+ out double theVolume);
/*!
* Get a point, situated at the centre of mass of theShape.
*/
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.
* If the face is not planar, theOptionalPoint is obligatory.
* \return New GEOM_Object, containing the created normal vector.
*/
GEOM_Object GetNormal (in GEOM_Object theFace,
- in GEOM_Object theOptionalPoint);
+ in GEOM_Object theOptionalPoint);
/*!
* Get inertia matrix and moments of inertia of theShape.
* \return Returns inertia through the last twelve arguments.
*/
void GetInertia (in GEOM_Object theShape,
- out double I11, out double I12, out double I13,
- out double I21, out double I22, out double I23,
- out double I31, out double I32, out double I33,
- out double Ix , out double Iy , out double Iz);
+ out double I11, out double I12, out double I13,
+ out double I21, out double I22, out double I23,
+ out double I31, out double I32, out double I33,
+ out double Ix , out double Iy , out double Iz);
/*!
* Get parameters of bounding box of the given shape
* \return Returns parameters of bounding box through the last six arguments.
*/
void GetBoundingBox (in GEOM_Object theShape,
- out double Xmin, out double Xmax,
- out double Ymin, out double Ymax,
- out double Zmin, out double Zmax);
+ out double Xmin, out double Xmax,
+ out double Ymin, out double Ymax,
+ out double Zmin, out double Zmax);
/*!
* Get min and max tolerances of sub-shapes of theShape
* \return Returns shape tolerances through the last six arguments.
*/
void GetTolerance (in GEOM_Object theShape,
- out double FaceMin, out double FaceMax,
- out double EdgeMin, out double EdgeMax,
- out double VertMin, out double VertMax);
+ out double FaceMin, out double FaceMax,
+ out double EdgeMin, out double EdgeMax,
+ out double VertMin, out double VertMax);
/*!
* Check a topology of the given shape.
* \return TRUE, if the shape "seems to be valid" from the topological point of view.
*/
boolean CheckShape (in GEOM_Object theShape,
- out string theDescription);
+ out string theDescription);
/*!
* Check a topology and a geometry of the given shape.
* \return TRUE, if the shape "seems to be valid".
*/
boolean CheckShapeWithGeometry (in GEOM_Object theShape,
- out string theDescription);
+ out string theDescription);
/*!
* Obtain description of the given shape
* \return Value of the minimal distance between the given shapes.
*/
double GetMinDistance (in GEOM_Object theShape1, in GEOM_Object theShape2,
- out double X1, out double Y1, out double Z1,
- out double X2, out double Y2, out double Z2);
+ out double X1, out double Y1, out double Z1,
+ out double X2, out double Y2, out double Z2);
/*!
* Get angle between the given lines or linear edges.
* \return Value of curvature.
*/
double MaxSurfaceCurvatureByParam (in GEOM_Object theShape, in double theUParam,
- in double theVParam);
+ in double theVParam);
/*!
* Get max radius of curvature of surface in the given point
* \return Value of curvature.
*/
double MinSurfaceCurvatureByParam (in GEOM_Object theShape, in double theUParam,
- in double theVParam);
+ in double theVParam);
/*!
* Get min radius of curvature of surface in the given point
};
+ /*!
+ * 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.
* Returns a SObject where theObject is placed
*/
SALOMEDS::SObject AddInStudy (in SALOMEDS::Study theStudy,
- in GEOM_Object theObject,
- in string theName,
- in GEOM_Object theFather);
+ in GEOM_Object theObject,
+ in string theName,
+ in GEOM_Object theFather);
/*!
* Publish sub-shapes, standing for arguments and sub-shapes of arguments
* 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.
+ * \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
*/
ListOfGO RestoreSubShapesO (in SALOMEDS::Study theStudy,
- in GEOM_Object theObject,
- in ListOfGO theArgs,
- in find_shape_method theFindMethod,
- in boolean theInheritFirstArg);
+ 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
+ * To be used from python scripts out of geompy.addToStudy (non-default usage)
+ * \param theStudy the study, in which theObject is published already,
+ * and in which the arguments will be published
+ * \param theObject published GEOM object, arguments of which will be published
+ * \param theArgs list of GEOM_Object, operation arguments to be published.
+ * If this list is empty, all operation arguments will be published
+ * \param theFindMethod method to search subshapes, corresponding to arguments and
+ * their subshapes. Value from enumeration GEOM::find_shape_method.
+ * \param theInheritFirstArg set properties of the first argument for \a theObject.
+ * Do not publish subshapes in place of arguments, but only
+ * in place of subshapes of the first argument,
+ * because the whole shape corresponds to the first argument.
+ * Mainly to be used after transformations, but it also can be
+ * usefull after partition with one object shape, and some other
+ * 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.
+ * \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
+ */
+ ListOfGO RestoreGivenSubShapesO (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
* \param theSObject study object, referencing GEOM object, arguments of which will be published
*/
ListOfGO RestoreSubShapesSO (in SALOMEDS::Study theStudy,
- in SALOMEDS::SObject theSObject,
- in ListOfGO theArgs,
- in find_shape_method theFindMethod,
- in boolean theInheritFirstArg);
+ 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
* \param theObject The object which named subshapes are published
*/
ListOfGO PublishNamedShapesInStudy(in SALOMEDS::Study theStudy,
- //in SObject theSObject,
- in Object theObject);
+ //in SObject theSObject,
+ in Object theObject);
};
};