- DataPtr aData = myConstraint->data();
-
- if (!IsReadyToDisplay(myConstraint, myPlane)) {
- Events_Error::throwException("An empty AIS presentation: SketcherPrs_Angle");
- return; // can not create a good presentation
+ if (!plane().get())
+ return;
+ gp_Pnt aFirstPoint, aSecondPoint, aCenterPoint;
+ bool aReadyToDisplay = readyToDisplay(myConstraint, plane(),
+ aFirstPoint, aSecondPoint, aCenterPoint);
+ if (aReadyToDisplay) {
+ myFirstPoint = aFirstPoint;
+ mySecondPoint = aSecondPoint;
+ myCenterPoint = aCenterPoint;
+
+ DataPtr aData = myConstraint->data();
+ AttributeDoublePtr anAttributeValue =
+ aData->real(SketchPlugin_ConstraintAngle::ANGLE_VALUE_ID());
+ myValue.init(anAttributeValue);
+
+ std::shared_ptr<GeomDataAPI_Point2D> aFlyoutAttr =
+ std::dynamic_pointer_cast<GeomDataAPI_Point2D>
+ (aData->attribute(SketchPlugin_Constraint::FLYOUT_VALUE_PNT()));
+ std::shared_ptr<GeomAPI_Pnt> aFlyoutPnt =
+ plane()->to3D(aFlyoutAttr->x(), aFlyoutAttr->y());
+ myFlyOutPoint = aFlyoutPnt->impl<gp_Pnt>();