Salome HOME
33deefd50474c82473c1186303d2eb89780322ce
[modules/shaper.git] / src / PartSet / PartSet_Validators.h
1 // File:        PartSet_Validators.h
2 // Created:     09 July 2014
3 // Author:      Vitaly SMETANNIKOV
4
5 #ifndef PartSet_Validators_H
6 #define PartSet_Validators_H
7
8 #include "PartSet.h"
9
10 #include <ModuleBase_SelectionValidator.h>
11 #include <ModuleBase_ISelection.h>
12 #include <ModelAPI_RefAttrValidator.h>
13
14 /*
15  * Selector validators
16  */
17
18 //! A class to validate a selection for Distance constraint operation
19 class PartSet_DistanceValidator : public ModuleBase_SelectionValidator
20 {
21  public:
22   PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection) const;
23 };
24
25 //! A class to validate a selection for Length constraint operation
26 class PartSet_LengthValidator : public ModuleBase_SelectionValidator
27 {
28  public:
29   PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection) const;
30 };
31
32 //! A class to validate a selection for Perpendicular constraint operation
33 class PartSet_PerpendicularValidator : public ModuleBase_SelectionValidator
34 {
35  public:
36   PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection) const;
37 };
38
39 //! A class to validate a selection for Perpendicular constraint operation
40 class PartSet_ParallelValidator : public ModuleBase_SelectionValidator
41 {
42  public:
43   PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection) const;
44 };
45
46 //! A class to validate a selection for Perpendicular constraint operation
47 class PartSet_RadiusValidator : public ModuleBase_SelectionValidator
48 {
49  public:
50   PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection) const;
51 };
52
53 class PartSet_DifferentObjectsValidator : public ModelAPI_RefAttrValidator
54 {
55  public:
56   virtual bool isValid(const FeaturePtr& theFeature, const std::list<std::string>& theArguments,
57                        const ObjectPtr& theObject) const;
58   //! Returns true if the attribute is good for the feature attribute
59   virtual bool isValid(const FeaturePtr& theFeature, const std::list<std::string>& theArguments,
60                        const AttributePtr& theAttribute) const;
61
62   virtual bool isValid(const AttributePtr& theAttribute,
63                        const std::list<std::string>& theArguments) const;
64 };
65
66
67 #endif