SHAPER  9.12.0
PartSet_Validators.h
1 // Copyright (C) 2014-2023 CEA, EDF
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 
20 #ifndef PartSet_Validators_H
21 #define PartSet_Validators_H
22 
23 #include "PartSet.h"
24 
25 #include <ModuleBase_SelectionValidator.h>
26 #include <ModuleBase_ISelection.h>
27 #include <ModelAPI_AttributeValidator.h>
28 
30 
31 /*
32  * Selector validators
33  */
34 
35 
39 {
40 public:
41  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
42  ModuleBase_Operation* theOperation) const;
43 };
44 
48 {
49 public:
50  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
51  ModuleBase_Operation* theOperation) const;
52 };
53 
57 {
58 public:
59  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
60  ModuleBase_Operation* theOperation) const;
61 };
62 
66 {
67 public:
68  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
69  ModuleBase_Operation* theOperation) const;
70 };
71 
75 {
76 public:
77  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
78  ModuleBase_Operation* theOperation) const;
79 };
80 
84 {
85 public:
86  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
87  ModuleBase_Operation* theOperation) const;
88 };
89 
90 
94 {
95 public:
96  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
97  ModuleBase_Operation* theOperation) const;
98 };
99 
103 {
104 public:
105  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
106  ModuleBase_Operation* theOperation) const;
107 };
108 
112 {
113 public:
114  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
115  ModuleBase_Operation* theOperation) const;
116 };
117 
121 {
122 public:
123  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
124  ModuleBase_Operation* theOperation) const;
125 };
126 
130 {
131 public:
132  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
133  ModuleBase_Operation* theOperation) const;
134 };
135 
139 {
140 public:
141  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
142  ModuleBase_Operation* theOperation) const;
143 };
144 
148 {
149 public:
150  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
151  ModuleBase_Operation* theOperation) const;
152 };
153 
157 {
158 public:
159  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
160  ModuleBase_Operation* theOperation) const;
161 };
162 
166 {
167 public:
168  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
169  ModuleBase_Operation* theOperation) const;
170 };
171 
175 {
176 public:
177  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
178  ModuleBase_Operation* theOperation) const;
179 };
180 
184 {
185 public:
186  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
187  ModuleBase_Operation* theOperation) const;
188 };
189 
193 {
194 public:
195  PARTSET_EXPORT virtual bool isValid(const ModuleBase_ISelection* theSelection,
196  ModuleBase_Operation* theOperation) const;
197 };
198 
200 
201 
207 {
209  enum ErrorType {
210  EqualObjects,
211  EqualAttributes,
212  EqualShapes,
213  EmptyShapes
214  };
215  public:
220  virtual bool isValid(const AttributePtr& theAttribute,
221  const std::list<std::string>& theArguments,
222  Events_InfoMessage& theError) const;
223 private:
227  std::string errorMessage(const PartSet_DifferentObjectsValidator::ErrorType& theType,
228  const std::string& thEqualObject, const std::string& theFirstAttribute,
229  const std::string& theSecondAttribute) const;
230 
231 };
232 
241 {
242  public:
247  virtual bool isValid(const AttributePtr& theAttribute,
248  const std::list<std::string>& theArguments,
249  Events_InfoMessage& theError) const;
250 private:
256  std::shared_ptr<GeomDataAPI_Point2D> getRefPointAttribute
257  (const AttributePtr& theAttribute) const;
258 };
259 
260 
267 {
268  public:
273  virtual bool isValid(const AttributePtr& theAttribute,
274  const std::list<std::string>& theArguments,
275  Events_InfoMessage& theError) const;
276 };
277 
278 
279 #endif
An event message for sending a string message which has to be translated.
Definition: Events_InfoMessage.h:35
Attribute that contains 2D point coordinates.
Definition: GeomDataAPI_Point2D.h:37
Generic validator for any attribute of a feature.
Definition: ModelAPI_AttributeValidator.h:31
A class which provides access to selection.
Definition: ModuleBase_ISelection.h:44
Base class for all operations.
Definition: ModuleBase_Operation.h:53
A validator of selection.
Definition: ModuleBase_SelectionValidator.h:37
A class to validate a selection for Angle constraints operation.
Definition: PartSet_Validators.h:130
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:287
Validator to check whether there is a coincident constraint between the attribute and attribute of ar...
Definition: PartSet_Validators.h:267
virtual bool isValid(const AttributePtr &theAttribute, const std::list< std::string > &theArguments, Events_InfoMessage &theError) const
returns true if attribute is valid
Definition: PartSet_Validators.cpp:679
A class to validate a selection for coincedence constraint operation.
Definition: PartSet_Validators.h:94
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:234
A class to validate a selection for Collinear constraints operation.
Definition: PartSet_Validators.h:148
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:316
A validator which checks that objects selected for feature attributes are different (not the same)
Definition: PartSet_Validators.h:207
virtual bool isValid(const AttributePtr &theAttribute, const std::list< std::string > &theArguments, Events_InfoMessage &theError) const
Returns true if the attribute is good for the feature attribute.
Definition: PartSet_Validators.cpp:411
A validator which checks that Point2D selected for feature attributes are different (not the same) It...
Definition: PartSet_Validators.h:241
virtual bool isValid(const AttributePtr &theAttribute, const std::list< std::string > &theArguments, Events_InfoMessage &theError) const
Returns true if the attribute is good for the feature attribute.
Definition: PartSet_Validators.cpp:629
A class to validate a selection for Distance constraint operation.
Definition: PartSet_Validators.h:39
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:143
A class to validate a selection for Equal constraints operation.
Definition: PartSet_Validators.h:139
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:300
A class to validate a selection for Fillet constraints operation.
Definition: PartSet_Validators.h:121
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:261
A class to validate a selection for Horizontal and Vertical constraints operation.
Definition: PartSet_Validators.h:103
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:248
A class to validate a selection for intersection operation.
Definition: PartSet_Validators.h:193
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:373
A class to validate a selection for Length constraint operation.
Definition: PartSet_Validators.h:48
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:157
A class to validate a selection for Middle point constraints operation.
Definition: PartSet_Validators.h:157
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:329
A class to validate a selection for Middle point constraints operation.
Definition: PartSet_Validators.h:166
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:342
A class to validate a selection for Parallel constraint operation.
Definition: PartSet_Validators.h:66
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:183
A class to validate a selection for Perpendicular constraint operation.
Definition: PartSet_Validators.h:57
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:170
A class to validate a selection for Middle point constraints operation.
Definition: PartSet_Validators.h:184
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:366
A class to validate a selection for Radius constraint operation.
Definition: PartSet_Validators.h:75
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:196
A class to validate a selection for Rigid constraint operation.
Definition: PartSet_Validators.h:84
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:209
A class to validate a selection for Middle point constraints operation.
Definition: PartSet_Validators.h:175
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:354
A class to validate a selection for Tangential constraints operation.
Definition: PartSet_Validators.h:112
virtual bool isValid(const ModuleBase_ISelection *theSelection, ModuleBase_Operation *theOperation) const
Returns True if selection is valid.
Definition: PartSet_Validators.cpp:274