27 #ifndef SMESH_HypoFilter_HeaderFile 28 #define SMESH_HypoFilter_HeaderFile 38 #include <TopoDS_Shape.hxx> 46 const TopoDS_Shape& aShape)
const = 0;
84 const TopoDS_Shape& aShape)
const;
88 bool IsAny()
const {
return myPredicates.empty(); }
113 myPredicates.push_back( pred );
119 template <
typename TValue>
126 if ( _comp == EQUAL )
return _val == Value( aHyp );
127 else if ( _comp == NOT_EQUAL )
return _val != Value( aHyp );
128 else if ( _comp == MORE )
return _val < Value( aHyp );
129 else return _val > Value( aHyp );
137 const TopoDS_Shape& aShape)
const;
142 { _comp = comp; _val = hypType; }
148 { _comp = comp; _val = dim; }
156 const TopoDS_Shape& aShape)
const;
163 const TopoDS_Shape& aShape)
const;
170 const TopoDS_Shape& aShape)
const;
177 const TopoDS_Shape& aShape)
const;
182 const TopoDS_Shape& aShape)
const;
IsMoreLocalThanPredicate(const TopoDS_Shape &shape)
const SMESH_Hypothesis * _hypo
std::list< SMESH_HypoPredicate * > myPredicates
InstancePredicate(const SMESH_Hypothesis *hypo)
TopAbs_ShapeEnum _shapeType
TypePredicate(Comparison comp, int hypType)
NamePredicate(std::string name)
bool IsAny() const
return true if contains no predicates
virtual ~SMESH_HypoPredicate()
SMESH_HypoFilter(const SMESH_HypoFilter &other)
virtual bool IsOk(const SMESH_Hypothesis *aHyp, const TopoDS_Shape &) const
DimPredicate(Comparison comp, int dim)
IsAssignedToPredicate(const TopoDS_Shape &mainShape)
void add(Logical bool_op, SMESH_HypoPredicate *pred)
friend class SMESH_HypoFilter
virtual bool IsOk(const SMESH_Hypothesis *aHyp, const TopoDS_Shape &aShape) const =0