v1.6.07 - Opisometer class

This commit is contained in:
Azgaar 2021-03-05 20:28:54 +03:00
parent 4a1dba33f8
commit ca1acce48c
2 changed files with 214 additions and 84 deletions

View file

@ -219,10 +219,25 @@ function editUnits() {
this.classList.remove("pressed");
} else {
if (!layerIsOn("toggleRulers")) toggleRulers();
tip("Draw a curve to measure its length", true);
tip("Draw a curve to measure length. Hold Shift to disallow path optimization", true);
unitsBottom.querySelectorAll(".pressed").forEach(button => button.classList.remove("pressed"));
this.classList.add("pressed");
viewbox.style("cursor", "crosshair").call(d3.drag().on("start", drawOpisometer));
viewbox.style("cursor", "crosshair").call(d3.drag().on("start", function() {
const point = d3.mouse(this);
const opisometer = rulers.curve([point]).draw();
d3.event.on("drag", function() {
const point = d3.mouse(this);
opisometer.addPoint(point);
});
d3.event.on("end", function() {
restoreDefaultEvents();
clearMainTip();
addOpisometer.classList.remove("pressed");
if (!d3.event.sourceEvent.shiftKey) opisometer.optimize();
});
}));
}
}