Salome HOME
First phase of SketchSolver refactoring
[modules/shaper.git] / src / SketchSolver / SolveSpaceSolver / SolveSpaceSolver_ParameterWrapper.cpp
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:    SolveSpaceSolver_ParameterWrapper.cpp
4 // Created: 2 Dec 2015
5 // Author:  Artem ZHIDKOV
6
7 #include <SolveSpaceSolver_ParameterWrapper.h>
8
9 #include <math.h>
10
11 SolveSpaceSolver_ParameterWrapper::SolveSpaceSolver_ParameterWrapper(const Slvs_Param& theParam)
12   : myParameter(theParam)
13 {
14 }
15
16 ParameterID SolveSpaceSolver_ParameterWrapper::id() const
17 {
18   return (ParameterID)myParameter.h;
19 }
20
21 void SolveSpaceSolver_ParameterWrapper::setValue(double theValue)
22 {
23   myParameter.val = theValue;
24 }
25
26 double SolveSpaceSolver_ParameterWrapper::value() const
27 {
28   return myParameter.val;
29 }
30
31 bool SolveSpaceSolver_ParameterWrapper::isEqual(const ParameterWrapperPtr& theOther)
32 {
33   std::shared_ptr<SolveSpaceSolver_ParameterWrapper> anOtherParam = 
34       std::dynamic_pointer_cast<SolveSpaceSolver_ParameterWrapper>(theOther);
35   return anOtherParam && fabs(value() - anOtherParam->value()) < tolerance;
36 }
37
38 bool SolveSpaceSolver_ParameterWrapper::update(const ParameterWrapperPtr& theOther)
39 {
40   std::shared_ptr<SolveSpaceSolver_ParameterWrapper> anOther =
41       std::dynamic_pointer_cast<SolveSpaceSolver_ParameterWrapper>(theOther);
42   if (fabs(value() - anOther->value()) < tolerance)
43     return false;
44   myParameter.val = anOther->value();
45   myIsParametric = theOther->isParametric();
46   return true;
47 }