MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / setupAngleHelperFromHoverObject

Method setupAngleHelperFromHoverObject

src/tools/edit_point_tool.cpp:865–888  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

863}
864
865void 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
890void EditPointTool::startEditingSetup()
891{

Callers

nothing calls this directly

Calls 8

clearAnglesMethod · 0.80
findPartForIndexMethod · 0.80
asPathMethod · 0.80
calculateTangentMethod · 0.80
addAnglesMethod · 0.80
angleMethod · 0.80
addAngleMethod · 0.80
getTypeMethod · 0.45

Tested by

no test coverage detected