From 283a9b4f5af948bec54f81e3296d3185933eda1b Mon Sep 17 00:00:00 2001 From: eap Date: Fri, 21 Jan 2005 12:21:36 +0000 Subject: [PATCH] PAL7358. Add BadOrientedVolume predicate --- src/Controls/SMESH_Controls.cxx | 32 ++++++++++++++++++++++++++++++ src/Controls/SMESH_ControlsDef.hxx | 16 +++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/src/Controls/SMESH_Controls.cxx b/src/Controls/SMESH_Controls.cxx index 2bf885a7a..4aa92f1d2 100644 --- a/src/Controls/SMESH_Controls.cxx +++ b/src/Controls/SMESH_Controls.cxx @@ -45,6 +45,7 @@ #include "SMDS_Iterator.hxx" #include "SMDS_MeshElement.hxx" #include "SMDS_MeshNode.hxx" +#include "SMDS_VolumeTool.hxx" /* @@ -1165,6 +1166,37 @@ void MultiConnection2D::GetValues(MValues& theValues){ PREDICATES */ +/* + Class : BadOrientedVolume + Description : Predicate bad oriented volumes +*/ + +BadOrientedVolume::BadOrientedVolume() +{ + myMesh = 0; +} + +void BadOrientedVolume::SetMesh( SMDS_Mesh* theMesh ) +{ + myMesh = theMesh; +} + +bool BadOrientedVolume::IsSatisfy( long theId ) +{ + if ( myMesh == 0 ) + return false; + + SMDS_VolumeTool vTool( myMesh->FindElement( theId )); + return !vTool.IsForward(); +} + +SMDSAbs_ElementType BadOrientedVolume::GetType() const +{ + return SMDSAbs_Volume; +} + + + /* Class : FreeBorders Description : Predicate for free borders diff --git a/src/Controls/SMESH_ControlsDef.hxx b/src/Controls/SMESH_ControlsDef.hxx index 50fb06558..339157e6c 100644 --- a/src/Controls/SMESH_ControlsDef.hxx +++ b/src/Controls/SMESH_ControlsDef.hxx @@ -304,6 +304,22 @@ namespace SMESH{ }; + /* + Class : BadOrientedVolume + Description : Predicate bad oriented volumes + */ + class BadOrientedVolume: public virtual Predicate{ + public: + BadOrientedVolume(); + virtual void SetMesh( SMDS_Mesh* theMesh ); + virtual bool IsSatisfy( long theElementId ); + virtual SMDSAbs_ElementType GetType() const; + + protected: + SMDS_Mesh* myMesh; + }; + + /* Class : FreeEdges Description : Predicate for free Edges -- 2.30.2