#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);
myAspect->ArrowAspect()->SetLength(SketcherPrs_Tools::getArrowSize());
SetDimensionAspect(myAspect);
- SetSelToleranceForText2d(SketcherPrs_Tools::getDefaultTextHeight());
myStyleListener = new SketcherPrs_DimensionStyleListener();
}
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>
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: {
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:
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)
return;
}
}
+ SetSelToleranceForText2d(SketcherPrs_Tools::getTextHeight());
AIS_AngleDimension::ComputeSelection(aSelection, aMode);
}