]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #805 In the sketch presentation, show both the parameter and its value: provide...
authornds <nds@opencascade.com>
Thu, 31 Mar 2016 12:40:23 +0000 (15:40 +0300)
committernds <nds@opencascade.com>
Thu, 31 Mar 2016 12:40:23 +0000 (15:40 +0300)
src/SketcherPrs/SketcherPrs_Angle.cpp
src/SketcherPrs/SketcherPrs_Angle.h
src/SketcherPrs/SketcherPrs_LengthDimension.cpp
src/SketcherPrs/SketcherPrs_Radius.cpp
src/SketcherPrs/SketcherPrs_Radius.h

index d26d5999cfb89e626c455a32a0b5d10d443bc1fc..bd79f8b4b29846fe75698e4021a7a796d350d1aa 100644 (file)
@@ -6,6 +6,7 @@
 
 #include "SketcherPrs_Angle.h"
 #include "SketcherPrs_Tools.h"
+#include "SketcherPrs_DimensionStyleListener.h"
 
 #include <SketchPlugin_ConstraintAngle.h>
 #include <SketchPlugin_Constraint.h>
@@ -42,6 +43,13 @@ SketcherPrs_Angle::SketcherPrs_Angle(ModelAPI_Feature* theConstraint,
   
   SetDimensionAspect(myAspect);
   SetSelToleranceForText2d(SketcherPrs_Tools::getDefaultTextHeight());
+
+  myStyleListener = new SketcherPrs_DimensionStyleListener();
+}
+
+SketcherPrs_Angle::~SketcherPrs_Angle()
+{
+  delete myStyleListener;
 }
 
 bool SketcherPrs_Angle::IsReadyToDisplay(ModelAPI_Feature* theConstraint,
@@ -168,6 +176,8 @@ void SketcherPrs_Angle::Compute(const Handle(PrsMgr_PresentationManager3d)& theP
   AttributeDoublePtr aValue = myConstraint->data()->real(SketchPlugin_ConstraintAngle::ANGLE_VALUE_ID());
   SketcherPrs_Tools::setDisplaySpecialSymbol(this, aValue->usedParameters().size() > 0);
 
+  myStyleListener->updateDimensions(this, aValue);
+
   AIS_AngleDimension::Compute(thePresentationManager, thePresentation, theMode);
 }
 
index 0d87c02e3bc71cf56c8257d7a24d7bbd82be1431..e178a1b8cc01241c2d4b9a6c40cb729000a1a6aa 100644 (file)
@@ -14,6 +14,8 @@
 #include <AIS_AngleDimension.hxx>
 #include <Standard_DefineHandle.hxx>
 
+class SketcherPrs_DimensionStyleListener;
+
 DEFINE_STANDARD_HANDLE(SketcherPrs_Angle, AIS_AngleDimension)
 
 /**
@@ -29,6 +31,9 @@ public:
   Standard_EXPORT SketcherPrs_Angle(ModelAPI_Feature* theConstraint, 
                         const std::shared_ptr<GeomAPI_Ax3>& thePlane);
 
+  /// Destructor
+  Standard_EXPORT ~SketcherPrs_Angle();
+
   DEFINE_STANDARD_RTTI(SketcherPrs_Angle)
 
   /// Returns true if the constraint feature arguments are correcly filled to build AIS presentation
@@ -54,6 +59,9 @@ private:
   std::shared_ptr<GeomAPI_Ax3> myPlane;
 
   Handle(Prs3d_DimensionAspect) myAspect;
+
+  /// Listener to update dimension visualization style
+  SketcherPrs_DimensionStyleListener* myStyleListener;
 };
 
 
index a61a6cb4005e63675f80f76cf74b451777de55ab..018f47b017d4d87bbf681b991e07cbf8cb2f34e6 100644 (file)
@@ -6,6 +6,8 @@
 
 #include "SketcherPrs_LengthDimension.h"
 #include "SketcherPrs_Tools.h"
+#include "SketcherPrs_Tools.h"
+#include "SketcherPrs_DimensionStyleListener.h"
 
 #include <SketchPlugin_Constraint.h>
 #include <SketchPlugin_ConstraintLength.h>
@@ -14,9 +16,6 @@
 #include <SketchPlugin_Point.h>
 #include <SketchPlugin_Circle.h>
 
-#include <SketcherPrs_Tools.h>
-#include <SketcherPrs_DimensionStyleListener.h>
-
 #include <Events_Error.h>
 #include <Events_Loop.h>
 
index 62a50a46fd8366dde654873fe94a117953890dc9..aeabe0eae97ca416eac8d5251ab8ef0b159a2416 100644 (file)
@@ -6,6 +6,7 @@
 
 #include "SketcherPrs_Radius.h"
 #include "SketcherPrs_Tools.h"
+#include "SketcherPrs_DimensionStyleListener.h"
 
 #include <SketchPlugin_ConstraintRadius.h>
 #include <SketchPlugin_Constraint.h>
@@ -42,6 +43,13 @@ SketcherPrs_Radius::SketcherPrs_Radius(ModelAPI_Feature* theConstraint,
   
   SetDimensionAspect(myAspect);
   SetSelToleranceForText2d(SketcherPrs_Tools::getDefaultTextHeight());
+
+  myStyleListener = new SketcherPrs_DimensionStyleListener();
+}
+
+SketcherPrs_Radius::~SketcherPrs_Radius()
+{
+  delete myStyleListener;
 }
 
 bool SketcherPrs_Radius::IsReadyToDisplay(ModelAPI_Feature* theConstraint,
@@ -180,6 +188,8 @@ void SketcherPrs_Radius::Compute(const Handle(PrsMgr_PresentationManager3d)& the
   AttributeDoublePtr aValue = myConstraint->data()->real(SketchPlugin_Constraint::VALUE());
   SketcherPrs_Tools::setDisplaySpecialSymbol(this, aValue->usedParameters().size() > 0);
 
+  myStyleListener->updateDimensions(this, aValue);
+
   AIS_RadiusDimension::Compute(thePresentationManager, thePresentation, theMode);
 }
 
index ea0dc90d44273bba7f35de53814a54e67d014f50..348eafdcfaf5b6209f3ff5fe20361f9ded6c9ebf 100644 (file)
@@ -14,6 +14,8 @@
 #include <AIS_RadiusDimension.hxx>
 #include <Standard_DefineHandle.hxx>
 
+class SketcherPrs_DimensionStyleListener;
+
 DEFINE_STANDARD_HANDLE(SketcherPrs_Radius, AIS_RadiusDimension)
 
 /**
@@ -29,6 +31,9 @@ public:
   Standard_EXPORT SketcherPrs_Radius(ModelAPI_Feature* theConstraint, 
                         const std::shared_ptr<GeomAPI_Ax3>& thePlane);
 
+  /// Destructor
+  Standard_EXPORT ~SketcherPrs_Radius();
+
   DEFINE_STANDARD_RTTI(SketcherPrs_Radius)
 
   /// Returns true if the constraint feature arguments are correcly filled to build AIS presentation
@@ -54,6 +59,9 @@ private:
   std::shared_ptr<GeomAPI_Ax3> myPlane;
 
   Handle(Prs3d_DimensionAspect) myAspect;
+
+  /// Listener to update dimension visualization style
+  SketcherPrs_DimensionStyleListener* myStyleListener;
 };
 
 #endif
\ No newline at end of file