-// Copyright (C) 2014-2019 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
/// Returns true if all filters of the Filters feature are ok for the Shape (taking into account
/// the Reversed states).
- /// \param theFiltersFeature feature that contains all information about the filters
+ /// \param theResult parent result of the shape to check
/// \param theShape the checked shape
- virtual bool isValid(FeaturePtr theFiltersFeature, GeomShapePtr theShape);
+ virtual bool isValid(FeaturePtr theFiltersFeature,
+ ResultPtr theResult,
+ GeomShapePtr theShape);
+
+ /// Returns list of all shapes and subshapes in the study, satisfying
+ /// criteria of all filters of \a theFilterFeature.
+ /// \param theFiltersFeature feature that contains all information about the filters
+ /// \param theShapeType the type of sub-shapes to find
+ virtual std::list< std::pair<ResultPtr, GeomShapePtr> > select
+ (const FiltersFeaturePtr& theFilterFeature,
+ const GeomAPI_Shape::ShapeType theShapeType);
/// Returns the filters that support the given shape type
virtual std::list<FilterPtr> filters(GeomAPI_Shape::ShapeType theType);
friend class Model_Session;
};
-#endif
\ No newline at end of file
+#endif