-
-/**\class ModelAPI_FiltersFactory
-* \ingroup DataModel
-* \brief Manages registering of filters
-*/
-class ModelAPI_FiltersFactory
-{
-public:
- /// Register an instance of a filter
- /// \param theID unique identifier of the filter, not necessary equal to the name of filter
- /// \param theFilter the filter's instance
- virtual void registerFilter(const std::string& theID, ModelAPI_Filter* theFilter) = 0;
-
- /// 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 theShape the checked shape
- virtual bool isValid(FeaturePtr theFiltersFeature, GeomShapePtr theShape) = 0;
-
- /// Returns the filters that support the given shape type
- virtual std::list<FilterPtr> filters(GeomAPI_Shape::ShapeType theType) = 0;
-
- /// Returns a filter by ID
- virtual FilterPtr filter(std::string theID) = 0;
-
- /// Returns a filter ID by the filter pointer
- virtual std::string id(FilterPtr theFilter) = 0;
-
-protected:
- /// Get instance from Session
- ModelAPI_FiltersFactory() {}
-};
-
-/**\class ModelAPI_FiltersFeature
-* \ingroup DataModel
-* \brief An interface for working with filters in the feature. A filters feature must inherit it
-* in order to allow management of filters in the feature data structure.
-*/
-class ModelAPI_FiltersFeature
-{
-public:
- /// Adds a filter to the feature. Also initializes arguments of this filter.
- virtual void addFilter(const std::string theFilterID) = 0;
-
- /// Removes an existing filter from the feature.
- virtual void removeFilter(const std::string theFilterID) = 0;
-
- /// Returns the list of existing filters in the feature.
- virtual std::list<std::string> filters() const = 0;
-
- /// Stores the reversed flag for the filter.
- virtual void setReversed(const std::string theFilterID, const bool theReversed) = 0;
-
- /// Returns the reversed flag value for the filter.
- virtual bool isReversed(const std::string theFilterID) = 0;
-
- /// Returns the ordered list of attributes related to the filter.
- virtual std::list<AttributePtr> filterArgs(const std::string theFilterID) const = 0;
-};
-
-typedef std::shared_ptr<ModelAPI_FiltersFeature> FiltersFeaturePtr;
-