X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=idl%2FGEOM_Gen.idl;h=d33bc140dcb1be63fc7cbb9afcf3ec5f11cbd583;hb=9f730900596e9412f431c23b2bd985063814a750;hp=59afc08d2538e11ad4066e661563b6520b71d2be;hpb=d6f1d8730fa07983755573173bfdf8f708f91a17;p=modules%2Fgeom.git diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 59afc08d2..d33bc140d 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 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 @@ -258,6 +258,7 @@ module GEOM typedef sequence ListOfListOfDouble; typedef sequence ListOfListOfLong; + interface GEOM_Gen; interface GEOM_Object; interface GEOM_BaseObject; interface GEOM_Field; @@ -359,6 +360,11 @@ module GEOM * \brief Return name of operation and values of parameters used for object creation */ CreationInformationSeq GetCreationInformation(); + + /*! + * \brief Return the engine creating this object + */ + GEOM_Gen GetGen(); }; //# GEOM_Object @@ -503,6 +509,12 @@ module GEOM */ GEOM_Object GetMainShape(); + /* + * \brief Returns true if the current object has connection to a parametrical model + * which can be modified by parameters change. + */ + boolean IsParametrical(); + }; //# GEOM_Field @@ -804,7 +816,8 @@ module GEOM * \param theFace The referenced face. * \return New GEOM_Object, containing the created point. */ - GEOM_Object MakePointOnFace (in GEOM_Object theFace); + GEOM_Object MakePointOnFace (in GEOM_Object theFace, + in long theNumberOfPnts); /*! * \brief Create a point, on two lines intersection. @@ -4366,12 +4379,13 @@ module GEOM GEOM_Object GetCentreOfMass (in GEOM_Object theShape); /* - * Get the vertex by index for 1D objects depends the edge/wire orientation + * Get the vertex by index for 1D objects * \param theShape Shape (wire or edge) to find the vertex on it * \param theIndex Index of vertex sub-shape + * \param theUseOri To consider edge/wire orientation or not * \return New GEOM_Object, vertex. */ - GEOM_Object GetVertexByIndex( in GEOM_Object theShape, in long index ); + GEOM_Object GetVertexByIndex( in GEOM_Object theShape, in long theIndex, in boolean theUseOri ); /*! * \brief Get a vector, representing the normal of theFace. @@ -4646,6 +4660,16 @@ module GEOM */ double GetAngleBtwVectors (in GEOM_Object theShape1, in GEOM_Object theShape2); + /*! + * \brief The function takes a single face with holes and returns a list of faces, + * first of them is the original face without holes, and the other faces are placed + * on the same surface as the original face but bounded by each hole wire. + * If the original face has no holes, it will be returned as an output + * \param theShape face, to perform operation. + * \return ListOfGO, containing the result original face and faces from holes. + */ + ListOfGO PatchFace(in GEOM_Object theShape); + /*! * \brief Get point coordinates */ @@ -4703,6 +4727,144 @@ module GEOM */ double MinSurfaceCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint); + /*! + * \brief Get vector of curvature of surface in the given point along the given direction. + * \param theShape - face. + * \param thePoint - point. + * \param theDirection - direction. + * \note Before the calculation of curvature, the point and the direction + * are projected to the face, if the point does not lay on it or + * the direction is not tangent to it initially. + * \return Vector of curvature. The returned vector is codirectional with + * the normal to the face in the given point in case of positive + * curvature value and opposite to the normal in case of negative + * curvature. The normal of the returned vector is equal to the + * absolute value of the curvature. + */ + GEOM_Object SurfaceCurvatureByPointAndDirection (in GEOM_Object theShape, + in GEOM_Object thePoint, + in GEOM_Object theDirection); + + //! Methods and structure for implement CheckConformity tool + + /*! + * \brief Structure for store shapes from failed checks. + * If failed check on small edges, then second shape is null + */ + struct PairOfShape + { + GEOM_Object first; + GEOM_Object second; + }; + + /*! + * \brief Structure for store result of check + * store type of check as number and failed shapes + */ + struct CheckResult + { + long type; + PairOfShape failedShapes; + }; + + typedef sequence SequenceOfPairOfShape; + typedef sequence CheckResults; + + /*! + * \brief Perform analyse of shape and return all failed checks. + * + * \param theShape Shape for check. + */ + CheckResults CheckConformityShape(in GEOM_Object theShape); + + /*! + * \brief Find all self-intersected 2D curves. + * + * \param theResults result of check - list of failed checks and sub-shapes. + */ + SequenceOfPairOfShape SelfIntersected2D(in CheckResults theResults); + + /*! + * \brief Find pairs of interfering sub-shapes, by default all pairs of interfering shapes are returned. + * Avaliable types: + * - vertices touched by tolerance; + * - vertex touching an edge in the inner point; + * - vertex lying on the inner point of a face; + * - edges intersecting by inner points; + * - edge touching/intersecting face in the inner point; + * - faces intersection by inner point + * + * \param theResults result of check - list of failed checks and sub-shapes. + * \param theShapeType1 Type of shape. + * \param theShapeType2 Type of shape. + */ + SequenceOfPairOfShape InterferingSubshapes(in CheckResults theResults, + in long theShapeType1, + in long theShapeType2); + + /*! + * \brief Find edges, which are fully covered by tolerances of vertices. + * + * \param theResults result of check - list of failed checks and sub-shapes. + */ + ListOfGO SmallEdges(in CheckResults theResults); + + /*! + * \brief find remote objects (sub-shape on a shape). + * Avaliable types: + * - vertex far from edge; + * - vertex far from face; + * - edge far from face + * + * \param theResults result of check - list of failed checks and sub-shapes. + * \param theShapeType Type of shape. + * \param theSubShapeType Type of sub-shape. + * \param theTolerance tolerance, by default used tolerance of sub-shape. + */ + SequenceOfPairOfShape DistantShapes(in CheckResults theResults, + in long theShapeType, + in long theSubShapeType, + in double theTolerance); + + /*! + * \brief Compute possible tolerance for the shape, minimize tolerance of shape as well + * as tolerance of sub-shapes as much as possible + * + * \param theShape Shape for update. + */ + double UpdateTolerance(in GEOM_Object theShape); + + /*! + * \brief Get the calculator for the proximity value between the given shapes. + * \param theShape1,theShape2 Shapes to find proximity. + * \return The calculator object. + */ + GEOM_Object ShapeProximityCalculator(in GEOM_Object theShape1, in GEOM_Object theShape2); + + /*! + * \brief Set number sample points to compute the coarse proximity. + * \param theCalculator Proximity calculator. + * \param theShape Shape to be samples. + * \param theNbSamples Number of samples points. + */ + void SetShapeSampling(in GEOM_Object theCalculator, + in GEOM_Object theShape, + in long theNbSamples); + + /*! + * \brief Compute coarse value of the proximity basing on the polygonal representation of shapes. + * \param theCalculator Proximity calculator. + * \return Proximity value. + */ + double GetCoarseProximity(in GEOM_Object theCalculator); + + /*! + * \brief Compute precise value of the proximity basing on the exact shapes. + * \param theCalculator Proximity calculator. + * \return Proximity value. + */ + double GetPreciseProximity(in GEOM_Object theCalculator); + }; // # GEOM_IGroupOperations: @@ -4877,7 +5039,67 @@ module GEOM long GetNbSubShapes(in GEOM_Object shape, in short fieldDim); }; - // # GEOM_Gen: + // # GEOM_ITestOperations: + /*! + * \brief Interface for testing operations. + */ + interface GEOM_ITestOperations : GEOM_IOperations + { + /*! + * \brief Build a mesh on the given shape. + * \param shape is a source object + * \param linearDeflection is a linear deflection + * \param isRelative says if given value of deflection is relative to shape's bounding box + * \param angularDeflection is an angular deflection for edges in radians + * \return true in case of success; otherwise false. + */ + boolean Tesselate(in GEOM_Object shape, in double linearDeflection, + in boolean isRelative, in double angularDeflection); + }; + + // # GEOM_ICanonicalRecognition: + /*! + * \brief Interface for canonical recognition operations. + */ + interface GEOM_ICanonicalRecognition : GEOM_IOperations + { + /*! + * check if the shape is planar + */ + boolean isPlane(in GEOM_Object shape, in double tolerance, inout ListOfDouble normal, inout ListOfDouble origin); + + /*! + * check if shape is spherical + */ + boolean isSphere(in GEOM_Object shape, in double tolerance, inout ListOfDouble origin, inout double radius); + + /*! + * check if shape is conical + */ + boolean isCone(in GEOM_Object shape, in double tolerance, inout ListOfDouble axis, inout ListOfDouble apex, inout double halfAngle); + + /*! + * check if shape is cylinder + */ + boolean isCylinder(in GEOM_Object shape, in double tolerance, inout ListOfDouble axis, inout ListOfDouble origin, inout double radius); + + /*! + * check if edge / wire is line + */ + boolean isLine(in GEOM_Object edge, in double tolerance, inout ListOfDouble direction, inout ListOfDouble origin); + + /*! + * check if edge / wire is circle + */ + boolean isCircle(in GEOM_Object edge, in double tolerance, inout ListOfDouble normal, inout ListOfDouble origin, inout double radius); + + /*! + * check if edge / wire is ellipse + */ + boolean isEllipse(in GEOM_Object edge, in double tolerance, inout ListOfDouble normal, inout ListOfDouble dirX, inout ListOfDouble origin, inout double majorRadius, inout double minorRadius); + }; + + // # GEOM_Gen: /*! * \brief Interface to access other GEOM interfaces. * @@ -4990,19 +5212,21 @@ module GEOM // # Methods to access interfaces for objects creation and transformation - GEOM_IBasicOperations GetIBasicOperations () raises (SALOME::SALOME_Exception); - GEOM_ITransformOperations GetITransformOperations() raises (SALOME::SALOME_Exception); - GEOM_I3DPrimOperations GetI3DPrimOperations () raises (SALOME::SALOME_Exception); - GEOM_IShapesOperations GetIShapesOperations () raises (SALOME::SALOME_Exception); - GEOM_IBooleanOperations GetIBooleanOperations () raises (SALOME::SALOME_Exception); - GEOM_ICurvesOperations GetICurvesOperations () raises (SALOME::SALOME_Exception); - GEOM_ILocalOperations GetILocalOperations () raises (SALOME::SALOME_Exception); - GEOM_IHealingOperations GetIHealingOperations () raises (SALOME::SALOME_Exception); - GEOM_IInsertOperations GetIInsertOperations () raises (SALOME::SALOME_Exception); - GEOM_IMeasureOperations GetIMeasureOperations () raises (SALOME::SALOME_Exception); - GEOM_IBlocksOperations GetIBlocksOperations () raises (SALOME::SALOME_Exception); - GEOM_IGroupOperations GetIGroupOperations () raises (SALOME::SALOME_Exception); - GEOM_IFieldOperations GetIFieldOperations () raises (SALOME::SALOME_Exception); + GEOM_IBasicOperations GetIBasicOperations () raises (SALOME::SALOME_Exception); + GEOM_ITransformOperations GetITransformOperations () raises (SALOME::SALOME_Exception); + GEOM_I3DPrimOperations GetI3DPrimOperations () raises (SALOME::SALOME_Exception); + GEOM_IShapesOperations GetIShapesOperations () raises (SALOME::SALOME_Exception); + GEOM_IBooleanOperations GetIBooleanOperations () raises (SALOME::SALOME_Exception); + GEOM_ICurvesOperations GetICurvesOperations () raises (SALOME::SALOME_Exception); + GEOM_ILocalOperations GetILocalOperations () raises (SALOME::SALOME_Exception); + GEOM_IHealingOperations GetIHealingOperations () raises (SALOME::SALOME_Exception); + GEOM_IInsertOperations GetIInsertOperations () raises (SALOME::SALOME_Exception); + GEOM_IMeasureOperations GetIMeasureOperations () raises (SALOME::SALOME_Exception); + GEOM_IBlocksOperations GetIBlocksOperations () raises (SALOME::SALOME_Exception); + GEOM_IGroupOperations GetIGroupOperations () raises (SALOME::SALOME_Exception); + GEOM_IFieldOperations GetIFieldOperations () raises (SALOME::SALOME_Exception); + GEOM_ITestOperations GetITestOperations () raises (SALOME::SALOME_Exception); + GEOM_ICanonicalRecognition GetICanonicalRecognition() raises (SALOME::SALOME_Exception); GEOM_IOperations GetPluginOperations (in string theLibName) raises (SALOME::SALOME_Exception); @@ -5136,6 +5360,11 @@ module GEOM inout string_array theSubEntries, inout string_array theOtherEntries); + + /* + * \brief Breaks links to parametrical mode for parametrical shape + */ + void BreakLink(in string theEntry); }; };