#define ModelAPI_Filter_H_
#include "ModelAPI_FiltersArgs.h"
+#include "ModelAPI_ResultBody.h"
#include <GeomAPI_Shape.h>
class ModelAPI_Filter
{
public:
+ virtual ~ModelAPI_Filter() {}
+
/// Returns name of the filter to represent it in GUI
virtual const std::string& name() const = 0;
/// This method should contain the filter logic. It returns true if the given shape
/// is accepted by the filter.
/// \param theShape the given shape
- virtual bool isOk(const GeomShapePtr& theShape, const ModelAPI_FiltersArgs& theArgs) const = 0;
+ /// \param theResult parent result of the shape to be checked
+ /// \param theArgs arguments of the filter
+ virtual bool isOk(const GeomShapePtr& theShape,
+ const ResultPtr& theResult,
+ const ModelAPI_FiltersArgs& theArgs) const = 0;
/// Returns XML string which represents GUI of the filter
/// By default it returns nothing (no GUI)
/// not redefined.
virtual void initAttributes(ModelAPI_FiltersArgs& theArguments) {}
+ /// Returns XML string which represents GUI of the filter
+ /// by reading corresponding XML file.
+ MODELAPI_EXPORT virtual std::string xmlFromFile(const std::string& theConfigFile) const;
+
private:
bool myIsReverse;
};