drawPathText method
void
drawPathText()
Implementation
void drawPathText(String text, LineSegmentPath lineString, Mappoint reference, UiPaint paint, UiTextPaint textPaint, double maxTextWidth) {
if (text.trim().isEmpty) {
return;
}
if (paint.isTransparent()) {
return;
}
ParagraphEntry entry = ParagraphCacheMgr().getEntry(text, textPaint, paint, maxTextWidth);
for (var segment in lineString.segments) {
// So text isn't upside down
bool doInvert = segment.end.x < segment.start.x;
MappointRelative start;
double diff = (segment.length() - entry.getWidth()) / 2;
if (doInvert) {
//start = segment.end.offset(-origin.x, -origin.y);
start = segment.pointAlongLineSegment(diff + entry.getWidth()).offset(reference);
} else {
//start = segment.start.offset(-origin.x, -origin.y);
start = segment.pointAlongLineSegment(diff).offset(reference);
}
// print(
// "$text: segment length ${segment.length()} - word length ${entry.getWidth()} at ${start.x - segment.start.x} / ${start.y - segment.start.y} @ ${segment.getAngle()}");
drawTextRotated(entry.paragraph, segment.getTheta(), start);
// len -= segmentLength;
}
}