Salome HOME
043f45a0dac3c02f5d6085358c97e8f2c42ac97f
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_ResultValidators.cpp
1 // File:        Model_ResultValidators.cpp
2 // Created:     23 July 2014
3 // Author:      Vitaly SMETANNIKOV
4
5 #include "SketchPlugin_ResultValidators.h"
6
7 #include <ModelAPI_Result.h>
8 #include <ModelAPI_Tools.h>
9 #include <GeomAPI_Curve.h>
10
11 ResultPtr result(const ObjectPtr theObject)
12 {
13   return std::dynamic_pointer_cast<ModelAPI_Result>(theObject);
14 }
15
16 bool SketchPlugin_ResultPointValidator::isValid(const ObjectPtr theObject) const
17 {
18   ResultPtr aResult = result(theObject);
19   if (!aResult)
20     return false;
21   std::shared_ptr<GeomAPI_Shape> aShape = ModelAPI_Tools::shape(aResult);
22   return aShape && aShape->isVertex();
23 }
24
25 bool SketchPlugin_ResultLineValidator::isValid(const ObjectPtr theObject) const
26 {
27   ResultPtr aResult = result(theObject);
28   if (!aResult)
29     return false;
30   std::shared_ptr<GeomAPI_Shape> aShape = ModelAPI_Tools::shape(aResult);
31   return aShape && aShape->isEdge() && GeomAPI_Curve(aShape).isLine();
32 }
33
34 bool SketchPlugin_ResultArcValidator::isValid(const ObjectPtr theObject) const
35 {
36   ResultPtr aResult = result(theObject);
37   if (!aResult)
38     return false;
39   std::shared_ptr<GeomAPI_Shape> aShape = ModelAPI_Tools::shape(aResult);
40   return aShape && aShape->isEdge() && GeomAPI_Curve(aShape).isCircle();
41 }