Salome HOME
Disable sketch input fields unconditionally.
[modules/shaper.git] / src / SketcherPrs / SketcherPrs_Angle.cpp
index fc47f51be12077ee56b922e871ca6f2f11642698..c481c2873bef0836c60eea38ecd8edd58819a442 100644 (file)
 #include <TopExp.hxx>
 #include <BRep_Tool.hxx>
 
-#include <Events_Error.h>
-
 #define PI 3.1415926535897932
 
+//#ifndef WNT
+//  #define COMPILATION_CORRECTION
+//#endif
+
 IMPLEMENT_STANDARD_HANDLE(SketcherPrs_Angle, AIS_AngleDimension);
 IMPLEMENT_STANDARD_RTTIEXT(SketcherPrs_Angle, AIS_AngleDimension);
 
 SketcherPrs_Angle::SketcherPrs_Angle(ModelAPI_Feature* theConstraint, 
                                      const std::shared_ptr<GeomAPI_Ax3>& thePlane)
 : AIS_AngleDimension(gp_Pnt(0,0,0), gp_Pnt(1,0,0), gp_Pnt(0,1,0)), myConstraint(theConstraint),
-  mySketcherPlane(thePlane)
+  mySketcherPlane(thePlane),
+  myFirstPoint(gp_Pnt(0,0,0)), myCenterPoint(gp_Pnt(1,0,0)), mySecondPoint(gp_Pnt(0,1,0)),
+  myValue(90., false, ""), myFlyOutPoint(0, 0.5, 0)
 {
   myAspect = new Prs3d_DimensionAspect();
   myAspect->MakeArrows3d(false);
@@ -46,7 +50,6 @@ SketcherPrs_Angle::SketcherPrs_Angle(ModelAPI_Feature* theConstraint,
   myAspect->ArrowAspect()->SetLength(SketcherPrs_Tools::getArrowSize());
   
   SetDimensionAspect(myAspect);
-  SetSelToleranceForText2d(SketcherPrs_Tools::getDefaultTextHeight());
 
   myStyleListener = new SketcherPrs_DimensionStyleListener();
 }
@@ -143,9 +146,8 @@ void SketcherPrs_Angle::Compute(const Handle(PrsMgr_PresentationManager3d)& theP
     myCenterPoint = aCenterPoint;
 
     DataPtr aData = myConstraint->data();
-    AttributeDoublePtr aVal = aData->real(SketchPlugin_ConstraintAngle::ANGLE_VALUE_ID());
-    myAngle = aVal->value();
-    myValue = aVal->text();
+    AttributeDoublePtr anAttributeValue = aData->real(SketchPlugin_ConstraintAngle::ANGLE_VALUE_ID());
+    myValue.init(anAttributeValue);
 
     std::shared_ptr<GeomDataAPI_Point2D> aFlyoutAttr = 
                                 std::dynamic_pointer_cast<GeomDataAPI_Point2D>
@@ -162,10 +164,14 @@ void SketcherPrs_Angle::Compute(const Handle(PrsMgr_PresentationManager3d)& theP
   double aDist = -1;
   switch (anAngleType) {
     case SketcherPrs_Tools::ANGLE_DIRECT: {
+#ifndef COMPILATION_CORRECTION
       SetArrowVisible(Standard_False/*first*/, Standard_True/*second*/);
+#endif
       SetMeasuredGeometry(myFirstPoint, myCenterPoint, mySecondPoint);
+#ifndef COMPILATION_CORRECTION
       bool isReversedPlanes = isAnglePlaneReversedToSketchPlane();
       SetAngleReversed(!isReversedPlanes);
+#endif
     }
     break;
     case SketcherPrs_Tools::ANGLE_COMPLEMENTARY: {
@@ -174,13 +180,20 @@ void SketcherPrs_Angle::Compute(const Handle(PrsMgr_PresentationManager3d)& theP
       gp_Pnt aFirstPoint = aCenterPoint.Translated(
                           gp_Vec(myCenterPoint, myFirstPoint).Normalized() * (-anEdge1Length));
       SetMeasuredGeometry(aFirstPoint, myCenterPoint, mySecondPoint);
+#ifndef COMPILATION_CORRECTION
+      SetAngleReversed(false);
+#endif
     }
     break;
     case SketcherPrs_Tools::ANGLE_BACKWARD: {
+#ifndef COMPILATION_CORRECTION
       SetArrowVisible(Standard_False/*first*/, Standard_True/*second*/);
+#endif
       SetMeasuredGeometry(myFirstPoint, myCenterPoint, mySecondPoint);
       bool isReversedPlanes = isAnglePlaneReversedToSketchPlane();
+#ifndef COMPILATION_CORRECTION
       SetAngleReversed(isReversedPlanes);
+#endif
     }
     break;
     default:
@@ -190,15 +203,12 @@ void SketcherPrs_Angle::Compute(const Handle(PrsMgr_PresentationManager3d)& theP
     aDist = calculateDistanceToFlyoutPoint();
   SetFlyout(aDist);
 
-  // Angle value is in degrees
-  SetCustomValue(myAngle);
+  // Update text visualization: parameter value or parameter text
+  myStyleListener->updateDimensions(this, myValue);
 
   myAspect->SetExtensionSize(myAspect->ArrowAspect()->Length());
   myAspect->SetArrowTailSize(myAspect->ArrowAspect()->Length());
 
-  // Update text visualization: parameter value or parameter text
-  myStyleListener->updateDimensions(this, myHasParameters, myValue);
-
   AIS_AngleDimension::Compute(thePresentationManager, thePresentation, theMode);
 
   if (!aReadyToDisplay)
@@ -229,6 +239,7 @@ void SketcherPrs_Angle::ComputeSelection(const Handle(SelectMgr_Selection)& aSel
     return; 
   }
   }
+  SetSelToleranceForText2d(SketcherPrs_Tools::getTextHeight());
   AIS_AngleDimension::ComputeSelection(aSelection, aMode);
 }