X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_Filter_i.hxx;h=19ca05f6e9f28fe9e5a4dc6160ec2de1d562a247;hb=146533380d6471f13f5c756e04dd59655f1b5a53;hp=3353d6e01ad8ee49a02d1dd8cbd0030efc5de262;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce;p=modules%2Fsmesh.git diff --git a/src/SMESH_I/SMESH_Filter_i.hxx b/src/SMESH_I/SMESH_Filter_i.hxx index 3353d6e01..19ca05f6e 100644 --- a/src/SMESH_I/SMESH_Filter_i.hxx +++ b/src/SMESH_I/SMESH_Filter_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 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 @@ -41,94 +41,8 @@ #include -class SMESHDS_Mesh; - namespace SMESH { - - // ================================================================================ - namespace Controls - { - - /* - Class : BelongToGeom - Description : Predicate for verifying whether entiy belong to - specified geometrical support - */ - class SMESH_I_EXPORT BelongToGeom: public virtual Predicate - { - public: - BelongToGeom(); - - virtual void SetMesh( const SMDS_Mesh* theMesh ); - virtual void SetGeom( const TopoDS_Shape& theShape ); - - virtual bool IsSatisfy( long theElementId ); - - virtual void SetType( SMDSAbs_ElementType theType ); - virtual SMDSAbs_ElementType GetType() const; - - TopoDS_Shape GetShape(); - const SMESHDS_Mesh* GetMeshDS() const; - - void SetTolerance( double ); - double GetTolerance(); - - private: - virtual void init(); - - TopoDS_Shape myShape; - const SMESHDS_Mesh* myMeshDS; - SMDSAbs_ElementType myType; - bool myIsSubshape; - double myTolerance; // only if myIsSubshape == false - Controls::ElementsOnShapePtr myElementsOnShapePtr; // only if myIsSubshape == false - }; - typedef boost::shared_ptr BelongToGeomPtr; - - /* - Class : LyingOnGeom - Description : Predicate for verifying whether entiy lying or partially lying on - specified geometrical support - */ - class SMESH_I_EXPORT LyingOnGeom: public virtual Predicate - { - public: - LyingOnGeom(); - - virtual void SetMesh( const SMDS_Mesh* theMesh ); - virtual void SetGeom( const TopoDS_Shape& theShape ); - - virtual bool IsSatisfy( long theElementId ); - - virtual void SetType( SMDSAbs_ElementType theType ); - virtual SMDSAbs_ElementType GetType() const; - - TopoDS_Shape GetShape(); - const SMESHDS_Mesh* GetMeshDS() const; - - void SetTolerance( double ); - double GetTolerance(); - - virtual bool Contains( const SMESHDS_Mesh* theMeshDS, - const TopoDS_Shape& theShape, - const SMDS_MeshElement* theElem, - TopAbs_ShapeEnum theFindShapeEnum, - TopAbs_ShapeEnum theAvoidShapeEnum = TopAbs_SHAPE ); - private: - virtual void init(); - - TopoDS_Shape myShape; - const SMESHDS_Mesh* myMeshDS; - SMDSAbs_ElementType myType; - bool myIsSubshape; - double myTolerance; // only if myIsSubshape == false - Controls::ElementsOnShapePtr myElementsOnShapePtr; // only if myIsSubshape == false - }; - typedef boost::shared_ptr LyingOnGeomPtr; - - } // namespace Controls - // ================================================================================ /* FUNCTORS @@ -142,10 +56,10 @@ namespace SMESH public virtual SALOME::GenericObj_i { public: - void SetMesh( SMESH_Mesh_ptr theMesh ); - Controls::FunctorPtr GetFunctor(){ return myFunctorPtr;} + virtual void SetMesh( SMESH_Mesh_ptr theMesh ); + Controls::FunctorPtr GetFunctor() { return myFunctorPtr; } ElementType GetElementType(); - + protected: Functor_i(); ~Functor_i(); @@ -162,7 +76,11 @@ namespace SMESH { public: CORBA::Double GetValue( CORBA::Long theElementId ); - SMESH::Histogram* GetHistogram(CORBA::Short nbIntervals, CORBA::Boolean isLogarithmic); + SMESH::Histogram* GetHistogram(CORBA::Short nbIntervals, + CORBA::Boolean isLogarithmic); + SMESH::Histogram* GetLocalHistogram(CORBA::Short nbIntervals, + CORBA::Boolean isLogarithmic, + SMESH::SMESH_IDSource_ptr object); void SetPrecision( CORBA::Long thePrecision ); CORBA::Long GetPrecision(); Controls::NumericalFunctorPtr GetNumericalFunctor(); @@ -383,6 +301,7 @@ namespace SMESH { public: CORBA::Boolean IsSatisfy( CORBA::Long theElementId ); + CORBA::Long NbSatisfying( SMESH::SMESH_IDSource_ptr obj ); Controls::PredicatePtr GetPredicate(); protected: @@ -802,6 +721,34 @@ namespace SMESH 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 @@ -1001,10 +948,11 @@ namespace SMESH // ========================= virtual SMESH::long_array* GetIDs(); virtual SMESH::long_array* GetMeshInfo(); + virtual SMESH::long_array* GetNbElementsByType(); virtual SMESH::array_of_ElementType* GetTypes(); virtual SMESH::SMESH_Mesh_ptr GetMesh(); virtual bool IsMeshInfoCorrect() { return true; } - + virtual SALOMEDS::TMPFile* GetVtkUgStream(); /*! * \brief Object notified on change of predicate */ @@ -1116,6 +1064,7 @@ namespace SMESH ElemGeomType_ptr CreateElemGeomType(); ElemEntityType_ptr CreateElemEntityType(); CoplanarFaces_ptr CreateCoplanarFaces(); + ConnectedElements_ptr CreateConnectedElements(); LessThan_ptr CreateLessThan(); MoreThan_ptr CreateMoreThan();