X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchPlugin%2FSketchPlugin_Validators.h;h=f9f45506feacef5e948913c7df791698db821abf;hb=74e9ba33303efc2282db1261706e904efa36b255;hp=6259c2bd682f82bbdb028c69b7bd71c69e4ce3f3;hpb=a24b7e6f4d112d5e7889fd76f030298fc428cd01;p=modules%2Fshaper.git diff --git a/src/SketchPlugin/SketchPlugin_Validators.h b/src/SketchPlugin/SketchPlugin_Validators.h index 6259c2bd6..f9f45506f 100644 --- a/src/SketchPlugin/SketchPlugin_Validators.h +++ b/src/SketchPlugin/SketchPlugin_Validators.h @@ -23,43 +23,114 @@ class SketchPlugin_DistanceAttrValidator : public ModelAPI_AttributeValidator //! \param theAttribute the checked attribute //! \param theArguments arguments of the attribute virtual bool isValid(const AttributePtr& theAttribute, - const std::list& theArguments) const; + const std::list& theArguments, + std::string& theError) const; }; -// virtual bool isValid(const AttributePtr& theAttribute, -// const std::list& theArguments) const; -// -// //! Returns true if object is good for the feature attribute -// virtual bool isValid(const FeaturePtr& theFeature, const std::list& theArguments, -// const ObjectPtr& theObject, const GeomShapePtr& theShape) const; -// -// //! Returns true if the attribute is good for the feature attribute -// virtual bool isValid(const FeaturePtr& theFeature, const std::list& theArguments, -// const AttributePtr& theAttribute) const; -//}; -// commented in v1.0.2, master: -/**\class SketchPlugin_DifferentObjectsValidator +/**\class SketchPlugin_TangentAttrValidator * \ingroup Validators + * \brief Validator for the tangent constraint input. * - * Check that there is no same object was already selected in the feature. - * For an example: to avoid perpendicularity on line and the same line. + * It just checks that distance is greater than zero. + */ +class SketchPlugin_TangentAttrValidator : public ModelAPI_AttributeValidator +{ + public: + //! returns true if attribute is valid + //! \param theAttribute the checked attribute + //! \param theArguments arguments of the attribute + virtual bool isValid(const AttributePtr& theAttribute, + const std::list& theArguments, + std::string& theError) const; +}; + + +/**\class SketchPlugin_NotFixed + * \ingroup Validators + * \brief Validator for the rigid constraint input. + * + * It just checks there is no rigid constraint for the current feature. + */ +class SketchPlugin_NotFixedValidator : public ModelAPI_AttributeValidator +{ + public: + //! returns true if attribute is not used in another rigid constraint + //! \param theAttribute the checked attribute + //! \param theArguments arguments of the attribute + virtual bool isValid(const AttributePtr& theAttribute, + const std::list& theArguments, + std::string& theError) const; +}; + +/**\class SketchPlugin_EqualAttrValidator + * \ingroup Validators + * \brief Validator for the equal constraint input. + * + * It checks that attributes of the Equal constraint are correct. + */ +class SketchPlugin_EqualAttrValidator : public ModelAPI_AttributeValidator +{ + public: + //! returns true if attribute is valid + //! \param theAttribute the checked attribute + //! \param theArguments arguments of the attribute + virtual bool isValid(const AttributePtr& theAttribute, + const std::list& theArguments, + std::string& theError) const; +}; + +/**\class SketchPlugin_MirrorAttrValidator + * \ingroup Validators + * \brief Validator for the mirror constraint input. + * + * It checks that attributes of the Mirror constraint are correct. + */ +class SketchPlugin_MirrorAttrValidator : public ModelAPI_AttributeValidator +{ + public: + //! returns true if attribute is valid + //! \param theAttribute the checked attribute + //! \param theArguments arguments of the attribute (not used) + virtual bool isValid(const AttributePtr& theAttribute, + const std::list& theArguments, + std::string& theError) const; +}; + + +/**\class SketchPlugin_CoincidenceAttrValidator + * \ingroup Validators + * \brief Validator for the coincidence constraint input. + * + * It checks that attributes of the Coincidence constraint are correct. */ -// Use PartSet_DifferentObjectsValidator instead -//class SketchPlugin_DifferentObjectsValidator : public ModelAPI_RefAttrValidator -//{ -// public: -// //! returns true if attribute is valid -// //! \param theAttribute the checked attribute -// //! \param theArguments arguments of the attribute -// virtual bool isValid( -// const AttributePtr& theAttribute, const std::list& theArguments) const; -// //! Returns true if object is good for the feature attribute -// virtual bool isValid(const FeaturePtr& theFeature, const std::list& theArguments, -// const ObjectPtr& theObject) const; -// //! Returns true if the attribute is good for the feature attribute -// virtual bool isValid(const FeaturePtr& theFeature, const std::list& theArguments, -// const AttributePtr& theAttribute) const; -//}; -// ======= end of todo +class SketchPlugin_CoincidenceAttrValidator : public ModelAPI_AttributeValidator +{ + public: + //! returns true if attribute is valid + //! \param theAttribute the checked attribute + //! \param theArguments arguments of the attribute (not used) + virtual bool isValid(const AttributePtr& theAttribute, + const std::list& theArguments, + std::string& theError) const; +}; + + +/**\class SketchPlugin_CopyValidator + * \ingroup Validators + * \brief Validator for the constraints which create features. + * + * Applicable only for features, which creates another features. It verifies the produced + * features of current constraint don't become into the list of initial features + */ +class SketchPlugin_CopyValidator : public ModelAPI_AttributeValidator +{ + public: + //! returns true if attribute is valid + //! \param theAttribute the checked attribute + //! \param theArguments arguments of the attribute (not used) + virtual bool isValid(const AttributePtr& theAttribute, + const std::list& theArguments, + std::string& theError) const; +}; #endif