X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=idl%2FSMESH_Filter.idl;h=7f151908412298e367992146beac8778d9551e91;hp=3355bbe48a215601dfdc0db1a6ff84e30e921dd8;hb=d9f4b53e489dd5857db264ede6acded7b076c9f1;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce diff --git a/idl/SMESH_Filter.idl b/idl/SMESH_Filter.idl index 3355bbe48..7f1519084 100644 --- a/idl/SMESH_Filter.idl +++ b/idl/SMESH_Filter.idl @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 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 @@ -6,7 +6,7 @@ // 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. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -30,6 +30,7 @@ #include "SALOME_GenericObj.idl" #include "GEOM_Gen.idl" #include "SMESH_Mesh.idl" +#include "SMESH_smIdType.idl" module SMESH { @@ -53,7 +54,7 @@ module SMESH FT_FreeEdges, FT_FreeNodes, FT_FreeFaces, - FT_EqualNodes, // IMPORTANT: when a new item is added, please + FT_EqualNodes, // IMPORTANT: when a new item is added, don't forget to FT_EqualEdges, // 1) update getFunctNames() in SMESH_Filter_i.cxx: line 3910 FT_EqualFaces, // 2) update fixFunctorType() in SMESH_2smeshpy.cxx: line 234 FT_EqualVolumes, @@ -61,6 +62,10 @@ module SMESH FT_MultiConnection2D, FT_Length, FT_Length2D, + FT_Length3D, + FT_Deflection2D, + FT_NodeConnectivityNumber, + FT_BelongToMeshGroup, FT_BelongToGeom, FT_BelongToPlane, FT_BelongToCylinder, @@ -78,6 +83,7 @@ module SMESH FT_EntityType, FT_CoplanarFaces, FT_BallDiameter, + FT_ConnectedElements, FT_LessThan, FT_MoreThan, FT_EqualTo, @@ -114,10 +120,12 @@ module SMESH */ interface NumericalFunctor: Functor { - double GetValue( in long theElementId ); - - Histogram GetHistogram( in short nbIntervals, in boolean isLogarithmic ); + double GetValue ( in smIdType theElementId ); + boolean IsApplicable( in smIdType theElementId ); + Histogram GetHistogram ( in short nbIntervals, in boolean isLogarithmic ); + Histogram GetLocalHistogram( in short nbIntervals, in boolean isLogarithmic, + in SMESH::SMESH_IDSource obj ); /*! * Set precision for calculation. It is a position after point which is * used to functor value after calculation. @@ -146,6 +154,8 @@ module SMESH typedef sequence Values; Values GetValues(); }; + interface Length3D : NumericalFunctor{}; + interface Deflection2D : NumericalFunctor{}; interface MultiConnection : NumericalFunctor{}; interface MultiConnection2D : NumericalFunctor { @@ -159,15 +169,17 @@ module SMESH Values GetValues(); }; interface BallDiameter : NumericalFunctor{}; + interface NodeConnectivityNumber : NumericalFunctor{}; /*! * Predicates are intended for verification of criteria, - * must return bool value by mesh id + * they return bool value by mesh id */ interface Predicate: Functor { boolean IsSatisfy( in long thEntityId ); + long NbSatisfying( in SMESH::SMESH_IDSource obj ); }; /*! @@ -225,6 +237,17 @@ module SMESH */ interface EqualVolumes: Predicate {}; + /*! + * Logical functor (predicate) "Belong To Mesh Group". + * Verify whether a mesh element is included into a mesh group + */ + interface BelongToMeshGroup: Predicate + { + void SetGroup( in SMESH::SMESH_GroupBase theGroup ); + void SetGroupID( in string theID ); // IOR or StoreName + SMESH::SMESH_GroupBase GetGroup(); + }; + /*! * Logical functor (predicate) "Belong To Geometry". * Verify whether mesh element or node belong to pointed Geom Object @@ -317,7 +340,7 @@ module SMESH * Logical functor (predicate) "Free borders". * Verify whether 1D mesh element is free ( i.e. connected to one face only ) */ - interface FreeBorders: Predicate{}; + interface FreeBorders: Predicate {}; /*! * Logical functor (predicate) "Free edges". @@ -338,13 +361,13 @@ module SMESH * Logical functor (predicate) "Free nodes". * Verify whether mesh has free nodes( i.e. nodes are not connected to any element ) */ - interface FreeNodes: Predicate{}; + interface FreeNodes: Predicate {}; /*! * Logical functor (predicate) "Free faces". * Verify whether 2D mesh element is free ( i.e. connected to one volume only ) */ - interface FreeFaces: Predicate{}; + interface FreeFaces: Predicate {}; /*! * Abstract logical functor (predicate) "RangeOfIds". @@ -352,7 +375,7 @@ module SMESH */ interface RangeOfIds: Predicate { - void SetRange( in long_array theIds ); + void SetRange( in smIdType_array theIds ); boolean SetRangeStr( in string theRange ); string GetRangeStr(); @@ -380,7 +403,7 @@ module SMESH /*! * Logical predicates are intended for compose predicates using boolean operations */ - interface Logical: Predicate{}; + interface Logical: Predicate {}; interface LogicalNOT: Logical { @@ -405,47 +428,63 @@ module SMESH }; /*! - * Functor "Group Color" + * Predicate "Group Color" * Returns color of group to which mesh element belongs to */ - interface GroupColor : Predicate{ + interface GroupColor : Predicate { void SetElementType( in ElementType theType ); void SetColorStr( in string theColor ); string GetColorStr(); }; /*! - * Functor "Element geometry type" + * Predicate "Element geometry type" * Returns is element has indicated geometry type */ - interface ElemGeomType : Predicate{ + interface ElemGeomType : Predicate { void SetElementType ( in ElementType theType ); void SetGeometryType( in GeometryType theType ); }; /*! - * Functor "Element entity type" + * Predicate "Element entity type" * Returns is element has indicated entity type */ - interface ElemEntityType : Predicate{ + interface ElemEntityType : Predicate { void SetElementType ( in ElementType theType ); void SetEntityType( in EntityType theSetEntityType ); }; /*! - * Functor "Coplanar faces" + * Predicate "Coplanar faces" * Returns true if a mesh face is a coplanar neighbour to a given one. It checks * if normal of a face has angle with the threshold face less than a tolerance. */ - interface CoplanarFaces : Predicate{ + interface CoplanarFaces : Predicate { void SetFace ( in long theFaceID ); void SetTolerance( in double theToler ); }; + /*! + * Predicate "Connected Elements" + * Returns true if an element is connected via other elements to the element + * located at a given point. + */ + interface ConnectedElements : Predicate { + enum ThresholdType { POINT, VERTEX, NODE, NONE }; + void SetElementType( in ElementType type ); + void SetPoint ( in double x, in double y, in double z ); + void SetVertex ( in GEOM::GEOM_Object vertex ); + void SetNode ( in smIdType nodeID ); + string GetThreshold ( out ThresholdType type ); + void SetThreshold ( in string threshold, in ThresholdType type ) + raises (SALOME::SALOME_Exception); + }; + /*! * Filter */ - interface Filter: SALOME::GenericObj, SMESH_IDSource + interface Filter: SMESH_IDSource { /*! * Structure containing information about one criterion @@ -456,14 +495,16 @@ module SMESH * BinaryOp - binary logical operation FT_LogicalAND, FT_LogicalOR or * (FT_Undefined must be for the last criterion) * ThresholdStr - Threshold value defined as string. Used for: - * 1. Diapason of identifiers. Example: "1,2,3,5-10,12,27-29" - * 2. BelongToGeom predicate for storing name of shape - * 3. GroupColor predicate for storing group color "0.2;0;0.5" + * 1. Diapason of identifiers. Example: "1,2,3,5-10,12,27-29". + * 2. Storing name of shape. + * 3. Storing group color "0.2;0;0.5". + * 4. Storing point coordinates. * ThresholdID - One more threshold value defined as string. Used for: - * 1. BelongToGeom predicate for storing id of shape - * Tolerance - Tolerance is used for comparators (EqualTo comparision) and for - * "Belong to plane", "Belong to cylinder" etc predicates - * TypeOfElement - type of element SMESH::NODE, SMESH::FACE (used by BelongToGeom predicate only) + * 1. Storing id of shape + * Tolerance - Tolerance is used for + * 1. Comparison of real values. + * 2. Detection of geometrical coincidence. + * TypeOfElement - type of element SMESH::NODE, SMESH::FACE etc. * Precision - Precision of numerical functors */ struct Criterion @@ -482,15 +523,16 @@ module SMESH typedef sequence Criteria; - void SetPredicate( in Predicate thePredicate ); - void SetMesh( in SMESH_Mesh theMesh ); + void SetPredicate( in Predicate thePredicate ); + void SetMesh( in SMESH_Mesh theMesh ); - long_array GetElementsId( in SMESH_Mesh theMesh ); - ElementType GetElementType(); - Predicate GetPredicate(); + smIdType_array GetElementsId( in SMESH_Mesh theMesh ); + smIdType_array GetElementsIdFromParts( in ListOfIDSources theParts ); + ElementType GetElementType(); + Predicate GetPredicate(); - boolean GetCriteria( out Criteria theCriteria ); - boolean SetCriteria( in Criteria theCriteria ); + boolean GetCriteria( out Criteria theCriteria ); + boolean SetCriteria( in Criteria theCriteria ); }; @@ -538,58 +580,63 @@ module SMESH /*! * Create numerical functors */ - MinimumAngle CreateMinimumAngle(); - AspectRatio CreateAspectRatio(); - AspectRatio3D CreateAspectRatio3D(); - Warping CreateWarping(); - Taper CreateTaper(); - Skew CreateSkew(); - Area CreateArea(); - Volume3D CreateVolume3D(); + MinimumAngle CreateMinimumAngle(); + AspectRatio CreateAspectRatio(); + AspectRatio3D CreateAspectRatio3D(); + Warping CreateWarping(); + Taper CreateTaper(); + Skew CreateSkew(); + Area CreateArea(); + Volume3D CreateVolume3D(); MaxElementLength2D CreateMaxElementLength2D(); MaxElementLength3D CreateMaxElementLength3D(); - Length CreateLength(); - Length2D CreateLength2D(); - MultiConnection CreateMultiConnection(); - MultiConnection2D CreateMultiConnection2D(); - BallDiameter CreateBallDiameter(); + Length CreateLength(); + Length2D CreateLength2D(); + Length3D CreateLength3D(); + Deflection2D CreateDeflection2D(); + MultiConnection CreateMultiConnection(); + MultiConnection2D CreateMultiConnection2D(); + BallDiameter CreateBallDiameter(); + NodeConnectivityNumber CreateNodeConnectivityNumber(); /*! - * Create logical functors ( predicates ) - */ - BelongToGeom CreateBelongToGeom(); - BelongToPlane CreateBelongToPlane(); - BelongToCylinder CreateBelongToCylinder(); + * Create logical functors ( predicates ) + */ + BelongToMeshGroup CreateBelongToMeshGroup(); + BelongToGeom CreateBelongToGeom(); + BelongToPlane CreateBelongToPlane(); + BelongToCylinder CreateBelongToCylinder(); BelongToGenSurface CreateBelongToGenSurface(); - LyingOnGeom CreateLyingOnGeom(); + LyingOnGeom CreateLyingOnGeom(); - FreeBorders CreateFreeBorders(); - FreeEdges CreateFreeEdges(); - FreeNodes CreateFreeNodes(); - FreeFaces CreateFreeFaces(); + FreeBorders CreateFreeBorders(); + FreeEdges CreateFreeEdges(); + FreeNodes CreateFreeNodes(); + FreeFaces CreateFreeFaces(); - EqualNodes CreateEqualNodes(); - EqualEdges CreateEqualEdges(); - EqualFaces CreateEqualFaces(); - EqualVolumes CreateEqualVolumes(); + EqualNodes CreateEqualNodes(); + EqualEdges CreateEqualEdges(); + EqualFaces CreateEqualFaces(); + EqualVolumes CreateEqualVolumes(); - RangeOfIds CreateRangeOfIds(); + RangeOfIds CreateRangeOfIds(); - BadOrientedVolume CreateBadOrientedVolume(); - BareBorderVolume CreateBareBorderVolume(); - BareBorderFace CreateBareBorderFace(); + BadOrientedVolume CreateBadOrientedVolume(); + BareBorderVolume CreateBareBorderVolume(); + BareBorderFace CreateBareBorderFace(); OverConstrainedVolume CreateOverConstrainedVolume(); OverConstrainedFace CreateOverConstrainedFace(); - LinearOrQuadratic CreateLinearOrQuadratic(); + LinearOrQuadratic CreateLinearOrQuadratic(); - GroupColor CreateGroupColor(); - ElemGeomType CreateElemGeomType(); - ElemEntityType CreateElemEntityType(); - CoplanarFaces CreateCoplanarFaces(); + GroupColor CreateGroupColor(); + ElemGeomType CreateElemGeomType(); + ElemEntityType CreateElemEntityType(); + CoplanarFaces CreateCoplanarFaces(); + ConnectedElements CreateConnectedElements(); /*! - * Create comparators ( predicates ) - */ + * Create comparators ( predicates ) + */ LessThan CreateLessThan(); MoreThan CreateMoreThan(); EqualTo CreateEqualTo(); @@ -607,7 +654,7 @@ module SMESH Filter CreateFilter(); /*! - * Load filter library. If libary does not exist it is created + * Load filter library. If library does not exist it is created */ FilterLibrary LoadLibrary( in string aFileName );