| 863 | } |
| 864 | |
| 865 | void EditPointTool::setupAngleHelperFromHoverObject() |
| 866 | { |
| 867 | Q_ASSERT(hover_object->getType() == Object::Path); |
| 868 | |
| 869 | angle_helper->clearAngles(); |
| 870 | bool forward_ok = false; |
| 871 | auto part = hover_object->asPath()->findPartForIndex(hover_point); |
| 872 | MapCoordF forward_tangent = part->calculateTangent(hover_point, false, forward_ok); |
| 873 | if (forward_ok) |
| 874 | angle_helper->addAngles(-forward_tangent.angle(), M_PI/2); |
| 875 | bool backward_ok = false; |
| 876 | MapCoordF backward_tangent = part->calculateTangent(hover_point, true, backward_ok); |
| 877 | if (backward_ok) |
| 878 | angle_helper->addAngles(-backward_tangent.angle(), M_PI/2); |
| 879 | |
| 880 | if (forward_ok && backward_ok) |
| 881 | { |
| 882 | double angle = (-backward_tangent.angle() - forward_tangent.angle()) / 2; |
| 883 | angle_helper->addAngle(angle); |
| 884 | angle_helper->addAngle(angle + M_PI/2); |
| 885 | angle_helper->addAngle(angle + M_PI); |
| 886 | angle_helper->addAngle(angle + 3*M_PI/2); |
| 887 | } |
| 888 | } |
| 889 | |
| 890 | void EditPointTool::startEditingSetup() |
| 891 | { |
nothing calls this directly
no test coverage detected