function placeLengthSymbol(start, end, p, value) {
var tempGroup = ensureGroupExistsInPaper("tempGroup", p);
let placeLengthTextLabel = function () {
var lengthText = addChildToGroup(
"lengthText",
new p.PointText(),
p,
tempGroup
);
lengthText.point = findItemNameInGroup(
"lengthSymbolPath",
tempGroup
).segments[3].point.add(delta.normalize(8).rotate(90).multiply(sign));
lengthText.content = `${
Math.trunc((delta.length / canvasValues.gridScale) * 1000) / 1000
}`;
lengthText.justification = "center";
return lengthText;
};
var delta = end.subtract(start);
var upDownSegLen = 5;
var lengthSymbolPath = addChildToGroup(
"lengthSymbolPath",
new p.Path(),
p,
tempGroup
);
var sign = delta.y > 0 ? 1 : -1;
var upSegment = delta.normalize(upDownSegLen).rotate(45 * sign);
var downSegment = upSegment.rotate(-90 * sign);
var lengthSegment = delta
.divide(2)
.subtract(delta.normalize((2 * upDownSegLen) / Math.sqrt(2)));
var startPoint = start.add(delta.normalize(8).rotate(90).multiply(sign));
lengthSymbolPath.add(startPoint);
lengthSymbolPath.lineBy(upSegment);
lengthSymbolPath.lineBy(lengthSegment);
lengthSymbolPath.lineBy(upSegment);
lengthSymbolPath.lineBy(downSegment);
lengthSymbolPath.lineBy(lengthSegment);
lengthSymbolPath.lineBy(downSegment);
lengthSymbolPath.dashArray = [1, 1];
lengthSymbolPath.strokeColor = "black";
if (value.drawLengthLabel) var lengthText = placeLengthTextLabel();
}