]> SALOME platform Git repositories - modules/shaper.git/blob - src/ModuleBase/ModuleBase_WidgetPoint2dDistance.cpp
Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetPoint2dDistance.cpp
1 // File:        ModuleBase_WidgetPoint2dDistance.h
2 // Created:     23 June 2014
3 // Author:      Vitaly Smetannikov
4
5 #include "ModuleBase_WidgetPoint2dDistance.h"
6
7 #include <GeomAPI_Pnt2d.h>
8 #include <Config_WidgetAPI.h>
9 #include <GeomDataAPI_Point2D.h>
10
11 #include <ModelAPI_Data.h>
12 #include <ModelAPI_AttributeDouble.h>
13
14 #include <QDoubleSpinBox>
15
16 ModuleBase_WidgetPoint2dDistance::ModuleBase_WidgetPoint2dDistance(QWidget* theParent, const Config_WidgetAPI* theData)
17   : ModuleBase_WidgetDoubleValue(theParent, theData)
18 {
19   myFirstPntName = theData->getProperty("first_point");
20 }
21
22 ModuleBase_WidgetPoint2dDistance::~ModuleBase_WidgetPoint2dDistance()
23 {
24 }
25
26 void ModuleBase_WidgetPoint2dDistance::setPoint(FeaturePtr theFeature, const boost::shared_ptr<GeomAPI_Pnt2d>& thePnt)
27 {
28   boost::shared_ptr<ModelAPI_Data> aData = theFeature->data();
29   boost::shared_ptr<GeomDataAPI_Point2D> aPoint = boost::dynamic_pointer_cast<GeomDataAPI_Point2D>
30                                                               (aData->attribute(myFirstPntName));
31   double aRadius = thePnt->distance(aPoint->pnt());
32   AttributeDoublePtr aReal = aData->real(attributeID());
33   if (aReal && (aReal->value() != aRadius)) {
34     aReal->setValue(aRadius);
35     mySpinBox->setValue(aRadius);
36   }
37 }