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