-/*
- Class : Functor_i
- Description : An abstact class for all functors
-*/
-class Functor_i: public virtual POA_SMESH::Functor,
- public virtual SALOME::GenericObj_i
-{
-public:
- void SetMesh( SMESH_Mesh_ptr theMesh );
- Controls::FunctorPtr GetFunctor(){ return myFunctorPtr;}
- ElementType GetElementType();
-
-protected:
- Functor_i();
-protected:
- Controls::FunctorPtr myFunctorPtr;
-};
-
-
-/*
- Class : NumericalFunctor_i
- Description : Base class for numerical functors
-*/
-class NumericalFunctor_i: public virtual POA_SMESH::NumericalFunctor,
- public virtual Functor_i
-{
-public:
- CORBA::Double GetValue( CORBA::Long theElementId );
- void SetPrecision( CORBA::Long thePrecision );
- CORBA::Long GetPrecision();
- Controls::NumericalFunctorPtr GetNumericalFunctor();
-
-protected:
- Controls::NumericalFunctorPtr myNumericalFunctorPtr;
-};
-
-
-/*
- Class : SMESH_MinimumAngleFunct
- Description : Functor for calculation of minimum angle
-*/
-class MinimumAngle_i: public virtual POA_SMESH::MinimumAngle,
- public virtual NumericalFunctor_i
-{
-public:
- MinimumAngle_i();
- FunctorType GetFunctorType();
-};
-
-
-/*
- Class : AspectRatio_i
- Description : Functor for calculating aspect ratio
-*/
-class AspectRatio_i: public virtual POA_SMESH::AspectRatio,
- public virtual NumericalFunctor_i
-{
-public:
- AspectRatio_i();
- FunctorType GetFunctorType();
-};
-
-
-/*
- Class : AspectRatio3D_i
- Description : Functor for calculating aspect ratio for 3D
-*/
-class AspectRatio3D_i: public virtual POA_SMESH::AspectRatio3D,
- public virtual NumericalFunctor_i
-{
-public:
- AspectRatio3D_i();
- FunctorType GetFunctorType();
-};
-
-
-/*
- Class : Warping_i
- Description : Functor for calculating warping
-*/
-class Warping_i: public virtual POA_SMESH::Warping,
- public virtual NumericalFunctor_i
-{
-public:
- Warping_i();
- FunctorType GetFunctorType();
-};
-
-
-/*
- Class : Taper_i
- Description : Functor for calculating taper
-*/
-class Taper_i: public virtual POA_SMESH::Taper,
- public virtual NumericalFunctor_i
-{
-public:
- Taper_i();
- FunctorType GetFunctorType();
-};
-
-
-/*
- Class : Skew_i
- Description : Functor for calculating skew in degrees
-*/
-class Skew_i: public virtual POA_SMESH::Skew,
- public virtual NumericalFunctor_i
-{
-public:
- Skew_i();
- FunctorType GetFunctorType();
-};
-
-
-/*
- Class : Area_i
- Description : Functor for calculating area
-*/
-class Area_i: public virtual POA_SMESH::Area,
- public virtual NumericalFunctor_i
-{
-public:
- Area_i();
- FunctorType GetFunctorType();
-};
-
-
-/*
- Class : Length_i
- Description : Functor for calculating length of edge
-*/
-class Length_i: public virtual POA_SMESH::Length,
- public virtual NumericalFunctor_i
-{
-public:
- Length_i();
- FunctorType GetFunctorType();
-};
-
-/*
- Class : Length2D_i
- Description : Functor for calculating length of edge
-*/
-class Length2D_i: public virtual POA_SMESH::Length2D,
- public virtual NumericalFunctor_i
-{
-public:
- Length2D_i();
- SMESH::Length2D::Values* GetValues();
- FunctorType GetFunctorType();
-
-protected:
- Controls::Length2DPtr myLength2DPtr;
-};
-
-
-/*
- Class : MultiConnection_i
- Description : Functor for calculating number of faces conneted to the edge
-*/
-class MultiConnection_i: public virtual POA_SMESH::MultiConnection,
- public virtual NumericalFunctor_i
-{
-public:
- MultiConnection_i();
- FunctorType GetFunctorType();
-};
-
-/*
- Class : MultiConnection2D_i
- Description : Functor for calculating number of faces conneted to the edge
-*/
-class MultiConnection2D_i: public virtual POA_SMESH::MultiConnection2D,
- public virtual NumericalFunctor_i
-{
-public:
- MultiConnection2D_i();
- SMESH::MultiConnection2D::Values* GetValues();
- FunctorType GetFunctorType();
-
-protected:
- Controls::MultiConnection2DPtr myMulticonnection2DPtr;
-};
-
-
-/*
- PREDICATES
-*/
-/*
- Class : Predicate_i
- Description : Base class for all predicates
-*/
-class Predicate_i: public virtual POA_SMESH::Predicate,
- public virtual Functor_i
-{
-public:
- CORBA::Boolean IsSatisfy( CORBA::Long theElementId );
- Controls::PredicatePtr GetPredicate();
-
-protected:
- Controls::PredicatePtr myPredicatePtr;
-};
-
-
-/*
- Class : BadOrientedVolume_i
- Description : Verify whether a mesh volume is incorrectly oriented from
- the point of view of MED convention
-*/
-class BadOrientedVolume_i: public virtual POA_SMESH::BadOrientedVolume,
- public virtual Predicate_i
-{
- public:
- BadOrientedVolume_i();
- FunctorType GetFunctorType();
-};
-
-/*
- Class : BelongToGeom_i
- Description : Predicate for selection on geometrical support
-*/
-class BelongToGeom_i: public virtual POA_SMESH::BelongToGeom,
- public virtual Predicate_i
-{
-public:
- BelongToGeom_i();
- virtual ~BelongToGeom_i();
-
- void SetGeom( GEOM::GEOM_Object_ptr theGeom );
- void SetElementType( ElementType theType );
- FunctorType GetFunctorType();
-
- void SetGeom( const TopoDS_Shape& theShape );
-
- void SetShapeName( const char* theName );
- char* GetShapeName();
-
-protected:
- Controls::BelongToGeomPtr myBelongToGeomPtr;
- char* myShapeName;
-};
-
-/*
- Class : BelongToSurface_i
- Description : Verify whether mesh element lie in pointed Geom planar object
-*/
-class BelongToSurface_i: public virtual POA_SMESH::BelongToSurface,
- public virtual Predicate_i
-{
-public:
- BelongToSurface_i( const Handle(Standard_Type)& );
- virtual ~BelongToSurface_i();
-
- void SetSurface( GEOM::GEOM_Object_ptr theGeom, ElementType theType );
-
- void SetShapeName( const char* theName, ElementType theType );
- char* GetShapeName();
-
- void SetTolerance( CORBA::Double );
- CORBA::Double GetTolerance();
-
-protected:
- Controls::ElementsOnSurfacePtr myElementsOnSurfacePtr;
- char* myShapeName;
- Handle(Standard_Type) mySurfaceType;
-};
-
-/*
- Class : BelongToPlane_i
- Description : Verify whether mesh element lie in pointed Geom planar object
-*/
-class BelongToPlane_i: public virtual POA_SMESH::BelongToPlane,
- public virtual BelongToSurface_i
-{
-public:
- BelongToPlane_i();
- void SetPlane( GEOM::GEOM_Object_ptr theGeom, ElementType theType );
- FunctorType GetFunctorType();
-};
-
-/*
- Class : BelongToCylinder_i
- Description : Verify whether mesh element lie in pointed Geom cylindrical object
-*/
-class BelongToCylinder_i: public virtual POA_SMESH::BelongToCylinder,
- public virtual BelongToSurface_i
-{
-public:
- BelongToCylinder_i();
- void SetCylinder( GEOM::GEOM_Object_ptr theGeom, ElementType theType );
- FunctorType GetFunctorType();
-};
-
-/*
- Class : LyingOnGeom_i
- Description : Predicate for selection on geometrical support(lying or partially lying)
-*/
-class LyingOnGeom_i: public virtual POA_SMESH::LyingOnGeom,
- public virtual Predicate_i
-{
-public:
- LyingOnGeom_i();
- virtual ~LyingOnGeom_i();
-
- void SetGeom( GEOM::GEOM_Object_ptr theGeom );
- void SetElementType( ElementType theType );
- FunctorType GetFunctorType();
-
- void SetGeom( const TopoDS_Shape& theShape );
-
- void SetShapeName( const char* theName );
- char* GetShapeName();
-
-protected:
- Controls::LyingOnGeomPtr myLyingOnGeomPtr;
- char* myShapeName;
-};
-
-/*
- Class : FreeBorders_i
- Description : Predicate for free borders
-*/
-class FreeBorders_i: public virtual POA_SMESH::FreeBorders,
- public virtual Predicate_i
-{
-public:
- FreeBorders_i();
- FunctorType GetFunctorType();
-};
-
-
-/*
- Class : FreeEdges_i
- Description : Predicate for free edges
-*/
-class FreeEdges_i: public virtual POA_SMESH::FreeEdges,
- public virtual Predicate_i
-{
-public:
- FreeEdges_i();
- SMESH::FreeEdges::Borders* GetBorders();
- FunctorType GetFunctorType();
-
-protected:
- Controls::FreeEdgesPtr myFreeEdgesPtr;
-};
-
-
-/*
- Class : RangeOfIds_i
- Description : Predicate for Range of Ids
-*/
-class RangeOfIds_i: public virtual POA_SMESH::RangeOfIds,
- public virtual Predicate_i
-{
-public:
- RangeOfIds_i();
- void SetRange( const SMESH::long_array& theIds );
- CORBA::Boolean SetRangeStr( const char* theRange );
- char* GetRangeStr();
-
- void SetElementType( ElementType theType );
- FunctorType GetFunctorType();
-
-protected:
- Controls::RangeOfIdsPtr myRangeOfIdsPtr;
-};
-
-/*
- Class : Comparator_i
- Description : Base class for comparators
-*/
-class Comparator_i: public virtual POA_SMESH::Comparator,
- public virtual Predicate_i
-{
-public:
- virtual ~Comparator_i();
-
- virtual void SetMargin( CORBA::Double );
- virtual void SetNumFunctor( NumericalFunctor_ptr );
-
- Controls::ComparatorPtr GetComparator();
- NumericalFunctor_i* GetNumFunctor_i();
- CORBA::Double GetMargin();
-
-protected:
- Comparator_i();
-protected:
- Controls::ComparatorPtr myComparatorPtr;
- NumericalFunctor_i* myNumericalFunctor;
-};
-
-
-/*
- Class : LessThan_i
- Description : Comparator "<"
-*/
-class LessThan_i: public virtual POA_SMESH::LessThan,
- public virtual Comparator_i
-{
-public:
- LessThan_i();
- FunctorType GetFunctorType();
-};
-
-
-/*
- Class : MoreThan_i
- Description : Comparator ">"
-*/
-class MoreThan_i: public virtual POA_SMESH::MoreThan,
- public virtual Comparator_i
-{
-public:
- MoreThan_i();
- FunctorType GetFunctorType();
-};
-
-
-/*
- Class : EqualTo_i
- Description : Comparator "="
-*/
-class EqualTo_i: public virtual POA_SMESH::EqualTo,
- public virtual Comparator_i
-{
-public:
- EqualTo_i();
- virtual void SetTolerance( CORBA::Double );
- CORBA::Double GetTolerance();
- FunctorType GetFunctorType();
-
-protected:
- Controls::EqualToPtr myEqualToPtr;
-};
-
-
-/*
- Class : LogicalNOT_i
- Description : Logical NOT predicate
-*/
-class LogicalNOT_i: public virtual POA_SMESH::LogicalNOT,
- public virtual Predicate_i
-{
-public:
- LogicalNOT_i();
+ /*
+ Class : FreeNodes_i
+ Description : Predicate for free nodes
+ */
+ class SMESH_I_EXPORT FreeNodes_i: public virtual POA_SMESH::FreeNodes,
+ public virtual Predicate_i
+ {
+ public:
+ FreeNodes_i();
+ FunctorType GetFunctorType();
+ };
+
+
+ /*
+ Class : EqualNodes_i
+ Description : Predicate for equal nodes
+ */
+ class SMESH_I_EXPORT EqualNodes_i: public virtual POA_SMESH::EqualNodes,
+ public virtual Predicate_i
+ {
+ public:
+ EqualNodes_i();
+ FunctorType GetFunctorType();
+ void SetTolerance( double );
+ double GetTolerance();
+
+ private:
+ Controls::CoincidentNodesPtr myCoincidentNodesPtr;
+ };
+ /*
+ Class : EqualEdges_i
+ Description : Predicate for equal edges
+ */
+ class SMESH_I_EXPORT EqualEdges_i: public virtual POA_SMESH::EqualEdges,
+ public virtual Predicate_i
+ {
+ public:
+ EqualEdges_i();
+ FunctorType GetFunctorType();
+ };
+ /*
+ Class : EqualFaces_i
+ Description : Predicate for equal Faces
+ */
+ class SMESH_I_EXPORT EqualFaces_i: public virtual POA_SMESH::EqualFaces,
+ public virtual Predicate_i
+ {
+ public:
+ EqualFaces_i();
+ FunctorType GetFunctorType();
+ };
+ /*
+ Class : EqualVolumes_i
+ Description : Predicate for equal Volumes
+ */
+ class SMESH_I_EXPORT EqualVolumes_i: public virtual POA_SMESH::EqualVolumes,
+ public virtual Predicate_i
+ {
+ public:
+ EqualVolumes_i();
+ FunctorType GetFunctorType();
+ };
+
+
+ /*
+ Class : RangeOfIds_i
+ Description : Predicate for Range of Ids
+ */
+ class SMESH_I_EXPORT RangeOfIds_i: public virtual POA_SMESH::RangeOfIds,
+ public virtual Predicate_i
+ {
+ public:
+ RangeOfIds_i();
+ void SetRange( const SMESH::long_array& theIds );
+ CORBA::Boolean SetRangeStr( const char* theRange );
+ char* GetRangeStr();
+
+ void SetElementType( ElementType theType );
+ FunctorType GetFunctorType();
+
+ protected:
+ Controls::RangeOfIdsPtr myRangeOfIdsPtr;
+ };
+
+ /*
+ Class : LinearOrQuadratic_i
+ Description : Verify whether a mesh element is linear
+ */
+ class SMESH_I_EXPORT LinearOrQuadratic_i: public virtual POA_SMESH::LinearOrQuadratic,
+ public virtual Predicate_i
+ {
+ public:
+ LinearOrQuadratic_i();
+ FunctorType GetFunctorType();
+ void SetElementType( ElementType theType );
+
+ private:
+ Controls::LinearOrQuadraticPtr myLinearOrQuadraticPtr;
+ };
+
+ /*
+ Class : GroupColor_i
+ Description : Functor for check color of group to whic mesh element belongs to
+ */
+ class SMESH_I_EXPORT GroupColor_i: public virtual POA_SMESH::GroupColor,
+ public virtual Predicate_i
+ {
+ public:
+ GroupColor_i();
+ FunctorType GetFunctorType();
+
+ void SetElementType( ElementType theType );
+ void SetColorStr( const char* theColor );
+ char* GetColorStr();
+
+ private:
+ Controls::GroupColorPtr myGroupColorPtr;
+ };
+
+ /*
+ Class : ElemGeomType_i
+ Description : Functor for check element geometry type
+ */
+ class SMESH_I_EXPORT ElemGeomType_i: public virtual POA_SMESH::ElemGeomType,
+ public virtual Predicate_i
+ {
+ public:
+ ElemGeomType_i();
+ FunctorType GetFunctorType();
+
+ void SetElementType ( ElementType theType );
+ void SetGeometryType( GeometryType theType );
+ GeometryType GetGeometryType() const;
+
+ private:
+ Controls::ElemGeomTypePtr myElemGeomTypePtr;
+ };
+
+ /*
+ Class : ElemEntityType_i
+ Description : Functor for check element entity type
+ */
+ class SMESH_I_EXPORT ElemEntityType_i: public virtual POA_SMESH::ElemEntityType,
+ public virtual Predicate_i
+ {
+ public:
+ ElemEntityType_i();
+ FunctorType GetFunctorType();
+
+ void SetElementType ( ElementType theType );
+ void SetEntityType( EntityType theEntityType );
+ EntityType GetEntityType() const;
+
+ private:
+ Controls::ElemEntityTypePtr myElemEntityTypePtr;
+ };
+
+ /*
+ Class : CoplanarFaces_i
+ Description : Returns true if a mesh face is a coplanar neighbour to a given one
+ */
+ class SMESH_I_EXPORT CoplanarFaces_i: public virtual POA_SMESH::CoplanarFaces,
+ public virtual Predicate_i
+ {
+ public:
+ CoplanarFaces_i();
+ FunctorType GetFunctorType();
+
+ void SetFace ( CORBA::Long theFaceID );
+ void SetTolerance( CORBA::Double theToler );
+ char* GetFaceAsString () const;
+ CORBA::Long GetFace () const;
+ CORBA::Double GetTolerance () const;
+ private:
+ Controls::CoplanarFacesPtr myCoplanarFacesPtr;
+ };
+
+ /*
+ * Class : ConnectedElements_i
+ * Description : Returns true if an element is connected via other elements to the element
+ * located at a given point.
+ */
+ class SMESH_I_EXPORT ConnectedElements_i: public virtual POA_SMESH::ConnectedElements,
+ public virtual Predicate_i
+ {
+ public:
+ ConnectedElements_i();
+ FunctorType GetFunctorType();
+
+ void SetElementType( ElementType theType );
+ void SetPoint( CORBA::Double x, CORBA::Double y, CORBA::Double z );
+ void SetVertex( GEOM::GEOM_Object_ptr vertex )
+ throw (SALOME::SALOME_Exception);
+ void SetNode ( CORBA::Long nodeID )
+ throw (SALOME::SALOME_Exception);
+ void SetThreshold ( const char* threshold,
+ SMESH::ConnectedElements::ThresholdType type )
+ throw (SALOME::SALOME_Exception);
+ char* GetThreshold ( SMESH::ConnectedElements::ThresholdType& type );
+
+ private:
+ Controls::ConnectedElementsPtr myConnectedElementsPtr;
+ std::string myVertexID;
+ };
+
+ /*
+ Class : Comparator_i
+ Description : Base class for comparators
+ */
+ class SMESH_I_EXPORT Comparator_i: public virtual POA_SMESH::Comparator,
+ public virtual Predicate_i
+ {
+ public:
+ virtual ~Comparator_i();
+
+ virtual void SetMargin( CORBA::Double );
+ virtual void SetNumFunctor( NumericalFunctor_ptr );
+
+ Controls::ComparatorPtr GetComparator();
+ NumericalFunctor_i* GetNumFunctor_i();
+ CORBA::Double GetMargin();
+
+ protected:
+ Comparator_i();
+ protected:
+ Controls::ComparatorPtr myComparatorPtr;
+ NumericalFunctor_i* myNumericalFunctor;
+ };
+
+
+ /*
+ Class : LessThan_i
+ Description : Comparator "<"
+ */
+ class SMESH_I_EXPORT LessThan_i: public virtual POA_SMESH::LessThan,
+ public virtual Comparator_i
+ {
+ public:
+ LessThan_i();
+ FunctorType GetFunctorType();
+ };
+
+
+ /*
+ Class : MoreThan_i
+ Description : Comparator ">"
+ */
+ class SMESH_I_EXPORT MoreThan_i: public virtual POA_SMESH::MoreThan,
+ public virtual Comparator_i
+ {
+ public:
+ MoreThan_i();
+ FunctorType GetFunctorType();
+ };
+
+
+ /*
+ Class : EqualTo_i
+ Description : Comparator "="
+ */
+ class SMESH_I_EXPORT EqualTo_i: public virtual POA_SMESH::EqualTo,
+ public virtual Comparator_i
+ {
+ public:
+ EqualTo_i();
+ virtual void SetTolerance( CORBA::Double );
+ CORBA::Double GetTolerance();
+ FunctorType GetFunctorType();
+
+ protected:
+ Controls::EqualToPtr myEqualToPtr;
+ };
+
+
+ /*
+ Class : LogicalNOT_i
+ Description : Logical NOT predicate
+ */
+ class SMESH_I_EXPORT LogicalNOT_i: public virtual POA_SMESH::LogicalNOT,
+ public virtual Predicate_i
+ {
+ public:
+ LogicalNOT_i();