X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH%2FSMESH_HypoFilter.cxx;h=2e4469fb45aa58deebb255fbe9412e5f300f2dc1;hp=783547bb103973f060c842abbec89e45f68a0c11;hb=4ff5bd61540272713e48de1eee75625028c32155;hpb=5ed94063027146b16c20021ccea58880c4f9f33f diff --git a/src/SMESH/SMESH_HypoFilter.cxx b/src/SMESH/SMESH_HypoFilter.cxx index 783547bb1..2e4469fb4 100644 --- a/src/SMESH/SMESH_HypoFilter.cxx +++ b/src/SMESH/SMESH_HypoFilter.cxx @@ -75,6 +75,17 @@ bool SMESH_HypoFilter::ApplicablePredicate::IsOk(const SMESH_Hypothesis* aHyp, return SMESH_subMesh::IsApplicableHypotesis( aHyp, (TopAbs_ShapeEnum)_shapeType ); }; +//======================================================================= +//function : IsAuxiliaryPredicate::IsOk +//purpose : +//======================================================================= + +bool SMESH_HypoFilter::IsAuxiliaryPredicate::IsOk(const SMESH_Hypothesis* aHyp, + const TopoDS_Shape& /*aShape*/) const +{ + return aHyp->IsAuxiliary(); +}; + //======================================================================= //function : ApplicablePredicate::ApplicablePredicate //purpose : @@ -97,11 +108,11 @@ bool SMESH_HypoFilter::InstancePredicate::IsOk(const SMESH_Hypothesis* aHyp, } //======================================================================= -//function : IsGlobalPredicate::IsOk +//function : IsAssignedToPredicate::IsOk //purpose : //======================================================================= -bool SMESH_HypoFilter::IsGlobalPredicate::IsOk(const SMESH_Hypothesis* aHyp, +bool SMESH_HypoFilter::IsAssignedToPredicate::IsOk(const SMESH_Hypothesis* aHyp, const TopoDS_Shape& aShape) const { return ( !_mainShape.IsNull() && !aShape.IsNull() && _mainShape.IsSame( aShape )); @@ -131,9 +142,10 @@ SMESH_HypoFilter::SMESH_HypoFilter( SMESH_HypoPredicate* aPredicate, bool notNag //purpose : //======================================================================= -void SMESH_HypoFilter::And( SMESH_HypoPredicate* aPredicate ) +SMESH_HypoFilter & SMESH_HypoFilter::And( SMESH_HypoPredicate* aPredicate ) { add( AND, aPredicate ); + return *this; } //======================================================================= @@ -141,9 +153,10 @@ void SMESH_HypoFilter::And( SMESH_HypoPredicate* aPredicate ) //purpose : //======================================================================= -void SMESH_HypoFilter::AndNot( SMESH_HypoPredicate* aPredicate ) +SMESH_HypoFilter & SMESH_HypoFilter::AndNot( SMESH_HypoPredicate* aPredicate ) { add( AND_NOT, aPredicate ); + return *this; } //======================================================================= @@ -151,9 +164,10 @@ void SMESH_HypoFilter::AndNot( SMESH_HypoPredicate* aPredicate ) //purpose : //======================================================================= -void SMESH_HypoFilter::Or( SMESH_HypoPredicate* aPredicate ) +SMESH_HypoFilter & SMESH_HypoFilter::Or( SMESH_HypoPredicate* aPredicate ) { add( OR, aPredicate ); + return *this; } //======================================================================= @@ -161,9 +175,10 @@ void SMESH_HypoFilter::Or( SMESH_HypoPredicate* aPredicate ) //purpose : Return predicates //======================================================================= -void SMESH_HypoFilter::OrNot( SMESH_HypoPredicate* aPredicate ) +SMESH_HypoFilter & SMESH_HypoFilter::OrNot( SMESH_HypoPredicate* aPredicate ) { add( OR_NOT, aPredicate ); + return *this; } //======================================================================= @@ -186,6 +201,17 @@ SMESH_HypoPredicate* SMESH_HypoFilter::IsAlgo() return new TypePredicate( MORE, SMESHDS_Hypothesis::PARAM_ALGO ); } +//======================================================================= +//function : IsAuxiliary +//purpose : +//======================================================================= + +SMESH_HypoPredicate* SMESH_HypoFilter::IsAuxiliary() +{ + return new IsAuxiliaryPredicate(); +} + + //======================================================================= //function : IsGlobal //purpose : @@ -193,7 +219,17 @@ SMESH_HypoPredicate* SMESH_HypoFilter::IsAlgo() SMESH_HypoPredicate* SMESH_HypoFilter::IsGlobal(const TopoDS_Shape& theMainShape) { - return new IsGlobalPredicate( theMainShape ); + return new IsAssignedToPredicate( theMainShape ); +} + +//======================================================================= +//function : IsAssignedTo +//purpose : +//======================================================================= + + SMESH_HypoPredicate* SMESH_HypoFilter::IsAssignedTo(const TopoDS_Shape& theShape) +{ + return new IsAssignedToPredicate( theShape ); } //======================================================================= @@ -268,13 +304,15 @@ bool SMESH_HypoFilter::IsOk (const SMESH_Hypothesis* aHyp, //purpose : //======================================================================= -void SMESH_HypoFilter::Init ( SMESH_HypoPredicate* aPredicate, bool notNagate ) +SMESH_HypoFilter & SMESH_HypoFilter::Init ( SMESH_HypoPredicate* aPredicate, bool notNagate ) { list::const_iterator pred = myPredicates.begin(); for ( ; pred != myPredicates.end(); ++pred ) delete *pred; + myPredicates.clear(); add( notNagate ? AND : AND_NOT, aPredicate ); + return *this; }