X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=idl%2FGEOM_Gen.idl;h=cb8a07058cefe82f5c8161a72019e86fabe2951c;hb=1bb74b43ea0b5238e756df0b46f413e38ac2427e;hp=87a912edc3829cb0cbb0237637947422e9819efe;hpb=b46831ede78cc6a4c84d76c7ddf46c3f270bc45c;p=modules%2Fgeom.git diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 87a912edc..cb8a07058 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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 @@ -209,6 +209,17 @@ module GEOM SI_ALL // all interferences }; + /** + * This enumeration represents comparison conditions. + */ + enum comparison_condition + { + CC_GT, ///< Greater then + CC_GE, ///< Greater then or equal to + CC_LT, ///< Less then + CC_LE ///< Less then or equal to + }; + /*! * \brief Object creation parameters * @@ -288,7 +299,9 @@ module GEOM long GetStudyID(); /*! - * \brief Get internal type of the object (POINT, BOX, CYLINDER, EXTRUSION...). + * \brief Get internal type of operation created this object (POINT, BOX, CYLINDER, EXTRUSION...). + * \note To get topological information on the object, use \ref GEOM_IMeasureOperations::WhatIs() "WhatIs()" + * or \ref GEOM_IMeasureOperations::KindOfShape() "KindOfShape()" operation. */ long GetType(); @@ -669,7 +682,7 @@ module GEOM /*! * \brief Set the operation error code - * \param theErrorID is a string describing the error occured + * \param theErrorID is a string describing the error occurred * \note This method is supposed to be used only by interfaces inheriting from IOperations. */ void SetErrorCode (in string theErrorID); @@ -690,7 +703,7 @@ module GEOM void StartOperation(); /*! - * \brief Closes the previously opened trasaction + * \brief Closes the previously opened transaction */ void FinishOperation(); @@ -732,10 +745,13 @@ module GEOM * Create a point, corresponding to the given parameter on the given curve. * \param theRefCurve The referenced curve. * \param theParameter Value of parameter on the referenced curve. + * \param takeOrientationIntoAccount flag that tells if it is necessary + * to take the curve's orientation into account. * \return New GEOM_Object, containing the created point. */ GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve, - in double theParameter); + in double theParameter, + in boolean takeOrientationIntoAccount); /*! * \brief Create a point, corresponding to the given length on the given curve. @@ -839,7 +855,7 @@ module GEOM /*! * C\brief reate a line, passing through the given point - * and parrallel to the given direction + * and parallel to the given direction * \param thePnt Point. The resulting line will pass through it. * \param theDir Direction. The resulting line will be parallel to it. * \return New GEOM_Object, containing the created line. @@ -1439,13 +1455,17 @@ module GEOM * to project the total length of the wire. If it is negative the * projection is not scaled and natural wire length is kept for * the projection. + * \param theAngleRotation the desired angle between the tangent vector + * to the first curve at the first point of the theObject's + * projection in 2D space and U-direction of cylinder's 2D space. * \return A wire or a face or a compound of faces that represents a * projection of the source shape onto a cylinder. */ GEOM_Object MakeProjectionOnCylinder (in GEOM_Object theObject, in double theRadius, in double theStartAngle, - in double theAngleLength); + in double theAngleLength, + in double theAngleRotation); }; /*! @@ -1801,9 +1821,13 @@ module GEOM * 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. + * contact with the spine. Ignored if IsBySteps is set. * \param theWithCorrection - 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. Ignored if IsBySteps is set. + * \param IsBySteps - flag that tells if the result should be created + * step by step or as a whole. If IsBySteps is set no correction + * of bases is allowed. * \param IsGenerateGroups flag that tells if it is necessary to * return groups (true) or not (false). * \return The list of objects. The first one is a result pipe, @@ -1816,6 +1840,7 @@ module GEOM in GEOM_Object thePath, in boolean theWithContact , in boolean theWithCorrection, + in boolean IsBySteps, in boolean IsGenerateGroups); /*! @@ -2631,7 +2656,8 @@ module GEOM * coincident with \a theShapeWhat or could be a part of it. * \param theShapeWhere Shape to find sub-shapes of. * \param theShapeWhat Shape, specifying what to find. - * \return Group of all found sub-shapes or a single found sub-shape. + * \return Compound which includes all found sub-shapes if they have different types; + * or group of all found shapes of the equal type; or a single found sub-shape. */ GEOM_Object GetInPlace (in GEOM_Object theShapeWhere, in GEOM_Object theShapeWhat); @@ -2654,7 +2680,8 @@ module GEOM * * \param theShapeWhere Shape to find sub-shapes of. * \param theShapeWhat Shape, specifying what to find. - * \return Group of all found sub-shapes or a single found sub-shape. + * \return Compound which includes all found sub-shapes if they have different types; + * or group of all found shapes of the equal type; or a single found sub-shape. */ GEOM_Object GetInPlaceByHistory (in GEOM_Object theShapeWhere, in GEOM_Object theShapeWhat); @@ -2735,6 +2762,63 @@ module GEOM ListOfGO GetSubShapeEdgeSorted (in GEOM_Object theShape, in GEOM_Object theStartPoint); + /*! + * \brief Return the list of subshapes that satisfies a certain tolerance + * criterion. The user defines the type of shapes to be returned, the + * condition and the tolerance value. The operation is defined for + * faces, edges and vertices only. E.g. for theShapeType FACE, theCondition + * CC_GT and theTolerance 1.e-7 this method returns all faces of theShape + * that have tolerances greater then 1.e7. + * + * \param theShape the shape to be exploded + * \param theShapeType the type of shapes to be returned. Can have the + * values FACE, EDGE and VERTEX only. + * \param theCondition the condition type. + * \param theTolerance the tolerance filter. + * \return the list of shapes that satisfy the conditions. + */ + ListOfGO GetSubShapesWithTolerance(in GEOM_Object theShape, + in short theShapeType, + in comparison_condition theCondition, + in double theTolerance); + + /** + * This enumeration represents an extraction statistics type. It is used in + * the interface GEOM_IShapesOperations::MakeExtraction. + */ + enum ExtractionStatType + { + EST_Removed, ///< Removed sub-shapes + EST_Modified, ///< Modified sub-shapes + EST_Added ///< Newly created sub-shapes + }; + + /*! + * This structure defines a format of extraction statistics. It is used in + * the interface GEOM_IShapesOperations::MakeExtraction. + */ + struct ExtractionStat + { + ExtractionStatType type; ///< Type of extraction statistics. + ListOfLong indices; ///< Shape indices touched by this type of modification. + }; + + typedef sequence ExtractionStats; + + /*! + * \brief Return the shape that is constructed from theShape without + * extracted sub-shapes from the input list. + * + * \param theShape the original shape. + * \param theSubShapeIDs the list of sub-shape IDs to be extracted from + * the original shape. + * \param theStats the operation statistics. Output parameter. + * \return the shape without extracted sub-shapes. + */ + GEOM_Object MakeExtraction(in GEOM_Object theShape, + in ListOfLong theSubShapeIDs, + out ExtractionStats theStats); + }; // # GEOM_IBlocksOperations: @@ -3133,7 +3217,7 @@ module GEOM * * Propagation group is a set of all edges, opposite to one (main) * edge of this group directly or through other opposite edges. - * Notion of Opposite Edge make sence only on quadrangle face. + * Notion of Opposite Edge make sense only on quadrangle face. * \param theShape Shape to build propagation groups on. * \return List of GEOM_Object, each of them is a propagation group. */ @@ -3232,7 +3316,7 @@ module GEOM * \param theRemoveInside Shapes, inside which the results will be deleted. * Each shape from theRemoveInside must belong to theShapes also. * \param theRemoveWebs If TRUE, perform Glue 3D algorithm. - * \param theMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE. + * \param theMaterials Material indices for each shape. Make sense, only if theRemoveWebs is TRUE. * * \return New GEOM_Object, containing the result shapes. */ @@ -3248,7 +3332,7 @@ module GEOM /*! * \brief Perform partition operation. * - * This method may be usefull if it is needed to make a partition for + * This method may be useful 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. * @@ -3711,7 +3795,7 @@ module GEOM * \param theVertexes Global indices of vertexes to perform fillet on. * \note Global index of sub-shape can be obtained, using method * GEOM_IShapesOperations.GetSubShapeIndex(). - * \note The list of vertices coudl be empty, in this case fillet fill be done + * \note The list of vertices could be empty, in this case fillet fill be done * at all vertices in given wire * \param doIgnoreSecantVertices If FALSE, fillet radius is always limited * by the length of the edges, nearest to the fillet vertex. @@ -3750,7 +3834,7 @@ module GEOM in double theD1, in double theD2, in long theFace1, in long theFace2); /*! - * \brief The Same but with params theD = Chamfer Lenght + * \brief The Same but with params theD = Chamfer Length * and theAngle = Chamfer Angle (Angle in radians) */ GEOM_Object MakeChamferEdgeAD (in GEOM_Object theShape, @@ -3774,7 +3858,7 @@ module GEOM in double theD1, in double theD2, in ListOfLong theFaces); /*! - * The Same but with params theD = Chamfer Lenght + * The Same but with params theD = Chamfer Length * and theAngle = Chamfer Angle (Angle in radians) */ GEOM_Object MakeChamferFacesAD (in GEOM_Object theShape, @@ -3793,7 +3877,7 @@ module GEOM in double theD1, in double theD2, in ListOfLong theEdges); /*! - * The Same but with params theD = Chamfer Lenght + * The Same but with params theD = Chamfer Length * and theAngle = Chamfer Angle (Angle in radians) */ GEOM_Object MakeChamferEdgesAD (in GEOM_Object theShape, @@ -3980,7 +4064,7 @@ module GEOM * \param theObjects Shapes to get free boundary of. * \param theClosedWires Output. Closed wires on the free boundary of the given shape. * \param theOpenWires Output. Open wires on the free boundary of the given shape. - * \return FALSE, if an error(s) occured during the method execution. + * \return FALSE, if an error(s) occurred during the method execution. */ boolean GetFreeBoundary (in ListOfGO theObjects, out ListOfGO theClosedWires, @@ -4110,7 +4194,7 @@ module GEOM }; /*! - * \brief Sequence of non-topological information tranfer data. + * \brief Sequence of non-topological information transfer data. */ typedef sequence ListOfTransferDatum; @@ -4125,7 +4209,7 @@ module GEOM * \param theResult statistics of the operation. Output parameter. It * represents a sequence of Transfer Datum. A datum has the type * (string code), the total number of items of this type and - * the number of transfered items. + * the number of transferred items. * \return true in case of success; otherwise false. */ boolean TransferData(in GEOM_Object theObjectFrom, @@ -4204,6 +4288,7 @@ module GEOM // VERTEX VERTEX, // ADVANCED shapes + LCS, /*! all advanced shapes (temporary implementation) */ ADVANCED }; @@ -4252,12 +4337,14 @@ module GEOM * \brief Get summarized length of all wires, * area of surface and volume of the given shape. * \param theShape Shape to define properties of. + * \param theTolerance maximal relative error of area and volume computation. * \param theLength Output. Summarized length of all wires of the given shape. * \param theSurfArea Output. Area of surface of the given shape. * \param theVolume Output. Volume of the given shape. * \return Returns shape properties through the last three arguments. */ void GetBasicProperties (in GEOM_Object theShape, + in double theTolerance, out double theLength, out double theSurfArea, out double theVolume); @@ -4448,6 +4535,29 @@ module GEOM in long theCheckLevel, out ListOfLong theIntersections); + /*! + * \brief Detect self-intersections of the given shape with algorithm based on mesh intersections. + * \param theShape Shape to check validity of. + * \param theDeflection Linear deflection coefficient that specifies quality of tesselation. + * \param theTolerance Specifies a distance between sub-shapes used for detecting gaps: + * - if \a theTolerance <= 0, algorithm detects intersections + * - if \a theTolerance > 0, algorithm detects gaps + * \param theIntersections Output. List of intersected sub-shapes IDs, it contains pairs of IDs. + * \return TRUE, if the shape does not have any self-intersections. + */ + boolean CheckSelfIntersectionsFast (in GEOM_Object theShape, + in float theDeflection, + in double theTolerance, + out ListOfLong theIntersections); + + /*! + * \brief Check boolean and partition operations agruments. + * \param theShape the agrument of an operation to be checked. + * \return TRUE if the agrument is valid for a boolean or partition + * operation; FALSE otherwise. + */ + boolean CheckBOPArguments (in GEOM_Object theShape); + /*! * \brief Detect intersections of the given shapes with algorithm based on mesh intersections. * \param theShape1 First source object @@ -4802,7 +4912,7 @@ module GEOM * in place of sub-shapes 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 + * useful 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. @@ -4833,7 +4943,7 @@ module GEOM * in place of sub-shapes 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 + * useful 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. @@ -4865,7 +4975,7 @@ module GEOM * in place of sub-shapes 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 + * useful 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.