Salome HOME
Merge branch 'Dev_0.6.1' of newgeom:newgeom into Dev_0.6.1
[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 //! A class to validate a selection for Perpendicular constraint operation
56 class PartSet_RigidValidator : public ModuleBase_SelectionValidator
57 {
58  public:
59   PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection) const;
60 };
61
62 class PartSet_DifferentObjectsValidator : public ModelAPI_RefAttrValidator
63 {
64  public:
65   virtual bool isValid(const FeaturePtr& theFeature, const std::list<std::string>& theArguments,
66                        const ObjectPtr& theObject) const;
67   //! Returns true if the attribute is good for the feature attribute
68   virtual bool isValid(const FeaturePtr& theFeature, const std::list<std::string>& theArguments,
69                        const AttributePtr& theAttribute) const;
70
71   virtual bool isValid(const AttributePtr& theAttribute,
72                        const std::list<std::string>& theArguments) const;
73 };
74
75
76 #endif