From ab30b9ea2388479b0615915eef1f28731104a116 Mon Sep 17 00:00:00 2001 From: eap Date: Thu, 16 May 2013 17:14:04 +0000 Subject: [PATCH] 0022098: EDF 2036 SMESH: Create groups from none conected parts of a mesh + FT_ConnectedElements, + interface ConnectedElements : Predicate { --- idl/SMESH_Filter.idl | 60 +++++++++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/idl/SMESH_Filter.idl b/idl/SMESH_Filter.idl index 3355bbe48..305a27f25 100644 --- a/idl/SMESH_Filter.idl +++ b/idl/SMESH_Filter.idl @@ -53,7 +53,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, @@ -78,6 +78,7 @@ module SMESH FT_EntityType, FT_CoplanarFaces, FT_BallDiameter, + FT_ConnectedElements, FT_LessThan, FT_MoreThan, FT_EqualTo, @@ -317,7 +318,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 +339,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". @@ -380,7 +381,7 @@ module SMESH /*! * Logical predicates are intended for compose predicates using boolean operations */ - interface Logical: Predicate{}; + interface Logical: Predicate {}; interface LogicalNOT: Logical { @@ -405,43 +406,59 @@ 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 long nodeID ); + string GetThreshold ( out ThresholdType type ); + void SetThreshold ( in string threshold, in ThresholdType type ) + raises (SALOME::SALOME_Exception); + }; + /*! * Filter */ @@ -456,14 +473,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 @@ -586,6 +605,7 @@ module SMESH ElemGeomType CreateElemGeomType(); ElemEntityType CreateElemEntityType(); CoplanarFaces CreateCoplanarFaces(); + ConnectedElements CreateConnectedElements(); /*! * Create comparators ( predicates ) -- 2.39.2