-// Copyright (C) 2007-2012 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
// 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
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,
FT_MultiConnection2D,
FT_Length,
FT_Length2D,
+ FT_NodeConnectivityNumber,
+ FT_BelongToMeshGroup,
FT_BelongToGeom,
FT_BelongToPlane,
FT_BelongToCylinder,
FT_LinearOrQuadratic,
FT_GroupColor,
FT_ElemGeomType,
+ FT_EntityType,
FT_CoplanarFaces,
FT_BallDiameter,
+ FT_ConnectedElements,
FT_LessThan,
FT_MoreThan,
FT_EqualTo,
{
double GetValue( in long theElementId );
- Histogram GetHistogram( in short nbIntervals, in boolean isLogarithmic );
-
+ 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.
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 );
};
/*!
*/
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
* 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".
* 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".
/*!
* Logical predicates are intended for compose predicates using boolean operations
*/
- interface Logical: Predicate{};
+ interface Logical: Predicate {};
interface LogicalNOT: Logical
{
};
/*!
- * 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 "Coplanar faces"
+ * Predicate "Element entity type"
+ * Returns is element has indicated entity type
+ */
+ interface ElemEntityType : Predicate {
+ void SetElementType ( in ElementType theType );
+ void SetEntityType( in EntityType theSetEntityType );
+ };
+
+ /*!
+ * 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
*/
* 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
/*!
* 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();
+ 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();
- CoplanarFaces CreateCoplanarFaces();
+ GroupColor CreateGroupColor();
+ ElemGeomType CreateElemGeomType();
+ ElemEntityType CreateElemEntityType();
+ CoplanarFaces CreateCoplanarFaces();
+ ConnectedElements CreateConnectedElements();
/*!
- * Create comparators ( predicates )
- */
+ * Create comparators ( predicates )
+ */
LessThan CreateLessThan();
MoreThan CreateMoreThan();
EqualTo CreateEqualTo();
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 );