X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FGEOM_Gen.idl;h=05c9fe46f90fc9f285614c2e7eb5869132cda9ca;hb=b0880bc63f518a23f4dae31b92f3cba3b51246fd;hp=6f3652d8c25c62d6e25fd2e1277fd1de339f5a19;hpb=50d053afee3946b223684b1bab736f6beaa0f0db;p=modules%2Fgeom.git diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 6f3652d8c..05c9fe46f 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -147,7 +147,7 @@ module GEOM /*! * Get the TopoDS_Shape, for colocated case only. */ - long getShape(); + long long getShape(); /*! ###################################################################### @@ -339,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. */ @@ -470,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. @@ -481,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. @@ -493,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. @@ -616,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, @@ -842,6 +888,29 @@ module GEOM 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. + * \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 + * 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 MakePipeWithShellSections (in ListOfGO theSeqBases, + in ListOfGO theSeqSubBases, + in ListOfGO theLocations, + in GEOM_Object thePath, + in boolean theWithContact , + in boolean theWithCorrection ); + }; /*! @@ -868,7 +937,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. @@ -877,7 +946,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. @@ -920,6 +989,25 @@ module GEOM */ GEOM_Object MakeGlueFaces (in GEOM_Object theShape, in double theTolerance); + /*! + * Find coincident faces in theShape for possible gluing. + * \param theShape Initial shape. + * \param theTolerance Maximum distance between faces, which can be considered as coincident. + * \return ListOfGO + */ + ListOfGO GetGlueFaces (in GEOM_Object theShape, in double theTolerance); + + /*! + * Replace coincident faces in theShape by one face + * in compliance with given list of faces + * \param theShape Initial shape. + * \param theTolerance Maximum distance between faces, which can be considered as coincident. + * \param theFaces List of faces for gluing. + * \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); + /*! * Explode a shape on subshapes of a given type. * \param theShape Shape to be exploded. @@ -1037,6 +1125,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 @@ -1105,6 +1211,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 @@ -1159,6 +1282,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. @@ -1168,6 +1317,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); }; /*! @@ -1528,13 +1687,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, @@ -1545,6 +1712,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. @@ -1604,6 +1792,20 @@ module GEOM in GEOM_Object thePnt2, in GEOM_Object thePnt3); + /*! + * Create an arc of circle of center C from one point to another + * \param theCenter Center point of the arc. + * \param thePnt1 Start point of the arc. + * \param thePnt2 End point of the arc. + * \param theSense Orientation of the arc + * \return New GEOM_Object, containing the created arc. + */ + GEOM_Object MakeArcCenter (in GEOM_Object theCenter, + in GEOM_Object thePnt1, + in GEOM_Object thePnt2, + in boolean theSense); + + /*! * Create a polyline on the set of points. * \param thePoints Sequence of points for the polyline. @@ -1667,7 +1869,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); @@ -1954,6 +2156,52 @@ module GEOM out string_array thePatterns); }; + /*! + * GEOM_IKindOfShape: namespace for shape_kind enumeration. + */ + interface GEOM_IKindOfShape + { + enum shape_kind { + NO_SHAPE, + // COMPOSITEs + COMPOUND, + COMPSOLID, + SHELL, + WIRE, + // SOLIDs + SPHERE, // full sphere + CYLINDER, // cylinder + BOX, // box with faces, parallel to global coordinate planes + ROTATED_BOX, // other box + TORUS, // full torus + CONE, // cone + POLYHEDRON, // solid, bounded by polygons + SOLID, // other solid + // FACEs + SPHERE2D, // spherical face (closed) + CYLINDER2D, // cylindrical face with defined height + TORUS2D, // toroidal face (closed) + CONE2D, // conical face with defined height + DISK_CIRCLE, // planar, bounded by circle + DISK_ELLIPSE, // planar, bounded by ellipse + POLYGON, // planar, bounded by segments + PLANE, // infinite planar + PLANAR, // other planar + FACE, // other face + // EDGEs + CIRCLE, // full circle + ARC_CIRCLE, // arc of circle + ELLIPSE, // full ellipse + ARC_ELLIPSE, // arc of ellipse + LINE, // infinite segment + SEGMENT, // segment + EDGE, // other edge + // VERTEX + VERTEX + }; + }; + + /*! * GEOM_IMeasureOperations: Interface for measurement (distance, whatis) and * properties calculation (like Centre of Mass, Inertia, etc.). @@ -1961,6 +2209,37 @@ module GEOM */ interface GEOM_IMeasureOperations : GEOM_IOperations { + /*! + * Get kind of theShape. + * \param theShape Shape to get a kind of. + * \param theIntegers Output. Integer and enumerated shape's parameters + * (kind of surface, closed/unclosed, number of edges, etc.) + * \param theDoubles Output. Double shape's parameters (coordinates, dimensions, etc.) + * \note Concrete meaning of each value, returned via \a theIntegers + * or \a theDoubles list depends on the kind of the shape. + * \return Returns a kind of shape in terms of GEOM_IKindOfShape.shape_kind enumeration. + */ + //short KindOfShape (in GEOM_Object theShape, + GEOM_IKindOfShape::shape_kind KindOfShape (in GEOM_Object theShape, + out ListOfLong theIntegers, + out ListOfDouble theDoubles); + + /*! + * 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.