Salome HOME
Fix for the issue #1605 : optimization of undo/redo and abort processing
[modules/shaper.git] / src / SketcherPrs / SketcherPrs_LengthDimension.cpp
index f17a22dd1ee5ef54f9e231a9469c695ad99ac1ff..3253d2716a790b26e7b31a9fe9a2310657364885 100644 (file)
@@ -15,8 +15,6 @@
 #include <SketchPlugin_Point.h>
 #include <SketchPlugin_Circle.h>
 
-#include <Events_Error.h>
-
 #include <GeomDataAPI_Point2D.h>
 #include <GeomAPI_Pnt.h>
 #include <GeomAPI_XYZ.h>
@@ -40,7 +38,12 @@ SketcherPrs_LengthDimension::SketcherPrs_LengthDimension(ModelAPI_Feature* theCo
                                                          const std::shared_ptr<GeomAPI_Ax3>& thePlane)
 : AIS_LengthDimension(MyDefStart, MyDefEnd, MyDefPln),
   myConstraint(theConstraint),
-  mySketcherPlane(thePlane)
+  mySketcherPlane(thePlane),
+  myFirstPoint(MyDefStart),
+  mySecondPoint(MyDefEnd),
+  myPlane(MyDefPln),
+  myDistance(1),
+  myValue(0., false, "")
 {
   SetDimensionAspect(SketcherPrs_Tools::createDimensionAspect());
   SetSelToleranceForText2d(SketcherPrs_Tools::getTextHeight());
@@ -73,10 +76,9 @@ void SketcherPrs_LengthDimension::Compute(const Handle(PrsMgr_PresentationManage
     myDistance = SketcherPrs_Tools::getFlyoutDistance(myConstraint);
     myPlane = gp_Pln(mySketcherPlane->impl<gp_Ax3>());
 
-    AttributeDoublePtr anAttributeValue = myConstraint->data()->real(SketchPlugin_Constraint::VALUE());
-
-    myHasParameters = anAttributeValue->usedParameters().size() > 0;
-    myValue = anAttributeValue->text();
+    DataPtr aData = myConstraint->data();
+    AttributeDoublePtr anAttributeValue = aData->real(SketchPlugin_Constraint::VALUE());
+    myValue.init(anAttributeValue);
   }
 
   // compute flyout distance
@@ -89,7 +91,7 @@ void SketcherPrs_LengthDimension::Compute(const Handle(PrsMgr_PresentationManage
   SketcherPrs_Tools::updateArrows(DimensionAspect(), GetValue(), aTextSize);
 
   // Update text visualization: parameter value or parameter text
-  myStyleListener->updateDimensions(this, myHasParameters, myValue);
+  myStyleListener->updateDimensions(this, myValue);
 
   AIS_LengthDimension::Compute(thePresentationManager, thePresentation, theMode);