X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=idl%2FGEOM_Gen.idl;h=92c21c70943db7ce0fd3089ca7903dc5273fa3dd;hb=916e6ce88544908a812337c1fa41e48c3bce5008;hp=6094c841e69f3752316a248ce147be26a28f7810;hpb=03ec0eb4cfc0435e5263aa91f917b0e4e9d776f1;p=modules%2Fgeom.git diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 6094c841e..92c21c709 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(); /*! ###################################################################### @@ -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. @@ -1210,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. @@ -1219,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); }; /*! @@ -1579,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, @@ -1596,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.