X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FFeaturesPlugin%2FFeaturesPlugin_Validators.h;h=e02b2ee63c2c15055cfb440472066c34ea5cedc2;hb=530f5aff42069e844c4a4ef164088ea23ba0e2dd;hp=2e0978b910ac0baea874ac7f85335901626b8f4b;hpb=87b74a6fd4660ebfa71a40f0be84e44535f84798;p=modules%2Fshaper.git diff --git a/src/FeaturesPlugin/FeaturesPlugin_Validators.h b/src/FeaturesPlugin/FeaturesPlugin_Validators.h index 2e0978b91..e02b2ee63 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Validators.h +++ b/src/FeaturesPlugin/FeaturesPlugin_Validators.h @@ -10,10 +10,10 @@ #include #include -/// \class FeaturesPlugin_PipeLocationsValidator +/// \class FeaturesPlugin_ValidatorPipeLocations /// \ingroup Validators /// \brief Validator for the pipe locations. -class FeaturesPlugin_PipeLocationsValidator : public ModelAPI_FeatureValidator +class FeaturesPlugin_ValidatorPipeLocations: public ModelAPI_FeatureValidator { public: //! \return true if number of selected locations the same as number of selected bases, or empty. @@ -32,7 +32,7 @@ class FeaturesPlugin_PipeLocationsValidator : public ModelAPI_FeatureValidator /// \ingroup Validators /// \brief A validator for selection base for generation. Allows to select faces on sketch, /// whole sketch(if it has at least one face), and following objects: vertex, edge, wire, face. -class FeaturesPlugin_ValidatorBaseForGeneration : public ModelAPI_AttributeValidator +class FeaturesPlugin_ValidatorBaseForGeneration: public ModelAPI_AttributeValidator { public: //! Returns true if attribute has selection type listed in the parameter arguments. @@ -45,7 +45,47 @@ public: private: bool isValidAttribute(const AttributePtr& theAttribute, + const std::list& theArguments, + std::string& theError) const; +}; + +/// \class FeaturesPlugin_ValidatorCompositeLauncher +/// \ingroup Validators +/// \brief A validator for selection at composite feature start +class FeaturesPlugin_ValidatorCompositeLauncher: public ModelAPI_AttributeValidator +{ +public: + //! Returns true if attribute has selection type listed in the parameter arguments. + //! \param[in] theAttribute the checked attribute. + //! \param[in] theArguments arguments of the attribute. + //! \param[out] theError error message. + virtual bool isValid(const AttributePtr& theAttribute, + const std::list& theArguments, std::string& theError) const; }; +/// \class FeaturesPlugin_ValidatorCanBeEmpty +/// \ingroup Validators +/// \brief A validator for extrusion direction attribute and bounding planes for extrusion and +/// revolution. Allows them to be empty if base objects are planar and do not contain +/// vertices and edges. +class FeaturesPlugin_ValidatorCanBeEmpty: public ModelAPI_FeatureValidator +{ +public: + //! Returns true if attribute listed in the parameter arguments are planar. + //! \param[in] theFeature the checked feature. + //! \param[in] theArguments arguments of the attribute. + //! \param[out] theError error message. + virtual bool isValid(const std::shared_ptr& theFeature, + const std::list& theArguments, + std::string& theError) const; + + /// Returns true if the attribute in feature is not obligatory for the feature execution + virtual bool isNotObligatory(std::string theFeature, std::string theAttribute); + +private: + bool isShapesCanBeEmpty(const AttributePtr& theAttribute, + std::string& theError) const; +}; + #endif