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

Function rebuildSegmentFromPathOnly

src/core/objects/boolean_tool.cpp:1074–1095  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1072}
1073
1074void rebuildSegmentFromPathOnly(
1075 const ClipperLib::IntPoint& start_point,
1076 const ClipperLib::IntPoint& second_point,
1077 const ClipperLib::IntPoint& second_last_point,
1078 const ClipperLib::IntPoint& end_point,
1079 PathObject* object)
1080{
1081 MapCoord start_point_c = MapCoord::fromNative64(start_point.X, start_point.Y);
1082 MapCoord second_point_c = MapCoord::fromNative64(second_point.X, second_point.Y);
1083 MapCoord second_last_point_c = MapCoord::fromNative64(second_last_point.X, second_last_point.Y);
1084 MapCoord end_point_c = MapCoord::fromNative64(end_point.X, end_point.Y);
1085
1086 MapCoordF polygon_start_tangent = MapCoordF(second_point_c - start_point_c);
1087 polygon_start_tangent.normalize();
1088 MapCoordF polygon_end_tangent = MapCoordF(second_last_point_c - end_point_c);
1089 polygon_end_tangent.normalize();
1090
1091 double tangent_length = BEZIER_HANDLE_DISTANCE * start_point_c.distanceTo(end_point_c);
1092 object->addCoordinate(MapCoord(MapCoordF(start_point_c) + tangent_length * polygon_start_tangent));
1093 object->addCoordinate(MapCoord((MapCoordF(end_point_c) + tangent_length * polygon_end_tangent)));
1094 object->addCoordinate(end_point_c);
1095}
1096
1097void rebuildTwoIndexSegment(
1098 ClipperLib::Path::size_type start_index,

Callers 1

rebuildSegmentFunction · 0.85

Calls 5

distanceToMethod · 0.80
MapCoordFClass · 0.50
MapCoordClass · 0.50
normalizeMethod · 0.45
addCoordinateMethod · 0.45

Tested by

no test coverage detected