aPointAttr = std::dynamic_pointer_cast<GeomDataAPI_Point2D>(
aFeature->data()->attribute(SketchPlugin_Point::COORD_ID()));
- else if (aFeature && aFeature->getKind() == SketchPlugin_Circle::ID())
- aPointAttr = std::dynamic_pointer_cast<GeomDataAPI_Point2D>(
- aFeature->data()->attribute(SketchPlugin_Circle::CENTER_ID()));
-
else if (anAttr->attr()) {
aPointAttr = std::dynamic_pointer_cast<GeomDataAPI_Point2D>(anAttr->attr());
}
aPointAttr = std::dynamic_pointer_cast<GeomDataAPI_Point2D>(
aFeature->data()->attribute(SketchPlugin_Point::COORD_ID()));
- else if (aFeature && aFeature->getKind() == SketchPlugin_Circle::ID())
- aPointAttr = std::dynamic_pointer_cast<GeomDataAPI_Point2D>(
- aFeature->data()->attribute(SketchPlugin_Circle::CENTER_ID()));
-
else if (anAttr->attr()) {
aPointAttr = std::dynamic_pointer_cast<GeomDataAPI_Point2D>(anAttr->attr());
}
double aRadius = std::dynamic_pointer_cast<ModelAPI_AttributeDouble>(
aConstraint->attribute(SketchPlugin_Constraint::VALUE()))->value();
double aLen = aFlyoutPnt->distance(anOrigin);
+ aRadius *= 1.001; // a gap to make point much closer to the circle, but not lying on it
aFlyoutPnt->setX(aCenter->x() + aFlyoutPnt->x() * aRadius / aLen);
aFlyoutPnt->setY(aCenter->y() + aFlyoutPnt->y() * aRadius / aLen);
return thePlane->to3D(aFlyoutPnt->x(), aFlyoutPnt->y());