X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FGEOM_Gen.idl;h=59f490e7f0a2ca799b360116ac142423c7b9db63;hb=fd7c28d4837da3cc4e8af51132b4a695a59c77a9;hp=e102e01b1cc13e82403ae2c73fda92af64338c61;hpb=8405ffc0f51a34a1e111c1b395ff07b4f18db4f9;p=modules%2Fgeom.git
diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl
index e102e01b1..59f490e7f 100644
--- a/idl/GEOM_Gen.idl
+++ b/idl/GEOM_Gen.idl
@@ -1,3 +1,22 @@
+// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
// File : GEOM_Gen.idl
// Author : Sergey RUIN
@@ -245,6 +264,18 @@ module GEOM
GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve,
in double theParameter);
+
+ /*!
+ * Create a vector, corresponding to tangent to the given parameter on the given curve.
+ * \param theRefCurve The referenced curve.
+ * \param theParameter Value of parameter on the referenced curve.This value should be have value
+ * \between 0. and 1.. Value of 0. corresponds first parameter of curve value 1. corresponds
+ * \last parameter of curve.
+ * \return New GEOM_Object, containing the created point.
+ */
+ GEOM_Object MakeTangentOnCurve (in GEOM_Object theRefCurve,
+ in double theParameter);
+
/*!
* Create a vector with the given components.
* \param theDX X component of the vector.
@@ -308,7 +339,7 @@ module GEOM
/*!
* Create a plane, similar to the existing one, but with another size of representing face.
- * \param theFace Referenced plane.
+ * \param theFace Referenced plane or LCS(Marker).
* \param theTrimSize New half size of a side of quadrangle face, representing the plane.
* \return New GEOM_Object, containing the created plane.
*/
@@ -325,6 +356,20 @@ module GEOM
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);
+
+ /*!
+ * Create a tangent plane to specified face in the point with specified parameters.
+ * Values of parameters should be between 0. and 1.0
+ * \param theFace - face for which tangent plane shuold be built.
+ * \param theParameterU - value of parameter by U
+ * \param theParameterV - value of parameter Vthe
+ * \param theTrimSize - defines sizes of created face
+ * \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);
};
interface GEOM_ITransformOperations : GEOM_IOperations
@@ -425,6 +470,34 @@ module GEOM
in double theStep2,
in long theNbTimes2);
+ /*!
+ * Rotate given object around vector perpendicular to plane containing three points.
+ * \param theObject The object to be rotated.
+ * \param theCentPoint central point - the axis is the vector perpendicular to the plane
+ * containing the three points.
+ * \param thePoint1 and thePoint2 - in a perpendicular plan of the axis.
+ * \return theObject.
+ */
+ GEOM_Object RotateThreePoints (in GEOM_Object theObject,
+ in GEOM_Object theCentPoint,
+ in GEOM_Object thePoint1,
+ in GEOM_Object thePoint2);
+
+
+ /*!
+ * Rotate given object around vector perpendicular to plane containing three points.
+ * Creating its copy before the rotatation.
+ * \param theObject The object to be rotated.
+ * \param theCentPoint central point - the axis is the vector perpendicular to the plane
+ * containing the three points.
+ * \param thePoint1 and thePoint2 - in a perpendicular plan of the axis.
+ * \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);
+
/*!
* Rotate the given object around the given axis on the given angle.
* \param theObject The object to be rotated.
@@ -436,6 +509,7 @@ module GEOM
in GEOM_Object theAxis,
in double theAngle);
+
/*!
* Rotate the given object around the given axis
* on the given angle, creating its copy before the rotatation.
@@ -448,6 +522,7 @@ module GEOM
in GEOM_Object theAxis,
in double theAngle);
+
/*!
* Rotate the given object around the given axis a given number times.
* Rotation angle will be 2*PI/theNbTimes.
@@ -571,15 +646,31 @@ module GEOM
in double theFactor);
/*!
- * Modify the Location of the given object by LCS
+ * Modify the Location of the given object by LCS.
+ * \param theObject The object to be displaced.
+ * \param theStartLCS Coordinate system to perform displacement from it.
+ * If \a theStartLCS is NULL, displacement
+ * will be performed from global CS.
+ * If \a theObject itself is used as \a theStartLCS,
+ * its location will be changed to \a theEndLCS.
+ * \param theEndLCS Coordinate system to perform displacement to it.
+ * \return theObject.
*/
GEOM_Object PositionShape (in GEOM_Object theObject,
in GEOM_Object theStartLCS,
in GEOM_Object theEndLCS);
/*!
- * Modify the Location of the given object by LCS
- * creating its copy before the setting
+ * Modify the Location of the given object by LCS,
+ * creating its copy before the setting.
+ * \param theObject The object to be displaced.
+ * \param theStartLCS Coordinate system to perform displacement from it.
+ * If \a theStartLCS is NULL, displacement
+ * will be performed from global CS.
+ * If \a theObject itself is used as \a theStartLCS,
+ * its location will be changed to \a theEndLCS.
+ * \param theEndLCS Coordinate system to perform displacement to it.
+ * \return New GEOM_Object, containing the displaced shape.
*/
GEOM_Object PositionShapeCopy (in GEOM_Object theObject,
in GEOM_Object theStartLCS,
@@ -762,6 +853,41 @@ module GEOM
in long theMinDeg, in long theMaxDeg,
in double theTol2D, in double theTol3D,
in long theNbIter);
+
+ /*!
+ * Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
+ * \param theSeqSections - set of specified sections.
+ * \param theModeSolid - mode defining building solid or shell
+ * \param thePreci - precision 3D used for smoothing by default 1.e-6
+ * \param theRuled - mode defining type of the result surfaces (ruled or smoothed).
+ * \return New GEOM_Object, containing the created shell or solid.
+ */
+ GEOM_Object MakeThruSections(in ListOfGO theSeqSections,
+ in boolean theModeSolid,
+ in double thePreci,
+ in boolean theRuled);
+
+ /*!
+ * Create a shape by extrusion of the profile shape along
+ * the path shape. The path shape can be a wire or an edge.
+ * the several profiles can be specified in the several locations of path.
+ * \param theSeqBases - list of Bases shape to be extruded.
+ * \param theLocations - list of locations on the path corresponding
+ * specified list of the Bases shapes. Number of locations
+ * should be equal to number of bases or list of locations can be empty.
+ * \param thePath - Path shape to extrude the base shape along it.
+ * \param theWithContact - the mode defining that the section is translated to be in
+ * contact with the spine.
+ * \param - WithCorrection - defining that the section is rotated to be
+ * 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 );
+
};
/*!
@@ -788,7 +914,7 @@ module GEOM
/*!
* Create a face on the given wire.
- * \param theWire Wire to build the face on.
+ * \param theWire closed Wire or Edge to build the face on.
* \param isPlanarWanted If TRUE, only planar face will be built.
* If impossible, NULL object will be returned.
* \return New GEOM_Object, containing the created face.
@@ -797,7 +923,7 @@ module GEOM
/*!
* Create a face on the given wires set.
- * \param theWires List of wires to build the face on.
+ * \param theWires List of closed wires or edges to build the face on.
* \param isPlanarWanted If TRUE, only planar face will be built.
* If impossible, NULL object will be returned.
* \return New GEOM_Object, containing the created face.
@@ -874,6 +1000,35 @@ module GEOM
GEOM_Object GetSubShape (in GEOM_Object theMainShape,
in long theID);
+ /*!
+ * Get global index of \a theSubShape in \a theMainShape.
+ * \param theMainShape Main shape.
+ * \param theSubShape Sub-shape of the main shape.
+ * \return global index of \a theSubShape in \a theMainShape.
+ */
+ long GetSubShapeIndex (in GEOM_Object theMainShape, in GEOM_Object theSubShape);
+
+ /*!
+ * Get index of \a theSubShape in \a theMainShape, unique among sub-shapes of the same type.
+ * Together with method GetShapeTypeString() it can be used
+ * to generate automatic names for sub-shapes, when publishing them in a study.
+ * \param theMainShape Main shape.
+ * \param theSubShape Sub-shape of the main shape.
+ * \return index of \a theSubShape in a list of all sub-shapes of \a theMainShape of the same type.
+ */
+ long GetTopologyIndex (in GEOM_Object theMainShape, in GEOM_Object theSubShape);
+
+ /*!
+ * \brief Get name of type of \a theShape.
+ *
+ * Use wide type notation, taking into consideration both topology and geometry of the shape.
+ * Together with method GetTopologyIndex() it can be used
+ * to generate automatic names for sub-shapes, when publishing them in a study.
+ * \param theShape The shape to get a type of.
+ * \return String, containing a type name of \a theShape.
+ */
+ string GetShapeTypeString (in GEOM_Object theShape);
+
/*!
* Count number of faces in the given shape.
* \param theShape Shape to count faces in.
@@ -928,6 +1083,24 @@ module GEOM
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.
+ * \param theShape Shape to find sub-shapes of.
+ * \param theShapeType Type of sub-shapes to be retrieved.
+ * \param theAx1 Vector (or line, or linear edge), specifying normal
+ * direction of the plane to find shapes on.
+ * \param thePnt Point specifying location of the plane to find shapes on.
+ * \param theState The state of the subshapes to find.
+ * \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);
+
+
/*!
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
@@ -996,6 +1169,23 @@ module GEOM
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.
+ * \param theShape Shape to find sub-shapes of.
+ * \param theShapeType Type of sub-shapes to be retrieved.
+ * \param theAx1 Vector (or line, or linear edge), specifying normal
+ * direction of the plane to find shapes on.
+ * \param thePnt Point specifying location of the plane to find shapes on.
+ * \param theState The state of the subshapes to find.
+ * \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);
/*!
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
@@ -1050,6 +1240,32 @@ module GEOM
in GEOM_Object theBottomRigthPoint,
in shape_state theState);
+ /*!
+ * \brief Find subshapes complying with given status
+ * \param theBox - the box to check state of subshapes against
+ * \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 GetShapesOnBoxIDs (in GEOM_Object theBox,
+ in GEOM_Object theShape,
+ in long theShapeType,
+ in shape_state theState);
+
+ /*!
+ * \brief Find subshapes complying with given status
+ * \param theBox - the box to check state of subshapes against
+ * \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 GetShapesOnBox (in GEOM_Object theBox,
+ in GEOM_Object theShape,
+ in long theShapeType,
+ in shape_state theState);
+
/*!
* Get sub-shape(s) of theShapeWhere, which are
* coincident with \a theShapeWhat or could be a part of it.
@@ -1059,6 +1275,16 @@ module GEOM
*/
GEOM_Object GetInPlace (in GEOM_Object theShapeWhere,
in GEOM_Object theShapeWhat);
+
+ /*!
+ * Get sub-shape of theShapeWhere, which are
+ * coincident with \a theShapeWhat that can either SOLID, FACE, EDGE or VERTEX.
+ * \param theShapeWhere Shape to find sub-shapes of.
+ * \param theShapeWhat Shape, specifying what to find.
+ * \return found sub-shape.
+ */
+ GEOM_Object GetSame (in GEOM_Object theShapeWhere,
+ in GEOM_Object theShapeWhat);
};
/*!
@@ -1359,7 +1585,7 @@ module GEOM
* \param theDirFace2 Second direction face global index.
* \param theNbTimes Quantity of transformations to be done.
* \note Global index of sub-shape can be obtained, using method
- * GEOM_ILocalOperations.GetSubShapeIndex().
+ * GEOM_IShapesOperations.GetSubShapeIndex().
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeMultiTransformation1D (in GEOM_Object theBlock,
@@ -1419,13 +1645,21 @@ module GEOM
* Perform partition operation.
* \param theShapes Shapes to be intersected.
* \param theTools Shapes to intersect theShapes.
+ * \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).
+ *
+ * After implementation new version of PartitionAlgo (October 2006)
+ * other parameters are ignored by current functionality. They are kept
+ * in this function only for supporting old versions.
+ * Ignored parameters:
* \param theKeepInside Shapes, outside which the results will be deleted.
* Each shape from theKeepInside must belong to theShapes also.
* \param theRemoveInside Shapes, inside which the results will be deleted.
* Each shape from theRemoveInside must belong to theShapes also.
- * \param theLimit Type of resulting shapes (corresponding to TopAbs_ShapeEnum).
* \param theRemoveWebs If TRUE, perform Glue 3D algorithm.
* \param theMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
+ *
* \return New GEOM_Object, containing the result shapes.
*/
GEOM_Object MakePartition (in ListOfGO theShapes,
@@ -1436,6 +1670,27 @@ module GEOM
in boolean theRemoveWebs,
in ListOfLong theMaterials);
+ /*!
+ * Perform partition operation.
+ * This method may be usefull if it is needed to make a partition for
+ * a compound containing nonintersected shapes. Performance will be better
+ * since intersection between shapes from compound is not performed.
+ *
+ * Description of all parameters as in previous method MakePartition()
+ *
+ * \note Passed compounds (via ListShapes or via ListTools)
+ * have to consist of nonintersecting shapes.
+ *
+ * \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);
+
/*!
* Perform partition of the Shape with the Plane
* \param theShape Shape to be intersected.
@@ -1558,7 +1813,7 @@ module GEOM
* For format of the description string see the previous method.\n
* \param theCommand String, defining the sketcher in local
* coordinates of the working plane.
- * \param theWorkingPlane Planar Face of the working plane.
+ * \param theWorkingPlane Planar Face or LCS(Marker) of the working plane.
* \return New GEOM_Object, containing the created wire.
*/
GEOM_Object MakeSketcherOnPlane (in string theCommand, in GEOM_Object theWorkingPlane);
@@ -1583,7 +1838,8 @@ module GEOM
* \param theShape Shape, to perform fillet on.
* \param theR Fillet radius.
* \param theEdges Global indices of edges to perform fillet on.
- * \note Global index of sub-shape can be obtained, using method GetSubShapeIndex().
+ * \note Global index of sub-shape can be obtained, using method
+ * GEOM_IShapesOperations.GetSubShapeIndex().
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeFilletEdges (in GEOM_Object theShape,
@@ -1595,7 +1851,8 @@ module GEOM
* \param theShape Shape, to perform fillet on.
* \param theR Fillet radius.
* \param theFaces Global indices of faces to perform fillet on.
- * \note Global index of sub-shape can be obtained, using method GetSubShapeIndex().
+ * \note Global index of sub-shape can be obtained, using method
+ * GEOM_IShapesOperations.GetSubShapeIndex().
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeFilletFaces (in GEOM_Object theShape,
@@ -1618,7 +1875,8 @@ module GEOM
* \param theD1 Chamfer size along \a theFace1.
* \param theD2 Chamfer size along \a theFace2.
* \param theFace1,theFace2 Global indices of two faces of \a theShape.
- * \note Global index of sub-shape can be obtained, using method GetSubShapeIndex().
+ * \note Global index of sub-shape can be obtained, using method
+ * GEOM_IShapesOperations.GetSubShapeIndex().
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeChamferEdge (in GEOM_Object theShape,
@@ -1634,7 +1892,8 @@ module GEOM
* will be get along face, which is nearer to \a theFaces beginning.
* \param theD2 Chamfer size along another of two faces, connected to the edge.
* \param theFaces Sequence of global indices of faces of \a theShape.
- * \note Global index of sub-shape can be obtained, using method GetSubShapeIndex().
+ * \note Global index of sub-shape can be obtained, using method
+ * GEOM_IShapesOperations.GetSubShapeIndex().
* \return New GEOM_Object, containing the result shape.
*/
GEOM_Object MakeChamferFaces (in GEOM_Object theShape,
@@ -1657,10 +1916,8 @@ module GEOM
in double theMeshDeflection);
/*!
- * Get global index of \a theSubShape in \a theShape.
- * \param theShape Main shape.
- * \param theSubShape Sub-shape of the main shape.
- * \return global index of \a theSubShape in \a theShape.
+ * Duplicates GEOM_IShapesOperations.GetSubShapeIndex().
+ * Present here only for compatibility.
*/
long GetSubShapeIndex (in GEOM_Object theShape, in GEOM_Object theSubShape);
};
@@ -1783,6 +2040,15 @@ module GEOM
boolean GetFreeBoundary (in GEOM_Object theObject,
out ListOfGO theClosedWires,
out ListOfGO theOpenWires);
+
+ /*!
+ * Change orientation of the given object.
+ * \param theObject Shape to be processed.
+ * \return New GEOM_Object, containing processed shape.
+ */
+ GEOM_Object ChangeOrientation (in GEOM_Object theObject);
+ GEOM_Object ChangeOrientationCopy (in GEOM_Object theObject);
+
};
/*!
@@ -1841,6 +2107,22 @@ module GEOM
*/
interface GEOM_IMeasureOperations : GEOM_IOperations
{
+ /*!
+ * Get position (LCS) of theShape.
+ * \param theShape Shape to calculate position of.
+ * \param Ox,Oy,Oz Output. Coordinates of shape's location origin.
+ * Origin of the LCS is situated at the shape's center of mass.
+ * \param Zx,Zy,Zz Output. Coordinates of shape's location normal(main) direction.
+ * \param Xx,Xy,Xz Output. Coordinates of shape's location X direction.
+ * Axes of the LCS are obtained from shape's location or,
+ * if the shape is a planar face, from position of its plane.
+ * \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);
+
/*!
* Get summarized length of all wires,
* area of surface and volume of the given shape.
@@ -1910,6 +2192,15 @@ module GEOM
boolean CheckShape (in GEOM_Object theShape,
out string theDescription);
+ /*!
+ * Check a topology and a geometry of the given shape.
+ * \param theShape Shape to check validity of.
+ * \param theDescription Output. Description of problems in the shape, if they are.
+ * \return TRUE, if the shape "seems to be valid".
+ */
+ boolean CheckShapeWithGeometry (in GEOM_Object theShape,
+ out string theDescription);
+
/*!
* Obtain description of the given shape
* \param theShape Shape to be described.
@@ -1953,7 +2244,7 @@ module GEOM
* Adds a sub object with ID theSubShapeId to the group
* \param theGroup is a GEOM group to which the new sub shape is added
* \param theSubShapeId is a sub shape ID in the main object.
- * \note Use method ILocalOperations.GetSubShapeIndex() to get an ID by the sub shape
+ * \note Use method GEOM_IShapesOperations.GetSubShapeIndex() to get an ID by the sub shape
*/
void AddObject (in GEOM_Object theGroup, in long theSubShapeId);
@@ -1961,7 +2252,7 @@ module GEOM
* Removes a sub object with ID \a theSubShapeId from the group
* \param theGroup is a GEOM group from which the sub shape is removed.
* \param theSubShapeId is a sub shape ID in the main object.
- * \note Use method ILocalOperations.GetSubShapeIndex() to get an ID by the sub shape
+ * \note Use method GEOM_IShapesOperations.GetSubShapeIndex() to get an ID by the sub shape
*/
void RemoveObject (in GEOM_Object theGroup, in long theSubShapeId);