X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetPoint2dDistance.cpp;h=210f4bcba873de3765486f3fee698b88aad5e389;hb=d29ed3f3f7c0e119d2917b2d4120aa7b473220f4;hp=92a616504c22183c9ab457d84f1f1bdfad7eefdd;hpb=a04b278c149493430e5c5810469c2981597e7fe6;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetPoint2dDistance.cpp b/src/ModuleBase/ModuleBase_WidgetPoint2dDistance.cpp index 92a616504..210f4bcba 100644 --- a/src/ModuleBase/ModuleBase_WidgetPoint2dDistance.cpp +++ b/src/ModuleBase/ModuleBase_WidgetPoint2dDistance.cpp @@ -2,8 +2,9 @@ // Created: 23 June 2014 // Author: Vitaly Smetannikov -#include "ModuleBase_WidgetPoint2dDistance.h" -#include "ModuleBase_WidgetValueFeature.h" +#include +#include +#include #include #include @@ -12,10 +13,10 @@ #include #include -#include - -ModuleBase_WidgetPoint2dDistance::ModuleBase_WidgetPoint2dDistance(QWidget* theParent, const Config_WidgetAPI* theData) - : ModuleBase_WidgetDoubleValue(theParent, theData) +ModuleBase_WidgetPoint2dDistance::ModuleBase_WidgetPoint2dDistance(QWidget* theParent, + const Config_WidgetAPI* theData, + const std::string& theParentId) + : ModuleBase_WidgetDoubleValue(theParent, theData, theParentId) { myFirstPntName = theData->getProperty("first_point"); } @@ -29,11 +30,12 @@ bool ModuleBase_WidgetPoint2dDistance::setValue(ModuleBase_WidgetValue* theValue bool isDone = false; if (theValue) { - ModuleBase_WidgetValueFeature* aFeatureValue = - dynamic_cast(theValue); + ModuleBase_WidgetValueFeature* aFeatureValue = + dynamic_cast(theValue); if (aFeatureValue) { - boost::shared_ptr aPnt = aFeatureValue->point(); - FeaturePtr aFeature = aFeatureValue->feature(); + std::shared_ptr aPnt = aFeatureValue->point(); + ObjectPtr aObject = aFeatureValue->object(); + FeaturePtr aFeature = std::dynamic_pointer_cast(aObject); if (aFeature && aPnt) { setPoint(aFeature, aPnt); isDone = true; @@ -43,15 +45,19 @@ bool ModuleBase_WidgetPoint2dDistance::setValue(ModuleBase_WidgetValue* theValue return isDone; } -void ModuleBase_WidgetPoint2dDistance::setPoint(FeaturePtr theFeature, const boost::shared_ptr& thePnt) +void ModuleBase_WidgetPoint2dDistance::setPoint(FeaturePtr theFeature, + const std::shared_ptr& thePnt) { - boost::shared_ptr aData = theFeature->data(); - boost::shared_ptr aPoint = boost::dynamic_pointer_cast - (aData->attribute(myFirstPntName)); + std::shared_ptr aData = theFeature->data(); + std::shared_ptr aPoint = std::dynamic_pointer_cast( + aData->attribute(myFirstPntName)); + if (!aPoint) + return; + double aRadius = thePnt->distance(aPoint->pnt()); AttributeDoublePtr aReal = aData->real(attributeID()); if (aReal && (aReal->value() != aRadius)) { aReal->setValue(aRadius); mySpinBox->setValue(aRadius); } -} \ No newline at end of file +}