InternalInterior angle at the corner, in radians, between the
two arms (origin → corner) and (corner → target). Always in
[0, π]. Returns 0 when an arm has zero length.
Same as angle, but in degrees.
Color for the arm wires, arc, dots, and label background.
True once destroy has run.
InternalRecompute screen positions of all sub-elements. Called by the tool once per camera-update tick.
project(worldPos, out) writes [canvasX, canvasY, w]; a
non-positive w means "behind the camera" and the whole
measurement is hidden for this frame.
Tear down all DOM/SVG. Idempotent.
One angle measurement — three world-space anchors (origin, corner, target) plus the overlay DOM/SVG that shows the two arms and the angle at the corner.
Instances are created and owned by AngleMeasurementsTool; external callers should go through the tool's AngleMeasurementsTool.createMeasurement factory and call AngleMeasurementsTool.destroyMeasurement (or AngleMeasurementsTool.clear) to tear them down.
Layout
The measurement composes 2 arm wires, 3 anchor dots, 1 angle label, and a small arc that hints at which angle is being measured (always the interior angle ≤ 180° formed at the corner).
Toggles visible, wireVisible, labelsVisible compose like CSS visibility — hiding the whole measurement (
visible = false) overrides the others.