diff --git a/docs/ast/source/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js.json b/docs/ast/source/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js.json index c8cbb13294..fc41a2faa7 100644 --- a/docs/ast/source/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js.json +++ b/docs/ast/source/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js.json @@ -1,7 +1,7 @@ { "type": "File", "start": 0, - "end": 16643, + "end": 16678, "loc": { "start": { "line": 1, @@ -15,7 +15,7 @@ "program": { "type": "Program", "start": 0, - "end": 16643, + "end": 16678, "loc": { "start": { "line": 1, @@ -288,9 +288,9 @@ "trailingComments": [ { "type": "CommentBlock", - "value": "*\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n ", + "value": "*\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n ", "start": 186, - "end": 9887, + "end": 9922, "loc": { "start": { "line": 5, @@ -306,8 +306,8 @@ }, { "type": "ExportNamedDeclaration", - "start": 9888, - "end": 16641, + "start": 9923, + "end": 16676, "loc": { "start": { "line": 247, @@ -322,8 +322,8 @@ "source": null, "declaration": { "type": "ClassDeclaration", - "start": 9895, - "end": 16641, + "start": 9930, + "end": 16676, "loc": { "start": { "line": 247, @@ -336,8 +336,8 @@ }, "id": { "type": "Identifier", - "start": 9901, - "end": 9924, + "start": 9936, + "end": 9959, "loc": { "start": { "line": 247, @@ -354,8 +354,8 @@ }, "superClass": { "type": "Identifier", - "start": 9933, - "end": 9939, + "start": 9968, + "end": 9974, "loc": { "start": { "line": 247, @@ -371,8 +371,8 @@ }, "body": { "type": "ClassBody", - "start": 9940, - "end": 16641, + "start": 9975, + "end": 16676, "loc": { "start": { "line": 247, @@ -386,8 +386,8 @@ "body": [ { "type": "ClassMethod", - "start": 10814, - "end": 11980, + "start": 10849, + "end": 12015, "loc": { "start": { "line": 260, @@ -402,8 +402,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 10814, - "end": 10825, + "start": 10849, + "end": 10860, "loc": { "start": { "line": 260, @@ -426,8 +426,8 @@ "params": [ { "type": "Identifier", - "start": 10826, - "end": 10832, + "start": 10861, + "end": 10867, "loc": { "start": { "line": 260, @@ -443,8 +443,8 @@ }, { "type": "AssignmentPattern", - "start": 10834, - "end": 10842, + "start": 10869, + "end": 10877, "loc": { "start": { "line": 260, @@ -457,8 +457,8 @@ }, "left": { "type": "Identifier", - "start": 10834, - "end": 10837, + "start": 10869, + "end": 10872, "loc": { "start": { "line": 260, @@ -474,8 +474,8 @@ }, "right": { "type": "ObjectExpression", - "start": 10840, - "end": 10842, + "start": 10875, + "end": 10877, "loc": { "start": { "line": 260, @@ -492,8 +492,8 @@ ], "body": { "type": "BlockStatement", - "start": 10844, - "end": 11980, + "start": 10879, + "end": 12015, "loc": { "start": { "line": 260, @@ -507,8 +507,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 10855, - "end": 10890, + "start": 10890, + "end": 10925, "loc": { "start": { "line": 262, @@ -521,8 +521,8 @@ }, "expression": { "type": "CallExpression", - "start": 10855, - "end": 10889, + "start": 10890, + "end": 10924, "loc": { "start": { "line": 262, @@ -535,8 +535,8 @@ }, "callee": { "type": "Super", - "start": 10855, - "end": 10860, + "start": 10890, + "end": 10895, "loc": { "start": { "line": 262, @@ -551,8 +551,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 10861, - "end": 10880, + "start": 10896, + "end": 10915, "loc": { "start": { "line": 262, @@ -571,8 +571,8 @@ }, { "type": "Identifier", - "start": 10882, - "end": 10888, + "start": 10917, + "end": 10923, "loc": { "start": { "line": 262, @@ -591,8 +591,8 @@ }, { "type": "ExpressionStatement", - "start": 10900, - "end": 10949, + "start": 10935, + "end": 10984, "loc": { "start": { "line": 264, @@ -605,8 +605,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 10900, - "end": 10948, + "start": 10935, + "end": 10983, "loc": { "start": { "line": 264, @@ -620,8 +620,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 10900, - "end": 10915, + "start": 10935, + "end": 10950, "loc": { "start": { "line": 264, @@ -634,8 +634,8 @@ }, "object": { "type": "ThisExpression", - "start": 10900, - "end": 10904, + "start": 10935, + "end": 10939, "loc": { "start": { "line": 264, @@ -649,8 +649,8 @@ }, "property": { "type": "Identifier", - "start": 10905, - "end": 10915, + "start": 10940, + "end": 10950, "loc": { "start": { "line": 264, @@ -668,8 +668,8 @@ }, "right": { "type": "LogicalExpression", - "start": 10918, - "end": 10948, + "start": 10953, + "end": 10983, "loc": { "start": { "line": 264, @@ -682,8 +682,8 @@ }, "left": { "type": "MemberExpression", - "start": 10918, - "end": 10931, + "start": 10953, + "end": 10966, "loc": { "start": { "line": 264, @@ -696,8 +696,8 @@ }, "object": { "type": "Identifier", - "start": 10918, - "end": 10921, + "start": 10953, + "end": 10956, "loc": { "start": { "line": 264, @@ -713,8 +713,8 @@ }, "property": { "type": "Identifier", - "start": 10922, - "end": 10931, + "start": 10957, + "end": 10966, "loc": { "start": { "line": 264, @@ -733,8 +733,8 @@ "operator": "||", "right": { "type": "MemberExpression", - "start": 10935, - "end": 10948, + "start": 10970, + "end": 10983, "loc": { "start": { "line": 264, @@ -747,8 +747,8 @@ }, "object": { "type": "Identifier", - "start": 10935, - "end": 10943, + "start": 10970, + "end": 10978, "loc": { "start": { "line": 264, @@ -764,8 +764,8 @@ }, "property": { "type": "Identifier", - "start": 10944, - "end": 10948, + "start": 10979, + "end": 10983, "loc": { "start": { "line": 264, @@ -786,8 +786,8 @@ }, { "type": "ExpressionStatement", - "start": 10959, - "end": 10987, + "start": 10994, + "end": 11022, "loc": { "start": { "line": 266, @@ -800,8 +800,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 10959, - "end": 10986, + "start": 10994, + "end": 11021, "loc": { "start": { "line": 266, @@ -815,8 +815,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 10959, - "end": 10979, + "start": 10994, + "end": 11014, "loc": { "start": { "line": 266, @@ -829,8 +829,8 @@ }, "object": { "type": "ThisExpression", - "start": 10959, - "end": 10963, + "start": 10994, + "end": 10998, "loc": { "start": { "line": 266, @@ -844,8 +844,8 @@ }, "property": { "type": "Identifier", - "start": 10964, - "end": 10979, + "start": 10999, + "end": 11014, "loc": { "start": { "line": 266, @@ -863,8 +863,8 @@ }, "right": { "type": "NullLiteral", - "start": 10982, - "end": 10986, + "start": 11017, + "end": 11021, "loc": { "start": { "line": 266, @@ -880,8 +880,8 @@ }, { "type": "ExpressionStatement", - "start": 10997, - "end": 11021, + "start": 11032, + "end": 11056, "loc": { "start": { "line": 268, @@ -894,8 +894,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 10997, - "end": 11020, + "start": 11032, + "end": 11055, "loc": { "start": { "line": 268, @@ -909,8 +909,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 10997, - "end": 11015, + "start": 11032, + "end": 11050, "loc": { "start": { "line": 268, @@ -923,8 +923,8 @@ }, "object": { "type": "ThisExpression", - "start": 10997, - "end": 11001, + "start": 11032, + "end": 11036, "loc": { "start": { "line": 268, @@ -938,8 +938,8 @@ }, "property": { "type": "Identifier", - "start": 11002, - "end": 11015, + "start": 11037, + "end": 11050, "loc": { "start": { "line": 268, @@ -957,8 +957,8 @@ }, "right": { "type": "ObjectExpression", - "start": 11018, - "end": 11020, + "start": 11053, + "end": 11055, "loc": { "start": { "line": 268, @@ -975,8 +975,8 @@ }, { "type": "ExpressionStatement", - "start": 11031, - "end": 11113, + "start": 11066, + "end": 11148, "loc": { "start": { "line": 270, @@ -989,8 +989,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 11031, - "end": 11112, + "start": 11066, + "end": 11147, "loc": { "start": { "line": 270, @@ -1004,8 +1004,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 11031, - "end": 11048, + "start": 11066, + "end": 11083, "loc": { "start": { "line": 270, @@ -1018,8 +1018,8 @@ }, "object": { "type": "ThisExpression", - "start": 11031, - "end": 11035, + "start": 11066, + "end": 11070, "loc": { "start": { "line": 270, @@ -1033,8 +1033,8 @@ }, "property": { "type": "Identifier", - "start": 11036, - "end": 11048, + "start": 11071, + "end": 11083, "loc": { "start": { "line": 270, @@ -1052,8 +1052,8 @@ }, "right": { "type": "ConditionalExpression", - "start": 11051, - "end": 11112, + "start": 11086, + "end": 11147, "loc": { "start": { "line": 270, @@ -1066,8 +1066,8 @@ }, "test": { "type": "BinaryExpression", - "start": 11051, - "end": 11081, + "start": 11086, + "end": 11116, "loc": { "start": { "line": 270, @@ -1080,8 +1080,8 @@ }, "left": { "type": "MemberExpression", - "start": 11051, - "end": 11067, + "start": 11086, + "end": 11102, "loc": { "start": { "line": 270, @@ -1094,8 +1094,8 @@ }, "object": { "type": "Identifier", - "start": 11051, - "end": 11054, + "start": 11086, + "end": 11089, "loc": { "start": { "line": 270, @@ -1111,8 +1111,8 @@ }, "property": { "type": "Identifier", - "start": 11055, - "end": 11067, + "start": 11090, + "end": 11102, "loc": { "start": { "line": 270, @@ -1131,8 +1131,8 @@ "operator": "!==", "right": { "type": "Identifier", - "start": 11072, - "end": 11081, + "start": 11107, + "end": 11116, "loc": { "start": { "line": 270, @@ -1149,8 +1149,8 @@ }, "consequent": { "type": "MemberExpression", - "start": 11084, - "end": 11100, + "start": 11119, + "end": 11135, "loc": { "start": { "line": 270, @@ -1163,8 +1163,8 @@ }, "object": { "type": "Identifier", - "start": 11084, - "end": 11087, + "start": 11119, + "end": 11122, "loc": { "start": { "line": 270, @@ -1180,8 +1180,8 @@ }, "property": { "type": "Identifier", - "start": 11088, - "end": 11100, + "start": 11123, + "end": 11135, "loc": { "start": { "line": 270, @@ -1199,8 +1199,8 @@ }, "alternate": { "type": "StringLiteral", - "start": 11103, - "end": 11112, + "start": 11138, + "end": 11147, "loc": { "start": { "line": 270, @@ -1222,8 +1222,8 @@ }, { "type": "ExpressionStatement", - "start": 11122, - "end": 11185, + "start": 11157, + "end": 11220, "loc": { "start": { "line": 271, @@ -1236,8 +1236,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 11122, - "end": 11184, + "start": 11157, + "end": 11219, "loc": { "start": { "line": 271, @@ -1251,8 +1251,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 11122, - "end": 11147, + "start": 11157, + "end": 11182, "loc": { "start": { "line": 271, @@ -1265,8 +1265,8 @@ }, "object": { "type": "ThisExpression", - "start": 11122, - "end": 11126, + "start": 11157, + "end": 11161, "loc": { "start": { "line": 271, @@ -1280,8 +1280,8 @@ }, "property": { "type": "Identifier", - "start": 11127, - "end": 11147, + "start": 11162, + "end": 11182, "loc": { "start": { "line": 271, @@ -1299,8 +1299,8 @@ }, "right": { "type": "BinaryExpression", - "start": 11150, - "end": 11184, + "start": 11185, + "end": 11219, "loc": { "start": { "line": 271, @@ -1313,8 +1313,8 @@ }, "left": { "type": "MemberExpression", - "start": 11150, - "end": 11174, + "start": 11185, + "end": 11209, "loc": { "start": { "line": 271, @@ -1327,8 +1327,8 @@ }, "object": { "type": "Identifier", - "start": 11150, - "end": 11153, + "start": 11185, + "end": 11188, "loc": { "start": { "line": 271, @@ -1344,8 +1344,8 @@ }, "property": { "type": "Identifier", - "start": 11154, - "end": 11174, + "start": 11189, + "end": 11209, "loc": { "start": { "line": 271, @@ -1364,8 +1364,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 11179, - "end": 11184, + "start": 11214, + "end": 11219, "loc": { "start": { "line": 271, @@ -1383,8 +1383,8 @@ }, { "type": "ExpressionStatement", - "start": 11194, - "end": 11228, + "start": 11229, + "end": 11263, "loc": { "start": { "line": 272, @@ -1397,8 +1397,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 11194, - "end": 11227, + "start": 11229, + "end": 11262, "loc": { "start": { "line": 272, @@ -1412,8 +1412,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 11194, - "end": 11205, + "start": 11229, + "end": 11240, "loc": { "start": { "line": 272, @@ -1426,8 +1426,8 @@ }, "object": { "type": "ThisExpression", - "start": 11194, - "end": 11198, + "start": 11229, + "end": 11233, "loc": { "start": { "line": 272, @@ -1441,8 +1441,8 @@ }, "property": { "type": "Identifier", - "start": 11199, - "end": 11205, + "start": 11234, + "end": 11240, "loc": { "start": { "line": 272, @@ -1460,8 +1460,8 @@ }, "right": { "type": "LogicalExpression", - "start": 11208, - "end": 11227, + "start": 11243, + "end": 11262, "loc": { "start": { "line": 272, @@ -1474,8 +1474,8 @@ }, "left": { "type": "MemberExpression", - "start": 11208, - "end": 11218, + "start": 11243, + "end": 11253, "loc": { "start": { "line": 272, @@ -1488,8 +1488,8 @@ }, "object": { "type": "Identifier", - "start": 11208, - "end": 11211, + "start": 11243, + "end": 11246, "loc": { "start": { "line": 272, @@ -1505,8 +1505,8 @@ }, "property": { "type": "Identifier", - "start": 11212, - "end": 11218, + "start": 11247, + "end": 11253, "loc": { "start": { "line": 272, @@ -1525,8 +1525,8 @@ "operator": "||", "right": { "type": "NumericLiteral", - "start": 11222, - "end": 11227, + "start": 11257, + "end": 11262, "loc": { "start": { "line": 272, @@ -1548,8 +1548,8 @@ }, { "type": "ExpressionStatement", - "start": 11238, - "end": 11474, + "start": 11273, + "end": 11509, "loc": { "start": { "line": 274, @@ -1562,8 +1562,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 11238, - "end": 11474, + "start": 11273, + "end": 11509, "loc": { "start": { "line": 274, @@ -1577,8 +1577,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 11238, - "end": 11255, + "start": 11273, + "end": 11290, "loc": { "start": { "line": 274, @@ -1591,8 +1591,8 @@ }, "object": { "type": "ThisExpression", - "start": 11238, - "end": 11242, + "start": 11273, + "end": 11277, "loc": { "start": { "line": 274, @@ -1606,8 +1606,8 @@ }, "property": { "type": "Identifier", - "start": 11243, - "end": 11255, + "start": 11278, + "end": 11290, "loc": { "start": { "line": 274, @@ -1625,8 +1625,8 @@ }, "right": { "type": "ArrowFunctionExpression", - "start": 11258, - "end": 11474, + "start": 11293, + "end": 11509, "loc": { "start": { "line": 274, @@ -1644,8 +1644,8 @@ "params": [ { "type": "Identifier", - "start": 11259, - "end": 11264, + "start": 11294, + "end": 11299, "loc": { "start": { "line": 274, @@ -1661,8 +1661,8 @@ }, { "type": "Identifier", - "start": 11266, - "end": 11277, + "start": 11301, + "end": 11312, "loc": { "start": { "line": 274, @@ -1679,8 +1679,8 @@ ], "body": { "type": "BlockStatement", - "start": 11282, - "end": 11474, + "start": 11317, + "end": 11509, "loc": { "start": { "line": 274, @@ -1694,8 +1694,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 11296, - "end": 11464, + "start": 11331, + "end": 11499, "loc": { "start": { "line": 275, @@ -1708,8 +1708,8 @@ }, "expression": { "type": "CallExpression", - "start": 11296, - "end": 11463, + "start": 11331, + "end": 11498, "loc": { "start": { "line": 275, @@ -1722,8 +1722,8 @@ }, "callee": { "type": "MemberExpression", - "start": 11296, - "end": 11305, + "start": 11331, + "end": 11340, "loc": { "start": { "line": 275, @@ -1736,8 +1736,8 @@ }, "object": { "type": "ThisExpression", - "start": 11296, - "end": 11300, + "start": 11331, + "end": 11335, "loc": { "start": { "line": 275, @@ -1751,8 +1751,8 @@ }, "property": { "type": "Identifier", - "start": 11301, - "end": 11305, + "start": 11336, + "end": 11340, "loc": { "start": { "line": 275, @@ -1771,8 +1771,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 11306, - "end": 11317, + "start": 11341, + "end": 11352, "loc": { "start": { "line": 275, @@ -1791,8 +1791,8 @@ }, { "type": "ObjectExpression", - "start": 11319, - "end": 11462, + "start": 11354, + "end": 11497, "loc": { "start": { "line": 275, @@ -1806,8 +1806,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 11337, - "end": 11349, + "start": 11372, + "end": 11384, "loc": { "start": { "line": 276, @@ -1823,8 +1823,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11337, - "end": 11343, + "start": 11372, + "end": 11378, "loc": { "start": { "line": 276, @@ -1840,8 +1840,8 @@ }, "value": { "type": "ThisExpression", - "start": 11345, - "end": 11349, + "start": 11380, + "end": 11384, "loc": { "start": { "line": 276, @@ -1856,8 +1856,8 @@ }, { "type": "ObjectProperty", - "start": 11367, - "end": 11396, + "start": 11402, + "end": 11431, "loc": { "start": { "line": 277, @@ -1873,8 +1873,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11367, - "end": 11383, + "start": 11402, + "end": 11418, "loc": { "start": { "line": 277, @@ -1890,8 +1890,8 @@ }, "value": { "type": "Identifier", - "start": 11385, - "end": 11396, + "start": 11420, + "end": 11431, "loc": { "start": { "line": 277, @@ -1908,8 +1908,8 @@ }, { "type": "ObjectProperty", - "start": 11414, - "end": 11425, + "start": 11449, + "end": 11460, "loc": { "start": { "line": 278, @@ -1925,8 +1925,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11414, - "end": 11425, + "start": 11449, + "end": 11460, "loc": { "start": { "line": 278, @@ -1942,8 +1942,8 @@ }, "value": { "type": "Identifier", - "start": 11414, - "end": 11425, + "start": 11449, + "end": 11460, "loc": { "start": { "line": 278, @@ -1963,8 +1963,8 @@ }, { "type": "ObjectProperty", - "start": 11443, - "end": 11448, + "start": 11478, + "end": 11483, "loc": { "start": { "line": 279, @@ -1980,8 +1980,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11443, - "end": 11448, + "start": 11478, + "end": 11483, "loc": { "start": { "line": 279, @@ -1997,8 +1997,8 @@ }, "value": { "type": "Identifier", - "start": 11443, - "end": 11448, + "start": 11478, + "end": 11483, "loc": { "start": { "line": 279, @@ -2029,8 +2029,8 @@ }, { "type": "ExpressionStatement", - "start": 11484, - "end": 11723, + "start": 11519, + "end": 11758, "loc": { "start": { "line": 283, @@ -2043,8 +2043,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 11484, - "end": 11722, + "start": 11519, + "end": 11757, "loc": { "start": { "line": 283, @@ -2058,8 +2058,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 11484, - "end": 11502, + "start": 11519, + "end": 11537, "loc": { "start": { "line": 283, @@ -2072,8 +2072,8 @@ }, "object": { "type": "ThisExpression", - "start": 11484, - "end": 11488, + "start": 11519, + "end": 11523, "loc": { "start": { "line": 283, @@ -2087,8 +2087,8 @@ }, "property": { "type": "Identifier", - "start": 11489, - "end": 11502, + "start": 11524, + "end": 11537, "loc": { "start": { "line": 283, @@ -2106,8 +2106,8 @@ }, "right": { "type": "ArrowFunctionExpression", - "start": 11505, - "end": 11722, + "start": 11540, + "end": 11757, "loc": { "start": { "line": 283, @@ -2125,8 +2125,8 @@ "params": [ { "type": "Identifier", - "start": 11506, - "end": 11511, + "start": 11541, + "end": 11546, "loc": { "start": { "line": 283, @@ -2142,8 +2142,8 @@ }, { "type": "Identifier", - "start": 11513, - "end": 11524, + "start": 11548, + "end": 11559, "loc": { "start": { "line": 283, @@ -2160,8 +2160,8 @@ ], "body": { "type": "BlockStatement", - "start": 11529, - "end": 11722, + "start": 11564, + "end": 11757, "loc": { "start": { "line": 283, @@ -2175,8 +2175,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 11543, - "end": 11712, + "start": 11578, + "end": 11747, "loc": { "start": { "line": 284, @@ -2189,8 +2189,8 @@ }, "expression": { "type": "CallExpression", - "start": 11543, - "end": 11711, + "start": 11578, + "end": 11746, "loc": { "start": { "line": 284, @@ -2203,8 +2203,8 @@ }, "callee": { "type": "MemberExpression", - "start": 11543, - "end": 11552, + "start": 11578, + "end": 11587, "loc": { "start": { "line": 284, @@ -2217,8 +2217,8 @@ }, "object": { "type": "ThisExpression", - "start": 11543, - "end": 11547, + "start": 11578, + "end": 11582, "loc": { "start": { "line": 284, @@ -2232,8 +2232,8 @@ }, "property": { "type": "Identifier", - "start": 11548, - "end": 11552, + "start": 11583, + "end": 11587, "loc": { "start": { "line": 284, @@ -2252,8 +2252,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 11553, - "end": 11565, + "start": 11588, + "end": 11600, "loc": { "start": { "line": 284, @@ -2272,8 +2272,8 @@ }, { "type": "ObjectExpression", - "start": 11567, - "end": 11710, + "start": 11602, + "end": 11745, "loc": { "start": { "line": 284, @@ -2287,8 +2287,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 11585, - "end": 11597, + "start": 11620, + "end": 11632, "loc": { "start": { "line": 285, @@ -2304,8 +2304,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11585, - "end": 11591, + "start": 11620, + "end": 11626, "loc": { "start": { "line": 285, @@ -2321,8 +2321,8 @@ }, "value": { "type": "ThisExpression", - "start": 11593, - "end": 11597, + "start": 11628, + "end": 11632, "loc": { "start": { "line": 285, @@ -2337,8 +2337,8 @@ }, { "type": "ObjectProperty", - "start": 11615, - "end": 11644, + "start": 11650, + "end": 11679, "loc": { "start": { "line": 286, @@ -2354,8 +2354,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11615, - "end": 11631, + "start": 11650, + "end": 11666, "loc": { "start": { "line": 286, @@ -2371,8 +2371,8 @@ }, "value": { "type": "Identifier", - "start": 11633, - "end": 11644, + "start": 11668, + "end": 11679, "loc": { "start": { "line": 286, @@ -2389,8 +2389,8 @@ }, { "type": "ObjectProperty", - "start": 11662, - "end": 11673, + "start": 11697, + "end": 11708, "loc": { "start": { "line": 287, @@ -2406,8 +2406,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11662, - "end": 11673, + "start": 11697, + "end": 11708, "loc": { "start": { "line": 287, @@ -2423,8 +2423,8 @@ }, "value": { "type": "Identifier", - "start": 11662, - "end": 11673, + "start": 11697, + "end": 11708, "loc": { "start": { "line": 287, @@ -2444,8 +2444,8 @@ }, { "type": "ObjectProperty", - "start": 11691, - "end": 11696, + "start": 11726, + "end": 11731, "loc": { "start": { "line": 288, @@ -2461,8 +2461,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11691, - "end": 11696, + "start": 11726, + "end": 11731, "loc": { "start": { "line": 288, @@ -2478,8 +2478,8 @@ }, "value": { "type": "Identifier", - "start": 11691, - "end": 11696, + "start": 11726, + "end": 11731, "loc": { "start": { "line": 288, @@ -2510,8 +2510,8 @@ }, { "type": "ExpressionStatement", - "start": 11733, - "end": 11974, + "start": 11768, + "end": 12009, "loc": { "start": { "line": 292, @@ -2524,8 +2524,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 11733, - "end": 11973, + "start": 11768, + "end": 12008, "loc": { "start": { "line": 292, @@ -2539,8 +2539,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 11733, - "end": 11752, + "start": 11768, + "end": 11787, "loc": { "start": { "line": 292, @@ -2553,8 +2553,8 @@ }, "object": { "type": "ThisExpression", - "start": 11733, - "end": 11737, + "start": 11768, + "end": 11772, "loc": { "start": { "line": 292, @@ -2568,8 +2568,8 @@ }, "property": { "type": "Identifier", - "start": 11738, - "end": 11752, + "start": 11773, + "end": 11787, "loc": { "start": { "line": 292, @@ -2587,8 +2587,8 @@ }, "right": { "type": "ArrowFunctionExpression", - "start": 11755, - "end": 11973, + "start": 11790, + "end": 12008, "loc": { "start": { "line": 292, @@ -2606,8 +2606,8 @@ "params": [ { "type": "Identifier", - "start": 11756, - "end": 11761, + "start": 11791, + "end": 11796, "loc": { "start": { "line": 292, @@ -2623,8 +2623,8 @@ }, { "type": "Identifier", - "start": 11763, - "end": 11774, + "start": 11798, + "end": 11809, "loc": { "start": { "line": 292, @@ -2641,8 +2641,8 @@ ], "body": { "type": "BlockStatement", - "start": 11779, - "end": 11973, + "start": 11814, + "end": 12008, "loc": { "start": { "line": 292, @@ -2656,8 +2656,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 11793, - "end": 11963, + "start": 11828, + "end": 11998, "loc": { "start": { "line": 293, @@ -2670,8 +2670,8 @@ }, "expression": { "type": "CallExpression", - "start": 11793, - "end": 11962, + "start": 11828, + "end": 11997, "loc": { "start": { "line": 293, @@ -2684,8 +2684,8 @@ }, "callee": { "type": "MemberExpression", - "start": 11793, - "end": 11802, + "start": 11828, + "end": 11837, "loc": { "start": { "line": 293, @@ -2698,8 +2698,8 @@ }, "object": { "type": "ThisExpression", - "start": 11793, - "end": 11797, + "start": 11828, + "end": 11832, "loc": { "start": { "line": 293, @@ -2713,8 +2713,8 @@ }, "property": { "type": "Identifier", - "start": 11798, - "end": 11802, + "start": 11833, + "end": 11837, "loc": { "start": { "line": 293, @@ -2733,8 +2733,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 11803, - "end": 11816, + "start": 11838, + "end": 11851, "loc": { "start": { "line": 293, @@ -2753,8 +2753,8 @@ }, { "type": "ObjectExpression", - "start": 11818, - "end": 11961, + "start": 11853, + "end": 11996, "loc": { "start": { "line": 293, @@ -2768,8 +2768,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 11836, - "end": 11848, + "start": 11871, + "end": 11883, "loc": { "start": { "line": 294, @@ -2785,8 +2785,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11836, - "end": 11842, + "start": 11871, + "end": 11877, "loc": { "start": { "line": 294, @@ -2802,8 +2802,8 @@ }, "value": { "type": "ThisExpression", - "start": 11844, - "end": 11848, + "start": 11879, + "end": 11883, "loc": { "start": { "line": 294, @@ -2818,8 +2818,8 @@ }, { "type": "ObjectProperty", - "start": 11866, - "end": 11895, + "start": 11901, + "end": 11930, "loc": { "start": { "line": 295, @@ -2835,8 +2835,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11866, - "end": 11882, + "start": 11901, + "end": 11917, "loc": { "start": { "line": 295, @@ -2852,8 +2852,8 @@ }, "value": { "type": "Identifier", - "start": 11884, - "end": 11895, + "start": 11919, + "end": 11930, "loc": { "start": { "line": 295, @@ -2870,8 +2870,8 @@ }, { "type": "ObjectProperty", - "start": 11913, - "end": 11924, + "start": 11948, + "end": 11959, "loc": { "start": { "line": 296, @@ -2887,8 +2887,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11913, - "end": 11924, + "start": 11948, + "end": 11959, "loc": { "start": { "line": 296, @@ -2904,8 +2904,8 @@ }, "value": { "type": "Identifier", - "start": 11913, - "end": 11924, + "start": 11948, + "end": 11959, "loc": { "start": { "line": 296, @@ -2925,8 +2925,8 @@ }, { "type": "ObjectProperty", - "start": 11942, - "end": 11947, + "start": 11977, + "end": 11982, "loc": { "start": { "line": 297, @@ -2942,8 +2942,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 11942, - "end": 11947, + "start": 11977, + "end": 11982, "loc": { "start": { "line": 297, @@ -2959,8 +2959,8 @@ }, "value": { "type": "Identifier", - "start": 11942, - "end": 11947, + "start": 11977, + "end": 11982, "loc": { "start": { "line": 297, @@ -2997,8 +2997,8 @@ { "type": "CommentBlock", "value": "*\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"AngleMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {string} [cfg.defaultColor=null] The default color of the dots, wire and label.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of {@link AngleMeasurement.labelsVisible}.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n ", - "start": 9947, - "end": 10809, + "start": 9982, + "end": 10844, "loc": { "start": { "line": 249, @@ -3015,8 +3015,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n ", - "start": 11986, - "end": 12098, + "start": 12021, + "end": 12133, "loc": { "start": { "line": 302, @@ -3032,8 +3032,8 @@ }, { "type": "ClassMethod", - "start": 12103, - "end": 12164, + "start": 12138, + "end": 12199, "loc": { "start": { "line": 306, @@ -3048,8 +3048,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 12103, - "end": 12122, + "start": 12138, + "end": 12157, "loc": { "start": { "line": 306, @@ -3072,8 +3072,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 12125, - "end": 12164, + "start": 12160, + "end": 12199, "loc": { "start": { "line": 306, @@ -3087,8 +3087,8 @@ "body": [ { "type": "ReturnStatement", - "start": 12135, - "end": 12158, + "start": 12170, + "end": 12193, "loc": { "start": { "line": 307, @@ -3101,8 +3101,8 @@ }, "argument": { "type": "MemberExpression", - "start": 12142, - "end": 12157, + "start": 12177, + "end": 12192, "loc": { "start": { "line": 307, @@ -3115,8 +3115,8 @@ }, "object": { "type": "ThisExpression", - "start": 12142, - "end": 12146, + "start": 12177, + "end": 12181, "loc": { "start": { "line": 307, @@ -3130,8 +3130,8 @@ }, "property": { "type": "Identifier", - "start": 12147, - "end": 12157, + "start": 12182, + "end": 12192, "loc": { "start": { "line": 307, @@ -3156,8 +3156,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n ", - "start": 11986, - "end": 12098, + "start": 12021, + "end": 12133, "loc": { "start": { "line": 302, @@ -3174,8 +3174,8 @@ { "type": "CommentBlock", "value": "*\n * @private\n ", - "start": 12171, - "end": 12198, + "start": 12206, + "end": 12233, "loc": { "start": { "line": 311, @@ -3191,8 +3191,8 @@ }, { "type": "ClassMethod", - "start": 12203, - "end": 12229, + "start": 12238, + "end": 12264, "loc": { "start": { "line": 314, @@ -3207,8 +3207,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 12203, - "end": 12207, + "start": 12238, + "end": 12242, "loc": { "start": { "line": 314, @@ -3231,8 +3231,8 @@ "params": [ { "type": "Identifier", - "start": 12208, - "end": 12212, + "start": 12243, + "end": 12247, "loc": { "start": { "line": 314, @@ -3248,8 +3248,8 @@ }, { "type": "Identifier", - "start": 12214, - "end": 12219, + "start": 12249, + "end": 12254, "loc": { "start": { "line": 314, @@ -3266,8 +3266,8 @@ ], "body": { "type": "BlockStatement", - "start": 12221, - "end": 12229, + "start": 12256, + "end": 12264, "loc": { "start": { "line": 314, @@ -3287,8 +3287,8 @@ { "type": "CommentBlock", "value": "*\n * @private\n ", - "start": 12171, - "end": 12198, + "start": 12206, + "end": 12233, "loc": { "start": { "line": 311, @@ -3305,8 +3305,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the default {@link AngleMeasurementsMouseControl}.\n *\n * @type {AngleMeasurementsMouseControl}\n * @deprecated\n ", - "start": 12235, - "end": 12380, + "start": 12270, + "end": 12415, "loc": { "start": { "line": 318, @@ -3322,8 +3322,8 @@ }, { "type": "ClassMethod", - "start": 12385, - "end": 12570, + "start": 12420, + "end": 12605, "loc": { "start": { "line": 324, @@ -3338,8 +3338,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 12389, - "end": 12396, + "start": 12424, + "end": 12431, "loc": { "start": { "line": 324, @@ -3361,8 +3361,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 12399, - "end": 12570, + "start": 12434, + "end": 12605, "loc": { "start": { "line": 324, @@ -3376,8 +3376,8 @@ "body": [ { "type": "IfStatement", - "start": 12409, - "end": 12527, + "start": 12444, + "end": 12562, "loc": { "start": { "line": 325, @@ -3390,8 +3390,8 @@ }, "test": { "type": "UnaryExpression", - "start": 12413, - "end": 12434, + "start": 12448, + "end": 12469, "loc": { "start": { "line": 325, @@ -3406,8 +3406,8 @@ "prefix": true, "argument": { "type": "MemberExpression", - "start": 12414, - "end": 12434, + "start": 12449, + "end": 12469, "loc": { "start": { "line": 325, @@ -3420,8 +3420,8 @@ }, "object": { "type": "ThisExpression", - "start": 12414, - "end": 12418, + "start": 12449, + "end": 12453, "loc": { "start": { "line": 325, @@ -3435,8 +3435,8 @@ }, "property": { "type": "Identifier", - "start": 12419, - "end": 12434, + "start": 12454, + "end": 12469, "loc": { "start": { "line": 325, @@ -3458,8 +3458,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 12436, - "end": 12527, + "start": 12471, + "end": 12562, "loc": { "start": { "line": 325, @@ -3473,8 +3473,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 12450, - "end": 12517, + "start": 12485, + "end": 12552, "loc": { "start": { "line": 326, @@ -3487,8 +3487,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 12450, - "end": 12516, + "start": 12485, + "end": 12551, "loc": { "start": { "line": 326, @@ -3502,8 +3502,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 12450, - "end": 12470, + "start": 12485, + "end": 12505, "loc": { "start": { "line": 326, @@ -3516,8 +3516,8 @@ }, "object": { "type": "ThisExpression", - "start": 12450, - "end": 12454, + "start": 12485, + "end": 12489, "loc": { "start": { "line": 326, @@ -3531,8 +3531,8 @@ }, "property": { "type": "Identifier", - "start": 12455, - "end": 12470, + "start": 12490, + "end": 12505, "loc": { "start": { "line": 326, @@ -3550,8 +3550,8 @@ }, "right": { "type": "NewExpression", - "start": 12473, - "end": 12516, + "start": 12508, + "end": 12551, "loc": { "start": { "line": 326, @@ -3564,8 +3564,8 @@ }, "callee": { "type": "Identifier", - "start": 12477, - "end": 12506, + "start": 12512, + "end": 12541, "loc": { "start": { "line": 326, @@ -3582,8 +3582,8 @@ "arguments": [ { "type": "ThisExpression", - "start": 12507, - "end": 12511, + "start": 12542, + "end": 12546, "loc": { "start": { "line": 326, @@ -3597,8 +3597,8 @@ }, { "type": "ObjectExpression", - "start": 12513, - "end": 12515, + "start": 12548, + "end": 12550, "loc": { "start": { "line": 326, @@ -3622,8 +3622,8 @@ }, { "type": "ReturnStatement", - "start": 12536, - "end": 12564, + "start": 12571, + "end": 12599, "loc": { "start": { "line": 328, @@ -3636,8 +3636,8 @@ }, "argument": { "type": "MemberExpression", - "start": 12543, - "end": 12563, + "start": 12578, + "end": 12598, "loc": { "start": { "line": 328, @@ -3650,8 +3650,8 @@ }, "object": { "type": "ThisExpression", - "start": 12543, - "end": 12547, + "start": 12578, + "end": 12582, "loc": { "start": { "line": 328, @@ -3665,8 +3665,8 @@ }, "property": { "type": "Identifier", - "start": 12548, - "end": 12563, + "start": 12583, + "end": 12598, "loc": { "start": { "line": 328, @@ -3691,8 +3691,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the default {@link AngleMeasurementsMouseControl}.\n *\n * @type {AngleMeasurementsMouseControl}\n * @deprecated\n ", - "start": 12235, - "end": 12380, + "start": 12270, + "end": 12415, "loc": { "start": { "line": 318, @@ -3709,8 +3709,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the existing {@link AngleMeasurement}s, each mapped to its {@link AngleMeasurement#id}.\n *\n * @type {{String:AngleMeasurement}}\n ", - "start": 12576, - "end": 12735, + "start": 12611, + "end": 12770, "loc": { "start": { "line": 331, @@ -3726,8 +3726,8 @@ }, { "type": "ClassMethod", - "start": 12740, - "end": 12801, + "start": 12775, + "end": 12836, "loc": { "start": { "line": 336, @@ -3742,8 +3742,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 12744, - "end": 12756, + "start": 12779, + "end": 12791, "loc": { "start": { "line": 336, @@ -3765,8 +3765,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 12759, - "end": 12801, + "start": 12794, + "end": 12836, "loc": { "start": { "line": 336, @@ -3780,8 +3780,8 @@ "body": [ { "type": "ReturnStatement", - "start": 12769, - "end": 12795, + "start": 12804, + "end": 12830, "loc": { "start": { "line": 337, @@ -3794,8 +3794,8 @@ }, "argument": { "type": "MemberExpression", - "start": 12776, - "end": 12794, + "start": 12811, + "end": 12829, "loc": { "start": { "line": 337, @@ -3808,8 +3808,8 @@ }, "object": { "type": "ThisExpression", - "start": 12776, - "end": 12780, + "start": 12811, + "end": 12815, "loc": { "start": { "line": 337, @@ -3823,8 +3823,8 @@ }, "property": { "type": "Identifier", - "start": 12781, - "end": 12794, + "start": 12816, + "end": 12829, "loc": { "start": { "line": 337, @@ -3849,8 +3849,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the existing {@link AngleMeasurement}s, each mapped to its {@link AngleMeasurement#id}.\n *\n * @type {{String:AngleMeasurement}}\n ", - "start": 12576, - "end": 12735, + "start": 12611, + "end": 12770, "loc": { "start": { "line": 331, @@ -3867,8 +3867,8 @@ { "type": "CommentBlock", "value": "*\n * Creates an {@link AngleMeasurement}.\n *\n * The AngleMeasurement is then registered by {@link AngleMeasurement#id} in {@link AngleMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link AngleMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link AngleMeasurement#id}. The AngleMeasurement will be registered by this in {@link AngleMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.corner.worldPos Corner World-space 3D position.\n * @param {Entity} params.corner.entity Corner Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link AngleMeasurement}.\n * @returns {AngleMeasurement} The new {@link AngleMeasurement}.\n ", - "start": 12807, - "end": 13931, + "start": 12842, + "end": 13966, "loc": { "start": { "line": 340, @@ -3884,8 +3884,8 @@ }, { "type": "ClassMethod", - "start": 13936, - "end": 15428, + "start": 13971, + "end": 15463, "loc": { "start": { "line": 356, @@ -3900,8 +3900,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 13936, - "end": 13953, + "start": 13971, + "end": 13988, "loc": { "start": { "line": 356, @@ -3924,8 +3924,8 @@ "params": [ { "type": "AssignmentPattern", - "start": 13954, - "end": 13965, + "start": 13989, + "end": 14000, "loc": { "start": { "line": 356, @@ -3938,8 +3938,8 @@ }, "left": { "type": "Identifier", - "start": 13954, - "end": 13960, + "start": 13989, + "end": 13995, "loc": { "start": { "line": 356, @@ -3955,8 +3955,8 @@ }, "right": { "type": "ObjectExpression", - "start": 13963, - "end": 13965, + "start": 13998, + "end": 14000, "loc": { "start": { "line": 356, @@ -3973,8 +3973,8 @@ ], "body": { "type": "BlockStatement", - "start": 13967, - "end": 15428, + "start": 14002, + "end": 15463, "loc": { "start": { "line": 356, @@ -3988,8 +3988,8 @@ "body": [ { "type": "IfStatement", - "start": 13977, - "end": 14155, + "start": 14012, + "end": 14190, "loc": { "start": { "line": 357, @@ -4002,8 +4002,8 @@ }, "test": { "type": "MemberExpression", - "start": 13981, - "end": 14020, + "start": 14016, + "end": 14055, "loc": { "start": { "line": 357, @@ -4016,8 +4016,8 @@ }, "object": { "type": "MemberExpression", - "start": 13981, - "end": 14009, + "start": 14016, + "end": 14044, "loc": { "start": { "line": 357, @@ -4030,8 +4030,8 @@ }, "object": { "type": "MemberExpression", - "start": 13981, - "end": 13998, + "start": 14016, + "end": 14033, "loc": { "start": { "line": 357, @@ -4044,8 +4044,8 @@ }, "object": { "type": "MemberExpression", - "start": 13981, - "end": 13992, + "start": 14016, + "end": 14027, "loc": { "start": { "line": 357, @@ -4058,8 +4058,8 @@ }, "object": { "type": "ThisExpression", - "start": 13981, - "end": 13985, + "start": 14016, + "end": 14020, "loc": { "start": { "line": 357, @@ -4073,8 +4073,8 @@ }, "property": { "type": "Identifier", - "start": 13986, - "end": 13992, + "start": 14021, + "end": 14027, "loc": { "start": { "line": 357, @@ -4092,8 +4092,8 @@ }, "property": { "type": "Identifier", - "start": 13993, - "end": 13998, + "start": 14028, + "end": 14033, "loc": { "start": { "line": 357, @@ -4111,8 +4111,8 @@ }, "property": { "type": "Identifier", - "start": 13999, - "end": 14009, + "start": 14034, + "end": 14044, "loc": { "start": { "line": 357, @@ -4130,8 +4130,8 @@ }, "property": { "type": "MemberExpression", - "start": 14010, - "end": 14019, + "start": 14045, + "end": 14054, "loc": { "start": { "line": 357, @@ -4144,8 +4144,8 @@ }, "object": { "type": "Identifier", - "start": 14010, - "end": 14016, + "start": 14045, + "end": 14051, "loc": { "start": { "line": 357, @@ -4161,8 +4161,8 @@ }, "property": { "type": "Identifier", - "start": 14017, - "end": 14019, + "start": 14052, + "end": 14054, "loc": { "start": { "line": 357, @@ -4182,8 +4182,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 14022, - "end": 14155, + "start": 14057, + "end": 14190, "loc": { "start": { "line": 357, @@ -4197,8 +4197,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 14036, - "end": 14115, + "start": 14071, + "end": 14150, "loc": { "start": { "line": 358, @@ -4211,8 +4211,8 @@ }, "expression": { "type": "CallExpression", - "start": 14036, - "end": 14114, + "start": 14071, + "end": 14149, "loc": { "start": { "line": 358, @@ -4225,8 +4225,8 @@ }, "callee": { "type": "MemberExpression", - "start": 14036, - "end": 14046, + "start": 14071, + "end": 14081, "loc": { "start": { "line": 358, @@ -4239,8 +4239,8 @@ }, "object": { "type": "ThisExpression", - "start": 14036, - "end": 14040, + "start": 14071, + "end": 14075, "loc": { "start": { "line": 358, @@ -4254,8 +4254,8 @@ }, "property": { "type": "Identifier", - "start": 14041, - "end": 14046, + "start": 14076, + "end": 14081, "loc": { "start": { "line": 358, @@ -4274,8 +4274,8 @@ "arguments": [ { "type": "BinaryExpression", - "start": 14047, - "end": 14113, + "start": 14082, + "end": 14148, "loc": { "start": { "line": 358, @@ -4288,8 +4288,8 @@ }, "left": { "type": "StringLiteral", - "start": 14047, - "end": 14101, + "start": 14082, + "end": 14136, "loc": { "start": { "line": 358, @@ -4309,8 +4309,8 @@ "operator": "+", "right": { "type": "MemberExpression", - "start": 14104, - "end": 14113, + "start": 14139, + "end": 14148, "loc": { "start": { "line": 358, @@ -4323,8 +4323,8 @@ }, "object": { "type": "Identifier", - "start": 14104, - "end": 14110, + "start": 14139, + "end": 14145, "loc": { "start": { "line": 358, @@ -4340,8 +4340,8 @@ }, "property": { "type": "Identifier", - "start": 14111, - "end": 14113, + "start": 14146, + "end": 14148, "loc": { "start": { "line": 358, @@ -4363,8 +4363,8 @@ }, { "type": "ExpressionStatement", - "start": 14128, - "end": 14145, + "start": 14163, + "end": 14180, "loc": { "start": { "line": 359, @@ -4377,8 +4377,8 @@ }, "expression": { "type": "UnaryExpression", - "start": 14128, - "end": 14144, + "start": 14163, + "end": 14179, "loc": { "start": { "line": 359, @@ -4393,8 +4393,8 @@ "prefix": true, "argument": { "type": "MemberExpression", - "start": 14135, - "end": 14144, + "start": 14170, + "end": 14179, "loc": { "start": { "line": 359, @@ -4407,8 +4407,8 @@ }, "object": { "type": "Identifier", - "start": 14135, - "end": 14141, + "start": 14170, + "end": 14176, "loc": { "start": { "line": 359, @@ -4424,8 +4424,8 @@ }, "property": { "type": "Identifier", - "start": 14142, - "end": 14144, + "start": 14177, + "end": 14179, "loc": { "start": { "line": 359, @@ -4453,8 +4453,8 @@ }, { "type": "VariableDeclaration", - "start": 14164, - "end": 14193, + "start": 14199, + "end": 14228, "loc": { "start": { "line": 361, @@ -4468,8 +4468,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 14170, - "end": 14192, + "start": 14205, + "end": 14227, "loc": { "start": { "line": 361, @@ -4482,8 +4482,8 @@ }, "id": { "type": "Identifier", - "start": 14170, - "end": 14176, + "start": 14205, + "end": 14211, "loc": { "start": { "line": 361, @@ -4499,8 +4499,8 @@ }, "init": { "type": "MemberExpression", - "start": 14179, - "end": 14192, + "start": 14214, + "end": 14227, "loc": { "start": { "line": 361, @@ -4513,8 +4513,8 @@ }, "object": { "type": "Identifier", - "start": 14179, - "end": 14185, + "start": 14214, + "end": 14220, "loc": { "start": { "line": 361, @@ -4530,8 +4530,8 @@ }, "property": { "type": "Identifier", - "start": 14186, - "end": 14192, + "start": 14221, + "end": 14227, "loc": { "start": { "line": 361, @@ -4553,8 +4553,8 @@ }, { "type": "VariableDeclaration", - "start": 14202, - "end": 14231, + "start": 14237, + "end": 14266, "loc": { "start": { "line": 362, @@ -4568,8 +4568,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 14208, - "end": 14230, + "start": 14243, + "end": 14265, "loc": { "start": { "line": 362, @@ -4582,8 +4582,8 @@ }, "id": { "type": "Identifier", - "start": 14208, - "end": 14214, + "start": 14243, + "end": 14249, "loc": { "start": { "line": 362, @@ -4599,8 +4599,8 @@ }, "init": { "type": "MemberExpression", - "start": 14217, - "end": 14230, + "start": 14252, + "end": 14265, "loc": { "start": { "line": 362, @@ -4613,8 +4613,8 @@ }, "object": { "type": "Identifier", - "start": 14217, - "end": 14223, + "start": 14252, + "end": 14258, "loc": { "start": { "line": 362, @@ -4630,8 +4630,8 @@ }, "property": { "type": "Identifier", - "start": 14224, - "end": 14230, + "start": 14259, + "end": 14265, "loc": { "start": { "line": 362, @@ -4653,8 +4653,8 @@ }, { "type": "VariableDeclaration", - "start": 14240, - "end": 14269, + "start": 14275, + "end": 14304, "loc": { "start": { "line": 363, @@ -4668,8 +4668,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 14246, - "end": 14268, + "start": 14281, + "end": 14303, "loc": { "start": { "line": 363, @@ -4682,8 +4682,8 @@ }, "id": { "type": "Identifier", - "start": 14246, - "end": 14252, + "start": 14281, + "end": 14287, "loc": { "start": { "line": 363, @@ -4699,8 +4699,8 @@ }, "init": { "type": "MemberExpression", - "start": 14255, - "end": 14268, + "start": 14290, + "end": 14303, "loc": { "start": { "line": 363, @@ -4713,8 +4713,8 @@ }, "object": { "type": "Identifier", - "start": 14255, - "end": 14261, + "start": 14290, + "end": 14296, "loc": { "start": { "line": 363, @@ -4730,8 +4730,8 @@ }, "property": { "type": "Identifier", - "start": 14262, - "end": 14268, + "start": 14297, + "end": 14303, "loc": { "start": { "line": 363, @@ -4753,8 +4753,8 @@ }, { "type": "VariableDeclaration", - "start": 14278, - "end": 15133, + "start": 14313, + "end": 15168, "loc": { "start": { "line": 364, @@ -4768,8 +4768,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 14284, - "end": 15132, + "start": 14319, + "end": 15167, "loc": { "start": { "line": 364, @@ -4782,8 +4782,8 @@ }, "id": { "type": "Identifier", - "start": 14284, - "end": 14295, + "start": 14319, + "end": 14330, "loc": { "start": { "line": 364, @@ -4799,8 +4799,8 @@ }, "init": { "type": "NewExpression", - "start": 14298, - "end": 15132, + "start": 14333, + "end": 15167, "loc": { "start": { "line": 364, @@ -4813,8 +4813,8 @@ }, "callee": { "type": "Identifier", - "start": 14302, - "end": 14318, + "start": 14337, + "end": 14353, "loc": { "start": { "line": 364, @@ -4831,8 +4831,8 @@ "arguments": [ { "type": "ThisExpression", - "start": 14319, - "end": 14323, + "start": 14354, + "end": 14358, "loc": { "start": { "line": 364, @@ -4846,8 +4846,8 @@ }, { "type": "ObjectExpression", - "start": 14325, - "end": 15131, + "start": 14360, + "end": 15166, "loc": { "start": { "line": 364, @@ -4861,8 +4861,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 14339, - "end": 14352, + "start": 14374, + "end": 14387, "loc": { "start": { "line": 365, @@ -4878,8 +4878,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14339, - "end": 14341, + "start": 14374, + "end": 14376, "loc": { "start": { "line": 365, @@ -4895,8 +4895,8 @@ }, "value": { "type": "MemberExpression", - "start": 14343, - "end": 14352, + "start": 14378, + "end": 14387, "loc": { "start": { "line": 365, @@ -4909,8 +4909,8 @@ }, "object": { "type": "Identifier", - "start": 14343, - "end": 14349, + "start": 14378, + "end": 14384, "loc": { "start": { "line": 365, @@ -4926,8 +4926,8 @@ }, "property": { "type": "Identifier", - "start": 14350, - "end": 14352, + "start": 14385, + "end": 14387, "loc": { "start": { "line": 365, @@ -4946,8 +4946,8 @@ }, { "type": "ObjectProperty", - "start": 14366, - "end": 14378, + "start": 14401, + "end": 14413, "loc": { "start": { "line": 366, @@ -4963,8 +4963,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14366, - "end": 14372, + "start": 14401, + "end": 14407, "loc": { "start": { "line": 366, @@ -4980,8 +4980,8 @@ }, "value": { "type": "ThisExpression", - "start": 14374, - "end": 14378, + "start": 14409, + "end": 14413, "loc": { "start": { "line": 366, @@ -4996,8 +4996,8 @@ }, { "type": "ObjectProperty", - "start": 14392, - "end": 14418, + "start": 14427, + "end": 14453, "loc": { "start": { "line": 367, @@ -5013,8 +5013,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14392, - "end": 14401, + "start": 14427, + "end": 14436, "loc": { "start": { "line": 367, @@ -5030,8 +5030,8 @@ }, "value": { "type": "MemberExpression", - "start": 14403, - "end": 14418, + "start": 14438, + "end": 14453, "loc": { "start": { "line": 367, @@ -5044,8 +5044,8 @@ }, "object": { "type": "ThisExpression", - "start": 14403, - "end": 14407, + "start": 14438, + "end": 14442, "loc": { "start": { "line": 367, @@ -5059,8 +5059,8 @@ }, "property": { "type": "Identifier", - "start": 14408, - "end": 14418, + "start": 14443, + "end": 14453, "loc": { "start": { "line": 367, @@ -5079,8 +5079,8 @@ }, { "type": "ObjectProperty", - "start": 14432, - "end": 14536, + "start": 14467, + "end": 14571, "loc": { "start": { "line": 368, @@ -5096,8 +5096,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14432, - "end": 14438, + "start": 14467, + "end": 14473, "loc": { "start": { "line": 368, @@ -5113,8 +5113,8 @@ }, "value": { "type": "ObjectExpression", - "start": 14440, - "end": 14536, + "start": 14475, + "end": 14571, "loc": { "start": { "line": 368, @@ -5128,8 +5128,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 14458, - "end": 14479, + "start": 14493, + "end": 14514, "loc": { "start": { "line": 369, @@ -5145,8 +5145,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14458, - "end": 14464, + "start": 14493, + "end": 14499, "loc": { "start": { "line": 369, @@ -5162,8 +5162,8 @@ }, "value": { "type": "MemberExpression", - "start": 14466, - "end": 14479, + "start": 14501, + "end": 14514, "loc": { "start": { "line": 369, @@ -5176,8 +5176,8 @@ }, "object": { "type": "Identifier", - "start": 14466, - "end": 14472, + "start": 14501, + "end": 14507, "loc": { "start": { "line": 369, @@ -5193,8 +5193,8 @@ }, "property": { "type": "Identifier", - "start": 14473, - "end": 14479, + "start": 14508, + "end": 14514, "loc": { "start": { "line": 369, @@ -5213,8 +5213,8 @@ }, { "type": "ObjectProperty", - "start": 14497, - "end": 14522, + "start": 14532, + "end": 14557, "loc": { "start": { "line": 370, @@ -5230,8 +5230,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14497, - "end": 14505, + "start": 14532, + "end": 14540, "loc": { "start": { "line": 370, @@ -5247,8 +5247,8 @@ }, "value": { "type": "MemberExpression", - "start": 14507, - "end": 14522, + "start": 14542, + "end": 14557, "loc": { "start": { "line": 370, @@ -5261,8 +5261,8 @@ }, "object": { "type": "Identifier", - "start": 14507, - "end": 14513, + "start": 14542, + "end": 14548, "loc": { "start": { "line": 370, @@ -5278,8 +5278,8 @@ }, "property": { "type": "Identifier", - "start": 14514, - "end": 14522, + "start": 14549, + "end": 14557, "loc": { "start": { "line": 370, @@ -5301,8 +5301,8 @@ }, { "type": "ObjectProperty", - "start": 14550, - "end": 14654, + "start": 14585, + "end": 14689, "loc": { "start": { "line": 372, @@ -5318,8 +5318,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14550, - "end": 14556, + "start": 14585, + "end": 14591, "loc": { "start": { "line": 372, @@ -5335,8 +5335,8 @@ }, "value": { "type": "ObjectExpression", - "start": 14558, - "end": 14654, + "start": 14593, + "end": 14689, "loc": { "start": { "line": 372, @@ -5350,8 +5350,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 14576, - "end": 14597, + "start": 14611, + "end": 14632, "loc": { "start": { "line": 373, @@ -5367,8 +5367,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14576, - "end": 14582, + "start": 14611, + "end": 14617, "loc": { "start": { "line": 373, @@ -5384,8 +5384,8 @@ }, "value": { "type": "MemberExpression", - "start": 14584, - "end": 14597, + "start": 14619, + "end": 14632, "loc": { "start": { "line": 373, @@ -5398,8 +5398,8 @@ }, "object": { "type": "Identifier", - "start": 14584, - "end": 14590, + "start": 14619, + "end": 14625, "loc": { "start": { "line": 373, @@ -5415,8 +5415,8 @@ }, "property": { "type": "Identifier", - "start": 14591, - "end": 14597, + "start": 14626, + "end": 14632, "loc": { "start": { "line": 373, @@ -5435,8 +5435,8 @@ }, { "type": "ObjectProperty", - "start": 14615, - "end": 14640, + "start": 14650, + "end": 14675, "loc": { "start": { "line": 374, @@ -5452,8 +5452,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14615, - "end": 14623, + "start": 14650, + "end": 14658, "loc": { "start": { "line": 374, @@ -5469,8 +5469,8 @@ }, "value": { "type": "MemberExpression", - "start": 14625, - "end": 14640, + "start": 14660, + "end": 14675, "loc": { "start": { "line": 374, @@ -5483,8 +5483,8 @@ }, "object": { "type": "Identifier", - "start": 14625, - "end": 14631, + "start": 14660, + "end": 14666, "loc": { "start": { "line": 374, @@ -5500,8 +5500,8 @@ }, "property": { "type": "Identifier", - "start": 14632, - "end": 14640, + "start": 14667, + "end": 14675, "loc": { "start": { "line": 374, @@ -5523,8 +5523,8 @@ }, { "type": "ObjectProperty", - "start": 14668, - "end": 14772, + "start": 14703, + "end": 14807, "loc": { "start": { "line": 376, @@ -5540,8 +5540,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14668, - "end": 14674, + "start": 14703, + "end": 14709, "loc": { "start": { "line": 376, @@ -5557,8 +5557,8 @@ }, "value": { "type": "ObjectExpression", - "start": 14676, - "end": 14772, + "start": 14711, + "end": 14807, "loc": { "start": { "line": 376, @@ -5572,8 +5572,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 14694, - "end": 14715, + "start": 14729, + "end": 14750, "loc": { "start": { "line": 377, @@ -5589,8 +5589,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14694, - "end": 14700, + "start": 14729, + "end": 14735, "loc": { "start": { "line": 377, @@ -5606,8 +5606,8 @@ }, "value": { "type": "MemberExpression", - "start": 14702, - "end": 14715, + "start": 14737, + "end": 14750, "loc": { "start": { "line": 377, @@ -5620,8 +5620,8 @@ }, "object": { "type": "Identifier", - "start": 14702, - "end": 14708, + "start": 14737, + "end": 14743, "loc": { "start": { "line": 377, @@ -5637,8 +5637,8 @@ }, "property": { "type": "Identifier", - "start": 14709, - "end": 14715, + "start": 14744, + "end": 14750, "loc": { "start": { "line": 377, @@ -5657,8 +5657,8 @@ }, { "type": "ObjectProperty", - "start": 14733, - "end": 14758, + "start": 14768, + "end": 14793, "loc": { "start": { "line": 378, @@ -5674,8 +5674,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14733, - "end": 14741, + "start": 14768, + "end": 14776, "loc": { "start": { "line": 378, @@ -5691,8 +5691,8 @@ }, "value": { "type": "MemberExpression", - "start": 14743, - "end": 14758, + "start": 14778, + "end": 14793, "loc": { "start": { "line": 378, @@ -5705,8 +5705,8 @@ }, "object": { "type": "Identifier", - "start": 14743, - "end": 14749, + "start": 14778, + "end": 14784, "loc": { "start": { "line": 378, @@ -5722,8 +5722,8 @@ }, "property": { "type": "Identifier", - "start": 14750, - "end": 14758, + "start": 14785, + "end": 14793, "loc": { "start": { "line": 378, @@ -5745,8 +5745,8 @@ }, { "type": "ObjectProperty", - "start": 14787, - "end": 14810, + "start": 14822, + "end": 14845, "loc": { "start": { "line": 381, @@ -5762,8 +5762,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14787, - "end": 14794, + "start": 14822, + "end": 14829, "loc": { "start": { "line": 381, @@ -5779,8 +5779,8 @@ }, "value": { "type": "MemberExpression", - "start": 14796, - "end": 14810, + "start": 14831, + "end": 14845, "loc": { "start": { "line": 381, @@ -5793,8 +5793,8 @@ }, "object": { "type": "Identifier", - "start": 14796, - "end": 14802, + "start": 14831, + "end": 14837, "loc": { "start": { "line": 381, @@ -5810,8 +5810,8 @@ }, "property": { "type": "Identifier", - "start": 14803, - "end": 14810, + "start": 14838, + "end": 14845, "loc": { "start": { "line": 381, @@ -5830,8 +5830,8 @@ }, { "type": "ObjectProperty", - "start": 14824, - "end": 14843, + "start": 14859, + "end": 14878, "loc": { "start": { "line": 382, @@ -5847,8 +5847,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14824, - "end": 14837, + "start": 14859, + "end": 14872, "loc": { "start": { "line": 382, @@ -5864,8 +5864,8 @@ }, "value": { "type": "BooleanLiteral", - "start": 14839, - "end": 14843, + "start": 14874, + "end": 14878, "loc": { "start": { "line": 382, @@ -5881,8 +5881,8 @@ }, { "type": "ObjectProperty", - "start": 14857, - "end": 14880, + "start": 14892, + "end": 14915, "loc": { "start": { "line": 383, @@ -5898,8 +5898,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14857, - "end": 14874, + "start": 14892, + "end": 14909, "loc": { "start": { "line": 383, @@ -5915,8 +5915,8 @@ }, "value": { "type": "BooleanLiteral", - "start": 14876, - "end": 14880, + "start": 14911, + "end": 14915, "loc": { "start": { "line": 383, @@ -5932,8 +5932,8 @@ }, { "type": "ObjectProperty", - "start": 14894, - "end": 14913, + "start": 14929, + "end": 14948, "loc": { "start": { "line": 384, @@ -5949,8 +5949,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14894, - "end": 14907, + "start": 14929, + "end": 14942, "loc": { "start": { "line": 384, @@ -5966,8 +5966,8 @@ }, "value": { "type": "BooleanLiteral", - "start": 14909, - "end": 14913, + "start": 14944, + "end": 14948, "loc": { "start": { "line": 384, @@ -5983,8 +5983,8 @@ }, { "type": "ObjectProperty", - "start": 14927, - "end": 14950, + "start": 14962, + "end": 14985, "loc": { "start": { "line": 385, @@ -6000,8 +6000,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14927, - "end": 14944, + "start": 14962, + "end": 14979, "loc": { "start": { "line": 385, @@ -6017,8 +6017,8 @@ }, "value": { "type": "BooleanLiteral", - "start": 14946, - "end": 14950, + "start": 14981, + "end": 14985, "loc": { "start": { "line": 385, @@ -6034,8 +6034,8 @@ }, { "type": "ObjectProperty", - "start": 14964, - "end": 14983, + "start": 14999, + "end": 15018, "loc": { "start": { "line": 386, @@ -6051,8 +6051,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14964, - "end": 14977, + "start": 14999, + "end": 15012, "loc": { "start": { "line": 386, @@ -6068,8 +6068,8 @@ }, "value": { "type": "BooleanLiteral", - "start": 14979, - "end": 14983, + "start": 15014, + "end": 15018, "loc": { "start": { "line": 386, @@ -6085,8 +6085,8 @@ }, { "type": "ObjectProperty", - "start": 14997, - "end": 15027, + "start": 15032, + "end": 15062, "loc": { "start": { "line": 387, @@ -6102,8 +6102,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14997, - "end": 15008, + "start": 15032, + "end": 15043, "loc": { "start": { "line": 387, @@ -6119,8 +6119,8 @@ }, "value": { "type": "MemberExpression", - "start": 15010, - "end": 15027, + "start": 15045, + "end": 15062, "loc": { "start": { "line": 387, @@ -6133,8 +6133,8 @@ }, "object": { "type": "ThisExpression", - "start": 15010, - "end": 15014, + "start": 15045, + "end": 15049, "loc": { "start": { "line": 387, @@ -6148,8 +6148,8 @@ }, "property": { "type": "Identifier", - "start": 15015, - "end": 15027, + "start": 15050, + "end": 15062, "loc": { "start": { "line": 387, @@ -6168,8 +6168,8 @@ }, { "type": "ObjectProperty", - "start": 15041, - "end": 15073, + "start": 15076, + "end": 15108, "loc": { "start": { "line": 388, @@ -6185,8 +6185,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 15041, - "end": 15053, + "start": 15076, + "end": 15088, "loc": { "start": { "line": 388, @@ -6202,8 +6202,8 @@ }, "value": { "type": "MemberExpression", - "start": 15055, - "end": 15073, + "start": 15090, + "end": 15108, "loc": { "start": { "line": 388, @@ -6216,8 +6216,8 @@ }, "object": { "type": "ThisExpression", - "start": 15055, - "end": 15059, + "start": 15090, + "end": 15094, "loc": { "start": { "line": 388, @@ -6231,8 +6231,8 @@ }, "property": { "type": "Identifier", - "start": 15060, - "end": 15073, + "start": 15095, + "end": 15108, "loc": { "start": { "line": 388, @@ -6251,8 +6251,8 @@ }, { "type": "ObjectProperty", - "start": 15087, - "end": 15121, + "start": 15122, + "end": 15156, "loc": { "start": { "line": 389, @@ -6268,8 +6268,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 15087, - "end": 15100, + "start": 15122, + "end": 15135, "loc": { "start": { "line": 389, @@ -6285,8 +6285,8 @@ }, "value": { "type": "MemberExpression", - "start": 15102, - "end": 15121, + "start": 15137, + "end": 15156, "loc": { "start": { "line": 389, @@ -6299,8 +6299,8 @@ }, "object": { "type": "ThisExpression", - "start": 15102, - "end": 15106, + "start": 15137, + "end": 15141, "loc": { "start": { "line": 389, @@ -6314,8 +6314,8 @@ }, "property": { "type": "Identifier", - "start": 15107, - "end": 15121, + "start": 15142, + "end": 15156, "loc": { "start": { "line": 389, @@ -6342,8 +6342,8 @@ }, { "type": "ExpressionStatement", - "start": 15142, - "end": 15191, + "start": 15177, + "end": 15226, "loc": { "start": { "line": 391, @@ -6356,8 +6356,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 15142, - "end": 15190, + "start": 15177, + "end": 15225, "loc": { "start": { "line": 391, @@ -6371,8 +6371,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 15142, - "end": 15176, + "start": 15177, + "end": 15211, "loc": { "start": { "line": 391, @@ -6385,8 +6385,8 @@ }, "object": { "type": "MemberExpression", - "start": 15142, - "end": 15160, + "start": 15177, + "end": 15195, "loc": { "start": { "line": 391, @@ -6399,8 +6399,8 @@ }, "object": { "type": "ThisExpression", - "start": 15142, - "end": 15146, + "start": 15177, + "end": 15181, "loc": { "start": { "line": 391, @@ -6414,8 +6414,8 @@ }, "property": { "type": "Identifier", - "start": 15147, - "end": 15160, + "start": 15182, + "end": 15195, "loc": { "start": { "line": 391, @@ -6433,8 +6433,8 @@ }, "property": { "type": "MemberExpression", - "start": 15161, - "end": 15175, + "start": 15196, + "end": 15210, "loc": { "start": { "line": 391, @@ -6447,8 +6447,8 @@ }, "object": { "type": "Identifier", - "start": 15161, - "end": 15172, + "start": 15196, + "end": 15207, "loc": { "start": { "line": 391, @@ -6464,8 +6464,8 @@ }, "property": { "type": "Identifier", - "start": 15173, - "end": 15175, + "start": 15208, + "end": 15210, "loc": { "start": { "line": 391, @@ -6485,8 +6485,8 @@ }, "right": { "type": "Identifier", - "start": 15179, - "end": 15190, + "start": 15214, + "end": 15225, "loc": { "start": { "line": 391, @@ -6504,8 +6504,8 @@ }, { "type": "ExpressionStatement", - "start": 15200, - "end": 15302, + "start": 15235, + "end": 15337, "loc": { "start": { "line": 392, @@ -6518,8 +6518,8 @@ }, "expression": { "type": "CallExpression", - "start": 15200, - "end": 15301, + "start": 15235, + "end": 15336, "loc": { "start": { "line": 392, @@ -6532,8 +6532,8 @@ }, "callee": { "type": "MemberExpression", - "start": 15200, - "end": 15214, + "start": 15235, + "end": 15249, "loc": { "start": { "line": 392, @@ -6546,8 +6546,8 @@ }, "object": { "type": "Identifier", - "start": 15200, - "end": 15211, + "start": 15235, + "end": 15246, "loc": { "start": { "line": 392, @@ -6563,8 +6563,8 @@ }, "property": { "type": "Identifier", - "start": 15212, - "end": 15214, + "start": 15247, + "end": 15249, "loc": { "start": { "line": 392, @@ -6583,8 +6583,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 15215, - "end": 15226, + "start": 15250, + "end": 15261, "loc": { "start": { "line": 392, @@ -6603,8 +6603,8 @@ }, { "type": "ArrowFunctionExpression", - "start": 15228, - "end": 15300, + "start": 15263, + "end": 15335, "loc": { "start": { "line": 392, @@ -6622,8 +6622,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 15234, - "end": 15300, + "start": 15269, + "end": 15335, "loc": { "start": { "line": 392, @@ -6637,8 +6637,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 15248, - "end": 15290, + "start": 15283, + "end": 15325, "loc": { "start": { "line": 393, @@ -6651,8 +6651,8 @@ }, "expression": { "type": "UnaryExpression", - "start": 15248, - "end": 15289, + "start": 15283, + "end": 15324, "loc": { "start": { "line": 393, @@ -6667,8 +6667,8 @@ "prefix": true, "argument": { "type": "MemberExpression", - "start": 15255, - "end": 15289, + "start": 15290, + "end": 15324, "loc": { "start": { "line": 393, @@ -6681,8 +6681,8 @@ }, "object": { "type": "MemberExpression", - "start": 15255, - "end": 15273, + "start": 15290, + "end": 15308, "loc": { "start": { "line": 393, @@ -6695,8 +6695,8 @@ }, "object": { "type": "ThisExpression", - "start": 15255, - "end": 15259, + "start": 15290, + "end": 15294, "loc": { "start": { "line": 393, @@ -6710,8 +6710,8 @@ }, "property": { "type": "Identifier", - "start": 15260, - "end": 15273, + "start": 15295, + "end": 15308, "loc": { "start": { "line": 393, @@ -6729,8 +6729,8 @@ }, "property": { "type": "MemberExpression", - "start": 15274, - "end": 15288, + "start": 15309, + "end": 15323, "loc": { "start": { "line": 393, @@ -6743,8 +6743,8 @@ }, "object": { "type": "Identifier", - "start": 15274, - "end": 15285, + "start": 15309, + "end": 15320, "loc": { "start": { "line": 393, @@ -6760,8 +6760,8 @@ }, "property": { "type": "Identifier", - "start": 15286, - "end": 15288, + "start": 15321, + "end": 15323, "loc": { "start": { "line": 393, @@ -6793,8 +6793,8 @@ }, { "type": "ExpressionStatement", - "start": 15311, - "end": 15340, + "start": 15346, + "end": 15375, "loc": { "start": { "line": 395, @@ -6807,8 +6807,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 15311, - "end": 15339, + "start": 15346, + "end": 15374, "loc": { "start": { "line": 395, @@ -6822,8 +6822,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 15311, - "end": 15332, + "start": 15346, + "end": 15367, "loc": { "start": { "line": 395, @@ -6836,8 +6836,8 @@ }, "object": { "type": "Identifier", - "start": 15311, - "end": 15322, + "start": 15346, + "end": 15357, "loc": { "start": { "line": 395, @@ -6853,8 +6853,8 @@ }, "property": { "type": "Identifier", - "start": 15323, - "end": 15332, + "start": 15358, + "end": 15367, "loc": { "start": { "line": 395, @@ -6872,8 +6872,8 @@ }, "right": { "type": "BooleanLiteral", - "start": 15335, - "end": 15339, + "start": 15370, + "end": 15374, "loc": { "start": { "line": 395, @@ -6890,8 +6890,8 @@ }, { "type": "ExpressionStatement", - "start": 15349, - "end": 15394, + "start": 15384, + "end": 15429, "loc": { "start": { "line": 396, @@ -6904,8 +6904,8 @@ }, "expression": { "type": "CallExpression", - "start": 15349, - "end": 15393, + "start": 15384, + "end": 15428, "loc": { "start": { "line": 396, @@ -6918,8 +6918,8 @@ }, "callee": { "type": "MemberExpression", - "start": 15349, - "end": 15358, + "start": 15384, + "end": 15393, "loc": { "start": { "line": 396, @@ -6932,8 +6932,8 @@ }, "object": { "type": "ThisExpression", - "start": 15349, - "end": 15353, + "start": 15384, + "end": 15388, "loc": { "start": { "line": 396, @@ -6947,8 +6947,8 @@ }, "property": { "type": "Identifier", - "start": 15354, - "end": 15358, + "start": 15389, + "end": 15393, "loc": { "start": { "line": 396, @@ -6967,8 +6967,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 15359, - "end": 15379, + "start": 15394, + "end": 15414, "loc": { "start": { "line": 396, @@ -6987,8 +6987,8 @@ }, { "type": "Identifier", - "start": 15381, - "end": 15392, + "start": 15416, + "end": 15427, "loc": { "start": { "line": 396, @@ -7007,8 +7007,8 @@ }, { "type": "ReturnStatement", - "start": 15403, - "end": 15422, + "start": 15438, + "end": 15457, "loc": { "start": { "line": 397, @@ -7021,8 +7021,8 @@ }, "argument": { "type": "Identifier", - "start": 15410, - "end": 15421, + "start": 15445, + "end": 15456, "loc": { "start": { "line": 397, @@ -7045,8 +7045,8 @@ { "type": "CommentBlock", "value": "*\n * Creates an {@link AngleMeasurement}.\n *\n * The AngleMeasurement is then registered by {@link AngleMeasurement#id} in {@link AngleMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link AngleMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link AngleMeasurement#id}. The AngleMeasurement will be registered by this in {@link AngleMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.corner.worldPos Corner World-space 3D position.\n * @param {Entity} params.corner.entity Corner Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link AngleMeasurement}.\n * @returns {AngleMeasurement} The new {@link AngleMeasurement}.\n ", - "start": 12807, - "end": 13931, + "start": 12842, + "end": 13966, "loc": { "start": { "line": 340, @@ -7063,8 +7063,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys a {@link AngleMeasurement}.\n *\n * @param {String} id ID of AngleMeasurement to destroy.\n ", - "start": 15434, - "end": 15557, + "start": 15469, + "end": 15592, "loc": { "start": { "line": 400, @@ -7080,8 +7080,8 @@ }, { "type": "ClassMethod", - "start": 15562, - "end": 15848, + "start": 15597, + "end": 15883, "loc": { "start": { "line": 405, @@ -7096,8 +7096,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 15562, - "end": 15580, + "start": 15597, + "end": 15615, "loc": { "start": { "line": 405, @@ -7120,8 +7120,8 @@ "params": [ { "type": "Identifier", - "start": 15581, - "end": 15583, + "start": 15616, + "end": 15618, "loc": { "start": { "line": 405, @@ -7138,8 +7138,8 @@ ], "body": { "type": "BlockStatement", - "start": 15585, - "end": 15848, + "start": 15620, + "end": 15883, "loc": { "start": { "line": 405, @@ -7153,8 +7153,8 @@ "body": [ { "type": "VariableDeclaration", - "start": 15595, - "end": 15638, + "start": 15630, + "end": 15673, "loc": { "start": { "line": 406, @@ -7168,8 +7168,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 15601, - "end": 15637, + "start": 15636, + "end": 15672, "loc": { "start": { "line": 406, @@ -7182,8 +7182,8 @@ }, "id": { "type": "Identifier", - "start": 15601, - "end": 15612, + "start": 15636, + "end": 15647, "loc": { "start": { "line": 406, @@ -7199,8 +7199,8 @@ }, "init": { "type": "MemberExpression", - "start": 15615, - "end": 15637, + "start": 15650, + "end": 15672, "loc": { "start": { "line": 406, @@ -7213,8 +7213,8 @@ }, "object": { "type": "MemberExpression", - "start": 15615, - "end": 15633, + "start": 15650, + "end": 15668, "loc": { "start": { "line": 406, @@ -7227,8 +7227,8 @@ }, "object": { "type": "ThisExpression", - "start": 15615, - "end": 15619, + "start": 15650, + "end": 15654, "loc": { "start": { "line": 406, @@ -7242,8 +7242,8 @@ }, "property": { "type": "Identifier", - "start": 15620, - "end": 15633, + "start": 15655, + "end": 15668, "loc": { "start": { "line": 406, @@ -7261,8 +7261,8 @@ }, "property": { "type": "Identifier", - "start": 15634, - "end": 15636, + "start": 15669, + "end": 15671, "loc": { "start": { "line": 406, @@ -7284,8 +7284,8 @@ }, { "type": "IfStatement", - "start": 15647, - "end": 15755, + "start": 15682, + "end": 15790, "loc": { "start": { "line": 407, @@ -7298,8 +7298,8 @@ }, "test": { "type": "UnaryExpression", - "start": 15651, - "end": 15663, + "start": 15686, + "end": 15698, "loc": { "start": { "line": 407, @@ -7314,8 +7314,8 @@ "prefix": true, "argument": { "type": "Identifier", - "start": 15652, - "end": 15663, + "start": 15687, + "end": 15698, "loc": { "start": { "line": 407, @@ -7335,8 +7335,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 15665, - "end": 15755, + "start": 15700, + "end": 15790, "loc": { "start": { "line": 407, @@ -7350,8 +7350,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 15679, - "end": 15725, + "start": 15714, + "end": 15760, "loc": { "start": { "line": 408, @@ -7364,8 +7364,8 @@ }, "expression": { "type": "CallExpression", - "start": 15679, - "end": 15724, + "start": 15714, + "end": 15759, "loc": { "start": { "line": 408, @@ -7378,8 +7378,8 @@ }, "callee": { "type": "MemberExpression", - "start": 15679, - "end": 15687, + "start": 15714, + "end": 15722, "loc": { "start": { "line": 408, @@ -7392,8 +7392,8 @@ }, "object": { "type": "ThisExpression", - "start": 15679, - "end": 15683, + "start": 15714, + "end": 15718, "loc": { "start": { "line": 408, @@ -7407,8 +7407,8 @@ }, "property": { "type": "Identifier", - "start": 15684, - "end": 15687, + "start": 15719, + "end": 15722, "loc": { "start": { "line": 408, @@ -7427,8 +7427,8 @@ "arguments": [ { "type": "BinaryExpression", - "start": 15688, - "end": 15723, + "start": 15723, + "end": 15758, "loc": { "start": { "line": 408, @@ -7441,8 +7441,8 @@ }, "left": { "type": "StringLiteral", - "start": 15688, - "end": 15718, + "start": 15723, + "end": 15753, "loc": { "start": { "line": 408, @@ -7462,8 +7462,8 @@ "operator": "+", "right": { "type": "Identifier", - "start": 15721, - "end": 15723, + "start": 15756, + "end": 15758, "loc": { "start": { "line": 408, @@ -7483,8 +7483,8 @@ }, { "type": "ReturnStatement", - "start": 15738, - "end": 15745, + "start": 15773, + "end": 15780, "loc": { "start": { "line": 409, @@ -7504,8 +7504,8 @@ }, { "type": "ExpressionStatement", - "start": 15764, - "end": 15786, + "start": 15799, + "end": 15821, "loc": { "start": { "line": 411, @@ -7518,8 +7518,8 @@ }, "expression": { "type": "CallExpression", - "start": 15764, - "end": 15785, + "start": 15799, + "end": 15820, "loc": { "start": { "line": 411, @@ -7532,8 +7532,8 @@ }, "callee": { "type": "MemberExpression", - "start": 15764, - "end": 15783, + "start": 15799, + "end": 15818, "loc": { "start": { "line": 411, @@ -7546,8 +7546,8 @@ }, "object": { "type": "Identifier", - "start": 15764, - "end": 15775, + "start": 15799, + "end": 15810, "loc": { "start": { "line": 411, @@ -7563,8 +7563,8 @@ }, "property": { "type": "Identifier", - "start": 15776, - "end": 15783, + "start": 15811, + "end": 15818, "loc": { "start": { "line": 411, @@ -7585,8 +7585,8 @@ }, { "type": "ExpressionStatement", - "start": 15795, - "end": 15842, + "start": 15830, + "end": 15877, "loc": { "start": { "line": 412, @@ -7599,8 +7599,8 @@ }, "expression": { "type": "CallExpression", - "start": 15795, - "end": 15841, + "start": 15830, + "end": 15876, "loc": { "start": { "line": 412, @@ -7613,8 +7613,8 @@ }, "callee": { "type": "MemberExpression", - "start": 15795, - "end": 15804, + "start": 15830, + "end": 15839, "loc": { "start": { "line": 412, @@ -7627,8 +7627,8 @@ }, "object": { "type": "ThisExpression", - "start": 15795, - "end": 15799, + "start": 15830, + "end": 15834, "loc": { "start": { "line": 412, @@ -7642,8 +7642,8 @@ }, "property": { "type": "Identifier", - "start": 15800, - "end": 15804, + "start": 15835, + "end": 15839, "loc": { "start": { "line": 412, @@ -7662,8 +7662,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 15805, - "end": 15827, + "start": 15840, + "end": 15862, "loc": { "start": { "line": 412, @@ -7682,8 +7682,8 @@ }, { "type": "Identifier", - "start": 15829, - "end": 15840, + "start": 15864, + "end": 15875, "loc": { "start": { "line": 412, @@ -7708,8 +7708,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys a {@link AngleMeasurement}.\n *\n * @param {String} id ID of AngleMeasurement to destroy.\n ", - "start": 15434, - "end": 15557, + "start": 15469, + "end": 15592, "loc": { "start": { "line": 400, @@ -7726,8 +7726,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the angle label of each {@link AngleMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n ", - "start": 15854, - "end": 16019, + "start": 15889, + "end": 16054, "loc": { "start": { "line": 415, @@ -7743,8 +7743,8 @@ }, { "type": "ClassMethod", - "start": 16024, - "end": 16197, + "start": 16059, + "end": 16232, "loc": { "start": { "line": 420, @@ -7759,8 +7759,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 16024, - "end": 16038, + "start": 16059, + "end": 16073, "loc": { "start": { "line": 420, @@ -7783,8 +7783,8 @@ "params": [ { "type": "Identifier", - "start": 16039, - "end": 16050, + "start": 16074, + "end": 16085, "loc": { "start": { "line": 420, @@ -7801,8 +7801,8 @@ ], "body": { "type": "BlockStatement", - "start": 16052, - "end": 16197, + "start": 16087, + "end": 16232, "loc": { "start": { "line": 420, @@ -7816,8 +7816,8 @@ "body": [ { "type": "ForOfStatement", - "start": 16062, - "end": 16191, + "start": 16097, + "end": 16226, "loc": { "start": { "line": 421, @@ -7830,8 +7830,8 @@ }, "left": { "type": "VariableDeclaration", - "start": 16067, - "end": 16091, + "start": 16102, + "end": 16126, "loc": { "start": { "line": 421, @@ -7845,8 +7845,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 16073, - "end": 16091, + "start": 16108, + "end": 16126, "loc": { "start": { "line": 421, @@ -7859,8 +7859,8 @@ }, "id": { "type": "ArrayPattern", - "start": 16073, - "end": 16091, + "start": 16108, + "end": 16126, "loc": { "start": { "line": 421, @@ -7874,8 +7874,8 @@ "elements": [ { "type": "Identifier", - "start": 16074, - "end": 16077, + "start": 16109, + "end": 16112, "loc": { "start": { "line": 421, @@ -7891,8 +7891,8 @@ }, { "type": "Identifier", - "start": 16079, - "end": 16090, + "start": 16114, + "end": 16125, "loc": { "start": { "line": 421, @@ -7915,8 +7915,8 @@ }, "right": { "type": "CallExpression", - "start": 16095, - "end": 16128, + "start": 16130, + "end": 16163, "loc": { "start": { "line": 421, @@ -7929,8 +7929,8 @@ }, "callee": { "type": "MemberExpression", - "start": 16095, - "end": 16109, + "start": 16130, + "end": 16144, "loc": { "start": { "line": 421, @@ -7943,8 +7943,8 @@ }, "object": { "type": "Identifier", - "start": 16095, - "end": 16101, + "start": 16130, + "end": 16136, "loc": { "start": { "line": 421, @@ -7960,8 +7960,8 @@ }, "property": { "type": "Identifier", - "start": 16102, - "end": 16109, + "start": 16137, + "end": 16144, "loc": { "start": { "line": 421, @@ -7980,8 +7980,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 16110, - "end": 16127, + "start": 16145, + "end": 16162, "loc": { "start": { "line": 421, @@ -7994,8 +7994,8 @@ }, "object": { "type": "ThisExpression", - "start": 16110, - "end": 16114, + "start": 16145, + "end": 16149, "loc": { "start": { "line": 421, @@ -8009,8 +8009,8 @@ }, "property": { "type": "Identifier", - "start": 16115, - "end": 16127, + "start": 16150, + "end": 16162, "loc": { "start": { "line": 421, @@ -8030,8 +8030,8 @@ }, "body": { "type": "BlockStatement", - "start": 16130, - "end": 16191, + "start": 16165, + "end": 16226, "loc": { "start": { "line": 421, @@ -8045,8 +8045,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 16144, - "end": 16181, + "start": 16179, + "end": 16216, "loc": { "start": { "line": 422, @@ -8059,8 +8059,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 16144, - "end": 16180, + "start": 16179, + "end": 16215, "loc": { "start": { "line": 422, @@ -8074,8 +8074,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 16144, - "end": 16166, + "start": 16179, + "end": 16201, "loc": { "start": { "line": 422, @@ -8088,8 +8088,8 @@ }, "object": { "type": "Identifier", - "start": 16144, - "end": 16155, + "start": 16179, + "end": 16190, "loc": { "start": { "line": 422, @@ -8105,8 +8105,8 @@ }, "property": { "type": "Identifier", - "start": 16156, - "end": 16166, + "start": 16191, + "end": 16201, "loc": { "start": { "line": 422, @@ -8124,8 +8124,8 @@ }, "right": { "type": "Identifier", - "start": 16169, - "end": 16180, + "start": 16204, + "end": 16215, "loc": { "start": { "line": 422, @@ -8153,8 +8153,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the angle label of each {@link AngleMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n ", - "start": 15854, - "end": 16019, + "start": 15889, + "end": 16054, "loc": { "start": { "line": 415, @@ -8171,8 +8171,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys all {@link AngleMeasurement}s.\n ", - "start": 16203, - "end": 16261, + "start": 16238, + "end": 16296, "loc": { "start": { "line": 426, @@ -8188,8 +8188,8 @@ }, { "type": "ClassMethod", - "start": 16266, - "end": 16447, + "start": 16301, + "end": 16482, "loc": { "start": { "line": 429, @@ -8204,8 +8204,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 16266, - "end": 16271, + "start": 16301, + "end": 16306, "loc": { "start": { "line": 429, @@ -8228,8 +8228,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 16274, - "end": 16447, + "start": 16309, + "end": 16482, "loc": { "start": { "line": 429, @@ -8243,8 +8243,8 @@ "body": [ { "type": "VariableDeclaration", - "start": 16284, - "end": 16328, + "start": 16319, + "end": 16363, "loc": { "start": { "line": 430, @@ -8258,8 +8258,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 16290, - "end": 16327, + "start": 16325, + "end": 16362, "loc": { "start": { "line": 430, @@ -8272,8 +8272,8 @@ }, "id": { "type": "Identifier", - "start": 16290, - "end": 16293, + "start": 16325, + "end": 16328, "loc": { "start": { "line": 430, @@ -8289,8 +8289,8 @@ }, "init": { "type": "CallExpression", - "start": 16296, - "end": 16327, + "start": 16331, + "end": 16362, "loc": { "start": { "line": 430, @@ -8303,8 +8303,8 @@ }, "callee": { "type": "MemberExpression", - "start": 16296, - "end": 16307, + "start": 16331, + "end": 16342, "loc": { "start": { "line": 430, @@ -8317,8 +8317,8 @@ }, "object": { "type": "Identifier", - "start": 16296, - "end": 16302, + "start": 16331, + "end": 16337, "loc": { "start": { "line": 430, @@ -8334,8 +8334,8 @@ }, "property": { "type": "Identifier", - "start": 16303, - "end": 16307, + "start": 16338, + "end": 16342, "loc": { "start": { "line": 430, @@ -8354,8 +8354,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 16308, - "end": 16326, + "start": 16343, + "end": 16361, "loc": { "start": { "line": 430, @@ -8368,8 +8368,8 @@ }, "object": { "type": "ThisExpression", - "start": 16308, - "end": 16312, + "start": 16343, + "end": 16347, "loc": { "start": { "line": 430, @@ -8383,8 +8383,8 @@ }, "property": { "type": "Identifier", - "start": 16313, - "end": 16326, + "start": 16348, + "end": 16361, "loc": { "start": { "line": 430, @@ -8408,8 +8408,8 @@ }, { "type": "ForStatement", - "start": 16337, - "end": 16441, + "start": 16372, + "end": 16476, "loc": { "start": { "line": 431, @@ -8422,8 +8422,8 @@ }, "init": { "type": "VariableDeclaration", - "start": 16342, - "end": 16369, + "start": 16377, + "end": 16404, "loc": { "start": { "line": 431, @@ -8437,8 +8437,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 16346, - "end": 16351, + "start": 16381, + "end": 16386, "loc": { "start": { "line": 431, @@ -8451,8 +8451,8 @@ }, "id": { "type": "Identifier", - "start": 16346, - "end": 16347, + "start": 16381, + "end": 16382, "loc": { "start": { "line": 431, @@ -8468,8 +8468,8 @@ }, "init": { "type": "NumericLiteral", - "start": 16350, - "end": 16351, + "start": 16385, + "end": 16386, "loc": { "start": { "line": 431, @@ -8489,8 +8489,8 @@ }, { "type": "VariableDeclarator", - "start": 16353, - "end": 16369, + "start": 16388, + "end": 16404, "loc": { "start": { "line": 431, @@ -8503,8 +8503,8 @@ }, "id": { "type": "Identifier", - "start": 16353, - "end": 16356, + "start": 16388, + "end": 16391, "loc": { "start": { "line": 431, @@ -8520,8 +8520,8 @@ }, "init": { "type": "MemberExpression", - "start": 16359, - "end": 16369, + "start": 16394, + "end": 16404, "loc": { "start": { "line": 431, @@ -8534,8 +8534,8 @@ }, "object": { "type": "Identifier", - "start": 16359, - "end": 16362, + "start": 16394, + "end": 16397, "loc": { "start": { "line": 431, @@ -8551,8 +8551,8 @@ }, "property": { "type": "Identifier", - "start": 16363, - "end": 16369, + "start": 16398, + "end": 16404, "loc": { "start": { "line": 431, @@ -8574,8 +8574,8 @@ }, "test": { "type": "BinaryExpression", - "start": 16371, - "end": 16378, + "start": 16406, + "end": 16413, "loc": { "start": { "line": 431, @@ -8588,8 +8588,8 @@ }, "left": { "type": "Identifier", - "start": 16371, - "end": 16372, + "start": 16406, + "end": 16407, "loc": { "start": { "line": 431, @@ -8606,8 +8606,8 @@ "operator": "<", "right": { "type": "Identifier", - "start": 16375, - "end": 16378, + "start": 16410, + "end": 16413, "loc": { "start": { "line": 431, @@ -8624,8 +8624,8 @@ }, "update": { "type": "UpdateExpression", - "start": 16380, - "end": 16383, + "start": 16415, + "end": 16418, "loc": { "start": { "line": 431, @@ -8640,8 +8640,8 @@ "prefix": false, "argument": { "type": "Identifier", - "start": 16380, - "end": 16381, + "start": 16415, + "end": 16416, "loc": { "start": { "line": 431, @@ -8658,8 +8658,8 @@ }, "body": { "type": "BlockStatement", - "start": 16385, - "end": 16441, + "start": 16420, + "end": 16476, "loc": { "start": { "line": 431, @@ -8673,8 +8673,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 16399, - "end": 16431, + "start": 16434, + "end": 16466, "loc": { "start": { "line": 432, @@ -8687,8 +8687,8 @@ }, "expression": { "type": "CallExpression", - "start": 16399, - "end": 16430, + "start": 16434, + "end": 16465, "loc": { "start": { "line": 432, @@ -8701,8 +8701,8 @@ }, "callee": { "type": "MemberExpression", - "start": 16399, - "end": 16422, + "start": 16434, + "end": 16457, "loc": { "start": { "line": 432, @@ -8715,8 +8715,8 @@ }, "object": { "type": "ThisExpression", - "start": 16399, - "end": 16403, + "start": 16434, + "end": 16438, "loc": { "start": { "line": 432, @@ -8730,8 +8730,8 @@ }, "property": { "type": "Identifier", - "start": 16404, - "end": 16422, + "start": 16439, + "end": 16457, "loc": { "start": { "line": 432, @@ -8750,8 +8750,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 16423, - "end": 16429, + "start": 16458, + "end": 16464, "loc": { "start": { "line": 432, @@ -8764,8 +8764,8 @@ }, "object": { "type": "Identifier", - "start": 16423, - "end": 16426, + "start": 16458, + "end": 16461, "loc": { "start": { "line": 432, @@ -8781,8 +8781,8 @@ }, "property": { "type": "Identifier", - "start": 16427, - "end": 16428, + "start": 16462, + "end": 16463, "loc": { "start": { "line": 432, @@ -8813,8 +8813,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys all {@link AngleMeasurement}s.\n ", - "start": 16203, - "end": 16261, + "start": 16238, + "end": 16296, "loc": { "start": { "line": 426, @@ -8831,8 +8831,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys this AngleMeasurementsPlugin.\n *\n * Destroys all {@link AngleMeasurement}s first.\n ", - "start": 16453, - "end": 16570, + "start": 16488, + "end": 16605, "loc": { "start": { "line": 436, @@ -8848,8 +8848,8 @@ }, { "type": "ClassMethod", - "start": 16575, - "end": 16639, + "start": 16610, + "end": 16674, "loc": { "start": { "line": 441, @@ -8864,8 +8864,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 16575, - "end": 16582, + "start": 16610, + "end": 16617, "loc": { "start": { "line": 441, @@ -8888,8 +8888,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 16585, - "end": 16639, + "start": 16620, + "end": 16674, "loc": { "start": { "line": 441, @@ -8903,8 +8903,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 16595, - "end": 16608, + "start": 16630, + "end": 16643, "loc": { "start": { "line": 442, @@ -8917,8 +8917,8 @@ }, "expression": { "type": "CallExpression", - "start": 16595, - "end": 16607, + "start": 16630, + "end": 16642, "loc": { "start": { "line": 442, @@ -8931,8 +8931,8 @@ }, "callee": { "type": "MemberExpression", - "start": 16595, - "end": 16605, + "start": 16630, + "end": 16640, "loc": { "start": { "line": 442, @@ -8945,8 +8945,8 @@ }, "object": { "type": "ThisExpression", - "start": 16595, - "end": 16599, + "start": 16630, + "end": 16634, "loc": { "start": { "line": 442, @@ -8960,8 +8960,8 @@ }, "property": { "type": "Identifier", - "start": 16600, - "end": 16605, + "start": 16635, + "end": 16640, "loc": { "start": { "line": 442, @@ -8982,8 +8982,8 @@ }, { "type": "ExpressionStatement", - "start": 16617, - "end": 16633, + "start": 16652, + "end": 16668, "loc": { "start": { "line": 443, @@ -8996,8 +8996,8 @@ }, "expression": { "type": "CallExpression", - "start": 16617, - "end": 16632, + "start": 16652, + "end": 16667, "loc": { "start": { "line": 443, @@ -9010,8 +9010,8 @@ }, "callee": { "type": "MemberExpression", - "start": 16617, - "end": 16630, + "start": 16652, + "end": 16665, "loc": { "start": { "line": 443, @@ -9024,8 +9024,8 @@ }, "object": { "type": "Super", - "start": 16617, - "end": 16622, + "start": 16652, + "end": 16657, "loc": { "start": { "line": 443, @@ -9039,8 +9039,8 @@ }, "property": { "type": "Identifier", - "start": 16623, - "end": 16630, + "start": 16658, + "end": 16665, "loc": { "start": { "line": 443, @@ -9066,8 +9066,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys this AngleMeasurementsPlugin.\n *\n * Destroys all {@link AngleMeasurement}s first.\n ", - "start": 16453, - "end": 16570, + "start": 16488, + "end": 16605, "loc": { "start": { "line": 436, @@ -9086,9 +9086,9 @@ "leadingComments": [ { "type": "CommentBlock", - "value": "*\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n ", + "value": "*\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n ", "start": 186, - "end": 9887, + "end": 9922, "loc": { "start": { "line": 5, @@ -9106,9 +9106,9 @@ "leadingComments": [ { "type": "CommentBlock", - "value": "*\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n ", + "value": "*\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n ", "start": 186, - "end": 9887, + "end": 9922, "loc": { "start": { "line": 5, @@ -9128,9 +9128,9 @@ "comments": [ { "type": "CommentBlock", - "value": "*\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n ", + "value": "*\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n ", "start": 186, - "end": 9887, + "end": 9922, "loc": { "start": { "line": 5, @@ -9145,8 +9145,8 @@ { "type": "CommentBlock", "value": "*\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"AngleMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {string} [cfg.defaultColor=null] The default color of the dots, wire and label.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of {@link AngleMeasurement.labelsVisible}.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n ", - "start": 9947, - "end": 10809, + "start": 9982, + "end": 10844, "loc": { "start": { "line": 249, @@ -9161,8 +9161,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n ", - "start": 11986, - "end": 12098, + "start": 12021, + "end": 12133, "loc": { "start": { "line": 302, @@ -9177,8 +9177,8 @@ { "type": "CommentBlock", "value": "*\n * @private\n ", - "start": 12171, - "end": 12198, + "start": 12206, + "end": 12233, "loc": { "start": { "line": 311, @@ -9193,8 +9193,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the default {@link AngleMeasurementsMouseControl}.\n *\n * @type {AngleMeasurementsMouseControl}\n * @deprecated\n ", - "start": 12235, - "end": 12380, + "start": 12270, + "end": 12415, "loc": { "start": { "line": 318, @@ -9209,8 +9209,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the existing {@link AngleMeasurement}s, each mapped to its {@link AngleMeasurement#id}.\n *\n * @type {{String:AngleMeasurement}}\n ", - "start": 12576, - "end": 12735, + "start": 12611, + "end": 12770, "loc": { "start": { "line": 331, @@ -9225,8 +9225,8 @@ { "type": "CommentBlock", "value": "*\n * Creates an {@link AngleMeasurement}.\n *\n * The AngleMeasurement is then registered by {@link AngleMeasurement#id} in {@link AngleMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link AngleMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link AngleMeasurement#id}. The AngleMeasurement will be registered by this in {@link AngleMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.corner.worldPos Corner World-space 3D position.\n * @param {Entity} params.corner.entity Corner Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link AngleMeasurement}.\n * @returns {AngleMeasurement} The new {@link AngleMeasurement}.\n ", - "start": 12807, - "end": 13931, + "start": 12842, + "end": 13966, "loc": { "start": { "line": 340, @@ -9241,8 +9241,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys a {@link AngleMeasurement}.\n *\n * @param {String} id ID of AngleMeasurement to destroy.\n ", - "start": 15434, - "end": 15557, + "start": 15469, + "end": 15592, "loc": { "start": { "line": 400, @@ -9257,8 +9257,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the angle label of each {@link AngleMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n ", - "start": 15854, - "end": 16019, + "start": 15889, + "end": 16054, "loc": { "start": { "line": 415, @@ -9273,8 +9273,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys all {@link AngleMeasurement}s.\n ", - "start": 16203, - "end": 16261, + "start": 16238, + "end": 16296, "loc": { "start": { "line": 426, @@ -9289,8 +9289,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys this AngleMeasurementsPlugin.\n *\n * Destroys all {@link AngleMeasurement}s first.\n ", - "start": 16453, - "end": 16570, + "start": 16488, + "end": 16605, "loc": { "start": { "line": 436, @@ -9855,9 +9855,9 @@ }, { "type": "CommentBlock", - "value": "*\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n ", + "value": "*\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n ", "start": 186, - "end": 9887, + "end": 9922, "loc": { "start": { "line": 5, @@ -9884,8 +9884,8 @@ "updateContext": null }, "value": "export", - "start": 9888, - "end": 9894, + "start": 9923, + "end": 9929, "loc": { "start": { "line": 247, @@ -9912,8 +9912,8 @@ "updateContext": null }, "value": "class", - "start": 9895, - "end": 9900, + "start": 9930, + "end": 9935, "loc": { "start": { "line": 247, @@ -9938,8 +9938,8 @@ "binop": null }, "value": "AngleMeasurementsPlugin", - "start": 9901, - "end": 9924, + "start": 9936, + "end": 9959, "loc": { "start": { "line": 247, @@ -9966,8 +9966,8 @@ "updateContext": null }, "value": "extends", - "start": 9925, - "end": 9932, + "start": 9960, + "end": 9967, "loc": { "start": { "line": 247, @@ -9992,8 +9992,8 @@ "binop": null }, "value": "Plugin", - "start": 9933, - "end": 9939, + "start": 9968, + "end": 9974, "loc": { "start": { "line": 247, @@ -10017,8 +10017,8 @@ "postfix": false, "binop": null }, - "start": 9940, - "end": 9941, + "start": 9975, + "end": 9976, "loc": { "start": { "line": 247, @@ -10033,8 +10033,8 @@ { "type": "CommentBlock", "value": "*\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"AngleMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {string} [cfg.defaultColor=null] The default color of the dots, wire and label.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of {@link AngleMeasurement.labelsVisible}.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n ", - "start": 9947, - "end": 10809, + "start": 9982, + "end": 10844, "loc": { "start": { "line": 249, @@ -10059,8 +10059,8 @@ "binop": null }, "value": "constructor", - "start": 10814, - "end": 10825, + "start": 10849, + "end": 10860, "loc": { "start": { "line": 260, @@ -10084,8 +10084,8 @@ "postfix": false, "binop": null }, - "start": 10825, - "end": 10826, + "start": 10860, + "end": 10861, "loc": { "start": { "line": 260, @@ -10110,8 +10110,8 @@ "binop": null }, "value": "viewer", - "start": 10826, - "end": 10832, + "start": 10861, + "end": 10867, "loc": { "start": { "line": 260, @@ -10136,8 +10136,8 @@ "binop": null, "updateContext": null }, - "start": 10832, - "end": 10833, + "start": 10867, + "end": 10868, "loc": { "start": { "line": 260, @@ -10162,8 +10162,8 @@ "binop": null }, "value": "cfg", - "start": 10834, - "end": 10837, + "start": 10869, + "end": 10872, "loc": { "start": { "line": 260, @@ -10189,8 +10189,8 @@ "updateContext": null }, "value": "=", - "start": 10838, - "end": 10839, + "start": 10873, + "end": 10874, "loc": { "start": { "line": 260, @@ -10214,8 +10214,8 @@ "postfix": false, "binop": null }, - "start": 10840, - "end": 10841, + "start": 10875, + "end": 10876, "loc": { "start": { "line": 260, @@ -10239,8 +10239,8 @@ "postfix": false, "binop": null }, - "start": 10841, - "end": 10842, + "start": 10876, + "end": 10877, "loc": { "start": { "line": 260, @@ -10264,8 +10264,8 @@ "postfix": false, "binop": null }, - "start": 10842, - "end": 10843, + "start": 10877, + "end": 10878, "loc": { "start": { "line": 260, @@ -10289,8 +10289,8 @@ "postfix": false, "binop": null }, - "start": 10844, - "end": 10845, + "start": 10879, + "end": 10880, "loc": { "start": { "line": 260, @@ -10317,8 +10317,8 @@ "updateContext": null }, "value": "super", - "start": 10855, - "end": 10860, + "start": 10890, + "end": 10895, "loc": { "start": { "line": 262, @@ -10342,8 +10342,8 @@ "postfix": false, "binop": null }, - "start": 10860, - "end": 10861, + "start": 10895, + "end": 10896, "loc": { "start": { "line": 262, @@ -10369,8 +10369,8 @@ "updateContext": null }, "value": "AngleMeasurements", - "start": 10861, - "end": 10880, + "start": 10896, + "end": 10915, "loc": { "start": { "line": 262, @@ -10395,8 +10395,8 @@ "binop": null, "updateContext": null }, - "start": 10880, - "end": 10881, + "start": 10915, + "end": 10916, "loc": { "start": { "line": 262, @@ -10421,8 +10421,8 @@ "binop": null }, "value": "viewer", - "start": 10882, - "end": 10888, + "start": 10917, + "end": 10923, "loc": { "start": { "line": 262, @@ -10446,8 +10446,8 @@ "postfix": false, "binop": null }, - "start": 10888, - "end": 10889, + "start": 10923, + "end": 10924, "loc": { "start": { "line": 262, @@ -10472,8 +10472,8 @@ "binop": null, "updateContext": null }, - "start": 10889, - "end": 10890, + "start": 10924, + "end": 10925, "loc": { "start": { "line": 262, @@ -10500,8 +10500,8 @@ "updateContext": null }, "value": "this", - "start": 10900, - "end": 10904, + "start": 10935, + "end": 10939, "loc": { "start": { "line": 264, @@ -10526,8 +10526,8 @@ "binop": null, "updateContext": null }, - "start": 10904, - "end": 10905, + "start": 10939, + "end": 10940, "loc": { "start": { "line": 264, @@ -10552,8 +10552,8 @@ "binop": null }, "value": "_container", - "start": 10905, - "end": 10915, + "start": 10940, + "end": 10950, "loc": { "start": { "line": 264, @@ -10579,8 +10579,8 @@ "updateContext": null }, "value": "=", - "start": 10916, - "end": 10917, + "start": 10951, + "end": 10952, "loc": { "start": { "line": 264, @@ -10605,8 +10605,8 @@ "binop": null }, "value": "cfg", - "start": 10918, - "end": 10921, + "start": 10953, + "end": 10956, "loc": { "start": { "line": 264, @@ -10631,8 +10631,8 @@ "binop": null, "updateContext": null }, - "start": 10921, - "end": 10922, + "start": 10956, + "end": 10957, "loc": { "start": { "line": 264, @@ -10657,8 +10657,8 @@ "binop": null }, "value": "container", - "start": 10922, - "end": 10931, + "start": 10957, + "end": 10966, "loc": { "start": { "line": 264, @@ -10684,8 +10684,8 @@ "updateContext": null }, "value": "||", - "start": 10932, - "end": 10934, + "start": 10967, + "end": 10969, "loc": { "start": { "line": 264, @@ -10710,8 +10710,8 @@ "binop": null }, "value": "document", - "start": 10935, - "end": 10943, + "start": 10970, + "end": 10978, "loc": { "start": { "line": 264, @@ -10736,8 +10736,8 @@ "binop": null, "updateContext": null }, - "start": 10943, - "end": 10944, + "start": 10978, + "end": 10979, "loc": { "start": { "line": 264, @@ -10762,8 +10762,8 @@ "binop": null }, "value": "body", - "start": 10944, - "end": 10948, + "start": 10979, + "end": 10983, "loc": { "start": { "line": 264, @@ -10788,8 +10788,8 @@ "binop": null, "updateContext": null }, - "start": 10948, - "end": 10949, + "start": 10983, + "end": 10984, "loc": { "start": { "line": 264, @@ -10816,8 +10816,8 @@ "updateContext": null }, "value": "this", - "start": 10959, - "end": 10963, + "start": 10994, + "end": 10998, "loc": { "start": { "line": 266, @@ -10842,8 +10842,8 @@ "binop": null, "updateContext": null }, - "start": 10963, - "end": 10964, + "start": 10998, + "end": 10999, "loc": { "start": { "line": 266, @@ -10868,8 +10868,8 @@ "binop": null }, "value": "_defaultControl", - "start": 10964, - "end": 10979, + "start": 10999, + "end": 11014, "loc": { "start": { "line": 266, @@ -10895,8 +10895,8 @@ "updateContext": null }, "value": "=", - "start": 10980, - "end": 10981, + "start": 11015, + "end": 11016, "loc": { "start": { "line": 266, @@ -10923,8 +10923,8 @@ "updateContext": null }, "value": "null", - "start": 10982, - "end": 10986, + "start": 11017, + "end": 11021, "loc": { "start": { "line": 266, @@ -10949,8 +10949,8 @@ "binop": null, "updateContext": null }, - "start": 10986, - "end": 10987, + "start": 11021, + "end": 11022, "loc": { "start": { "line": 266, @@ -10977,8 +10977,8 @@ "updateContext": null }, "value": "this", - "start": 10997, - "end": 11001, + "start": 11032, + "end": 11036, "loc": { "start": { "line": 268, @@ -11003,8 +11003,8 @@ "binop": null, "updateContext": null }, - "start": 11001, - "end": 11002, + "start": 11036, + "end": 11037, "loc": { "start": { "line": 268, @@ -11029,8 +11029,8 @@ "binop": null }, "value": "_measurements", - "start": 11002, - "end": 11015, + "start": 11037, + "end": 11050, "loc": { "start": { "line": 268, @@ -11056,8 +11056,8 @@ "updateContext": null }, "value": "=", - "start": 11016, - "end": 11017, + "start": 11051, + "end": 11052, "loc": { "start": { "line": 268, @@ -11081,8 +11081,8 @@ "postfix": false, "binop": null }, - "start": 11018, - "end": 11019, + "start": 11053, + "end": 11054, "loc": { "start": { "line": 268, @@ -11106,8 +11106,8 @@ "postfix": false, "binop": null }, - "start": 11019, - "end": 11020, + "start": 11054, + "end": 11055, "loc": { "start": { "line": 268, @@ -11132,8 +11132,8 @@ "binop": null, "updateContext": null }, - "start": 11020, - "end": 11021, + "start": 11055, + "end": 11056, "loc": { "start": { "line": 268, @@ -11160,8 +11160,8 @@ "updateContext": null }, "value": "this", - "start": 11031, - "end": 11035, + "start": 11066, + "end": 11070, "loc": { "start": { "line": 270, @@ -11186,8 +11186,8 @@ "binop": null, "updateContext": null }, - "start": 11035, - "end": 11036, + "start": 11070, + "end": 11071, "loc": { "start": { "line": 270, @@ -11212,8 +11212,8 @@ "binop": null }, "value": "defaultColor", - "start": 11036, - "end": 11048, + "start": 11071, + "end": 11083, "loc": { "start": { "line": 270, @@ -11239,8 +11239,8 @@ "updateContext": null }, "value": "=", - "start": 11049, - "end": 11050, + "start": 11084, + "end": 11085, "loc": { "start": { "line": 270, @@ -11265,8 +11265,8 @@ "binop": null }, "value": "cfg", - "start": 11051, - "end": 11054, + "start": 11086, + "end": 11089, "loc": { "start": { "line": 270, @@ -11291,8 +11291,8 @@ "binop": null, "updateContext": null }, - "start": 11054, - "end": 11055, + "start": 11089, + "end": 11090, "loc": { "start": { "line": 270, @@ -11317,8 +11317,8 @@ "binop": null }, "value": "defaultColor", - "start": 11055, - "end": 11067, + "start": 11090, + "end": 11102, "loc": { "start": { "line": 270, @@ -11344,8 +11344,8 @@ "updateContext": null }, "value": "!==", - "start": 11068, - "end": 11071, + "start": 11103, + "end": 11106, "loc": { "start": { "line": 270, @@ -11370,8 +11370,8 @@ "binop": null }, "value": "undefined", - "start": 11072, - "end": 11081, + "start": 11107, + "end": 11116, "loc": { "start": { "line": 270, @@ -11396,8 +11396,8 @@ "binop": null, "updateContext": null }, - "start": 11082, - "end": 11083, + "start": 11117, + "end": 11118, "loc": { "start": { "line": 270, @@ -11422,8 +11422,8 @@ "binop": null }, "value": "cfg", - "start": 11084, - "end": 11087, + "start": 11119, + "end": 11122, "loc": { "start": { "line": 270, @@ -11448,8 +11448,8 @@ "binop": null, "updateContext": null }, - "start": 11087, - "end": 11088, + "start": 11122, + "end": 11123, "loc": { "start": { "line": 270, @@ -11474,8 +11474,8 @@ "binop": null }, "value": "defaultColor", - "start": 11088, - "end": 11100, + "start": 11123, + "end": 11135, "loc": { "start": { "line": 270, @@ -11500,8 +11500,8 @@ "binop": null, "updateContext": null }, - "start": 11101, - "end": 11102, + "start": 11136, + "end": 11137, "loc": { "start": { "line": 270, @@ -11527,8 +11527,8 @@ "updateContext": null }, "value": "#00BBFF", - "start": 11103, - "end": 11112, + "start": 11138, + "end": 11147, "loc": { "start": { "line": 270, @@ -11553,8 +11553,8 @@ "binop": null, "updateContext": null }, - "start": 11112, - "end": 11113, + "start": 11147, + "end": 11148, "loc": { "start": { "line": 270, @@ -11581,8 +11581,8 @@ "updateContext": null }, "value": "this", - "start": 11122, - "end": 11126, + "start": 11157, + "end": 11161, "loc": { "start": { "line": 271, @@ -11607,8 +11607,8 @@ "binop": null, "updateContext": null }, - "start": 11126, - "end": 11127, + "start": 11161, + "end": 11162, "loc": { "start": { "line": 271, @@ -11633,8 +11633,8 @@ "binop": null }, "value": "defaultLabelsVisible", - "start": 11127, - "end": 11147, + "start": 11162, + "end": 11182, "loc": { "start": { "line": 271, @@ -11660,8 +11660,8 @@ "updateContext": null }, "value": "=", - "start": 11148, - "end": 11149, + "start": 11183, + "end": 11184, "loc": { "start": { "line": 271, @@ -11686,8 +11686,8 @@ "binop": null }, "value": "cfg", - "start": 11150, - "end": 11153, + "start": 11185, + "end": 11188, "loc": { "start": { "line": 271, @@ -11712,8 +11712,8 @@ "binop": null, "updateContext": null }, - "start": 11153, - "end": 11154, + "start": 11188, + "end": 11189, "loc": { "start": { "line": 271, @@ -11738,8 +11738,8 @@ "binop": null }, "value": "defaultLabelsVisible", - "start": 11154, - "end": 11174, + "start": 11189, + "end": 11209, "loc": { "start": { "line": 271, @@ -11765,8 +11765,8 @@ "updateContext": null }, "value": "!==", - "start": 11175, - "end": 11178, + "start": 11210, + "end": 11213, "loc": { "start": { "line": 271, @@ -11793,8 +11793,8 @@ "updateContext": null }, "value": "false", - "start": 11179, - "end": 11184, + "start": 11214, + "end": 11219, "loc": { "start": { "line": 271, @@ -11819,8 +11819,8 @@ "binop": null, "updateContext": null }, - "start": 11184, - "end": 11185, + "start": 11219, + "end": 11220, "loc": { "start": { "line": 271, @@ -11847,8 +11847,8 @@ "updateContext": null }, "value": "this", - "start": 11194, - "end": 11198, + "start": 11229, + "end": 11233, "loc": { "start": { "line": 272, @@ -11873,8 +11873,8 @@ "binop": null, "updateContext": null }, - "start": 11198, - "end": 11199, + "start": 11233, + "end": 11234, "loc": { "start": { "line": 272, @@ -11899,8 +11899,8 @@ "binop": null }, "value": "zIndex", - "start": 11199, - "end": 11205, + "start": 11234, + "end": 11240, "loc": { "start": { "line": 272, @@ -11926,8 +11926,8 @@ "updateContext": null }, "value": "=", - "start": 11206, - "end": 11207, + "start": 11241, + "end": 11242, "loc": { "start": { "line": 272, @@ -11952,8 +11952,8 @@ "binop": null }, "value": "cfg", - "start": 11208, - "end": 11211, + "start": 11243, + "end": 11246, "loc": { "start": { "line": 272, @@ -11978,8 +11978,8 @@ "binop": null, "updateContext": null }, - "start": 11211, - "end": 11212, + "start": 11246, + "end": 11247, "loc": { "start": { "line": 272, @@ -12004,8 +12004,8 @@ "binop": null }, "value": "zIndex", - "start": 11212, - "end": 11218, + "start": 11247, + "end": 11253, "loc": { "start": { "line": 272, @@ -12031,8 +12031,8 @@ "updateContext": null }, "value": "||", - "start": 11219, - "end": 11221, + "start": 11254, + "end": 11256, "loc": { "start": { "line": 272, @@ -12058,8 +12058,8 @@ "updateContext": null }, "value": 10000, - "start": 11222, - "end": 11227, + "start": 11257, + "end": 11262, "loc": { "start": { "line": 272, @@ -12084,8 +12084,8 @@ "binop": null, "updateContext": null }, - "start": 11227, - "end": 11228, + "start": 11262, + "end": 11263, "loc": { "start": { "line": 272, @@ -12112,8 +12112,8 @@ "updateContext": null }, "value": "this", - "start": 11238, - "end": 11242, + "start": 11273, + "end": 11277, "loc": { "start": { "line": 274, @@ -12138,8 +12138,8 @@ "binop": null, "updateContext": null }, - "start": 11242, - "end": 11243, + "start": 11277, + "end": 11278, "loc": { "start": { "line": 274, @@ -12164,8 +12164,8 @@ "binop": null }, "value": "_onMouseOver", - "start": 11243, - "end": 11255, + "start": 11278, + "end": 11290, "loc": { "start": { "line": 274, @@ -12191,8 +12191,8 @@ "updateContext": null }, "value": "=", - "start": 11256, - "end": 11257, + "start": 11291, + "end": 11292, "loc": { "start": { "line": 274, @@ -12216,8 +12216,8 @@ "postfix": false, "binop": null }, - "start": 11258, - "end": 11259, + "start": 11293, + "end": 11294, "loc": { "start": { "line": 274, @@ -12242,8 +12242,8 @@ "binop": null }, "value": "event", - "start": 11259, - "end": 11264, + "start": 11294, + "end": 11299, "loc": { "start": { "line": 274, @@ -12268,8 +12268,8 @@ "binop": null, "updateContext": null }, - "start": 11264, - "end": 11265, + "start": 11299, + "end": 11300, "loc": { "start": { "line": 274, @@ -12294,8 +12294,8 @@ "binop": null }, "value": "measurement", - "start": 11266, - "end": 11277, + "start": 11301, + "end": 11312, "loc": { "start": { "line": 274, @@ -12319,8 +12319,8 @@ "postfix": false, "binop": null }, - "start": 11277, - "end": 11278, + "start": 11312, + "end": 11313, "loc": { "start": { "line": 274, @@ -12345,8 +12345,8 @@ "binop": null, "updateContext": null }, - "start": 11279, - "end": 11281, + "start": 11314, + "end": 11316, "loc": { "start": { "line": 274, @@ -12370,8 +12370,8 @@ "postfix": false, "binop": null }, - "start": 11282, - "end": 11283, + "start": 11317, + "end": 11318, "loc": { "start": { "line": 274, @@ -12398,8 +12398,8 @@ "updateContext": null }, "value": "this", - "start": 11296, - "end": 11300, + "start": 11331, + "end": 11335, "loc": { "start": { "line": 275, @@ -12424,8 +12424,8 @@ "binop": null, "updateContext": null }, - "start": 11300, - "end": 11301, + "start": 11335, + "end": 11336, "loc": { "start": { "line": 275, @@ -12450,8 +12450,8 @@ "binop": null }, "value": "fire", - "start": 11301, - "end": 11305, + "start": 11336, + "end": 11340, "loc": { "start": { "line": 275, @@ -12475,8 +12475,8 @@ "postfix": false, "binop": null }, - "start": 11305, - "end": 11306, + "start": 11340, + "end": 11341, "loc": { "start": { "line": 275, @@ -12502,8 +12502,8 @@ "updateContext": null }, "value": "mouseOver", - "start": 11306, - "end": 11317, + "start": 11341, + "end": 11352, "loc": { "start": { "line": 275, @@ -12528,8 +12528,8 @@ "binop": null, "updateContext": null }, - "start": 11317, - "end": 11318, + "start": 11352, + "end": 11353, "loc": { "start": { "line": 275, @@ -12553,8 +12553,8 @@ "postfix": false, "binop": null }, - "start": 11319, - "end": 11320, + "start": 11354, + "end": 11355, "loc": { "start": { "line": 275, @@ -12579,8 +12579,8 @@ "binop": null }, "value": "plugin", - "start": 11337, - "end": 11343, + "start": 11372, + "end": 11378, "loc": { "start": { "line": 276, @@ -12605,8 +12605,8 @@ "binop": null, "updateContext": null }, - "start": 11343, - "end": 11344, + "start": 11378, + "end": 11379, "loc": { "start": { "line": 276, @@ -12633,8 +12633,8 @@ "updateContext": null }, "value": "this", - "start": 11345, - "end": 11349, + "start": 11380, + "end": 11384, "loc": { "start": { "line": 276, @@ -12659,8 +12659,8 @@ "binop": null, "updateContext": null }, - "start": 11349, - "end": 11350, + "start": 11384, + "end": 11385, "loc": { "start": { "line": 276, @@ -12685,8 +12685,8 @@ "binop": null }, "value": "angleMeasurement", - "start": 11367, - "end": 11383, + "start": 11402, + "end": 11418, "loc": { "start": { "line": 277, @@ -12711,8 +12711,8 @@ "binop": null, "updateContext": null }, - "start": 11383, - "end": 11384, + "start": 11418, + "end": 11419, "loc": { "start": { "line": 277, @@ -12737,8 +12737,8 @@ "binop": null }, "value": "measurement", - "start": 11385, - "end": 11396, + "start": 11420, + "end": 11431, "loc": { "start": { "line": 277, @@ -12763,8 +12763,8 @@ "binop": null, "updateContext": null }, - "start": 11396, - "end": 11397, + "start": 11431, + "end": 11432, "loc": { "start": { "line": 277, @@ -12789,8 +12789,8 @@ "binop": null }, "value": "measurement", - "start": 11414, - "end": 11425, + "start": 11449, + "end": 11460, "loc": { "start": { "line": 278, @@ -12815,8 +12815,8 @@ "binop": null, "updateContext": null }, - "start": 11425, - "end": 11426, + "start": 11460, + "end": 11461, "loc": { "start": { "line": 278, @@ -12841,8 +12841,8 @@ "binop": null }, "value": "event", - "start": 11443, - "end": 11448, + "start": 11478, + "end": 11483, "loc": { "start": { "line": 279, @@ -12866,8 +12866,8 @@ "postfix": false, "binop": null }, - "start": 11461, - "end": 11462, + "start": 11496, + "end": 11497, "loc": { "start": { "line": 280, @@ -12891,8 +12891,8 @@ "postfix": false, "binop": null }, - "start": 11462, - "end": 11463, + "start": 11497, + "end": 11498, "loc": { "start": { "line": 280, @@ -12917,8 +12917,8 @@ "binop": null, "updateContext": null }, - "start": 11463, - "end": 11464, + "start": 11498, + "end": 11499, "loc": { "start": { "line": 280, @@ -12942,8 +12942,8 @@ "postfix": false, "binop": null }, - "start": 11473, - "end": 11474, + "start": 11508, + "end": 11509, "loc": { "start": { "line": 281, @@ -12970,8 +12970,8 @@ "updateContext": null }, "value": "this", - "start": 11484, - "end": 11488, + "start": 11519, + "end": 11523, "loc": { "start": { "line": 283, @@ -12996,8 +12996,8 @@ "binop": null, "updateContext": null }, - "start": 11488, - "end": 11489, + "start": 11523, + "end": 11524, "loc": { "start": { "line": 283, @@ -13022,8 +13022,8 @@ "binop": null }, "value": "_onMouseLeave", - "start": 11489, - "end": 11502, + "start": 11524, + "end": 11537, "loc": { "start": { "line": 283, @@ -13049,8 +13049,8 @@ "updateContext": null }, "value": "=", - "start": 11503, - "end": 11504, + "start": 11538, + "end": 11539, "loc": { "start": { "line": 283, @@ -13074,8 +13074,8 @@ "postfix": false, "binop": null }, - "start": 11505, - "end": 11506, + "start": 11540, + "end": 11541, "loc": { "start": { "line": 283, @@ -13100,8 +13100,8 @@ "binop": null }, "value": "event", - "start": 11506, - "end": 11511, + "start": 11541, + "end": 11546, "loc": { "start": { "line": 283, @@ -13126,8 +13126,8 @@ "binop": null, "updateContext": null }, - "start": 11511, - "end": 11512, + "start": 11546, + "end": 11547, "loc": { "start": { "line": 283, @@ -13152,8 +13152,8 @@ "binop": null }, "value": "measurement", - "start": 11513, - "end": 11524, + "start": 11548, + "end": 11559, "loc": { "start": { "line": 283, @@ -13177,8 +13177,8 @@ "postfix": false, "binop": null }, - "start": 11524, - "end": 11525, + "start": 11559, + "end": 11560, "loc": { "start": { "line": 283, @@ -13203,8 +13203,8 @@ "binop": null, "updateContext": null }, - "start": 11526, - "end": 11528, + "start": 11561, + "end": 11563, "loc": { "start": { "line": 283, @@ -13228,8 +13228,8 @@ "postfix": false, "binop": null }, - "start": 11529, - "end": 11530, + "start": 11564, + "end": 11565, "loc": { "start": { "line": 283, @@ -13256,8 +13256,8 @@ "updateContext": null }, "value": "this", - "start": 11543, - "end": 11547, + "start": 11578, + "end": 11582, "loc": { "start": { "line": 284, @@ -13282,8 +13282,8 @@ "binop": null, "updateContext": null }, - "start": 11547, - "end": 11548, + "start": 11582, + "end": 11583, "loc": { "start": { "line": 284, @@ -13308,8 +13308,8 @@ "binop": null }, "value": "fire", - "start": 11548, - "end": 11552, + "start": 11583, + "end": 11587, "loc": { "start": { "line": 284, @@ -13333,8 +13333,8 @@ "postfix": false, "binop": null }, - "start": 11552, - "end": 11553, + "start": 11587, + "end": 11588, "loc": { "start": { "line": 284, @@ -13360,8 +13360,8 @@ "updateContext": null }, "value": "mouseLeave", - "start": 11553, - "end": 11565, + "start": 11588, + "end": 11600, "loc": { "start": { "line": 284, @@ -13386,8 +13386,8 @@ "binop": null, "updateContext": null }, - "start": 11565, - "end": 11566, + "start": 11600, + "end": 11601, "loc": { "start": { "line": 284, @@ -13411,8 +13411,8 @@ "postfix": false, "binop": null }, - "start": 11567, - "end": 11568, + "start": 11602, + "end": 11603, "loc": { "start": { "line": 284, @@ -13437,8 +13437,8 @@ "binop": null }, "value": "plugin", - "start": 11585, - "end": 11591, + "start": 11620, + "end": 11626, "loc": { "start": { "line": 285, @@ -13463,8 +13463,8 @@ "binop": null, "updateContext": null }, - "start": 11591, - "end": 11592, + "start": 11626, + "end": 11627, "loc": { "start": { "line": 285, @@ -13491,8 +13491,8 @@ "updateContext": null }, "value": "this", - "start": 11593, - "end": 11597, + "start": 11628, + "end": 11632, "loc": { "start": { "line": 285, @@ -13517,8 +13517,8 @@ "binop": null, "updateContext": null }, - "start": 11597, - "end": 11598, + "start": 11632, + "end": 11633, "loc": { "start": { "line": 285, @@ -13543,8 +13543,8 @@ "binop": null }, "value": "angleMeasurement", - "start": 11615, - "end": 11631, + "start": 11650, + "end": 11666, "loc": { "start": { "line": 286, @@ -13569,8 +13569,8 @@ "binop": null, "updateContext": null }, - "start": 11631, - "end": 11632, + "start": 11666, + "end": 11667, "loc": { "start": { "line": 286, @@ -13595,8 +13595,8 @@ "binop": null }, "value": "measurement", - "start": 11633, - "end": 11644, + "start": 11668, + "end": 11679, "loc": { "start": { "line": 286, @@ -13621,8 +13621,8 @@ "binop": null, "updateContext": null }, - "start": 11644, - "end": 11645, + "start": 11679, + "end": 11680, "loc": { "start": { "line": 286, @@ -13647,8 +13647,8 @@ "binop": null }, "value": "measurement", - "start": 11662, - "end": 11673, + "start": 11697, + "end": 11708, "loc": { "start": { "line": 287, @@ -13673,8 +13673,8 @@ "binop": null, "updateContext": null }, - "start": 11673, - "end": 11674, + "start": 11708, + "end": 11709, "loc": { "start": { "line": 287, @@ -13699,8 +13699,8 @@ "binop": null }, "value": "event", - "start": 11691, - "end": 11696, + "start": 11726, + "end": 11731, "loc": { "start": { "line": 288, @@ -13724,8 +13724,8 @@ "postfix": false, "binop": null }, - "start": 11709, - "end": 11710, + "start": 11744, + "end": 11745, "loc": { "start": { "line": 289, @@ -13749,8 +13749,8 @@ "postfix": false, "binop": null }, - "start": 11710, - "end": 11711, + "start": 11745, + "end": 11746, "loc": { "start": { "line": 289, @@ -13775,8 +13775,8 @@ "binop": null, "updateContext": null }, - "start": 11711, - "end": 11712, + "start": 11746, + "end": 11747, "loc": { "start": { "line": 289, @@ -13800,8 +13800,8 @@ "postfix": false, "binop": null }, - "start": 11721, - "end": 11722, + "start": 11756, + "end": 11757, "loc": { "start": { "line": 290, @@ -13826,8 +13826,8 @@ "binop": null, "updateContext": null }, - "start": 11722, - "end": 11723, + "start": 11757, + "end": 11758, "loc": { "start": { "line": 290, @@ -13854,8 +13854,8 @@ "updateContext": null }, "value": "this", - "start": 11733, - "end": 11737, + "start": 11768, + "end": 11772, "loc": { "start": { "line": 292, @@ -13880,8 +13880,8 @@ "binop": null, "updateContext": null }, - "start": 11737, - "end": 11738, + "start": 11772, + "end": 11773, "loc": { "start": { "line": 292, @@ -13906,8 +13906,8 @@ "binop": null }, "value": "_onContextMenu", - "start": 11738, - "end": 11752, + "start": 11773, + "end": 11787, "loc": { "start": { "line": 292, @@ -13933,8 +13933,8 @@ "updateContext": null }, "value": "=", - "start": 11753, - "end": 11754, + "start": 11788, + "end": 11789, "loc": { "start": { "line": 292, @@ -13958,8 +13958,8 @@ "postfix": false, "binop": null }, - "start": 11755, - "end": 11756, + "start": 11790, + "end": 11791, "loc": { "start": { "line": 292, @@ -13984,8 +13984,8 @@ "binop": null }, "value": "event", - "start": 11756, - "end": 11761, + "start": 11791, + "end": 11796, "loc": { "start": { "line": 292, @@ -14010,8 +14010,8 @@ "binop": null, "updateContext": null }, - "start": 11761, - "end": 11762, + "start": 11796, + "end": 11797, "loc": { "start": { "line": 292, @@ -14036,8 +14036,8 @@ "binop": null }, "value": "measurement", - "start": 11763, - "end": 11774, + "start": 11798, + "end": 11809, "loc": { "start": { "line": 292, @@ -14061,8 +14061,8 @@ "postfix": false, "binop": null }, - "start": 11774, - "end": 11775, + "start": 11809, + "end": 11810, "loc": { "start": { "line": 292, @@ -14087,8 +14087,8 @@ "binop": null, "updateContext": null }, - "start": 11776, - "end": 11778, + "start": 11811, + "end": 11813, "loc": { "start": { "line": 292, @@ -14112,8 +14112,8 @@ "postfix": false, "binop": null }, - "start": 11779, - "end": 11780, + "start": 11814, + "end": 11815, "loc": { "start": { "line": 292, @@ -14140,8 +14140,8 @@ "updateContext": null }, "value": "this", - "start": 11793, - "end": 11797, + "start": 11828, + "end": 11832, "loc": { "start": { "line": 293, @@ -14166,8 +14166,8 @@ "binop": null, "updateContext": null }, - "start": 11797, - "end": 11798, + "start": 11832, + "end": 11833, "loc": { "start": { "line": 293, @@ -14192,8 +14192,8 @@ "binop": null }, "value": "fire", - "start": 11798, - "end": 11802, + "start": 11833, + "end": 11837, "loc": { "start": { "line": 293, @@ -14217,8 +14217,8 @@ "postfix": false, "binop": null }, - "start": 11802, - "end": 11803, + "start": 11837, + "end": 11838, "loc": { "start": { "line": 293, @@ -14244,8 +14244,8 @@ "updateContext": null }, "value": "contextMenu", - "start": 11803, - "end": 11816, + "start": 11838, + "end": 11851, "loc": { "start": { "line": 293, @@ -14270,8 +14270,8 @@ "binop": null, "updateContext": null }, - "start": 11816, - "end": 11817, + "start": 11851, + "end": 11852, "loc": { "start": { "line": 293, @@ -14295,8 +14295,8 @@ "postfix": false, "binop": null }, - "start": 11818, - "end": 11819, + "start": 11853, + "end": 11854, "loc": { "start": { "line": 293, @@ -14321,8 +14321,8 @@ "binop": null }, "value": "plugin", - "start": 11836, - "end": 11842, + "start": 11871, + "end": 11877, "loc": { "start": { "line": 294, @@ -14347,8 +14347,8 @@ "binop": null, "updateContext": null }, - "start": 11842, - "end": 11843, + "start": 11877, + "end": 11878, "loc": { "start": { "line": 294, @@ -14375,8 +14375,8 @@ "updateContext": null }, "value": "this", - "start": 11844, - "end": 11848, + "start": 11879, + "end": 11883, "loc": { "start": { "line": 294, @@ -14401,8 +14401,8 @@ "binop": null, "updateContext": null }, - "start": 11848, - "end": 11849, + "start": 11883, + "end": 11884, "loc": { "start": { "line": 294, @@ -14427,8 +14427,8 @@ "binop": null }, "value": "angleMeasurement", - "start": 11866, - "end": 11882, + "start": 11901, + "end": 11917, "loc": { "start": { "line": 295, @@ -14453,8 +14453,8 @@ "binop": null, "updateContext": null }, - "start": 11882, - "end": 11883, + "start": 11917, + "end": 11918, "loc": { "start": { "line": 295, @@ -14479,8 +14479,8 @@ "binop": null }, "value": "measurement", - "start": 11884, - "end": 11895, + "start": 11919, + "end": 11930, "loc": { "start": { "line": 295, @@ -14505,8 +14505,8 @@ "binop": null, "updateContext": null }, - "start": 11895, - "end": 11896, + "start": 11930, + "end": 11931, "loc": { "start": { "line": 295, @@ -14531,8 +14531,8 @@ "binop": null }, "value": "measurement", - "start": 11913, - "end": 11924, + "start": 11948, + "end": 11959, "loc": { "start": { "line": 296, @@ -14557,8 +14557,8 @@ "binop": null, "updateContext": null }, - "start": 11924, - "end": 11925, + "start": 11959, + "end": 11960, "loc": { "start": { "line": 296, @@ -14583,8 +14583,8 @@ "binop": null }, "value": "event", - "start": 11942, - "end": 11947, + "start": 11977, + "end": 11982, "loc": { "start": { "line": 297, @@ -14608,8 +14608,8 @@ "postfix": false, "binop": null }, - "start": 11960, - "end": 11961, + "start": 11995, + "end": 11996, "loc": { "start": { "line": 298, @@ -14633,8 +14633,8 @@ "postfix": false, "binop": null }, - "start": 11961, - "end": 11962, + "start": 11996, + "end": 11997, "loc": { "start": { "line": 298, @@ -14659,8 +14659,8 @@ "binop": null, "updateContext": null }, - "start": 11962, - "end": 11963, + "start": 11997, + "end": 11998, "loc": { "start": { "line": 298, @@ -14684,8 +14684,8 @@ "postfix": false, "binop": null }, - "start": 11972, - "end": 11973, + "start": 12007, + "end": 12008, "loc": { "start": { "line": 299, @@ -14710,8 +14710,8 @@ "binop": null, "updateContext": null }, - "start": 11973, - "end": 11974, + "start": 12008, + "end": 12009, "loc": { "start": { "line": 299, @@ -14735,8 +14735,8 @@ "postfix": false, "binop": null }, - "start": 11979, - "end": 11980, + "start": 12014, + "end": 12015, "loc": { "start": { "line": 300, @@ -14751,8 +14751,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n ", - "start": 11986, - "end": 12098, + "start": 12021, + "end": 12133, "loc": { "start": { "line": 302, @@ -14777,8 +14777,8 @@ "binop": null }, "value": "getContainerElement", - "start": 12103, - "end": 12122, + "start": 12138, + "end": 12157, "loc": { "start": { "line": 306, @@ -14802,8 +14802,8 @@ "postfix": false, "binop": null }, - "start": 12122, - "end": 12123, + "start": 12157, + "end": 12158, "loc": { "start": { "line": 306, @@ -14827,8 +14827,8 @@ "postfix": false, "binop": null }, - "start": 12123, - "end": 12124, + "start": 12158, + "end": 12159, "loc": { "start": { "line": 306, @@ -14852,8 +14852,8 @@ "postfix": false, "binop": null }, - "start": 12125, - "end": 12126, + "start": 12160, + "end": 12161, "loc": { "start": { "line": 306, @@ -14880,8 +14880,8 @@ "updateContext": null }, "value": "return", - "start": 12135, - "end": 12141, + "start": 12170, + "end": 12176, "loc": { "start": { "line": 307, @@ -14908,8 +14908,8 @@ "updateContext": null }, "value": "this", - "start": 12142, - "end": 12146, + "start": 12177, + "end": 12181, "loc": { "start": { "line": 307, @@ -14934,8 +14934,8 @@ "binop": null, "updateContext": null }, - "start": 12146, - "end": 12147, + "start": 12181, + "end": 12182, "loc": { "start": { "line": 307, @@ -14960,8 +14960,8 @@ "binop": null }, "value": "_container", - "start": 12147, - "end": 12157, + "start": 12182, + "end": 12192, "loc": { "start": { "line": 307, @@ -14986,8 +14986,8 @@ "binop": null, "updateContext": null }, - "start": 12157, - "end": 12158, + "start": 12192, + "end": 12193, "loc": { "start": { "line": 307, @@ -15011,8 +15011,8 @@ "postfix": false, "binop": null }, - "start": 12163, - "end": 12164, + "start": 12198, + "end": 12199, "loc": { "start": { "line": 308, @@ -15027,8 +15027,8 @@ { "type": "CommentBlock", "value": "*\n * @private\n ", - "start": 12171, - "end": 12198, + "start": 12206, + "end": 12233, "loc": { "start": { "line": 311, @@ -15053,8 +15053,8 @@ "binop": null }, "value": "send", - "start": 12203, - "end": 12207, + "start": 12238, + "end": 12242, "loc": { "start": { "line": 314, @@ -15078,8 +15078,8 @@ "postfix": false, "binop": null }, - "start": 12207, - "end": 12208, + "start": 12242, + "end": 12243, "loc": { "start": { "line": 314, @@ -15104,8 +15104,8 @@ "binop": null }, "value": "name", - "start": 12208, - "end": 12212, + "start": 12243, + "end": 12247, "loc": { "start": { "line": 314, @@ -15130,8 +15130,8 @@ "binop": null, "updateContext": null }, - "start": 12212, - "end": 12213, + "start": 12247, + "end": 12248, "loc": { "start": { "line": 314, @@ -15156,8 +15156,8 @@ "binop": null }, "value": "value", - "start": 12214, - "end": 12219, + "start": 12249, + "end": 12254, "loc": { "start": { "line": 314, @@ -15181,8 +15181,8 @@ "postfix": false, "binop": null }, - "start": 12219, - "end": 12220, + "start": 12254, + "end": 12255, "loc": { "start": { "line": 314, @@ -15206,8 +15206,8 @@ "postfix": false, "binop": null }, - "start": 12221, - "end": 12222, + "start": 12256, + "end": 12257, "loc": { "start": { "line": 314, @@ -15231,8 +15231,8 @@ "postfix": false, "binop": null }, - "start": 12228, - "end": 12229, + "start": 12263, + "end": 12264, "loc": { "start": { "line": 316, @@ -15247,8 +15247,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the default {@link AngleMeasurementsMouseControl}.\n *\n * @type {AngleMeasurementsMouseControl}\n * @deprecated\n ", - "start": 12235, - "end": 12380, + "start": 12270, + "end": 12415, "loc": { "start": { "line": 318, @@ -15273,8 +15273,8 @@ "binop": null }, "value": "get", - "start": 12385, - "end": 12388, + "start": 12420, + "end": 12423, "loc": { "start": { "line": 324, @@ -15299,8 +15299,8 @@ "binop": null }, "value": "control", - "start": 12389, - "end": 12396, + "start": 12424, + "end": 12431, "loc": { "start": { "line": 324, @@ -15324,8 +15324,8 @@ "postfix": false, "binop": null }, - "start": 12396, - "end": 12397, + "start": 12431, + "end": 12432, "loc": { "start": { "line": 324, @@ -15349,8 +15349,8 @@ "postfix": false, "binop": null }, - "start": 12397, - "end": 12398, + "start": 12432, + "end": 12433, "loc": { "start": { "line": 324, @@ -15374,8 +15374,8 @@ "postfix": false, "binop": null }, - "start": 12399, - "end": 12400, + "start": 12434, + "end": 12435, "loc": { "start": { "line": 324, @@ -15402,8 +15402,8 @@ "updateContext": null }, "value": "if", - "start": 12409, - "end": 12411, + "start": 12444, + "end": 12446, "loc": { "start": { "line": 325, @@ -15427,8 +15427,8 @@ "postfix": false, "binop": null }, - "start": 12412, - "end": 12413, + "start": 12447, + "end": 12448, "loc": { "start": { "line": 325, @@ -15454,8 +15454,8 @@ "updateContext": null }, "value": "!", - "start": 12413, - "end": 12414, + "start": 12448, + "end": 12449, "loc": { "start": { "line": 325, @@ -15482,8 +15482,8 @@ "updateContext": null }, "value": "this", - "start": 12414, - "end": 12418, + "start": 12449, + "end": 12453, "loc": { "start": { "line": 325, @@ -15508,8 +15508,8 @@ "binop": null, "updateContext": null }, - "start": 12418, - "end": 12419, + "start": 12453, + "end": 12454, "loc": { "start": { "line": 325, @@ -15534,8 +15534,8 @@ "binop": null }, "value": "_defaultControl", - "start": 12419, - "end": 12434, + "start": 12454, + "end": 12469, "loc": { "start": { "line": 325, @@ -15559,8 +15559,8 @@ "postfix": false, "binop": null }, - "start": 12434, - "end": 12435, + "start": 12469, + "end": 12470, "loc": { "start": { "line": 325, @@ -15584,8 +15584,8 @@ "postfix": false, "binop": null }, - "start": 12436, - "end": 12437, + "start": 12471, + "end": 12472, "loc": { "start": { "line": 325, @@ -15612,8 +15612,8 @@ "updateContext": null }, "value": "this", - "start": 12450, - "end": 12454, + "start": 12485, + "end": 12489, "loc": { "start": { "line": 326, @@ -15638,8 +15638,8 @@ "binop": null, "updateContext": null }, - "start": 12454, - "end": 12455, + "start": 12489, + "end": 12490, "loc": { "start": { "line": 326, @@ -15664,8 +15664,8 @@ "binop": null }, "value": "_defaultControl", - "start": 12455, - "end": 12470, + "start": 12490, + "end": 12505, "loc": { "start": { "line": 326, @@ -15691,8 +15691,8 @@ "updateContext": null }, "value": "=", - "start": 12471, - "end": 12472, + "start": 12506, + "end": 12507, "loc": { "start": { "line": 326, @@ -15719,8 +15719,8 @@ "updateContext": null }, "value": "new", - "start": 12473, - "end": 12476, + "start": 12508, + "end": 12511, "loc": { "start": { "line": 326, @@ -15745,8 +15745,8 @@ "binop": null }, "value": "AngleMeasurementsMouseControl", - "start": 12477, - "end": 12506, + "start": 12512, + "end": 12541, "loc": { "start": { "line": 326, @@ -15770,8 +15770,8 @@ "postfix": false, "binop": null }, - "start": 12506, - "end": 12507, + "start": 12541, + "end": 12542, "loc": { "start": { "line": 326, @@ -15798,8 +15798,8 @@ "updateContext": null }, "value": "this", - "start": 12507, - "end": 12511, + "start": 12542, + "end": 12546, "loc": { "start": { "line": 326, @@ -15824,8 +15824,8 @@ "binop": null, "updateContext": null }, - "start": 12511, - "end": 12512, + "start": 12546, + "end": 12547, "loc": { "start": { "line": 326, @@ -15849,8 +15849,8 @@ "postfix": false, "binop": null }, - "start": 12513, - "end": 12514, + "start": 12548, + "end": 12549, "loc": { "start": { "line": 326, @@ -15874,8 +15874,8 @@ "postfix": false, "binop": null }, - "start": 12514, - "end": 12515, + "start": 12549, + "end": 12550, "loc": { "start": { "line": 326, @@ -15899,8 +15899,8 @@ "postfix": false, "binop": null }, - "start": 12515, - "end": 12516, + "start": 12550, + "end": 12551, "loc": { "start": { "line": 326, @@ -15925,8 +15925,8 @@ "binop": null, "updateContext": null }, - "start": 12516, - "end": 12517, + "start": 12551, + "end": 12552, "loc": { "start": { "line": 326, @@ -15950,8 +15950,8 @@ "postfix": false, "binop": null }, - "start": 12526, - "end": 12527, + "start": 12561, + "end": 12562, "loc": { "start": { "line": 327, @@ -15978,8 +15978,8 @@ "updateContext": null }, "value": "return", - "start": 12536, - "end": 12542, + "start": 12571, + "end": 12577, "loc": { "start": { "line": 328, @@ -16006,8 +16006,8 @@ "updateContext": null }, "value": "this", - "start": 12543, - "end": 12547, + "start": 12578, + "end": 12582, "loc": { "start": { "line": 328, @@ -16032,8 +16032,8 @@ "binop": null, "updateContext": null }, - "start": 12547, - "end": 12548, + "start": 12582, + "end": 12583, "loc": { "start": { "line": 328, @@ -16058,8 +16058,8 @@ "binop": null }, "value": "_defaultControl", - "start": 12548, - "end": 12563, + "start": 12583, + "end": 12598, "loc": { "start": { "line": 328, @@ -16084,8 +16084,8 @@ "binop": null, "updateContext": null }, - "start": 12563, - "end": 12564, + "start": 12598, + "end": 12599, "loc": { "start": { "line": 328, @@ -16109,8 +16109,8 @@ "postfix": false, "binop": null }, - "start": 12569, - "end": 12570, + "start": 12604, + "end": 12605, "loc": { "start": { "line": 329, @@ -16125,8 +16125,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the existing {@link AngleMeasurement}s, each mapped to its {@link AngleMeasurement#id}.\n *\n * @type {{String:AngleMeasurement}}\n ", - "start": 12576, - "end": 12735, + "start": 12611, + "end": 12770, "loc": { "start": { "line": 331, @@ -16151,8 +16151,8 @@ "binop": null }, "value": "get", - "start": 12740, - "end": 12743, + "start": 12775, + "end": 12778, "loc": { "start": { "line": 336, @@ -16177,8 +16177,8 @@ "binop": null }, "value": "measurements", - "start": 12744, - "end": 12756, + "start": 12779, + "end": 12791, "loc": { "start": { "line": 336, @@ -16202,8 +16202,8 @@ "postfix": false, "binop": null }, - "start": 12756, - "end": 12757, + "start": 12791, + "end": 12792, "loc": { "start": { "line": 336, @@ -16227,8 +16227,8 @@ "postfix": false, "binop": null }, - "start": 12757, - "end": 12758, + "start": 12792, + "end": 12793, "loc": { "start": { "line": 336, @@ -16252,8 +16252,8 @@ "postfix": false, "binop": null }, - "start": 12759, - "end": 12760, + "start": 12794, + "end": 12795, "loc": { "start": { "line": 336, @@ -16280,8 +16280,8 @@ "updateContext": null }, "value": "return", - "start": 12769, - "end": 12775, + "start": 12804, + "end": 12810, "loc": { "start": { "line": 337, @@ -16308,8 +16308,8 @@ "updateContext": null }, "value": "this", - "start": 12776, - "end": 12780, + "start": 12811, + "end": 12815, "loc": { "start": { "line": 337, @@ -16334,8 +16334,8 @@ "binop": null, "updateContext": null }, - "start": 12780, - "end": 12781, + "start": 12815, + "end": 12816, "loc": { "start": { "line": 337, @@ -16360,8 +16360,8 @@ "binop": null }, "value": "_measurements", - "start": 12781, - "end": 12794, + "start": 12816, + "end": 12829, "loc": { "start": { "line": 337, @@ -16386,8 +16386,8 @@ "binop": null, "updateContext": null }, - "start": 12794, - "end": 12795, + "start": 12829, + "end": 12830, "loc": { "start": { "line": 337, @@ -16411,8 +16411,8 @@ "postfix": false, "binop": null }, - "start": 12800, - "end": 12801, + "start": 12835, + "end": 12836, "loc": { "start": { "line": 338, @@ -16427,8 +16427,8 @@ { "type": "CommentBlock", "value": "*\n * Creates an {@link AngleMeasurement}.\n *\n * The AngleMeasurement is then registered by {@link AngleMeasurement#id} in {@link AngleMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link AngleMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link AngleMeasurement#id}. The AngleMeasurement will be registered by this in {@link AngleMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.corner.worldPos Corner World-space 3D position.\n * @param {Entity} params.corner.entity Corner Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link AngleMeasurement}.\n * @returns {AngleMeasurement} The new {@link AngleMeasurement}.\n ", - "start": 12807, - "end": 13931, + "start": 12842, + "end": 13966, "loc": { "start": { "line": 340, @@ -16453,8 +16453,8 @@ "binop": null }, "value": "createMeasurement", - "start": 13936, - "end": 13953, + "start": 13971, + "end": 13988, "loc": { "start": { "line": 356, @@ -16478,8 +16478,8 @@ "postfix": false, "binop": null }, - "start": 13953, - "end": 13954, + "start": 13988, + "end": 13989, "loc": { "start": { "line": 356, @@ -16504,8 +16504,8 @@ "binop": null }, "value": "params", - "start": 13954, - "end": 13960, + "start": 13989, + "end": 13995, "loc": { "start": { "line": 356, @@ -16531,8 +16531,8 @@ "updateContext": null }, "value": "=", - "start": 13961, - "end": 13962, + "start": 13996, + "end": 13997, "loc": { "start": { "line": 356, @@ -16556,8 +16556,8 @@ "postfix": false, "binop": null }, - "start": 13963, - "end": 13964, + "start": 13998, + "end": 13999, "loc": { "start": { "line": 356, @@ -16581,8 +16581,8 @@ "postfix": false, "binop": null }, - "start": 13964, - "end": 13965, + "start": 13999, + "end": 14000, "loc": { "start": { "line": 356, @@ -16606,8 +16606,8 @@ "postfix": false, "binop": null }, - "start": 13965, - "end": 13966, + "start": 14000, + "end": 14001, "loc": { "start": { "line": 356, @@ -16631,8 +16631,8 @@ "postfix": false, "binop": null }, - "start": 13967, - "end": 13968, + "start": 14002, + "end": 14003, "loc": { "start": { "line": 356, @@ -16659,8 +16659,8 @@ "updateContext": null }, "value": "if", - "start": 13977, - "end": 13979, + "start": 14012, + "end": 14014, "loc": { "start": { "line": 357, @@ -16684,8 +16684,8 @@ "postfix": false, "binop": null }, - "start": 13980, - "end": 13981, + "start": 14015, + "end": 14016, "loc": { "start": { "line": 357, @@ -16712,8 +16712,8 @@ "updateContext": null }, "value": "this", - "start": 13981, - "end": 13985, + "start": 14016, + "end": 14020, "loc": { "start": { "line": 357, @@ -16738,8 +16738,8 @@ "binop": null, "updateContext": null }, - "start": 13985, - "end": 13986, + "start": 14020, + "end": 14021, "loc": { "start": { "line": 357, @@ -16764,8 +16764,8 @@ "binop": null }, "value": "viewer", - "start": 13986, - "end": 13992, + "start": 14021, + "end": 14027, "loc": { "start": { "line": 357, @@ -16790,8 +16790,8 @@ "binop": null, "updateContext": null }, - "start": 13992, - "end": 13993, + "start": 14027, + "end": 14028, "loc": { "start": { "line": 357, @@ -16816,8 +16816,8 @@ "binop": null }, "value": "scene", - "start": 13993, - "end": 13998, + "start": 14028, + "end": 14033, "loc": { "start": { "line": 357, @@ -16842,8 +16842,8 @@ "binop": null, "updateContext": null }, - "start": 13998, - "end": 13999, + "start": 14033, + "end": 14034, "loc": { "start": { "line": 357, @@ -16868,8 +16868,8 @@ "binop": null }, "value": "components", - "start": 13999, - "end": 14009, + "start": 14034, + "end": 14044, "loc": { "start": { "line": 357, @@ -16894,8 +16894,8 @@ "binop": null, "updateContext": null }, - "start": 14009, - "end": 14010, + "start": 14044, + "end": 14045, "loc": { "start": { "line": 357, @@ -16920,8 +16920,8 @@ "binop": null }, "value": "params", - "start": 14010, - "end": 14016, + "start": 14045, + "end": 14051, "loc": { "start": { "line": 357, @@ -16946,8 +16946,8 @@ "binop": null, "updateContext": null }, - "start": 14016, - "end": 14017, + "start": 14051, + "end": 14052, "loc": { "start": { "line": 357, @@ -16972,8 +16972,8 @@ "binop": null }, "value": "id", - "start": 14017, - "end": 14019, + "start": 14052, + "end": 14054, "loc": { "start": { "line": 357, @@ -16998,8 +16998,8 @@ "binop": null, "updateContext": null }, - "start": 14019, - "end": 14020, + "start": 14054, + "end": 14055, "loc": { "start": { "line": 357, @@ -17023,8 +17023,8 @@ "postfix": false, "binop": null }, - "start": 14020, - "end": 14021, + "start": 14055, + "end": 14056, "loc": { "start": { "line": 357, @@ -17048,8 +17048,8 @@ "postfix": false, "binop": null }, - "start": 14022, - "end": 14023, + "start": 14057, + "end": 14058, "loc": { "start": { "line": 357, @@ -17076,8 +17076,8 @@ "updateContext": null }, "value": "this", - "start": 14036, - "end": 14040, + "start": 14071, + "end": 14075, "loc": { "start": { "line": 358, @@ -17102,8 +17102,8 @@ "binop": null, "updateContext": null }, - "start": 14040, - "end": 14041, + "start": 14075, + "end": 14076, "loc": { "start": { "line": 358, @@ -17128,8 +17128,8 @@ "binop": null }, "value": "error", - "start": 14041, - "end": 14046, + "start": 14076, + "end": 14081, "loc": { "start": { "line": 358, @@ -17153,8 +17153,8 @@ "postfix": false, "binop": null }, - "start": 14046, - "end": 14047, + "start": 14081, + "end": 14082, "loc": { "start": { "line": 358, @@ -17180,8 +17180,8 @@ "updateContext": null }, "value": "Viewer scene component with this ID already exists: ", - "start": 14047, - "end": 14101, + "start": 14082, + "end": 14136, "loc": { "start": { "line": 358, @@ -17207,8 +17207,8 @@ "updateContext": null }, "value": "+", - "start": 14102, - "end": 14103, + "start": 14137, + "end": 14138, "loc": { "start": { "line": 358, @@ -17233,8 +17233,8 @@ "binop": null }, "value": "params", - "start": 14104, - "end": 14110, + "start": 14139, + "end": 14145, "loc": { "start": { "line": 358, @@ -17259,8 +17259,8 @@ "binop": null, "updateContext": null }, - "start": 14110, - "end": 14111, + "start": 14145, + "end": 14146, "loc": { "start": { "line": 358, @@ -17285,8 +17285,8 @@ "binop": null }, "value": "id", - "start": 14111, - "end": 14113, + "start": 14146, + "end": 14148, "loc": { "start": { "line": 358, @@ -17310,8 +17310,8 @@ "postfix": false, "binop": null }, - "start": 14113, - "end": 14114, + "start": 14148, + "end": 14149, "loc": { "start": { "line": 358, @@ -17336,8 +17336,8 @@ "binop": null, "updateContext": null }, - "start": 14114, - "end": 14115, + "start": 14149, + "end": 14150, "loc": { "start": { "line": 358, @@ -17364,8 +17364,8 @@ "updateContext": null }, "value": "delete", - "start": 14128, - "end": 14134, + "start": 14163, + "end": 14169, "loc": { "start": { "line": 359, @@ -17390,8 +17390,8 @@ "binop": null }, "value": "params", - "start": 14135, - "end": 14141, + "start": 14170, + "end": 14176, "loc": { "start": { "line": 359, @@ -17416,8 +17416,8 @@ "binop": null, "updateContext": null }, - "start": 14141, - "end": 14142, + "start": 14176, + "end": 14177, "loc": { "start": { "line": 359, @@ -17442,8 +17442,8 @@ "binop": null }, "value": "id", - "start": 14142, - "end": 14144, + "start": 14177, + "end": 14179, "loc": { "start": { "line": 359, @@ -17468,8 +17468,8 @@ "binop": null, "updateContext": null }, - "start": 14144, - "end": 14145, + "start": 14179, + "end": 14180, "loc": { "start": { "line": 359, @@ -17493,8 +17493,8 @@ "postfix": false, "binop": null }, - "start": 14154, - "end": 14155, + "start": 14189, + "end": 14190, "loc": { "start": { "line": 360, @@ -17521,8 +17521,8 @@ "updateContext": null }, "value": "const", - "start": 14164, - "end": 14169, + "start": 14199, + "end": 14204, "loc": { "start": { "line": 361, @@ -17547,8 +17547,8 @@ "binop": null }, "value": "origin", - "start": 14170, - "end": 14176, + "start": 14205, + "end": 14211, "loc": { "start": { "line": 361, @@ -17574,8 +17574,8 @@ "updateContext": null }, "value": "=", - "start": 14177, - "end": 14178, + "start": 14212, + "end": 14213, "loc": { "start": { "line": 361, @@ -17600,8 +17600,8 @@ "binop": null }, "value": "params", - "start": 14179, - "end": 14185, + "start": 14214, + "end": 14220, "loc": { "start": { "line": 361, @@ -17626,8 +17626,8 @@ "binop": null, "updateContext": null }, - "start": 14185, - "end": 14186, + "start": 14220, + "end": 14221, "loc": { "start": { "line": 361, @@ -17652,8 +17652,8 @@ "binop": null }, "value": "origin", - "start": 14186, - "end": 14192, + "start": 14221, + "end": 14227, "loc": { "start": { "line": 361, @@ -17678,8 +17678,8 @@ "binop": null, "updateContext": null }, - "start": 14192, - "end": 14193, + "start": 14227, + "end": 14228, "loc": { "start": { "line": 361, @@ -17706,8 +17706,8 @@ "updateContext": null }, "value": "const", - "start": 14202, - "end": 14207, + "start": 14237, + "end": 14242, "loc": { "start": { "line": 362, @@ -17732,8 +17732,8 @@ "binop": null }, "value": "corner", - "start": 14208, - "end": 14214, + "start": 14243, + "end": 14249, "loc": { "start": { "line": 362, @@ -17759,8 +17759,8 @@ "updateContext": null }, "value": "=", - "start": 14215, - "end": 14216, + "start": 14250, + "end": 14251, "loc": { "start": { "line": 362, @@ -17785,8 +17785,8 @@ "binop": null }, "value": "params", - "start": 14217, - "end": 14223, + "start": 14252, + "end": 14258, "loc": { "start": { "line": 362, @@ -17811,8 +17811,8 @@ "binop": null, "updateContext": null }, - "start": 14223, - "end": 14224, + "start": 14258, + "end": 14259, "loc": { "start": { "line": 362, @@ -17837,8 +17837,8 @@ "binop": null }, "value": "corner", - "start": 14224, - "end": 14230, + "start": 14259, + "end": 14265, "loc": { "start": { "line": 362, @@ -17863,8 +17863,8 @@ "binop": null, "updateContext": null }, - "start": 14230, - "end": 14231, + "start": 14265, + "end": 14266, "loc": { "start": { "line": 362, @@ -17891,8 +17891,8 @@ "updateContext": null }, "value": "const", - "start": 14240, - "end": 14245, + "start": 14275, + "end": 14280, "loc": { "start": { "line": 363, @@ -17917,8 +17917,8 @@ "binop": null }, "value": "target", - "start": 14246, - "end": 14252, + "start": 14281, + "end": 14287, "loc": { "start": { "line": 363, @@ -17944,8 +17944,8 @@ "updateContext": null }, "value": "=", - "start": 14253, - "end": 14254, + "start": 14288, + "end": 14289, "loc": { "start": { "line": 363, @@ -17970,8 +17970,8 @@ "binop": null }, "value": "params", - "start": 14255, - "end": 14261, + "start": 14290, + "end": 14296, "loc": { "start": { "line": 363, @@ -17996,8 +17996,8 @@ "binop": null, "updateContext": null }, - "start": 14261, - "end": 14262, + "start": 14296, + "end": 14297, "loc": { "start": { "line": 363, @@ -18022,8 +18022,8 @@ "binop": null }, "value": "target", - "start": 14262, - "end": 14268, + "start": 14297, + "end": 14303, "loc": { "start": { "line": 363, @@ -18048,8 +18048,8 @@ "binop": null, "updateContext": null }, - "start": 14268, - "end": 14269, + "start": 14303, + "end": 14304, "loc": { "start": { "line": 363, @@ -18076,8 +18076,8 @@ "updateContext": null }, "value": "const", - "start": 14278, - "end": 14283, + "start": 14313, + "end": 14318, "loc": { "start": { "line": 364, @@ -18102,8 +18102,8 @@ "binop": null }, "value": "measurement", - "start": 14284, - "end": 14295, + "start": 14319, + "end": 14330, "loc": { "start": { "line": 364, @@ -18129,8 +18129,8 @@ "updateContext": null }, "value": "=", - "start": 14296, - "end": 14297, + "start": 14331, + "end": 14332, "loc": { "start": { "line": 364, @@ -18157,8 +18157,8 @@ "updateContext": null }, "value": "new", - "start": 14298, - "end": 14301, + "start": 14333, + "end": 14336, "loc": { "start": { "line": 364, @@ -18183,8 +18183,8 @@ "binop": null }, "value": "AngleMeasurement", - "start": 14302, - "end": 14318, + "start": 14337, + "end": 14353, "loc": { "start": { "line": 364, @@ -18208,8 +18208,8 @@ "postfix": false, "binop": null }, - "start": 14318, - "end": 14319, + "start": 14353, + "end": 14354, "loc": { "start": { "line": 364, @@ -18236,8 +18236,8 @@ "updateContext": null }, "value": "this", - "start": 14319, - "end": 14323, + "start": 14354, + "end": 14358, "loc": { "start": { "line": 364, @@ -18262,8 +18262,8 @@ "binop": null, "updateContext": null }, - "start": 14323, - "end": 14324, + "start": 14358, + "end": 14359, "loc": { "start": { "line": 364, @@ -18287,8 +18287,8 @@ "postfix": false, "binop": null }, - "start": 14325, - "end": 14326, + "start": 14360, + "end": 14361, "loc": { "start": { "line": 364, @@ -18313,8 +18313,8 @@ "binop": null }, "value": "id", - "start": 14339, - "end": 14341, + "start": 14374, + "end": 14376, "loc": { "start": { "line": 365, @@ -18339,8 +18339,8 @@ "binop": null, "updateContext": null }, - "start": 14341, - "end": 14342, + "start": 14376, + "end": 14377, "loc": { "start": { "line": 365, @@ -18365,8 +18365,8 @@ "binop": null }, "value": "params", - "start": 14343, - "end": 14349, + "start": 14378, + "end": 14384, "loc": { "start": { "line": 365, @@ -18391,8 +18391,8 @@ "binop": null, "updateContext": null }, - "start": 14349, - "end": 14350, + "start": 14384, + "end": 14385, "loc": { "start": { "line": 365, @@ -18417,8 +18417,8 @@ "binop": null }, "value": "id", - "start": 14350, - "end": 14352, + "start": 14385, + "end": 14387, "loc": { "start": { "line": 365, @@ -18443,8 +18443,8 @@ "binop": null, "updateContext": null }, - "start": 14352, - "end": 14353, + "start": 14387, + "end": 14388, "loc": { "start": { "line": 365, @@ -18469,8 +18469,8 @@ "binop": null }, "value": "plugin", - "start": 14366, - "end": 14372, + "start": 14401, + "end": 14407, "loc": { "start": { "line": 366, @@ -18495,8 +18495,8 @@ "binop": null, "updateContext": null }, - "start": 14372, - "end": 14373, + "start": 14407, + "end": 14408, "loc": { "start": { "line": 366, @@ -18523,8 +18523,8 @@ "updateContext": null }, "value": "this", - "start": 14374, - "end": 14378, + "start": 14409, + "end": 14413, "loc": { "start": { "line": 366, @@ -18549,8 +18549,8 @@ "binop": null, "updateContext": null }, - "start": 14378, - "end": 14379, + "start": 14413, + "end": 14414, "loc": { "start": { "line": 366, @@ -18575,8 +18575,8 @@ "binop": null }, "value": "container", - "start": 14392, - "end": 14401, + "start": 14427, + "end": 14436, "loc": { "start": { "line": 367, @@ -18601,8 +18601,8 @@ "binop": null, "updateContext": null }, - "start": 14401, - "end": 14402, + "start": 14436, + "end": 14437, "loc": { "start": { "line": 367, @@ -18629,8 +18629,8 @@ "updateContext": null }, "value": "this", - "start": 14403, - "end": 14407, + "start": 14438, + "end": 14442, "loc": { "start": { "line": 367, @@ -18655,8 +18655,8 @@ "binop": null, "updateContext": null }, - "start": 14407, - "end": 14408, + "start": 14442, + "end": 14443, "loc": { "start": { "line": 367, @@ -18681,8 +18681,8 @@ "binop": null }, "value": "_container", - "start": 14408, - "end": 14418, + "start": 14443, + "end": 14453, "loc": { "start": { "line": 367, @@ -18707,8 +18707,8 @@ "binop": null, "updateContext": null }, - "start": 14418, - "end": 14419, + "start": 14453, + "end": 14454, "loc": { "start": { "line": 367, @@ -18733,8 +18733,8 @@ "binop": null }, "value": "origin", - "start": 14432, - "end": 14438, + "start": 14467, + "end": 14473, "loc": { "start": { "line": 368, @@ -18759,8 +18759,8 @@ "binop": null, "updateContext": null }, - "start": 14438, - "end": 14439, + "start": 14473, + "end": 14474, "loc": { "start": { "line": 368, @@ -18784,8 +18784,8 @@ "postfix": false, "binop": null }, - "start": 14440, - "end": 14441, + "start": 14475, + "end": 14476, "loc": { "start": { "line": 368, @@ -18810,8 +18810,8 @@ "binop": null }, "value": "entity", - "start": 14458, - "end": 14464, + "start": 14493, + "end": 14499, "loc": { "start": { "line": 369, @@ -18836,8 +18836,8 @@ "binop": null, "updateContext": null }, - "start": 14464, - "end": 14465, + "start": 14499, + "end": 14500, "loc": { "start": { "line": 369, @@ -18862,8 +18862,8 @@ "binop": null }, "value": "origin", - "start": 14466, - "end": 14472, + "start": 14501, + "end": 14507, "loc": { "start": { "line": 369, @@ -18888,8 +18888,8 @@ "binop": null, "updateContext": null }, - "start": 14472, - "end": 14473, + "start": 14507, + "end": 14508, "loc": { "start": { "line": 369, @@ -18914,8 +18914,8 @@ "binop": null }, "value": "entity", - "start": 14473, - "end": 14479, + "start": 14508, + "end": 14514, "loc": { "start": { "line": 369, @@ -18940,8 +18940,8 @@ "binop": null, "updateContext": null }, - "start": 14479, - "end": 14480, + "start": 14514, + "end": 14515, "loc": { "start": { "line": 369, @@ -18966,8 +18966,8 @@ "binop": null }, "value": "worldPos", - "start": 14497, - "end": 14505, + "start": 14532, + "end": 14540, "loc": { "start": { "line": 370, @@ -18992,8 +18992,8 @@ "binop": null, "updateContext": null }, - "start": 14505, - "end": 14506, + "start": 14540, + "end": 14541, "loc": { "start": { "line": 370, @@ -19018,8 +19018,8 @@ "binop": null }, "value": "origin", - "start": 14507, - "end": 14513, + "start": 14542, + "end": 14548, "loc": { "start": { "line": 370, @@ -19044,8 +19044,8 @@ "binop": null, "updateContext": null }, - "start": 14513, - "end": 14514, + "start": 14548, + "end": 14549, "loc": { "start": { "line": 370, @@ -19070,8 +19070,8 @@ "binop": null }, "value": "worldPos", - "start": 14514, - "end": 14522, + "start": 14549, + "end": 14557, "loc": { "start": { "line": 370, @@ -19095,8 +19095,8 @@ "postfix": false, "binop": null }, - "start": 14535, - "end": 14536, + "start": 14570, + "end": 14571, "loc": { "start": { "line": 371, @@ -19121,8 +19121,8 @@ "binop": null, "updateContext": null }, - "start": 14536, - "end": 14537, + "start": 14571, + "end": 14572, "loc": { "start": { "line": 371, @@ -19147,8 +19147,8 @@ "binop": null }, "value": "corner", - "start": 14550, - "end": 14556, + "start": 14585, + "end": 14591, "loc": { "start": { "line": 372, @@ -19173,8 +19173,8 @@ "binop": null, "updateContext": null }, - "start": 14556, - "end": 14557, + "start": 14591, + "end": 14592, "loc": { "start": { "line": 372, @@ -19198,8 +19198,8 @@ "postfix": false, "binop": null }, - "start": 14558, - "end": 14559, + "start": 14593, + "end": 14594, "loc": { "start": { "line": 372, @@ -19224,8 +19224,8 @@ "binop": null }, "value": "entity", - "start": 14576, - "end": 14582, + "start": 14611, + "end": 14617, "loc": { "start": { "line": 373, @@ -19250,8 +19250,8 @@ "binop": null, "updateContext": null }, - "start": 14582, - "end": 14583, + "start": 14617, + "end": 14618, "loc": { "start": { "line": 373, @@ -19276,8 +19276,8 @@ "binop": null }, "value": "corner", - "start": 14584, - "end": 14590, + "start": 14619, + "end": 14625, "loc": { "start": { "line": 373, @@ -19302,8 +19302,8 @@ "binop": null, "updateContext": null }, - "start": 14590, - "end": 14591, + "start": 14625, + "end": 14626, "loc": { "start": { "line": 373, @@ -19328,8 +19328,8 @@ "binop": null }, "value": "entity", - "start": 14591, - "end": 14597, + "start": 14626, + "end": 14632, "loc": { "start": { "line": 373, @@ -19354,8 +19354,8 @@ "binop": null, "updateContext": null }, - "start": 14597, - "end": 14598, + "start": 14632, + "end": 14633, "loc": { "start": { "line": 373, @@ -19380,8 +19380,8 @@ "binop": null }, "value": "worldPos", - "start": 14615, - "end": 14623, + "start": 14650, + "end": 14658, "loc": { "start": { "line": 374, @@ -19406,8 +19406,8 @@ "binop": null, "updateContext": null }, - "start": 14623, - "end": 14624, + "start": 14658, + "end": 14659, "loc": { "start": { "line": 374, @@ -19432,8 +19432,8 @@ "binop": null }, "value": "corner", - "start": 14625, - "end": 14631, + "start": 14660, + "end": 14666, "loc": { "start": { "line": 374, @@ -19458,8 +19458,8 @@ "binop": null, "updateContext": null }, - "start": 14631, - "end": 14632, + "start": 14666, + "end": 14667, "loc": { "start": { "line": 374, @@ -19484,8 +19484,8 @@ "binop": null }, "value": "worldPos", - "start": 14632, - "end": 14640, + "start": 14667, + "end": 14675, "loc": { "start": { "line": 374, @@ -19509,8 +19509,8 @@ "postfix": false, "binop": null }, - "start": 14653, - "end": 14654, + "start": 14688, + "end": 14689, "loc": { "start": { "line": 375, @@ -19535,8 +19535,8 @@ "binop": null, "updateContext": null }, - "start": 14654, - "end": 14655, + "start": 14689, + "end": 14690, "loc": { "start": { "line": 375, @@ -19561,8 +19561,8 @@ "binop": null }, "value": "target", - "start": 14668, - "end": 14674, + "start": 14703, + "end": 14709, "loc": { "start": { "line": 376, @@ -19587,8 +19587,8 @@ "binop": null, "updateContext": null }, - "start": 14674, - "end": 14675, + "start": 14709, + "end": 14710, "loc": { "start": { "line": 376, @@ -19612,8 +19612,8 @@ "postfix": false, "binop": null }, - "start": 14676, - "end": 14677, + "start": 14711, + "end": 14712, "loc": { "start": { "line": 376, @@ -19638,8 +19638,8 @@ "binop": null }, "value": "entity", - "start": 14694, - "end": 14700, + "start": 14729, + "end": 14735, "loc": { "start": { "line": 377, @@ -19664,8 +19664,8 @@ "binop": null, "updateContext": null }, - "start": 14700, - "end": 14701, + "start": 14735, + "end": 14736, "loc": { "start": { "line": 377, @@ -19690,8 +19690,8 @@ "binop": null }, "value": "target", - "start": 14702, - "end": 14708, + "start": 14737, + "end": 14743, "loc": { "start": { "line": 377, @@ -19716,8 +19716,8 @@ "binop": null, "updateContext": null }, - "start": 14708, - "end": 14709, + "start": 14743, + "end": 14744, "loc": { "start": { "line": 377, @@ -19742,8 +19742,8 @@ "binop": null }, "value": "entity", - "start": 14709, - "end": 14715, + "start": 14744, + "end": 14750, "loc": { "start": { "line": 377, @@ -19768,8 +19768,8 @@ "binop": null, "updateContext": null }, - "start": 14715, - "end": 14716, + "start": 14750, + "end": 14751, "loc": { "start": { "line": 377, @@ -19794,8 +19794,8 @@ "binop": null }, "value": "worldPos", - "start": 14733, - "end": 14741, + "start": 14768, + "end": 14776, "loc": { "start": { "line": 378, @@ -19820,8 +19820,8 @@ "binop": null, "updateContext": null }, - "start": 14741, - "end": 14742, + "start": 14776, + "end": 14777, "loc": { "start": { "line": 378, @@ -19846,8 +19846,8 @@ "binop": null }, "value": "target", - "start": 14743, - "end": 14749, + "start": 14778, + "end": 14784, "loc": { "start": { "line": 378, @@ -19872,8 +19872,8 @@ "binop": null, "updateContext": null }, - "start": 14749, - "end": 14750, + "start": 14784, + "end": 14785, "loc": { "start": { "line": 378, @@ -19898,8 +19898,8 @@ "binop": null }, "value": "worldPos", - "start": 14750, - "end": 14758, + "start": 14785, + "end": 14793, "loc": { "start": { "line": 378, @@ -19923,8 +19923,8 @@ "postfix": false, "binop": null }, - "start": 14771, - "end": 14772, + "start": 14806, + "end": 14807, "loc": { "start": { "line": 379, @@ -19949,8 +19949,8 @@ "binop": null, "updateContext": null }, - "start": 14772, - "end": 14773, + "start": 14807, + "end": 14808, "loc": { "start": { "line": 379, @@ -19975,8 +19975,8 @@ "binop": null }, "value": "visible", - "start": 14787, - "end": 14794, + "start": 14822, + "end": 14829, "loc": { "start": { "line": 381, @@ -20001,8 +20001,8 @@ "binop": null, "updateContext": null }, - "start": 14794, - "end": 14795, + "start": 14829, + "end": 14830, "loc": { "start": { "line": 381, @@ -20027,8 +20027,8 @@ "binop": null }, "value": "params", - "start": 14796, - "end": 14802, + "start": 14831, + "end": 14837, "loc": { "start": { "line": 381, @@ -20053,8 +20053,8 @@ "binop": null, "updateContext": null }, - "start": 14802, - "end": 14803, + "start": 14837, + "end": 14838, "loc": { "start": { "line": 381, @@ -20079,8 +20079,8 @@ "binop": null }, "value": "visible", - "start": 14803, - "end": 14810, + "start": 14838, + "end": 14845, "loc": { "start": { "line": 381, @@ -20105,8 +20105,8 @@ "binop": null, "updateContext": null }, - "start": 14810, - "end": 14811, + "start": 14845, + "end": 14846, "loc": { "start": { "line": 381, @@ -20131,8 +20131,8 @@ "binop": null }, "value": "originVisible", - "start": 14824, - "end": 14837, + "start": 14859, + "end": 14872, "loc": { "start": { "line": 382, @@ -20157,8 +20157,8 @@ "binop": null, "updateContext": null }, - "start": 14837, - "end": 14838, + "start": 14872, + "end": 14873, "loc": { "start": { "line": 382, @@ -20185,8 +20185,8 @@ "updateContext": null }, "value": "true", - "start": 14839, - "end": 14843, + "start": 14874, + "end": 14878, "loc": { "start": { "line": 382, @@ -20211,8 +20211,8 @@ "binop": null, "updateContext": null }, - "start": 14843, - "end": 14844, + "start": 14878, + "end": 14879, "loc": { "start": { "line": 382, @@ -20237,8 +20237,8 @@ "binop": null }, "value": "originWireVisible", - "start": 14857, - "end": 14874, + "start": 14892, + "end": 14909, "loc": { "start": { "line": 383, @@ -20263,8 +20263,8 @@ "binop": null, "updateContext": null }, - "start": 14874, - "end": 14875, + "start": 14909, + "end": 14910, "loc": { "start": { "line": 383, @@ -20291,8 +20291,8 @@ "updateContext": null }, "value": "true", - "start": 14876, - "end": 14880, + "start": 14911, + "end": 14915, "loc": { "start": { "line": 383, @@ -20317,8 +20317,8 @@ "binop": null, "updateContext": null }, - "start": 14880, - "end": 14881, + "start": 14915, + "end": 14916, "loc": { "start": { "line": 383, @@ -20343,8 +20343,8 @@ "binop": null }, "value": "cornerVisible", - "start": 14894, - "end": 14907, + "start": 14929, + "end": 14942, "loc": { "start": { "line": 384, @@ -20369,8 +20369,8 @@ "binop": null, "updateContext": null }, - "start": 14907, - "end": 14908, + "start": 14942, + "end": 14943, "loc": { "start": { "line": 384, @@ -20397,8 +20397,8 @@ "updateContext": null }, "value": "true", - "start": 14909, - "end": 14913, + "start": 14944, + "end": 14948, "loc": { "start": { "line": 384, @@ -20423,8 +20423,8 @@ "binop": null, "updateContext": null }, - "start": 14913, - "end": 14914, + "start": 14948, + "end": 14949, "loc": { "start": { "line": 384, @@ -20449,8 +20449,8 @@ "binop": null }, "value": "targetWireVisible", - "start": 14927, - "end": 14944, + "start": 14962, + "end": 14979, "loc": { "start": { "line": 385, @@ -20475,8 +20475,8 @@ "binop": null, "updateContext": null }, - "start": 14944, - "end": 14945, + "start": 14979, + "end": 14980, "loc": { "start": { "line": 385, @@ -20503,8 +20503,8 @@ "updateContext": null }, "value": "true", - "start": 14946, - "end": 14950, + "start": 14981, + "end": 14985, "loc": { "start": { "line": 385, @@ -20529,8 +20529,8 @@ "binop": null, "updateContext": null }, - "start": 14950, - "end": 14951, + "start": 14985, + "end": 14986, "loc": { "start": { "line": 385, @@ -20555,8 +20555,8 @@ "binop": null }, "value": "targetVisible", - "start": 14964, - "end": 14977, + "start": 14999, + "end": 15012, "loc": { "start": { "line": 386, @@ -20581,8 +20581,8 @@ "binop": null, "updateContext": null }, - "start": 14977, - "end": 14978, + "start": 15012, + "end": 15013, "loc": { "start": { "line": 386, @@ -20609,8 +20609,8 @@ "updateContext": null }, "value": "true", - "start": 14979, - "end": 14983, + "start": 15014, + "end": 15018, "loc": { "start": { "line": 386, @@ -20635,8 +20635,8 @@ "binop": null, "updateContext": null }, - "start": 14983, - "end": 14984, + "start": 15018, + "end": 15019, "loc": { "start": { "line": 386, @@ -20661,8 +20661,8 @@ "binop": null }, "value": "onMouseOver", - "start": 14997, - "end": 15008, + "start": 15032, + "end": 15043, "loc": { "start": { "line": 387, @@ -20687,8 +20687,8 @@ "binop": null, "updateContext": null }, - "start": 15008, - "end": 15009, + "start": 15043, + "end": 15044, "loc": { "start": { "line": 387, @@ -20715,8 +20715,8 @@ "updateContext": null }, "value": "this", - "start": 15010, - "end": 15014, + "start": 15045, + "end": 15049, "loc": { "start": { "line": 387, @@ -20741,8 +20741,8 @@ "binop": null, "updateContext": null }, - "start": 15014, - "end": 15015, + "start": 15049, + "end": 15050, "loc": { "start": { "line": 387, @@ -20767,8 +20767,8 @@ "binop": null }, "value": "_onMouseOver", - "start": 15015, - "end": 15027, + "start": 15050, + "end": 15062, "loc": { "start": { "line": 387, @@ -20793,8 +20793,8 @@ "binop": null, "updateContext": null }, - "start": 15027, - "end": 15028, + "start": 15062, + "end": 15063, "loc": { "start": { "line": 387, @@ -20819,8 +20819,8 @@ "binop": null }, "value": "onMouseLeave", - "start": 15041, - "end": 15053, + "start": 15076, + "end": 15088, "loc": { "start": { "line": 388, @@ -20845,8 +20845,8 @@ "binop": null, "updateContext": null }, - "start": 15053, - "end": 15054, + "start": 15088, + "end": 15089, "loc": { "start": { "line": 388, @@ -20873,8 +20873,8 @@ "updateContext": null }, "value": "this", - "start": 15055, - "end": 15059, + "start": 15090, + "end": 15094, "loc": { "start": { "line": 388, @@ -20899,8 +20899,8 @@ "binop": null, "updateContext": null }, - "start": 15059, - "end": 15060, + "start": 15094, + "end": 15095, "loc": { "start": { "line": 388, @@ -20925,8 +20925,8 @@ "binop": null }, "value": "_onMouseLeave", - "start": 15060, - "end": 15073, + "start": 15095, + "end": 15108, "loc": { "start": { "line": 388, @@ -20951,8 +20951,8 @@ "binop": null, "updateContext": null }, - "start": 15073, - "end": 15074, + "start": 15108, + "end": 15109, "loc": { "start": { "line": 388, @@ -20977,8 +20977,8 @@ "binop": null }, "value": "onContextMenu", - "start": 15087, - "end": 15100, + "start": 15122, + "end": 15135, "loc": { "start": { "line": 389, @@ -21003,8 +21003,8 @@ "binop": null, "updateContext": null }, - "start": 15100, - "end": 15101, + "start": 15135, + "end": 15136, "loc": { "start": { "line": 389, @@ -21031,8 +21031,8 @@ "updateContext": null }, "value": "this", - "start": 15102, - "end": 15106, + "start": 15137, + "end": 15141, "loc": { "start": { "line": 389, @@ -21057,8 +21057,8 @@ "binop": null, "updateContext": null }, - "start": 15106, - "end": 15107, + "start": 15141, + "end": 15142, "loc": { "start": { "line": 389, @@ -21083,8 +21083,8 @@ "binop": null }, "value": "_onContextMenu", - "start": 15107, - "end": 15121, + "start": 15142, + "end": 15156, "loc": { "start": { "line": 389, @@ -21108,8 +21108,8 @@ "postfix": false, "binop": null }, - "start": 15130, - "end": 15131, + "start": 15165, + "end": 15166, "loc": { "start": { "line": 390, @@ -21133,8 +21133,8 @@ "postfix": false, "binop": null }, - "start": 15131, - "end": 15132, + "start": 15166, + "end": 15167, "loc": { "start": { "line": 390, @@ -21159,8 +21159,8 @@ "binop": null, "updateContext": null }, - "start": 15132, - "end": 15133, + "start": 15167, + "end": 15168, "loc": { "start": { "line": 390, @@ -21187,8 +21187,8 @@ "updateContext": null }, "value": "this", - "start": 15142, - "end": 15146, + "start": 15177, + "end": 15181, "loc": { "start": { "line": 391, @@ -21213,8 +21213,8 @@ "binop": null, "updateContext": null }, - "start": 15146, - "end": 15147, + "start": 15181, + "end": 15182, "loc": { "start": { "line": 391, @@ -21239,8 +21239,8 @@ "binop": null }, "value": "_measurements", - "start": 15147, - "end": 15160, + "start": 15182, + "end": 15195, "loc": { "start": { "line": 391, @@ -21265,8 +21265,8 @@ "binop": null, "updateContext": null }, - "start": 15160, - "end": 15161, + "start": 15195, + "end": 15196, "loc": { "start": { "line": 391, @@ -21291,8 +21291,8 @@ "binop": null }, "value": "measurement", - "start": 15161, - "end": 15172, + "start": 15196, + "end": 15207, "loc": { "start": { "line": 391, @@ -21317,8 +21317,8 @@ "binop": null, "updateContext": null }, - "start": 15172, - "end": 15173, + "start": 15207, + "end": 15208, "loc": { "start": { "line": 391, @@ -21343,8 +21343,8 @@ "binop": null }, "value": "id", - "start": 15173, - "end": 15175, + "start": 15208, + "end": 15210, "loc": { "start": { "line": 391, @@ -21369,8 +21369,8 @@ "binop": null, "updateContext": null }, - "start": 15175, - "end": 15176, + "start": 15210, + "end": 15211, "loc": { "start": { "line": 391, @@ -21396,8 +21396,8 @@ "updateContext": null }, "value": "=", - "start": 15177, - "end": 15178, + "start": 15212, + "end": 15213, "loc": { "start": { "line": 391, @@ -21422,8 +21422,8 @@ "binop": null }, "value": "measurement", - "start": 15179, - "end": 15190, + "start": 15214, + "end": 15225, "loc": { "start": { "line": 391, @@ -21448,8 +21448,8 @@ "binop": null, "updateContext": null }, - "start": 15190, - "end": 15191, + "start": 15225, + "end": 15226, "loc": { "start": { "line": 391, @@ -21474,8 +21474,8 @@ "binop": null }, "value": "measurement", - "start": 15200, - "end": 15211, + "start": 15235, + "end": 15246, "loc": { "start": { "line": 392, @@ -21500,8 +21500,8 @@ "binop": null, "updateContext": null }, - "start": 15211, - "end": 15212, + "start": 15246, + "end": 15247, "loc": { "start": { "line": 392, @@ -21526,8 +21526,8 @@ "binop": null }, "value": "on", - "start": 15212, - "end": 15214, + "start": 15247, + "end": 15249, "loc": { "start": { "line": 392, @@ -21551,8 +21551,8 @@ "postfix": false, "binop": null }, - "start": 15214, - "end": 15215, + "start": 15249, + "end": 15250, "loc": { "start": { "line": 392, @@ -21578,8 +21578,8 @@ "updateContext": null }, "value": "destroyed", - "start": 15215, - "end": 15226, + "start": 15250, + "end": 15261, "loc": { "start": { "line": 392, @@ -21604,8 +21604,8 @@ "binop": null, "updateContext": null }, - "start": 15226, - "end": 15227, + "start": 15261, + "end": 15262, "loc": { "start": { "line": 392, @@ -21629,8 +21629,8 @@ "postfix": false, "binop": null }, - "start": 15228, - "end": 15229, + "start": 15263, + "end": 15264, "loc": { "start": { "line": 392, @@ -21654,8 +21654,8 @@ "postfix": false, "binop": null }, - "start": 15229, - "end": 15230, + "start": 15264, + "end": 15265, "loc": { "start": { "line": 392, @@ -21680,8 +21680,8 @@ "binop": null, "updateContext": null }, - "start": 15231, - "end": 15233, + "start": 15266, + "end": 15268, "loc": { "start": { "line": 392, @@ -21705,8 +21705,8 @@ "postfix": false, "binop": null }, - "start": 15234, - "end": 15235, + "start": 15269, + "end": 15270, "loc": { "start": { "line": 392, @@ -21733,8 +21733,8 @@ "updateContext": null }, "value": "delete", - "start": 15248, - "end": 15254, + "start": 15283, + "end": 15289, "loc": { "start": { "line": 393, @@ -21761,8 +21761,8 @@ "updateContext": null }, "value": "this", - "start": 15255, - "end": 15259, + "start": 15290, + "end": 15294, "loc": { "start": { "line": 393, @@ -21787,8 +21787,8 @@ "binop": null, "updateContext": null }, - "start": 15259, - "end": 15260, + "start": 15294, + "end": 15295, "loc": { "start": { "line": 393, @@ -21813,8 +21813,8 @@ "binop": null }, "value": "_measurements", - "start": 15260, - "end": 15273, + "start": 15295, + "end": 15308, "loc": { "start": { "line": 393, @@ -21839,8 +21839,8 @@ "binop": null, "updateContext": null }, - "start": 15273, - "end": 15274, + "start": 15308, + "end": 15309, "loc": { "start": { "line": 393, @@ -21865,8 +21865,8 @@ "binop": null }, "value": "measurement", - "start": 15274, - "end": 15285, + "start": 15309, + "end": 15320, "loc": { "start": { "line": 393, @@ -21891,8 +21891,8 @@ "binop": null, "updateContext": null }, - "start": 15285, - "end": 15286, + "start": 15320, + "end": 15321, "loc": { "start": { "line": 393, @@ -21917,8 +21917,8 @@ "binop": null }, "value": "id", - "start": 15286, - "end": 15288, + "start": 15321, + "end": 15323, "loc": { "start": { "line": 393, @@ -21943,8 +21943,8 @@ "binop": null, "updateContext": null }, - "start": 15288, - "end": 15289, + "start": 15323, + "end": 15324, "loc": { "start": { "line": 393, @@ -21969,8 +21969,8 @@ "binop": null, "updateContext": null }, - "start": 15289, - "end": 15290, + "start": 15324, + "end": 15325, "loc": { "start": { "line": 393, @@ -21994,8 +21994,8 @@ "postfix": false, "binop": null }, - "start": 15299, - "end": 15300, + "start": 15334, + "end": 15335, "loc": { "start": { "line": 394, @@ -22019,8 +22019,8 @@ "postfix": false, "binop": null }, - "start": 15300, - "end": 15301, + "start": 15335, + "end": 15336, "loc": { "start": { "line": 394, @@ -22045,8 +22045,8 @@ "binop": null, "updateContext": null }, - "start": 15301, - "end": 15302, + "start": 15336, + "end": 15337, "loc": { "start": { "line": 394, @@ -22071,8 +22071,8 @@ "binop": null }, "value": "measurement", - "start": 15311, - "end": 15322, + "start": 15346, + "end": 15357, "loc": { "start": { "line": 395, @@ -22097,8 +22097,8 @@ "binop": null, "updateContext": null }, - "start": 15322, - "end": 15323, + "start": 15357, + "end": 15358, "loc": { "start": { "line": 395, @@ -22123,8 +22123,8 @@ "binop": null }, "value": "clickable", - "start": 15323, - "end": 15332, + "start": 15358, + "end": 15367, "loc": { "start": { "line": 395, @@ -22150,8 +22150,8 @@ "updateContext": null }, "value": "=", - "start": 15333, - "end": 15334, + "start": 15368, + "end": 15369, "loc": { "start": { "line": 395, @@ -22178,8 +22178,8 @@ "updateContext": null }, "value": "true", - "start": 15335, - "end": 15339, + "start": 15370, + "end": 15374, "loc": { "start": { "line": 395, @@ -22204,8 +22204,8 @@ "binop": null, "updateContext": null }, - "start": 15339, - "end": 15340, + "start": 15374, + "end": 15375, "loc": { "start": { "line": 395, @@ -22232,8 +22232,8 @@ "updateContext": null }, "value": "this", - "start": 15349, - "end": 15353, + "start": 15384, + "end": 15388, "loc": { "start": { "line": 396, @@ -22258,8 +22258,8 @@ "binop": null, "updateContext": null }, - "start": 15353, - "end": 15354, + "start": 15388, + "end": 15389, "loc": { "start": { "line": 396, @@ -22284,8 +22284,8 @@ "binop": null }, "value": "fire", - "start": 15354, - "end": 15358, + "start": 15389, + "end": 15393, "loc": { "start": { "line": 396, @@ -22309,8 +22309,8 @@ "postfix": false, "binop": null }, - "start": 15358, - "end": 15359, + "start": 15393, + "end": 15394, "loc": { "start": { "line": 396, @@ -22336,8 +22336,8 @@ "updateContext": null }, "value": "measurementCreated", - "start": 15359, - "end": 15379, + "start": 15394, + "end": 15414, "loc": { "start": { "line": 396, @@ -22362,8 +22362,8 @@ "binop": null, "updateContext": null }, - "start": 15379, - "end": 15380, + "start": 15414, + "end": 15415, "loc": { "start": { "line": 396, @@ -22388,8 +22388,8 @@ "binop": null }, "value": "measurement", - "start": 15381, - "end": 15392, + "start": 15416, + "end": 15427, "loc": { "start": { "line": 396, @@ -22413,8 +22413,8 @@ "postfix": false, "binop": null }, - "start": 15392, - "end": 15393, + "start": 15427, + "end": 15428, "loc": { "start": { "line": 396, @@ -22439,8 +22439,8 @@ "binop": null, "updateContext": null }, - "start": 15393, - "end": 15394, + "start": 15428, + "end": 15429, "loc": { "start": { "line": 396, @@ -22467,8 +22467,8 @@ "updateContext": null }, "value": "return", - "start": 15403, - "end": 15409, + "start": 15438, + "end": 15444, "loc": { "start": { "line": 397, @@ -22493,8 +22493,8 @@ "binop": null }, "value": "measurement", - "start": 15410, - "end": 15421, + "start": 15445, + "end": 15456, "loc": { "start": { "line": 397, @@ -22519,8 +22519,8 @@ "binop": null, "updateContext": null }, - "start": 15421, - "end": 15422, + "start": 15456, + "end": 15457, "loc": { "start": { "line": 397, @@ -22544,8 +22544,8 @@ "postfix": false, "binop": null }, - "start": 15427, - "end": 15428, + "start": 15462, + "end": 15463, "loc": { "start": { "line": 398, @@ -22560,8 +22560,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys a {@link AngleMeasurement}.\n *\n * @param {String} id ID of AngleMeasurement to destroy.\n ", - "start": 15434, - "end": 15557, + "start": 15469, + "end": 15592, "loc": { "start": { "line": 400, @@ -22586,8 +22586,8 @@ "binop": null }, "value": "destroyMeasurement", - "start": 15562, - "end": 15580, + "start": 15597, + "end": 15615, "loc": { "start": { "line": 405, @@ -22611,8 +22611,8 @@ "postfix": false, "binop": null }, - "start": 15580, - "end": 15581, + "start": 15615, + "end": 15616, "loc": { "start": { "line": 405, @@ -22637,8 +22637,8 @@ "binop": null }, "value": "id", - "start": 15581, - "end": 15583, + "start": 15616, + "end": 15618, "loc": { "start": { "line": 405, @@ -22662,8 +22662,8 @@ "postfix": false, "binop": null }, - "start": 15583, - "end": 15584, + "start": 15618, + "end": 15619, "loc": { "start": { "line": 405, @@ -22687,8 +22687,8 @@ "postfix": false, "binop": null }, - "start": 15585, - "end": 15586, + "start": 15620, + "end": 15621, "loc": { "start": { "line": 405, @@ -22715,8 +22715,8 @@ "updateContext": null }, "value": "const", - "start": 15595, - "end": 15600, + "start": 15630, + "end": 15635, "loc": { "start": { "line": 406, @@ -22741,8 +22741,8 @@ "binop": null }, "value": "measurement", - "start": 15601, - "end": 15612, + "start": 15636, + "end": 15647, "loc": { "start": { "line": 406, @@ -22768,8 +22768,8 @@ "updateContext": null }, "value": "=", - "start": 15613, - "end": 15614, + "start": 15648, + "end": 15649, "loc": { "start": { "line": 406, @@ -22796,8 +22796,8 @@ "updateContext": null }, "value": "this", - "start": 15615, - "end": 15619, + "start": 15650, + "end": 15654, "loc": { "start": { "line": 406, @@ -22822,8 +22822,8 @@ "binop": null, "updateContext": null }, - "start": 15619, - "end": 15620, + "start": 15654, + "end": 15655, "loc": { "start": { "line": 406, @@ -22848,8 +22848,8 @@ "binop": null }, "value": "_measurements", - "start": 15620, - "end": 15633, + "start": 15655, + "end": 15668, "loc": { "start": { "line": 406, @@ -22874,8 +22874,8 @@ "binop": null, "updateContext": null }, - "start": 15633, - "end": 15634, + "start": 15668, + "end": 15669, "loc": { "start": { "line": 406, @@ -22900,8 +22900,8 @@ "binop": null }, "value": "id", - "start": 15634, - "end": 15636, + "start": 15669, + "end": 15671, "loc": { "start": { "line": 406, @@ -22926,8 +22926,8 @@ "binop": null, "updateContext": null }, - "start": 15636, - "end": 15637, + "start": 15671, + "end": 15672, "loc": { "start": { "line": 406, @@ -22952,8 +22952,8 @@ "binop": null, "updateContext": null }, - "start": 15637, - "end": 15638, + "start": 15672, + "end": 15673, "loc": { "start": { "line": 406, @@ -22980,8 +22980,8 @@ "updateContext": null }, "value": "if", - "start": 15647, - "end": 15649, + "start": 15682, + "end": 15684, "loc": { "start": { "line": 407, @@ -23005,8 +23005,8 @@ "postfix": false, "binop": null }, - "start": 15650, - "end": 15651, + "start": 15685, + "end": 15686, "loc": { "start": { "line": 407, @@ -23032,8 +23032,8 @@ "updateContext": null }, "value": "!", - "start": 15651, - "end": 15652, + "start": 15686, + "end": 15687, "loc": { "start": { "line": 407, @@ -23058,8 +23058,8 @@ "binop": null }, "value": "measurement", - "start": 15652, - "end": 15663, + "start": 15687, + "end": 15698, "loc": { "start": { "line": 407, @@ -23083,8 +23083,8 @@ "postfix": false, "binop": null }, - "start": 15663, - "end": 15664, + "start": 15698, + "end": 15699, "loc": { "start": { "line": 407, @@ -23108,8 +23108,8 @@ "postfix": false, "binop": null }, - "start": 15665, - "end": 15666, + "start": 15700, + "end": 15701, "loc": { "start": { "line": 407, @@ -23136,8 +23136,8 @@ "updateContext": null }, "value": "this", - "start": 15679, - "end": 15683, + "start": 15714, + "end": 15718, "loc": { "start": { "line": 408, @@ -23162,8 +23162,8 @@ "binop": null, "updateContext": null }, - "start": 15683, - "end": 15684, + "start": 15718, + "end": 15719, "loc": { "start": { "line": 408, @@ -23188,8 +23188,8 @@ "binop": null }, "value": "log", - "start": 15684, - "end": 15687, + "start": 15719, + "end": 15722, "loc": { "start": { "line": 408, @@ -23213,8 +23213,8 @@ "postfix": false, "binop": null }, - "start": 15687, - "end": 15688, + "start": 15722, + "end": 15723, "loc": { "start": { "line": 408, @@ -23240,8 +23240,8 @@ "updateContext": null }, "value": "AngleMeasurement not found: ", - "start": 15688, - "end": 15718, + "start": 15723, + "end": 15753, "loc": { "start": { "line": 408, @@ -23267,8 +23267,8 @@ "updateContext": null }, "value": "+", - "start": 15719, - "end": 15720, + "start": 15754, + "end": 15755, "loc": { "start": { "line": 408, @@ -23293,8 +23293,8 @@ "binop": null }, "value": "id", - "start": 15721, - "end": 15723, + "start": 15756, + "end": 15758, "loc": { "start": { "line": 408, @@ -23318,8 +23318,8 @@ "postfix": false, "binop": null }, - "start": 15723, - "end": 15724, + "start": 15758, + "end": 15759, "loc": { "start": { "line": 408, @@ -23344,8 +23344,8 @@ "binop": null, "updateContext": null }, - "start": 15724, - "end": 15725, + "start": 15759, + "end": 15760, "loc": { "start": { "line": 408, @@ -23372,8 +23372,8 @@ "updateContext": null }, "value": "return", - "start": 15738, - "end": 15744, + "start": 15773, + "end": 15779, "loc": { "start": { "line": 409, @@ -23398,8 +23398,8 @@ "binop": null, "updateContext": null }, - "start": 15744, - "end": 15745, + "start": 15779, + "end": 15780, "loc": { "start": { "line": 409, @@ -23423,8 +23423,8 @@ "postfix": false, "binop": null }, - "start": 15754, - "end": 15755, + "start": 15789, + "end": 15790, "loc": { "start": { "line": 410, @@ -23449,8 +23449,8 @@ "binop": null }, "value": "measurement", - "start": 15764, - "end": 15775, + "start": 15799, + "end": 15810, "loc": { "start": { "line": 411, @@ -23475,8 +23475,8 @@ "binop": null, "updateContext": null }, - "start": 15775, - "end": 15776, + "start": 15810, + "end": 15811, "loc": { "start": { "line": 411, @@ -23501,8 +23501,8 @@ "binop": null }, "value": "destroy", - "start": 15776, - "end": 15783, + "start": 15811, + "end": 15818, "loc": { "start": { "line": 411, @@ -23526,8 +23526,8 @@ "postfix": false, "binop": null }, - "start": 15783, - "end": 15784, + "start": 15818, + "end": 15819, "loc": { "start": { "line": 411, @@ -23551,8 +23551,8 @@ "postfix": false, "binop": null }, - "start": 15784, - "end": 15785, + "start": 15819, + "end": 15820, "loc": { "start": { "line": 411, @@ -23577,8 +23577,8 @@ "binop": null, "updateContext": null }, - "start": 15785, - "end": 15786, + "start": 15820, + "end": 15821, "loc": { "start": { "line": 411, @@ -23605,8 +23605,8 @@ "updateContext": null }, "value": "this", - "start": 15795, - "end": 15799, + "start": 15830, + "end": 15834, "loc": { "start": { "line": 412, @@ -23631,8 +23631,8 @@ "binop": null, "updateContext": null }, - "start": 15799, - "end": 15800, + "start": 15834, + "end": 15835, "loc": { "start": { "line": 412, @@ -23657,8 +23657,8 @@ "binop": null }, "value": "fire", - "start": 15800, - "end": 15804, + "start": 15835, + "end": 15839, "loc": { "start": { "line": 412, @@ -23682,8 +23682,8 @@ "postfix": false, "binop": null }, - "start": 15804, - "end": 15805, + "start": 15839, + "end": 15840, "loc": { "start": { "line": 412, @@ -23709,8 +23709,8 @@ "updateContext": null }, "value": "measurementDestroyed", - "start": 15805, - "end": 15827, + "start": 15840, + "end": 15862, "loc": { "start": { "line": 412, @@ -23735,8 +23735,8 @@ "binop": null, "updateContext": null }, - "start": 15827, - "end": 15828, + "start": 15862, + "end": 15863, "loc": { "start": { "line": 412, @@ -23761,8 +23761,8 @@ "binop": null }, "value": "measurement", - "start": 15829, - "end": 15840, + "start": 15864, + "end": 15875, "loc": { "start": { "line": 412, @@ -23786,8 +23786,8 @@ "postfix": false, "binop": null }, - "start": 15840, - "end": 15841, + "start": 15875, + "end": 15876, "loc": { "start": { "line": 412, @@ -23812,8 +23812,8 @@ "binop": null, "updateContext": null }, - "start": 15841, - "end": 15842, + "start": 15876, + "end": 15877, "loc": { "start": { "line": 412, @@ -23837,8 +23837,8 @@ "postfix": false, "binop": null }, - "start": 15847, - "end": 15848, + "start": 15882, + "end": 15883, "loc": { "start": { "line": 413, @@ -23853,8 +23853,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the angle label of each {@link AngleMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n ", - "start": 15854, - "end": 16019, + "start": 15889, + "end": 16054, "loc": { "start": { "line": 415, @@ -23879,8 +23879,8 @@ "binop": null }, "value": "setLabelsShown", - "start": 16024, - "end": 16038, + "start": 16059, + "end": 16073, "loc": { "start": { "line": 420, @@ -23904,8 +23904,8 @@ "postfix": false, "binop": null }, - "start": 16038, - "end": 16039, + "start": 16073, + "end": 16074, "loc": { "start": { "line": 420, @@ -23930,8 +23930,8 @@ "binop": null }, "value": "labelsShown", - "start": 16039, - "end": 16050, + "start": 16074, + "end": 16085, "loc": { "start": { "line": 420, @@ -23955,8 +23955,8 @@ "postfix": false, "binop": null }, - "start": 16050, - "end": 16051, + "start": 16085, + "end": 16086, "loc": { "start": { "line": 420, @@ -23980,8 +23980,8 @@ "postfix": false, "binop": null }, - "start": 16052, - "end": 16053, + "start": 16087, + "end": 16088, "loc": { "start": { "line": 420, @@ -24008,8 +24008,8 @@ "updateContext": null }, "value": "for", - "start": 16062, - "end": 16065, + "start": 16097, + "end": 16100, "loc": { "start": { "line": 421, @@ -24033,8 +24033,8 @@ "postfix": false, "binop": null }, - "start": 16066, - "end": 16067, + "start": 16101, + "end": 16102, "loc": { "start": { "line": 421, @@ -24061,8 +24061,8 @@ "updateContext": null }, "value": "const", - "start": 16067, - "end": 16072, + "start": 16102, + "end": 16107, "loc": { "start": { "line": 421, @@ -24087,8 +24087,8 @@ "binop": null, "updateContext": null }, - "start": 16073, - "end": 16074, + "start": 16108, + "end": 16109, "loc": { "start": { "line": 421, @@ -24113,8 +24113,8 @@ "binop": null }, "value": "key", - "start": 16074, - "end": 16077, + "start": 16109, + "end": 16112, "loc": { "start": { "line": 421, @@ -24139,8 +24139,8 @@ "binop": null, "updateContext": null }, - "start": 16077, - "end": 16078, + "start": 16112, + "end": 16113, "loc": { "start": { "line": 421, @@ -24165,8 +24165,8 @@ "binop": null }, "value": "measurement", - "start": 16079, - "end": 16090, + "start": 16114, + "end": 16125, "loc": { "start": { "line": 421, @@ -24191,8 +24191,8 @@ "binop": null, "updateContext": null }, - "start": 16090, - "end": 16091, + "start": 16125, + "end": 16126, "loc": { "start": { "line": 421, @@ -24217,8 +24217,8 @@ "binop": null }, "value": "of", - "start": 16092, - "end": 16094, + "start": 16127, + "end": 16129, "loc": { "start": { "line": 421, @@ -24243,8 +24243,8 @@ "binop": null }, "value": "Object", - "start": 16095, - "end": 16101, + "start": 16130, + "end": 16136, "loc": { "start": { "line": 421, @@ -24269,8 +24269,8 @@ "binop": null, "updateContext": null }, - "start": 16101, - "end": 16102, + "start": 16136, + "end": 16137, "loc": { "start": { "line": 421, @@ -24295,8 +24295,8 @@ "binop": null }, "value": "entries", - "start": 16102, - "end": 16109, + "start": 16137, + "end": 16144, "loc": { "start": { "line": 421, @@ -24320,8 +24320,8 @@ "postfix": false, "binop": null }, - "start": 16109, - "end": 16110, + "start": 16144, + "end": 16145, "loc": { "start": { "line": 421, @@ -24348,8 +24348,8 @@ "updateContext": null }, "value": "this", - "start": 16110, - "end": 16114, + "start": 16145, + "end": 16149, "loc": { "start": { "line": 421, @@ -24374,8 +24374,8 @@ "binop": null, "updateContext": null }, - "start": 16114, - "end": 16115, + "start": 16149, + "end": 16150, "loc": { "start": { "line": 421, @@ -24400,8 +24400,8 @@ "binop": null }, "value": "measurements", - "start": 16115, - "end": 16127, + "start": 16150, + "end": 16162, "loc": { "start": { "line": 421, @@ -24425,8 +24425,8 @@ "postfix": false, "binop": null }, - "start": 16127, - "end": 16128, + "start": 16162, + "end": 16163, "loc": { "start": { "line": 421, @@ -24450,8 +24450,8 @@ "postfix": false, "binop": null }, - "start": 16128, - "end": 16129, + "start": 16163, + "end": 16164, "loc": { "start": { "line": 421, @@ -24475,8 +24475,8 @@ "postfix": false, "binop": null }, - "start": 16130, - "end": 16131, + "start": 16165, + "end": 16166, "loc": { "start": { "line": 421, @@ -24501,8 +24501,8 @@ "binop": null }, "value": "measurement", - "start": 16144, - "end": 16155, + "start": 16179, + "end": 16190, "loc": { "start": { "line": 422, @@ -24527,8 +24527,8 @@ "binop": null, "updateContext": null }, - "start": 16155, - "end": 16156, + "start": 16190, + "end": 16191, "loc": { "start": { "line": 422, @@ -24553,8 +24553,8 @@ "binop": null }, "value": "labelShown", - "start": 16156, - "end": 16166, + "start": 16191, + "end": 16201, "loc": { "start": { "line": 422, @@ -24580,8 +24580,8 @@ "updateContext": null }, "value": "=", - "start": 16167, - "end": 16168, + "start": 16202, + "end": 16203, "loc": { "start": { "line": 422, @@ -24606,8 +24606,8 @@ "binop": null }, "value": "labelsShown", - "start": 16169, - "end": 16180, + "start": 16204, + "end": 16215, "loc": { "start": { "line": 422, @@ -24632,8 +24632,8 @@ "binop": null, "updateContext": null }, - "start": 16180, - "end": 16181, + "start": 16215, + "end": 16216, "loc": { "start": { "line": 422, @@ -24657,8 +24657,8 @@ "postfix": false, "binop": null }, - "start": 16190, - "end": 16191, + "start": 16225, + "end": 16226, "loc": { "start": { "line": 423, @@ -24682,8 +24682,8 @@ "postfix": false, "binop": null }, - "start": 16196, - "end": 16197, + "start": 16231, + "end": 16232, "loc": { "start": { "line": 424, @@ -24698,8 +24698,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys all {@link AngleMeasurement}s.\n ", - "start": 16203, - "end": 16261, + "start": 16238, + "end": 16296, "loc": { "start": { "line": 426, @@ -24724,8 +24724,8 @@ "binop": null }, "value": "clear", - "start": 16266, - "end": 16271, + "start": 16301, + "end": 16306, "loc": { "start": { "line": 429, @@ -24749,8 +24749,8 @@ "postfix": false, "binop": null }, - "start": 16271, - "end": 16272, + "start": 16306, + "end": 16307, "loc": { "start": { "line": 429, @@ -24774,8 +24774,8 @@ "postfix": false, "binop": null }, - "start": 16272, - "end": 16273, + "start": 16307, + "end": 16308, "loc": { "start": { "line": 429, @@ -24799,8 +24799,8 @@ "postfix": false, "binop": null }, - "start": 16274, - "end": 16275, + "start": 16309, + "end": 16310, "loc": { "start": { "line": 429, @@ -24827,8 +24827,8 @@ "updateContext": null }, "value": "const", - "start": 16284, - "end": 16289, + "start": 16319, + "end": 16324, "loc": { "start": { "line": 430, @@ -24853,8 +24853,8 @@ "binop": null }, "value": "ids", - "start": 16290, - "end": 16293, + "start": 16325, + "end": 16328, "loc": { "start": { "line": 430, @@ -24880,8 +24880,8 @@ "updateContext": null }, "value": "=", - "start": 16294, - "end": 16295, + "start": 16329, + "end": 16330, "loc": { "start": { "line": 430, @@ -24906,8 +24906,8 @@ "binop": null }, "value": "Object", - "start": 16296, - "end": 16302, + "start": 16331, + "end": 16337, "loc": { "start": { "line": 430, @@ -24932,8 +24932,8 @@ "binop": null, "updateContext": null }, - "start": 16302, - "end": 16303, + "start": 16337, + "end": 16338, "loc": { "start": { "line": 430, @@ -24958,8 +24958,8 @@ "binop": null }, "value": "keys", - "start": 16303, - "end": 16307, + "start": 16338, + "end": 16342, "loc": { "start": { "line": 430, @@ -24983,8 +24983,8 @@ "postfix": false, "binop": null }, - "start": 16307, - "end": 16308, + "start": 16342, + "end": 16343, "loc": { "start": { "line": 430, @@ -25011,8 +25011,8 @@ "updateContext": null }, "value": "this", - "start": 16308, - "end": 16312, + "start": 16343, + "end": 16347, "loc": { "start": { "line": 430, @@ -25037,8 +25037,8 @@ "binop": null, "updateContext": null }, - "start": 16312, - "end": 16313, + "start": 16347, + "end": 16348, "loc": { "start": { "line": 430, @@ -25063,8 +25063,8 @@ "binop": null }, "value": "_measurements", - "start": 16313, - "end": 16326, + "start": 16348, + "end": 16361, "loc": { "start": { "line": 430, @@ -25088,8 +25088,8 @@ "postfix": false, "binop": null }, - "start": 16326, - "end": 16327, + "start": 16361, + "end": 16362, "loc": { "start": { "line": 430, @@ -25114,8 +25114,8 @@ "binop": null, "updateContext": null }, - "start": 16327, - "end": 16328, + "start": 16362, + "end": 16363, "loc": { "start": { "line": 430, @@ -25142,8 +25142,8 @@ "updateContext": null }, "value": "for", - "start": 16337, - "end": 16340, + "start": 16372, + "end": 16375, "loc": { "start": { "line": 431, @@ -25167,8 +25167,8 @@ "postfix": false, "binop": null }, - "start": 16341, - "end": 16342, + "start": 16376, + "end": 16377, "loc": { "start": { "line": 431, @@ -25195,8 +25195,8 @@ "updateContext": null }, "value": "var", - "start": 16342, - "end": 16345, + "start": 16377, + "end": 16380, "loc": { "start": { "line": 431, @@ -25221,8 +25221,8 @@ "binop": null }, "value": "i", - "start": 16346, - "end": 16347, + "start": 16381, + "end": 16382, "loc": { "start": { "line": 431, @@ -25248,8 +25248,8 @@ "updateContext": null }, "value": "=", - "start": 16348, - "end": 16349, + "start": 16383, + "end": 16384, "loc": { "start": { "line": 431, @@ -25275,8 +25275,8 @@ "updateContext": null }, "value": 0, - "start": 16350, - "end": 16351, + "start": 16385, + "end": 16386, "loc": { "start": { "line": 431, @@ -25301,8 +25301,8 @@ "binop": null, "updateContext": null }, - "start": 16351, - "end": 16352, + "start": 16386, + "end": 16387, "loc": { "start": { "line": 431, @@ -25327,8 +25327,8 @@ "binop": null }, "value": "len", - "start": 16353, - "end": 16356, + "start": 16388, + "end": 16391, "loc": { "start": { "line": 431, @@ -25354,8 +25354,8 @@ "updateContext": null }, "value": "=", - "start": 16357, - "end": 16358, + "start": 16392, + "end": 16393, "loc": { "start": { "line": 431, @@ -25380,8 +25380,8 @@ "binop": null }, "value": "ids", - "start": 16359, - "end": 16362, + "start": 16394, + "end": 16397, "loc": { "start": { "line": 431, @@ -25406,8 +25406,8 @@ "binop": null, "updateContext": null }, - "start": 16362, - "end": 16363, + "start": 16397, + "end": 16398, "loc": { "start": { "line": 431, @@ -25432,8 +25432,8 @@ "binop": null }, "value": "length", - "start": 16363, - "end": 16369, + "start": 16398, + "end": 16404, "loc": { "start": { "line": 431, @@ -25458,8 +25458,8 @@ "binop": null, "updateContext": null }, - "start": 16369, - "end": 16370, + "start": 16404, + "end": 16405, "loc": { "start": { "line": 431, @@ -25484,8 +25484,8 @@ "binop": null }, "value": "i", - "start": 16371, - "end": 16372, + "start": 16406, + "end": 16407, "loc": { "start": { "line": 431, @@ -25511,8 +25511,8 @@ "updateContext": null }, "value": "<", - "start": 16373, - "end": 16374, + "start": 16408, + "end": 16409, "loc": { "start": { "line": 431, @@ -25537,8 +25537,8 @@ "binop": null }, "value": "len", - "start": 16375, - "end": 16378, + "start": 16410, + "end": 16413, "loc": { "start": { "line": 431, @@ -25563,8 +25563,8 @@ "binop": null, "updateContext": null }, - "start": 16378, - "end": 16379, + "start": 16413, + "end": 16414, "loc": { "start": { "line": 431, @@ -25589,8 +25589,8 @@ "binop": null }, "value": "i", - "start": 16380, - "end": 16381, + "start": 16415, + "end": 16416, "loc": { "start": { "line": 431, @@ -25615,8 +25615,8 @@ "binop": null }, "value": "++", - "start": 16381, - "end": 16383, + "start": 16416, + "end": 16418, "loc": { "start": { "line": 431, @@ -25640,8 +25640,8 @@ "postfix": false, "binop": null }, - "start": 16383, - "end": 16384, + "start": 16418, + "end": 16419, "loc": { "start": { "line": 431, @@ -25665,8 +25665,8 @@ "postfix": false, "binop": null }, - "start": 16385, - "end": 16386, + "start": 16420, + "end": 16421, "loc": { "start": { "line": 431, @@ -25693,8 +25693,8 @@ "updateContext": null }, "value": "this", - "start": 16399, - "end": 16403, + "start": 16434, + "end": 16438, "loc": { "start": { "line": 432, @@ -25719,8 +25719,8 @@ "binop": null, "updateContext": null }, - "start": 16403, - "end": 16404, + "start": 16438, + "end": 16439, "loc": { "start": { "line": 432, @@ -25745,8 +25745,8 @@ "binop": null }, "value": "destroyMeasurement", - "start": 16404, - "end": 16422, + "start": 16439, + "end": 16457, "loc": { "start": { "line": 432, @@ -25770,8 +25770,8 @@ "postfix": false, "binop": null }, - "start": 16422, - "end": 16423, + "start": 16457, + "end": 16458, "loc": { "start": { "line": 432, @@ -25796,8 +25796,8 @@ "binop": null }, "value": "ids", - "start": 16423, - "end": 16426, + "start": 16458, + "end": 16461, "loc": { "start": { "line": 432, @@ -25822,8 +25822,8 @@ "binop": null, "updateContext": null }, - "start": 16426, - "end": 16427, + "start": 16461, + "end": 16462, "loc": { "start": { "line": 432, @@ -25848,8 +25848,8 @@ "binop": null }, "value": "i", - "start": 16427, - "end": 16428, + "start": 16462, + "end": 16463, "loc": { "start": { "line": 432, @@ -25874,8 +25874,8 @@ "binop": null, "updateContext": null }, - "start": 16428, - "end": 16429, + "start": 16463, + "end": 16464, "loc": { "start": { "line": 432, @@ -25899,8 +25899,8 @@ "postfix": false, "binop": null }, - "start": 16429, - "end": 16430, + "start": 16464, + "end": 16465, "loc": { "start": { "line": 432, @@ -25925,8 +25925,8 @@ "binop": null, "updateContext": null }, - "start": 16430, - "end": 16431, + "start": 16465, + "end": 16466, "loc": { "start": { "line": 432, @@ -25950,8 +25950,8 @@ "postfix": false, "binop": null }, - "start": 16440, - "end": 16441, + "start": 16475, + "end": 16476, "loc": { "start": { "line": 433, @@ -25975,8 +25975,8 @@ "postfix": false, "binop": null }, - "start": 16446, - "end": 16447, + "start": 16481, + "end": 16482, "loc": { "start": { "line": 434, @@ -25991,8 +25991,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys this AngleMeasurementsPlugin.\n *\n * Destroys all {@link AngleMeasurement}s first.\n ", - "start": 16453, - "end": 16570, + "start": 16488, + "end": 16605, "loc": { "start": { "line": 436, @@ -26017,8 +26017,8 @@ "binop": null }, "value": "destroy", - "start": 16575, - "end": 16582, + "start": 16610, + "end": 16617, "loc": { "start": { "line": 441, @@ -26042,8 +26042,8 @@ "postfix": false, "binop": null }, - "start": 16582, - "end": 16583, + "start": 16617, + "end": 16618, "loc": { "start": { "line": 441, @@ -26067,8 +26067,8 @@ "postfix": false, "binop": null }, - "start": 16583, - "end": 16584, + "start": 16618, + "end": 16619, "loc": { "start": { "line": 441, @@ -26092,8 +26092,8 @@ "postfix": false, "binop": null }, - "start": 16585, - "end": 16586, + "start": 16620, + "end": 16621, "loc": { "start": { "line": 441, @@ -26120,8 +26120,8 @@ "updateContext": null }, "value": "this", - "start": 16595, - "end": 16599, + "start": 16630, + "end": 16634, "loc": { "start": { "line": 442, @@ -26146,8 +26146,8 @@ "binop": null, "updateContext": null }, - "start": 16599, - "end": 16600, + "start": 16634, + "end": 16635, "loc": { "start": { "line": 442, @@ -26172,8 +26172,8 @@ "binop": null }, "value": "clear", - "start": 16600, - "end": 16605, + "start": 16635, + "end": 16640, "loc": { "start": { "line": 442, @@ -26197,8 +26197,8 @@ "postfix": false, "binop": null }, - "start": 16605, - "end": 16606, + "start": 16640, + "end": 16641, "loc": { "start": { "line": 442, @@ -26222,8 +26222,8 @@ "postfix": false, "binop": null }, - "start": 16606, - "end": 16607, + "start": 16641, + "end": 16642, "loc": { "start": { "line": 442, @@ -26248,8 +26248,8 @@ "binop": null, "updateContext": null }, - "start": 16607, - "end": 16608, + "start": 16642, + "end": 16643, "loc": { "start": { "line": 442, @@ -26276,8 +26276,8 @@ "updateContext": null }, "value": "super", - "start": 16617, - "end": 16622, + "start": 16652, + "end": 16657, "loc": { "start": { "line": 443, @@ -26302,8 +26302,8 @@ "binop": null, "updateContext": null }, - "start": 16622, - "end": 16623, + "start": 16657, + "end": 16658, "loc": { "start": { "line": 443, @@ -26328,8 +26328,8 @@ "binop": null }, "value": "destroy", - "start": 16623, - "end": 16630, + "start": 16658, + "end": 16665, "loc": { "start": { "line": 443, @@ -26353,8 +26353,8 @@ "postfix": false, "binop": null }, - "start": 16630, - "end": 16631, + "start": 16665, + "end": 16666, "loc": { "start": { "line": 443, @@ -26378,8 +26378,8 @@ "postfix": false, "binop": null }, - "start": 16631, - "end": 16632, + "start": 16666, + "end": 16667, "loc": { "start": { "line": 443, @@ -26404,8 +26404,8 @@ "binop": null, "updateContext": null }, - "start": 16632, - "end": 16633, + "start": 16667, + "end": 16668, "loc": { "start": { "line": 443, @@ -26429,8 +26429,8 @@ "postfix": false, "binop": null }, - "start": 16638, - "end": 16639, + "start": 16673, + "end": 16674, "loc": { "start": { "line": 444, @@ -26454,8 +26454,8 @@ "postfix": false, "binop": null }, - "start": 16640, - "end": 16641, + "start": 16675, + "end": 16676, "loc": { "start": { "line": 445, @@ -26480,8 +26480,8 @@ "binop": null, "updateContext": null }, - "start": 16643, - "end": 16643, + "start": 16678, + "end": 16678, "loc": { "start": { "line": 447, diff --git a/docs/ast/source/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js.json b/docs/ast/source/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js.json index b76e502471..e4e9d16dcc 100644 --- a/docs/ast/source/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js.json +++ b/docs/ast/source/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js.json @@ -1,7 +1,7 @@ { "type": "File", "start": 0, - "end": 22838, + "end": 22873, "loc": { "start": { "line": 1, @@ -15,7 +15,7 @@ "program": { "type": "Program", "start": 0, - "end": 22838, + "end": 22873, "loc": { "start": { "line": 1, @@ -288,9 +288,9 @@ "trailingComments": [ { "type": "CommentBlock", - "value": "*\n * {@link Viewer} plugin for measuring point-to-point distances.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n *\n * * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n * * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n * * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n *\n * ## Overview\n *\n * * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n * * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\n * and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n * * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n * * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n * * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n * * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n *\n * ## Example 1: Creating DistanceMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n *\n * Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating DistanceMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n * {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n *\n * After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n *\n * The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\n * another DistanceMeasurement, and so on, until deactivated again.\n *\n * [[Run example](/examples/measurement/#distance_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n * ````\n *\n * ## Example 3: Configuring Measurement Units and Scale\n *\n * In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n *\n * The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n *\n * * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n *\n * ````JavaScript\n * const metrics = viewer.scene.metrics;\n\n * metrics.units = \"meters\";\n * metrics.scale = 10.0;\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach event handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * distanceMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * distanceMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * distanceMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"Duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating DistanceMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create distance measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#distance_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * distanceMeasurementsTouchControl.activate();\n * ````\n ", + "value": "*\n * {@link Viewer} plugin for measuring point-to-point distances.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n *\n * * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n * * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n * * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n *\n * ## Overview\n *\n * * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n * * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\n * and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n * * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n * * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n * * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n * * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n *\n * ## Example 1: Creating DistanceMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n *\n * Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating DistanceMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n * {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n *\n * After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n *\n * The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\n * another DistanceMeasurement, and so on, until deactivated again.\n *\n * [[Run example](/examples/measurement/#distance_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n * ````\n *\n * ## Example 3: Configuring Measurement Units and Scale\n *\n * In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n *\n * The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n *\n * * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n *\n * ````JavaScript\n * const metrics = viewer.scene.metrics;\n\n * metrics.units = \"meters\";\n * metrics.scale = 10.0;\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach event handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * distanceMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * distanceMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * distanceMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"Duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating DistanceMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create distance measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#distance_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * distanceMeasurementsTouchControl.activate();\n * ````\n ", "start": 198, - "end": 10622, + "end": 10657, "loc": { "start": { "line": 5, @@ -306,8 +306,8 @@ }, { "type": "Identifier", - "start": 10623, - "end": 22801, + "start": 10658, + "end": 22836, "loc": { "start": { "line": 265, @@ -320,8 +320,8 @@ }, "id": { "type": "Identifier", - "start": 10629, - "end": 10655, + "start": 10664, + "end": 10690, "loc": { "start": { "line": 265, @@ -338,8 +338,8 @@ }, "superClass": { "type": "Identifier", - "start": 10664, - "end": 10670, + "start": 10699, + "end": 10705, "loc": { "start": { "line": 265, @@ -355,8 +355,8 @@ }, "body": { "type": "ClassBody", - "start": 10671, - "end": 22801, + "start": 10706, + "end": 22836, "loc": { "start": { "line": 265, @@ -370,8 +370,8 @@ "body": [ { "type": "ClassMethod", - "start": 12826, - "end": 14731, + "start": 12861, + "end": 14766, "loc": { "start": { "line": 288, @@ -386,8 +386,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 12826, - "end": 12837, + "start": 12861, + "end": 12872, "loc": { "start": { "line": 288, @@ -410,8 +410,8 @@ "params": [ { "type": "Identifier", - "start": 12838, - "end": 12844, + "start": 12873, + "end": 12879, "loc": { "start": { "line": 288, @@ -427,8 +427,8 @@ }, { "type": "AssignmentPattern", - "start": 12846, - "end": 12854, + "start": 12881, + "end": 12889, "loc": { "start": { "line": 288, @@ -441,8 +441,8 @@ }, "left": { "type": "Identifier", - "start": 12846, - "end": 12849, + "start": 12881, + "end": 12884, "loc": { "start": { "line": 288, @@ -458,8 +458,8 @@ }, "right": { "type": "ObjectExpression", - "start": 12852, - "end": 12854, + "start": 12887, + "end": 12889, "loc": { "start": { "line": 288, @@ -476,8 +476,8 @@ ], "body": { "type": "BlockStatement", - "start": 12856, - "end": 14731, + "start": 12891, + "end": 14766, "loc": { "start": { "line": 288, @@ -491,8 +491,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 12867, - "end": 12905, + "start": 12902, + "end": 12940, "loc": { "start": { "line": 290, @@ -505,8 +505,8 @@ }, "expression": { "type": "CallExpression", - "start": 12867, - "end": 12904, + "start": 12902, + "end": 12939, "loc": { "start": { "line": 290, @@ -519,8 +519,8 @@ }, "callee": { "type": "Super", - "start": 12867, - "end": 12872, + "start": 12902, + "end": 12907, "loc": { "start": { "line": 290, @@ -535,8 +535,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 12873, - "end": 12895, + "start": 12908, + "end": 12930, "loc": { "start": { "line": 290, @@ -555,8 +555,8 @@ }, { "type": "Identifier", - "start": 12897, - "end": 12903, + "start": 12932, + "end": 12938, "loc": { "start": { "line": 290, @@ -575,8 +575,8 @@ }, { "type": "ExpressionStatement", - "start": 12915, - "end": 12951, + "start": 12950, + "end": 12986, "loc": { "start": { "line": 292, @@ -589,8 +589,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 12915, - "end": 12950, + "start": 12950, + "end": 12985, "loc": { "start": { "line": 292, @@ -604,8 +604,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 12915, - "end": 12932, + "start": 12950, + "end": 12967, "loc": { "start": { "line": 292, @@ -618,8 +618,8 @@ }, "object": { "type": "ThisExpression", - "start": 12915, - "end": 12919, + "start": 12950, + "end": 12954, "loc": { "start": { "line": 292, @@ -633,8 +633,8 @@ }, "property": { "type": "Identifier", - "start": 12920, - "end": 12932, + "start": 12955, + "end": 12967, "loc": { "start": { "line": 292, @@ -652,8 +652,8 @@ }, "right": { "type": "MemberExpression", - "start": 12935, - "end": 12950, + "start": 12970, + "end": 12985, "loc": { "start": { "line": 292, @@ -666,8 +666,8 @@ }, "object": { "type": "Identifier", - "start": 12935, - "end": 12938, + "start": 12970, + "end": 12973, "loc": { "start": { "line": 292, @@ -683,8 +683,8 @@ }, "property": { "type": "Identifier", - "start": 12939, - "end": 12950, + "start": 12974, + "end": 12985, "loc": { "start": { "line": 292, @@ -704,8 +704,8 @@ }, { "type": "ExpressionStatement", - "start": 12961, - "end": 13010, + "start": 12996, + "end": 13045, "loc": { "start": { "line": 294, @@ -718,8 +718,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 12961, - "end": 13009, + "start": 12996, + "end": 13044, "loc": { "start": { "line": 294, @@ -733,8 +733,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 12961, - "end": 12976, + "start": 12996, + "end": 13011, "loc": { "start": { "line": 294, @@ -747,8 +747,8 @@ }, "object": { "type": "ThisExpression", - "start": 12961, - "end": 12965, + "start": 12996, + "end": 13000, "loc": { "start": { "line": 294, @@ -762,8 +762,8 @@ }, "property": { "type": "Identifier", - "start": 12966, - "end": 12976, + "start": 13001, + "end": 13011, "loc": { "start": { "line": 294, @@ -781,8 +781,8 @@ }, "right": { "type": "LogicalExpression", - "start": 12979, - "end": 13009, + "start": 13014, + "end": 13044, "loc": { "start": { "line": 294, @@ -795,8 +795,8 @@ }, "left": { "type": "MemberExpression", - "start": 12979, - "end": 12992, + "start": 13014, + "end": 13027, "loc": { "start": { "line": 294, @@ -809,8 +809,8 @@ }, "object": { "type": "Identifier", - "start": 12979, - "end": 12982, + "start": 13014, + "end": 13017, "loc": { "start": { "line": 294, @@ -826,8 +826,8 @@ }, "property": { "type": "Identifier", - "start": 12983, - "end": 12992, + "start": 13018, + "end": 13027, "loc": { "start": { "line": 294, @@ -846,8 +846,8 @@ "operator": "||", "right": { "type": "MemberExpression", - "start": 12996, - "end": 13009, + "start": 13031, + "end": 13044, "loc": { "start": { "line": 294, @@ -860,8 +860,8 @@ }, "object": { "type": "Identifier", - "start": 12996, - "end": 13004, + "start": 13031, + "end": 13039, "loc": { "start": { "line": 294, @@ -877,8 +877,8 @@ }, "property": { "type": "Identifier", - "start": 13005, - "end": 13009, + "start": 13040, + "end": 13044, "loc": { "start": { "line": 294, @@ -899,8 +899,8 @@ }, { "type": "ExpressionStatement", - "start": 13020, - "end": 13048, + "start": 13055, + "end": 13083, "loc": { "start": { "line": 296, @@ -913,8 +913,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13020, - "end": 13047, + "start": 13055, + "end": 13082, "loc": { "start": { "line": 296, @@ -928,8 +928,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13020, - "end": 13040, + "start": 13055, + "end": 13075, "loc": { "start": { "line": 296, @@ -942,8 +942,8 @@ }, "object": { "type": "ThisExpression", - "start": 13020, - "end": 13024, + "start": 13055, + "end": 13059, "loc": { "start": { "line": 296, @@ -957,8 +957,8 @@ }, "property": { "type": "Identifier", - "start": 13025, - "end": 13040, + "start": 13060, + "end": 13075, "loc": { "start": { "line": 296, @@ -976,8 +976,8 @@ }, "right": { "type": "NullLiteral", - "start": 13043, - "end": 13047, + "start": 13078, + "end": 13082, "loc": { "start": { "line": 296, @@ -993,8 +993,8 @@ }, { "type": "ExpressionStatement", - "start": 13058, - "end": 13082, + "start": 13093, + "end": 13117, "loc": { "start": { "line": 298, @@ -1007,8 +1007,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13058, - "end": 13081, + "start": 13093, + "end": 13116, "loc": { "start": { "line": 298, @@ -1022,8 +1022,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13058, - "end": 13076, + "start": 13093, + "end": 13111, "loc": { "start": { "line": 298, @@ -1036,8 +1036,8 @@ }, "object": { "type": "ThisExpression", - "start": 13058, - "end": 13062, + "start": 13093, + "end": 13097, "loc": { "start": { "line": 298, @@ -1051,8 +1051,8 @@ }, "property": { "type": "Identifier", - "start": 13063, - "end": 13076, + "start": 13098, + "end": 13111, "loc": { "start": { "line": 298, @@ -1070,8 +1070,8 @@ }, "right": { "type": "ObjectExpression", - "start": 13079, - "end": 13081, + "start": 13114, + "end": 13116, "loc": { "start": { "line": 298, @@ -1088,8 +1088,8 @@ }, { "type": "ExpressionStatement", - "start": 13092, - "end": 13141, + "start": 13127, + "end": 13176, "loc": { "start": { "line": 300, @@ -1102,8 +1102,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13092, - "end": 13140, + "start": 13127, + "end": 13175, "loc": { "start": { "line": 300, @@ -1117,8 +1117,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13092, - "end": 13115, + "start": 13127, + "end": 13150, "loc": { "start": { "line": 300, @@ -1131,8 +1131,8 @@ }, "object": { "type": "ThisExpression", - "start": 13092, - "end": 13096, + "start": 13127, + "end": 13131, "loc": { "start": { "line": 300, @@ -1146,8 +1146,8 @@ }, "property": { "type": "Identifier", - "start": 13097, - "end": 13115, + "start": 13132, + "end": 13150, "loc": { "start": { "line": 300, @@ -1165,8 +1165,8 @@ }, "right": { "type": "MemberExpression", - "start": 13118, - "end": 13140, + "start": 13153, + "end": 13175, "loc": { "start": { "line": 300, @@ -1179,8 +1179,8 @@ }, "object": { "type": "Identifier", - "start": 13118, - "end": 13121, + "start": 13153, + "end": 13156, "loc": { "start": { "line": 300, @@ -1196,8 +1196,8 @@ }, "property": { "type": "Identifier", - "start": 13122, - "end": 13140, + "start": 13157, + "end": 13175, "loc": { "start": { "line": 300, @@ -1217,8 +1217,8 @@ }, { "type": "ExpressionStatement", - "start": 13151, - "end": 13202, + "start": 13186, + "end": 13237, "loc": { "start": { "line": 302, @@ -1231,8 +1231,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13151, - "end": 13201, + "start": 13186, + "end": 13236, "loc": { "start": { "line": 302, @@ -1246,8 +1246,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13151, - "end": 13170, + "start": 13186, + "end": 13205, "loc": { "start": { "line": 302, @@ -1260,8 +1260,8 @@ }, "object": { "type": "ThisExpression", - "start": 13151, - "end": 13155, + "start": 13186, + "end": 13190, "loc": { "start": { "line": 302, @@ -1275,8 +1275,8 @@ }, "property": { "type": "Identifier", - "start": 13156, - "end": 13170, + "start": 13191, + "end": 13205, "loc": { "start": { "line": 302, @@ -1294,8 +1294,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13173, - "end": 13201, + "start": 13208, + "end": 13236, "loc": { "start": { "line": 302, @@ -1308,8 +1308,8 @@ }, "left": { "type": "MemberExpression", - "start": 13173, - "end": 13191, + "start": 13208, + "end": 13226, "loc": { "start": { "line": 302, @@ -1322,8 +1322,8 @@ }, "object": { "type": "Identifier", - "start": 13173, - "end": 13176, + "start": 13208, + "end": 13211, "loc": { "start": { "line": 302, @@ -1339,8 +1339,8 @@ }, "property": { "type": "Identifier", - "start": 13177, - "end": 13191, + "start": 13212, + "end": 13226, "loc": { "start": { "line": 302, @@ -1359,8 +1359,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13196, - "end": 13201, + "start": 13231, + "end": 13236, "loc": { "start": { "line": 302, @@ -1378,8 +1378,8 @@ }, { "type": "ExpressionStatement", - "start": 13211, - "end": 13274, + "start": 13246, + "end": 13309, "loc": { "start": { "line": 303, @@ -1392,8 +1392,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13211, - "end": 13273, + "start": 13246, + "end": 13308, "loc": { "start": { "line": 303, @@ -1407,8 +1407,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13211, - "end": 13236, + "start": 13246, + "end": 13271, "loc": { "start": { "line": 303, @@ -1421,8 +1421,8 @@ }, "object": { "type": "ThisExpression", - "start": 13211, - "end": 13215, + "start": 13246, + "end": 13250, "loc": { "start": { "line": 303, @@ -1436,8 +1436,8 @@ }, "property": { "type": "Identifier", - "start": 13216, - "end": 13236, + "start": 13251, + "end": 13271, "loc": { "start": { "line": 303, @@ -1455,8 +1455,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13239, - "end": 13273, + "start": 13274, + "end": 13308, "loc": { "start": { "line": 303, @@ -1469,8 +1469,8 @@ }, "left": { "type": "MemberExpression", - "start": 13239, - "end": 13263, + "start": 13274, + "end": 13298, "loc": { "start": { "line": 303, @@ -1483,8 +1483,8 @@ }, "object": { "type": "Identifier", - "start": 13239, - "end": 13242, + "start": 13274, + "end": 13277, "loc": { "start": { "line": 303, @@ -1500,8 +1500,8 @@ }, "property": { "type": "Identifier", - "start": 13243, - "end": 13263, + "start": 13278, + "end": 13298, "loc": { "start": { "line": 303, @@ -1520,8 +1520,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13268, - "end": 13273, + "start": 13303, + "end": 13308, "loc": { "start": { "line": 303, @@ -1539,8 +1539,8 @@ }, { "type": "ExpressionStatement", - "start": 13283, - "end": 13346, + "start": 13318, + "end": 13381, "loc": { "start": { "line": 304, @@ -1553,8 +1553,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13283, - "end": 13345, + "start": 13318, + "end": 13380, "loc": { "start": { "line": 304, @@ -1568,8 +1568,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13283, - "end": 13308, + "start": 13318, + "end": 13343, "loc": { "start": { "line": 304, @@ -1582,8 +1582,8 @@ }, "object": { "type": "ThisExpression", - "start": 13283, - "end": 13287, + "start": 13318, + "end": 13322, "loc": { "start": { "line": 304, @@ -1597,8 +1597,8 @@ }, "property": { "type": "Identifier", - "start": 13288, - "end": 13308, + "start": 13323, + "end": 13343, "loc": { "start": { "line": 304, @@ -1616,8 +1616,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13311, - "end": 13345, + "start": 13346, + "end": 13380, "loc": { "start": { "line": 304, @@ -1630,8 +1630,8 @@ }, "left": { "type": "MemberExpression", - "start": 13311, - "end": 13335, + "start": 13346, + "end": 13370, "loc": { "start": { "line": 304, @@ -1644,8 +1644,8 @@ }, "object": { "type": "Identifier", - "start": 13311, - "end": 13314, + "start": 13346, + "end": 13349, "loc": { "start": { "line": 304, @@ -1661,8 +1661,8 @@ }, "property": { "type": "Identifier", - "start": 13315, - "end": 13335, + "start": 13350, + "end": 13370, "loc": { "start": { "line": 304, @@ -1681,8 +1681,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13340, - "end": 13345, + "start": 13375, + "end": 13380, "loc": { "start": { "line": 304, @@ -1700,8 +1700,8 @@ }, { "type": "ExpressionStatement", - "start": 13355, - "end": 13414, + "start": 13390, + "end": 13449, "loc": { "start": { "line": 305, @@ -1714,8 +1714,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13355, - "end": 13413, + "start": 13390, + "end": 13448, "loc": { "start": { "line": 305, @@ -1729,8 +1729,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13355, - "end": 13378, + "start": 13390, + "end": 13413, "loc": { "start": { "line": 305, @@ -1743,8 +1743,8 @@ }, "object": { "type": "ThisExpression", - "start": 13355, - "end": 13359, + "start": 13390, + "end": 13394, "loc": { "start": { "line": 305, @@ -1758,8 +1758,8 @@ }, "property": { "type": "Identifier", - "start": 13360, - "end": 13378, + "start": 13395, + "end": 13413, "loc": { "start": { "line": 305, @@ -1777,8 +1777,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13381, - "end": 13413, + "start": 13416, + "end": 13448, "loc": { "start": { "line": 305, @@ -1791,8 +1791,8 @@ }, "left": { "type": "MemberExpression", - "start": 13381, - "end": 13403, + "start": 13416, + "end": 13438, "loc": { "start": { "line": 305, @@ -1805,8 +1805,8 @@ }, "object": { "type": "Identifier", - "start": 13381, - "end": 13384, + "start": 13416, + "end": 13419, "loc": { "start": { "line": 305, @@ -1822,8 +1822,8 @@ }, "property": { "type": "Identifier", - "start": 13385, - "end": 13403, + "start": 13420, + "end": 13438, "loc": { "start": { "line": 305, @@ -1842,8 +1842,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13408, - "end": 13413, + "start": 13443, + "end": 13448, "loc": { "start": { "line": 305, @@ -1861,8 +1861,8 @@ }, { "type": "ExpressionStatement", - "start": 13423, - "end": 13486, + "start": 13458, + "end": 13521, "loc": { "start": { "line": 306, @@ -1875,8 +1875,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13423, - "end": 13485, + "start": 13458, + "end": 13520, "loc": { "start": { "line": 306, @@ -1890,8 +1890,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13423, - "end": 13448, + "start": 13458, + "end": 13483, "loc": { "start": { "line": 306, @@ -1904,8 +1904,8 @@ }, "object": { "type": "ThisExpression", - "start": 13423, - "end": 13427, + "start": 13458, + "end": 13462, "loc": { "start": { "line": 306, @@ -1919,8 +1919,8 @@ }, "property": { "type": "Identifier", - "start": 13428, - "end": 13448, + "start": 13463, + "end": 13483, "loc": { "start": { "line": 306, @@ -1938,8 +1938,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13451, - "end": 13485, + "start": 13486, + "end": 13520, "loc": { "start": { "line": 306, @@ -1952,8 +1952,8 @@ }, "left": { "type": "MemberExpression", - "start": 13451, - "end": 13475, + "start": 13486, + "end": 13510, "loc": { "start": { "line": 306, @@ -1966,8 +1966,8 @@ }, "object": { "type": "Identifier", - "start": 13451, - "end": 13454, + "start": 13486, + "end": 13489, "loc": { "start": { "line": 306, @@ -1983,8 +1983,8 @@ }, "property": { "type": "Identifier", - "start": 13455, - "end": 13475, + "start": 13490, + "end": 13510, "loc": { "start": { "line": 306, @@ -2003,8 +2003,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13480, - "end": 13485, + "start": 13515, + "end": 13520, "loc": { "start": { "line": 306, @@ -2022,8 +2022,8 @@ }, { "type": "ExpressionStatement", - "start": 13495, - "end": 13554, + "start": 13530, + "end": 13589, "loc": { "start": { "line": 307, @@ -2036,8 +2036,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13495, - "end": 13553, + "start": 13530, + "end": 13588, "loc": { "start": { "line": 307, @@ -2051,8 +2051,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13495, - "end": 13518, + "start": 13530, + "end": 13553, "loc": { "start": { "line": 307, @@ -2065,8 +2065,8 @@ }, "object": { "type": "ThisExpression", - "start": 13495, - "end": 13499, + "start": 13530, + "end": 13534, "loc": { "start": { "line": 307, @@ -2080,8 +2080,8 @@ }, "property": { "type": "Identifier", - "start": 13500, - "end": 13518, + "start": 13535, + "end": 13553, "loc": { "start": { "line": 307, @@ -2099,8 +2099,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13521, - "end": 13553, + "start": 13556, + "end": 13588, "loc": { "start": { "line": 307, @@ -2113,8 +2113,8 @@ }, "left": { "type": "MemberExpression", - "start": 13521, - "end": 13543, + "start": 13556, + "end": 13578, "loc": { "start": { "line": 307, @@ -2127,8 +2127,8 @@ }, "object": { "type": "Identifier", - "start": 13521, - "end": 13524, + "start": 13556, + "end": 13559, "loc": { "start": { "line": 307, @@ -2144,8 +2144,8 @@ }, "property": { "type": "Identifier", - "start": 13525, - "end": 13543, + "start": 13560, + "end": 13578, "loc": { "start": { "line": 307, @@ -2164,8 +2164,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13548, - "end": 13553, + "start": 13583, + "end": 13588, "loc": { "start": { "line": 307, @@ -2183,8 +2183,8 @@ }, { "type": "ExpressionStatement", - "start": 13563, - "end": 13624, + "start": 13598, + "end": 13659, "loc": { "start": { "line": 308, @@ -2197,8 +2197,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13563, - "end": 13623, + "start": 13598, + "end": 13658, "loc": { "start": { "line": 308, @@ -2212,8 +2212,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13563, - "end": 13587, + "start": 13598, + "end": 13622, "loc": { "start": { "line": 308, @@ -2226,8 +2226,8 @@ }, "object": { "type": "ThisExpression", - "start": 13563, - "end": 13567, + "start": 13598, + "end": 13602, "loc": { "start": { "line": 308, @@ -2241,8 +2241,8 @@ }, "property": { "type": "Identifier", - "start": 13568, - "end": 13587, + "start": 13603, + "end": 13622, "loc": { "start": { "line": 308, @@ -2260,8 +2260,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13590, - "end": 13623, + "start": 13625, + "end": 13658, "loc": { "start": { "line": 308, @@ -2274,8 +2274,8 @@ }, "left": { "type": "MemberExpression", - "start": 13590, - "end": 13613, + "start": 13625, + "end": 13648, "loc": { "start": { "line": 308, @@ -2288,8 +2288,8 @@ }, "object": { "type": "Identifier", - "start": 13590, - "end": 13593, + "start": 13625, + "end": 13628, "loc": { "start": { "line": 308, @@ -2305,8 +2305,8 @@ }, "property": { "type": "Identifier", - "start": 13594, - "end": 13613, + "start": 13629, + "end": 13648, "loc": { "start": { "line": 308, @@ -2325,8 +2325,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13618, - "end": 13623, + "start": 13653, + "end": 13658, "loc": { "start": { "line": 308, @@ -2344,8 +2344,8 @@ }, { "type": "ExpressionStatement", - "start": 13633, - "end": 13694, + "start": 13668, + "end": 13729, "loc": { "start": { "line": 309, @@ -2358,8 +2358,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13633, - "end": 13693, + "start": 13668, + "end": 13728, "loc": { "start": { "line": 309, @@ -2373,8 +2373,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13633, - "end": 13657, + "start": 13668, + "end": 13692, "loc": { "start": { "line": 309, @@ -2387,8 +2387,8 @@ }, "object": { "type": "ThisExpression", - "start": 13633, - "end": 13637, + "start": 13668, + "end": 13672, "loc": { "start": { "line": 309, @@ -2402,8 +2402,8 @@ }, "property": { "type": "Identifier", - "start": 13638, - "end": 13657, + "start": 13673, + "end": 13692, "loc": { "start": { "line": 309, @@ -2421,8 +2421,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13660, - "end": 13693, + "start": 13695, + "end": 13728, "loc": { "start": { "line": 309, @@ -2435,8 +2435,8 @@ }, "left": { "type": "MemberExpression", - "start": 13660, - "end": 13683, + "start": 13695, + "end": 13718, "loc": { "start": { "line": 309, @@ -2449,8 +2449,8 @@ }, "object": { "type": "Identifier", - "start": 13660, - "end": 13663, + "start": 13695, + "end": 13698, "loc": { "start": { "line": 309, @@ -2466,8 +2466,8 @@ }, "property": { "type": "Identifier", - "start": 13664, - "end": 13683, + "start": 13699, + "end": 13718, "loc": { "start": { "line": 309, @@ -2486,8 +2486,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13688, - "end": 13693, + "start": 13723, + "end": 13728, "loc": { "start": { "line": 309, @@ -2505,8 +2505,8 @@ }, { "type": "ExpressionStatement", - "start": 13703, - "end": 13764, + "start": 13738, + "end": 13799, "loc": { "start": { "line": 310, @@ -2519,8 +2519,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13703, - "end": 13763, + "start": 13738, + "end": 13798, "loc": { "start": { "line": 310, @@ -2534,8 +2534,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13703, - "end": 13727, + "start": 13738, + "end": 13762, "loc": { "start": { "line": 310, @@ -2548,8 +2548,8 @@ }, "object": { "type": "ThisExpression", - "start": 13703, - "end": 13707, + "start": 13738, + "end": 13742, "loc": { "start": { "line": 310, @@ -2563,8 +2563,8 @@ }, "property": { "type": "Identifier", - "start": 13708, - "end": 13727, + "start": 13743, + "end": 13762, "loc": { "start": { "line": 310, @@ -2582,8 +2582,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13730, - "end": 13763, + "start": 13765, + "end": 13798, "loc": { "start": { "line": 310, @@ -2596,8 +2596,8 @@ }, "left": { "type": "MemberExpression", - "start": 13730, - "end": 13753, + "start": 13765, + "end": 13788, "loc": { "start": { "line": 310, @@ -2610,8 +2610,8 @@ }, "object": { "type": "Identifier", - "start": 13730, - "end": 13733, + "start": 13765, + "end": 13768, "loc": { "start": { "line": 310, @@ -2627,8 +2627,8 @@ }, "property": { "type": "Identifier", - "start": 13734, - "end": 13753, + "start": 13769, + "end": 13788, "loc": { "start": { "line": 310, @@ -2647,8 +2647,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13758, - "end": 13763, + "start": 13793, + "end": 13798, "loc": { "start": { "line": 310, @@ -2666,8 +2666,8 @@ }, { "type": "ExpressionStatement", - "start": 13773, - "end": 13855, + "start": 13808, + "end": 13890, "loc": { "start": { "line": 311, @@ -2680,8 +2680,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13773, - "end": 13854, + "start": 13808, + "end": 13889, "loc": { "start": { "line": 311, @@ -2695,8 +2695,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13773, - "end": 13790, + "start": 13808, + "end": 13825, "loc": { "start": { "line": 311, @@ -2709,8 +2709,8 @@ }, "object": { "type": "ThisExpression", - "start": 13773, - "end": 13777, + "start": 13808, + "end": 13812, "loc": { "start": { "line": 311, @@ -2724,8 +2724,8 @@ }, "property": { "type": "Identifier", - "start": 13778, - "end": 13790, + "start": 13813, + "end": 13825, "loc": { "start": { "line": 311, @@ -2743,8 +2743,8 @@ }, "right": { "type": "ConditionalExpression", - "start": 13793, - "end": 13854, + "start": 13828, + "end": 13889, "loc": { "start": { "line": 311, @@ -2757,8 +2757,8 @@ }, "test": { "type": "BinaryExpression", - "start": 13793, - "end": 13823, + "start": 13828, + "end": 13858, "loc": { "start": { "line": 311, @@ -2771,8 +2771,8 @@ }, "left": { "type": "MemberExpression", - "start": 13793, - "end": 13809, + "start": 13828, + "end": 13844, "loc": { "start": { "line": 311, @@ -2785,8 +2785,8 @@ }, "object": { "type": "Identifier", - "start": 13793, - "end": 13796, + "start": 13828, + "end": 13831, "loc": { "start": { "line": 311, @@ -2802,8 +2802,8 @@ }, "property": { "type": "Identifier", - "start": 13797, - "end": 13809, + "start": 13832, + "end": 13844, "loc": { "start": { "line": 311, @@ -2822,8 +2822,8 @@ "operator": "!==", "right": { "type": "Identifier", - "start": 13814, - "end": 13823, + "start": 13849, + "end": 13858, "loc": { "start": { "line": 311, @@ -2840,8 +2840,8 @@ }, "consequent": { "type": "MemberExpression", - "start": 13826, - "end": 13842, + "start": 13861, + "end": 13877, "loc": { "start": { "line": 311, @@ -2854,8 +2854,8 @@ }, "object": { "type": "Identifier", - "start": 13826, - "end": 13829, + "start": 13861, + "end": 13864, "loc": { "start": { "line": 311, @@ -2871,8 +2871,8 @@ }, "property": { "type": "Identifier", - "start": 13830, - "end": 13842, + "start": 13865, + "end": 13877, "loc": { "start": { "line": 311, @@ -2890,8 +2890,8 @@ }, "alternate": { "type": "StringLiteral", - "start": 13845, - "end": 13854, + "start": 13880, + "end": 13889, "loc": { "start": { "line": 311, @@ -2913,8 +2913,8 @@ }, { "type": "ExpressionStatement", - "start": 13864, - "end": 13898, + "start": 13899, + "end": 13933, "loc": { "start": { "line": 312, @@ -2927,8 +2927,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13864, - "end": 13897, + "start": 13899, + "end": 13932, "loc": { "start": { "line": 312, @@ -2942,8 +2942,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13864, - "end": 13875, + "start": 13899, + "end": 13910, "loc": { "start": { "line": 312, @@ -2956,8 +2956,8 @@ }, "object": { "type": "ThisExpression", - "start": 13864, - "end": 13868, + "start": 13899, + "end": 13903, "loc": { "start": { "line": 312, @@ -2971,8 +2971,8 @@ }, "property": { "type": "Identifier", - "start": 13869, - "end": 13875, + "start": 13904, + "end": 13910, "loc": { "start": { "line": 312, @@ -2990,8 +2990,8 @@ }, "right": { "type": "LogicalExpression", - "start": 13878, - "end": 13897, + "start": 13913, + "end": 13932, "loc": { "start": { "line": 312, @@ -3004,8 +3004,8 @@ }, "left": { "type": "MemberExpression", - "start": 13878, - "end": 13888, + "start": 13913, + "end": 13923, "loc": { "start": { "line": 312, @@ -3018,8 +3018,8 @@ }, "object": { "type": "Identifier", - "start": 13878, - "end": 13881, + "start": 13913, + "end": 13916, "loc": { "start": { "line": 312, @@ -3035,8 +3035,8 @@ }, "property": { "type": "Identifier", - "start": 13882, - "end": 13888, + "start": 13917, + "end": 13923, "loc": { "start": { "line": 312, @@ -3055,8 +3055,8 @@ "operator": "||", "right": { "type": "NumericLiteral", - "start": 13892, - "end": 13897, + "start": 13927, + "end": 13932, "loc": { "start": { "line": 312, @@ -3078,8 +3078,8 @@ }, { "type": "ExpressionStatement", - "start": 13907, - "end": 13970, + "start": 13942, + "end": 14005, "loc": { "start": { "line": 313, @@ -3092,8 +3092,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13907, - "end": 13969, + "start": 13942, + "end": 14004, "loc": { "start": { "line": 313, @@ -3107,8 +3107,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13907, - "end": 13932, + "start": 13942, + "end": 13967, "loc": { "start": { "line": 313, @@ -3121,8 +3121,8 @@ }, "object": { "type": "ThisExpression", - "start": 13907, - "end": 13911, + "start": 13942, + "end": 13946, "loc": { "start": { "line": 313, @@ -3136,8 +3136,8 @@ }, "property": { "type": "Identifier", - "start": 13912, - "end": 13932, + "start": 13947, + "end": 13967, "loc": { "start": { "line": 313, @@ -3155,8 +3155,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13935, - "end": 13969, + "start": 13970, + "end": 14004, "loc": { "start": { "line": 313, @@ -3169,8 +3169,8 @@ }, "left": { "type": "MemberExpression", - "start": 13935, - "end": 13959, + "start": 13970, + "end": 13994, "loc": { "start": { "line": 313, @@ -3183,8 +3183,8 @@ }, "object": { "type": "Identifier", - "start": 13935, - "end": 13938, + "start": 13970, + "end": 13973, "loc": { "start": { "line": 313, @@ -3200,8 +3200,8 @@ }, "property": { "type": "Identifier", - "start": 13939, - "end": 13959, + "start": 13974, + "end": 13994, "loc": { "start": { "line": 313, @@ -3220,8 +3220,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13964, - "end": 13969, + "start": 13999, + "end": 14004, "loc": { "start": { "line": 313, @@ -3239,8 +3239,8 @@ }, { "type": "ExpressionStatement", - "start": 13980, - "end": 14219, + "start": 14015, + "end": 14254, "loc": { "start": { "line": 315, @@ -3253,8 +3253,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13980, - "end": 14219, + "start": 14015, + "end": 14254, "loc": { "start": { "line": 315, @@ -3268,8 +3268,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13980, - "end": 13997, + "start": 14015, + "end": 14032, "loc": { "start": { "line": 315, @@ -3282,8 +3282,8 @@ }, "object": { "type": "ThisExpression", - "start": 13980, - "end": 13984, + "start": 14015, + "end": 14019, "loc": { "start": { "line": 315, @@ -3297,8 +3297,8 @@ }, "property": { "type": "Identifier", - "start": 13985, - "end": 13997, + "start": 14020, + "end": 14032, "loc": { "start": { "line": 315, @@ -3316,8 +3316,8 @@ }, "right": { "type": "ArrowFunctionExpression", - "start": 14000, - "end": 14219, + "start": 14035, + "end": 14254, "loc": { "start": { "line": 315, @@ -3335,8 +3335,8 @@ "params": [ { "type": "Identifier", - "start": 14001, - "end": 14006, + "start": 14036, + "end": 14041, "loc": { "start": { "line": 315, @@ -3352,8 +3352,8 @@ }, { "type": "Identifier", - "start": 14008, - "end": 14019, + "start": 14043, + "end": 14054, "loc": { "start": { "line": 315, @@ -3370,8 +3370,8 @@ ], "body": { "type": "BlockStatement", - "start": 14024, - "end": 14219, + "start": 14059, + "end": 14254, "loc": { "start": { "line": 315, @@ -3385,8 +3385,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 14038, - "end": 14209, + "start": 14073, + "end": 14244, "loc": { "start": { "line": 316, @@ -3399,8 +3399,8 @@ }, "expression": { "type": "CallExpression", - "start": 14038, - "end": 14208, + "start": 14073, + "end": 14243, "loc": { "start": { "line": 316, @@ -3413,8 +3413,8 @@ }, "callee": { "type": "MemberExpression", - "start": 14038, - "end": 14047, + "start": 14073, + "end": 14082, "loc": { "start": { "line": 316, @@ -3427,8 +3427,8 @@ }, "object": { "type": "ThisExpression", - "start": 14038, - "end": 14042, + "start": 14073, + "end": 14077, "loc": { "start": { "line": 316, @@ -3442,8 +3442,8 @@ }, "property": { "type": "Identifier", - "start": 14043, - "end": 14047, + "start": 14078, + "end": 14082, "loc": { "start": { "line": 316, @@ -3462,8 +3462,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 14048, - "end": 14059, + "start": 14083, + "end": 14094, "loc": { "start": { "line": 316, @@ -3482,8 +3482,8 @@ }, { "type": "ObjectExpression", - "start": 14061, - "end": 14207, + "start": 14096, + "end": 14242, "loc": { "start": { "line": 316, @@ -3497,8 +3497,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 14079, - "end": 14091, + "start": 14114, + "end": 14126, "loc": { "start": { "line": 317, @@ -3514,8 +3514,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14079, - "end": 14085, + "start": 14114, + "end": 14120, "loc": { "start": { "line": 317, @@ -3531,8 +3531,8 @@ }, "value": { "type": "ThisExpression", - "start": 14087, - "end": 14091, + "start": 14122, + "end": 14126, "loc": { "start": { "line": 317, @@ -3547,8 +3547,8 @@ }, { "type": "ObjectProperty", - "start": 14109, - "end": 14141, + "start": 14144, + "end": 14176, "loc": { "start": { "line": 318, @@ -3564,8 +3564,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14109, - "end": 14128, + "start": 14144, + "end": 14163, "loc": { "start": { "line": 318, @@ -3581,8 +3581,8 @@ }, "value": { "type": "Identifier", - "start": 14130, - "end": 14141, + "start": 14165, + "end": 14176, "loc": { "start": { "line": 318, @@ -3599,8 +3599,8 @@ }, { "type": "ObjectProperty", - "start": 14159, - "end": 14170, + "start": 14194, + "end": 14205, "loc": { "start": { "line": 319, @@ -3616,8 +3616,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14159, - "end": 14170, + "start": 14194, + "end": 14205, "loc": { "start": { "line": 319, @@ -3633,8 +3633,8 @@ }, "value": { "type": "Identifier", - "start": 14159, - "end": 14170, + "start": 14194, + "end": 14205, "loc": { "start": { "line": 319, @@ -3654,8 +3654,8 @@ }, { "type": "ObjectProperty", - "start": 14188, - "end": 14193, + "start": 14223, + "end": 14228, "loc": { "start": { "line": 320, @@ -3671,8 +3671,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14188, - "end": 14193, + "start": 14223, + "end": 14228, "loc": { "start": { "line": 320, @@ -3688,8 +3688,8 @@ }, "value": { "type": "Identifier", - "start": 14188, - "end": 14193, + "start": 14223, + "end": 14228, "loc": { "start": { "line": 320, @@ -3720,8 +3720,8 @@ }, { "type": "ExpressionStatement", - "start": 14229, - "end": 14471, + "start": 14264, + "end": 14506, "loc": { "start": { "line": 324, @@ -3734,8 +3734,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 14229, - "end": 14470, + "start": 14264, + "end": 14505, "loc": { "start": { "line": 324, @@ -3749,8 +3749,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 14229, - "end": 14247, + "start": 14264, + "end": 14282, "loc": { "start": { "line": 324, @@ -3763,8 +3763,8 @@ }, "object": { "type": "ThisExpression", - "start": 14229, - "end": 14233, + "start": 14264, + "end": 14268, "loc": { "start": { "line": 324, @@ -3778,8 +3778,8 @@ }, "property": { "type": "Identifier", - "start": 14234, - "end": 14247, + "start": 14269, + "end": 14282, "loc": { "start": { "line": 324, @@ -3797,8 +3797,8 @@ }, "right": { "type": "ArrowFunctionExpression", - "start": 14250, - "end": 14470, + "start": 14285, + "end": 14505, "loc": { "start": { "line": 324, @@ -3816,8 +3816,8 @@ "params": [ { "type": "Identifier", - "start": 14251, - "end": 14256, + "start": 14286, + "end": 14291, "loc": { "start": { "line": 324, @@ -3833,8 +3833,8 @@ }, { "type": "Identifier", - "start": 14258, - "end": 14269, + "start": 14293, + "end": 14304, "loc": { "start": { "line": 324, @@ -3851,8 +3851,8 @@ ], "body": { "type": "BlockStatement", - "start": 14274, - "end": 14470, + "start": 14309, + "end": 14505, "loc": { "start": { "line": 324, @@ -3866,8 +3866,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 14288, - "end": 14460, + "start": 14323, + "end": 14495, "loc": { "start": { "line": 325, @@ -3880,8 +3880,8 @@ }, "expression": { "type": "CallExpression", - "start": 14288, - "end": 14459, + "start": 14323, + "end": 14494, "loc": { "start": { "line": 325, @@ -3894,8 +3894,8 @@ }, "callee": { "type": "MemberExpression", - "start": 14288, - "end": 14297, + "start": 14323, + "end": 14332, "loc": { "start": { "line": 325, @@ -3908,8 +3908,8 @@ }, "object": { "type": "ThisExpression", - "start": 14288, - "end": 14292, + "start": 14323, + "end": 14327, "loc": { "start": { "line": 325, @@ -3923,8 +3923,8 @@ }, "property": { "type": "Identifier", - "start": 14293, - "end": 14297, + "start": 14328, + "end": 14332, "loc": { "start": { "line": 325, @@ -3943,8 +3943,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 14298, - "end": 14310, + "start": 14333, + "end": 14345, "loc": { "start": { "line": 325, @@ -3963,8 +3963,8 @@ }, { "type": "ObjectExpression", - "start": 14312, - "end": 14458, + "start": 14347, + "end": 14493, "loc": { "start": { "line": 325, @@ -3978,8 +3978,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 14330, - "end": 14342, + "start": 14365, + "end": 14377, "loc": { "start": { "line": 326, @@ -3995,8 +3995,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14330, - "end": 14336, + "start": 14365, + "end": 14371, "loc": { "start": { "line": 326, @@ -4012,8 +4012,8 @@ }, "value": { "type": "ThisExpression", - "start": 14338, - "end": 14342, + "start": 14373, + "end": 14377, "loc": { "start": { "line": 326, @@ -4028,8 +4028,8 @@ }, { "type": "ObjectProperty", - "start": 14360, - "end": 14392, + "start": 14395, + "end": 14427, "loc": { "start": { "line": 327, @@ -4045,8 +4045,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14360, - "end": 14379, + "start": 14395, + "end": 14414, "loc": { "start": { "line": 327, @@ -4062,8 +4062,8 @@ }, "value": { "type": "Identifier", - "start": 14381, - "end": 14392, + "start": 14416, + "end": 14427, "loc": { "start": { "line": 327, @@ -4080,8 +4080,8 @@ }, { "type": "ObjectProperty", - "start": 14410, - "end": 14421, + "start": 14445, + "end": 14456, "loc": { "start": { "line": 328, @@ -4097,8 +4097,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14410, - "end": 14421, + "start": 14445, + "end": 14456, "loc": { "start": { "line": 328, @@ -4114,8 +4114,8 @@ }, "value": { "type": "Identifier", - "start": 14410, - "end": 14421, + "start": 14445, + "end": 14456, "loc": { "start": { "line": 328, @@ -4135,8 +4135,8 @@ }, { "type": "ObjectProperty", - "start": 14439, - "end": 14444, + "start": 14474, + "end": 14479, "loc": { "start": { "line": 329, @@ -4152,8 +4152,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14439, - "end": 14444, + "start": 14474, + "end": 14479, "loc": { "start": { "line": 329, @@ -4169,8 +4169,8 @@ }, "value": { "type": "Identifier", - "start": 14439, - "end": 14444, + "start": 14474, + "end": 14479, "loc": { "start": { "line": 329, @@ -4201,8 +4201,8 @@ }, { "type": "ExpressionStatement", - "start": 14481, - "end": 14725, + "start": 14516, + "end": 14760, "loc": { "start": { "line": 333, @@ -4215,8 +4215,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 14481, - "end": 14724, + "start": 14516, + "end": 14759, "loc": { "start": { "line": 333, @@ -4230,8 +4230,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 14481, - "end": 14500, + "start": 14516, + "end": 14535, "loc": { "start": { "line": 333, @@ -4244,8 +4244,8 @@ }, "object": { "type": "ThisExpression", - "start": 14481, - "end": 14485, + "start": 14516, + "end": 14520, "loc": { "start": { "line": 333, @@ -4259,8 +4259,8 @@ }, "property": { "type": "Identifier", - "start": 14486, - "end": 14500, + "start": 14521, + "end": 14535, "loc": { "start": { "line": 333, @@ -4278,8 +4278,8 @@ }, "right": { "type": "ArrowFunctionExpression", - "start": 14503, - "end": 14724, + "start": 14538, + "end": 14759, "loc": { "start": { "line": 333, @@ -4297,8 +4297,8 @@ "params": [ { "type": "Identifier", - "start": 14504, - "end": 14509, + "start": 14539, + "end": 14544, "loc": { "start": { "line": 333, @@ -4314,8 +4314,8 @@ }, { "type": "Identifier", - "start": 14511, - "end": 14522, + "start": 14546, + "end": 14557, "loc": { "start": { "line": 333, @@ -4332,8 +4332,8 @@ ], "body": { "type": "BlockStatement", - "start": 14527, - "end": 14724, + "start": 14562, + "end": 14759, "loc": { "start": { "line": 333, @@ -4347,8 +4347,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 14541, - "end": 14714, + "start": 14576, + "end": 14749, "loc": { "start": { "line": 334, @@ -4361,8 +4361,8 @@ }, "expression": { "type": "CallExpression", - "start": 14541, - "end": 14713, + "start": 14576, + "end": 14748, "loc": { "start": { "line": 334, @@ -4375,8 +4375,8 @@ }, "callee": { "type": "MemberExpression", - "start": 14541, - "end": 14550, + "start": 14576, + "end": 14585, "loc": { "start": { "line": 334, @@ -4389,8 +4389,8 @@ }, "object": { "type": "ThisExpression", - "start": 14541, - "end": 14545, + "start": 14576, + "end": 14580, "loc": { "start": { "line": 334, @@ -4404,8 +4404,8 @@ }, "property": { "type": "Identifier", - "start": 14546, - "end": 14550, + "start": 14581, + "end": 14585, "loc": { "start": { "line": 334, @@ -4424,8 +4424,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 14551, - "end": 14564, + "start": 14586, + "end": 14599, "loc": { "start": { "line": 334, @@ -4444,8 +4444,8 @@ }, { "type": "ObjectExpression", - "start": 14566, - "end": 14712, + "start": 14601, + "end": 14747, "loc": { "start": { "line": 334, @@ -4459,8 +4459,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 14584, - "end": 14596, + "start": 14619, + "end": 14631, "loc": { "start": { "line": 335, @@ -4476,8 +4476,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14584, - "end": 14590, + "start": 14619, + "end": 14625, "loc": { "start": { "line": 335, @@ -4493,8 +4493,8 @@ }, "value": { "type": "ThisExpression", - "start": 14592, - "end": 14596, + "start": 14627, + "end": 14631, "loc": { "start": { "line": 335, @@ -4509,8 +4509,8 @@ }, { "type": "ObjectProperty", - "start": 14614, - "end": 14646, + "start": 14649, + "end": 14681, "loc": { "start": { "line": 336, @@ -4526,8 +4526,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14614, - "end": 14633, + "start": 14649, + "end": 14668, "loc": { "start": { "line": 336, @@ -4543,8 +4543,8 @@ }, "value": { "type": "Identifier", - "start": 14635, - "end": 14646, + "start": 14670, + "end": 14681, "loc": { "start": { "line": 336, @@ -4561,8 +4561,8 @@ }, { "type": "ObjectProperty", - "start": 14664, - "end": 14675, + "start": 14699, + "end": 14710, "loc": { "start": { "line": 337, @@ -4578,8 +4578,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14664, - "end": 14675, + "start": 14699, + "end": 14710, "loc": { "start": { "line": 337, @@ -4595,8 +4595,8 @@ }, "value": { "type": "Identifier", - "start": 14664, - "end": 14675, + "start": 14699, + "end": 14710, "loc": { "start": { "line": 337, @@ -4616,8 +4616,8 @@ }, { "type": "ObjectProperty", - "start": 14693, - "end": 14698, + "start": 14728, + "end": 14733, "loc": { "start": { "line": 338, @@ -4633,8 +4633,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14693, - "end": 14698, + "start": 14728, + "end": 14733, "loc": { "start": { "line": 338, @@ -4650,8 +4650,8 @@ }, "value": { "type": "Identifier", - "start": 14693, - "end": 14698, + "start": 14728, + "end": 14733, "loc": { "start": { "line": 338, @@ -4688,8 +4688,8 @@ { "type": "CommentBlock", "value": "*\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"DistanceMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {Number} [cfg.labelMinAxisLength=25] The minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {boolean} [cfg.defaultVisible=true] The default value of the DistanceMeasurements `visible` property.\n * @param {boolean} [cfg.defaultOriginVisible=true] The default value of the DistanceMeasurements `originVisible` property.\n * @param {boolean} [cfg.defaultTargetVisible=true] The default value of the DistanceMeasurements `targetVisible` property.\n * @param {boolean} [cfg.defaultWireVisible=true] The default value of the DistanceMeasurements `wireVisible` property.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of the DistanceMeasurements `labelsVisible` property.\n * @param {boolean} [cfg.defaultAxisVisible=true] The default value of the DistanceMeasurements `axisVisible` property.\n * @param {boolean} [cfg.defaultXAxisVisible=true] The default value of the DistanceMeasurements `xAxisVisible` property.\n * @param {boolean} [cfg.defaultYAxisVisible=true] The default value of the DistanceMeasurements `yAxisVisible` property.\n * @param {boolean} [cfg.defaultZAxisVisible=true] The default value of the DistanceMeasurements `zAxisVisible` property.\n * @param {string} [cfg.defaultColor=#00BBFF] The default color of the length dots, wire and label.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {boolean} [cfg.defaultLabelsOnWires=true] The default value of the DistanceMeasurements `labelsOnWires` property.\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n ", - "start": 10678, - "end": 12821, + "start": 10713, + "end": 12856, "loc": { "start": { "line": 267, @@ -4706,8 +4706,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n ", - "start": 14737, - "end": 14849, + "start": 14772, + "end": 14884, "loc": { "start": { "line": 343, @@ -4723,8 +4723,8 @@ }, { "type": "ClassMethod", - "start": 14854, - "end": 14915, + "start": 14889, + "end": 14950, "loc": { "start": { "line": 347, @@ -4739,8 +4739,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14854, - "end": 14873, + "start": 14889, + "end": 14908, "loc": { "start": { "line": 347, @@ -4763,8 +4763,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 14876, - "end": 14915, + "start": 14911, + "end": 14950, "loc": { "start": { "line": 347, @@ -4778,8 +4778,8 @@ "body": [ { "type": "ReturnStatement", - "start": 14886, - "end": 14909, + "start": 14921, + "end": 14944, "loc": { "start": { "line": 348, @@ -4792,8 +4792,8 @@ }, "argument": { "type": "MemberExpression", - "start": 14893, - "end": 14908, + "start": 14928, + "end": 14943, "loc": { "start": { "line": 348, @@ -4806,8 +4806,8 @@ }, "object": { "type": "ThisExpression", - "start": 14893, - "end": 14897, + "start": 14928, + "end": 14932, "loc": { "start": { "line": 348, @@ -4821,8 +4821,8 @@ }, "property": { "type": "Identifier", - "start": 14898, - "end": 14908, + "start": 14933, + "end": 14943, "loc": { "start": { "line": 348, @@ -4847,8 +4847,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n ", - "start": 14737, - "end": 14849, + "start": 14772, + "end": 14884, "loc": { "start": { "line": 343, @@ -4865,8 +4865,8 @@ { "type": "CommentBlock", "value": "*\n * @private\n ", - "start": 14921, - "end": 14948, + "start": 14956, + "end": 14983, "loc": { "start": { "line": 351, @@ -4882,8 +4882,8 @@ }, { "type": "ClassMethod", - "start": 14953, - "end": 14979, + "start": 14988, + "end": 15014, "loc": { "start": { "line": 354, @@ -4898,8 +4898,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14953, - "end": 14957, + "start": 14988, + "end": 14992, "loc": { "start": { "line": 354, @@ -4922,8 +4922,8 @@ "params": [ { "type": "Identifier", - "start": 14958, - "end": 14962, + "start": 14993, + "end": 14997, "loc": { "start": { "line": 354, @@ -4939,8 +4939,8 @@ }, { "type": "Identifier", - "start": 14964, - "end": 14969, + "start": 14999, + "end": 15004, "loc": { "start": { "line": 354, @@ -4957,8 +4957,8 @@ ], "body": { "type": "BlockStatement", - "start": 14971, - "end": 14979, + "start": 15006, + "end": 15014, "loc": { "start": { "line": 354, @@ -4978,8 +4978,8 @@ { "type": "CommentBlock", "value": "*\n * @private\n ", - "start": 14921, - "end": 14948, + "start": 14956, + "end": 14983, "loc": { "start": { "line": 351, @@ -4996,8 +4996,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the PointerLens attached to this DistanceMeasurementsPlugin.\n * @returns {PointerCircle}\n ", - "start": 14985, - "end": 15101, + "start": 15020, + "end": 15136, "loc": { "start": { "line": 358, @@ -5013,8 +5013,8 @@ }, { "type": "ClassMethod", - "start": 15106, - "end": 15165, + "start": 15141, + "end": 15200, "loc": { "start": { "line": 362, @@ -5029,8 +5029,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 15110, - "end": 15121, + "start": 15145, + "end": 15156, "loc": { "start": { "line": 362, @@ -5052,8 +5052,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 15124, - "end": 15165, + "start": 15159, + "end": 15200, "loc": { "start": { "line": 362, @@ -5067,8 +5067,8 @@ "body": [ { "type": "ReturnStatement", - "start": 15134, - "end": 15159, + "start": 15169, + "end": 15194, "loc": { "start": { "line": 363, @@ -5081,8 +5081,8 @@ }, "argument": { "type": "MemberExpression", - "start": 15141, - "end": 15158, + "start": 15176, + "end": 15193, "loc": { "start": { "line": 363, @@ -5095,8 +5095,8 @@ }, "object": { "type": "ThisExpression", - "start": 15141, - "end": 15145, + "start": 15176, + "end": 15180, "loc": { "start": { "line": 363, @@ -5110,8 +5110,8 @@ }, "property": { "type": "Identifier", - "start": 15146, - "end": 15158, + "start": 15181, + "end": 15193, "loc": { "start": { "line": 363, @@ -5136,8 +5136,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the PointerLens attached to this DistanceMeasurementsPlugin.\n * @returns {PointerCircle}\n ", - "start": 14985, - "end": 15101, + "start": 15020, + "end": 15136, "loc": { "start": { "line": 358, @@ -5154,8 +5154,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the default {@link DistanceMeasurementsControl}.\n *\n * @type {DistanceMeasurementsControl}\n * @deprecated\n ", - "start": 15171, - "end": 15312, + "start": 15206, + "end": 15347, "loc": { "start": { "line": 366, @@ -5171,8 +5171,8 @@ }, { "type": "ClassMethod", - "start": 15317, - "end": 15505, + "start": 15352, + "end": 15540, "loc": { "start": { "line": 372, @@ -5187,8 +5187,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 15321, - "end": 15328, + "start": 15356, + "end": 15363, "loc": { "start": { "line": 372, @@ -5210,8 +5210,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 15331, - "end": 15505, + "start": 15366, + "end": 15540, "loc": { "start": { "line": 372, @@ -5225,8 +5225,8 @@ "body": [ { "type": "IfStatement", - "start": 15341, - "end": 15462, + "start": 15376, + "end": 15497, "loc": { "start": { "line": 373, @@ -5239,8 +5239,8 @@ }, "test": { "type": "UnaryExpression", - "start": 15345, - "end": 15366, + "start": 15380, + "end": 15401, "loc": { "start": { "line": 373, @@ -5255,8 +5255,8 @@ "prefix": true, "argument": { "type": "MemberExpression", - "start": 15346, - "end": 15366, + "start": 15381, + "end": 15401, "loc": { "start": { "line": 373, @@ -5269,8 +5269,8 @@ }, "object": { "type": "ThisExpression", - "start": 15346, - "end": 15350, + "start": 15381, + "end": 15385, "loc": { "start": { "line": 373, @@ -5284,8 +5284,8 @@ }, "property": { "type": "Identifier", - "start": 15351, - "end": 15366, + "start": 15386, + "end": 15401, "loc": { "start": { "line": 373, @@ -5307,8 +5307,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 15368, - "end": 15462, + "start": 15403, + "end": 15497, "loc": { "start": { "line": 373, @@ -5322,8 +5322,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 15382, - "end": 15452, + "start": 15417, + "end": 15487, "loc": { "start": { "line": 374, @@ -5336,8 +5336,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 15382, - "end": 15451, + "start": 15417, + "end": 15486, "loc": { "start": { "line": 374, @@ -5351,8 +5351,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 15382, - "end": 15402, + "start": 15417, + "end": 15437, "loc": { "start": { "line": 374, @@ -5365,8 +5365,8 @@ }, "object": { "type": "ThisExpression", - "start": 15382, - "end": 15386, + "start": 15417, + "end": 15421, "loc": { "start": { "line": 374, @@ -5380,8 +5380,8 @@ }, "property": { "type": "Identifier", - "start": 15387, - "end": 15402, + "start": 15422, + "end": 15437, "loc": { "start": { "line": 374, @@ -5399,8 +5399,8 @@ }, "right": { "type": "NewExpression", - "start": 15405, - "end": 15451, + "start": 15440, + "end": 15486, "loc": { "start": { "line": 374, @@ -5413,8 +5413,8 @@ }, "callee": { "type": "Identifier", - "start": 15409, - "end": 15441, + "start": 15444, + "end": 15476, "loc": { "start": { "line": 374, @@ -5431,8 +5431,8 @@ "arguments": [ { "type": "ThisExpression", - "start": 15442, - "end": 15446, + "start": 15477, + "end": 15481, "loc": { "start": { "line": 374, @@ -5446,8 +5446,8 @@ }, { "type": "ObjectExpression", - "start": 15448, - "end": 15450, + "start": 15483, + "end": 15485, "loc": { "start": { "line": 374, @@ -5471,8 +5471,8 @@ }, { "type": "ReturnStatement", - "start": 15471, - "end": 15499, + "start": 15506, + "end": 15534, "loc": { "start": { "line": 376, @@ -5485,8 +5485,8 @@ }, "argument": { "type": "MemberExpression", - "start": 15478, - "end": 15498, + "start": 15513, + "end": 15533, "loc": { "start": { "line": 376, @@ -5499,8 +5499,8 @@ }, "object": { "type": "ThisExpression", - "start": 15478, - "end": 15482, + "start": 15513, + "end": 15517, "loc": { "start": { "line": 376, @@ -5514,8 +5514,8 @@ }, "property": { "type": "Identifier", - "start": 15483, - "end": 15498, + "start": 15518, + "end": 15533, "loc": { "start": { "line": 376, @@ -5540,8 +5540,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the default {@link DistanceMeasurementsControl}.\n *\n * @type {DistanceMeasurementsControl}\n * @deprecated\n ", - "start": 15171, - "end": 15312, + "start": 15206, + "end": 15347, "loc": { "start": { "line": 366, @@ -5558,8 +5558,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the existing {@link DistanceMeasurement}s, each mapped to its {@link DistanceMeasurement#id}.\n *\n * @type {{String:DistanceMeasurement}}\n ", - "start": 15511, - "end": 15679, + "start": 15546, + "end": 15714, "loc": { "start": { "line": 379, @@ -5575,8 +5575,8 @@ }, { "type": "ClassMethod", - "start": 15684, - "end": 15745, + "start": 15719, + "end": 15780, "loc": { "start": { "line": 384, @@ -5591,8 +5591,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 15688, - "end": 15700, + "start": 15723, + "end": 15735, "loc": { "start": { "line": 384, @@ -5614,8 +5614,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 15703, - "end": 15745, + "start": 15738, + "end": 15780, "loc": { "start": { "line": 384, @@ -5629,8 +5629,8 @@ "body": [ { "type": "ReturnStatement", - "start": 15713, - "end": 15739, + "start": 15748, + "end": 15774, "loc": { "start": { "line": 385, @@ -5643,8 +5643,8 @@ }, "argument": { "type": "MemberExpression", - "start": 15720, - "end": 15738, + "start": 15755, + "end": 15773, "loc": { "start": { "line": 385, @@ -5657,8 +5657,8 @@ }, "object": { "type": "ThisExpression", - "start": 15720, - "end": 15724, + "start": 15755, + "end": 15759, "loc": { "start": { "line": 385, @@ -5672,8 +5672,8 @@ }, "property": { "type": "Identifier", - "start": 15725, - "end": 15738, + "start": 15760, + "end": 15773, "loc": { "start": { "line": 385, @@ -5698,8 +5698,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the existing {@link DistanceMeasurement}s, each mapped to its {@link DistanceMeasurement#id}.\n *\n * @type {{String:DistanceMeasurement}}\n ", - "start": 15511, - "end": 15679, + "start": 15546, + "end": 15714, "loc": { "start": { "line": 379, @@ -5716,8 +5716,8 @@ { "type": "CommentBlock", "value": "*\n * Sets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n *\n * The axis wire's label is not shown when its length is less than this value.\n *\n * This is ````25```` pixels by default.\n *\n * Must not be less than ````1````.\n *\n * @type {number}\n ", - "start": 15751, - "end": 16072, + "start": 15786, + "end": 16107, "loc": { "start": { "line": 388, @@ -5733,8 +5733,8 @@ }, { "type": "ClassMethod", - "start": 16077, - "end": 16350, + "start": 16112, + "end": 16385, "loc": { "start": { "line": 399, @@ -5749,8 +5749,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 16081, - "end": 16099, + "start": 16116, + "end": 16134, "loc": { "start": { "line": 399, @@ -5772,8 +5772,8 @@ "params": [ { "type": "Identifier", - "start": 16100, - "end": 16118, + "start": 16135, + "end": 16153, "loc": { "start": { "line": 399, @@ -5790,8 +5790,8 @@ ], "body": { "type": "BlockStatement", - "start": 16120, - "end": 16350, + "start": 16155, + "end": 16385, "loc": { "start": { "line": 399, @@ -5805,8 +5805,8 @@ "body": [ { "type": "IfStatement", - "start": 16130, - "end": 16283, + "start": 16165, + "end": 16318, "loc": { "start": { "line": 400, @@ -5819,8 +5819,8 @@ }, "test": { "type": "BinaryExpression", - "start": 16134, - "end": 16156, + "start": 16169, + "end": 16191, "loc": { "start": { "line": 400, @@ -5833,8 +5833,8 @@ }, "left": { "type": "Identifier", - "start": 16134, - "end": 16152, + "start": 16169, + "end": 16187, "loc": { "start": { "line": 400, @@ -5851,8 +5851,8 @@ "operator": "<", "right": { "type": "NumericLiteral", - "start": 16155, - "end": 16156, + "start": 16190, + "end": 16191, "loc": { "start": { "line": 400, @@ -5872,8 +5872,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 16158, - "end": 16283, + "start": 16193, + "end": 16318, "loc": { "start": { "line": 400, @@ -5887,8 +5887,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 16172, - "end": 16236, + "start": 16207, + "end": 16271, "loc": { "start": { "line": 401, @@ -5901,8 +5901,8 @@ }, "expression": { "type": "CallExpression", - "start": 16172, - "end": 16235, + "start": 16207, + "end": 16270, "loc": { "start": { "line": 401, @@ -5915,8 +5915,8 @@ }, "callee": { "type": "MemberExpression", - "start": 16172, - "end": 16182, + "start": 16207, + "end": 16217, "loc": { "start": { "line": 401, @@ -5929,8 +5929,8 @@ }, "object": { "type": "ThisExpression", - "start": 16172, - "end": 16176, + "start": 16207, + "end": 16211, "loc": { "start": { "line": 401, @@ -5944,8 +5944,8 @@ }, "property": { "type": "Identifier", - "start": 16177, - "end": 16182, + "start": 16212, + "end": 16217, "loc": { "start": { "line": 401, @@ -5964,8 +5964,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 16183, - "end": 16234, + "start": 16218, + "end": 16269, "loc": { "start": { "line": 401, @@ -5987,8 +5987,8 @@ }, { "type": "ExpressionStatement", - "start": 16249, - "end": 16273, + "start": 16284, + "end": 16308, "loc": { "start": { "line": 402, @@ -6001,8 +6001,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 16249, - "end": 16272, + "start": 16284, + "end": 16307, "loc": { "start": { "line": 402, @@ -6016,8 +6016,8 @@ "operator": "=", "left": { "type": "Identifier", - "start": 16249, - "end": 16267, + "start": 16284, + "end": 16302, "loc": { "start": { "line": 402, @@ -6033,8 +6033,8 @@ }, "right": { "type": "NumericLiteral", - "start": 16270, - "end": 16272, + "start": 16305, + "end": 16307, "loc": { "start": { "line": 402, @@ -6060,8 +6060,8 @@ }, { "type": "ExpressionStatement", - "start": 16292, - "end": 16344, + "start": 16327, + "end": 16379, "loc": { "start": { "line": 404, @@ -6074,8 +6074,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 16292, - "end": 16343, + "start": 16327, + "end": 16378, "loc": { "start": { "line": 404, @@ -6089,8 +6089,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 16292, - "end": 16316, + "start": 16327, + "end": 16351, "loc": { "start": { "line": 404, @@ -6103,8 +6103,8 @@ }, "object": { "type": "ThisExpression", - "start": 16292, - "end": 16296, + "start": 16327, + "end": 16331, "loc": { "start": { "line": 404, @@ -6118,8 +6118,8 @@ }, "property": { "type": "Identifier", - "start": 16297, - "end": 16316, + "start": 16332, + "end": 16351, "loc": { "start": { "line": 404, @@ -6137,8 +6137,8 @@ }, "right": { "type": "LogicalExpression", - "start": 16319, - "end": 16343, + "start": 16354, + "end": 16378, "loc": { "start": { "line": 404, @@ -6151,8 +6151,8 @@ }, "left": { "type": "Identifier", - "start": 16319, - "end": 16337, + "start": 16354, + "end": 16372, "loc": { "start": { "line": 404, @@ -6169,8 +6169,8 @@ "operator": "||", "right": { "type": "NumericLiteral", - "start": 16341, - "end": 16343, + "start": 16376, + "end": 16378, "loc": { "start": { "line": 404, @@ -6198,8 +6198,8 @@ { "type": "CommentBlock", "value": "*\n * Sets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n *\n * The axis wire's label is not shown when its length is less than this value.\n *\n * This is ````25```` pixels by default.\n *\n * Must not be less than ````1````.\n *\n * @type {number}\n ", - "start": 15751, - "end": 16072, + "start": 15786, + "end": 16107, "loc": { "start": { "line": 388, @@ -6216,8 +6216,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @returns {number}\n ", - "start": 16356, - "end": 16484, + "start": 16391, + "end": 16519, "loc": { "start": { "line": 407, @@ -6233,8 +6233,8 @@ }, { "type": "ClassMethod", - "start": 16489, - "end": 16562, + "start": 16524, + "end": 16597, "loc": { "start": { "line": 411, @@ -6249,8 +6249,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 16493, - "end": 16511, + "start": 16528, + "end": 16546, "loc": { "start": { "line": 411, @@ -6272,8 +6272,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 16514, - "end": 16562, + "start": 16549, + "end": 16597, "loc": { "start": { "line": 411, @@ -6287,8 +6287,8 @@ "body": [ { "type": "ReturnStatement", - "start": 16524, - "end": 16556, + "start": 16559, + "end": 16591, "loc": { "start": { "line": 412, @@ -6301,8 +6301,8 @@ }, "argument": { "type": "MemberExpression", - "start": 16531, - "end": 16555, + "start": 16566, + "end": 16590, "loc": { "start": { "line": 412, @@ -6315,8 +6315,8 @@ }, "object": { "type": "ThisExpression", - "start": 16531, - "end": 16535, + "start": 16566, + "end": 16570, "loc": { "start": { "line": 412, @@ -6330,8 +6330,8 @@ }, "property": { "type": "Identifier", - "start": 16536, - "end": 16555, + "start": 16571, + "end": 16590, "loc": { "start": { "line": 412, @@ -6356,8 +6356,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @returns {number}\n ", - "start": 16356, - "end": 16484, + "start": 16391, + "end": 16519, "loc": { "start": { "line": 407, @@ -6374,8 +6374,8 @@ { "type": "CommentBlock", "value": "*\n * Creates a {@link DistanceMeasurement}.\n *\n * The DistanceMeasurement is then registered by {@link DistanceMeasurement#id} in {@link DistanceMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link DistanceMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link DistanceMeasurement#id}. The DistanceMeasurement will be registered by this in {@link DistanceMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link DistanceMeasurement}.\n * @param {Boolean} [params.originVisible=true] Whether to initially show the {@link DistanceMeasurement} origin.\n * @param {Boolean} [params.targetVisible=true] Whether to initially show the {@link DistanceMeasurement} target.\n * @param {Boolean} [params.wireVisible=true] Whether to initially show the direct point-to-point wire between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.axisVisible=true] Whether to initially show the axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.xAxisVisible=true] Whether to initially show the X-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.yAxisVisible=true] Whether to initially show the Y-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.zAxisVisible=true] Whether to initially show the Z-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.labelsVisible=true] Whether to initially show the labels.\n * @param {string} [params.color] The color of the length dot, wire and label.\n * @param {Boolean} [params.labelsOnWires=true] Determines if labels will be set on wires or one below the other.\n * @returns {DistanceMeasurement} The new {@link DistanceMeasurement}.\n ", - "start": 16568, - "end": 19039, + "start": 16603, + "end": 19074, "loc": { "start": { "line": 415, @@ -6391,8 +6391,8 @@ }, { "type": "ClassMethod", - "start": 19044, - "end": 20920, + "start": 19079, + "end": 20955, "loc": { "start": { "line": 439, @@ -6407,8 +6407,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19044, - "end": 19061, + "start": 19079, + "end": 19096, "loc": { "start": { "line": 439, @@ -6431,8 +6431,8 @@ "params": [ { "type": "AssignmentPattern", - "start": 19062, - "end": 19073, + "start": 19097, + "end": 19108, "loc": { "start": { "line": 439, @@ -6445,8 +6445,8 @@ }, "left": { "type": "Identifier", - "start": 19062, - "end": 19068, + "start": 19097, + "end": 19103, "loc": { "start": { "line": 439, @@ -6462,8 +6462,8 @@ }, "right": { "type": "ObjectExpression", - "start": 19071, - "end": 19073, + "start": 19106, + "end": 19108, "loc": { "start": { "line": 439, @@ -6480,8 +6480,8 @@ ], "body": { "type": "BlockStatement", - "start": 19075, - "end": 20920, + "start": 19110, + "end": 20955, "loc": { "start": { "line": 439, @@ -6495,8 +6495,8 @@ "body": [ { "type": "IfStatement", - "start": 19085, - "end": 19263, + "start": 19120, + "end": 19298, "loc": { "start": { "line": 440, @@ -6509,8 +6509,8 @@ }, "test": { "type": "MemberExpression", - "start": 19089, - "end": 19128, + "start": 19124, + "end": 19163, "loc": { "start": { "line": 440, @@ -6523,8 +6523,8 @@ }, "object": { "type": "MemberExpression", - "start": 19089, - "end": 19117, + "start": 19124, + "end": 19152, "loc": { "start": { "line": 440, @@ -6537,8 +6537,8 @@ }, "object": { "type": "MemberExpression", - "start": 19089, - "end": 19106, + "start": 19124, + "end": 19141, "loc": { "start": { "line": 440, @@ -6551,8 +6551,8 @@ }, "object": { "type": "MemberExpression", - "start": 19089, - "end": 19100, + "start": 19124, + "end": 19135, "loc": { "start": { "line": 440, @@ -6565,8 +6565,8 @@ }, "object": { "type": "ThisExpression", - "start": 19089, - "end": 19093, + "start": 19124, + "end": 19128, "loc": { "start": { "line": 440, @@ -6580,8 +6580,8 @@ }, "property": { "type": "Identifier", - "start": 19094, - "end": 19100, + "start": 19129, + "end": 19135, "loc": { "start": { "line": 440, @@ -6599,8 +6599,8 @@ }, "property": { "type": "Identifier", - "start": 19101, - "end": 19106, + "start": 19136, + "end": 19141, "loc": { "start": { "line": 440, @@ -6618,8 +6618,8 @@ }, "property": { "type": "Identifier", - "start": 19107, - "end": 19117, + "start": 19142, + "end": 19152, "loc": { "start": { "line": 440, @@ -6637,8 +6637,8 @@ }, "property": { "type": "MemberExpression", - "start": 19118, - "end": 19127, + "start": 19153, + "end": 19162, "loc": { "start": { "line": 440, @@ -6651,8 +6651,8 @@ }, "object": { "type": "Identifier", - "start": 19118, - "end": 19124, + "start": 19153, + "end": 19159, "loc": { "start": { "line": 440, @@ -6668,8 +6668,8 @@ }, "property": { "type": "Identifier", - "start": 19125, - "end": 19127, + "start": 19160, + "end": 19162, "loc": { "start": { "line": 440, @@ -6689,8 +6689,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 19130, - "end": 19263, + "start": 19165, + "end": 19298, "loc": { "start": { "line": 440, @@ -6704,8 +6704,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 19144, - "end": 19223, + "start": 19179, + "end": 19258, "loc": { "start": { "line": 441, @@ -6718,8 +6718,8 @@ }, "expression": { "type": "CallExpression", - "start": 19144, - "end": 19222, + "start": 19179, + "end": 19257, "loc": { "start": { "line": 441, @@ -6732,8 +6732,8 @@ }, "callee": { "type": "MemberExpression", - "start": 19144, - "end": 19154, + "start": 19179, + "end": 19189, "loc": { "start": { "line": 441, @@ -6746,8 +6746,8 @@ }, "object": { "type": "ThisExpression", - "start": 19144, - "end": 19148, + "start": 19179, + "end": 19183, "loc": { "start": { "line": 441, @@ -6761,8 +6761,8 @@ }, "property": { "type": "Identifier", - "start": 19149, - "end": 19154, + "start": 19184, + "end": 19189, "loc": { "start": { "line": 441, @@ -6781,8 +6781,8 @@ "arguments": [ { "type": "BinaryExpression", - "start": 19155, - "end": 19221, + "start": 19190, + "end": 19256, "loc": { "start": { "line": 441, @@ -6795,8 +6795,8 @@ }, "left": { "type": "StringLiteral", - "start": 19155, - "end": 19209, + "start": 19190, + "end": 19244, "loc": { "start": { "line": 441, @@ -6816,8 +6816,8 @@ "operator": "+", "right": { "type": "MemberExpression", - "start": 19212, - "end": 19221, + "start": 19247, + "end": 19256, "loc": { "start": { "line": 441, @@ -6830,8 +6830,8 @@ }, "object": { "type": "Identifier", - "start": 19212, - "end": 19218, + "start": 19247, + "end": 19253, "loc": { "start": { "line": 441, @@ -6847,8 +6847,8 @@ }, "property": { "type": "Identifier", - "start": 19219, - "end": 19221, + "start": 19254, + "end": 19256, "loc": { "start": { "line": 441, @@ -6870,8 +6870,8 @@ }, { "type": "ExpressionStatement", - "start": 19236, - "end": 19253, + "start": 19271, + "end": 19288, "loc": { "start": { "line": 442, @@ -6884,8 +6884,8 @@ }, "expression": { "type": "UnaryExpression", - "start": 19236, - "end": 19252, + "start": 19271, + "end": 19287, "loc": { "start": { "line": 442, @@ -6900,8 +6900,8 @@ "prefix": true, "argument": { "type": "MemberExpression", - "start": 19243, - "end": 19252, + "start": 19278, + "end": 19287, "loc": { "start": { "line": 442, @@ -6914,8 +6914,8 @@ }, "object": { "type": "Identifier", - "start": 19243, - "end": 19249, + "start": 19278, + "end": 19284, "loc": { "start": { "line": 442, @@ -6931,8 +6931,8 @@ }, "property": { "type": "Identifier", - "start": 19250, - "end": 19252, + "start": 19285, + "end": 19287, "loc": { "start": { "line": 442, @@ -6960,8 +6960,8 @@ }, { "type": "VariableDeclaration", - "start": 19272, - "end": 19301, + "start": 19307, + "end": 19336, "loc": { "start": { "line": 444, @@ -6975,8 +6975,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 19278, - "end": 19300, + "start": 19313, + "end": 19335, "loc": { "start": { "line": 444, @@ -6989,8 +6989,8 @@ }, "id": { "type": "Identifier", - "start": 19278, - "end": 19284, + "start": 19313, + "end": 19319, "loc": { "start": { "line": 444, @@ -7006,8 +7006,8 @@ }, "init": { "type": "MemberExpression", - "start": 19287, - "end": 19300, + "start": 19322, + "end": 19335, "loc": { "start": { "line": 444, @@ -7020,8 +7020,8 @@ }, "object": { "type": "Identifier", - "start": 19287, - "end": 19293, + "start": 19322, + "end": 19328, "loc": { "start": { "line": 444, @@ -7037,8 +7037,8 @@ }, "property": { "type": "Identifier", - "start": 19294, - "end": 19300, + "start": 19329, + "end": 19335, "loc": { "start": { "line": 444, @@ -7060,8 +7060,8 @@ }, { "type": "VariableDeclaration", - "start": 19310, - "end": 19339, + "start": 19345, + "end": 19374, "loc": { "start": { "line": 445, @@ -7075,8 +7075,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 19316, - "end": 19338, + "start": 19351, + "end": 19373, "loc": { "start": { "line": 445, @@ -7089,8 +7089,8 @@ }, "id": { "type": "Identifier", - "start": 19316, - "end": 19322, + "start": 19351, + "end": 19357, "loc": { "start": { "line": 445, @@ -7106,8 +7106,8 @@ }, "init": { "type": "MemberExpression", - "start": 19325, - "end": 19338, + "start": 19360, + "end": 19373, "loc": { "start": { "line": 445, @@ -7120,8 +7120,8 @@ }, "object": { "type": "Identifier", - "start": 19325, - "end": 19331, + "start": 19360, + "end": 19366, "loc": { "start": { "line": 445, @@ -7137,8 +7137,8 @@ }, "property": { "type": "Identifier", - "start": 19332, - "end": 19338, + "start": 19367, + "end": 19373, "loc": { "start": { "line": 445, @@ -7160,8 +7160,8 @@ }, { "type": "VariableDeclaration", - "start": 19348, - "end": 20663, + "start": 19383, + "end": 20698, "loc": { "start": { "line": 446, @@ -7175,8 +7175,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 19354, - "end": 20662, + "start": 19389, + "end": 20697, "loc": { "start": { "line": 446, @@ -7189,8 +7189,8 @@ }, "id": { "type": "Identifier", - "start": 19354, - "end": 19365, + "start": 19389, + "end": 19400, "loc": { "start": { "line": 446, @@ -7206,8 +7206,8 @@ }, "init": { "type": "NewExpression", - "start": 19368, - "end": 20662, + "start": 19403, + "end": 20697, "loc": { "start": { "line": 446, @@ -7220,8 +7220,8 @@ }, "callee": { "type": "Identifier", - "start": 19372, - "end": 19391, + "start": 19407, + "end": 19426, "loc": { "start": { "line": 446, @@ -7238,8 +7238,8 @@ "arguments": [ { "type": "ThisExpression", - "start": 19392, - "end": 19396, + "start": 19427, + "end": 19431, "loc": { "start": { "line": 446, @@ -7253,8 +7253,8 @@ }, { "type": "ObjectExpression", - "start": 19398, - "end": 20661, + "start": 19433, + "end": 20696, "loc": { "start": { "line": 446, @@ -7268,8 +7268,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 19412, - "end": 19425, + "start": 19447, + "end": 19460, "loc": { "start": { "line": 447, @@ -7285,8 +7285,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19412, - "end": 19414, + "start": 19447, + "end": 19449, "loc": { "start": { "line": 447, @@ -7302,8 +7302,8 @@ }, "value": { "type": "MemberExpression", - "start": 19416, - "end": 19425, + "start": 19451, + "end": 19460, "loc": { "start": { "line": 447, @@ -7316,8 +7316,8 @@ }, "object": { "type": "Identifier", - "start": 19416, - "end": 19422, + "start": 19451, + "end": 19457, "loc": { "start": { "line": 447, @@ -7333,8 +7333,8 @@ }, "property": { "type": "Identifier", - "start": 19423, - "end": 19425, + "start": 19458, + "end": 19460, "loc": { "start": { "line": 447, @@ -7353,8 +7353,8 @@ }, { "type": "ObjectProperty", - "start": 19439, - "end": 19451, + "start": 19474, + "end": 19486, "loc": { "start": { "line": 448, @@ -7370,8 +7370,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19439, - "end": 19445, + "start": 19474, + "end": 19480, "loc": { "start": { "line": 448, @@ -7387,8 +7387,8 @@ }, "value": { "type": "ThisExpression", - "start": 19447, - "end": 19451, + "start": 19482, + "end": 19486, "loc": { "start": { "line": 448, @@ -7403,8 +7403,8 @@ }, { "type": "ObjectProperty", - "start": 19465, - "end": 19491, + "start": 19500, + "end": 19526, "loc": { "start": { "line": 449, @@ -7420,8 +7420,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19465, - "end": 19474, + "start": 19500, + "end": 19509, "loc": { "start": { "line": 449, @@ -7437,8 +7437,8 @@ }, "value": { "type": "MemberExpression", - "start": 19476, - "end": 19491, + "start": 19511, + "end": 19526, "loc": { "start": { "line": 449, @@ -7451,8 +7451,8 @@ }, "object": { "type": "ThisExpression", - "start": 19476, - "end": 19480, + "start": 19511, + "end": 19515, "loc": { "start": { "line": 449, @@ -7466,8 +7466,8 @@ }, "property": { "type": "Identifier", - "start": 19481, - "end": 19491, + "start": 19516, + "end": 19526, "loc": { "start": { "line": 449, @@ -7486,8 +7486,8 @@ }, { "type": "ObjectProperty", - "start": 19505, - "end": 19609, + "start": 19540, + "end": 19644, "loc": { "start": { "line": 450, @@ -7503,8 +7503,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19505, - "end": 19511, + "start": 19540, + "end": 19546, "loc": { "start": { "line": 450, @@ -7520,8 +7520,8 @@ }, "value": { "type": "ObjectExpression", - "start": 19513, - "end": 19609, + "start": 19548, + "end": 19644, "loc": { "start": { "line": 450, @@ -7535,8 +7535,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 19531, - "end": 19552, + "start": 19566, + "end": 19587, "loc": { "start": { "line": 451, @@ -7552,8 +7552,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19531, - "end": 19537, + "start": 19566, + "end": 19572, "loc": { "start": { "line": 451, @@ -7569,8 +7569,8 @@ }, "value": { "type": "MemberExpression", - "start": 19539, - "end": 19552, + "start": 19574, + "end": 19587, "loc": { "start": { "line": 451, @@ -7583,8 +7583,8 @@ }, "object": { "type": "Identifier", - "start": 19539, - "end": 19545, + "start": 19574, + "end": 19580, "loc": { "start": { "line": 451, @@ -7600,8 +7600,8 @@ }, "property": { "type": "Identifier", - "start": 19546, - "end": 19552, + "start": 19581, + "end": 19587, "loc": { "start": { "line": 451, @@ -7620,8 +7620,8 @@ }, { "type": "ObjectProperty", - "start": 19570, - "end": 19595, + "start": 19605, + "end": 19630, "loc": { "start": { "line": 452, @@ -7637,8 +7637,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19570, - "end": 19578, + "start": 19605, + "end": 19613, "loc": { "start": { "line": 452, @@ -7654,8 +7654,8 @@ }, "value": { "type": "MemberExpression", - "start": 19580, - "end": 19595, + "start": 19615, + "end": 19630, "loc": { "start": { "line": 452, @@ -7668,8 +7668,8 @@ }, "object": { "type": "Identifier", - "start": 19580, - "end": 19586, + "start": 19615, + "end": 19621, "loc": { "start": { "line": 452, @@ -7685,8 +7685,8 @@ }, "property": { "type": "Identifier", - "start": 19587, - "end": 19595, + "start": 19622, + "end": 19630, "loc": { "start": { "line": 452, @@ -7708,8 +7708,8 @@ }, { "type": "ObjectProperty", - "start": 19623, - "end": 19727, + "start": 19658, + "end": 19762, "loc": { "start": { "line": 454, @@ -7725,8 +7725,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19623, - "end": 19629, + "start": 19658, + "end": 19664, "loc": { "start": { "line": 454, @@ -7742,8 +7742,8 @@ }, "value": { "type": "ObjectExpression", - "start": 19631, - "end": 19727, + "start": 19666, + "end": 19762, "loc": { "start": { "line": 454, @@ -7757,8 +7757,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 19649, - "end": 19670, + "start": 19684, + "end": 19705, "loc": { "start": { "line": 455, @@ -7774,8 +7774,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19649, - "end": 19655, + "start": 19684, + "end": 19690, "loc": { "start": { "line": 455, @@ -7791,8 +7791,8 @@ }, "value": { "type": "MemberExpression", - "start": 19657, - "end": 19670, + "start": 19692, + "end": 19705, "loc": { "start": { "line": 455, @@ -7805,8 +7805,8 @@ }, "object": { "type": "Identifier", - "start": 19657, - "end": 19663, + "start": 19692, + "end": 19698, "loc": { "start": { "line": 455, @@ -7822,8 +7822,8 @@ }, "property": { "type": "Identifier", - "start": 19664, - "end": 19670, + "start": 19699, + "end": 19705, "loc": { "start": { "line": 455, @@ -7842,8 +7842,8 @@ }, { "type": "ObjectProperty", - "start": 19688, - "end": 19713, + "start": 19723, + "end": 19748, "loc": { "start": { "line": 456, @@ -7859,8 +7859,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19688, - "end": 19696, + "start": 19723, + "end": 19731, "loc": { "start": { "line": 456, @@ -7876,8 +7876,8 @@ }, "value": { "type": "MemberExpression", - "start": 19698, - "end": 19713, + "start": 19733, + "end": 19748, "loc": { "start": { "line": 456, @@ -7890,8 +7890,8 @@ }, "object": { "type": "Identifier", - "start": 19698, - "end": 19704, + "start": 19733, + "end": 19739, "loc": { "start": { "line": 456, @@ -7907,8 +7907,8 @@ }, "property": { "type": "Identifier", - "start": 19705, - "end": 19713, + "start": 19740, + "end": 19748, "loc": { "start": { "line": 456, @@ -7930,8 +7930,8 @@ }, { "type": "ObjectProperty", - "start": 19741, - "end": 19764, + "start": 19776, + "end": 19799, "loc": { "start": { "line": 458, @@ -7947,8 +7947,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19741, - "end": 19748, + "start": 19776, + "end": 19783, "loc": { "start": { "line": 458, @@ -7964,8 +7964,8 @@ }, "value": { "type": "MemberExpression", - "start": 19750, - "end": 19764, + "start": 19785, + "end": 19799, "loc": { "start": { "line": 458, @@ -7978,8 +7978,8 @@ }, "object": { "type": "Identifier", - "start": 19750, - "end": 19756, + "start": 19785, + "end": 19791, "loc": { "start": { "line": 458, @@ -7995,8 +7995,8 @@ }, "property": { "type": "Identifier", - "start": 19757, - "end": 19764, + "start": 19792, + "end": 19799, "loc": { "start": { "line": 458, @@ -8015,8 +8015,8 @@ }, { "type": "ObjectProperty", - "start": 19778, - "end": 19809, + "start": 19813, + "end": 19844, "loc": { "start": { "line": 459, @@ -8032,8 +8032,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19778, - "end": 19789, + "start": 19813, + "end": 19824, "loc": { "start": { "line": 459, @@ -8049,8 +8049,8 @@ }, "value": { "type": "MemberExpression", - "start": 19791, - "end": 19809, + "start": 19826, + "end": 19844, "loc": { "start": { "line": 459, @@ -8063,8 +8063,8 @@ }, "object": { "type": "Identifier", - "start": 19791, - "end": 19797, + "start": 19826, + "end": 19832, "loc": { "start": { "line": 459, @@ -8080,8 +8080,8 @@ }, "property": { "type": "Identifier", - "start": 19798, - "end": 19809, + "start": 19833, + "end": 19844, "loc": { "start": { "line": 459, @@ -8100,8 +8100,8 @@ }, { "type": "ObjectProperty", - "start": 19823, - "end": 19901, + "start": 19858, + "end": 19936, "loc": { "start": { "line": 460, @@ -8117,8 +8117,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19823, - "end": 19834, + "start": 19858, + "end": 19869, "loc": { "start": { "line": 460, @@ -8134,8 +8134,8 @@ }, "value": { "type": "LogicalExpression", - "start": 19836, - "end": 19901, + "start": 19871, + "end": 19936, "loc": { "start": { "line": 460, @@ -8148,8 +8148,8 @@ }, "left": { "type": "BinaryExpression", - "start": 19836, - "end": 19864, + "start": 19871, + "end": 19899, "loc": { "start": { "line": 460, @@ -8162,8 +8162,8 @@ }, "left": { "type": "MemberExpression", - "start": 19836, - "end": 19854, + "start": 19871, + "end": 19889, "loc": { "start": { "line": 460, @@ -8176,8 +8176,8 @@ }, "object": { "type": "Identifier", - "start": 19836, - "end": 19842, + "start": 19871, + "end": 19877, "loc": { "start": { "line": 460, @@ -8193,8 +8193,8 @@ }, "property": { "type": "Identifier", - "start": 19843, - "end": 19854, + "start": 19878, + "end": 19889, "loc": { "start": { "line": 460, @@ -8213,8 +8213,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 19859, - "end": 19864, + "start": 19894, + "end": 19899, "loc": { "start": { "line": 460, @@ -8231,8 +8231,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 19868, - "end": 19901, + "start": 19903, + "end": 19936, "loc": { "start": { "line": 460, @@ -8245,8 +8245,8 @@ }, "left": { "type": "MemberExpression", - "start": 19868, - "end": 19891, + "start": 19903, + "end": 19926, "loc": { "start": { "line": 460, @@ -8259,8 +8259,8 @@ }, "object": { "type": "ThisExpression", - "start": 19868, - "end": 19872, + "start": 19903, + "end": 19907, "loc": { "start": { "line": 460, @@ -8274,8 +8274,8 @@ }, "property": { "type": "Identifier", - "start": 19873, - "end": 19891, + "start": 19908, + "end": 19926, "loc": { "start": { "line": 460, @@ -8294,8 +8294,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 19896, - "end": 19901, + "start": 19931, + "end": 19936, "loc": { "start": { "line": 460, @@ -8313,8 +8313,8 @@ }, { "type": "ObjectProperty", - "start": 19915, - "end": 19996, + "start": 19950, + "end": 20031, "loc": { "start": { "line": 461, @@ -8330,8 +8330,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19915, - "end": 19927, + "start": 19950, + "end": 19962, "loc": { "start": { "line": 461, @@ -8347,8 +8347,8 @@ }, "value": { "type": "LogicalExpression", - "start": 19929, - "end": 19996, + "start": 19964, + "end": 20031, "loc": { "start": { "line": 461, @@ -8361,8 +8361,8 @@ }, "left": { "type": "BinaryExpression", - "start": 19929, - "end": 19958, + "start": 19964, + "end": 19993, "loc": { "start": { "line": 461, @@ -8375,8 +8375,8 @@ }, "left": { "type": "MemberExpression", - "start": 19929, - "end": 19948, + "start": 19964, + "end": 19983, "loc": { "start": { "line": 461, @@ -8389,8 +8389,8 @@ }, "object": { "type": "Identifier", - "start": 19929, - "end": 19935, + "start": 19964, + "end": 19970, "loc": { "start": { "line": 461, @@ -8406,8 +8406,8 @@ }, "property": { "type": "Identifier", - "start": 19936, - "end": 19948, + "start": 19971, + "end": 19983, "loc": { "start": { "line": 461, @@ -8426,8 +8426,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 19953, - "end": 19958, + "start": 19988, + "end": 19993, "loc": { "start": { "line": 461, @@ -8444,8 +8444,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 19962, - "end": 19996, + "start": 19997, + "end": 20031, "loc": { "start": { "line": 461, @@ -8458,8 +8458,8 @@ }, "left": { "type": "MemberExpression", - "start": 19962, - "end": 19986, + "start": 19997, + "end": 20021, "loc": { "start": { "line": 461, @@ -8472,8 +8472,8 @@ }, "object": { "type": "ThisExpression", - "start": 19962, - "end": 19966, + "start": 19997, + "end": 20001, "loc": { "start": { "line": 461, @@ -8487,8 +8487,8 @@ }, "property": { "type": "Identifier", - "start": 19967, - "end": 19986, + "start": 20002, + "end": 20021, "loc": { "start": { "line": 461, @@ -8507,8 +8507,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 19991, - "end": 19996, + "start": 20026, + "end": 20031, "loc": { "start": { "line": 461, @@ -8526,8 +8526,8 @@ }, { "type": "ObjectProperty", - "start": 20010, - "end": 20091, + "start": 20045, + "end": 20126, "loc": { "start": { "line": 462, @@ -8543,8 +8543,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20010, - "end": 20022, + "start": 20045, + "end": 20057, "loc": { "start": { "line": 462, @@ -8560,8 +8560,8 @@ }, "value": { "type": "LogicalExpression", - "start": 20024, - "end": 20091, + "start": 20059, + "end": 20126, "loc": { "start": { "line": 462, @@ -8574,8 +8574,8 @@ }, "left": { "type": "BinaryExpression", - "start": 20024, - "end": 20053, + "start": 20059, + "end": 20088, "loc": { "start": { "line": 462, @@ -8588,8 +8588,8 @@ }, "left": { "type": "MemberExpression", - "start": 20024, - "end": 20043, + "start": 20059, + "end": 20078, "loc": { "start": { "line": 462, @@ -8602,8 +8602,8 @@ }, "object": { "type": "Identifier", - "start": 20024, - "end": 20030, + "start": 20059, + "end": 20065, "loc": { "start": { "line": 462, @@ -8619,8 +8619,8 @@ }, "property": { "type": "Identifier", - "start": 20031, - "end": 20043, + "start": 20066, + "end": 20078, "loc": { "start": { "line": 462, @@ -8639,8 +8639,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20048, - "end": 20053, + "start": 20083, + "end": 20088, "loc": { "start": { "line": 462, @@ -8657,8 +8657,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 20057, - "end": 20091, + "start": 20092, + "end": 20126, "loc": { "start": { "line": 462, @@ -8671,8 +8671,8 @@ }, "left": { "type": "MemberExpression", - "start": 20057, - "end": 20081, + "start": 20092, + "end": 20116, "loc": { "start": { "line": 462, @@ -8685,8 +8685,8 @@ }, "object": { "type": "ThisExpression", - "start": 20057, - "end": 20061, + "start": 20092, + "end": 20096, "loc": { "start": { "line": 462, @@ -8700,8 +8700,8 @@ }, "property": { "type": "Identifier", - "start": 20062, - "end": 20081, + "start": 20097, + "end": 20116, "loc": { "start": { "line": 462, @@ -8720,8 +8720,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20086, - "end": 20091, + "start": 20121, + "end": 20126, "loc": { "start": { "line": 462, @@ -8739,8 +8739,8 @@ }, { "type": "ObjectProperty", - "start": 20105, - "end": 20186, + "start": 20140, + "end": 20221, "loc": { "start": { "line": 463, @@ -8756,8 +8756,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20105, - "end": 20117, + "start": 20140, + "end": 20152, "loc": { "start": { "line": 463, @@ -8773,8 +8773,8 @@ }, "value": { "type": "LogicalExpression", - "start": 20119, - "end": 20186, + "start": 20154, + "end": 20221, "loc": { "start": { "line": 463, @@ -8787,8 +8787,8 @@ }, "left": { "type": "BinaryExpression", - "start": 20119, - "end": 20148, + "start": 20154, + "end": 20183, "loc": { "start": { "line": 463, @@ -8801,8 +8801,8 @@ }, "left": { "type": "MemberExpression", - "start": 20119, - "end": 20138, + "start": 20154, + "end": 20173, "loc": { "start": { "line": 463, @@ -8815,8 +8815,8 @@ }, "object": { "type": "Identifier", - "start": 20119, - "end": 20125, + "start": 20154, + "end": 20160, "loc": { "start": { "line": 463, @@ -8832,8 +8832,8 @@ }, "property": { "type": "Identifier", - "start": 20126, - "end": 20138, + "start": 20161, + "end": 20173, "loc": { "start": { "line": 463, @@ -8852,8 +8852,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20143, - "end": 20148, + "start": 20178, + "end": 20183, "loc": { "start": { "line": 463, @@ -8870,8 +8870,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 20152, - "end": 20186, + "start": 20187, + "end": 20221, "loc": { "start": { "line": 463, @@ -8884,8 +8884,8 @@ }, "left": { "type": "MemberExpression", - "start": 20152, - "end": 20176, + "start": 20187, + "end": 20211, "loc": { "start": { "line": 463, @@ -8898,8 +8898,8 @@ }, "object": { "type": "ThisExpression", - "start": 20152, - "end": 20156, + "start": 20187, + "end": 20191, "loc": { "start": { "line": 463, @@ -8913,8 +8913,8 @@ }, "property": { "type": "Identifier", - "start": 20157, - "end": 20176, + "start": 20192, + "end": 20211, "loc": { "start": { "line": 463, @@ -8933,8 +8933,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20181, - "end": 20186, + "start": 20216, + "end": 20221, "loc": { "start": { "line": 463, @@ -8952,8 +8952,8 @@ }, { "type": "ObjectProperty", - "start": 20200, - "end": 20284, + "start": 20235, + "end": 20319, "loc": { "start": { "line": 464, @@ -8969,8 +8969,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20200, - "end": 20213, + "start": 20235, + "end": 20248, "loc": { "start": { "line": 464, @@ -8986,8 +8986,8 @@ }, "value": { "type": "LogicalExpression", - "start": 20215, - "end": 20284, + "start": 20250, + "end": 20319, "loc": { "start": { "line": 464, @@ -9000,8 +9000,8 @@ }, "left": { "type": "BinaryExpression", - "start": 20215, - "end": 20245, + "start": 20250, + "end": 20280, "loc": { "start": { "line": 464, @@ -9014,8 +9014,8 @@ }, "left": { "type": "MemberExpression", - "start": 20215, - "end": 20235, + "start": 20250, + "end": 20270, "loc": { "start": { "line": 464, @@ -9028,8 +9028,8 @@ }, "object": { "type": "Identifier", - "start": 20215, - "end": 20221, + "start": 20250, + "end": 20256, "loc": { "start": { "line": 464, @@ -9045,8 +9045,8 @@ }, "property": { "type": "Identifier", - "start": 20222, - "end": 20235, + "start": 20257, + "end": 20270, "loc": { "start": { "line": 464, @@ -9065,8 +9065,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20240, - "end": 20245, + "start": 20275, + "end": 20280, "loc": { "start": { "line": 464, @@ -9083,8 +9083,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 20249, - "end": 20284, + "start": 20284, + "end": 20319, "loc": { "start": { "line": 464, @@ -9097,8 +9097,8 @@ }, "left": { "type": "MemberExpression", - "start": 20249, - "end": 20274, + "start": 20284, + "end": 20309, "loc": { "start": { "line": 464, @@ -9111,8 +9111,8 @@ }, "object": { "type": "ThisExpression", - "start": 20249, - "end": 20253, + "start": 20284, + "end": 20288, "loc": { "start": { "line": 464, @@ -9126,8 +9126,8 @@ }, "property": { "type": "Identifier", - "start": 20254, - "end": 20274, + "start": 20289, + "end": 20309, "loc": { "start": { "line": 464, @@ -9146,8 +9146,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20279, - "end": 20284, + "start": 20314, + "end": 20319, "loc": { "start": { "line": 464, @@ -9165,8 +9165,8 @@ }, { "type": "ObjectProperty", - "start": 20298, - "end": 20333, + "start": 20333, + "end": 20368, "loc": { "start": { "line": 465, @@ -9182,8 +9182,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20298, - "end": 20311, + "start": 20333, + "end": 20346, "loc": { "start": { "line": 465, @@ -9199,8 +9199,8 @@ }, "value": { "type": "MemberExpression", - "start": 20313, - "end": 20333, + "start": 20348, + "end": 20368, "loc": { "start": { "line": 465, @@ -9213,8 +9213,8 @@ }, "object": { "type": "Identifier", - "start": 20313, - "end": 20319, + "start": 20348, + "end": 20354, "loc": { "start": { "line": 465, @@ -9230,8 +9230,8 @@ }, "property": { "type": "Identifier", - "start": 20320, - "end": 20333, + "start": 20355, + "end": 20368, "loc": { "start": { "line": 465, @@ -9250,8 +9250,8 @@ }, { "type": "ObjectProperty", - "start": 20347, - "end": 20382, + "start": 20382, + "end": 20417, "loc": { "start": { "line": 466, @@ -9267,8 +9267,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20347, - "end": 20360, + "start": 20382, + "end": 20395, "loc": { "start": { "line": 466, @@ -9284,8 +9284,8 @@ }, "value": { "type": "MemberExpression", - "start": 20362, - "end": 20382, + "start": 20397, + "end": 20417, "loc": { "start": { "line": 466, @@ -9298,8 +9298,8 @@ }, "object": { "type": "Identifier", - "start": 20362, - "end": 20368, + "start": 20397, + "end": 20403, "loc": { "start": { "line": 466, @@ -9315,8 +9315,8 @@ }, "property": { "type": "Identifier", - "start": 20369, - "end": 20382, + "start": 20404, + "end": 20417, "loc": { "start": { "line": 466, @@ -9335,8 +9335,8 @@ }, { "type": "ObjectProperty", - "start": 20396, - "end": 20415, + "start": 20431, + "end": 20450, "loc": { "start": { "line": 467, @@ -9352,8 +9352,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20396, - "end": 20401, + "start": 20431, + "end": 20436, "loc": { "start": { "line": 467, @@ -9369,8 +9369,8 @@ }, "value": { "type": "MemberExpression", - "start": 20403, - "end": 20415, + "start": 20438, + "end": 20450, "loc": { "start": { "line": 467, @@ -9383,8 +9383,8 @@ }, "object": { "type": "Identifier", - "start": 20403, - "end": 20409, + "start": 20438, + "end": 20444, "loc": { "start": { "line": 467, @@ -9400,8 +9400,8 @@ }, "property": { "type": "Identifier", - "start": 20410, - "end": 20415, + "start": 20445, + "end": 20450, "loc": { "start": { "line": 467, @@ -9420,8 +9420,8 @@ }, { "type": "ObjectProperty", - "start": 20429, - "end": 20513, + "start": 20464, + "end": 20548, "loc": { "start": { "line": 468, @@ -9437,8 +9437,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20429, - "end": 20442, + "start": 20464, + "end": 20477, "loc": { "start": { "line": 468, @@ -9454,8 +9454,8 @@ }, "value": { "type": "LogicalExpression", - "start": 20444, - "end": 20513, + "start": 20479, + "end": 20548, "loc": { "start": { "line": 468, @@ -9468,8 +9468,8 @@ }, "left": { "type": "BinaryExpression", - "start": 20444, - "end": 20474, + "start": 20479, + "end": 20509, "loc": { "start": { "line": 468, @@ -9482,8 +9482,8 @@ }, "left": { "type": "MemberExpression", - "start": 20444, - "end": 20464, + "start": 20479, + "end": 20499, "loc": { "start": { "line": 468, @@ -9496,8 +9496,8 @@ }, "object": { "type": "Identifier", - "start": 20444, - "end": 20450, + "start": 20479, + "end": 20485, "loc": { "start": { "line": 468, @@ -9513,8 +9513,8 @@ }, "property": { "type": "Identifier", - "start": 20451, - "end": 20464, + "start": 20486, + "end": 20499, "loc": { "start": { "line": 468, @@ -9533,8 +9533,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20469, - "end": 20474, + "start": 20504, + "end": 20509, "loc": { "start": { "line": 468, @@ -9551,8 +9551,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 20478, - "end": 20513, + "start": 20513, + "end": 20548, "loc": { "start": { "line": 468, @@ -9565,8 +9565,8 @@ }, "left": { "type": "MemberExpression", - "start": 20478, - "end": 20503, + "start": 20513, + "end": 20538, "loc": { "start": { "line": 468, @@ -9579,8 +9579,8 @@ }, "object": { "type": "ThisExpression", - "start": 20478, - "end": 20482, + "start": 20513, + "end": 20517, "loc": { "start": { "line": 468, @@ -9594,8 +9594,8 @@ }, "property": { "type": "Identifier", - "start": 20483, - "end": 20503, + "start": 20518, + "end": 20538, "loc": { "start": { "line": 468, @@ -9614,8 +9614,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20508, - "end": 20513, + "start": 20543, + "end": 20548, "loc": { "start": { "line": 468, @@ -9633,8 +9633,8 @@ }, { "type": "ObjectProperty", - "start": 20527, - "end": 20557, + "start": 20562, + "end": 20592, "loc": { "start": { "line": 469, @@ -9650,8 +9650,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20527, - "end": 20538, + "start": 20562, + "end": 20573, "loc": { "start": { "line": 469, @@ -9667,8 +9667,8 @@ }, "value": { "type": "MemberExpression", - "start": 20540, - "end": 20557, + "start": 20575, + "end": 20592, "loc": { "start": { "line": 469, @@ -9681,8 +9681,8 @@ }, "object": { "type": "ThisExpression", - "start": 20540, - "end": 20544, + "start": 20575, + "end": 20579, "loc": { "start": { "line": 469, @@ -9696,8 +9696,8 @@ }, "property": { "type": "Identifier", - "start": 20545, - "end": 20557, + "start": 20580, + "end": 20592, "loc": { "start": { "line": 469, @@ -9716,8 +9716,8 @@ }, { "type": "ObjectProperty", - "start": 20571, - "end": 20603, + "start": 20606, + "end": 20638, "loc": { "start": { "line": 470, @@ -9733,8 +9733,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20571, - "end": 20583, + "start": 20606, + "end": 20618, "loc": { "start": { "line": 470, @@ -9750,8 +9750,8 @@ }, "value": { "type": "MemberExpression", - "start": 20585, - "end": 20603, + "start": 20620, + "end": 20638, "loc": { "start": { "line": 470, @@ -9764,8 +9764,8 @@ }, "object": { "type": "ThisExpression", - "start": 20585, - "end": 20589, + "start": 20620, + "end": 20624, "loc": { "start": { "line": 470, @@ -9779,8 +9779,8 @@ }, "property": { "type": "Identifier", - "start": 20590, - "end": 20603, + "start": 20625, + "end": 20638, "loc": { "start": { "line": 470, @@ -9799,8 +9799,8 @@ }, { "type": "ObjectProperty", - "start": 20617, - "end": 20651, + "start": 20652, + "end": 20686, "loc": { "start": { "line": 471, @@ -9816,8 +9816,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20617, - "end": 20630, + "start": 20652, + "end": 20665, "loc": { "start": { "line": 471, @@ -9833,8 +9833,8 @@ }, "value": { "type": "MemberExpression", - "start": 20632, - "end": 20651, + "start": 20667, + "end": 20686, "loc": { "start": { "line": 471, @@ -9847,8 +9847,8 @@ }, "object": { "type": "ThisExpression", - "start": 20632, - "end": 20636, + "start": 20667, + "end": 20671, "loc": { "start": { "line": 471, @@ -9862,8 +9862,8 @@ }, "property": { "type": "Identifier", - "start": 20637, - "end": 20651, + "start": 20672, + "end": 20686, "loc": { "start": { "line": 471, @@ -9890,8 +9890,8 @@ }, { "type": "ExpressionStatement", - "start": 20672, - "end": 20721, + "start": 20707, + "end": 20756, "loc": { "start": { "line": 473, @@ -9904,8 +9904,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 20672, - "end": 20720, + "start": 20707, + "end": 20755, "loc": { "start": { "line": 473, @@ -9919,8 +9919,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 20672, - "end": 20706, + "start": 20707, + "end": 20741, "loc": { "start": { "line": 473, @@ -9933,8 +9933,8 @@ }, "object": { "type": "MemberExpression", - "start": 20672, - "end": 20690, + "start": 20707, + "end": 20725, "loc": { "start": { "line": 473, @@ -9947,8 +9947,8 @@ }, "object": { "type": "ThisExpression", - "start": 20672, - "end": 20676, + "start": 20707, + "end": 20711, "loc": { "start": { "line": 473, @@ -9962,8 +9962,8 @@ }, "property": { "type": "Identifier", - "start": 20677, - "end": 20690, + "start": 20712, + "end": 20725, "loc": { "start": { "line": 473, @@ -9981,8 +9981,8 @@ }, "property": { "type": "MemberExpression", - "start": 20691, - "end": 20705, + "start": 20726, + "end": 20740, "loc": { "start": { "line": 473, @@ -9995,8 +9995,8 @@ }, "object": { "type": "Identifier", - "start": 20691, - "end": 20702, + "start": 20726, + "end": 20737, "loc": { "start": { "line": 473, @@ -10012,8 +10012,8 @@ }, "property": { "type": "Identifier", - "start": 20703, - "end": 20705, + "start": 20738, + "end": 20740, "loc": { "start": { "line": 473, @@ -10033,8 +10033,8 @@ }, "right": { "type": "Identifier", - "start": 20709, - "end": 20720, + "start": 20744, + "end": 20755, "loc": { "start": { "line": 473, @@ -10052,8 +10052,8 @@ }, { "type": "ExpressionStatement", - "start": 20730, - "end": 20832, + "start": 20765, + "end": 20867, "loc": { "start": { "line": 474, @@ -10066,8 +10066,8 @@ }, "expression": { "type": "CallExpression", - "start": 20730, - "end": 20831, + "start": 20765, + "end": 20866, "loc": { "start": { "line": 474, @@ -10080,8 +10080,8 @@ }, "callee": { "type": "MemberExpression", - "start": 20730, - "end": 20744, + "start": 20765, + "end": 20779, "loc": { "start": { "line": 474, @@ -10094,8 +10094,8 @@ }, "object": { "type": "Identifier", - "start": 20730, - "end": 20741, + "start": 20765, + "end": 20776, "loc": { "start": { "line": 474, @@ -10111,8 +10111,8 @@ }, "property": { "type": "Identifier", - "start": 20742, - "end": 20744, + "start": 20777, + "end": 20779, "loc": { "start": { "line": 474, @@ -10131,8 +10131,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 20745, - "end": 20756, + "start": 20780, + "end": 20791, "loc": { "start": { "line": 474, @@ -10151,8 +10151,8 @@ }, { "type": "ArrowFunctionExpression", - "start": 20758, - "end": 20830, + "start": 20793, + "end": 20865, "loc": { "start": { "line": 474, @@ -10170,8 +10170,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 20764, - "end": 20830, + "start": 20799, + "end": 20865, "loc": { "start": { "line": 474, @@ -10185,8 +10185,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 20778, - "end": 20820, + "start": 20813, + "end": 20855, "loc": { "start": { "line": 475, @@ -10199,8 +10199,8 @@ }, "expression": { "type": "UnaryExpression", - "start": 20778, - "end": 20819, + "start": 20813, + "end": 20854, "loc": { "start": { "line": 475, @@ -10215,8 +10215,8 @@ "prefix": true, "argument": { "type": "MemberExpression", - "start": 20785, - "end": 20819, + "start": 20820, + "end": 20854, "loc": { "start": { "line": 475, @@ -10229,8 +10229,8 @@ }, "object": { "type": "MemberExpression", - "start": 20785, - "end": 20803, + "start": 20820, + "end": 20838, "loc": { "start": { "line": 475, @@ -10243,8 +10243,8 @@ }, "object": { "type": "ThisExpression", - "start": 20785, - "end": 20789, + "start": 20820, + "end": 20824, "loc": { "start": { "line": 475, @@ -10258,8 +10258,8 @@ }, "property": { "type": "Identifier", - "start": 20790, - "end": 20803, + "start": 20825, + "end": 20838, "loc": { "start": { "line": 475, @@ -10277,8 +10277,8 @@ }, "property": { "type": "MemberExpression", - "start": 20804, - "end": 20818, + "start": 20839, + "end": 20853, "loc": { "start": { "line": 475, @@ -10291,8 +10291,8 @@ }, "object": { "type": "Identifier", - "start": 20804, - "end": 20815, + "start": 20839, + "end": 20850, "loc": { "start": { "line": 475, @@ -10308,8 +10308,8 @@ }, "property": { "type": "Identifier", - "start": 20816, - "end": 20818, + "start": 20851, + "end": 20853, "loc": { "start": { "line": 475, @@ -10341,8 +10341,8 @@ }, { "type": "ExpressionStatement", - "start": 20841, - "end": 20886, + "start": 20876, + "end": 20921, "loc": { "start": { "line": 477, @@ -10355,8 +10355,8 @@ }, "expression": { "type": "CallExpression", - "start": 20841, - "end": 20885, + "start": 20876, + "end": 20920, "loc": { "start": { "line": 477, @@ -10369,8 +10369,8 @@ }, "callee": { "type": "MemberExpression", - "start": 20841, - "end": 20850, + "start": 20876, + "end": 20885, "loc": { "start": { "line": 477, @@ -10383,8 +10383,8 @@ }, "object": { "type": "ThisExpression", - "start": 20841, - "end": 20845, + "start": 20876, + "end": 20880, "loc": { "start": { "line": 477, @@ -10398,8 +10398,8 @@ }, "property": { "type": "Identifier", - "start": 20846, - "end": 20850, + "start": 20881, + "end": 20885, "loc": { "start": { "line": 477, @@ -10418,8 +10418,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 20851, - "end": 20871, + "start": 20886, + "end": 20906, "loc": { "start": { "line": 477, @@ -10438,8 +10438,8 @@ }, { "type": "Identifier", - "start": 20873, - "end": 20884, + "start": 20908, + "end": 20919, "loc": { "start": { "line": 477, @@ -10458,8 +10458,8 @@ }, { "type": "ReturnStatement", - "start": 20895, - "end": 20914, + "start": 20930, + "end": 20949, "loc": { "start": { "line": 478, @@ -10472,8 +10472,8 @@ }, "argument": { "type": "Identifier", - "start": 20902, - "end": 20913, + "start": 20937, + "end": 20948, "loc": { "start": { "line": 478, @@ -10496,8 +10496,8 @@ { "type": "CommentBlock", "value": "*\n * Creates a {@link DistanceMeasurement}.\n *\n * The DistanceMeasurement is then registered by {@link DistanceMeasurement#id} in {@link DistanceMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link DistanceMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link DistanceMeasurement#id}. The DistanceMeasurement will be registered by this in {@link DistanceMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link DistanceMeasurement}.\n * @param {Boolean} [params.originVisible=true] Whether to initially show the {@link DistanceMeasurement} origin.\n * @param {Boolean} [params.targetVisible=true] Whether to initially show the {@link DistanceMeasurement} target.\n * @param {Boolean} [params.wireVisible=true] Whether to initially show the direct point-to-point wire between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.axisVisible=true] Whether to initially show the axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.xAxisVisible=true] Whether to initially show the X-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.yAxisVisible=true] Whether to initially show the Y-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.zAxisVisible=true] Whether to initially show the Z-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.labelsVisible=true] Whether to initially show the labels.\n * @param {string} [params.color] The color of the length dot, wire and label.\n * @param {Boolean} [params.labelsOnWires=true] Determines if labels will be set on wires or one below the other.\n * @returns {DistanceMeasurement} The new {@link DistanceMeasurement}.\n ", - "start": 16568, - "end": 19039, + "start": 16603, + "end": 19074, "loc": { "start": { "line": 415, @@ -10514,8 +10514,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys a {@link DistanceMeasurement}.\n *\n * @param {String} id ID of DistanceMeasurement to destroy.\n ", - "start": 20926, - "end": 21055, + "start": 20961, + "end": 21090, "loc": { "start": { "line": 481, @@ -10531,8 +10531,8 @@ }, { "type": "ClassMethod", - "start": 21060, - "end": 21349, + "start": 21095, + "end": 21384, "loc": { "start": { "line": 486, @@ -10547,8 +10547,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 21060, - "end": 21078, + "start": 21095, + "end": 21113, "loc": { "start": { "line": 486, @@ -10571,8 +10571,8 @@ "params": [ { "type": "Identifier", - "start": 21079, - "end": 21081, + "start": 21114, + "end": 21116, "loc": { "start": { "line": 486, @@ -10589,8 +10589,8 @@ ], "body": { "type": "BlockStatement", - "start": 21083, - "end": 21349, + "start": 21118, + "end": 21384, "loc": { "start": { "line": 486, @@ -10604,8 +10604,8 @@ "body": [ { "type": "VariableDeclaration", - "start": 21093, - "end": 21136, + "start": 21128, + "end": 21171, "loc": { "start": { "line": 487, @@ -10619,8 +10619,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 21099, - "end": 21135, + "start": 21134, + "end": 21170, "loc": { "start": { "line": 487, @@ -10633,8 +10633,8 @@ }, "id": { "type": "Identifier", - "start": 21099, - "end": 21110, + "start": 21134, + "end": 21145, "loc": { "start": { "line": 487, @@ -10650,8 +10650,8 @@ }, "init": { "type": "MemberExpression", - "start": 21113, - "end": 21135, + "start": 21148, + "end": 21170, "loc": { "start": { "line": 487, @@ -10664,8 +10664,8 @@ }, "object": { "type": "MemberExpression", - "start": 21113, - "end": 21131, + "start": 21148, + "end": 21166, "loc": { "start": { "line": 487, @@ -10678,8 +10678,8 @@ }, "object": { "type": "ThisExpression", - "start": 21113, - "end": 21117, + "start": 21148, + "end": 21152, "loc": { "start": { "line": 487, @@ -10693,8 +10693,8 @@ }, "property": { "type": "Identifier", - "start": 21118, - "end": 21131, + "start": 21153, + "end": 21166, "loc": { "start": { "line": 487, @@ -10712,8 +10712,8 @@ }, "property": { "type": "Identifier", - "start": 21132, - "end": 21134, + "start": 21167, + "end": 21169, "loc": { "start": { "line": 487, @@ -10735,8 +10735,8 @@ }, { "type": "IfStatement", - "start": 21145, - "end": 21256, + "start": 21180, + "end": 21291, "loc": { "start": { "line": 488, @@ -10749,8 +10749,8 @@ }, "test": { "type": "UnaryExpression", - "start": 21149, - "end": 21161, + "start": 21184, + "end": 21196, "loc": { "start": { "line": 488, @@ -10765,8 +10765,8 @@ "prefix": true, "argument": { "type": "Identifier", - "start": 21150, - "end": 21161, + "start": 21185, + "end": 21196, "loc": { "start": { "line": 488, @@ -10786,8 +10786,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 21163, - "end": 21256, + "start": 21198, + "end": 21291, "loc": { "start": { "line": 488, @@ -10801,8 +10801,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 21177, - "end": 21226, + "start": 21212, + "end": 21261, "loc": { "start": { "line": 489, @@ -10815,8 +10815,8 @@ }, "expression": { "type": "CallExpression", - "start": 21177, - "end": 21225, + "start": 21212, + "end": 21260, "loc": { "start": { "line": 489, @@ -10829,8 +10829,8 @@ }, "callee": { "type": "MemberExpression", - "start": 21177, - "end": 21185, + "start": 21212, + "end": 21220, "loc": { "start": { "line": 489, @@ -10843,8 +10843,8 @@ }, "object": { "type": "ThisExpression", - "start": 21177, - "end": 21181, + "start": 21212, + "end": 21216, "loc": { "start": { "line": 489, @@ -10858,8 +10858,8 @@ }, "property": { "type": "Identifier", - "start": 21182, - "end": 21185, + "start": 21217, + "end": 21220, "loc": { "start": { "line": 489, @@ -10878,8 +10878,8 @@ "arguments": [ { "type": "BinaryExpression", - "start": 21186, - "end": 21224, + "start": 21221, + "end": 21259, "loc": { "start": { "line": 489, @@ -10892,8 +10892,8 @@ }, "left": { "type": "StringLiteral", - "start": 21186, - "end": 21219, + "start": 21221, + "end": 21254, "loc": { "start": { "line": 489, @@ -10913,8 +10913,8 @@ "operator": "+", "right": { "type": "Identifier", - "start": 21222, - "end": 21224, + "start": 21257, + "end": 21259, "loc": { "start": { "line": 489, @@ -10934,8 +10934,8 @@ }, { "type": "ReturnStatement", - "start": 21239, - "end": 21246, + "start": 21274, + "end": 21281, "loc": { "start": { "line": 490, @@ -10955,8 +10955,8 @@ }, { "type": "ExpressionStatement", - "start": 21265, - "end": 21287, + "start": 21300, + "end": 21322, "loc": { "start": { "line": 492, @@ -10969,8 +10969,8 @@ }, "expression": { "type": "CallExpression", - "start": 21265, - "end": 21286, + "start": 21300, + "end": 21321, "loc": { "start": { "line": 492, @@ -10983,8 +10983,8 @@ }, "callee": { "type": "MemberExpression", - "start": 21265, - "end": 21284, + "start": 21300, + "end": 21319, "loc": { "start": { "line": 492, @@ -10997,8 +10997,8 @@ }, "object": { "type": "Identifier", - "start": 21265, - "end": 21276, + "start": 21300, + "end": 21311, "loc": { "start": { "line": 492, @@ -11014,8 +11014,8 @@ }, "property": { "type": "Identifier", - "start": 21277, - "end": 21284, + "start": 21312, + "end": 21319, "loc": { "start": { "line": 492, @@ -11036,8 +11036,8 @@ }, { "type": "ExpressionStatement", - "start": 21296, - "end": 21343, + "start": 21331, + "end": 21378, "loc": { "start": { "line": 493, @@ -11050,8 +11050,8 @@ }, "expression": { "type": "CallExpression", - "start": 21296, - "end": 21342, + "start": 21331, + "end": 21377, "loc": { "start": { "line": 493, @@ -11064,8 +11064,8 @@ }, "callee": { "type": "MemberExpression", - "start": 21296, - "end": 21305, + "start": 21331, + "end": 21340, "loc": { "start": { "line": 493, @@ -11078,8 +11078,8 @@ }, "object": { "type": "ThisExpression", - "start": 21296, - "end": 21300, + "start": 21331, + "end": 21335, "loc": { "start": { "line": 493, @@ -11093,8 +11093,8 @@ }, "property": { "type": "Identifier", - "start": 21301, - "end": 21305, + "start": 21336, + "end": 21340, "loc": { "start": { "line": 493, @@ -11113,8 +11113,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 21306, - "end": 21328, + "start": 21341, + "end": 21363, "loc": { "start": { "line": 493, @@ -11133,8 +11133,8 @@ }, { "type": "Identifier", - "start": 21330, - "end": 21341, + "start": 21365, + "end": 21376, "loc": { "start": { "line": 493, @@ -11159,8 +11159,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys a {@link DistanceMeasurement}.\n *\n * @param {String} id ID of DistanceMeasurement to destroy.\n ", - "start": 20926, - "end": 21055, + "start": 20961, + "end": 21090, "loc": { "start": { "line": 481, @@ -11177,8 +11177,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the distance label of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n ", - "start": 21355, - "end": 21526, + "start": 21390, + "end": 21561, "loc": { "start": { "line": 496, @@ -11194,8 +11194,8 @@ }, { "type": "ClassMethod", - "start": 21531, - "end": 21704, + "start": 21566, + "end": 21739, "loc": { "start": { "line": 501, @@ -11210,8 +11210,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 21531, - "end": 21545, + "start": 21566, + "end": 21580, "loc": { "start": { "line": 501, @@ -11234,8 +11234,8 @@ "params": [ { "type": "Identifier", - "start": 21546, - "end": 21557, + "start": 21581, + "end": 21592, "loc": { "start": { "line": 501, @@ -11252,8 +11252,8 @@ ], "body": { "type": "BlockStatement", - "start": 21559, - "end": 21704, + "start": 21594, + "end": 21739, "loc": { "start": { "line": 501, @@ -11267,8 +11267,8 @@ "body": [ { "type": "ForOfStatement", - "start": 21569, - "end": 21698, + "start": 21604, + "end": 21733, "loc": { "start": { "line": 502, @@ -11281,8 +11281,8 @@ }, "left": { "type": "VariableDeclaration", - "start": 21574, - "end": 21598, + "start": 21609, + "end": 21633, "loc": { "start": { "line": 502, @@ -11296,8 +11296,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 21580, - "end": 21598, + "start": 21615, + "end": 21633, "loc": { "start": { "line": 502, @@ -11310,8 +11310,8 @@ }, "id": { "type": "ArrayPattern", - "start": 21580, - "end": 21598, + "start": 21615, + "end": 21633, "loc": { "start": { "line": 502, @@ -11325,8 +11325,8 @@ "elements": [ { "type": "Identifier", - "start": 21581, - "end": 21584, + "start": 21616, + "end": 21619, "loc": { "start": { "line": 502, @@ -11342,8 +11342,8 @@ }, { "type": "Identifier", - "start": 21586, - "end": 21597, + "start": 21621, + "end": 21632, "loc": { "start": { "line": 502, @@ -11366,8 +11366,8 @@ }, "right": { "type": "CallExpression", - "start": 21602, - "end": 21635, + "start": 21637, + "end": 21670, "loc": { "start": { "line": 502, @@ -11380,8 +11380,8 @@ }, "callee": { "type": "MemberExpression", - "start": 21602, - "end": 21616, + "start": 21637, + "end": 21651, "loc": { "start": { "line": 502, @@ -11394,8 +11394,8 @@ }, "object": { "type": "Identifier", - "start": 21602, - "end": 21608, + "start": 21637, + "end": 21643, "loc": { "start": { "line": 502, @@ -11411,8 +11411,8 @@ }, "property": { "type": "Identifier", - "start": 21609, - "end": 21616, + "start": 21644, + "end": 21651, "loc": { "start": { "line": 502, @@ -11431,8 +11431,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 21617, - "end": 21634, + "start": 21652, + "end": 21669, "loc": { "start": { "line": 502, @@ -11445,8 +11445,8 @@ }, "object": { "type": "ThisExpression", - "start": 21617, - "end": 21621, + "start": 21652, + "end": 21656, "loc": { "start": { "line": 502, @@ -11460,8 +11460,8 @@ }, "property": { "type": "Identifier", - "start": 21622, - "end": 21634, + "start": 21657, + "end": 21669, "loc": { "start": { "line": 502, @@ -11481,8 +11481,8 @@ }, "body": { "type": "BlockStatement", - "start": 21637, - "end": 21698, + "start": 21672, + "end": 21733, "loc": { "start": { "line": 502, @@ -11496,8 +11496,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 21651, - "end": 21688, + "start": 21686, + "end": 21723, "loc": { "start": { "line": 503, @@ -11510,8 +11510,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 21651, - "end": 21687, + "start": 21686, + "end": 21722, "loc": { "start": { "line": 503, @@ -11525,8 +11525,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 21651, - "end": 21673, + "start": 21686, + "end": 21708, "loc": { "start": { "line": 503, @@ -11539,8 +11539,8 @@ }, "object": { "type": "Identifier", - "start": 21651, - "end": 21662, + "start": 21686, + "end": 21697, "loc": { "start": { "line": 503, @@ -11556,8 +11556,8 @@ }, "property": { "type": "Identifier", - "start": 21663, - "end": 21673, + "start": 21698, + "end": 21708, "loc": { "start": { "line": 503, @@ -11575,8 +11575,8 @@ }, "right": { "type": "Identifier", - "start": 21676, - "end": 21687, + "start": 21711, + "end": 21722, "loc": { "start": { "line": 503, @@ -11604,8 +11604,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the distance label of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n ", - "start": 21355, - "end": 21526, + "start": 21390, + "end": 21561, "loc": { "start": { "line": 496, @@ -11622,8 +11622,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the axis wires of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the axis wires.\n ", - "start": 21710, - "end": 21881, + "start": 21745, + "end": 21916, "loc": { "start": { "line": 507, @@ -11639,8 +11639,8 @@ }, { "type": "ClassMethod", - "start": 21886, - "end": 22107, + "start": 21921, + "end": 22142, "loc": { "start": { "line": 512, @@ -11655,8 +11655,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 21886, - "end": 21900, + "start": 21921, + "end": 21935, "loc": { "start": { "line": 512, @@ -11679,8 +11679,8 @@ "params": [ { "type": "Identifier", - "start": 21901, - "end": 21912, + "start": 21936, + "end": 21947, "loc": { "start": { "line": 512, @@ -11697,8 +11697,8 @@ ], "body": { "type": "BlockStatement", - "start": 21914, - "end": 22107, + "start": 21949, + "end": 22142, "loc": { "start": { "line": 512, @@ -11712,8 +11712,8 @@ "body": [ { "type": "ForOfStatement", - "start": 21924, - "end": 22054, + "start": 21959, + "end": 22089, "loc": { "start": { "line": 513, @@ -11726,8 +11726,8 @@ }, "left": { "type": "VariableDeclaration", - "start": 21929, - "end": 21953, + "start": 21964, + "end": 21988, "loc": { "start": { "line": 513, @@ -11741,8 +11741,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 21935, - "end": 21953, + "start": 21970, + "end": 21988, "loc": { "start": { "line": 513, @@ -11755,8 +11755,8 @@ }, "id": { "type": "ArrayPattern", - "start": 21935, - "end": 21953, + "start": 21970, + "end": 21988, "loc": { "start": { "line": 513, @@ -11770,8 +11770,8 @@ "elements": [ { "type": "Identifier", - "start": 21936, - "end": 21939, + "start": 21971, + "end": 21974, "loc": { "start": { "line": 513, @@ -11787,8 +11787,8 @@ }, { "type": "Identifier", - "start": 21941, - "end": 21952, + "start": 21976, + "end": 21987, "loc": { "start": { "line": 513, @@ -11811,8 +11811,8 @@ }, "right": { "type": "CallExpression", - "start": 21957, - "end": 21990, + "start": 21992, + "end": 22025, "loc": { "start": { "line": 513, @@ -11825,8 +11825,8 @@ }, "callee": { "type": "MemberExpression", - "start": 21957, - "end": 21971, + "start": 21992, + "end": 22006, "loc": { "start": { "line": 513, @@ -11839,8 +11839,8 @@ }, "object": { "type": "Identifier", - "start": 21957, - "end": 21963, + "start": 21992, + "end": 21998, "loc": { "start": { "line": 513, @@ -11856,8 +11856,8 @@ }, "property": { "type": "Identifier", - "start": 21964, - "end": 21971, + "start": 21999, + "end": 22006, "loc": { "start": { "line": 513, @@ -11876,8 +11876,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 21972, - "end": 21989, + "start": 22007, + "end": 22024, "loc": { "start": { "line": 513, @@ -11890,8 +11890,8 @@ }, "object": { "type": "ThisExpression", - "start": 21972, - "end": 21976, + "start": 22007, + "end": 22011, "loc": { "start": { "line": 513, @@ -11905,8 +11905,8 @@ }, "property": { "type": "Identifier", - "start": 21977, - "end": 21989, + "start": 22012, + "end": 22024, "loc": { "start": { "line": 513, @@ -11926,8 +11926,8 @@ }, "body": { "type": "BlockStatement", - "start": 21992, - "end": 22054, + "start": 22027, + "end": 22089, "loc": { "start": { "line": 513, @@ -11941,8 +11941,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 22006, - "end": 22044, + "start": 22041, + "end": 22079, "loc": { "start": { "line": 514, @@ -11955,8 +11955,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 22006, - "end": 22043, + "start": 22041, + "end": 22078, "loc": { "start": { "line": 514, @@ -11970,8 +11970,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 22006, - "end": 22029, + "start": 22041, + "end": 22064, "loc": { "start": { "line": 514, @@ -11984,8 +11984,8 @@ }, "object": { "type": "Identifier", - "start": 22006, - "end": 22017, + "start": 22041, + "end": 22052, "loc": { "start": { "line": 514, @@ -12001,8 +12001,8 @@ }, "property": { "type": "Identifier", - "start": 22018, - "end": 22029, + "start": 22053, + "end": 22064, "loc": { "start": { "line": 514, @@ -12020,8 +12020,8 @@ }, "right": { "type": "Identifier", - "start": 22032, - "end": 22043, + "start": 22067, + "end": 22078, "loc": { "start": { "line": 514, @@ -12043,8 +12043,8 @@ }, { "type": "ExpressionStatement", - "start": 22063, - "end": 22101, + "start": 22098, + "end": 22136, "loc": { "start": { "line": 516, @@ -12057,8 +12057,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 22063, - "end": 22100, + "start": 22098, + "end": 22135, "loc": { "start": { "line": 516, @@ -12072,8 +12072,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 22063, - "end": 22086, + "start": 22098, + "end": 22121, "loc": { "start": { "line": 516, @@ -12086,8 +12086,8 @@ }, "object": { "type": "ThisExpression", - "start": 22063, - "end": 22067, + "start": 22098, + "end": 22102, "loc": { "start": { "line": 516, @@ -12101,8 +12101,8 @@ }, "property": { "type": "Identifier", - "start": 22068, - "end": 22086, + "start": 22103, + "end": 22121, "loc": { "start": { "line": 516, @@ -12120,8 +12120,8 @@ }, "right": { "type": "Identifier", - "start": 22089, - "end": 22100, + "start": 22124, + "end": 22135, "loc": { "start": { "line": 516, @@ -12145,8 +12145,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the axis wires of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the axis wires.\n ", - "start": 21710, - "end": 21881, + "start": 21745, + "end": 21916, "loc": { "start": { "line": 507, @@ -12163,8 +12163,8 @@ { "type": "CommentBlock", "value": "*\n * Gets if the axis wires of each {@link DistanceMeasurement} are visible.\n *\n * @returns {Boolean} Whether or not the axis wires are visible.\n ", - "start": 22113, - "end": 22279, + "start": 22148, + "end": 22314, "loc": { "start": { "line": 519, @@ -12180,8 +12180,8 @@ }, { "type": "ClassMethod", - "start": 22284, - "end": 22348, + "start": 22319, + "end": 22383, "loc": { "start": { "line": 524, @@ -12196,8 +12196,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 22284, - "end": 22298, + "start": 22319, + "end": 22333, "loc": { "start": { "line": 524, @@ -12220,8 +12220,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 22301, - "end": 22348, + "start": 22336, + "end": 22383, "loc": { "start": { "line": 524, @@ -12235,8 +12235,8 @@ "body": [ { "type": "ReturnStatement", - "start": 22311, - "end": 22342, + "start": 22346, + "end": 22377, "loc": { "start": { "line": 525, @@ -12249,8 +12249,8 @@ }, "argument": { "type": "MemberExpression", - "start": 22318, - "end": 22341, + "start": 22353, + "end": 22376, "loc": { "start": { "line": 525, @@ -12263,8 +12263,8 @@ }, "object": { "type": "ThisExpression", - "start": 22318, - "end": 22322, + "start": 22353, + "end": 22357, "loc": { "start": { "line": 525, @@ -12278,8 +12278,8 @@ }, "property": { "type": "Identifier", - "start": 22323, - "end": 22341, + "start": 22358, + "end": 22376, "loc": { "start": { "line": 525, @@ -12304,8 +12304,8 @@ { "type": "CommentBlock", "value": "*\n * Gets if the axis wires of each {@link DistanceMeasurement} are visible.\n *\n * @returns {Boolean} Whether or not the axis wires are visible.\n ", - "start": 22113, - "end": 22279, + "start": 22148, + "end": 22314, "loc": { "start": { "line": 519, @@ -12322,8 +12322,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys all {@link DistanceMeasurement}s.\n ", - "start": 22354, - "end": 22415, + "start": 22389, + "end": 22450, "loc": { "start": { "line": 528, @@ -12339,8 +12339,8 @@ }, { "type": "ClassMethod", - "start": 22420, - "end": 22601, + "start": 22455, + "end": 22636, "loc": { "start": { "line": 531, @@ -12355,8 +12355,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 22420, - "end": 22425, + "start": 22455, + "end": 22460, "loc": { "start": { "line": 531, @@ -12379,8 +12379,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 22428, - "end": 22601, + "start": 22463, + "end": 22636, "loc": { "start": { "line": 531, @@ -12394,8 +12394,8 @@ "body": [ { "type": "VariableDeclaration", - "start": 22438, - "end": 22482, + "start": 22473, + "end": 22517, "loc": { "start": { "line": 532, @@ -12409,8 +12409,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 22444, - "end": 22481, + "start": 22479, + "end": 22516, "loc": { "start": { "line": 532, @@ -12423,8 +12423,8 @@ }, "id": { "type": "Identifier", - "start": 22444, - "end": 22447, + "start": 22479, + "end": 22482, "loc": { "start": { "line": 532, @@ -12440,8 +12440,8 @@ }, "init": { "type": "CallExpression", - "start": 22450, - "end": 22481, + "start": 22485, + "end": 22516, "loc": { "start": { "line": 532, @@ -12454,8 +12454,8 @@ }, "callee": { "type": "MemberExpression", - "start": 22450, - "end": 22461, + "start": 22485, + "end": 22496, "loc": { "start": { "line": 532, @@ -12468,8 +12468,8 @@ }, "object": { "type": "Identifier", - "start": 22450, - "end": 22456, + "start": 22485, + "end": 22491, "loc": { "start": { "line": 532, @@ -12485,8 +12485,8 @@ }, "property": { "type": "Identifier", - "start": 22457, - "end": 22461, + "start": 22492, + "end": 22496, "loc": { "start": { "line": 532, @@ -12505,8 +12505,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 22462, - "end": 22480, + "start": 22497, + "end": 22515, "loc": { "start": { "line": 532, @@ -12519,8 +12519,8 @@ }, "object": { "type": "ThisExpression", - "start": 22462, - "end": 22466, + "start": 22497, + "end": 22501, "loc": { "start": { "line": 532, @@ -12534,8 +12534,8 @@ }, "property": { "type": "Identifier", - "start": 22467, - "end": 22480, + "start": 22502, + "end": 22515, "loc": { "start": { "line": 532, @@ -12559,8 +12559,8 @@ }, { "type": "ForStatement", - "start": 22491, - "end": 22595, + "start": 22526, + "end": 22630, "loc": { "start": { "line": 533, @@ -12573,8 +12573,8 @@ }, "init": { "type": "VariableDeclaration", - "start": 22496, - "end": 22523, + "start": 22531, + "end": 22558, "loc": { "start": { "line": 533, @@ -12588,8 +12588,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 22500, - "end": 22505, + "start": 22535, + "end": 22540, "loc": { "start": { "line": 533, @@ -12602,8 +12602,8 @@ }, "id": { "type": "Identifier", - "start": 22500, - "end": 22501, + "start": 22535, + "end": 22536, "loc": { "start": { "line": 533, @@ -12619,8 +12619,8 @@ }, "init": { "type": "NumericLiteral", - "start": 22504, - "end": 22505, + "start": 22539, + "end": 22540, "loc": { "start": { "line": 533, @@ -12640,8 +12640,8 @@ }, { "type": "VariableDeclarator", - "start": 22507, - "end": 22523, + "start": 22542, + "end": 22558, "loc": { "start": { "line": 533, @@ -12654,8 +12654,8 @@ }, "id": { "type": "Identifier", - "start": 22507, - "end": 22510, + "start": 22542, + "end": 22545, "loc": { "start": { "line": 533, @@ -12671,8 +12671,8 @@ }, "init": { "type": "MemberExpression", - "start": 22513, - "end": 22523, + "start": 22548, + "end": 22558, "loc": { "start": { "line": 533, @@ -12685,8 +12685,8 @@ }, "object": { "type": "Identifier", - "start": 22513, - "end": 22516, + "start": 22548, + "end": 22551, "loc": { "start": { "line": 533, @@ -12702,8 +12702,8 @@ }, "property": { "type": "Identifier", - "start": 22517, - "end": 22523, + "start": 22552, + "end": 22558, "loc": { "start": { "line": 533, @@ -12725,8 +12725,8 @@ }, "test": { "type": "BinaryExpression", - "start": 22525, - "end": 22532, + "start": 22560, + "end": 22567, "loc": { "start": { "line": 533, @@ -12739,8 +12739,8 @@ }, "left": { "type": "Identifier", - "start": 22525, - "end": 22526, + "start": 22560, + "end": 22561, "loc": { "start": { "line": 533, @@ -12757,8 +12757,8 @@ "operator": "<", "right": { "type": "Identifier", - "start": 22529, - "end": 22532, + "start": 22564, + "end": 22567, "loc": { "start": { "line": 533, @@ -12775,8 +12775,8 @@ }, "update": { "type": "UpdateExpression", - "start": 22534, - "end": 22537, + "start": 22569, + "end": 22572, "loc": { "start": { "line": 533, @@ -12791,8 +12791,8 @@ "prefix": false, "argument": { "type": "Identifier", - "start": 22534, - "end": 22535, + "start": 22569, + "end": 22570, "loc": { "start": { "line": 533, @@ -12809,8 +12809,8 @@ }, "body": { "type": "BlockStatement", - "start": 22539, - "end": 22595, + "start": 22574, + "end": 22630, "loc": { "start": { "line": 533, @@ -12824,8 +12824,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 22553, - "end": 22585, + "start": 22588, + "end": 22620, "loc": { "start": { "line": 534, @@ -12838,8 +12838,8 @@ }, "expression": { "type": "CallExpression", - "start": 22553, - "end": 22584, + "start": 22588, + "end": 22619, "loc": { "start": { "line": 534, @@ -12852,8 +12852,8 @@ }, "callee": { "type": "MemberExpression", - "start": 22553, - "end": 22576, + "start": 22588, + "end": 22611, "loc": { "start": { "line": 534, @@ -12866,8 +12866,8 @@ }, "object": { "type": "ThisExpression", - "start": 22553, - "end": 22557, + "start": 22588, + "end": 22592, "loc": { "start": { "line": 534, @@ -12881,8 +12881,8 @@ }, "property": { "type": "Identifier", - "start": 22558, - "end": 22576, + "start": 22593, + "end": 22611, "loc": { "start": { "line": 534, @@ -12901,8 +12901,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 22577, - "end": 22583, + "start": 22612, + "end": 22618, "loc": { "start": { "line": 534, @@ -12915,8 +12915,8 @@ }, "object": { "type": "Identifier", - "start": 22577, - "end": 22580, + "start": 22612, + "end": 22615, "loc": { "start": { "line": 534, @@ -12932,8 +12932,8 @@ }, "property": { "type": "Identifier", - "start": 22581, - "end": 22582, + "start": 22616, + "end": 22617, "loc": { "start": { "line": 534, @@ -12964,8 +12964,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys all {@link DistanceMeasurement}s.\n ", - "start": 22354, - "end": 22415, + "start": 22389, + "end": 22450, "loc": { "start": { "line": 528, @@ -12982,8 +12982,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys this DistanceMeasurementsPlugin.\n *\n * Destroys all {@link DistanceMeasurement}s first.\n ", - "start": 22607, - "end": 22730, + "start": 22642, + "end": 22765, "loc": { "start": { "line": 538, @@ -12999,8 +12999,8 @@ }, { "type": "ClassMethod", - "start": 22735, - "end": 22799, + "start": 22770, + "end": 22834, "loc": { "start": { "line": 543, @@ -13015,8 +13015,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 22735, - "end": 22742, + "start": 22770, + "end": 22777, "loc": { "start": { "line": 543, @@ -13039,8 +13039,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 22745, - "end": 22799, + "start": 22780, + "end": 22834, "loc": { "start": { "line": 543, @@ -13054,8 +13054,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 22755, - "end": 22768, + "start": 22790, + "end": 22803, "loc": { "start": { "line": 544, @@ -13068,8 +13068,8 @@ }, "expression": { "type": "CallExpression", - "start": 22755, - "end": 22767, + "start": 22790, + "end": 22802, "loc": { "start": { "line": 544, @@ -13082,8 +13082,8 @@ }, "callee": { "type": "MemberExpression", - "start": 22755, - "end": 22765, + "start": 22790, + "end": 22800, "loc": { "start": { "line": 544, @@ -13096,8 +13096,8 @@ }, "object": { "type": "ThisExpression", - "start": 22755, - "end": 22759, + "start": 22790, + "end": 22794, "loc": { "start": { "line": 544, @@ -13111,8 +13111,8 @@ }, "property": { "type": "Identifier", - "start": 22760, - "end": 22765, + "start": 22795, + "end": 22800, "loc": { "start": { "line": 544, @@ -13133,8 +13133,8 @@ }, { "type": "ExpressionStatement", - "start": 22777, - "end": 22793, + "start": 22812, + "end": 22828, "loc": { "start": { "line": 545, @@ -13147,8 +13147,8 @@ }, "expression": { "type": "CallExpression", - "start": 22777, - "end": 22792, + "start": 22812, + "end": 22827, "loc": { "start": { "line": 545, @@ -13161,8 +13161,8 @@ }, "callee": { "type": "MemberExpression", - "start": 22777, - "end": 22790, + "start": 22812, + "end": 22825, "loc": { "start": { "line": 545, @@ -13175,8 +13175,8 @@ }, "object": { "type": "Super", - "start": 22777, - "end": 22782, + "start": 22812, + "end": 22817, "loc": { "start": { "line": 545, @@ -13190,8 +13190,8 @@ }, "property": { "type": "Identifier", - "start": 22783, - "end": 22790, + "start": 22818, + "end": 22825, "loc": { "start": { "line": 545, @@ -13217,8 +13217,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys this DistanceMeasurementsPlugin.\n *\n * Destroys all {@link DistanceMeasurement}s first.\n ", - "start": 22607, - "end": 22730, + "start": 22642, + "end": 22765, "loc": { "start": { "line": 538, @@ -13240,8 +13240,8 @@ }, { "type": "ExportNamedDeclaration", - "start": 22803, - "end": 22838, + "start": 22838, + "end": 22873, "loc": { "start": { "line": 549, @@ -13256,8 +13256,8 @@ "specifiers": [ { "type": "ExportSpecifier", - "start": 22811, - "end": 22837, + "start": 22846, + "end": 22872, "loc": { "start": { "line": 549, @@ -13270,8 +13270,8 @@ }, "local": { "type": "Identifier", - "start": 22811, - "end": 22837, + "start": 22846, + "end": 22872, "loc": { "start": { "line": 549, @@ -13287,8 +13287,8 @@ }, "exported": { "type": "Identifier", - "start": 22811, - "end": 22837, + "start": 22846, + "end": 22872, "loc": { "start": { "line": 549, @@ -13308,8 +13308,8 @@ }, { "type": "ExportNamedDeclaration", - "start": 22803, - "end": 22838, + "start": 22838, + "end": 22873, "loc": { "start": { "line": 549, @@ -13322,8 +13322,8 @@ }, "declaration": { "type": "ClassDeclaration", - "start": 10623, - "end": 22801, + "start": 10658, + "end": 22836, "loc": { "start": { "line": 265, @@ -13336,8 +13336,8 @@ }, "id": { "type": "Identifier", - "start": 10629, - "end": 10655, + "start": 10664, + "end": 10690, "loc": { "start": { "line": 265, @@ -13354,8 +13354,8 @@ }, "superClass": { "type": "Identifier", - "start": 10664, - "end": 10670, + "start": 10699, + "end": 10705, "loc": { "start": { "line": 265, @@ -13371,8 +13371,8 @@ }, "body": { "type": "ClassBody", - "start": 10671, - "end": 22801, + "start": 10706, + "end": 22836, "loc": { "start": { "line": 265, @@ -13386,8 +13386,8 @@ "body": [ { "type": "ClassMethod", - "start": 12826, - "end": 14731, + "start": 12861, + "end": 14766, "loc": { "start": { "line": 288, @@ -13402,8 +13402,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 12826, - "end": 12837, + "start": 12861, + "end": 12872, "loc": { "start": { "line": 288, @@ -13426,8 +13426,8 @@ "params": [ { "type": "Identifier", - "start": 12838, - "end": 12844, + "start": 12873, + "end": 12879, "loc": { "start": { "line": 288, @@ -13443,8 +13443,8 @@ }, { "type": "AssignmentPattern", - "start": 12846, - "end": 12854, + "start": 12881, + "end": 12889, "loc": { "start": { "line": 288, @@ -13457,8 +13457,8 @@ }, "left": { "type": "Identifier", - "start": 12846, - "end": 12849, + "start": 12881, + "end": 12884, "loc": { "start": { "line": 288, @@ -13474,8 +13474,8 @@ }, "right": { "type": "ObjectExpression", - "start": 12852, - "end": 12854, + "start": 12887, + "end": 12889, "loc": { "start": { "line": 288, @@ -13492,8 +13492,8 @@ ], "body": { "type": "BlockStatement", - "start": 12856, - "end": 14731, + "start": 12891, + "end": 14766, "loc": { "start": { "line": 288, @@ -13507,8 +13507,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 12867, - "end": 12905, + "start": 12902, + "end": 12940, "loc": { "start": { "line": 290, @@ -13521,8 +13521,8 @@ }, "expression": { "type": "CallExpression", - "start": 12867, - "end": 12904, + "start": 12902, + "end": 12939, "loc": { "start": { "line": 290, @@ -13535,8 +13535,8 @@ }, "callee": { "type": "Super", - "start": 12867, - "end": 12872, + "start": 12902, + "end": 12907, "loc": { "start": { "line": 290, @@ -13551,8 +13551,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 12873, - "end": 12895, + "start": 12908, + "end": 12930, "loc": { "start": { "line": 290, @@ -13571,8 +13571,8 @@ }, { "type": "Identifier", - "start": 12897, - "end": 12903, + "start": 12932, + "end": 12938, "loc": { "start": { "line": 290, @@ -13591,8 +13591,8 @@ }, { "type": "ExpressionStatement", - "start": 12915, - "end": 12951, + "start": 12950, + "end": 12986, "loc": { "start": { "line": 292, @@ -13605,8 +13605,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 12915, - "end": 12950, + "start": 12950, + "end": 12985, "loc": { "start": { "line": 292, @@ -13620,8 +13620,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 12915, - "end": 12932, + "start": 12950, + "end": 12967, "loc": { "start": { "line": 292, @@ -13634,8 +13634,8 @@ }, "object": { "type": "ThisExpression", - "start": 12915, - "end": 12919, + "start": 12950, + "end": 12954, "loc": { "start": { "line": 292, @@ -13649,8 +13649,8 @@ }, "property": { "type": "Identifier", - "start": 12920, - "end": 12932, + "start": 12955, + "end": 12967, "loc": { "start": { "line": 292, @@ -13668,8 +13668,8 @@ }, "right": { "type": "MemberExpression", - "start": 12935, - "end": 12950, + "start": 12970, + "end": 12985, "loc": { "start": { "line": 292, @@ -13682,8 +13682,8 @@ }, "object": { "type": "Identifier", - "start": 12935, - "end": 12938, + "start": 12970, + "end": 12973, "loc": { "start": { "line": 292, @@ -13699,8 +13699,8 @@ }, "property": { "type": "Identifier", - "start": 12939, - "end": 12950, + "start": 12974, + "end": 12985, "loc": { "start": { "line": 292, @@ -13720,8 +13720,8 @@ }, { "type": "ExpressionStatement", - "start": 12961, - "end": 13010, + "start": 12996, + "end": 13045, "loc": { "start": { "line": 294, @@ -13734,8 +13734,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 12961, - "end": 13009, + "start": 12996, + "end": 13044, "loc": { "start": { "line": 294, @@ -13749,8 +13749,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 12961, - "end": 12976, + "start": 12996, + "end": 13011, "loc": { "start": { "line": 294, @@ -13763,8 +13763,8 @@ }, "object": { "type": "ThisExpression", - "start": 12961, - "end": 12965, + "start": 12996, + "end": 13000, "loc": { "start": { "line": 294, @@ -13778,8 +13778,8 @@ }, "property": { "type": "Identifier", - "start": 12966, - "end": 12976, + "start": 13001, + "end": 13011, "loc": { "start": { "line": 294, @@ -13797,8 +13797,8 @@ }, "right": { "type": "LogicalExpression", - "start": 12979, - "end": 13009, + "start": 13014, + "end": 13044, "loc": { "start": { "line": 294, @@ -13811,8 +13811,8 @@ }, "left": { "type": "MemberExpression", - "start": 12979, - "end": 12992, + "start": 13014, + "end": 13027, "loc": { "start": { "line": 294, @@ -13825,8 +13825,8 @@ }, "object": { "type": "Identifier", - "start": 12979, - "end": 12982, + "start": 13014, + "end": 13017, "loc": { "start": { "line": 294, @@ -13842,8 +13842,8 @@ }, "property": { "type": "Identifier", - "start": 12983, - "end": 12992, + "start": 13018, + "end": 13027, "loc": { "start": { "line": 294, @@ -13862,8 +13862,8 @@ "operator": "||", "right": { "type": "MemberExpression", - "start": 12996, - "end": 13009, + "start": 13031, + "end": 13044, "loc": { "start": { "line": 294, @@ -13876,8 +13876,8 @@ }, "object": { "type": "Identifier", - "start": 12996, - "end": 13004, + "start": 13031, + "end": 13039, "loc": { "start": { "line": 294, @@ -13893,8 +13893,8 @@ }, "property": { "type": "Identifier", - "start": 13005, - "end": 13009, + "start": 13040, + "end": 13044, "loc": { "start": { "line": 294, @@ -13915,8 +13915,8 @@ }, { "type": "ExpressionStatement", - "start": 13020, - "end": 13048, + "start": 13055, + "end": 13083, "loc": { "start": { "line": 296, @@ -13929,8 +13929,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13020, - "end": 13047, + "start": 13055, + "end": 13082, "loc": { "start": { "line": 296, @@ -13944,8 +13944,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13020, - "end": 13040, + "start": 13055, + "end": 13075, "loc": { "start": { "line": 296, @@ -13958,8 +13958,8 @@ }, "object": { "type": "ThisExpression", - "start": 13020, - "end": 13024, + "start": 13055, + "end": 13059, "loc": { "start": { "line": 296, @@ -13973,8 +13973,8 @@ }, "property": { "type": "Identifier", - "start": 13025, - "end": 13040, + "start": 13060, + "end": 13075, "loc": { "start": { "line": 296, @@ -13992,8 +13992,8 @@ }, "right": { "type": "NullLiteral", - "start": 13043, - "end": 13047, + "start": 13078, + "end": 13082, "loc": { "start": { "line": 296, @@ -14009,8 +14009,8 @@ }, { "type": "ExpressionStatement", - "start": 13058, - "end": 13082, + "start": 13093, + "end": 13117, "loc": { "start": { "line": 298, @@ -14023,8 +14023,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13058, - "end": 13081, + "start": 13093, + "end": 13116, "loc": { "start": { "line": 298, @@ -14038,8 +14038,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13058, - "end": 13076, + "start": 13093, + "end": 13111, "loc": { "start": { "line": 298, @@ -14052,8 +14052,8 @@ }, "object": { "type": "ThisExpression", - "start": 13058, - "end": 13062, + "start": 13093, + "end": 13097, "loc": { "start": { "line": 298, @@ -14067,8 +14067,8 @@ }, "property": { "type": "Identifier", - "start": 13063, - "end": 13076, + "start": 13098, + "end": 13111, "loc": { "start": { "line": 298, @@ -14086,8 +14086,8 @@ }, "right": { "type": "ObjectExpression", - "start": 13079, - "end": 13081, + "start": 13114, + "end": 13116, "loc": { "start": { "line": 298, @@ -14104,8 +14104,8 @@ }, { "type": "ExpressionStatement", - "start": 13092, - "end": 13141, + "start": 13127, + "end": 13176, "loc": { "start": { "line": 300, @@ -14118,8 +14118,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13092, - "end": 13140, + "start": 13127, + "end": 13175, "loc": { "start": { "line": 300, @@ -14133,8 +14133,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13092, - "end": 13115, + "start": 13127, + "end": 13150, "loc": { "start": { "line": 300, @@ -14147,8 +14147,8 @@ }, "object": { "type": "ThisExpression", - "start": 13092, - "end": 13096, + "start": 13127, + "end": 13131, "loc": { "start": { "line": 300, @@ -14162,8 +14162,8 @@ }, "property": { "type": "Identifier", - "start": 13097, - "end": 13115, + "start": 13132, + "end": 13150, "loc": { "start": { "line": 300, @@ -14181,8 +14181,8 @@ }, "right": { "type": "MemberExpression", - "start": 13118, - "end": 13140, + "start": 13153, + "end": 13175, "loc": { "start": { "line": 300, @@ -14195,8 +14195,8 @@ }, "object": { "type": "Identifier", - "start": 13118, - "end": 13121, + "start": 13153, + "end": 13156, "loc": { "start": { "line": 300, @@ -14212,8 +14212,8 @@ }, "property": { "type": "Identifier", - "start": 13122, - "end": 13140, + "start": 13157, + "end": 13175, "loc": { "start": { "line": 300, @@ -14233,8 +14233,8 @@ }, { "type": "ExpressionStatement", - "start": 13151, - "end": 13202, + "start": 13186, + "end": 13237, "loc": { "start": { "line": 302, @@ -14247,8 +14247,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13151, - "end": 13201, + "start": 13186, + "end": 13236, "loc": { "start": { "line": 302, @@ -14262,8 +14262,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13151, - "end": 13170, + "start": 13186, + "end": 13205, "loc": { "start": { "line": 302, @@ -14276,8 +14276,8 @@ }, "object": { "type": "ThisExpression", - "start": 13151, - "end": 13155, + "start": 13186, + "end": 13190, "loc": { "start": { "line": 302, @@ -14291,8 +14291,8 @@ }, "property": { "type": "Identifier", - "start": 13156, - "end": 13170, + "start": 13191, + "end": 13205, "loc": { "start": { "line": 302, @@ -14310,8 +14310,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13173, - "end": 13201, + "start": 13208, + "end": 13236, "loc": { "start": { "line": 302, @@ -14324,8 +14324,8 @@ }, "left": { "type": "MemberExpression", - "start": 13173, - "end": 13191, + "start": 13208, + "end": 13226, "loc": { "start": { "line": 302, @@ -14338,8 +14338,8 @@ }, "object": { "type": "Identifier", - "start": 13173, - "end": 13176, + "start": 13208, + "end": 13211, "loc": { "start": { "line": 302, @@ -14355,8 +14355,8 @@ }, "property": { "type": "Identifier", - "start": 13177, - "end": 13191, + "start": 13212, + "end": 13226, "loc": { "start": { "line": 302, @@ -14375,8 +14375,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13196, - "end": 13201, + "start": 13231, + "end": 13236, "loc": { "start": { "line": 302, @@ -14394,8 +14394,8 @@ }, { "type": "ExpressionStatement", - "start": 13211, - "end": 13274, + "start": 13246, + "end": 13309, "loc": { "start": { "line": 303, @@ -14408,8 +14408,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13211, - "end": 13273, + "start": 13246, + "end": 13308, "loc": { "start": { "line": 303, @@ -14423,8 +14423,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13211, - "end": 13236, + "start": 13246, + "end": 13271, "loc": { "start": { "line": 303, @@ -14437,8 +14437,8 @@ }, "object": { "type": "ThisExpression", - "start": 13211, - "end": 13215, + "start": 13246, + "end": 13250, "loc": { "start": { "line": 303, @@ -14452,8 +14452,8 @@ }, "property": { "type": "Identifier", - "start": 13216, - "end": 13236, + "start": 13251, + "end": 13271, "loc": { "start": { "line": 303, @@ -14471,8 +14471,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13239, - "end": 13273, + "start": 13274, + "end": 13308, "loc": { "start": { "line": 303, @@ -14485,8 +14485,8 @@ }, "left": { "type": "MemberExpression", - "start": 13239, - "end": 13263, + "start": 13274, + "end": 13298, "loc": { "start": { "line": 303, @@ -14499,8 +14499,8 @@ }, "object": { "type": "Identifier", - "start": 13239, - "end": 13242, + "start": 13274, + "end": 13277, "loc": { "start": { "line": 303, @@ -14516,8 +14516,8 @@ }, "property": { "type": "Identifier", - "start": 13243, - "end": 13263, + "start": 13278, + "end": 13298, "loc": { "start": { "line": 303, @@ -14536,8 +14536,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13268, - "end": 13273, + "start": 13303, + "end": 13308, "loc": { "start": { "line": 303, @@ -14555,8 +14555,8 @@ }, { "type": "ExpressionStatement", - "start": 13283, - "end": 13346, + "start": 13318, + "end": 13381, "loc": { "start": { "line": 304, @@ -14569,8 +14569,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13283, - "end": 13345, + "start": 13318, + "end": 13380, "loc": { "start": { "line": 304, @@ -14584,8 +14584,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13283, - "end": 13308, + "start": 13318, + "end": 13343, "loc": { "start": { "line": 304, @@ -14598,8 +14598,8 @@ }, "object": { "type": "ThisExpression", - "start": 13283, - "end": 13287, + "start": 13318, + "end": 13322, "loc": { "start": { "line": 304, @@ -14613,8 +14613,8 @@ }, "property": { "type": "Identifier", - "start": 13288, - "end": 13308, + "start": 13323, + "end": 13343, "loc": { "start": { "line": 304, @@ -14632,8 +14632,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13311, - "end": 13345, + "start": 13346, + "end": 13380, "loc": { "start": { "line": 304, @@ -14646,8 +14646,8 @@ }, "left": { "type": "MemberExpression", - "start": 13311, - "end": 13335, + "start": 13346, + "end": 13370, "loc": { "start": { "line": 304, @@ -14660,8 +14660,8 @@ }, "object": { "type": "Identifier", - "start": 13311, - "end": 13314, + "start": 13346, + "end": 13349, "loc": { "start": { "line": 304, @@ -14677,8 +14677,8 @@ }, "property": { "type": "Identifier", - "start": 13315, - "end": 13335, + "start": 13350, + "end": 13370, "loc": { "start": { "line": 304, @@ -14697,8 +14697,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13340, - "end": 13345, + "start": 13375, + "end": 13380, "loc": { "start": { "line": 304, @@ -14716,8 +14716,8 @@ }, { "type": "ExpressionStatement", - "start": 13355, - "end": 13414, + "start": 13390, + "end": 13449, "loc": { "start": { "line": 305, @@ -14730,8 +14730,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13355, - "end": 13413, + "start": 13390, + "end": 13448, "loc": { "start": { "line": 305, @@ -14745,8 +14745,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13355, - "end": 13378, + "start": 13390, + "end": 13413, "loc": { "start": { "line": 305, @@ -14759,8 +14759,8 @@ }, "object": { "type": "ThisExpression", - "start": 13355, - "end": 13359, + "start": 13390, + "end": 13394, "loc": { "start": { "line": 305, @@ -14774,8 +14774,8 @@ }, "property": { "type": "Identifier", - "start": 13360, - "end": 13378, + "start": 13395, + "end": 13413, "loc": { "start": { "line": 305, @@ -14793,8 +14793,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13381, - "end": 13413, + "start": 13416, + "end": 13448, "loc": { "start": { "line": 305, @@ -14807,8 +14807,8 @@ }, "left": { "type": "MemberExpression", - "start": 13381, - "end": 13403, + "start": 13416, + "end": 13438, "loc": { "start": { "line": 305, @@ -14821,8 +14821,8 @@ }, "object": { "type": "Identifier", - "start": 13381, - "end": 13384, + "start": 13416, + "end": 13419, "loc": { "start": { "line": 305, @@ -14838,8 +14838,8 @@ }, "property": { "type": "Identifier", - "start": 13385, - "end": 13403, + "start": 13420, + "end": 13438, "loc": { "start": { "line": 305, @@ -14858,8 +14858,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13408, - "end": 13413, + "start": 13443, + "end": 13448, "loc": { "start": { "line": 305, @@ -14877,8 +14877,8 @@ }, { "type": "ExpressionStatement", - "start": 13423, - "end": 13486, + "start": 13458, + "end": 13521, "loc": { "start": { "line": 306, @@ -14891,8 +14891,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13423, - "end": 13485, + "start": 13458, + "end": 13520, "loc": { "start": { "line": 306, @@ -14906,8 +14906,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13423, - "end": 13448, + "start": 13458, + "end": 13483, "loc": { "start": { "line": 306, @@ -14920,8 +14920,8 @@ }, "object": { "type": "ThisExpression", - "start": 13423, - "end": 13427, + "start": 13458, + "end": 13462, "loc": { "start": { "line": 306, @@ -14935,8 +14935,8 @@ }, "property": { "type": "Identifier", - "start": 13428, - "end": 13448, + "start": 13463, + "end": 13483, "loc": { "start": { "line": 306, @@ -14954,8 +14954,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13451, - "end": 13485, + "start": 13486, + "end": 13520, "loc": { "start": { "line": 306, @@ -14968,8 +14968,8 @@ }, "left": { "type": "MemberExpression", - "start": 13451, - "end": 13475, + "start": 13486, + "end": 13510, "loc": { "start": { "line": 306, @@ -14982,8 +14982,8 @@ }, "object": { "type": "Identifier", - "start": 13451, - "end": 13454, + "start": 13486, + "end": 13489, "loc": { "start": { "line": 306, @@ -14999,8 +14999,8 @@ }, "property": { "type": "Identifier", - "start": 13455, - "end": 13475, + "start": 13490, + "end": 13510, "loc": { "start": { "line": 306, @@ -15019,8 +15019,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13480, - "end": 13485, + "start": 13515, + "end": 13520, "loc": { "start": { "line": 306, @@ -15038,8 +15038,8 @@ }, { "type": "ExpressionStatement", - "start": 13495, - "end": 13554, + "start": 13530, + "end": 13589, "loc": { "start": { "line": 307, @@ -15052,8 +15052,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13495, - "end": 13553, + "start": 13530, + "end": 13588, "loc": { "start": { "line": 307, @@ -15067,8 +15067,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13495, - "end": 13518, + "start": 13530, + "end": 13553, "loc": { "start": { "line": 307, @@ -15081,8 +15081,8 @@ }, "object": { "type": "ThisExpression", - "start": 13495, - "end": 13499, + "start": 13530, + "end": 13534, "loc": { "start": { "line": 307, @@ -15096,8 +15096,8 @@ }, "property": { "type": "Identifier", - "start": 13500, - "end": 13518, + "start": 13535, + "end": 13553, "loc": { "start": { "line": 307, @@ -15115,8 +15115,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13521, - "end": 13553, + "start": 13556, + "end": 13588, "loc": { "start": { "line": 307, @@ -15129,8 +15129,8 @@ }, "left": { "type": "MemberExpression", - "start": 13521, - "end": 13543, + "start": 13556, + "end": 13578, "loc": { "start": { "line": 307, @@ -15143,8 +15143,8 @@ }, "object": { "type": "Identifier", - "start": 13521, - "end": 13524, + "start": 13556, + "end": 13559, "loc": { "start": { "line": 307, @@ -15160,8 +15160,8 @@ }, "property": { "type": "Identifier", - "start": 13525, - "end": 13543, + "start": 13560, + "end": 13578, "loc": { "start": { "line": 307, @@ -15180,8 +15180,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13548, - "end": 13553, + "start": 13583, + "end": 13588, "loc": { "start": { "line": 307, @@ -15199,8 +15199,8 @@ }, { "type": "ExpressionStatement", - "start": 13563, - "end": 13624, + "start": 13598, + "end": 13659, "loc": { "start": { "line": 308, @@ -15213,8 +15213,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13563, - "end": 13623, + "start": 13598, + "end": 13658, "loc": { "start": { "line": 308, @@ -15228,8 +15228,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13563, - "end": 13587, + "start": 13598, + "end": 13622, "loc": { "start": { "line": 308, @@ -15242,8 +15242,8 @@ }, "object": { "type": "ThisExpression", - "start": 13563, - "end": 13567, + "start": 13598, + "end": 13602, "loc": { "start": { "line": 308, @@ -15257,8 +15257,8 @@ }, "property": { "type": "Identifier", - "start": 13568, - "end": 13587, + "start": 13603, + "end": 13622, "loc": { "start": { "line": 308, @@ -15276,8 +15276,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13590, - "end": 13623, + "start": 13625, + "end": 13658, "loc": { "start": { "line": 308, @@ -15290,8 +15290,8 @@ }, "left": { "type": "MemberExpression", - "start": 13590, - "end": 13613, + "start": 13625, + "end": 13648, "loc": { "start": { "line": 308, @@ -15304,8 +15304,8 @@ }, "object": { "type": "Identifier", - "start": 13590, - "end": 13593, + "start": 13625, + "end": 13628, "loc": { "start": { "line": 308, @@ -15321,8 +15321,8 @@ }, "property": { "type": "Identifier", - "start": 13594, - "end": 13613, + "start": 13629, + "end": 13648, "loc": { "start": { "line": 308, @@ -15341,8 +15341,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13618, - "end": 13623, + "start": 13653, + "end": 13658, "loc": { "start": { "line": 308, @@ -15360,8 +15360,8 @@ }, { "type": "ExpressionStatement", - "start": 13633, - "end": 13694, + "start": 13668, + "end": 13729, "loc": { "start": { "line": 309, @@ -15374,8 +15374,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13633, - "end": 13693, + "start": 13668, + "end": 13728, "loc": { "start": { "line": 309, @@ -15389,8 +15389,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13633, - "end": 13657, + "start": 13668, + "end": 13692, "loc": { "start": { "line": 309, @@ -15403,8 +15403,8 @@ }, "object": { "type": "ThisExpression", - "start": 13633, - "end": 13637, + "start": 13668, + "end": 13672, "loc": { "start": { "line": 309, @@ -15418,8 +15418,8 @@ }, "property": { "type": "Identifier", - "start": 13638, - "end": 13657, + "start": 13673, + "end": 13692, "loc": { "start": { "line": 309, @@ -15437,8 +15437,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13660, - "end": 13693, + "start": 13695, + "end": 13728, "loc": { "start": { "line": 309, @@ -15451,8 +15451,8 @@ }, "left": { "type": "MemberExpression", - "start": 13660, - "end": 13683, + "start": 13695, + "end": 13718, "loc": { "start": { "line": 309, @@ -15465,8 +15465,8 @@ }, "object": { "type": "Identifier", - "start": 13660, - "end": 13663, + "start": 13695, + "end": 13698, "loc": { "start": { "line": 309, @@ -15482,8 +15482,8 @@ }, "property": { "type": "Identifier", - "start": 13664, - "end": 13683, + "start": 13699, + "end": 13718, "loc": { "start": { "line": 309, @@ -15502,8 +15502,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13688, - "end": 13693, + "start": 13723, + "end": 13728, "loc": { "start": { "line": 309, @@ -15521,8 +15521,8 @@ }, { "type": "ExpressionStatement", - "start": 13703, - "end": 13764, + "start": 13738, + "end": 13799, "loc": { "start": { "line": 310, @@ -15535,8 +15535,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13703, - "end": 13763, + "start": 13738, + "end": 13798, "loc": { "start": { "line": 310, @@ -15550,8 +15550,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13703, - "end": 13727, + "start": 13738, + "end": 13762, "loc": { "start": { "line": 310, @@ -15564,8 +15564,8 @@ }, "object": { "type": "ThisExpression", - "start": 13703, - "end": 13707, + "start": 13738, + "end": 13742, "loc": { "start": { "line": 310, @@ -15579,8 +15579,8 @@ }, "property": { "type": "Identifier", - "start": 13708, - "end": 13727, + "start": 13743, + "end": 13762, "loc": { "start": { "line": 310, @@ -15598,8 +15598,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13730, - "end": 13763, + "start": 13765, + "end": 13798, "loc": { "start": { "line": 310, @@ -15612,8 +15612,8 @@ }, "left": { "type": "MemberExpression", - "start": 13730, - "end": 13753, + "start": 13765, + "end": 13788, "loc": { "start": { "line": 310, @@ -15626,8 +15626,8 @@ }, "object": { "type": "Identifier", - "start": 13730, - "end": 13733, + "start": 13765, + "end": 13768, "loc": { "start": { "line": 310, @@ -15643,8 +15643,8 @@ }, "property": { "type": "Identifier", - "start": 13734, - "end": 13753, + "start": 13769, + "end": 13788, "loc": { "start": { "line": 310, @@ -15663,8 +15663,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13758, - "end": 13763, + "start": 13793, + "end": 13798, "loc": { "start": { "line": 310, @@ -15682,8 +15682,8 @@ }, { "type": "ExpressionStatement", - "start": 13773, - "end": 13855, + "start": 13808, + "end": 13890, "loc": { "start": { "line": 311, @@ -15696,8 +15696,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13773, - "end": 13854, + "start": 13808, + "end": 13889, "loc": { "start": { "line": 311, @@ -15711,8 +15711,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13773, - "end": 13790, + "start": 13808, + "end": 13825, "loc": { "start": { "line": 311, @@ -15725,8 +15725,8 @@ }, "object": { "type": "ThisExpression", - "start": 13773, - "end": 13777, + "start": 13808, + "end": 13812, "loc": { "start": { "line": 311, @@ -15740,8 +15740,8 @@ }, "property": { "type": "Identifier", - "start": 13778, - "end": 13790, + "start": 13813, + "end": 13825, "loc": { "start": { "line": 311, @@ -15759,8 +15759,8 @@ }, "right": { "type": "ConditionalExpression", - "start": 13793, - "end": 13854, + "start": 13828, + "end": 13889, "loc": { "start": { "line": 311, @@ -15773,8 +15773,8 @@ }, "test": { "type": "BinaryExpression", - "start": 13793, - "end": 13823, + "start": 13828, + "end": 13858, "loc": { "start": { "line": 311, @@ -15787,8 +15787,8 @@ }, "left": { "type": "MemberExpression", - "start": 13793, - "end": 13809, + "start": 13828, + "end": 13844, "loc": { "start": { "line": 311, @@ -15801,8 +15801,8 @@ }, "object": { "type": "Identifier", - "start": 13793, - "end": 13796, + "start": 13828, + "end": 13831, "loc": { "start": { "line": 311, @@ -15818,8 +15818,8 @@ }, "property": { "type": "Identifier", - "start": 13797, - "end": 13809, + "start": 13832, + "end": 13844, "loc": { "start": { "line": 311, @@ -15838,8 +15838,8 @@ "operator": "!==", "right": { "type": "Identifier", - "start": 13814, - "end": 13823, + "start": 13849, + "end": 13858, "loc": { "start": { "line": 311, @@ -15856,8 +15856,8 @@ }, "consequent": { "type": "MemberExpression", - "start": 13826, - "end": 13842, + "start": 13861, + "end": 13877, "loc": { "start": { "line": 311, @@ -15870,8 +15870,8 @@ }, "object": { "type": "Identifier", - "start": 13826, - "end": 13829, + "start": 13861, + "end": 13864, "loc": { "start": { "line": 311, @@ -15887,8 +15887,8 @@ }, "property": { "type": "Identifier", - "start": 13830, - "end": 13842, + "start": 13865, + "end": 13877, "loc": { "start": { "line": 311, @@ -15906,8 +15906,8 @@ }, "alternate": { "type": "StringLiteral", - "start": 13845, - "end": 13854, + "start": 13880, + "end": 13889, "loc": { "start": { "line": 311, @@ -15929,8 +15929,8 @@ }, { "type": "ExpressionStatement", - "start": 13864, - "end": 13898, + "start": 13899, + "end": 13933, "loc": { "start": { "line": 312, @@ -15943,8 +15943,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13864, - "end": 13897, + "start": 13899, + "end": 13932, "loc": { "start": { "line": 312, @@ -15958,8 +15958,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13864, - "end": 13875, + "start": 13899, + "end": 13910, "loc": { "start": { "line": 312, @@ -15972,8 +15972,8 @@ }, "object": { "type": "ThisExpression", - "start": 13864, - "end": 13868, + "start": 13899, + "end": 13903, "loc": { "start": { "line": 312, @@ -15987,8 +15987,8 @@ }, "property": { "type": "Identifier", - "start": 13869, - "end": 13875, + "start": 13904, + "end": 13910, "loc": { "start": { "line": 312, @@ -16006,8 +16006,8 @@ }, "right": { "type": "LogicalExpression", - "start": 13878, - "end": 13897, + "start": 13913, + "end": 13932, "loc": { "start": { "line": 312, @@ -16020,8 +16020,8 @@ }, "left": { "type": "MemberExpression", - "start": 13878, - "end": 13888, + "start": 13913, + "end": 13923, "loc": { "start": { "line": 312, @@ -16034,8 +16034,8 @@ }, "object": { "type": "Identifier", - "start": 13878, - "end": 13881, + "start": 13913, + "end": 13916, "loc": { "start": { "line": 312, @@ -16051,8 +16051,8 @@ }, "property": { "type": "Identifier", - "start": 13882, - "end": 13888, + "start": 13917, + "end": 13923, "loc": { "start": { "line": 312, @@ -16071,8 +16071,8 @@ "operator": "||", "right": { "type": "NumericLiteral", - "start": 13892, - "end": 13897, + "start": 13927, + "end": 13932, "loc": { "start": { "line": 312, @@ -16094,8 +16094,8 @@ }, { "type": "ExpressionStatement", - "start": 13907, - "end": 13970, + "start": 13942, + "end": 14005, "loc": { "start": { "line": 313, @@ -16108,8 +16108,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13907, - "end": 13969, + "start": 13942, + "end": 14004, "loc": { "start": { "line": 313, @@ -16123,8 +16123,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13907, - "end": 13932, + "start": 13942, + "end": 13967, "loc": { "start": { "line": 313, @@ -16137,8 +16137,8 @@ }, "object": { "type": "ThisExpression", - "start": 13907, - "end": 13911, + "start": 13942, + "end": 13946, "loc": { "start": { "line": 313, @@ -16152,8 +16152,8 @@ }, "property": { "type": "Identifier", - "start": 13912, - "end": 13932, + "start": 13947, + "end": 13967, "loc": { "start": { "line": 313, @@ -16171,8 +16171,8 @@ }, "right": { "type": "BinaryExpression", - "start": 13935, - "end": 13969, + "start": 13970, + "end": 14004, "loc": { "start": { "line": 313, @@ -16185,8 +16185,8 @@ }, "left": { "type": "MemberExpression", - "start": 13935, - "end": 13959, + "start": 13970, + "end": 13994, "loc": { "start": { "line": 313, @@ -16199,8 +16199,8 @@ }, "object": { "type": "Identifier", - "start": 13935, - "end": 13938, + "start": 13970, + "end": 13973, "loc": { "start": { "line": 313, @@ -16216,8 +16216,8 @@ }, "property": { "type": "Identifier", - "start": 13939, - "end": 13959, + "start": 13974, + "end": 13994, "loc": { "start": { "line": 313, @@ -16236,8 +16236,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 13964, - "end": 13969, + "start": 13999, + "end": 14004, "loc": { "start": { "line": 313, @@ -16255,8 +16255,8 @@ }, { "type": "ExpressionStatement", - "start": 13980, - "end": 14219, + "start": 14015, + "end": 14254, "loc": { "start": { "line": 315, @@ -16269,8 +16269,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 13980, - "end": 14219, + "start": 14015, + "end": 14254, "loc": { "start": { "line": 315, @@ -16284,8 +16284,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 13980, - "end": 13997, + "start": 14015, + "end": 14032, "loc": { "start": { "line": 315, @@ -16298,8 +16298,8 @@ }, "object": { "type": "ThisExpression", - "start": 13980, - "end": 13984, + "start": 14015, + "end": 14019, "loc": { "start": { "line": 315, @@ -16313,8 +16313,8 @@ }, "property": { "type": "Identifier", - "start": 13985, - "end": 13997, + "start": 14020, + "end": 14032, "loc": { "start": { "line": 315, @@ -16332,8 +16332,8 @@ }, "right": { "type": "ArrowFunctionExpression", - "start": 14000, - "end": 14219, + "start": 14035, + "end": 14254, "loc": { "start": { "line": 315, @@ -16351,8 +16351,8 @@ "params": [ { "type": "Identifier", - "start": 14001, - "end": 14006, + "start": 14036, + "end": 14041, "loc": { "start": { "line": 315, @@ -16368,8 +16368,8 @@ }, { "type": "Identifier", - "start": 14008, - "end": 14019, + "start": 14043, + "end": 14054, "loc": { "start": { "line": 315, @@ -16386,8 +16386,8 @@ ], "body": { "type": "BlockStatement", - "start": 14024, - "end": 14219, + "start": 14059, + "end": 14254, "loc": { "start": { "line": 315, @@ -16401,8 +16401,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 14038, - "end": 14209, + "start": 14073, + "end": 14244, "loc": { "start": { "line": 316, @@ -16415,8 +16415,8 @@ }, "expression": { "type": "CallExpression", - "start": 14038, - "end": 14208, + "start": 14073, + "end": 14243, "loc": { "start": { "line": 316, @@ -16429,8 +16429,8 @@ }, "callee": { "type": "MemberExpression", - "start": 14038, - "end": 14047, + "start": 14073, + "end": 14082, "loc": { "start": { "line": 316, @@ -16443,8 +16443,8 @@ }, "object": { "type": "ThisExpression", - "start": 14038, - "end": 14042, + "start": 14073, + "end": 14077, "loc": { "start": { "line": 316, @@ -16458,8 +16458,8 @@ }, "property": { "type": "Identifier", - "start": 14043, - "end": 14047, + "start": 14078, + "end": 14082, "loc": { "start": { "line": 316, @@ -16478,8 +16478,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 14048, - "end": 14059, + "start": 14083, + "end": 14094, "loc": { "start": { "line": 316, @@ -16498,8 +16498,8 @@ }, { "type": "ObjectExpression", - "start": 14061, - "end": 14207, + "start": 14096, + "end": 14242, "loc": { "start": { "line": 316, @@ -16513,8 +16513,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 14079, - "end": 14091, + "start": 14114, + "end": 14126, "loc": { "start": { "line": 317, @@ -16530,8 +16530,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14079, - "end": 14085, + "start": 14114, + "end": 14120, "loc": { "start": { "line": 317, @@ -16547,8 +16547,8 @@ }, "value": { "type": "ThisExpression", - "start": 14087, - "end": 14091, + "start": 14122, + "end": 14126, "loc": { "start": { "line": 317, @@ -16563,8 +16563,8 @@ }, { "type": "ObjectProperty", - "start": 14109, - "end": 14141, + "start": 14144, + "end": 14176, "loc": { "start": { "line": 318, @@ -16580,8 +16580,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14109, - "end": 14128, + "start": 14144, + "end": 14163, "loc": { "start": { "line": 318, @@ -16597,8 +16597,8 @@ }, "value": { "type": "Identifier", - "start": 14130, - "end": 14141, + "start": 14165, + "end": 14176, "loc": { "start": { "line": 318, @@ -16615,8 +16615,8 @@ }, { "type": "ObjectProperty", - "start": 14159, - "end": 14170, + "start": 14194, + "end": 14205, "loc": { "start": { "line": 319, @@ -16632,8 +16632,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14159, - "end": 14170, + "start": 14194, + "end": 14205, "loc": { "start": { "line": 319, @@ -16649,8 +16649,8 @@ }, "value": { "type": "Identifier", - "start": 14159, - "end": 14170, + "start": 14194, + "end": 14205, "loc": { "start": { "line": 319, @@ -16670,8 +16670,8 @@ }, { "type": "ObjectProperty", - "start": 14188, - "end": 14193, + "start": 14223, + "end": 14228, "loc": { "start": { "line": 320, @@ -16687,8 +16687,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14188, - "end": 14193, + "start": 14223, + "end": 14228, "loc": { "start": { "line": 320, @@ -16704,8 +16704,8 @@ }, "value": { "type": "Identifier", - "start": 14188, - "end": 14193, + "start": 14223, + "end": 14228, "loc": { "start": { "line": 320, @@ -16736,8 +16736,8 @@ }, { "type": "ExpressionStatement", - "start": 14229, - "end": 14471, + "start": 14264, + "end": 14506, "loc": { "start": { "line": 324, @@ -16750,8 +16750,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 14229, - "end": 14470, + "start": 14264, + "end": 14505, "loc": { "start": { "line": 324, @@ -16765,8 +16765,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 14229, - "end": 14247, + "start": 14264, + "end": 14282, "loc": { "start": { "line": 324, @@ -16779,8 +16779,8 @@ }, "object": { "type": "ThisExpression", - "start": 14229, - "end": 14233, + "start": 14264, + "end": 14268, "loc": { "start": { "line": 324, @@ -16794,8 +16794,8 @@ }, "property": { "type": "Identifier", - "start": 14234, - "end": 14247, + "start": 14269, + "end": 14282, "loc": { "start": { "line": 324, @@ -16813,8 +16813,8 @@ }, "right": { "type": "ArrowFunctionExpression", - "start": 14250, - "end": 14470, + "start": 14285, + "end": 14505, "loc": { "start": { "line": 324, @@ -16832,8 +16832,8 @@ "params": [ { "type": "Identifier", - "start": 14251, - "end": 14256, + "start": 14286, + "end": 14291, "loc": { "start": { "line": 324, @@ -16849,8 +16849,8 @@ }, { "type": "Identifier", - "start": 14258, - "end": 14269, + "start": 14293, + "end": 14304, "loc": { "start": { "line": 324, @@ -16867,8 +16867,8 @@ ], "body": { "type": "BlockStatement", - "start": 14274, - "end": 14470, + "start": 14309, + "end": 14505, "loc": { "start": { "line": 324, @@ -16882,8 +16882,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 14288, - "end": 14460, + "start": 14323, + "end": 14495, "loc": { "start": { "line": 325, @@ -16896,8 +16896,8 @@ }, "expression": { "type": "CallExpression", - "start": 14288, - "end": 14459, + "start": 14323, + "end": 14494, "loc": { "start": { "line": 325, @@ -16910,8 +16910,8 @@ }, "callee": { "type": "MemberExpression", - "start": 14288, - "end": 14297, + "start": 14323, + "end": 14332, "loc": { "start": { "line": 325, @@ -16924,8 +16924,8 @@ }, "object": { "type": "ThisExpression", - "start": 14288, - "end": 14292, + "start": 14323, + "end": 14327, "loc": { "start": { "line": 325, @@ -16939,8 +16939,8 @@ }, "property": { "type": "Identifier", - "start": 14293, - "end": 14297, + "start": 14328, + "end": 14332, "loc": { "start": { "line": 325, @@ -16959,8 +16959,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 14298, - "end": 14310, + "start": 14333, + "end": 14345, "loc": { "start": { "line": 325, @@ -16979,8 +16979,8 @@ }, { "type": "ObjectExpression", - "start": 14312, - "end": 14458, + "start": 14347, + "end": 14493, "loc": { "start": { "line": 325, @@ -16994,8 +16994,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 14330, - "end": 14342, + "start": 14365, + "end": 14377, "loc": { "start": { "line": 326, @@ -17011,8 +17011,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14330, - "end": 14336, + "start": 14365, + "end": 14371, "loc": { "start": { "line": 326, @@ -17028,8 +17028,8 @@ }, "value": { "type": "ThisExpression", - "start": 14338, - "end": 14342, + "start": 14373, + "end": 14377, "loc": { "start": { "line": 326, @@ -17044,8 +17044,8 @@ }, { "type": "ObjectProperty", - "start": 14360, - "end": 14392, + "start": 14395, + "end": 14427, "loc": { "start": { "line": 327, @@ -17061,8 +17061,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14360, - "end": 14379, + "start": 14395, + "end": 14414, "loc": { "start": { "line": 327, @@ -17078,8 +17078,8 @@ }, "value": { "type": "Identifier", - "start": 14381, - "end": 14392, + "start": 14416, + "end": 14427, "loc": { "start": { "line": 327, @@ -17096,8 +17096,8 @@ }, { "type": "ObjectProperty", - "start": 14410, - "end": 14421, + "start": 14445, + "end": 14456, "loc": { "start": { "line": 328, @@ -17113,8 +17113,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14410, - "end": 14421, + "start": 14445, + "end": 14456, "loc": { "start": { "line": 328, @@ -17130,8 +17130,8 @@ }, "value": { "type": "Identifier", - "start": 14410, - "end": 14421, + "start": 14445, + "end": 14456, "loc": { "start": { "line": 328, @@ -17151,8 +17151,8 @@ }, { "type": "ObjectProperty", - "start": 14439, - "end": 14444, + "start": 14474, + "end": 14479, "loc": { "start": { "line": 329, @@ -17168,8 +17168,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14439, - "end": 14444, + "start": 14474, + "end": 14479, "loc": { "start": { "line": 329, @@ -17185,8 +17185,8 @@ }, "value": { "type": "Identifier", - "start": 14439, - "end": 14444, + "start": 14474, + "end": 14479, "loc": { "start": { "line": 329, @@ -17217,8 +17217,8 @@ }, { "type": "ExpressionStatement", - "start": 14481, - "end": 14725, + "start": 14516, + "end": 14760, "loc": { "start": { "line": 333, @@ -17231,8 +17231,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 14481, - "end": 14724, + "start": 14516, + "end": 14759, "loc": { "start": { "line": 333, @@ -17246,8 +17246,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 14481, - "end": 14500, + "start": 14516, + "end": 14535, "loc": { "start": { "line": 333, @@ -17260,8 +17260,8 @@ }, "object": { "type": "ThisExpression", - "start": 14481, - "end": 14485, + "start": 14516, + "end": 14520, "loc": { "start": { "line": 333, @@ -17275,8 +17275,8 @@ }, "property": { "type": "Identifier", - "start": 14486, - "end": 14500, + "start": 14521, + "end": 14535, "loc": { "start": { "line": 333, @@ -17294,8 +17294,8 @@ }, "right": { "type": "ArrowFunctionExpression", - "start": 14503, - "end": 14724, + "start": 14538, + "end": 14759, "loc": { "start": { "line": 333, @@ -17313,8 +17313,8 @@ "params": [ { "type": "Identifier", - "start": 14504, - "end": 14509, + "start": 14539, + "end": 14544, "loc": { "start": { "line": 333, @@ -17330,8 +17330,8 @@ }, { "type": "Identifier", - "start": 14511, - "end": 14522, + "start": 14546, + "end": 14557, "loc": { "start": { "line": 333, @@ -17348,8 +17348,8 @@ ], "body": { "type": "BlockStatement", - "start": 14527, - "end": 14724, + "start": 14562, + "end": 14759, "loc": { "start": { "line": 333, @@ -17363,8 +17363,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 14541, - "end": 14714, + "start": 14576, + "end": 14749, "loc": { "start": { "line": 334, @@ -17377,8 +17377,8 @@ }, "expression": { "type": "CallExpression", - "start": 14541, - "end": 14713, + "start": 14576, + "end": 14748, "loc": { "start": { "line": 334, @@ -17391,8 +17391,8 @@ }, "callee": { "type": "MemberExpression", - "start": 14541, - "end": 14550, + "start": 14576, + "end": 14585, "loc": { "start": { "line": 334, @@ -17405,8 +17405,8 @@ }, "object": { "type": "ThisExpression", - "start": 14541, - "end": 14545, + "start": 14576, + "end": 14580, "loc": { "start": { "line": 334, @@ -17420,8 +17420,8 @@ }, "property": { "type": "Identifier", - "start": 14546, - "end": 14550, + "start": 14581, + "end": 14585, "loc": { "start": { "line": 334, @@ -17440,8 +17440,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 14551, - "end": 14564, + "start": 14586, + "end": 14599, "loc": { "start": { "line": 334, @@ -17460,8 +17460,8 @@ }, { "type": "ObjectExpression", - "start": 14566, - "end": 14712, + "start": 14601, + "end": 14747, "loc": { "start": { "line": 334, @@ -17475,8 +17475,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 14584, - "end": 14596, + "start": 14619, + "end": 14631, "loc": { "start": { "line": 335, @@ -17492,8 +17492,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14584, - "end": 14590, + "start": 14619, + "end": 14625, "loc": { "start": { "line": 335, @@ -17509,8 +17509,8 @@ }, "value": { "type": "ThisExpression", - "start": 14592, - "end": 14596, + "start": 14627, + "end": 14631, "loc": { "start": { "line": 335, @@ -17525,8 +17525,8 @@ }, { "type": "ObjectProperty", - "start": 14614, - "end": 14646, + "start": 14649, + "end": 14681, "loc": { "start": { "line": 336, @@ -17542,8 +17542,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14614, - "end": 14633, + "start": 14649, + "end": 14668, "loc": { "start": { "line": 336, @@ -17559,8 +17559,8 @@ }, "value": { "type": "Identifier", - "start": 14635, - "end": 14646, + "start": 14670, + "end": 14681, "loc": { "start": { "line": 336, @@ -17577,8 +17577,8 @@ }, { "type": "ObjectProperty", - "start": 14664, - "end": 14675, + "start": 14699, + "end": 14710, "loc": { "start": { "line": 337, @@ -17594,8 +17594,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14664, - "end": 14675, + "start": 14699, + "end": 14710, "loc": { "start": { "line": 337, @@ -17611,8 +17611,8 @@ }, "value": { "type": "Identifier", - "start": 14664, - "end": 14675, + "start": 14699, + "end": 14710, "loc": { "start": { "line": 337, @@ -17632,8 +17632,8 @@ }, { "type": "ObjectProperty", - "start": 14693, - "end": 14698, + "start": 14728, + "end": 14733, "loc": { "start": { "line": 338, @@ -17649,8 +17649,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14693, - "end": 14698, + "start": 14728, + "end": 14733, "loc": { "start": { "line": 338, @@ -17666,8 +17666,8 @@ }, "value": { "type": "Identifier", - "start": 14693, - "end": 14698, + "start": 14728, + "end": 14733, "loc": { "start": { "line": 338, @@ -17704,8 +17704,8 @@ { "type": "CommentBlock", "value": "*\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"DistanceMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {Number} [cfg.labelMinAxisLength=25] The minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {boolean} [cfg.defaultVisible=true] The default value of the DistanceMeasurements `visible` property.\n * @param {boolean} [cfg.defaultOriginVisible=true] The default value of the DistanceMeasurements `originVisible` property.\n * @param {boolean} [cfg.defaultTargetVisible=true] The default value of the DistanceMeasurements `targetVisible` property.\n * @param {boolean} [cfg.defaultWireVisible=true] The default value of the DistanceMeasurements `wireVisible` property.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of the DistanceMeasurements `labelsVisible` property.\n * @param {boolean} [cfg.defaultAxisVisible=true] The default value of the DistanceMeasurements `axisVisible` property.\n * @param {boolean} [cfg.defaultXAxisVisible=true] The default value of the DistanceMeasurements `xAxisVisible` property.\n * @param {boolean} [cfg.defaultYAxisVisible=true] The default value of the DistanceMeasurements `yAxisVisible` property.\n * @param {boolean} [cfg.defaultZAxisVisible=true] The default value of the DistanceMeasurements `zAxisVisible` property.\n * @param {string} [cfg.defaultColor=#00BBFF] The default color of the length dots, wire and label.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {boolean} [cfg.defaultLabelsOnWires=true] The default value of the DistanceMeasurements `labelsOnWires` property.\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n ", - "start": 10678, - "end": 12821, + "start": 10713, + "end": 12856, "loc": { "start": { "line": 267, @@ -17722,8 +17722,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n ", - "start": 14737, - "end": 14849, + "start": 14772, + "end": 14884, "loc": { "start": { "line": 343, @@ -17739,8 +17739,8 @@ }, { "type": "ClassMethod", - "start": 14854, - "end": 14915, + "start": 14889, + "end": 14950, "loc": { "start": { "line": 347, @@ -17755,8 +17755,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14854, - "end": 14873, + "start": 14889, + "end": 14908, "loc": { "start": { "line": 347, @@ -17779,8 +17779,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 14876, - "end": 14915, + "start": 14911, + "end": 14950, "loc": { "start": { "line": 347, @@ -17794,8 +17794,8 @@ "body": [ { "type": "ReturnStatement", - "start": 14886, - "end": 14909, + "start": 14921, + "end": 14944, "loc": { "start": { "line": 348, @@ -17808,8 +17808,8 @@ }, "argument": { "type": "MemberExpression", - "start": 14893, - "end": 14908, + "start": 14928, + "end": 14943, "loc": { "start": { "line": 348, @@ -17822,8 +17822,8 @@ }, "object": { "type": "ThisExpression", - "start": 14893, - "end": 14897, + "start": 14928, + "end": 14932, "loc": { "start": { "line": 348, @@ -17837,8 +17837,8 @@ }, "property": { "type": "Identifier", - "start": 14898, - "end": 14908, + "start": 14933, + "end": 14943, "loc": { "start": { "line": 348, @@ -17863,8 +17863,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n ", - "start": 14737, - "end": 14849, + "start": 14772, + "end": 14884, "loc": { "start": { "line": 343, @@ -17881,8 +17881,8 @@ { "type": "CommentBlock", "value": "*\n * @private\n ", - "start": 14921, - "end": 14948, + "start": 14956, + "end": 14983, "loc": { "start": { "line": 351, @@ -17898,8 +17898,8 @@ }, { "type": "ClassMethod", - "start": 14953, - "end": 14979, + "start": 14988, + "end": 15014, "loc": { "start": { "line": 354, @@ -17914,8 +17914,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 14953, - "end": 14957, + "start": 14988, + "end": 14992, "loc": { "start": { "line": 354, @@ -17938,8 +17938,8 @@ "params": [ { "type": "Identifier", - "start": 14958, - "end": 14962, + "start": 14993, + "end": 14997, "loc": { "start": { "line": 354, @@ -17955,8 +17955,8 @@ }, { "type": "Identifier", - "start": 14964, - "end": 14969, + "start": 14999, + "end": 15004, "loc": { "start": { "line": 354, @@ -17973,8 +17973,8 @@ ], "body": { "type": "BlockStatement", - "start": 14971, - "end": 14979, + "start": 15006, + "end": 15014, "loc": { "start": { "line": 354, @@ -17994,8 +17994,8 @@ { "type": "CommentBlock", "value": "*\n * @private\n ", - "start": 14921, - "end": 14948, + "start": 14956, + "end": 14983, "loc": { "start": { "line": 351, @@ -18012,8 +18012,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the PointerLens attached to this DistanceMeasurementsPlugin.\n * @returns {PointerCircle}\n ", - "start": 14985, - "end": 15101, + "start": 15020, + "end": 15136, "loc": { "start": { "line": 358, @@ -18029,8 +18029,8 @@ }, { "type": "ClassMethod", - "start": 15106, - "end": 15165, + "start": 15141, + "end": 15200, "loc": { "start": { "line": 362, @@ -18045,8 +18045,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 15110, - "end": 15121, + "start": 15145, + "end": 15156, "loc": { "start": { "line": 362, @@ -18068,8 +18068,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 15124, - "end": 15165, + "start": 15159, + "end": 15200, "loc": { "start": { "line": 362, @@ -18083,8 +18083,8 @@ "body": [ { "type": "ReturnStatement", - "start": 15134, - "end": 15159, + "start": 15169, + "end": 15194, "loc": { "start": { "line": 363, @@ -18097,8 +18097,8 @@ }, "argument": { "type": "MemberExpression", - "start": 15141, - "end": 15158, + "start": 15176, + "end": 15193, "loc": { "start": { "line": 363, @@ -18111,8 +18111,8 @@ }, "object": { "type": "ThisExpression", - "start": 15141, - "end": 15145, + "start": 15176, + "end": 15180, "loc": { "start": { "line": 363, @@ -18126,8 +18126,8 @@ }, "property": { "type": "Identifier", - "start": 15146, - "end": 15158, + "start": 15181, + "end": 15193, "loc": { "start": { "line": 363, @@ -18152,8 +18152,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the PointerLens attached to this DistanceMeasurementsPlugin.\n * @returns {PointerCircle}\n ", - "start": 14985, - "end": 15101, + "start": 15020, + "end": 15136, "loc": { "start": { "line": 358, @@ -18170,8 +18170,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the default {@link DistanceMeasurementsControl}.\n *\n * @type {DistanceMeasurementsControl}\n * @deprecated\n ", - "start": 15171, - "end": 15312, + "start": 15206, + "end": 15347, "loc": { "start": { "line": 366, @@ -18187,8 +18187,8 @@ }, { "type": "ClassMethod", - "start": 15317, - "end": 15505, + "start": 15352, + "end": 15540, "loc": { "start": { "line": 372, @@ -18203,8 +18203,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 15321, - "end": 15328, + "start": 15356, + "end": 15363, "loc": { "start": { "line": 372, @@ -18226,8 +18226,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 15331, - "end": 15505, + "start": 15366, + "end": 15540, "loc": { "start": { "line": 372, @@ -18241,8 +18241,8 @@ "body": [ { "type": "IfStatement", - "start": 15341, - "end": 15462, + "start": 15376, + "end": 15497, "loc": { "start": { "line": 373, @@ -18255,8 +18255,8 @@ }, "test": { "type": "UnaryExpression", - "start": 15345, - "end": 15366, + "start": 15380, + "end": 15401, "loc": { "start": { "line": 373, @@ -18271,8 +18271,8 @@ "prefix": true, "argument": { "type": "MemberExpression", - "start": 15346, - "end": 15366, + "start": 15381, + "end": 15401, "loc": { "start": { "line": 373, @@ -18285,8 +18285,8 @@ }, "object": { "type": "ThisExpression", - "start": 15346, - "end": 15350, + "start": 15381, + "end": 15385, "loc": { "start": { "line": 373, @@ -18300,8 +18300,8 @@ }, "property": { "type": "Identifier", - "start": 15351, - "end": 15366, + "start": 15386, + "end": 15401, "loc": { "start": { "line": 373, @@ -18323,8 +18323,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 15368, - "end": 15462, + "start": 15403, + "end": 15497, "loc": { "start": { "line": 373, @@ -18338,8 +18338,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 15382, - "end": 15452, + "start": 15417, + "end": 15487, "loc": { "start": { "line": 374, @@ -18352,8 +18352,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 15382, - "end": 15451, + "start": 15417, + "end": 15486, "loc": { "start": { "line": 374, @@ -18367,8 +18367,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 15382, - "end": 15402, + "start": 15417, + "end": 15437, "loc": { "start": { "line": 374, @@ -18381,8 +18381,8 @@ }, "object": { "type": "ThisExpression", - "start": 15382, - "end": 15386, + "start": 15417, + "end": 15421, "loc": { "start": { "line": 374, @@ -18396,8 +18396,8 @@ }, "property": { "type": "Identifier", - "start": 15387, - "end": 15402, + "start": 15422, + "end": 15437, "loc": { "start": { "line": 374, @@ -18415,8 +18415,8 @@ }, "right": { "type": "NewExpression", - "start": 15405, - "end": 15451, + "start": 15440, + "end": 15486, "loc": { "start": { "line": 374, @@ -18429,8 +18429,8 @@ }, "callee": { "type": "Identifier", - "start": 15409, - "end": 15441, + "start": 15444, + "end": 15476, "loc": { "start": { "line": 374, @@ -18447,8 +18447,8 @@ "arguments": [ { "type": "ThisExpression", - "start": 15442, - "end": 15446, + "start": 15477, + "end": 15481, "loc": { "start": { "line": 374, @@ -18462,8 +18462,8 @@ }, { "type": "ObjectExpression", - "start": 15448, - "end": 15450, + "start": 15483, + "end": 15485, "loc": { "start": { "line": 374, @@ -18487,8 +18487,8 @@ }, { "type": "ReturnStatement", - "start": 15471, - "end": 15499, + "start": 15506, + "end": 15534, "loc": { "start": { "line": 376, @@ -18501,8 +18501,8 @@ }, "argument": { "type": "MemberExpression", - "start": 15478, - "end": 15498, + "start": 15513, + "end": 15533, "loc": { "start": { "line": 376, @@ -18515,8 +18515,8 @@ }, "object": { "type": "ThisExpression", - "start": 15478, - "end": 15482, + "start": 15513, + "end": 15517, "loc": { "start": { "line": 376, @@ -18530,8 +18530,8 @@ }, "property": { "type": "Identifier", - "start": 15483, - "end": 15498, + "start": 15518, + "end": 15533, "loc": { "start": { "line": 376, @@ -18556,8 +18556,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the default {@link DistanceMeasurementsControl}.\n *\n * @type {DistanceMeasurementsControl}\n * @deprecated\n ", - "start": 15171, - "end": 15312, + "start": 15206, + "end": 15347, "loc": { "start": { "line": 366, @@ -18574,8 +18574,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the existing {@link DistanceMeasurement}s, each mapped to its {@link DistanceMeasurement#id}.\n *\n * @type {{String:DistanceMeasurement}}\n ", - "start": 15511, - "end": 15679, + "start": 15546, + "end": 15714, "loc": { "start": { "line": 379, @@ -18591,8 +18591,8 @@ }, { "type": "ClassMethod", - "start": 15684, - "end": 15745, + "start": 15719, + "end": 15780, "loc": { "start": { "line": 384, @@ -18607,8 +18607,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 15688, - "end": 15700, + "start": 15723, + "end": 15735, "loc": { "start": { "line": 384, @@ -18630,8 +18630,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 15703, - "end": 15745, + "start": 15738, + "end": 15780, "loc": { "start": { "line": 384, @@ -18645,8 +18645,8 @@ "body": [ { "type": "ReturnStatement", - "start": 15713, - "end": 15739, + "start": 15748, + "end": 15774, "loc": { "start": { "line": 385, @@ -18659,8 +18659,8 @@ }, "argument": { "type": "MemberExpression", - "start": 15720, - "end": 15738, + "start": 15755, + "end": 15773, "loc": { "start": { "line": 385, @@ -18673,8 +18673,8 @@ }, "object": { "type": "ThisExpression", - "start": 15720, - "end": 15724, + "start": 15755, + "end": 15759, "loc": { "start": { "line": 385, @@ -18688,8 +18688,8 @@ }, "property": { "type": "Identifier", - "start": 15725, - "end": 15738, + "start": 15760, + "end": 15773, "loc": { "start": { "line": 385, @@ -18714,8 +18714,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the existing {@link DistanceMeasurement}s, each mapped to its {@link DistanceMeasurement#id}.\n *\n * @type {{String:DistanceMeasurement}}\n ", - "start": 15511, - "end": 15679, + "start": 15546, + "end": 15714, "loc": { "start": { "line": 379, @@ -18732,8 +18732,8 @@ { "type": "CommentBlock", "value": "*\n * Sets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n *\n * The axis wire's label is not shown when its length is less than this value.\n *\n * This is ````25```` pixels by default.\n *\n * Must not be less than ````1````.\n *\n * @type {number}\n ", - "start": 15751, - "end": 16072, + "start": 15786, + "end": 16107, "loc": { "start": { "line": 388, @@ -18749,8 +18749,8 @@ }, { "type": "ClassMethod", - "start": 16077, - "end": 16350, + "start": 16112, + "end": 16385, "loc": { "start": { "line": 399, @@ -18765,8 +18765,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 16081, - "end": 16099, + "start": 16116, + "end": 16134, "loc": { "start": { "line": 399, @@ -18788,8 +18788,8 @@ "params": [ { "type": "Identifier", - "start": 16100, - "end": 16118, + "start": 16135, + "end": 16153, "loc": { "start": { "line": 399, @@ -18806,8 +18806,8 @@ ], "body": { "type": "BlockStatement", - "start": 16120, - "end": 16350, + "start": 16155, + "end": 16385, "loc": { "start": { "line": 399, @@ -18821,8 +18821,8 @@ "body": [ { "type": "IfStatement", - "start": 16130, - "end": 16283, + "start": 16165, + "end": 16318, "loc": { "start": { "line": 400, @@ -18835,8 +18835,8 @@ }, "test": { "type": "BinaryExpression", - "start": 16134, - "end": 16156, + "start": 16169, + "end": 16191, "loc": { "start": { "line": 400, @@ -18849,8 +18849,8 @@ }, "left": { "type": "Identifier", - "start": 16134, - "end": 16152, + "start": 16169, + "end": 16187, "loc": { "start": { "line": 400, @@ -18867,8 +18867,8 @@ "operator": "<", "right": { "type": "NumericLiteral", - "start": 16155, - "end": 16156, + "start": 16190, + "end": 16191, "loc": { "start": { "line": 400, @@ -18888,8 +18888,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 16158, - "end": 16283, + "start": 16193, + "end": 16318, "loc": { "start": { "line": 400, @@ -18903,8 +18903,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 16172, - "end": 16236, + "start": 16207, + "end": 16271, "loc": { "start": { "line": 401, @@ -18917,8 +18917,8 @@ }, "expression": { "type": "CallExpression", - "start": 16172, - "end": 16235, + "start": 16207, + "end": 16270, "loc": { "start": { "line": 401, @@ -18931,8 +18931,8 @@ }, "callee": { "type": "MemberExpression", - "start": 16172, - "end": 16182, + "start": 16207, + "end": 16217, "loc": { "start": { "line": 401, @@ -18945,8 +18945,8 @@ }, "object": { "type": "ThisExpression", - "start": 16172, - "end": 16176, + "start": 16207, + "end": 16211, "loc": { "start": { "line": 401, @@ -18960,8 +18960,8 @@ }, "property": { "type": "Identifier", - "start": 16177, - "end": 16182, + "start": 16212, + "end": 16217, "loc": { "start": { "line": 401, @@ -18980,8 +18980,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 16183, - "end": 16234, + "start": 16218, + "end": 16269, "loc": { "start": { "line": 401, @@ -19003,8 +19003,8 @@ }, { "type": "ExpressionStatement", - "start": 16249, - "end": 16273, + "start": 16284, + "end": 16308, "loc": { "start": { "line": 402, @@ -19017,8 +19017,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 16249, - "end": 16272, + "start": 16284, + "end": 16307, "loc": { "start": { "line": 402, @@ -19032,8 +19032,8 @@ "operator": "=", "left": { "type": "Identifier", - "start": 16249, - "end": 16267, + "start": 16284, + "end": 16302, "loc": { "start": { "line": 402, @@ -19049,8 +19049,8 @@ }, "right": { "type": "NumericLiteral", - "start": 16270, - "end": 16272, + "start": 16305, + "end": 16307, "loc": { "start": { "line": 402, @@ -19076,8 +19076,8 @@ }, { "type": "ExpressionStatement", - "start": 16292, - "end": 16344, + "start": 16327, + "end": 16379, "loc": { "start": { "line": 404, @@ -19090,8 +19090,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 16292, - "end": 16343, + "start": 16327, + "end": 16378, "loc": { "start": { "line": 404, @@ -19105,8 +19105,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 16292, - "end": 16316, + "start": 16327, + "end": 16351, "loc": { "start": { "line": 404, @@ -19119,8 +19119,8 @@ }, "object": { "type": "ThisExpression", - "start": 16292, - "end": 16296, + "start": 16327, + "end": 16331, "loc": { "start": { "line": 404, @@ -19134,8 +19134,8 @@ }, "property": { "type": "Identifier", - "start": 16297, - "end": 16316, + "start": 16332, + "end": 16351, "loc": { "start": { "line": 404, @@ -19153,8 +19153,8 @@ }, "right": { "type": "LogicalExpression", - "start": 16319, - "end": 16343, + "start": 16354, + "end": 16378, "loc": { "start": { "line": 404, @@ -19167,8 +19167,8 @@ }, "left": { "type": "Identifier", - "start": 16319, - "end": 16337, + "start": 16354, + "end": 16372, "loc": { "start": { "line": 404, @@ -19185,8 +19185,8 @@ "operator": "||", "right": { "type": "NumericLiteral", - "start": 16341, - "end": 16343, + "start": 16376, + "end": 16378, "loc": { "start": { "line": 404, @@ -19214,8 +19214,8 @@ { "type": "CommentBlock", "value": "*\n * Sets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n *\n * The axis wire's label is not shown when its length is less than this value.\n *\n * This is ````25```` pixels by default.\n *\n * Must not be less than ````1````.\n *\n * @type {number}\n ", - "start": 15751, - "end": 16072, + "start": 15786, + "end": 16107, "loc": { "start": { "line": 388, @@ -19232,8 +19232,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @returns {number}\n ", - "start": 16356, - "end": 16484, + "start": 16391, + "end": 16519, "loc": { "start": { "line": 407, @@ -19249,8 +19249,8 @@ }, { "type": "ClassMethod", - "start": 16489, - "end": 16562, + "start": 16524, + "end": 16597, "loc": { "start": { "line": 411, @@ -19265,8 +19265,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 16493, - "end": 16511, + "start": 16528, + "end": 16546, "loc": { "start": { "line": 411, @@ -19288,8 +19288,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 16514, - "end": 16562, + "start": 16549, + "end": 16597, "loc": { "start": { "line": 411, @@ -19303,8 +19303,8 @@ "body": [ { "type": "ReturnStatement", - "start": 16524, - "end": 16556, + "start": 16559, + "end": 16591, "loc": { "start": { "line": 412, @@ -19317,8 +19317,8 @@ }, "argument": { "type": "MemberExpression", - "start": 16531, - "end": 16555, + "start": 16566, + "end": 16590, "loc": { "start": { "line": 412, @@ -19331,8 +19331,8 @@ }, "object": { "type": "ThisExpression", - "start": 16531, - "end": 16535, + "start": 16566, + "end": 16570, "loc": { "start": { "line": 412, @@ -19346,8 +19346,8 @@ }, "property": { "type": "Identifier", - "start": 16536, - "end": 16555, + "start": 16571, + "end": 16590, "loc": { "start": { "line": 412, @@ -19372,8 +19372,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @returns {number}\n ", - "start": 16356, - "end": 16484, + "start": 16391, + "end": 16519, "loc": { "start": { "line": 407, @@ -19390,8 +19390,8 @@ { "type": "CommentBlock", "value": "*\n * Creates a {@link DistanceMeasurement}.\n *\n * The DistanceMeasurement is then registered by {@link DistanceMeasurement#id} in {@link DistanceMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link DistanceMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link DistanceMeasurement#id}. The DistanceMeasurement will be registered by this in {@link DistanceMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link DistanceMeasurement}.\n * @param {Boolean} [params.originVisible=true] Whether to initially show the {@link DistanceMeasurement} origin.\n * @param {Boolean} [params.targetVisible=true] Whether to initially show the {@link DistanceMeasurement} target.\n * @param {Boolean} [params.wireVisible=true] Whether to initially show the direct point-to-point wire between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.axisVisible=true] Whether to initially show the axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.xAxisVisible=true] Whether to initially show the X-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.yAxisVisible=true] Whether to initially show the Y-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.zAxisVisible=true] Whether to initially show the Z-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.labelsVisible=true] Whether to initially show the labels.\n * @param {string} [params.color] The color of the length dot, wire and label.\n * @param {Boolean} [params.labelsOnWires=true] Determines if labels will be set on wires or one below the other.\n * @returns {DistanceMeasurement} The new {@link DistanceMeasurement}.\n ", - "start": 16568, - "end": 19039, + "start": 16603, + "end": 19074, "loc": { "start": { "line": 415, @@ -19407,8 +19407,8 @@ }, { "type": "ClassMethod", - "start": 19044, - "end": 20920, + "start": 19079, + "end": 20955, "loc": { "start": { "line": 439, @@ -19423,8 +19423,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19044, - "end": 19061, + "start": 19079, + "end": 19096, "loc": { "start": { "line": 439, @@ -19447,8 +19447,8 @@ "params": [ { "type": "AssignmentPattern", - "start": 19062, - "end": 19073, + "start": 19097, + "end": 19108, "loc": { "start": { "line": 439, @@ -19461,8 +19461,8 @@ }, "left": { "type": "Identifier", - "start": 19062, - "end": 19068, + "start": 19097, + "end": 19103, "loc": { "start": { "line": 439, @@ -19478,8 +19478,8 @@ }, "right": { "type": "ObjectExpression", - "start": 19071, - "end": 19073, + "start": 19106, + "end": 19108, "loc": { "start": { "line": 439, @@ -19496,8 +19496,8 @@ ], "body": { "type": "BlockStatement", - "start": 19075, - "end": 20920, + "start": 19110, + "end": 20955, "loc": { "start": { "line": 439, @@ -19511,8 +19511,8 @@ "body": [ { "type": "IfStatement", - "start": 19085, - "end": 19263, + "start": 19120, + "end": 19298, "loc": { "start": { "line": 440, @@ -19525,8 +19525,8 @@ }, "test": { "type": "MemberExpression", - "start": 19089, - "end": 19128, + "start": 19124, + "end": 19163, "loc": { "start": { "line": 440, @@ -19539,8 +19539,8 @@ }, "object": { "type": "MemberExpression", - "start": 19089, - "end": 19117, + "start": 19124, + "end": 19152, "loc": { "start": { "line": 440, @@ -19553,8 +19553,8 @@ }, "object": { "type": "MemberExpression", - "start": 19089, - "end": 19106, + "start": 19124, + "end": 19141, "loc": { "start": { "line": 440, @@ -19567,8 +19567,8 @@ }, "object": { "type": "MemberExpression", - "start": 19089, - "end": 19100, + "start": 19124, + "end": 19135, "loc": { "start": { "line": 440, @@ -19581,8 +19581,8 @@ }, "object": { "type": "ThisExpression", - "start": 19089, - "end": 19093, + "start": 19124, + "end": 19128, "loc": { "start": { "line": 440, @@ -19596,8 +19596,8 @@ }, "property": { "type": "Identifier", - "start": 19094, - "end": 19100, + "start": 19129, + "end": 19135, "loc": { "start": { "line": 440, @@ -19615,8 +19615,8 @@ }, "property": { "type": "Identifier", - "start": 19101, - "end": 19106, + "start": 19136, + "end": 19141, "loc": { "start": { "line": 440, @@ -19634,8 +19634,8 @@ }, "property": { "type": "Identifier", - "start": 19107, - "end": 19117, + "start": 19142, + "end": 19152, "loc": { "start": { "line": 440, @@ -19653,8 +19653,8 @@ }, "property": { "type": "MemberExpression", - "start": 19118, - "end": 19127, + "start": 19153, + "end": 19162, "loc": { "start": { "line": 440, @@ -19667,8 +19667,8 @@ }, "object": { "type": "Identifier", - "start": 19118, - "end": 19124, + "start": 19153, + "end": 19159, "loc": { "start": { "line": 440, @@ -19684,8 +19684,8 @@ }, "property": { "type": "Identifier", - "start": 19125, - "end": 19127, + "start": 19160, + "end": 19162, "loc": { "start": { "line": 440, @@ -19705,8 +19705,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 19130, - "end": 19263, + "start": 19165, + "end": 19298, "loc": { "start": { "line": 440, @@ -19720,8 +19720,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 19144, - "end": 19223, + "start": 19179, + "end": 19258, "loc": { "start": { "line": 441, @@ -19734,8 +19734,8 @@ }, "expression": { "type": "CallExpression", - "start": 19144, - "end": 19222, + "start": 19179, + "end": 19257, "loc": { "start": { "line": 441, @@ -19748,8 +19748,8 @@ }, "callee": { "type": "MemberExpression", - "start": 19144, - "end": 19154, + "start": 19179, + "end": 19189, "loc": { "start": { "line": 441, @@ -19762,8 +19762,8 @@ }, "object": { "type": "ThisExpression", - "start": 19144, - "end": 19148, + "start": 19179, + "end": 19183, "loc": { "start": { "line": 441, @@ -19777,8 +19777,8 @@ }, "property": { "type": "Identifier", - "start": 19149, - "end": 19154, + "start": 19184, + "end": 19189, "loc": { "start": { "line": 441, @@ -19797,8 +19797,8 @@ "arguments": [ { "type": "BinaryExpression", - "start": 19155, - "end": 19221, + "start": 19190, + "end": 19256, "loc": { "start": { "line": 441, @@ -19811,8 +19811,8 @@ }, "left": { "type": "StringLiteral", - "start": 19155, - "end": 19209, + "start": 19190, + "end": 19244, "loc": { "start": { "line": 441, @@ -19832,8 +19832,8 @@ "operator": "+", "right": { "type": "MemberExpression", - "start": 19212, - "end": 19221, + "start": 19247, + "end": 19256, "loc": { "start": { "line": 441, @@ -19846,8 +19846,8 @@ }, "object": { "type": "Identifier", - "start": 19212, - "end": 19218, + "start": 19247, + "end": 19253, "loc": { "start": { "line": 441, @@ -19863,8 +19863,8 @@ }, "property": { "type": "Identifier", - "start": 19219, - "end": 19221, + "start": 19254, + "end": 19256, "loc": { "start": { "line": 441, @@ -19886,8 +19886,8 @@ }, { "type": "ExpressionStatement", - "start": 19236, - "end": 19253, + "start": 19271, + "end": 19288, "loc": { "start": { "line": 442, @@ -19900,8 +19900,8 @@ }, "expression": { "type": "UnaryExpression", - "start": 19236, - "end": 19252, + "start": 19271, + "end": 19287, "loc": { "start": { "line": 442, @@ -19916,8 +19916,8 @@ "prefix": true, "argument": { "type": "MemberExpression", - "start": 19243, - "end": 19252, + "start": 19278, + "end": 19287, "loc": { "start": { "line": 442, @@ -19930,8 +19930,8 @@ }, "object": { "type": "Identifier", - "start": 19243, - "end": 19249, + "start": 19278, + "end": 19284, "loc": { "start": { "line": 442, @@ -19947,8 +19947,8 @@ }, "property": { "type": "Identifier", - "start": 19250, - "end": 19252, + "start": 19285, + "end": 19287, "loc": { "start": { "line": 442, @@ -19976,8 +19976,8 @@ }, { "type": "VariableDeclaration", - "start": 19272, - "end": 19301, + "start": 19307, + "end": 19336, "loc": { "start": { "line": 444, @@ -19991,8 +19991,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 19278, - "end": 19300, + "start": 19313, + "end": 19335, "loc": { "start": { "line": 444, @@ -20005,8 +20005,8 @@ }, "id": { "type": "Identifier", - "start": 19278, - "end": 19284, + "start": 19313, + "end": 19319, "loc": { "start": { "line": 444, @@ -20022,8 +20022,8 @@ }, "init": { "type": "MemberExpression", - "start": 19287, - "end": 19300, + "start": 19322, + "end": 19335, "loc": { "start": { "line": 444, @@ -20036,8 +20036,8 @@ }, "object": { "type": "Identifier", - "start": 19287, - "end": 19293, + "start": 19322, + "end": 19328, "loc": { "start": { "line": 444, @@ -20053,8 +20053,8 @@ }, "property": { "type": "Identifier", - "start": 19294, - "end": 19300, + "start": 19329, + "end": 19335, "loc": { "start": { "line": 444, @@ -20076,8 +20076,8 @@ }, { "type": "VariableDeclaration", - "start": 19310, - "end": 19339, + "start": 19345, + "end": 19374, "loc": { "start": { "line": 445, @@ -20091,8 +20091,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 19316, - "end": 19338, + "start": 19351, + "end": 19373, "loc": { "start": { "line": 445, @@ -20105,8 +20105,8 @@ }, "id": { "type": "Identifier", - "start": 19316, - "end": 19322, + "start": 19351, + "end": 19357, "loc": { "start": { "line": 445, @@ -20122,8 +20122,8 @@ }, "init": { "type": "MemberExpression", - "start": 19325, - "end": 19338, + "start": 19360, + "end": 19373, "loc": { "start": { "line": 445, @@ -20136,8 +20136,8 @@ }, "object": { "type": "Identifier", - "start": 19325, - "end": 19331, + "start": 19360, + "end": 19366, "loc": { "start": { "line": 445, @@ -20153,8 +20153,8 @@ }, "property": { "type": "Identifier", - "start": 19332, - "end": 19338, + "start": 19367, + "end": 19373, "loc": { "start": { "line": 445, @@ -20176,8 +20176,8 @@ }, { "type": "VariableDeclaration", - "start": 19348, - "end": 20663, + "start": 19383, + "end": 20698, "loc": { "start": { "line": 446, @@ -20191,8 +20191,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 19354, - "end": 20662, + "start": 19389, + "end": 20697, "loc": { "start": { "line": 446, @@ -20205,8 +20205,8 @@ }, "id": { "type": "Identifier", - "start": 19354, - "end": 19365, + "start": 19389, + "end": 19400, "loc": { "start": { "line": 446, @@ -20222,8 +20222,8 @@ }, "init": { "type": "NewExpression", - "start": 19368, - "end": 20662, + "start": 19403, + "end": 20697, "loc": { "start": { "line": 446, @@ -20236,8 +20236,8 @@ }, "callee": { "type": "Identifier", - "start": 19372, - "end": 19391, + "start": 19407, + "end": 19426, "loc": { "start": { "line": 446, @@ -20254,8 +20254,8 @@ "arguments": [ { "type": "ThisExpression", - "start": 19392, - "end": 19396, + "start": 19427, + "end": 19431, "loc": { "start": { "line": 446, @@ -20269,8 +20269,8 @@ }, { "type": "ObjectExpression", - "start": 19398, - "end": 20661, + "start": 19433, + "end": 20696, "loc": { "start": { "line": 446, @@ -20284,8 +20284,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 19412, - "end": 19425, + "start": 19447, + "end": 19460, "loc": { "start": { "line": 447, @@ -20301,8 +20301,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19412, - "end": 19414, + "start": 19447, + "end": 19449, "loc": { "start": { "line": 447, @@ -20318,8 +20318,8 @@ }, "value": { "type": "MemberExpression", - "start": 19416, - "end": 19425, + "start": 19451, + "end": 19460, "loc": { "start": { "line": 447, @@ -20332,8 +20332,8 @@ }, "object": { "type": "Identifier", - "start": 19416, - "end": 19422, + "start": 19451, + "end": 19457, "loc": { "start": { "line": 447, @@ -20349,8 +20349,8 @@ }, "property": { "type": "Identifier", - "start": 19423, - "end": 19425, + "start": 19458, + "end": 19460, "loc": { "start": { "line": 447, @@ -20369,8 +20369,8 @@ }, { "type": "ObjectProperty", - "start": 19439, - "end": 19451, + "start": 19474, + "end": 19486, "loc": { "start": { "line": 448, @@ -20386,8 +20386,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19439, - "end": 19445, + "start": 19474, + "end": 19480, "loc": { "start": { "line": 448, @@ -20403,8 +20403,8 @@ }, "value": { "type": "ThisExpression", - "start": 19447, - "end": 19451, + "start": 19482, + "end": 19486, "loc": { "start": { "line": 448, @@ -20419,8 +20419,8 @@ }, { "type": "ObjectProperty", - "start": 19465, - "end": 19491, + "start": 19500, + "end": 19526, "loc": { "start": { "line": 449, @@ -20436,8 +20436,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19465, - "end": 19474, + "start": 19500, + "end": 19509, "loc": { "start": { "line": 449, @@ -20453,8 +20453,8 @@ }, "value": { "type": "MemberExpression", - "start": 19476, - "end": 19491, + "start": 19511, + "end": 19526, "loc": { "start": { "line": 449, @@ -20467,8 +20467,8 @@ }, "object": { "type": "ThisExpression", - "start": 19476, - "end": 19480, + "start": 19511, + "end": 19515, "loc": { "start": { "line": 449, @@ -20482,8 +20482,8 @@ }, "property": { "type": "Identifier", - "start": 19481, - "end": 19491, + "start": 19516, + "end": 19526, "loc": { "start": { "line": 449, @@ -20502,8 +20502,8 @@ }, { "type": "ObjectProperty", - "start": 19505, - "end": 19609, + "start": 19540, + "end": 19644, "loc": { "start": { "line": 450, @@ -20519,8 +20519,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19505, - "end": 19511, + "start": 19540, + "end": 19546, "loc": { "start": { "line": 450, @@ -20536,8 +20536,8 @@ }, "value": { "type": "ObjectExpression", - "start": 19513, - "end": 19609, + "start": 19548, + "end": 19644, "loc": { "start": { "line": 450, @@ -20551,8 +20551,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 19531, - "end": 19552, + "start": 19566, + "end": 19587, "loc": { "start": { "line": 451, @@ -20568,8 +20568,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19531, - "end": 19537, + "start": 19566, + "end": 19572, "loc": { "start": { "line": 451, @@ -20585,8 +20585,8 @@ }, "value": { "type": "MemberExpression", - "start": 19539, - "end": 19552, + "start": 19574, + "end": 19587, "loc": { "start": { "line": 451, @@ -20599,8 +20599,8 @@ }, "object": { "type": "Identifier", - "start": 19539, - "end": 19545, + "start": 19574, + "end": 19580, "loc": { "start": { "line": 451, @@ -20616,8 +20616,8 @@ }, "property": { "type": "Identifier", - "start": 19546, - "end": 19552, + "start": 19581, + "end": 19587, "loc": { "start": { "line": 451, @@ -20636,8 +20636,8 @@ }, { "type": "ObjectProperty", - "start": 19570, - "end": 19595, + "start": 19605, + "end": 19630, "loc": { "start": { "line": 452, @@ -20653,8 +20653,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19570, - "end": 19578, + "start": 19605, + "end": 19613, "loc": { "start": { "line": 452, @@ -20670,8 +20670,8 @@ }, "value": { "type": "MemberExpression", - "start": 19580, - "end": 19595, + "start": 19615, + "end": 19630, "loc": { "start": { "line": 452, @@ -20684,8 +20684,8 @@ }, "object": { "type": "Identifier", - "start": 19580, - "end": 19586, + "start": 19615, + "end": 19621, "loc": { "start": { "line": 452, @@ -20701,8 +20701,8 @@ }, "property": { "type": "Identifier", - "start": 19587, - "end": 19595, + "start": 19622, + "end": 19630, "loc": { "start": { "line": 452, @@ -20724,8 +20724,8 @@ }, { "type": "ObjectProperty", - "start": 19623, - "end": 19727, + "start": 19658, + "end": 19762, "loc": { "start": { "line": 454, @@ -20741,8 +20741,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19623, - "end": 19629, + "start": 19658, + "end": 19664, "loc": { "start": { "line": 454, @@ -20758,8 +20758,8 @@ }, "value": { "type": "ObjectExpression", - "start": 19631, - "end": 19727, + "start": 19666, + "end": 19762, "loc": { "start": { "line": 454, @@ -20773,8 +20773,8 @@ "properties": [ { "type": "ObjectProperty", - "start": 19649, - "end": 19670, + "start": 19684, + "end": 19705, "loc": { "start": { "line": 455, @@ -20790,8 +20790,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19649, - "end": 19655, + "start": 19684, + "end": 19690, "loc": { "start": { "line": 455, @@ -20807,8 +20807,8 @@ }, "value": { "type": "MemberExpression", - "start": 19657, - "end": 19670, + "start": 19692, + "end": 19705, "loc": { "start": { "line": 455, @@ -20821,8 +20821,8 @@ }, "object": { "type": "Identifier", - "start": 19657, - "end": 19663, + "start": 19692, + "end": 19698, "loc": { "start": { "line": 455, @@ -20838,8 +20838,8 @@ }, "property": { "type": "Identifier", - "start": 19664, - "end": 19670, + "start": 19699, + "end": 19705, "loc": { "start": { "line": 455, @@ -20858,8 +20858,8 @@ }, { "type": "ObjectProperty", - "start": 19688, - "end": 19713, + "start": 19723, + "end": 19748, "loc": { "start": { "line": 456, @@ -20875,8 +20875,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19688, - "end": 19696, + "start": 19723, + "end": 19731, "loc": { "start": { "line": 456, @@ -20892,8 +20892,8 @@ }, "value": { "type": "MemberExpression", - "start": 19698, - "end": 19713, + "start": 19733, + "end": 19748, "loc": { "start": { "line": 456, @@ -20906,8 +20906,8 @@ }, "object": { "type": "Identifier", - "start": 19698, - "end": 19704, + "start": 19733, + "end": 19739, "loc": { "start": { "line": 456, @@ -20923,8 +20923,8 @@ }, "property": { "type": "Identifier", - "start": 19705, - "end": 19713, + "start": 19740, + "end": 19748, "loc": { "start": { "line": 456, @@ -20946,8 +20946,8 @@ }, { "type": "ObjectProperty", - "start": 19741, - "end": 19764, + "start": 19776, + "end": 19799, "loc": { "start": { "line": 458, @@ -20963,8 +20963,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19741, - "end": 19748, + "start": 19776, + "end": 19783, "loc": { "start": { "line": 458, @@ -20980,8 +20980,8 @@ }, "value": { "type": "MemberExpression", - "start": 19750, - "end": 19764, + "start": 19785, + "end": 19799, "loc": { "start": { "line": 458, @@ -20994,8 +20994,8 @@ }, "object": { "type": "Identifier", - "start": 19750, - "end": 19756, + "start": 19785, + "end": 19791, "loc": { "start": { "line": 458, @@ -21011,8 +21011,8 @@ }, "property": { "type": "Identifier", - "start": 19757, - "end": 19764, + "start": 19792, + "end": 19799, "loc": { "start": { "line": 458, @@ -21031,8 +21031,8 @@ }, { "type": "ObjectProperty", - "start": 19778, - "end": 19809, + "start": 19813, + "end": 19844, "loc": { "start": { "line": 459, @@ -21048,8 +21048,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19778, - "end": 19789, + "start": 19813, + "end": 19824, "loc": { "start": { "line": 459, @@ -21065,8 +21065,8 @@ }, "value": { "type": "MemberExpression", - "start": 19791, - "end": 19809, + "start": 19826, + "end": 19844, "loc": { "start": { "line": 459, @@ -21079,8 +21079,8 @@ }, "object": { "type": "Identifier", - "start": 19791, - "end": 19797, + "start": 19826, + "end": 19832, "loc": { "start": { "line": 459, @@ -21096,8 +21096,8 @@ }, "property": { "type": "Identifier", - "start": 19798, - "end": 19809, + "start": 19833, + "end": 19844, "loc": { "start": { "line": 459, @@ -21116,8 +21116,8 @@ }, { "type": "ObjectProperty", - "start": 19823, - "end": 19901, + "start": 19858, + "end": 19936, "loc": { "start": { "line": 460, @@ -21133,8 +21133,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19823, - "end": 19834, + "start": 19858, + "end": 19869, "loc": { "start": { "line": 460, @@ -21150,8 +21150,8 @@ }, "value": { "type": "LogicalExpression", - "start": 19836, - "end": 19901, + "start": 19871, + "end": 19936, "loc": { "start": { "line": 460, @@ -21164,8 +21164,8 @@ }, "left": { "type": "BinaryExpression", - "start": 19836, - "end": 19864, + "start": 19871, + "end": 19899, "loc": { "start": { "line": 460, @@ -21178,8 +21178,8 @@ }, "left": { "type": "MemberExpression", - "start": 19836, - "end": 19854, + "start": 19871, + "end": 19889, "loc": { "start": { "line": 460, @@ -21192,8 +21192,8 @@ }, "object": { "type": "Identifier", - "start": 19836, - "end": 19842, + "start": 19871, + "end": 19877, "loc": { "start": { "line": 460, @@ -21209,8 +21209,8 @@ }, "property": { "type": "Identifier", - "start": 19843, - "end": 19854, + "start": 19878, + "end": 19889, "loc": { "start": { "line": 460, @@ -21229,8 +21229,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 19859, - "end": 19864, + "start": 19894, + "end": 19899, "loc": { "start": { "line": 460, @@ -21247,8 +21247,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 19868, - "end": 19901, + "start": 19903, + "end": 19936, "loc": { "start": { "line": 460, @@ -21261,8 +21261,8 @@ }, "left": { "type": "MemberExpression", - "start": 19868, - "end": 19891, + "start": 19903, + "end": 19926, "loc": { "start": { "line": 460, @@ -21275,8 +21275,8 @@ }, "object": { "type": "ThisExpression", - "start": 19868, - "end": 19872, + "start": 19903, + "end": 19907, "loc": { "start": { "line": 460, @@ -21290,8 +21290,8 @@ }, "property": { "type": "Identifier", - "start": 19873, - "end": 19891, + "start": 19908, + "end": 19926, "loc": { "start": { "line": 460, @@ -21310,8 +21310,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 19896, - "end": 19901, + "start": 19931, + "end": 19936, "loc": { "start": { "line": 460, @@ -21329,8 +21329,8 @@ }, { "type": "ObjectProperty", - "start": 19915, - "end": 19996, + "start": 19950, + "end": 20031, "loc": { "start": { "line": 461, @@ -21346,8 +21346,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 19915, - "end": 19927, + "start": 19950, + "end": 19962, "loc": { "start": { "line": 461, @@ -21363,8 +21363,8 @@ }, "value": { "type": "LogicalExpression", - "start": 19929, - "end": 19996, + "start": 19964, + "end": 20031, "loc": { "start": { "line": 461, @@ -21377,8 +21377,8 @@ }, "left": { "type": "BinaryExpression", - "start": 19929, - "end": 19958, + "start": 19964, + "end": 19993, "loc": { "start": { "line": 461, @@ -21391,8 +21391,8 @@ }, "left": { "type": "MemberExpression", - "start": 19929, - "end": 19948, + "start": 19964, + "end": 19983, "loc": { "start": { "line": 461, @@ -21405,8 +21405,8 @@ }, "object": { "type": "Identifier", - "start": 19929, - "end": 19935, + "start": 19964, + "end": 19970, "loc": { "start": { "line": 461, @@ -21422,8 +21422,8 @@ }, "property": { "type": "Identifier", - "start": 19936, - "end": 19948, + "start": 19971, + "end": 19983, "loc": { "start": { "line": 461, @@ -21442,8 +21442,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 19953, - "end": 19958, + "start": 19988, + "end": 19993, "loc": { "start": { "line": 461, @@ -21460,8 +21460,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 19962, - "end": 19996, + "start": 19997, + "end": 20031, "loc": { "start": { "line": 461, @@ -21474,8 +21474,8 @@ }, "left": { "type": "MemberExpression", - "start": 19962, - "end": 19986, + "start": 19997, + "end": 20021, "loc": { "start": { "line": 461, @@ -21488,8 +21488,8 @@ }, "object": { "type": "ThisExpression", - "start": 19962, - "end": 19966, + "start": 19997, + "end": 20001, "loc": { "start": { "line": 461, @@ -21503,8 +21503,8 @@ }, "property": { "type": "Identifier", - "start": 19967, - "end": 19986, + "start": 20002, + "end": 20021, "loc": { "start": { "line": 461, @@ -21523,8 +21523,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 19991, - "end": 19996, + "start": 20026, + "end": 20031, "loc": { "start": { "line": 461, @@ -21542,8 +21542,8 @@ }, { "type": "ObjectProperty", - "start": 20010, - "end": 20091, + "start": 20045, + "end": 20126, "loc": { "start": { "line": 462, @@ -21559,8 +21559,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20010, - "end": 20022, + "start": 20045, + "end": 20057, "loc": { "start": { "line": 462, @@ -21576,8 +21576,8 @@ }, "value": { "type": "LogicalExpression", - "start": 20024, - "end": 20091, + "start": 20059, + "end": 20126, "loc": { "start": { "line": 462, @@ -21590,8 +21590,8 @@ }, "left": { "type": "BinaryExpression", - "start": 20024, - "end": 20053, + "start": 20059, + "end": 20088, "loc": { "start": { "line": 462, @@ -21604,8 +21604,8 @@ }, "left": { "type": "MemberExpression", - "start": 20024, - "end": 20043, + "start": 20059, + "end": 20078, "loc": { "start": { "line": 462, @@ -21618,8 +21618,8 @@ }, "object": { "type": "Identifier", - "start": 20024, - "end": 20030, + "start": 20059, + "end": 20065, "loc": { "start": { "line": 462, @@ -21635,8 +21635,8 @@ }, "property": { "type": "Identifier", - "start": 20031, - "end": 20043, + "start": 20066, + "end": 20078, "loc": { "start": { "line": 462, @@ -21655,8 +21655,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20048, - "end": 20053, + "start": 20083, + "end": 20088, "loc": { "start": { "line": 462, @@ -21673,8 +21673,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 20057, - "end": 20091, + "start": 20092, + "end": 20126, "loc": { "start": { "line": 462, @@ -21687,8 +21687,8 @@ }, "left": { "type": "MemberExpression", - "start": 20057, - "end": 20081, + "start": 20092, + "end": 20116, "loc": { "start": { "line": 462, @@ -21701,8 +21701,8 @@ }, "object": { "type": "ThisExpression", - "start": 20057, - "end": 20061, + "start": 20092, + "end": 20096, "loc": { "start": { "line": 462, @@ -21716,8 +21716,8 @@ }, "property": { "type": "Identifier", - "start": 20062, - "end": 20081, + "start": 20097, + "end": 20116, "loc": { "start": { "line": 462, @@ -21736,8 +21736,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20086, - "end": 20091, + "start": 20121, + "end": 20126, "loc": { "start": { "line": 462, @@ -21755,8 +21755,8 @@ }, { "type": "ObjectProperty", - "start": 20105, - "end": 20186, + "start": 20140, + "end": 20221, "loc": { "start": { "line": 463, @@ -21772,8 +21772,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20105, - "end": 20117, + "start": 20140, + "end": 20152, "loc": { "start": { "line": 463, @@ -21789,8 +21789,8 @@ }, "value": { "type": "LogicalExpression", - "start": 20119, - "end": 20186, + "start": 20154, + "end": 20221, "loc": { "start": { "line": 463, @@ -21803,8 +21803,8 @@ }, "left": { "type": "BinaryExpression", - "start": 20119, - "end": 20148, + "start": 20154, + "end": 20183, "loc": { "start": { "line": 463, @@ -21817,8 +21817,8 @@ }, "left": { "type": "MemberExpression", - "start": 20119, - "end": 20138, + "start": 20154, + "end": 20173, "loc": { "start": { "line": 463, @@ -21831,8 +21831,8 @@ }, "object": { "type": "Identifier", - "start": 20119, - "end": 20125, + "start": 20154, + "end": 20160, "loc": { "start": { "line": 463, @@ -21848,8 +21848,8 @@ }, "property": { "type": "Identifier", - "start": 20126, - "end": 20138, + "start": 20161, + "end": 20173, "loc": { "start": { "line": 463, @@ -21868,8 +21868,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20143, - "end": 20148, + "start": 20178, + "end": 20183, "loc": { "start": { "line": 463, @@ -21886,8 +21886,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 20152, - "end": 20186, + "start": 20187, + "end": 20221, "loc": { "start": { "line": 463, @@ -21900,8 +21900,8 @@ }, "left": { "type": "MemberExpression", - "start": 20152, - "end": 20176, + "start": 20187, + "end": 20211, "loc": { "start": { "line": 463, @@ -21914,8 +21914,8 @@ }, "object": { "type": "ThisExpression", - "start": 20152, - "end": 20156, + "start": 20187, + "end": 20191, "loc": { "start": { "line": 463, @@ -21929,8 +21929,8 @@ }, "property": { "type": "Identifier", - "start": 20157, - "end": 20176, + "start": 20192, + "end": 20211, "loc": { "start": { "line": 463, @@ -21949,8 +21949,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20181, - "end": 20186, + "start": 20216, + "end": 20221, "loc": { "start": { "line": 463, @@ -21968,8 +21968,8 @@ }, { "type": "ObjectProperty", - "start": 20200, - "end": 20284, + "start": 20235, + "end": 20319, "loc": { "start": { "line": 464, @@ -21985,8 +21985,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20200, - "end": 20213, + "start": 20235, + "end": 20248, "loc": { "start": { "line": 464, @@ -22002,8 +22002,8 @@ }, "value": { "type": "LogicalExpression", - "start": 20215, - "end": 20284, + "start": 20250, + "end": 20319, "loc": { "start": { "line": 464, @@ -22016,8 +22016,8 @@ }, "left": { "type": "BinaryExpression", - "start": 20215, - "end": 20245, + "start": 20250, + "end": 20280, "loc": { "start": { "line": 464, @@ -22030,8 +22030,8 @@ }, "left": { "type": "MemberExpression", - "start": 20215, - "end": 20235, + "start": 20250, + "end": 20270, "loc": { "start": { "line": 464, @@ -22044,8 +22044,8 @@ }, "object": { "type": "Identifier", - "start": 20215, - "end": 20221, + "start": 20250, + "end": 20256, "loc": { "start": { "line": 464, @@ -22061,8 +22061,8 @@ }, "property": { "type": "Identifier", - "start": 20222, - "end": 20235, + "start": 20257, + "end": 20270, "loc": { "start": { "line": 464, @@ -22081,8 +22081,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20240, - "end": 20245, + "start": 20275, + "end": 20280, "loc": { "start": { "line": 464, @@ -22099,8 +22099,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 20249, - "end": 20284, + "start": 20284, + "end": 20319, "loc": { "start": { "line": 464, @@ -22113,8 +22113,8 @@ }, "left": { "type": "MemberExpression", - "start": 20249, - "end": 20274, + "start": 20284, + "end": 20309, "loc": { "start": { "line": 464, @@ -22127,8 +22127,8 @@ }, "object": { "type": "ThisExpression", - "start": 20249, - "end": 20253, + "start": 20284, + "end": 20288, "loc": { "start": { "line": 464, @@ -22142,8 +22142,8 @@ }, "property": { "type": "Identifier", - "start": 20254, - "end": 20274, + "start": 20289, + "end": 20309, "loc": { "start": { "line": 464, @@ -22162,8 +22162,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20279, - "end": 20284, + "start": 20314, + "end": 20319, "loc": { "start": { "line": 464, @@ -22181,8 +22181,8 @@ }, { "type": "ObjectProperty", - "start": 20298, - "end": 20333, + "start": 20333, + "end": 20368, "loc": { "start": { "line": 465, @@ -22198,8 +22198,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20298, - "end": 20311, + "start": 20333, + "end": 20346, "loc": { "start": { "line": 465, @@ -22215,8 +22215,8 @@ }, "value": { "type": "MemberExpression", - "start": 20313, - "end": 20333, + "start": 20348, + "end": 20368, "loc": { "start": { "line": 465, @@ -22229,8 +22229,8 @@ }, "object": { "type": "Identifier", - "start": 20313, - "end": 20319, + "start": 20348, + "end": 20354, "loc": { "start": { "line": 465, @@ -22246,8 +22246,8 @@ }, "property": { "type": "Identifier", - "start": 20320, - "end": 20333, + "start": 20355, + "end": 20368, "loc": { "start": { "line": 465, @@ -22266,8 +22266,8 @@ }, { "type": "ObjectProperty", - "start": 20347, - "end": 20382, + "start": 20382, + "end": 20417, "loc": { "start": { "line": 466, @@ -22283,8 +22283,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20347, - "end": 20360, + "start": 20382, + "end": 20395, "loc": { "start": { "line": 466, @@ -22300,8 +22300,8 @@ }, "value": { "type": "MemberExpression", - "start": 20362, - "end": 20382, + "start": 20397, + "end": 20417, "loc": { "start": { "line": 466, @@ -22314,8 +22314,8 @@ }, "object": { "type": "Identifier", - "start": 20362, - "end": 20368, + "start": 20397, + "end": 20403, "loc": { "start": { "line": 466, @@ -22331,8 +22331,8 @@ }, "property": { "type": "Identifier", - "start": 20369, - "end": 20382, + "start": 20404, + "end": 20417, "loc": { "start": { "line": 466, @@ -22351,8 +22351,8 @@ }, { "type": "ObjectProperty", - "start": 20396, - "end": 20415, + "start": 20431, + "end": 20450, "loc": { "start": { "line": 467, @@ -22368,8 +22368,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20396, - "end": 20401, + "start": 20431, + "end": 20436, "loc": { "start": { "line": 467, @@ -22385,8 +22385,8 @@ }, "value": { "type": "MemberExpression", - "start": 20403, - "end": 20415, + "start": 20438, + "end": 20450, "loc": { "start": { "line": 467, @@ -22399,8 +22399,8 @@ }, "object": { "type": "Identifier", - "start": 20403, - "end": 20409, + "start": 20438, + "end": 20444, "loc": { "start": { "line": 467, @@ -22416,8 +22416,8 @@ }, "property": { "type": "Identifier", - "start": 20410, - "end": 20415, + "start": 20445, + "end": 20450, "loc": { "start": { "line": 467, @@ -22436,8 +22436,8 @@ }, { "type": "ObjectProperty", - "start": 20429, - "end": 20513, + "start": 20464, + "end": 20548, "loc": { "start": { "line": 468, @@ -22453,8 +22453,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20429, - "end": 20442, + "start": 20464, + "end": 20477, "loc": { "start": { "line": 468, @@ -22470,8 +22470,8 @@ }, "value": { "type": "LogicalExpression", - "start": 20444, - "end": 20513, + "start": 20479, + "end": 20548, "loc": { "start": { "line": 468, @@ -22484,8 +22484,8 @@ }, "left": { "type": "BinaryExpression", - "start": 20444, - "end": 20474, + "start": 20479, + "end": 20509, "loc": { "start": { "line": 468, @@ -22498,8 +22498,8 @@ }, "left": { "type": "MemberExpression", - "start": 20444, - "end": 20464, + "start": 20479, + "end": 20499, "loc": { "start": { "line": 468, @@ -22512,8 +22512,8 @@ }, "object": { "type": "Identifier", - "start": 20444, - "end": 20450, + "start": 20479, + "end": 20485, "loc": { "start": { "line": 468, @@ -22529,8 +22529,8 @@ }, "property": { "type": "Identifier", - "start": 20451, - "end": 20464, + "start": 20486, + "end": 20499, "loc": { "start": { "line": 468, @@ -22549,8 +22549,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20469, - "end": 20474, + "start": 20504, + "end": 20509, "loc": { "start": { "line": 468, @@ -22567,8 +22567,8 @@ "operator": "&&", "right": { "type": "BinaryExpression", - "start": 20478, - "end": 20513, + "start": 20513, + "end": 20548, "loc": { "start": { "line": 468, @@ -22581,8 +22581,8 @@ }, "left": { "type": "MemberExpression", - "start": 20478, - "end": 20503, + "start": 20513, + "end": 20538, "loc": { "start": { "line": 468, @@ -22595,8 +22595,8 @@ }, "object": { "type": "ThisExpression", - "start": 20478, - "end": 20482, + "start": 20513, + "end": 20517, "loc": { "start": { "line": 468, @@ -22610,8 +22610,8 @@ }, "property": { "type": "Identifier", - "start": 20483, - "end": 20503, + "start": 20518, + "end": 20538, "loc": { "start": { "line": 468, @@ -22630,8 +22630,8 @@ "operator": "!==", "right": { "type": "BooleanLiteral", - "start": 20508, - "end": 20513, + "start": 20543, + "end": 20548, "loc": { "start": { "line": 468, @@ -22649,8 +22649,8 @@ }, { "type": "ObjectProperty", - "start": 20527, - "end": 20557, + "start": 20562, + "end": 20592, "loc": { "start": { "line": 469, @@ -22666,8 +22666,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20527, - "end": 20538, + "start": 20562, + "end": 20573, "loc": { "start": { "line": 469, @@ -22683,8 +22683,8 @@ }, "value": { "type": "MemberExpression", - "start": 20540, - "end": 20557, + "start": 20575, + "end": 20592, "loc": { "start": { "line": 469, @@ -22697,8 +22697,8 @@ }, "object": { "type": "ThisExpression", - "start": 20540, - "end": 20544, + "start": 20575, + "end": 20579, "loc": { "start": { "line": 469, @@ -22712,8 +22712,8 @@ }, "property": { "type": "Identifier", - "start": 20545, - "end": 20557, + "start": 20580, + "end": 20592, "loc": { "start": { "line": 469, @@ -22732,8 +22732,8 @@ }, { "type": "ObjectProperty", - "start": 20571, - "end": 20603, + "start": 20606, + "end": 20638, "loc": { "start": { "line": 470, @@ -22749,8 +22749,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20571, - "end": 20583, + "start": 20606, + "end": 20618, "loc": { "start": { "line": 470, @@ -22766,8 +22766,8 @@ }, "value": { "type": "MemberExpression", - "start": 20585, - "end": 20603, + "start": 20620, + "end": 20638, "loc": { "start": { "line": 470, @@ -22780,8 +22780,8 @@ }, "object": { "type": "ThisExpression", - "start": 20585, - "end": 20589, + "start": 20620, + "end": 20624, "loc": { "start": { "line": 470, @@ -22795,8 +22795,8 @@ }, "property": { "type": "Identifier", - "start": 20590, - "end": 20603, + "start": 20625, + "end": 20638, "loc": { "start": { "line": 470, @@ -22815,8 +22815,8 @@ }, { "type": "ObjectProperty", - "start": 20617, - "end": 20651, + "start": 20652, + "end": 20686, "loc": { "start": { "line": 471, @@ -22832,8 +22832,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 20617, - "end": 20630, + "start": 20652, + "end": 20665, "loc": { "start": { "line": 471, @@ -22849,8 +22849,8 @@ }, "value": { "type": "MemberExpression", - "start": 20632, - "end": 20651, + "start": 20667, + "end": 20686, "loc": { "start": { "line": 471, @@ -22863,8 +22863,8 @@ }, "object": { "type": "ThisExpression", - "start": 20632, - "end": 20636, + "start": 20667, + "end": 20671, "loc": { "start": { "line": 471, @@ -22878,8 +22878,8 @@ }, "property": { "type": "Identifier", - "start": 20637, - "end": 20651, + "start": 20672, + "end": 20686, "loc": { "start": { "line": 471, @@ -22906,8 +22906,8 @@ }, { "type": "ExpressionStatement", - "start": 20672, - "end": 20721, + "start": 20707, + "end": 20756, "loc": { "start": { "line": 473, @@ -22920,8 +22920,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 20672, - "end": 20720, + "start": 20707, + "end": 20755, "loc": { "start": { "line": 473, @@ -22935,8 +22935,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 20672, - "end": 20706, + "start": 20707, + "end": 20741, "loc": { "start": { "line": 473, @@ -22949,8 +22949,8 @@ }, "object": { "type": "MemberExpression", - "start": 20672, - "end": 20690, + "start": 20707, + "end": 20725, "loc": { "start": { "line": 473, @@ -22963,8 +22963,8 @@ }, "object": { "type": "ThisExpression", - "start": 20672, - "end": 20676, + "start": 20707, + "end": 20711, "loc": { "start": { "line": 473, @@ -22978,8 +22978,8 @@ }, "property": { "type": "Identifier", - "start": 20677, - "end": 20690, + "start": 20712, + "end": 20725, "loc": { "start": { "line": 473, @@ -22997,8 +22997,8 @@ }, "property": { "type": "MemberExpression", - "start": 20691, - "end": 20705, + "start": 20726, + "end": 20740, "loc": { "start": { "line": 473, @@ -23011,8 +23011,8 @@ }, "object": { "type": "Identifier", - "start": 20691, - "end": 20702, + "start": 20726, + "end": 20737, "loc": { "start": { "line": 473, @@ -23028,8 +23028,8 @@ }, "property": { "type": "Identifier", - "start": 20703, - "end": 20705, + "start": 20738, + "end": 20740, "loc": { "start": { "line": 473, @@ -23049,8 +23049,8 @@ }, "right": { "type": "Identifier", - "start": 20709, - "end": 20720, + "start": 20744, + "end": 20755, "loc": { "start": { "line": 473, @@ -23068,8 +23068,8 @@ }, { "type": "ExpressionStatement", - "start": 20730, - "end": 20832, + "start": 20765, + "end": 20867, "loc": { "start": { "line": 474, @@ -23082,8 +23082,8 @@ }, "expression": { "type": "CallExpression", - "start": 20730, - "end": 20831, + "start": 20765, + "end": 20866, "loc": { "start": { "line": 474, @@ -23096,8 +23096,8 @@ }, "callee": { "type": "MemberExpression", - "start": 20730, - "end": 20744, + "start": 20765, + "end": 20779, "loc": { "start": { "line": 474, @@ -23110,8 +23110,8 @@ }, "object": { "type": "Identifier", - "start": 20730, - "end": 20741, + "start": 20765, + "end": 20776, "loc": { "start": { "line": 474, @@ -23127,8 +23127,8 @@ }, "property": { "type": "Identifier", - "start": 20742, - "end": 20744, + "start": 20777, + "end": 20779, "loc": { "start": { "line": 474, @@ -23147,8 +23147,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 20745, - "end": 20756, + "start": 20780, + "end": 20791, "loc": { "start": { "line": 474, @@ -23167,8 +23167,8 @@ }, { "type": "ArrowFunctionExpression", - "start": 20758, - "end": 20830, + "start": 20793, + "end": 20865, "loc": { "start": { "line": 474, @@ -23186,8 +23186,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 20764, - "end": 20830, + "start": 20799, + "end": 20865, "loc": { "start": { "line": 474, @@ -23201,8 +23201,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 20778, - "end": 20820, + "start": 20813, + "end": 20855, "loc": { "start": { "line": 475, @@ -23215,8 +23215,8 @@ }, "expression": { "type": "UnaryExpression", - "start": 20778, - "end": 20819, + "start": 20813, + "end": 20854, "loc": { "start": { "line": 475, @@ -23231,8 +23231,8 @@ "prefix": true, "argument": { "type": "MemberExpression", - "start": 20785, - "end": 20819, + "start": 20820, + "end": 20854, "loc": { "start": { "line": 475, @@ -23245,8 +23245,8 @@ }, "object": { "type": "MemberExpression", - "start": 20785, - "end": 20803, + "start": 20820, + "end": 20838, "loc": { "start": { "line": 475, @@ -23259,8 +23259,8 @@ }, "object": { "type": "ThisExpression", - "start": 20785, - "end": 20789, + "start": 20820, + "end": 20824, "loc": { "start": { "line": 475, @@ -23274,8 +23274,8 @@ }, "property": { "type": "Identifier", - "start": 20790, - "end": 20803, + "start": 20825, + "end": 20838, "loc": { "start": { "line": 475, @@ -23293,8 +23293,8 @@ }, "property": { "type": "MemberExpression", - "start": 20804, - "end": 20818, + "start": 20839, + "end": 20853, "loc": { "start": { "line": 475, @@ -23307,8 +23307,8 @@ }, "object": { "type": "Identifier", - "start": 20804, - "end": 20815, + "start": 20839, + "end": 20850, "loc": { "start": { "line": 475, @@ -23324,8 +23324,8 @@ }, "property": { "type": "Identifier", - "start": 20816, - "end": 20818, + "start": 20851, + "end": 20853, "loc": { "start": { "line": 475, @@ -23357,8 +23357,8 @@ }, { "type": "ExpressionStatement", - "start": 20841, - "end": 20886, + "start": 20876, + "end": 20921, "loc": { "start": { "line": 477, @@ -23371,8 +23371,8 @@ }, "expression": { "type": "CallExpression", - "start": 20841, - "end": 20885, + "start": 20876, + "end": 20920, "loc": { "start": { "line": 477, @@ -23385,8 +23385,8 @@ }, "callee": { "type": "MemberExpression", - "start": 20841, - "end": 20850, + "start": 20876, + "end": 20885, "loc": { "start": { "line": 477, @@ -23399,8 +23399,8 @@ }, "object": { "type": "ThisExpression", - "start": 20841, - "end": 20845, + "start": 20876, + "end": 20880, "loc": { "start": { "line": 477, @@ -23414,8 +23414,8 @@ }, "property": { "type": "Identifier", - "start": 20846, - "end": 20850, + "start": 20881, + "end": 20885, "loc": { "start": { "line": 477, @@ -23434,8 +23434,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 20851, - "end": 20871, + "start": 20886, + "end": 20906, "loc": { "start": { "line": 477, @@ -23454,8 +23454,8 @@ }, { "type": "Identifier", - "start": 20873, - "end": 20884, + "start": 20908, + "end": 20919, "loc": { "start": { "line": 477, @@ -23474,8 +23474,8 @@ }, { "type": "ReturnStatement", - "start": 20895, - "end": 20914, + "start": 20930, + "end": 20949, "loc": { "start": { "line": 478, @@ -23488,8 +23488,8 @@ }, "argument": { "type": "Identifier", - "start": 20902, - "end": 20913, + "start": 20937, + "end": 20948, "loc": { "start": { "line": 478, @@ -23512,8 +23512,8 @@ { "type": "CommentBlock", "value": "*\n * Creates a {@link DistanceMeasurement}.\n *\n * The DistanceMeasurement is then registered by {@link DistanceMeasurement#id} in {@link DistanceMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link DistanceMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link DistanceMeasurement#id}. The DistanceMeasurement will be registered by this in {@link DistanceMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link DistanceMeasurement}.\n * @param {Boolean} [params.originVisible=true] Whether to initially show the {@link DistanceMeasurement} origin.\n * @param {Boolean} [params.targetVisible=true] Whether to initially show the {@link DistanceMeasurement} target.\n * @param {Boolean} [params.wireVisible=true] Whether to initially show the direct point-to-point wire between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.axisVisible=true] Whether to initially show the axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.xAxisVisible=true] Whether to initially show the X-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.yAxisVisible=true] Whether to initially show the Y-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.zAxisVisible=true] Whether to initially show the Z-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.labelsVisible=true] Whether to initially show the labels.\n * @param {string} [params.color] The color of the length dot, wire and label.\n * @param {Boolean} [params.labelsOnWires=true] Determines if labels will be set on wires or one below the other.\n * @returns {DistanceMeasurement} The new {@link DistanceMeasurement}.\n ", - "start": 16568, - "end": 19039, + "start": 16603, + "end": 19074, "loc": { "start": { "line": 415, @@ -23530,8 +23530,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys a {@link DistanceMeasurement}.\n *\n * @param {String} id ID of DistanceMeasurement to destroy.\n ", - "start": 20926, - "end": 21055, + "start": 20961, + "end": 21090, "loc": { "start": { "line": 481, @@ -23547,8 +23547,8 @@ }, { "type": "ClassMethod", - "start": 21060, - "end": 21349, + "start": 21095, + "end": 21384, "loc": { "start": { "line": 486, @@ -23563,8 +23563,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 21060, - "end": 21078, + "start": 21095, + "end": 21113, "loc": { "start": { "line": 486, @@ -23587,8 +23587,8 @@ "params": [ { "type": "Identifier", - "start": 21079, - "end": 21081, + "start": 21114, + "end": 21116, "loc": { "start": { "line": 486, @@ -23605,8 +23605,8 @@ ], "body": { "type": "BlockStatement", - "start": 21083, - "end": 21349, + "start": 21118, + "end": 21384, "loc": { "start": { "line": 486, @@ -23620,8 +23620,8 @@ "body": [ { "type": "VariableDeclaration", - "start": 21093, - "end": 21136, + "start": 21128, + "end": 21171, "loc": { "start": { "line": 487, @@ -23635,8 +23635,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 21099, - "end": 21135, + "start": 21134, + "end": 21170, "loc": { "start": { "line": 487, @@ -23649,8 +23649,8 @@ }, "id": { "type": "Identifier", - "start": 21099, - "end": 21110, + "start": 21134, + "end": 21145, "loc": { "start": { "line": 487, @@ -23666,8 +23666,8 @@ }, "init": { "type": "MemberExpression", - "start": 21113, - "end": 21135, + "start": 21148, + "end": 21170, "loc": { "start": { "line": 487, @@ -23680,8 +23680,8 @@ }, "object": { "type": "MemberExpression", - "start": 21113, - "end": 21131, + "start": 21148, + "end": 21166, "loc": { "start": { "line": 487, @@ -23694,8 +23694,8 @@ }, "object": { "type": "ThisExpression", - "start": 21113, - "end": 21117, + "start": 21148, + "end": 21152, "loc": { "start": { "line": 487, @@ -23709,8 +23709,8 @@ }, "property": { "type": "Identifier", - "start": 21118, - "end": 21131, + "start": 21153, + "end": 21166, "loc": { "start": { "line": 487, @@ -23728,8 +23728,8 @@ }, "property": { "type": "Identifier", - "start": 21132, - "end": 21134, + "start": 21167, + "end": 21169, "loc": { "start": { "line": 487, @@ -23751,8 +23751,8 @@ }, { "type": "IfStatement", - "start": 21145, - "end": 21256, + "start": 21180, + "end": 21291, "loc": { "start": { "line": 488, @@ -23765,8 +23765,8 @@ }, "test": { "type": "UnaryExpression", - "start": 21149, - "end": 21161, + "start": 21184, + "end": 21196, "loc": { "start": { "line": 488, @@ -23781,8 +23781,8 @@ "prefix": true, "argument": { "type": "Identifier", - "start": 21150, - "end": 21161, + "start": 21185, + "end": 21196, "loc": { "start": { "line": 488, @@ -23802,8 +23802,8 @@ }, "consequent": { "type": "BlockStatement", - "start": 21163, - "end": 21256, + "start": 21198, + "end": 21291, "loc": { "start": { "line": 488, @@ -23817,8 +23817,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 21177, - "end": 21226, + "start": 21212, + "end": 21261, "loc": { "start": { "line": 489, @@ -23831,8 +23831,8 @@ }, "expression": { "type": "CallExpression", - "start": 21177, - "end": 21225, + "start": 21212, + "end": 21260, "loc": { "start": { "line": 489, @@ -23845,8 +23845,8 @@ }, "callee": { "type": "MemberExpression", - "start": 21177, - "end": 21185, + "start": 21212, + "end": 21220, "loc": { "start": { "line": 489, @@ -23859,8 +23859,8 @@ }, "object": { "type": "ThisExpression", - "start": 21177, - "end": 21181, + "start": 21212, + "end": 21216, "loc": { "start": { "line": 489, @@ -23874,8 +23874,8 @@ }, "property": { "type": "Identifier", - "start": 21182, - "end": 21185, + "start": 21217, + "end": 21220, "loc": { "start": { "line": 489, @@ -23894,8 +23894,8 @@ "arguments": [ { "type": "BinaryExpression", - "start": 21186, - "end": 21224, + "start": 21221, + "end": 21259, "loc": { "start": { "line": 489, @@ -23908,8 +23908,8 @@ }, "left": { "type": "StringLiteral", - "start": 21186, - "end": 21219, + "start": 21221, + "end": 21254, "loc": { "start": { "line": 489, @@ -23929,8 +23929,8 @@ "operator": "+", "right": { "type": "Identifier", - "start": 21222, - "end": 21224, + "start": 21257, + "end": 21259, "loc": { "start": { "line": 489, @@ -23950,8 +23950,8 @@ }, { "type": "ReturnStatement", - "start": 21239, - "end": 21246, + "start": 21274, + "end": 21281, "loc": { "start": { "line": 490, @@ -23971,8 +23971,8 @@ }, { "type": "ExpressionStatement", - "start": 21265, - "end": 21287, + "start": 21300, + "end": 21322, "loc": { "start": { "line": 492, @@ -23985,8 +23985,8 @@ }, "expression": { "type": "CallExpression", - "start": 21265, - "end": 21286, + "start": 21300, + "end": 21321, "loc": { "start": { "line": 492, @@ -23999,8 +23999,8 @@ }, "callee": { "type": "MemberExpression", - "start": 21265, - "end": 21284, + "start": 21300, + "end": 21319, "loc": { "start": { "line": 492, @@ -24013,8 +24013,8 @@ }, "object": { "type": "Identifier", - "start": 21265, - "end": 21276, + "start": 21300, + "end": 21311, "loc": { "start": { "line": 492, @@ -24030,8 +24030,8 @@ }, "property": { "type": "Identifier", - "start": 21277, - "end": 21284, + "start": 21312, + "end": 21319, "loc": { "start": { "line": 492, @@ -24052,8 +24052,8 @@ }, { "type": "ExpressionStatement", - "start": 21296, - "end": 21343, + "start": 21331, + "end": 21378, "loc": { "start": { "line": 493, @@ -24066,8 +24066,8 @@ }, "expression": { "type": "CallExpression", - "start": 21296, - "end": 21342, + "start": 21331, + "end": 21377, "loc": { "start": { "line": 493, @@ -24080,8 +24080,8 @@ }, "callee": { "type": "MemberExpression", - "start": 21296, - "end": 21305, + "start": 21331, + "end": 21340, "loc": { "start": { "line": 493, @@ -24094,8 +24094,8 @@ }, "object": { "type": "ThisExpression", - "start": 21296, - "end": 21300, + "start": 21331, + "end": 21335, "loc": { "start": { "line": 493, @@ -24109,8 +24109,8 @@ }, "property": { "type": "Identifier", - "start": 21301, - "end": 21305, + "start": 21336, + "end": 21340, "loc": { "start": { "line": 493, @@ -24129,8 +24129,8 @@ "arguments": [ { "type": "StringLiteral", - "start": 21306, - "end": 21328, + "start": 21341, + "end": 21363, "loc": { "start": { "line": 493, @@ -24149,8 +24149,8 @@ }, { "type": "Identifier", - "start": 21330, - "end": 21341, + "start": 21365, + "end": 21376, "loc": { "start": { "line": 493, @@ -24175,8 +24175,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys a {@link DistanceMeasurement}.\n *\n * @param {String} id ID of DistanceMeasurement to destroy.\n ", - "start": 20926, - "end": 21055, + "start": 20961, + "end": 21090, "loc": { "start": { "line": 481, @@ -24193,8 +24193,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the distance label of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n ", - "start": 21355, - "end": 21526, + "start": 21390, + "end": 21561, "loc": { "start": { "line": 496, @@ -24210,8 +24210,8 @@ }, { "type": "ClassMethod", - "start": 21531, - "end": 21704, + "start": 21566, + "end": 21739, "loc": { "start": { "line": 501, @@ -24226,8 +24226,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 21531, - "end": 21545, + "start": 21566, + "end": 21580, "loc": { "start": { "line": 501, @@ -24250,8 +24250,8 @@ "params": [ { "type": "Identifier", - "start": 21546, - "end": 21557, + "start": 21581, + "end": 21592, "loc": { "start": { "line": 501, @@ -24268,8 +24268,8 @@ ], "body": { "type": "BlockStatement", - "start": 21559, - "end": 21704, + "start": 21594, + "end": 21739, "loc": { "start": { "line": 501, @@ -24283,8 +24283,8 @@ "body": [ { "type": "ForOfStatement", - "start": 21569, - "end": 21698, + "start": 21604, + "end": 21733, "loc": { "start": { "line": 502, @@ -24297,8 +24297,8 @@ }, "left": { "type": "VariableDeclaration", - "start": 21574, - "end": 21598, + "start": 21609, + "end": 21633, "loc": { "start": { "line": 502, @@ -24312,8 +24312,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 21580, - "end": 21598, + "start": 21615, + "end": 21633, "loc": { "start": { "line": 502, @@ -24326,8 +24326,8 @@ }, "id": { "type": "ArrayPattern", - "start": 21580, - "end": 21598, + "start": 21615, + "end": 21633, "loc": { "start": { "line": 502, @@ -24341,8 +24341,8 @@ "elements": [ { "type": "Identifier", - "start": 21581, - "end": 21584, + "start": 21616, + "end": 21619, "loc": { "start": { "line": 502, @@ -24358,8 +24358,8 @@ }, { "type": "Identifier", - "start": 21586, - "end": 21597, + "start": 21621, + "end": 21632, "loc": { "start": { "line": 502, @@ -24382,8 +24382,8 @@ }, "right": { "type": "CallExpression", - "start": 21602, - "end": 21635, + "start": 21637, + "end": 21670, "loc": { "start": { "line": 502, @@ -24396,8 +24396,8 @@ }, "callee": { "type": "MemberExpression", - "start": 21602, - "end": 21616, + "start": 21637, + "end": 21651, "loc": { "start": { "line": 502, @@ -24410,8 +24410,8 @@ }, "object": { "type": "Identifier", - "start": 21602, - "end": 21608, + "start": 21637, + "end": 21643, "loc": { "start": { "line": 502, @@ -24427,8 +24427,8 @@ }, "property": { "type": "Identifier", - "start": 21609, - "end": 21616, + "start": 21644, + "end": 21651, "loc": { "start": { "line": 502, @@ -24447,8 +24447,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 21617, - "end": 21634, + "start": 21652, + "end": 21669, "loc": { "start": { "line": 502, @@ -24461,8 +24461,8 @@ }, "object": { "type": "ThisExpression", - "start": 21617, - "end": 21621, + "start": 21652, + "end": 21656, "loc": { "start": { "line": 502, @@ -24476,8 +24476,8 @@ }, "property": { "type": "Identifier", - "start": 21622, - "end": 21634, + "start": 21657, + "end": 21669, "loc": { "start": { "line": 502, @@ -24497,8 +24497,8 @@ }, "body": { "type": "BlockStatement", - "start": 21637, - "end": 21698, + "start": 21672, + "end": 21733, "loc": { "start": { "line": 502, @@ -24512,8 +24512,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 21651, - "end": 21688, + "start": 21686, + "end": 21723, "loc": { "start": { "line": 503, @@ -24526,8 +24526,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 21651, - "end": 21687, + "start": 21686, + "end": 21722, "loc": { "start": { "line": 503, @@ -24541,8 +24541,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 21651, - "end": 21673, + "start": 21686, + "end": 21708, "loc": { "start": { "line": 503, @@ -24555,8 +24555,8 @@ }, "object": { "type": "Identifier", - "start": 21651, - "end": 21662, + "start": 21686, + "end": 21697, "loc": { "start": { "line": 503, @@ -24572,8 +24572,8 @@ }, "property": { "type": "Identifier", - "start": 21663, - "end": 21673, + "start": 21698, + "end": 21708, "loc": { "start": { "line": 503, @@ -24591,8 +24591,8 @@ }, "right": { "type": "Identifier", - "start": 21676, - "end": 21687, + "start": 21711, + "end": 21722, "loc": { "start": { "line": 503, @@ -24620,8 +24620,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the distance label of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n ", - "start": 21355, - "end": 21526, + "start": 21390, + "end": 21561, "loc": { "start": { "line": 496, @@ -24638,8 +24638,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the axis wires of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the axis wires.\n ", - "start": 21710, - "end": 21881, + "start": 21745, + "end": 21916, "loc": { "start": { "line": 507, @@ -24655,8 +24655,8 @@ }, { "type": "ClassMethod", - "start": 21886, - "end": 22107, + "start": 21921, + "end": 22142, "loc": { "start": { "line": 512, @@ -24671,8 +24671,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 21886, - "end": 21900, + "start": 21921, + "end": 21935, "loc": { "start": { "line": 512, @@ -24695,8 +24695,8 @@ "params": [ { "type": "Identifier", - "start": 21901, - "end": 21912, + "start": 21936, + "end": 21947, "loc": { "start": { "line": 512, @@ -24713,8 +24713,8 @@ ], "body": { "type": "BlockStatement", - "start": 21914, - "end": 22107, + "start": 21949, + "end": 22142, "loc": { "start": { "line": 512, @@ -24728,8 +24728,8 @@ "body": [ { "type": "ForOfStatement", - "start": 21924, - "end": 22054, + "start": 21959, + "end": 22089, "loc": { "start": { "line": 513, @@ -24742,8 +24742,8 @@ }, "left": { "type": "VariableDeclaration", - "start": 21929, - "end": 21953, + "start": 21964, + "end": 21988, "loc": { "start": { "line": 513, @@ -24757,8 +24757,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 21935, - "end": 21953, + "start": 21970, + "end": 21988, "loc": { "start": { "line": 513, @@ -24771,8 +24771,8 @@ }, "id": { "type": "ArrayPattern", - "start": 21935, - "end": 21953, + "start": 21970, + "end": 21988, "loc": { "start": { "line": 513, @@ -24786,8 +24786,8 @@ "elements": [ { "type": "Identifier", - "start": 21936, - "end": 21939, + "start": 21971, + "end": 21974, "loc": { "start": { "line": 513, @@ -24803,8 +24803,8 @@ }, { "type": "Identifier", - "start": 21941, - "end": 21952, + "start": 21976, + "end": 21987, "loc": { "start": { "line": 513, @@ -24827,8 +24827,8 @@ }, "right": { "type": "CallExpression", - "start": 21957, - "end": 21990, + "start": 21992, + "end": 22025, "loc": { "start": { "line": 513, @@ -24841,8 +24841,8 @@ }, "callee": { "type": "MemberExpression", - "start": 21957, - "end": 21971, + "start": 21992, + "end": 22006, "loc": { "start": { "line": 513, @@ -24855,8 +24855,8 @@ }, "object": { "type": "Identifier", - "start": 21957, - "end": 21963, + "start": 21992, + "end": 21998, "loc": { "start": { "line": 513, @@ -24872,8 +24872,8 @@ }, "property": { "type": "Identifier", - "start": 21964, - "end": 21971, + "start": 21999, + "end": 22006, "loc": { "start": { "line": 513, @@ -24892,8 +24892,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 21972, - "end": 21989, + "start": 22007, + "end": 22024, "loc": { "start": { "line": 513, @@ -24906,8 +24906,8 @@ }, "object": { "type": "ThisExpression", - "start": 21972, - "end": 21976, + "start": 22007, + "end": 22011, "loc": { "start": { "line": 513, @@ -24921,8 +24921,8 @@ }, "property": { "type": "Identifier", - "start": 21977, - "end": 21989, + "start": 22012, + "end": 22024, "loc": { "start": { "line": 513, @@ -24942,8 +24942,8 @@ }, "body": { "type": "BlockStatement", - "start": 21992, - "end": 22054, + "start": 22027, + "end": 22089, "loc": { "start": { "line": 513, @@ -24957,8 +24957,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 22006, - "end": 22044, + "start": 22041, + "end": 22079, "loc": { "start": { "line": 514, @@ -24971,8 +24971,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 22006, - "end": 22043, + "start": 22041, + "end": 22078, "loc": { "start": { "line": 514, @@ -24986,8 +24986,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 22006, - "end": 22029, + "start": 22041, + "end": 22064, "loc": { "start": { "line": 514, @@ -25000,8 +25000,8 @@ }, "object": { "type": "Identifier", - "start": 22006, - "end": 22017, + "start": 22041, + "end": 22052, "loc": { "start": { "line": 514, @@ -25017,8 +25017,8 @@ }, "property": { "type": "Identifier", - "start": 22018, - "end": 22029, + "start": 22053, + "end": 22064, "loc": { "start": { "line": 514, @@ -25036,8 +25036,8 @@ }, "right": { "type": "Identifier", - "start": 22032, - "end": 22043, + "start": 22067, + "end": 22078, "loc": { "start": { "line": 514, @@ -25059,8 +25059,8 @@ }, { "type": "ExpressionStatement", - "start": 22063, - "end": 22101, + "start": 22098, + "end": 22136, "loc": { "start": { "line": 516, @@ -25073,8 +25073,8 @@ }, "expression": { "type": "AssignmentExpression", - "start": 22063, - "end": 22100, + "start": 22098, + "end": 22135, "loc": { "start": { "line": 516, @@ -25088,8 +25088,8 @@ "operator": "=", "left": { "type": "MemberExpression", - "start": 22063, - "end": 22086, + "start": 22098, + "end": 22121, "loc": { "start": { "line": 516, @@ -25102,8 +25102,8 @@ }, "object": { "type": "ThisExpression", - "start": 22063, - "end": 22067, + "start": 22098, + "end": 22102, "loc": { "start": { "line": 516, @@ -25117,8 +25117,8 @@ }, "property": { "type": "Identifier", - "start": 22068, - "end": 22086, + "start": 22103, + "end": 22121, "loc": { "start": { "line": 516, @@ -25136,8 +25136,8 @@ }, "right": { "type": "Identifier", - "start": 22089, - "end": 22100, + "start": 22124, + "end": 22135, "loc": { "start": { "line": 516, @@ -25161,8 +25161,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the axis wires of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the axis wires.\n ", - "start": 21710, - "end": 21881, + "start": 21745, + "end": 21916, "loc": { "start": { "line": 507, @@ -25179,8 +25179,8 @@ { "type": "CommentBlock", "value": "*\n * Gets if the axis wires of each {@link DistanceMeasurement} are visible.\n *\n * @returns {Boolean} Whether or not the axis wires are visible.\n ", - "start": 22113, - "end": 22279, + "start": 22148, + "end": 22314, "loc": { "start": { "line": 519, @@ -25196,8 +25196,8 @@ }, { "type": "ClassMethod", - "start": 22284, - "end": 22348, + "start": 22319, + "end": 22383, "loc": { "start": { "line": 524, @@ -25212,8 +25212,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 22284, - "end": 22298, + "start": 22319, + "end": 22333, "loc": { "start": { "line": 524, @@ -25236,8 +25236,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 22301, - "end": 22348, + "start": 22336, + "end": 22383, "loc": { "start": { "line": 524, @@ -25251,8 +25251,8 @@ "body": [ { "type": "ReturnStatement", - "start": 22311, - "end": 22342, + "start": 22346, + "end": 22377, "loc": { "start": { "line": 525, @@ -25265,8 +25265,8 @@ }, "argument": { "type": "MemberExpression", - "start": 22318, - "end": 22341, + "start": 22353, + "end": 22376, "loc": { "start": { "line": 525, @@ -25279,8 +25279,8 @@ }, "object": { "type": "ThisExpression", - "start": 22318, - "end": 22322, + "start": 22353, + "end": 22357, "loc": { "start": { "line": 525, @@ -25294,8 +25294,8 @@ }, "property": { "type": "Identifier", - "start": 22323, - "end": 22341, + "start": 22358, + "end": 22376, "loc": { "start": { "line": 525, @@ -25320,8 +25320,8 @@ { "type": "CommentBlock", "value": "*\n * Gets if the axis wires of each {@link DistanceMeasurement} are visible.\n *\n * @returns {Boolean} Whether or not the axis wires are visible.\n ", - "start": 22113, - "end": 22279, + "start": 22148, + "end": 22314, "loc": { "start": { "line": 519, @@ -25338,8 +25338,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys all {@link DistanceMeasurement}s.\n ", - "start": 22354, - "end": 22415, + "start": 22389, + "end": 22450, "loc": { "start": { "line": 528, @@ -25355,8 +25355,8 @@ }, { "type": "ClassMethod", - "start": 22420, - "end": 22601, + "start": 22455, + "end": 22636, "loc": { "start": { "line": 531, @@ -25371,8 +25371,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 22420, - "end": 22425, + "start": 22455, + "end": 22460, "loc": { "start": { "line": 531, @@ -25395,8 +25395,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 22428, - "end": 22601, + "start": 22463, + "end": 22636, "loc": { "start": { "line": 531, @@ -25410,8 +25410,8 @@ "body": [ { "type": "VariableDeclaration", - "start": 22438, - "end": 22482, + "start": 22473, + "end": 22517, "loc": { "start": { "line": 532, @@ -25425,8 +25425,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 22444, - "end": 22481, + "start": 22479, + "end": 22516, "loc": { "start": { "line": 532, @@ -25439,8 +25439,8 @@ }, "id": { "type": "Identifier", - "start": 22444, - "end": 22447, + "start": 22479, + "end": 22482, "loc": { "start": { "line": 532, @@ -25456,8 +25456,8 @@ }, "init": { "type": "CallExpression", - "start": 22450, - "end": 22481, + "start": 22485, + "end": 22516, "loc": { "start": { "line": 532, @@ -25470,8 +25470,8 @@ }, "callee": { "type": "MemberExpression", - "start": 22450, - "end": 22461, + "start": 22485, + "end": 22496, "loc": { "start": { "line": 532, @@ -25484,8 +25484,8 @@ }, "object": { "type": "Identifier", - "start": 22450, - "end": 22456, + "start": 22485, + "end": 22491, "loc": { "start": { "line": 532, @@ -25501,8 +25501,8 @@ }, "property": { "type": "Identifier", - "start": 22457, - "end": 22461, + "start": 22492, + "end": 22496, "loc": { "start": { "line": 532, @@ -25521,8 +25521,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 22462, - "end": 22480, + "start": 22497, + "end": 22515, "loc": { "start": { "line": 532, @@ -25535,8 +25535,8 @@ }, "object": { "type": "ThisExpression", - "start": 22462, - "end": 22466, + "start": 22497, + "end": 22501, "loc": { "start": { "line": 532, @@ -25550,8 +25550,8 @@ }, "property": { "type": "Identifier", - "start": 22467, - "end": 22480, + "start": 22502, + "end": 22515, "loc": { "start": { "line": 532, @@ -25575,8 +25575,8 @@ }, { "type": "ForStatement", - "start": 22491, - "end": 22595, + "start": 22526, + "end": 22630, "loc": { "start": { "line": 533, @@ -25589,8 +25589,8 @@ }, "init": { "type": "VariableDeclaration", - "start": 22496, - "end": 22523, + "start": 22531, + "end": 22558, "loc": { "start": { "line": 533, @@ -25604,8 +25604,8 @@ "declarations": [ { "type": "VariableDeclarator", - "start": 22500, - "end": 22505, + "start": 22535, + "end": 22540, "loc": { "start": { "line": 533, @@ -25618,8 +25618,8 @@ }, "id": { "type": "Identifier", - "start": 22500, - "end": 22501, + "start": 22535, + "end": 22536, "loc": { "start": { "line": 533, @@ -25635,8 +25635,8 @@ }, "init": { "type": "NumericLiteral", - "start": 22504, - "end": 22505, + "start": 22539, + "end": 22540, "loc": { "start": { "line": 533, @@ -25656,8 +25656,8 @@ }, { "type": "VariableDeclarator", - "start": 22507, - "end": 22523, + "start": 22542, + "end": 22558, "loc": { "start": { "line": 533, @@ -25670,8 +25670,8 @@ }, "id": { "type": "Identifier", - "start": 22507, - "end": 22510, + "start": 22542, + "end": 22545, "loc": { "start": { "line": 533, @@ -25687,8 +25687,8 @@ }, "init": { "type": "MemberExpression", - "start": 22513, - "end": 22523, + "start": 22548, + "end": 22558, "loc": { "start": { "line": 533, @@ -25701,8 +25701,8 @@ }, "object": { "type": "Identifier", - "start": 22513, - "end": 22516, + "start": 22548, + "end": 22551, "loc": { "start": { "line": 533, @@ -25718,8 +25718,8 @@ }, "property": { "type": "Identifier", - "start": 22517, - "end": 22523, + "start": 22552, + "end": 22558, "loc": { "start": { "line": 533, @@ -25741,8 +25741,8 @@ }, "test": { "type": "BinaryExpression", - "start": 22525, - "end": 22532, + "start": 22560, + "end": 22567, "loc": { "start": { "line": 533, @@ -25755,8 +25755,8 @@ }, "left": { "type": "Identifier", - "start": 22525, - "end": 22526, + "start": 22560, + "end": 22561, "loc": { "start": { "line": 533, @@ -25773,8 +25773,8 @@ "operator": "<", "right": { "type": "Identifier", - "start": 22529, - "end": 22532, + "start": 22564, + "end": 22567, "loc": { "start": { "line": 533, @@ -25791,8 +25791,8 @@ }, "update": { "type": "UpdateExpression", - "start": 22534, - "end": 22537, + "start": 22569, + "end": 22572, "loc": { "start": { "line": 533, @@ -25807,8 +25807,8 @@ "prefix": false, "argument": { "type": "Identifier", - "start": 22534, - "end": 22535, + "start": 22569, + "end": 22570, "loc": { "start": { "line": 533, @@ -25825,8 +25825,8 @@ }, "body": { "type": "BlockStatement", - "start": 22539, - "end": 22595, + "start": 22574, + "end": 22630, "loc": { "start": { "line": 533, @@ -25840,8 +25840,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 22553, - "end": 22585, + "start": 22588, + "end": 22620, "loc": { "start": { "line": 534, @@ -25854,8 +25854,8 @@ }, "expression": { "type": "CallExpression", - "start": 22553, - "end": 22584, + "start": 22588, + "end": 22619, "loc": { "start": { "line": 534, @@ -25868,8 +25868,8 @@ }, "callee": { "type": "MemberExpression", - "start": 22553, - "end": 22576, + "start": 22588, + "end": 22611, "loc": { "start": { "line": 534, @@ -25882,8 +25882,8 @@ }, "object": { "type": "ThisExpression", - "start": 22553, - "end": 22557, + "start": 22588, + "end": 22592, "loc": { "start": { "line": 534, @@ -25897,8 +25897,8 @@ }, "property": { "type": "Identifier", - "start": 22558, - "end": 22576, + "start": 22593, + "end": 22611, "loc": { "start": { "line": 534, @@ -25917,8 +25917,8 @@ "arguments": [ { "type": "MemberExpression", - "start": 22577, - "end": 22583, + "start": 22612, + "end": 22618, "loc": { "start": { "line": 534, @@ -25931,8 +25931,8 @@ }, "object": { "type": "Identifier", - "start": 22577, - "end": 22580, + "start": 22612, + "end": 22615, "loc": { "start": { "line": 534, @@ -25948,8 +25948,8 @@ }, "property": { "type": "Identifier", - "start": 22581, - "end": 22582, + "start": 22616, + "end": 22617, "loc": { "start": { "line": 534, @@ -25980,8 +25980,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys all {@link DistanceMeasurement}s.\n ", - "start": 22354, - "end": 22415, + "start": 22389, + "end": 22450, "loc": { "start": { "line": 528, @@ -25998,8 +25998,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys this DistanceMeasurementsPlugin.\n *\n * Destroys all {@link DistanceMeasurement}s first.\n ", - "start": 22607, - "end": 22730, + "start": 22642, + "end": 22765, "loc": { "start": { "line": 538, @@ -26015,8 +26015,8 @@ }, { "type": "ClassMethod", - "start": 22735, - "end": 22799, + "start": 22770, + "end": 22834, "loc": { "start": { "line": 543, @@ -26031,8 +26031,8 @@ "computed": false, "key": { "type": "Identifier", - "start": 22735, - "end": 22742, + "start": 22770, + "end": 22777, "loc": { "start": { "line": 543, @@ -26055,8 +26055,8 @@ "params": [], "body": { "type": "BlockStatement", - "start": 22745, - "end": 22799, + "start": 22780, + "end": 22834, "loc": { "start": { "line": 543, @@ -26070,8 +26070,8 @@ "body": [ { "type": "ExpressionStatement", - "start": 22755, - "end": 22768, + "start": 22790, + "end": 22803, "loc": { "start": { "line": 544, @@ -26084,8 +26084,8 @@ }, "expression": { "type": "CallExpression", - "start": 22755, - "end": 22767, + "start": 22790, + "end": 22802, "loc": { "start": { "line": 544, @@ -26098,8 +26098,8 @@ }, "callee": { "type": "MemberExpression", - "start": 22755, - "end": 22765, + "start": 22790, + "end": 22800, "loc": { "start": { "line": 544, @@ -26112,8 +26112,8 @@ }, "object": { "type": "ThisExpression", - "start": 22755, - "end": 22759, + "start": 22790, + "end": 22794, "loc": { "start": { "line": 544, @@ -26127,8 +26127,8 @@ }, "property": { "type": "Identifier", - "start": 22760, - "end": 22765, + "start": 22795, + "end": 22800, "loc": { "start": { "line": 544, @@ -26149,8 +26149,8 @@ }, { "type": "ExpressionStatement", - "start": 22777, - "end": 22793, + "start": 22812, + "end": 22828, "loc": { "start": { "line": 545, @@ -26163,8 +26163,8 @@ }, "expression": { "type": "CallExpression", - "start": 22777, - "end": 22792, + "start": 22812, + "end": 22827, "loc": { "start": { "line": 545, @@ -26177,8 +26177,8 @@ }, "callee": { "type": "MemberExpression", - "start": 22777, - "end": 22790, + "start": 22812, + "end": 22825, "loc": { "start": { "line": 545, @@ -26191,8 +26191,8 @@ }, "object": { "type": "Super", - "start": 22777, - "end": 22782, + "start": 22812, + "end": 22817, "loc": { "start": { "line": 545, @@ -26206,8 +26206,8 @@ }, "property": { "type": "Identifier", - "start": 22783, - "end": 22790, + "start": 22818, + "end": 22825, "loc": { "start": { "line": 545, @@ -26233,8 +26233,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys this DistanceMeasurementsPlugin.\n *\n * Destroys all {@link DistanceMeasurement}s first.\n ", - "start": 22607, - "end": 22730, + "start": 22642, + "end": 22765, "loc": { "start": { "line": 538, @@ -26253,9 +26253,9 @@ "leadingComments": [ { "type": "CommentBlock", - "value": "*\n * {@link Viewer} plugin for measuring point-to-point distances.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n *\n * * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n * * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n * * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n *\n * ## Overview\n *\n * * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n * * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\n * and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n * * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n * * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n * * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n * * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n *\n * ## Example 1: Creating DistanceMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n *\n * Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating DistanceMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n * {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n *\n * After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n *\n * The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\n * another DistanceMeasurement, and so on, until deactivated again.\n *\n * [[Run example](/examples/measurement/#distance_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n * ````\n *\n * ## Example 3: Configuring Measurement Units and Scale\n *\n * In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n *\n * The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n *\n * * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n *\n * ````JavaScript\n * const metrics = viewer.scene.metrics;\n\n * metrics.units = \"meters\";\n * metrics.scale = 10.0;\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach event handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * distanceMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * distanceMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * distanceMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"Duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating DistanceMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create distance measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#distance_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * distanceMeasurementsTouchControl.activate();\n * ````\n ", + "value": "*\n * {@link Viewer} plugin for measuring point-to-point distances.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n *\n * * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n * * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n * * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n *\n * ## Overview\n *\n * * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n * * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\n * and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n * * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n * * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n * * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n * * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n *\n * ## Example 1: Creating DistanceMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n *\n * Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating DistanceMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n * {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n *\n * After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n *\n * The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\n * another DistanceMeasurement, and so on, until deactivated again.\n *\n * [[Run example](/examples/measurement/#distance_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n * ````\n *\n * ## Example 3: Configuring Measurement Units and Scale\n *\n * In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n *\n * The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n *\n * * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n *\n * ````JavaScript\n * const metrics = viewer.scene.metrics;\n\n * metrics.units = \"meters\";\n * metrics.scale = 10.0;\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach event handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * distanceMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * distanceMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * distanceMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"Duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating DistanceMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create distance measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#distance_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * distanceMeasurementsTouchControl.activate();\n * ````\n ", "start": 198, - "end": 10622, + "end": 10657, "loc": { "start": { "line": 5, @@ -26281,9 +26281,9 @@ "comments": [ { "type": "CommentBlock", - "value": "*\n * {@link Viewer} plugin for measuring point-to-point distances.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n *\n * * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n * * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n * * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n *\n * ## Overview\n *\n * * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n * * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\n * and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n * * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n * * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n * * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n * * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n *\n * ## Example 1: Creating DistanceMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n *\n * Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating DistanceMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n * {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n *\n * After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n *\n * The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\n * another DistanceMeasurement, and so on, until deactivated again.\n *\n * [[Run example](/examples/measurement/#distance_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n * ````\n *\n * ## Example 3: Configuring Measurement Units and Scale\n *\n * In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n *\n * The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n *\n * * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n *\n * ````JavaScript\n * const metrics = viewer.scene.metrics;\n\n * metrics.units = \"meters\";\n * metrics.scale = 10.0;\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach event handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * distanceMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * distanceMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * distanceMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"Duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating DistanceMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create distance measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#distance_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * distanceMeasurementsTouchControl.activate();\n * ````\n ", + "value": "*\n * {@link Viewer} plugin for measuring point-to-point distances.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n *\n * * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n * * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n * * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n *\n * ## Overview\n *\n * * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n * * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\n * and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n * * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n * * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n * * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n * * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n *\n * ## Example 1: Creating DistanceMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n *\n * Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating DistanceMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n * {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n *\n * After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n *\n * The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\n * another DistanceMeasurement, and so on, until deactivated again.\n *\n * [[Run example](/examples/measurement/#distance_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n * ````\n *\n * ## Example 3: Configuring Measurement Units and Scale\n *\n * In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n *\n * The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n *\n * * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n *\n * ````JavaScript\n * const metrics = viewer.scene.metrics;\n\n * metrics.units = \"meters\";\n * metrics.scale = 10.0;\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach event handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * distanceMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * distanceMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * distanceMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"Duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating DistanceMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create distance measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#distance_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * distanceMeasurementsTouchControl.activate();\n * ````\n ", "start": 198, - "end": 10622, + "end": 10657, "loc": { "start": { "line": 5, @@ -26298,8 +26298,8 @@ { "type": "CommentBlock", "value": "*\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"DistanceMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {Number} [cfg.labelMinAxisLength=25] The minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {boolean} [cfg.defaultVisible=true] The default value of the DistanceMeasurements `visible` property.\n * @param {boolean} [cfg.defaultOriginVisible=true] The default value of the DistanceMeasurements `originVisible` property.\n * @param {boolean} [cfg.defaultTargetVisible=true] The default value of the DistanceMeasurements `targetVisible` property.\n * @param {boolean} [cfg.defaultWireVisible=true] The default value of the DistanceMeasurements `wireVisible` property.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of the DistanceMeasurements `labelsVisible` property.\n * @param {boolean} [cfg.defaultAxisVisible=true] The default value of the DistanceMeasurements `axisVisible` property.\n * @param {boolean} [cfg.defaultXAxisVisible=true] The default value of the DistanceMeasurements `xAxisVisible` property.\n * @param {boolean} [cfg.defaultYAxisVisible=true] The default value of the DistanceMeasurements `yAxisVisible` property.\n * @param {boolean} [cfg.defaultZAxisVisible=true] The default value of the DistanceMeasurements `zAxisVisible` property.\n * @param {string} [cfg.defaultColor=#00BBFF] The default color of the length dots, wire and label.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {boolean} [cfg.defaultLabelsOnWires=true] The default value of the DistanceMeasurements `labelsOnWires` property.\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n ", - "start": 10678, - "end": 12821, + "start": 10713, + "end": 12856, "loc": { "start": { "line": 267, @@ -26314,8 +26314,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n ", - "start": 14737, - "end": 14849, + "start": 14772, + "end": 14884, "loc": { "start": { "line": 343, @@ -26330,8 +26330,8 @@ { "type": "CommentBlock", "value": "*\n * @private\n ", - "start": 14921, - "end": 14948, + "start": 14956, + "end": 14983, "loc": { "start": { "line": 351, @@ -26346,8 +26346,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the PointerLens attached to this DistanceMeasurementsPlugin.\n * @returns {PointerCircle}\n ", - "start": 14985, - "end": 15101, + "start": 15020, + "end": 15136, "loc": { "start": { "line": 358, @@ -26362,8 +26362,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the default {@link DistanceMeasurementsControl}.\n *\n * @type {DistanceMeasurementsControl}\n * @deprecated\n ", - "start": 15171, - "end": 15312, + "start": 15206, + "end": 15347, "loc": { "start": { "line": 366, @@ -26378,8 +26378,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the existing {@link DistanceMeasurement}s, each mapped to its {@link DistanceMeasurement#id}.\n *\n * @type {{String:DistanceMeasurement}}\n ", - "start": 15511, - "end": 15679, + "start": 15546, + "end": 15714, "loc": { "start": { "line": 379, @@ -26394,8 +26394,8 @@ { "type": "CommentBlock", "value": "*\n * Sets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n *\n * The axis wire's label is not shown when its length is less than this value.\n *\n * This is ````25```` pixels by default.\n *\n * Must not be less than ````1````.\n *\n * @type {number}\n ", - "start": 15751, - "end": 16072, + "start": 15786, + "end": 16107, "loc": { "start": { "line": 388, @@ -26410,8 +26410,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @returns {number}\n ", - "start": 16356, - "end": 16484, + "start": 16391, + "end": 16519, "loc": { "start": { "line": 407, @@ -26426,8 +26426,8 @@ { "type": "CommentBlock", "value": "*\n * Creates a {@link DistanceMeasurement}.\n *\n * The DistanceMeasurement is then registered by {@link DistanceMeasurement#id} in {@link DistanceMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link DistanceMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link DistanceMeasurement#id}. The DistanceMeasurement will be registered by this in {@link DistanceMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link DistanceMeasurement}.\n * @param {Boolean} [params.originVisible=true] Whether to initially show the {@link DistanceMeasurement} origin.\n * @param {Boolean} [params.targetVisible=true] Whether to initially show the {@link DistanceMeasurement} target.\n * @param {Boolean} [params.wireVisible=true] Whether to initially show the direct point-to-point wire between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.axisVisible=true] Whether to initially show the axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.xAxisVisible=true] Whether to initially show the X-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.yAxisVisible=true] Whether to initially show the Y-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.zAxisVisible=true] Whether to initially show the Z-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.labelsVisible=true] Whether to initially show the labels.\n * @param {string} [params.color] The color of the length dot, wire and label.\n * @param {Boolean} [params.labelsOnWires=true] Determines if labels will be set on wires or one below the other.\n * @returns {DistanceMeasurement} The new {@link DistanceMeasurement}.\n ", - "start": 16568, - "end": 19039, + "start": 16603, + "end": 19074, "loc": { "start": { "line": 415, @@ -26442,8 +26442,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys a {@link DistanceMeasurement}.\n *\n * @param {String} id ID of DistanceMeasurement to destroy.\n ", - "start": 20926, - "end": 21055, + "start": 20961, + "end": 21090, "loc": { "start": { "line": 481, @@ -26458,8 +26458,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the distance label of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n ", - "start": 21355, - "end": 21526, + "start": 21390, + "end": 21561, "loc": { "start": { "line": 496, @@ -26474,8 +26474,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the axis wires of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the axis wires.\n ", - "start": 21710, - "end": 21881, + "start": 21745, + "end": 21916, "loc": { "start": { "line": 507, @@ -26490,8 +26490,8 @@ { "type": "CommentBlock", "value": "*\n * Gets if the axis wires of each {@link DistanceMeasurement} are visible.\n *\n * @returns {Boolean} Whether or not the axis wires are visible.\n ", - "start": 22113, - "end": 22279, + "start": 22148, + "end": 22314, "loc": { "start": { "line": 519, @@ -26506,8 +26506,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys all {@link DistanceMeasurement}s.\n ", - "start": 22354, - "end": 22415, + "start": 22389, + "end": 22450, "loc": { "start": { "line": 528, @@ -26522,8 +26522,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys this DistanceMeasurementsPlugin.\n *\n * Destroys all {@link DistanceMeasurement}s first.\n ", - "start": 22607, - "end": 22730, + "start": 22642, + "end": 22765, "loc": { "start": { "line": 538, @@ -27088,9 +27088,9 @@ }, { "type": "CommentBlock", - "value": "*\n * {@link Viewer} plugin for measuring point-to-point distances.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n *\n * * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n * * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n * * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n *\n * ## Overview\n *\n * * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n * * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\n * and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n * * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n * * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n * * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n * * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n *\n * ## Example 1: Creating DistanceMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n *\n * Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating DistanceMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n * {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n *\n * After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n *\n * The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\n * another DistanceMeasurement, and so on, until deactivated again.\n *\n * [[Run example](/examples/measurement/#distance_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n * ````\n *\n * ## Example 3: Configuring Measurement Units and Scale\n *\n * In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n *\n * The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n *\n * * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n *\n * ````JavaScript\n * const metrics = viewer.scene.metrics;\n\n * metrics.units = \"meters\";\n * metrics.scale = 10.0;\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach event handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * distanceMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * distanceMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * distanceMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"Duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating DistanceMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create distance measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#distance_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * distanceMeasurementsTouchControl.activate();\n * ````\n ", + "value": "*\n * {@link Viewer} plugin for measuring point-to-point distances.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n *\n * * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n * * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n * * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n *\n * ## Overview\n *\n * * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n * * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\n * and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n * * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n * * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n * * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n * * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n *\n * ## Example 1: Creating DistanceMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n *\n * Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating DistanceMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n * {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n *\n * After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n *\n * The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\n * another DistanceMeasurement, and so on, until deactivated again.\n *\n * [[Run example](/examples/measurement/#distance_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n * ````\n *\n * ## Example 3: Configuring Measurement Units and Scale\n *\n * In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n *\n * The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n *\n * * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n *\n * ````JavaScript\n * const metrics = viewer.scene.metrics;\n\n * metrics.units = \"meters\";\n * metrics.scale = 10.0;\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach event handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * distanceMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * distanceMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * distanceMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"Duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating DistanceMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create distance measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#distance_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * distanceMeasurementsTouchControl.activate();\n * ````\n ", "start": 198, - "end": 10622, + "end": 10657, "loc": { "start": { "line": 5, @@ -27117,8 +27117,8 @@ "updateContext": null }, "value": "class", - "start": 10623, - "end": 10628, + "start": 10658, + "end": 10663, "loc": { "start": { "line": 265, @@ -27143,8 +27143,8 @@ "binop": null }, "value": "DistanceMeasurementsPlugin", - "start": 10629, - "end": 10655, + "start": 10664, + "end": 10690, "loc": { "start": { "line": 265, @@ -27171,8 +27171,8 @@ "updateContext": null }, "value": "extends", - "start": 10656, - "end": 10663, + "start": 10691, + "end": 10698, "loc": { "start": { "line": 265, @@ -27197,8 +27197,8 @@ "binop": null }, "value": "Plugin", - "start": 10664, - "end": 10670, + "start": 10699, + "end": 10705, "loc": { "start": { "line": 265, @@ -27222,8 +27222,8 @@ "postfix": false, "binop": null }, - "start": 10671, - "end": 10672, + "start": 10706, + "end": 10707, "loc": { "start": { "line": 265, @@ -27238,8 +27238,8 @@ { "type": "CommentBlock", "value": "*\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"DistanceMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {Number} [cfg.labelMinAxisLength=25] The minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {boolean} [cfg.defaultVisible=true] The default value of the DistanceMeasurements `visible` property.\n * @param {boolean} [cfg.defaultOriginVisible=true] The default value of the DistanceMeasurements `originVisible` property.\n * @param {boolean} [cfg.defaultTargetVisible=true] The default value of the DistanceMeasurements `targetVisible` property.\n * @param {boolean} [cfg.defaultWireVisible=true] The default value of the DistanceMeasurements `wireVisible` property.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of the DistanceMeasurements `labelsVisible` property.\n * @param {boolean} [cfg.defaultAxisVisible=true] The default value of the DistanceMeasurements `axisVisible` property.\n * @param {boolean} [cfg.defaultXAxisVisible=true] The default value of the DistanceMeasurements `xAxisVisible` property.\n * @param {boolean} [cfg.defaultYAxisVisible=true] The default value of the DistanceMeasurements `yAxisVisible` property.\n * @param {boolean} [cfg.defaultZAxisVisible=true] The default value of the DistanceMeasurements `zAxisVisible` property.\n * @param {string} [cfg.defaultColor=#00BBFF] The default color of the length dots, wire and label.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {boolean} [cfg.defaultLabelsOnWires=true] The default value of the DistanceMeasurements `labelsOnWires` property.\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n ", - "start": 10678, - "end": 12821, + "start": 10713, + "end": 12856, "loc": { "start": { "line": 267, @@ -27264,8 +27264,8 @@ "binop": null }, "value": "constructor", - "start": 12826, - "end": 12837, + "start": 12861, + "end": 12872, "loc": { "start": { "line": 288, @@ -27289,8 +27289,8 @@ "postfix": false, "binop": null }, - "start": 12837, - "end": 12838, + "start": 12872, + "end": 12873, "loc": { "start": { "line": 288, @@ -27315,8 +27315,8 @@ "binop": null }, "value": "viewer", - "start": 12838, - "end": 12844, + "start": 12873, + "end": 12879, "loc": { "start": { "line": 288, @@ -27341,8 +27341,8 @@ "binop": null, "updateContext": null }, - "start": 12844, - "end": 12845, + "start": 12879, + "end": 12880, "loc": { "start": { "line": 288, @@ -27367,8 +27367,8 @@ "binop": null }, "value": "cfg", - "start": 12846, - "end": 12849, + "start": 12881, + "end": 12884, "loc": { "start": { "line": 288, @@ -27394,8 +27394,8 @@ "updateContext": null }, "value": "=", - "start": 12850, - "end": 12851, + "start": 12885, + "end": 12886, "loc": { "start": { "line": 288, @@ -27419,8 +27419,8 @@ "postfix": false, "binop": null }, - "start": 12852, - "end": 12853, + "start": 12887, + "end": 12888, "loc": { "start": { "line": 288, @@ -27444,8 +27444,8 @@ "postfix": false, "binop": null }, - "start": 12853, - "end": 12854, + "start": 12888, + "end": 12889, "loc": { "start": { "line": 288, @@ -27469,8 +27469,8 @@ "postfix": false, "binop": null }, - "start": 12854, - "end": 12855, + "start": 12889, + "end": 12890, "loc": { "start": { "line": 288, @@ -27494,8 +27494,8 @@ "postfix": false, "binop": null }, - "start": 12856, - "end": 12857, + "start": 12891, + "end": 12892, "loc": { "start": { "line": 288, @@ -27522,8 +27522,8 @@ "updateContext": null }, "value": "super", - "start": 12867, - "end": 12872, + "start": 12902, + "end": 12907, "loc": { "start": { "line": 290, @@ -27547,8 +27547,8 @@ "postfix": false, "binop": null }, - "start": 12872, - "end": 12873, + "start": 12907, + "end": 12908, "loc": { "start": { "line": 290, @@ -27574,8 +27574,8 @@ "updateContext": null }, "value": "DistanceMeasurements", - "start": 12873, - "end": 12895, + "start": 12908, + "end": 12930, "loc": { "start": { "line": 290, @@ -27600,8 +27600,8 @@ "binop": null, "updateContext": null }, - "start": 12895, - "end": 12896, + "start": 12930, + "end": 12931, "loc": { "start": { "line": 290, @@ -27626,8 +27626,8 @@ "binop": null }, "value": "viewer", - "start": 12897, - "end": 12903, + "start": 12932, + "end": 12938, "loc": { "start": { "line": 290, @@ -27651,8 +27651,8 @@ "postfix": false, "binop": null }, - "start": 12903, - "end": 12904, + "start": 12938, + "end": 12939, "loc": { "start": { "line": 290, @@ -27677,8 +27677,8 @@ "binop": null, "updateContext": null }, - "start": 12904, - "end": 12905, + "start": 12939, + "end": 12940, "loc": { "start": { "line": 290, @@ -27705,8 +27705,8 @@ "updateContext": null }, "value": "this", - "start": 12915, - "end": 12919, + "start": 12950, + "end": 12954, "loc": { "start": { "line": 292, @@ -27731,8 +27731,8 @@ "binop": null, "updateContext": null }, - "start": 12919, - "end": 12920, + "start": 12954, + "end": 12955, "loc": { "start": { "line": 292, @@ -27757,8 +27757,8 @@ "binop": null }, "value": "_pointerLens", - "start": 12920, - "end": 12932, + "start": 12955, + "end": 12967, "loc": { "start": { "line": 292, @@ -27784,8 +27784,8 @@ "updateContext": null }, "value": "=", - "start": 12933, - "end": 12934, + "start": 12968, + "end": 12969, "loc": { "start": { "line": 292, @@ -27810,8 +27810,8 @@ "binop": null }, "value": "cfg", - "start": 12935, - "end": 12938, + "start": 12970, + "end": 12973, "loc": { "start": { "line": 292, @@ -27836,8 +27836,8 @@ "binop": null, "updateContext": null }, - "start": 12938, - "end": 12939, + "start": 12973, + "end": 12974, "loc": { "start": { "line": 292, @@ -27862,8 +27862,8 @@ "binop": null }, "value": "pointerLens", - "start": 12939, - "end": 12950, + "start": 12974, + "end": 12985, "loc": { "start": { "line": 292, @@ -27888,8 +27888,8 @@ "binop": null, "updateContext": null }, - "start": 12950, - "end": 12951, + "start": 12985, + "end": 12986, "loc": { "start": { "line": 292, @@ -27916,8 +27916,8 @@ "updateContext": null }, "value": "this", - "start": 12961, - "end": 12965, + "start": 12996, + "end": 13000, "loc": { "start": { "line": 294, @@ -27942,8 +27942,8 @@ "binop": null, "updateContext": null }, - "start": 12965, - "end": 12966, + "start": 13000, + "end": 13001, "loc": { "start": { "line": 294, @@ -27968,8 +27968,8 @@ "binop": null }, "value": "_container", - "start": 12966, - "end": 12976, + "start": 13001, + "end": 13011, "loc": { "start": { "line": 294, @@ -27995,8 +27995,8 @@ "updateContext": null }, "value": "=", - "start": 12977, - "end": 12978, + "start": 13012, + "end": 13013, "loc": { "start": { "line": 294, @@ -28021,8 +28021,8 @@ "binop": null }, "value": "cfg", - "start": 12979, - "end": 12982, + "start": 13014, + "end": 13017, "loc": { "start": { "line": 294, @@ -28047,8 +28047,8 @@ "binop": null, "updateContext": null }, - "start": 12982, - "end": 12983, + "start": 13017, + "end": 13018, "loc": { "start": { "line": 294, @@ -28073,8 +28073,8 @@ "binop": null }, "value": "container", - "start": 12983, - "end": 12992, + "start": 13018, + "end": 13027, "loc": { "start": { "line": 294, @@ -28100,8 +28100,8 @@ "updateContext": null }, "value": "||", - "start": 12993, - "end": 12995, + "start": 13028, + "end": 13030, "loc": { "start": { "line": 294, @@ -28126,8 +28126,8 @@ "binop": null }, "value": "document", - "start": 12996, - "end": 13004, + "start": 13031, + "end": 13039, "loc": { "start": { "line": 294, @@ -28152,8 +28152,8 @@ "binop": null, "updateContext": null }, - "start": 13004, - "end": 13005, + "start": 13039, + "end": 13040, "loc": { "start": { "line": 294, @@ -28178,8 +28178,8 @@ "binop": null }, "value": "body", - "start": 13005, - "end": 13009, + "start": 13040, + "end": 13044, "loc": { "start": { "line": 294, @@ -28204,8 +28204,8 @@ "binop": null, "updateContext": null }, - "start": 13009, - "end": 13010, + "start": 13044, + "end": 13045, "loc": { "start": { "line": 294, @@ -28232,8 +28232,8 @@ "updateContext": null }, "value": "this", - "start": 13020, - "end": 13024, + "start": 13055, + "end": 13059, "loc": { "start": { "line": 296, @@ -28258,8 +28258,8 @@ "binop": null, "updateContext": null }, - "start": 13024, - "end": 13025, + "start": 13059, + "end": 13060, "loc": { "start": { "line": 296, @@ -28284,8 +28284,8 @@ "binop": null }, "value": "_defaultControl", - "start": 13025, - "end": 13040, + "start": 13060, + "end": 13075, "loc": { "start": { "line": 296, @@ -28311,8 +28311,8 @@ "updateContext": null }, "value": "=", - "start": 13041, - "end": 13042, + "start": 13076, + "end": 13077, "loc": { "start": { "line": 296, @@ -28339,8 +28339,8 @@ "updateContext": null }, "value": "null", - "start": 13043, - "end": 13047, + "start": 13078, + "end": 13082, "loc": { "start": { "line": 296, @@ -28365,8 +28365,8 @@ "binop": null, "updateContext": null }, - "start": 13047, - "end": 13048, + "start": 13082, + "end": 13083, "loc": { "start": { "line": 296, @@ -28393,8 +28393,8 @@ "updateContext": null }, "value": "this", - "start": 13058, - "end": 13062, + "start": 13093, + "end": 13097, "loc": { "start": { "line": 298, @@ -28419,8 +28419,8 @@ "binop": null, "updateContext": null }, - "start": 13062, - "end": 13063, + "start": 13097, + "end": 13098, "loc": { "start": { "line": 298, @@ -28445,8 +28445,8 @@ "binop": null }, "value": "_measurements", - "start": 13063, - "end": 13076, + "start": 13098, + "end": 13111, "loc": { "start": { "line": 298, @@ -28472,8 +28472,8 @@ "updateContext": null }, "value": "=", - "start": 13077, - "end": 13078, + "start": 13112, + "end": 13113, "loc": { "start": { "line": 298, @@ -28497,8 +28497,8 @@ "postfix": false, "binop": null }, - "start": 13079, - "end": 13080, + "start": 13114, + "end": 13115, "loc": { "start": { "line": 298, @@ -28522,8 +28522,8 @@ "postfix": false, "binop": null }, - "start": 13080, - "end": 13081, + "start": 13115, + "end": 13116, "loc": { "start": { "line": 298, @@ -28548,8 +28548,8 @@ "binop": null, "updateContext": null }, - "start": 13081, - "end": 13082, + "start": 13116, + "end": 13117, "loc": { "start": { "line": 298, @@ -28576,8 +28576,8 @@ "updateContext": null }, "value": "this", - "start": 13092, - "end": 13096, + "start": 13127, + "end": 13131, "loc": { "start": { "line": 300, @@ -28602,8 +28602,8 @@ "binop": null, "updateContext": null }, - "start": 13096, - "end": 13097, + "start": 13131, + "end": 13132, "loc": { "start": { "line": 300, @@ -28628,8 +28628,8 @@ "binop": null }, "value": "labelMinAxisLength", - "start": 13097, - "end": 13115, + "start": 13132, + "end": 13150, "loc": { "start": { "line": 300, @@ -28655,8 +28655,8 @@ "updateContext": null }, "value": "=", - "start": 13116, - "end": 13117, + "start": 13151, + "end": 13152, "loc": { "start": { "line": 300, @@ -28681,8 +28681,8 @@ "binop": null }, "value": "cfg", - "start": 13118, - "end": 13121, + "start": 13153, + "end": 13156, "loc": { "start": { "line": 300, @@ -28707,8 +28707,8 @@ "binop": null, "updateContext": null }, - "start": 13121, - "end": 13122, + "start": 13156, + "end": 13157, "loc": { "start": { "line": 300, @@ -28733,8 +28733,8 @@ "binop": null }, "value": "labelMinAxisLength", - "start": 13122, - "end": 13140, + "start": 13157, + "end": 13175, "loc": { "start": { "line": 300, @@ -28759,8 +28759,8 @@ "binop": null, "updateContext": null }, - "start": 13140, - "end": 13141, + "start": 13175, + "end": 13176, "loc": { "start": { "line": 300, @@ -28787,8 +28787,8 @@ "updateContext": null }, "value": "this", - "start": 13151, - "end": 13155, + "start": 13186, + "end": 13190, "loc": { "start": { "line": 302, @@ -28813,8 +28813,8 @@ "binop": null, "updateContext": null }, - "start": 13155, - "end": 13156, + "start": 13190, + "end": 13191, "loc": { "start": { "line": 302, @@ -28839,8 +28839,8 @@ "binop": null }, "value": "defaultVisible", - "start": 13156, - "end": 13170, + "start": 13191, + "end": 13205, "loc": { "start": { "line": 302, @@ -28866,8 +28866,8 @@ "updateContext": null }, "value": "=", - "start": 13171, - "end": 13172, + "start": 13206, + "end": 13207, "loc": { "start": { "line": 302, @@ -28892,8 +28892,8 @@ "binop": null }, "value": "cfg", - "start": 13173, - "end": 13176, + "start": 13208, + "end": 13211, "loc": { "start": { "line": 302, @@ -28918,8 +28918,8 @@ "binop": null, "updateContext": null }, - "start": 13176, - "end": 13177, + "start": 13211, + "end": 13212, "loc": { "start": { "line": 302, @@ -28944,8 +28944,8 @@ "binop": null }, "value": "defaultVisible", - "start": 13177, - "end": 13191, + "start": 13212, + "end": 13226, "loc": { "start": { "line": 302, @@ -28971,8 +28971,8 @@ "updateContext": null }, "value": "!==", - "start": 13192, - "end": 13195, + "start": 13227, + "end": 13230, "loc": { "start": { "line": 302, @@ -28999,8 +28999,8 @@ "updateContext": null }, "value": "false", - "start": 13196, - "end": 13201, + "start": 13231, + "end": 13236, "loc": { "start": { "line": 302, @@ -29025,8 +29025,8 @@ "binop": null, "updateContext": null }, - "start": 13201, - "end": 13202, + "start": 13236, + "end": 13237, "loc": { "start": { "line": 302, @@ -29053,8 +29053,8 @@ "updateContext": null }, "value": "this", - "start": 13211, - "end": 13215, + "start": 13246, + "end": 13250, "loc": { "start": { "line": 303, @@ -29079,8 +29079,8 @@ "binop": null, "updateContext": null }, - "start": 13215, - "end": 13216, + "start": 13250, + "end": 13251, "loc": { "start": { "line": 303, @@ -29105,8 +29105,8 @@ "binop": null }, "value": "defaultOriginVisible", - "start": 13216, - "end": 13236, + "start": 13251, + "end": 13271, "loc": { "start": { "line": 303, @@ -29132,8 +29132,8 @@ "updateContext": null }, "value": "=", - "start": 13237, - "end": 13238, + "start": 13272, + "end": 13273, "loc": { "start": { "line": 303, @@ -29158,8 +29158,8 @@ "binop": null }, "value": "cfg", - "start": 13239, - "end": 13242, + "start": 13274, + "end": 13277, "loc": { "start": { "line": 303, @@ -29184,8 +29184,8 @@ "binop": null, "updateContext": null }, - "start": 13242, - "end": 13243, + "start": 13277, + "end": 13278, "loc": { "start": { "line": 303, @@ -29210,8 +29210,8 @@ "binop": null }, "value": "defaultOriginVisible", - "start": 13243, - "end": 13263, + "start": 13278, + "end": 13298, "loc": { "start": { "line": 303, @@ -29237,8 +29237,8 @@ "updateContext": null }, "value": "!==", - "start": 13264, - "end": 13267, + "start": 13299, + "end": 13302, "loc": { "start": { "line": 303, @@ -29265,8 +29265,8 @@ "updateContext": null }, "value": "false", - "start": 13268, - "end": 13273, + "start": 13303, + "end": 13308, "loc": { "start": { "line": 303, @@ -29291,8 +29291,8 @@ "binop": null, "updateContext": null }, - "start": 13273, - "end": 13274, + "start": 13308, + "end": 13309, "loc": { "start": { "line": 303, @@ -29319,8 +29319,8 @@ "updateContext": null }, "value": "this", - "start": 13283, - "end": 13287, + "start": 13318, + "end": 13322, "loc": { "start": { "line": 304, @@ -29345,8 +29345,8 @@ "binop": null, "updateContext": null }, - "start": 13287, - "end": 13288, + "start": 13322, + "end": 13323, "loc": { "start": { "line": 304, @@ -29371,8 +29371,8 @@ "binop": null }, "value": "defaultTargetVisible", - "start": 13288, - "end": 13308, + "start": 13323, + "end": 13343, "loc": { "start": { "line": 304, @@ -29398,8 +29398,8 @@ "updateContext": null }, "value": "=", - "start": 13309, - "end": 13310, + "start": 13344, + "end": 13345, "loc": { "start": { "line": 304, @@ -29424,8 +29424,8 @@ "binop": null }, "value": "cfg", - "start": 13311, - "end": 13314, + "start": 13346, + "end": 13349, "loc": { "start": { "line": 304, @@ -29450,8 +29450,8 @@ "binop": null, "updateContext": null }, - "start": 13314, - "end": 13315, + "start": 13349, + "end": 13350, "loc": { "start": { "line": 304, @@ -29476,8 +29476,8 @@ "binop": null }, "value": "defaultTargetVisible", - "start": 13315, - "end": 13335, + "start": 13350, + "end": 13370, "loc": { "start": { "line": 304, @@ -29503,8 +29503,8 @@ "updateContext": null }, "value": "!==", - "start": 13336, - "end": 13339, + "start": 13371, + "end": 13374, "loc": { "start": { "line": 304, @@ -29531,8 +29531,8 @@ "updateContext": null }, "value": "false", - "start": 13340, - "end": 13345, + "start": 13375, + "end": 13380, "loc": { "start": { "line": 304, @@ -29557,8 +29557,8 @@ "binop": null, "updateContext": null }, - "start": 13345, - "end": 13346, + "start": 13380, + "end": 13381, "loc": { "start": { "line": 304, @@ -29585,8 +29585,8 @@ "updateContext": null }, "value": "this", - "start": 13355, - "end": 13359, + "start": 13390, + "end": 13394, "loc": { "start": { "line": 305, @@ -29611,8 +29611,8 @@ "binop": null, "updateContext": null }, - "start": 13359, - "end": 13360, + "start": 13394, + "end": 13395, "loc": { "start": { "line": 305, @@ -29637,8 +29637,8 @@ "binop": null }, "value": "defaultWireVisible", - "start": 13360, - "end": 13378, + "start": 13395, + "end": 13413, "loc": { "start": { "line": 305, @@ -29664,8 +29664,8 @@ "updateContext": null }, "value": "=", - "start": 13379, - "end": 13380, + "start": 13414, + "end": 13415, "loc": { "start": { "line": 305, @@ -29690,8 +29690,8 @@ "binop": null }, "value": "cfg", - "start": 13381, - "end": 13384, + "start": 13416, + "end": 13419, "loc": { "start": { "line": 305, @@ -29716,8 +29716,8 @@ "binop": null, "updateContext": null }, - "start": 13384, - "end": 13385, + "start": 13419, + "end": 13420, "loc": { "start": { "line": 305, @@ -29742,8 +29742,8 @@ "binop": null }, "value": "defaultWireVisible", - "start": 13385, - "end": 13403, + "start": 13420, + "end": 13438, "loc": { "start": { "line": 305, @@ -29769,8 +29769,8 @@ "updateContext": null }, "value": "!==", - "start": 13404, - "end": 13407, + "start": 13439, + "end": 13442, "loc": { "start": { "line": 305, @@ -29797,8 +29797,8 @@ "updateContext": null }, "value": "false", - "start": 13408, - "end": 13413, + "start": 13443, + "end": 13448, "loc": { "start": { "line": 305, @@ -29823,8 +29823,8 @@ "binop": null, "updateContext": null }, - "start": 13413, - "end": 13414, + "start": 13448, + "end": 13449, "loc": { "start": { "line": 305, @@ -29851,8 +29851,8 @@ "updateContext": null }, "value": "this", - "start": 13423, - "end": 13427, + "start": 13458, + "end": 13462, "loc": { "start": { "line": 306, @@ -29877,8 +29877,8 @@ "binop": null, "updateContext": null }, - "start": 13427, - "end": 13428, + "start": 13462, + "end": 13463, "loc": { "start": { "line": 306, @@ -29903,8 +29903,8 @@ "binop": null }, "value": "defaultLabelsVisible", - "start": 13428, - "end": 13448, + "start": 13463, + "end": 13483, "loc": { "start": { "line": 306, @@ -29930,8 +29930,8 @@ "updateContext": null }, "value": "=", - "start": 13449, - "end": 13450, + "start": 13484, + "end": 13485, "loc": { "start": { "line": 306, @@ -29956,8 +29956,8 @@ "binop": null }, "value": "cfg", - "start": 13451, - "end": 13454, + "start": 13486, + "end": 13489, "loc": { "start": { "line": 306, @@ -29982,8 +29982,8 @@ "binop": null, "updateContext": null }, - "start": 13454, - "end": 13455, + "start": 13489, + "end": 13490, "loc": { "start": { "line": 306, @@ -30008,8 +30008,8 @@ "binop": null }, "value": "defaultLabelsVisible", - "start": 13455, - "end": 13475, + "start": 13490, + "end": 13510, "loc": { "start": { "line": 306, @@ -30035,8 +30035,8 @@ "updateContext": null }, "value": "!==", - "start": 13476, - "end": 13479, + "start": 13511, + "end": 13514, "loc": { "start": { "line": 306, @@ -30063,8 +30063,8 @@ "updateContext": null }, "value": "false", - "start": 13480, - "end": 13485, + "start": 13515, + "end": 13520, "loc": { "start": { "line": 306, @@ -30089,8 +30089,8 @@ "binop": null, "updateContext": null }, - "start": 13485, - "end": 13486, + "start": 13520, + "end": 13521, "loc": { "start": { "line": 306, @@ -30117,8 +30117,8 @@ "updateContext": null }, "value": "this", - "start": 13495, - "end": 13499, + "start": 13530, + "end": 13534, "loc": { "start": { "line": 307, @@ -30143,8 +30143,8 @@ "binop": null, "updateContext": null }, - "start": 13499, - "end": 13500, + "start": 13534, + "end": 13535, "loc": { "start": { "line": 307, @@ -30169,8 +30169,8 @@ "binop": null }, "value": "defaultAxisVisible", - "start": 13500, - "end": 13518, + "start": 13535, + "end": 13553, "loc": { "start": { "line": 307, @@ -30196,8 +30196,8 @@ "updateContext": null }, "value": "=", - "start": 13519, - "end": 13520, + "start": 13554, + "end": 13555, "loc": { "start": { "line": 307, @@ -30222,8 +30222,8 @@ "binop": null }, "value": "cfg", - "start": 13521, - "end": 13524, + "start": 13556, + "end": 13559, "loc": { "start": { "line": 307, @@ -30248,8 +30248,8 @@ "binop": null, "updateContext": null }, - "start": 13524, - "end": 13525, + "start": 13559, + "end": 13560, "loc": { "start": { "line": 307, @@ -30274,8 +30274,8 @@ "binop": null }, "value": "defaultAxisVisible", - "start": 13525, - "end": 13543, + "start": 13560, + "end": 13578, "loc": { "start": { "line": 307, @@ -30301,8 +30301,8 @@ "updateContext": null }, "value": "!==", - "start": 13544, - "end": 13547, + "start": 13579, + "end": 13582, "loc": { "start": { "line": 307, @@ -30329,8 +30329,8 @@ "updateContext": null }, "value": "false", - "start": 13548, - "end": 13553, + "start": 13583, + "end": 13588, "loc": { "start": { "line": 307, @@ -30355,8 +30355,8 @@ "binop": null, "updateContext": null }, - "start": 13553, - "end": 13554, + "start": 13588, + "end": 13589, "loc": { "start": { "line": 307, @@ -30383,8 +30383,8 @@ "updateContext": null }, "value": "this", - "start": 13563, - "end": 13567, + "start": 13598, + "end": 13602, "loc": { "start": { "line": 308, @@ -30409,8 +30409,8 @@ "binop": null, "updateContext": null }, - "start": 13567, - "end": 13568, + "start": 13602, + "end": 13603, "loc": { "start": { "line": 308, @@ -30435,8 +30435,8 @@ "binop": null }, "value": "defaultXAxisVisible", - "start": 13568, - "end": 13587, + "start": 13603, + "end": 13622, "loc": { "start": { "line": 308, @@ -30462,8 +30462,8 @@ "updateContext": null }, "value": "=", - "start": 13588, - "end": 13589, + "start": 13623, + "end": 13624, "loc": { "start": { "line": 308, @@ -30488,8 +30488,8 @@ "binop": null }, "value": "cfg", - "start": 13590, - "end": 13593, + "start": 13625, + "end": 13628, "loc": { "start": { "line": 308, @@ -30514,8 +30514,8 @@ "binop": null, "updateContext": null }, - "start": 13593, - "end": 13594, + "start": 13628, + "end": 13629, "loc": { "start": { "line": 308, @@ -30540,8 +30540,8 @@ "binop": null }, "value": "defaultXAxisVisible", - "start": 13594, - "end": 13613, + "start": 13629, + "end": 13648, "loc": { "start": { "line": 308, @@ -30567,8 +30567,8 @@ "updateContext": null }, "value": "!==", - "start": 13614, - "end": 13617, + "start": 13649, + "end": 13652, "loc": { "start": { "line": 308, @@ -30595,8 +30595,8 @@ "updateContext": null }, "value": "false", - "start": 13618, - "end": 13623, + "start": 13653, + "end": 13658, "loc": { "start": { "line": 308, @@ -30621,8 +30621,8 @@ "binop": null, "updateContext": null }, - "start": 13623, - "end": 13624, + "start": 13658, + "end": 13659, "loc": { "start": { "line": 308, @@ -30649,8 +30649,8 @@ "updateContext": null }, "value": "this", - "start": 13633, - "end": 13637, + "start": 13668, + "end": 13672, "loc": { "start": { "line": 309, @@ -30675,8 +30675,8 @@ "binop": null, "updateContext": null }, - "start": 13637, - "end": 13638, + "start": 13672, + "end": 13673, "loc": { "start": { "line": 309, @@ -30701,8 +30701,8 @@ "binop": null }, "value": "defaultYAxisVisible", - "start": 13638, - "end": 13657, + "start": 13673, + "end": 13692, "loc": { "start": { "line": 309, @@ -30728,8 +30728,8 @@ "updateContext": null }, "value": "=", - "start": 13658, - "end": 13659, + "start": 13693, + "end": 13694, "loc": { "start": { "line": 309, @@ -30754,8 +30754,8 @@ "binop": null }, "value": "cfg", - "start": 13660, - "end": 13663, + "start": 13695, + "end": 13698, "loc": { "start": { "line": 309, @@ -30780,8 +30780,8 @@ "binop": null, "updateContext": null }, - "start": 13663, - "end": 13664, + "start": 13698, + "end": 13699, "loc": { "start": { "line": 309, @@ -30806,8 +30806,8 @@ "binop": null }, "value": "defaultYAxisVisible", - "start": 13664, - "end": 13683, + "start": 13699, + "end": 13718, "loc": { "start": { "line": 309, @@ -30833,8 +30833,8 @@ "updateContext": null }, "value": "!==", - "start": 13684, - "end": 13687, + "start": 13719, + "end": 13722, "loc": { "start": { "line": 309, @@ -30861,8 +30861,8 @@ "updateContext": null }, "value": "false", - "start": 13688, - "end": 13693, + "start": 13723, + "end": 13728, "loc": { "start": { "line": 309, @@ -30887,8 +30887,8 @@ "binop": null, "updateContext": null }, - "start": 13693, - "end": 13694, + "start": 13728, + "end": 13729, "loc": { "start": { "line": 309, @@ -30915,8 +30915,8 @@ "updateContext": null }, "value": "this", - "start": 13703, - "end": 13707, + "start": 13738, + "end": 13742, "loc": { "start": { "line": 310, @@ -30941,8 +30941,8 @@ "binop": null, "updateContext": null }, - "start": 13707, - "end": 13708, + "start": 13742, + "end": 13743, "loc": { "start": { "line": 310, @@ -30967,8 +30967,8 @@ "binop": null }, "value": "defaultZAxisVisible", - "start": 13708, - "end": 13727, + "start": 13743, + "end": 13762, "loc": { "start": { "line": 310, @@ -30994,8 +30994,8 @@ "updateContext": null }, "value": "=", - "start": 13728, - "end": 13729, + "start": 13763, + "end": 13764, "loc": { "start": { "line": 310, @@ -31020,8 +31020,8 @@ "binop": null }, "value": "cfg", - "start": 13730, - "end": 13733, + "start": 13765, + "end": 13768, "loc": { "start": { "line": 310, @@ -31046,8 +31046,8 @@ "binop": null, "updateContext": null }, - "start": 13733, - "end": 13734, + "start": 13768, + "end": 13769, "loc": { "start": { "line": 310, @@ -31072,8 +31072,8 @@ "binop": null }, "value": "defaultZAxisVisible", - "start": 13734, - "end": 13753, + "start": 13769, + "end": 13788, "loc": { "start": { "line": 310, @@ -31099,8 +31099,8 @@ "updateContext": null }, "value": "!==", - "start": 13754, - "end": 13757, + "start": 13789, + "end": 13792, "loc": { "start": { "line": 310, @@ -31127,8 +31127,8 @@ "updateContext": null }, "value": "false", - "start": 13758, - "end": 13763, + "start": 13793, + "end": 13798, "loc": { "start": { "line": 310, @@ -31153,8 +31153,8 @@ "binop": null, "updateContext": null }, - "start": 13763, - "end": 13764, + "start": 13798, + "end": 13799, "loc": { "start": { "line": 310, @@ -31181,8 +31181,8 @@ "updateContext": null }, "value": "this", - "start": 13773, - "end": 13777, + "start": 13808, + "end": 13812, "loc": { "start": { "line": 311, @@ -31207,8 +31207,8 @@ "binop": null, "updateContext": null }, - "start": 13777, - "end": 13778, + "start": 13812, + "end": 13813, "loc": { "start": { "line": 311, @@ -31233,8 +31233,8 @@ "binop": null }, "value": "defaultColor", - "start": 13778, - "end": 13790, + "start": 13813, + "end": 13825, "loc": { "start": { "line": 311, @@ -31260,8 +31260,8 @@ "updateContext": null }, "value": "=", - "start": 13791, - "end": 13792, + "start": 13826, + "end": 13827, "loc": { "start": { "line": 311, @@ -31286,8 +31286,8 @@ "binop": null }, "value": "cfg", - "start": 13793, - "end": 13796, + "start": 13828, + "end": 13831, "loc": { "start": { "line": 311, @@ -31312,8 +31312,8 @@ "binop": null, "updateContext": null }, - "start": 13796, - "end": 13797, + "start": 13831, + "end": 13832, "loc": { "start": { "line": 311, @@ -31338,8 +31338,8 @@ "binop": null }, "value": "defaultColor", - "start": 13797, - "end": 13809, + "start": 13832, + "end": 13844, "loc": { "start": { "line": 311, @@ -31365,8 +31365,8 @@ "updateContext": null }, "value": "!==", - "start": 13810, - "end": 13813, + "start": 13845, + "end": 13848, "loc": { "start": { "line": 311, @@ -31391,8 +31391,8 @@ "binop": null }, "value": "undefined", - "start": 13814, - "end": 13823, + "start": 13849, + "end": 13858, "loc": { "start": { "line": 311, @@ -31417,8 +31417,8 @@ "binop": null, "updateContext": null }, - "start": 13824, - "end": 13825, + "start": 13859, + "end": 13860, "loc": { "start": { "line": 311, @@ -31443,8 +31443,8 @@ "binop": null }, "value": "cfg", - "start": 13826, - "end": 13829, + "start": 13861, + "end": 13864, "loc": { "start": { "line": 311, @@ -31469,8 +31469,8 @@ "binop": null, "updateContext": null }, - "start": 13829, - "end": 13830, + "start": 13864, + "end": 13865, "loc": { "start": { "line": 311, @@ -31495,8 +31495,8 @@ "binop": null }, "value": "defaultColor", - "start": 13830, - "end": 13842, + "start": 13865, + "end": 13877, "loc": { "start": { "line": 311, @@ -31521,8 +31521,8 @@ "binop": null, "updateContext": null }, - "start": 13843, - "end": 13844, + "start": 13878, + "end": 13879, "loc": { "start": { "line": 311, @@ -31548,8 +31548,8 @@ "updateContext": null }, "value": "#00BBFF", - "start": 13845, - "end": 13854, + "start": 13880, + "end": 13889, "loc": { "start": { "line": 311, @@ -31574,8 +31574,8 @@ "binop": null, "updateContext": null }, - "start": 13854, - "end": 13855, + "start": 13889, + "end": 13890, "loc": { "start": { "line": 311, @@ -31602,8 +31602,8 @@ "updateContext": null }, "value": "this", - "start": 13864, - "end": 13868, + "start": 13899, + "end": 13903, "loc": { "start": { "line": 312, @@ -31628,8 +31628,8 @@ "binop": null, "updateContext": null }, - "start": 13868, - "end": 13869, + "start": 13903, + "end": 13904, "loc": { "start": { "line": 312, @@ -31654,8 +31654,8 @@ "binop": null }, "value": "zIndex", - "start": 13869, - "end": 13875, + "start": 13904, + "end": 13910, "loc": { "start": { "line": 312, @@ -31681,8 +31681,8 @@ "updateContext": null }, "value": "=", - "start": 13876, - "end": 13877, + "start": 13911, + "end": 13912, "loc": { "start": { "line": 312, @@ -31707,8 +31707,8 @@ "binop": null }, "value": "cfg", - "start": 13878, - "end": 13881, + "start": 13913, + "end": 13916, "loc": { "start": { "line": 312, @@ -31733,8 +31733,8 @@ "binop": null, "updateContext": null }, - "start": 13881, - "end": 13882, + "start": 13916, + "end": 13917, "loc": { "start": { "line": 312, @@ -31759,8 +31759,8 @@ "binop": null }, "value": "zIndex", - "start": 13882, - "end": 13888, + "start": 13917, + "end": 13923, "loc": { "start": { "line": 312, @@ -31786,8 +31786,8 @@ "updateContext": null }, "value": "||", - "start": 13889, - "end": 13891, + "start": 13924, + "end": 13926, "loc": { "start": { "line": 312, @@ -31813,8 +31813,8 @@ "updateContext": null }, "value": 10000, - "start": 13892, - "end": 13897, + "start": 13927, + "end": 13932, "loc": { "start": { "line": 312, @@ -31839,8 +31839,8 @@ "binop": null, "updateContext": null }, - "start": 13897, - "end": 13898, + "start": 13932, + "end": 13933, "loc": { "start": { "line": 312, @@ -31867,8 +31867,8 @@ "updateContext": null }, "value": "this", - "start": 13907, - "end": 13911, + "start": 13942, + "end": 13946, "loc": { "start": { "line": 313, @@ -31893,8 +31893,8 @@ "binop": null, "updateContext": null }, - "start": 13911, - "end": 13912, + "start": 13946, + "end": 13947, "loc": { "start": { "line": 313, @@ -31919,8 +31919,8 @@ "binop": null }, "value": "defaultLabelsOnWires", - "start": 13912, - "end": 13932, + "start": 13947, + "end": 13967, "loc": { "start": { "line": 313, @@ -31946,8 +31946,8 @@ "updateContext": null }, "value": "=", - "start": 13933, - "end": 13934, + "start": 13968, + "end": 13969, "loc": { "start": { "line": 313, @@ -31972,8 +31972,8 @@ "binop": null }, "value": "cfg", - "start": 13935, - "end": 13938, + "start": 13970, + "end": 13973, "loc": { "start": { "line": 313, @@ -31998,8 +31998,8 @@ "binop": null, "updateContext": null }, - "start": 13938, - "end": 13939, + "start": 13973, + "end": 13974, "loc": { "start": { "line": 313, @@ -32024,8 +32024,8 @@ "binop": null }, "value": "defaultLabelsOnWires", - "start": 13939, - "end": 13959, + "start": 13974, + "end": 13994, "loc": { "start": { "line": 313, @@ -32051,8 +32051,8 @@ "updateContext": null }, "value": "!==", - "start": 13960, - "end": 13963, + "start": 13995, + "end": 13998, "loc": { "start": { "line": 313, @@ -32079,8 +32079,8 @@ "updateContext": null }, "value": "false", - "start": 13964, - "end": 13969, + "start": 13999, + "end": 14004, "loc": { "start": { "line": 313, @@ -32105,8 +32105,8 @@ "binop": null, "updateContext": null }, - "start": 13969, - "end": 13970, + "start": 14004, + "end": 14005, "loc": { "start": { "line": 313, @@ -32133,8 +32133,8 @@ "updateContext": null }, "value": "this", - "start": 13980, - "end": 13984, + "start": 14015, + "end": 14019, "loc": { "start": { "line": 315, @@ -32159,8 +32159,8 @@ "binop": null, "updateContext": null }, - "start": 13984, - "end": 13985, + "start": 14019, + "end": 14020, "loc": { "start": { "line": 315, @@ -32185,8 +32185,8 @@ "binop": null }, "value": "_onMouseOver", - "start": 13985, - "end": 13997, + "start": 14020, + "end": 14032, "loc": { "start": { "line": 315, @@ -32212,8 +32212,8 @@ "updateContext": null }, "value": "=", - "start": 13998, - "end": 13999, + "start": 14033, + "end": 14034, "loc": { "start": { "line": 315, @@ -32237,8 +32237,8 @@ "postfix": false, "binop": null }, - "start": 14000, - "end": 14001, + "start": 14035, + "end": 14036, "loc": { "start": { "line": 315, @@ -32263,8 +32263,8 @@ "binop": null }, "value": "event", - "start": 14001, - "end": 14006, + "start": 14036, + "end": 14041, "loc": { "start": { "line": 315, @@ -32289,8 +32289,8 @@ "binop": null, "updateContext": null }, - "start": 14006, - "end": 14007, + "start": 14041, + "end": 14042, "loc": { "start": { "line": 315, @@ -32315,8 +32315,8 @@ "binop": null }, "value": "measurement", - "start": 14008, - "end": 14019, + "start": 14043, + "end": 14054, "loc": { "start": { "line": 315, @@ -32340,8 +32340,8 @@ "postfix": false, "binop": null }, - "start": 14019, - "end": 14020, + "start": 14054, + "end": 14055, "loc": { "start": { "line": 315, @@ -32366,8 +32366,8 @@ "binop": null, "updateContext": null }, - "start": 14021, - "end": 14023, + "start": 14056, + "end": 14058, "loc": { "start": { "line": 315, @@ -32391,8 +32391,8 @@ "postfix": false, "binop": null }, - "start": 14024, - "end": 14025, + "start": 14059, + "end": 14060, "loc": { "start": { "line": 315, @@ -32419,8 +32419,8 @@ "updateContext": null }, "value": "this", - "start": 14038, - "end": 14042, + "start": 14073, + "end": 14077, "loc": { "start": { "line": 316, @@ -32445,8 +32445,8 @@ "binop": null, "updateContext": null }, - "start": 14042, - "end": 14043, + "start": 14077, + "end": 14078, "loc": { "start": { "line": 316, @@ -32471,8 +32471,8 @@ "binop": null }, "value": "fire", - "start": 14043, - "end": 14047, + "start": 14078, + "end": 14082, "loc": { "start": { "line": 316, @@ -32496,8 +32496,8 @@ "postfix": false, "binop": null }, - "start": 14047, - "end": 14048, + "start": 14082, + "end": 14083, "loc": { "start": { "line": 316, @@ -32523,8 +32523,8 @@ "updateContext": null }, "value": "mouseOver", - "start": 14048, - "end": 14059, + "start": 14083, + "end": 14094, "loc": { "start": { "line": 316, @@ -32549,8 +32549,8 @@ "binop": null, "updateContext": null }, - "start": 14059, - "end": 14060, + "start": 14094, + "end": 14095, "loc": { "start": { "line": 316, @@ -32574,8 +32574,8 @@ "postfix": false, "binop": null }, - "start": 14061, - "end": 14062, + "start": 14096, + "end": 14097, "loc": { "start": { "line": 316, @@ -32600,8 +32600,8 @@ "binop": null }, "value": "plugin", - "start": 14079, - "end": 14085, + "start": 14114, + "end": 14120, "loc": { "start": { "line": 317, @@ -32626,8 +32626,8 @@ "binop": null, "updateContext": null }, - "start": 14085, - "end": 14086, + "start": 14120, + "end": 14121, "loc": { "start": { "line": 317, @@ -32654,8 +32654,8 @@ "updateContext": null }, "value": "this", - "start": 14087, - "end": 14091, + "start": 14122, + "end": 14126, "loc": { "start": { "line": 317, @@ -32680,8 +32680,8 @@ "binop": null, "updateContext": null }, - "start": 14091, - "end": 14092, + "start": 14126, + "end": 14127, "loc": { "start": { "line": 317, @@ -32706,8 +32706,8 @@ "binop": null }, "value": "distanceMeasurement", - "start": 14109, - "end": 14128, + "start": 14144, + "end": 14163, "loc": { "start": { "line": 318, @@ -32732,8 +32732,8 @@ "binop": null, "updateContext": null }, - "start": 14128, - "end": 14129, + "start": 14163, + "end": 14164, "loc": { "start": { "line": 318, @@ -32758,8 +32758,8 @@ "binop": null }, "value": "measurement", - "start": 14130, - "end": 14141, + "start": 14165, + "end": 14176, "loc": { "start": { "line": 318, @@ -32784,8 +32784,8 @@ "binop": null, "updateContext": null }, - "start": 14141, - "end": 14142, + "start": 14176, + "end": 14177, "loc": { "start": { "line": 318, @@ -32810,8 +32810,8 @@ "binop": null }, "value": "measurement", - "start": 14159, - "end": 14170, + "start": 14194, + "end": 14205, "loc": { "start": { "line": 319, @@ -32836,8 +32836,8 @@ "binop": null, "updateContext": null }, - "start": 14170, - "end": 14171, + "start": 14205, + "end": 14206, "loc": { "start": { "line": 319, @@ -32862,8 +32862,8 @@ "binop": null }, "value": "event", - "start": 14188, - "end": 14193, + "start": 14223, + "end": 14228, "loc": { "start": { "line": 320, @@ -32887,8 +32887,8 @@ "postfix": false, "binop": null }, - "start": 14206, - "end": 14207, + "start": 14241, + "end": 14242, "loc": { "start": { "line": 321, @@ -32912,8 +32912,8 @@ "postfix": false, "binop": null }, - "start": 14207, - "end": 14208, + "start": 14242, + "end": 14243, "loc": { "start": { "line": 321, @@ -32938,8 +32938,8 @@ "binop": null, "updateContext": null }, - "start": 14208, - "end": 14209, + "start": 14243, + "end": 14244, "loc": { "start": { "line": 321, @@ -32963,8 +32963,8 @@ "postfix": false, "binop": null }, - "start": 14218, - "end": 14219, + "start": 14253, + "end": 14254, "loc": { "start": { "line": 322, @@ -32991,8 +32991,8 @@ "updateContext": null }, "value": "this", - "start": 14229, - "end": 14233, + "start": 14264, + "end": 14268, "loc": { "start": { "line": 324, @@ -33017,8 +33017,8 @@ "binop": null, "updateContext": null }, - "start": 14233, - "end": 14234, + "start": 14268, + "end": 14269, "loc": { "start": { "line": 324, @@ -33043,8 +33043,8 @@ "binop": null }, "value": "_onMouseLeave", - "start": 14234, - "end": 14247, + "start": 14269, + "end": 14282, "loc": { "start": { "line": 324, @@ -33070,8 +33070,8 @@ "updateContext": null }, "value": "=", - "start": 14248, - "end": 14249, + "start": 14283, + "end": 14284, "loc": { "start": { "line": 324, @@ -33095,8 +33095,8 @@ "postfix": false, "binop": null }, - "start": 14250, - "end": 14251, + "start": 14285, + "end": 14286, "loc": { "start": { "line": 324, @@ -33121,8 +33121,8 @@ "binop": null }, "value": "event", - "start": 14251, - "end": 14256, + "start": 14286, + "end": 14291, "loc": { "start": { "line": 324, @@ -33147,8 +33147,8 @@ "binop": null, "updateContext": null }, - "start": 14256, - "end": 14257, + "start": 14291, + "end": 14292, "loc": { "start": { "line": 324, @@ -33173,8 +33173,8 @@ "binop": null }, "value": "measurement", - "start": 14258, - "end": 14269, + "start": 14293, + "end": 14304, "loc": { "start": { "line": 324, @@ -33198,8 +33198,8 @@ "postfix": false, "binop": null }, - "start": 14269, - "end": 14270, + "start": 14304, + "end": 14305, "loc": { "start": { "line": 324, @@ -33224,8 +33224,8 @@ "binop": null, "updateContext": null }, - "start": 14271, - "end": 14273, + "start": 14306, + "end": 14308, "loc": { "start": { "line": 324, @@ -33249,8 +33249,8 @@ "postfix": false, "binop": null }, - "start": 14274, - "end": 14275, + "start": 14309, + "end": 14310, "loc": { "start": { "line": 324, @@ -33277,8 +33277,8 @@ "updateContext": null }, "value": "this", - "start": 14288, - "end": 14292, + "start": 14323, + "end": 14327, "loc": { "start": { "line": 325, @@ -33303,8 +33303,8 @@ "binop": null, "updateContext": null }, - "start": 14292, - "end": 14293, + "start": 14327, + "end": 14328, "loc": { "start": { "line": 325, @@ -33329,8 +33329,8 @@ "binop": null }, "value": "fire", - "start": 14293, - "end": 14297, + "start": 14328, + "end": 14332, "loc": { "start": { "line": 325, @@ -33354,8 +33354,8 @@ "postfix": false, "binop": null }, - "start": 14297, - "end": 14298, + "start": 14332, + "end": 14333, "loc": { "start": { "line": 325, @@ -33381,8 +33381,8 @@ "updateContext": null }, "value": "mouseLeave", - "start": 14298, - "end": 14310, + "start": 14333, + "end": 14345, "loc": { "start": { "line": 325, @@ -33407,8 +33407,8 @@ "binop": null, "updateContext": null }, - "start": 14310, - "end": 14311, + "start": 14345, + "end": 14346, "loc": { "start": { "line": 325, @@ -33432,8 +33432,8 @@ "postfix": false, "binop": null }, - "start": 14312, - "end": 14313, + "start": 14347, + "end": 14348, "loc": { "start": { "line": 325, @@ -33458,8 +33458,8 @@ "binop": null }, "value": "plugin", - "start": 14330, - "end": 14336, + "start": 14365, + "end": 14371, "loc": { "start": { "line": 326, @@ -33484,8 +33484,8 @@ "binop": null, "updateContext": null }, - "start": 14336, - "end": 14337, + "start": 14371, + "end": 14372, "loc": { "start": { "line": 326, @@ -33512,8 +33512,8 @@ "updateContext": null }, "value": "this", - "start": 14338, - "end": 14342, + "start": 14373, + "end": 14377, "loc": { "start": { "line": 326, @@ -33538,8 +33538,8 @@ "binop": null, "updateContext": null }, - "start": 14342, - "end": 14343, + "start": 14377, + "end": 14378, "loc": { "start": { "line": 326, @@ -33564,8 +33564,8 @@ "binop": null }, "value": "distanceMeasurement", - "start": 14360, - "end": 14379, + "start": 14395, + "end": 14414, "loc": { "start": { "line": 327, @@ -33590,8 +33590,8 @@ "binop": null, "updateContext": null }, - "start": 14379, - "end": 14380, + "start": 14414, + "end": 14415, "loc": { "start": { "line": 327, @@ -33616,8 +33616,8 @@ "binop": null }, "value": "measurement", - "start": 14381, - "end": 14392, + "start": 14416, + "end": 14427, "loc": { "start": { "line": 327, @@ -33642,8 +33642,8 @@ "binop": null, "updateContext": null }, - "start": 14392, - "end": 14393, + "start": 14427, + "end": 14428, "loc": { "start": { "line": 327, @@ -33668,8 +33668,8 @@ "binop": null }, "value": "measurement", - "start": 14410, - "end": 14421, + "start": 14445, + "end": 14456, "loc": { "start": { "line": 328, @@ -33694,8 +33694,8 @@ "binop": null, "updateContext": null }, - "start": 14421, - "end": 14422, + "start": 14456, + "end": 14457, "loc": { "start": { "line": 328, @@ -33720,8 +33720,8 @@ "binop": null }, "value": "event", - "start": 14439, - "end": 14444, + "start": 14474, + "end": 14479, "loc": { "start": { "line": 329, @@ -33745,8 +33745,8 @@ "postfix": false, "binop": null }, - "start": 14457, - "end": 14458, + "start": 14492, + "end": 14493, "loc": { "start": { "line": 330, @@ -33770,8 +33770,8 @@ "postfix": false, "binop": null }, - "start": 14458, - "end": 14459, + "start": 14493, + "end": 14494, "loc": { "start": { "line": 330, @@ -33796,8 +33796,8 @@ "binop": null, "updateContext": null }, - "start": 14459, - "end": 14460, + "start": 14494, + "end": 14495, "loc": { "start": { "line": 330, @@ -33821,8 +33821,8 @@ "postfix": false, "binop": null }, - "start": 14469, - "end": 14470, + "start": 14504, + "end": 14505, "loc": { "start": { "line": 331, @@ -33847,8 +33847,8 @@ "binop": null, "updateContext": null }, - "start": 14470, - "end": 14471, + "start": 14505, + "end": 14506, "loc": { "start": { "line": 331, @@ -33875,8 +33875,8 @@ "updateContext": null }, "value": "this", - "start": 14481, - "end": 14485, + "start": 14516, + "end": 14520, "loc": { "start": { "line": 333, @@ -33901,8 +33901,8 @@ "binop": null, "updateContext": null }, - "start": 14485, - "end": 14486, + "start": 14520, + "end": 14521, "loc": { "start": { "line": 333, @@ -33927,8 +33927,8 @@ "binop": null }, "value": "_onContextMenu", - "start": 14486, - "end": 14500, + "start": 14521, + "end": 14535, "loc": { "start": { "line": 333, @@ -33954,8 +33954,8 @@ "updateContext": null }, "value": "=", - "start": 14501, - "end": 14502, + "start": 14536, + "end": 14537, "loc": { "start": { "line": 333, @@ -33979,8 +33979,8 @@ "postfix": false, "binop": null }, - "start": 14503, - "end": 14504, + "start": 14538, + "end": 14539, "loc": { "start": { "line": 333, @@ -34005,8 +34005,8 @@ "binop": null }, "value": "event", - "start": 14504, - "end": 14509, + "start": 14539, + "end": 14544, "loc": { "start": { "line": 333, @@ -34031,8 +34031,8 @@ "binop": null, "updateContext": null }, - "start": 14509, - "end": 14510, + "start": 14544, + "end": 14545, "loc": { "start": { "line": 333, @@ -34057,8 +34057,8 @@ "binop": null }, "value": "measurement", - "start": 14511, - "end": 14522, + "start": 14546, + "end": 14557, "loc": { "start": { "line": 333, @@ -34082,8 +34082,8 @@ "postfix": false, "binop": null }, - "start": 14522, - "end": 14523, + "start": 14557, + "end": 14558, "loc": { "start": { "line": 333, @@ -34108,8 +34108,8 @@ "binop": null, "updateContext": null }, - "start": 14524, - "end": 14526, + "start": 14559, + "end": 14561, "loc": { "start": { "line": 333, @@ -34133,8 +34133,8 @@ "postfix": false, "binop": null }, - "start": 14527, - "end": 14528, + "start": 14562, + "end": 14563, "loc": { "start": { "line": 333, @@ -34161,8 +34161,8 @@ "updateContext": null }, "value": "this", - "start": 14541, - "end": 14545, + "start": 14576, + "end": 14580, "loc": { "start": { "line": 334, @@ -34187,8 +34187,8 @@ "binop": null, "updateContext": null }, - "start": 14545, - "end": 14546, + "start": 14580, + "end": 14581, "loc": { "start": { "line": 334, @@ -34213,8 +34213,8 @@ "binop": null }, "value": "fire", - "start": 14546, - "end": 14550, + "start": 14581, + "end": 14585, "loc": { "start": { "line": 334, @@ -34238,8 +34238,8 @@ "postfix": false, "binop": null }, - "start": 14550, - "end": 14551, + "start": 14585, + "end": 14586, "loc": { "start": { "line": 334, @@ -34265,8 +34265,8 @@ "updateContext": null }, "value": "contextMenu", - "start": 14551, - "end": 14564, + "start": 14586, + "end": 14599, "loc": { "start": { "line": 334, @@ -34291,8 +34291,8 @@ "binop": null, "updateContext": null }, - "start": 14564, - "end": 14565, + "start": 14599, + "end": 14600, "loc": { "start": { "line": 334, @@ -34316,8 +34316,8 @@ "postfix": false, "binop": null }, - "start": 14566, - "end": 14567, + "start": 14601, + "end": 14602, "loc": { "start": { "line": 334, @@ -34342,8 +34342,8 @@ "binop": null }, "value": "plugin", - "start": 14584, - "end": 14590, + "start": 14619, + "end": 14625, "loc": { "start": { "line": 335, @@ -34368,8 +34368,8 @@ "binop": null, "updateContext": null }, - "start": 14590, - "end": 14591, + "start": 14625, + "end": 14626, "loc": { "start": { "line": 335, @@ -34396,8 +34396,8 @@ "updateContext": null }, "value": "this", - "start": 14592, - "end": 14596, + "start": 14627, + "end": 14631, "loc": { "start": { "line": 335, @@ -34422,8 +34422,8 @@ "binop": null, "updateContext": null }, - "start": 14596, - "end": 14597, + "start": 14631, + "end": 14632, "loc": { "start": { "line": 335, @@ -34448,8 +34448,8 @@ "binop": null }, "value": "distanceMeasurement", - "start": 14614, - "end": 14633, + "start": 14649, + "end": 14668, "loc": { "start": { "line": 336, @@ -34474,8 +34474,8 @@ "binop": null, "updateContext": null }, - "start": 14633, - "end": 14634, + "start": 14668, + "end": 14669, "loc": { "start": { "line": 336, @@ -34500,8 +34500,8 @@ "binop": null }, "value": "measurement", - "start": 14635, - "end": 14646, + "start": 14670, + "end": 14681, "loc": { "start": { "line": 336, @@ -34526,8 +34526,8 @@ "binop": null, "updateContext": null }, - "start": 14646, - "end": 14647, + "start": 14681, + "end": 14682, "loc": { "start": { "line": 336, @@ -34552,8 +34552,8 @@ "binop": null }, "value": "measurement", - "start": 14664, - "end": 14675, + "start": 14699, + "end": 14710, "loc": { "start": { "line": 337, @@ -34578,8 +34578,8 @@ "binop": null, "updateContext": null }, - "start": 14675, - "end": 14676, + "start": 14710, + "end": 14711, "loc": { "start": { "line": 337, @@ -34604,8 +34604,8 @@ "binop": null }, "value": "event", - "start": 14693, - "end": 14698, + "start": 14728, + "end": 14733, "loc": { "start": { "line": 338, @@ -34629,8 +34629,8 @@ "postfix": false, "binop": null }, - "start": 14711, - "end": 14712, + "start": 14746, + "end": 14747, "loc": { "start": { "line": 339, @@ -34654,8 +34654,8 @@ "postfix": false, "binop": null }, - "start": 14712, - "end": 14713, + "start": 14747, + "end": 14748, "loc": { "start": { "line": 339, @@ -34680,8 +34680,8 @@ "binop": null, "updateContext": null }, - "start": 14713, - "end": 14714, + "start": 14748, + "end": 14749, "loc": { "start": { "line": 339, @@ -34705,8 +34705,8 @@ "postfix": false, "binop": null }, - "start": 14723, - "end": 14724, + "start": 14758, + "end": 14759, "loc": { "start": { "line": 340, @@ -34731,8 +34731,8 @@ "binop": null, "updateContext": null }, - "start": 14724, - "end": 14725, + "start": 14759, + "end": 14760, "loc": { "start": { "line": 340, @@ -34756,8 +34756,8 @@ "postfix": false, "binop": null }, - "start": 14730, - "end": 14731, + "start": 14765, + "end": 14766, "loc": { "start": { "line": 341, @@ -34772,8 +34772,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n ", - "start": 14737, - "end": 14849, + "start": 14772, + "end": 14884, "loc": { "start": { "line": 343, @@ -34798,8 +34798,8 @@ "binop": null }, "value": "getContainerElement", - "start": 14854, - "end": 14873, + "start": 14889, + "end": 14908, "loc": { "start": { "line": 347, @@ -34823,8 +34823,8 @@ "postfix": false, "binop": null }, - "start": 14873, - "end": 14874, + "start": 14908, + "end": 14909, "loc": { "start": { "line": 347, @@ -34848,8 +34848,8 @@ "postfix": false, "binop": null }, - "start": 14874, - "end": 14875, + "start": 14909, + "end": 14910, "loc": { "start": { "line": 347, @@ -34873,8 +34873,8 @@ "postfix": false, "binop": null }, - "start": 14876, - "end": 14877, + "start": 14911, + "end": 14912, "loc": { "start": { "line": 347, @@ -34901,8 +34901,8 @@ "updateContext": null }, "value": "return", - "start": 14886, - "end": 14892, + "start": 14921, + "end": 14927, "loc": { "start": { "line": 348, @@ -34929,8 +34929,8 @@ "updateContext": null }, "value": "this", - "start": 14893, - "end": 14897, + "start": 14928, + "end": 14932, "loc": { "start": { "line": 348, @@ -34955,8 +34955,8 @@ "binop": null, "updateContext": null }, - "start": 14897, - "end": 14898, + "start": 14932, + "end": 14933, "loc": { "start": { "line": 348, @@ -34981,8 +34981,8 @@ "binop": null }, "value": "_container", - "start": 14898, - "end": 14908, + "start": 14933, + "end": 14943, "loc": { "start": { "line": 348, @@ -35007,8 +35007,8 @@ "binop": null, "updateContext": null }, - "start": 14908, - "end": 14909, + "start": 14943, + "end": 14944, "loc": { "start": { "line": 348, @@ -35032,8 +35032,8 @@ "postfix": false, "binop": null }, - "start": 14914, - "end": 14915, + "start": 14949, + "end": 14950, "loc": { "start": { "line": 349, @@ -35048,8 +35048,8 @@ { "type": "CommentBlock", "value": "*\n * @private\n ", - "start": 14921, - "end": 14948, + "start": 14956, + "end": 14983, "loc": { "start": { "line": 351, @@ -35074,8 +35074,8 @@ "binop": null }, "value": "send", - "start": 14953, - "end": 14957, + "start": 14988, + "end": 14992, "loc": { "start": { "line": 354, @@ -35099,8 +35099,8 @@ "postfix": false, "binop": null }, - "start": 14957, - "end": 14958, + "start": 14992, + "end": 14993, "loc": { "start": { "line": 354, @@ -35125,8 +35125,8 @@ "binop": null }, "value": "name", - "start": 14958, - "end": 14962, + "start": 14993, + "end": 14997, "loc": { "start": { "line": 354, @@ -35151,8 +35151,8 @@ "binop": null, "updateContext": null }, - "start": 14962, - "end": 14963, + "start": 14997, + "end": 14998, "loc": { "start": { "line": 354, @@ -35177,8 +35177,8 @@ "binop": null }, "value": "value", - "start": 14964, - "end": 14969, + "start": 14999, + "end": 15004, "loc": { "start": { "line": 354, @@ -35202,8 +35202,8 @@ "postfix": false, "binop": null }, - "start": 14969, - "end": 14970, + "start": 15004, + "end": 15005, "loc": { "start": { "line": 354, @@ -35227,8 +35227,8 @@ "postfix": false, "binop": null }, - "start": 14971, - "end": 14972, + "start": 15006, + "end": 15007, "loc": { "start": { "line": 354, @@ -35252,8 +35252,8 @@ "postfix": false, "binop": null }, - "start": 14978, - "end": 14979, + "start": 15013, + "end": 15014, "loc": { "start": { "line": 356, @@ -35268,8 +35268,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the PointerLens attached to this DistanceMeasurementsPlugin.\n * @returns {PointerCircle}\n ", - "start": 14985, - "end": 15101, + "start": 15020, + "end": 15136, "loc": { "start": { "line": 358, @@ -35294,8 +35294,8 @@ "binop": null }, "value": "get", - "start": 15106, - "end": 15109, + "start": 15141, + "end": 15144, "loc": { "start": { "line": 362, @@ -35320,8 +35320,8 @@ "binop": null }, "value": "pointerLens", - "start": 15110, - "end": 15121, + "start": 15145, + "end": 15156, "loc": { "start": { "line": 362, @@ -35345,8 +35345,8 @@ "postfix": false, "binop": null }, - "start": 15121, - "end": 15122, + "start": 15156, + "end": 15157, "loc": { "start": { "line": 362, @@ -35370,8 +35370,8 @@ "postfix": false, "binop": null }, - "start": 15122, - "end": 15123, + "start": 15157, + "end": 15158, "loc": { "start": { "line": 362, @@ -35395,8 +35395,8 @@ "postfix": false, "binop": null }, - "start": 15124, - "end": 15125, + "start": 15159, + "end": 15160, "loc": { "start": { "line": 362, @@ -35423,8 +35423,8 @@ "updateContext": null }, "value": "return", - "start": 15134, - "end": 15140, + "start": 15169, + "end": 15175, "loc": { "start": { "line": 363, @@ -35451,8 +35451,8 @@ "updateContext": null }, "value": "this", - "start": 15141, - "end": 15145, + "start": 15176, + "end": 15180, "loc": { "start": { "line": 363, @@ -35477,8 +35477,8 @@ "binop": null, "updateContext": null }, - "start": 15145, - "end": 15146, + "start": 15180, + "end": 15181, "loc": { "start": { "line": 363, @@ -35503,8 +35503,8 @@ "binop": null }, "value": "_pointerLens", - "start": 15146, - "end": 15158, + "start": 15181, + "end": 15193, "loc": { "start": { "line": 363, @@ -35529,8 +35529,8 @@ "binop": null, "updateContext": null }, - "start": 15158, - "end": 15159, + "start": 15193, + "end": 15194, "loc": { "start": { "line": 363, @@ -35554,8 +35554,8 @@ "postfix": false, "binop": null }, - "start": 15164, - "end": 15165, + "start": 15199, + "end": 15200, "loc": { "start": { "line": 364, @@ -35570,8 +35570,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the default {@link DistanceMeasurementsControl}.\n *\n * @type {DistanceMeasurementsControl}\n * @deprecated\n ", - "start": 15171, - "end": 15312, + "start": 15206, + "end": 15347, "loc": { "start": { "line": 366, @@ -35596,8 +35596,8 @@ "binop": null }, "value": "get", - "start": 15317, - "end": 15320, + "start": 15352, + "end": 15355, "loc": { "start": { "line": 372, @@ -35622,8 +35622,8 @@ "binop": null }, "value": "control", - "start": 15321, - "end": 15328, + "start": 15356, + "end": 15363, "loc": { "start": { "line": 372, @@ -35647,8 +35647,8 @@ "postfix": false, "binop": null }, - "start": 15328, - "end": 15329, + "start": 15363, + "end": 15364, "loc": { "start": { "line": 372, @@ -35672,8 +35672,8 @@ "postfix": false, "binop": null }, - "start": 15329, - "end": 15330, + "start": 15364, + "end": 15365, "loc": { "start": { "line": 372, @@ -35697,8 +35697,8 @@ "postfix": false, "binop": null }, - "start": 15331, - "end": 15332, + "start": 15366, + "end": 15367, "loc": { "start": { "line": 372, @@ -35725,8 +35725,8 @@ "updateContext": null }, "value": "if", - "start": 15341, - "end": 15343, + "start": 15376, + "end": 15378, "loc": { "start": { "line": 373, @@ -35750,8 +35750,8 @@ "postfix": false, "binop": null }, - "start": 15344, - "end": 15345, + "start": 15379, + "end": 15380, "loc": { "start": { "line": 373, @@ -35777,8 +35777,8 @@ "updateContext": null }, "value": "!", - "start": 15345, - "end": 15346, + "start": 15380, + "end": 15381, "loc": { "start": { "line": 373, @@ -35805,8 +35805,8 @@ "updateContext": null }, "value": "this", - "start": 15346, - "end": 15350, + "start": 15381, + "end": 15385, "loc": { "start": { "line": 373, @@ -35831,8 +35831,8 @@ "binop": null, "updateContext": null }, - "start": 15350, - "end": 15351, + "start": 15385, + "end": 15386, "loc": { "start": { "line": 373, @@ -35857,8 +35857,8 @@ "binop": null }, "value": "_defaultControl", - "start": 15351, - "end": 15366, + "start": 15386, + "end": 15401, "loc": { "start": { "line": 373, @@ -35882,8 +35882,8 @@ "postfix": false, "binop": null }, - "start": 15366, - "end": 15367, + "start": 15401, + "end": 15402, "loc": { "start": { "line": 373, @@ -35907,8 +35907,8 @@ "postfix": false, "binop": null }, - "start": 15368, - "end": 15369, + "start": 15403, + "end": 15404, "loc": { "start": { "line": 373, @@ -35935,8 +35935,8 @@ "updateContext": null }, "value": "this", - "start": 15382, - "end": 15386, + "start": 15417, + "end": 15421, "loc": { "start": { "line": 374, @@ -35961,8 +35961,8 @@ "binop": null, "updateContext": null }, - "start": 15386, - "end": 15387, + "start": 15421, + "end": 15422, "loc": { "start": { "line": 374, @@ -35987,8 +35987,8 @@ "binop": null }, "value": "_defaultControl", - "start": 15387, - "end": 15402, + "start": 15422, + "end": 15437, "loc": { "start": { "line": 374, @@ -36014,8 +36014,8 @@ "updateContext": null }, "value": "=", - "start": 15403, - "end": 15404, + "start": 15438, + "end": 15439, "loc": { "start": { "line": 374, @@ -36042,8 +36042,8 @@ "updateContext": null }, "value": "new", - "start": 15405, - "end": 15408, + "start": 15440, + "end": 15443, "loc": { "start": { "line": 374, @@ -36068,8 +36068,8 @@ "binop": null }, "value": "DistanceMeasurementsMouseControl", - "start": 15409, - "end": 15441, + "start": 15444, + "end": 15476, "loc": { "start": { "line": 374, @@ -36093,8 +36093,8 @@ "postfix": false, "binop": null }, - "start": 15441, - "end": 15442, + "start": 15476, + "end": 15477, "loc": { "start": { "line": 374, @@ -36121,8 +36121,8 @@ "updateContext": null }, "value": "this", - "start": 15442, - "end": 15446, + "start": 15477, + "end": 15481, "loc": { "start": { "line": 374, @@ -36147,8 +36147,8 @@ "binop": null, "updateContext": null }, - "start": 15446, - "end": 15447, + "start": 15481, + "end": 15482, "loc": { "start": { "line": 374, @@ -36172,8 +36172,8 @@ "postfix": false, "binop": null }, - "start": 15448, - "end": 15449, + "start": 15483, + "end": 15484, "loc": { "start": { "line": 374, @@ -36197,8 +36197,8 @@ "postfix": false, "binop": null }, - "start": 15449, - "end": 15450, + "start": 15484, + "end": 15485, "loc": { "start": { "line": 374, @@ -36222,8 +36222,8 @@ "postfix": false, "binop": null }, - "start": 15450, - "end": 15451, + "start": 15485, + "end": 15486, "loc": { "start": { "line": 374, @@ -36248,8 +36248,8 @@ "binop": null, "updateContext": null }, - "start": 15451, - "end": 15452, + "start": 15486, + "end": 15487, "loc": { "start": { "line": 374, @@ -36273,8 +36273,8 @@ "postfix": false, "binop": null }, - "start": 15461, - "end": 15462, + "start": 15496, + "end": 15497, "loc": { "start": { "line": 375, @@ -36301,8 +36301,8 @@ "updateContext": null }, "value": "return", - "start": 15471, - "end": 15477, + "start": 15506, + "end": 15512, "loc": { "start": { "line": 376, @@ -36329,8 +36329,8 @@ "updateContext": null }, "value": "this", - "start": 15478, - "end": 15482, + "start": 15513, + "end": 15517, "loc": { "start": { "line": 376, @@ -36355,8 +36355,8 @@ "binop": null, "updateContext": null }, - "start": 15482, - "end": 15483, + "start": 15517, + "end": 15518, "loc": { "start": { "line": 376, @@ -36381,8 +36381,8 @@ "binop": null }, "value": "_defaultControl", - "start": 15483, - "end": 15498, + "start": 15518, + "end": 15533, "loc": { "start": { "line": 376, @@ -36407,8 +36407,8 @@ "binop": null, "updateContext": null }, - "start": 15498, - "end": 15499, + "start": 15533, + "end": 15534, "loc": { "start": { "line": 376, @@ -36432,8 +36432,8 @@ "postfix": false, "binop": null }, - "start": 15504, - "end": 15505, + "start": 15539, + "end": 15540, "loc": { "start": { "line": 377, @@ -36448,8 +36448,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the existing {@link DistanceMeasurement}s, each mapped to its {@link DistanceMeasurement#id}.\n *\n * @type {{String:DistanceMeasurement}}\n ", - "start": 15511, - "end": 15679, + "start": 15546, + "end": 15714, "loc": { "start": { "line": 379, @@ -36474,8 +36474,8 @@ "binop": null }, "value": "get", - "start": 15684, - "end": 15687, + "start": 15719, + "end": 15722, "loc": { "start": { "line": 384, @@ -36500,8 +36500,8 @@ "binop": null }, "value": "measurements", - "start": 15688, - "end": 15700, + "start": 15723, + "end": 15735, "loc": { "start": { "line": 384, @@ -36525,8 +36525,8 @@ "postfix": false, "binop": null }, - "start": 15700, - "end": 15701, + "start": 15735, + "end": 15736, "loc": { "start": { "line": 384, @@ -36550,8 +36550,8 @@ "postfix": false, "binop": null }, - "start": 15701, - "end": 15702, + "start": 15736, + "end": 15737, "loc": { "start": { "line": 384, @@ -36575,8 +36575,8 @@ "postfix": false, "binop": null }, - "start": 15703, - "end": 15704, + "start": 15738, + "end": 15739, "loc": { "start": { "line": 384, @@ -36603,8 +36603,8 @@ "updateContext": null }, "value": "return", - "start": 15713, - "end": 15719, + "start": 15748, + "end": 15754, "loc": { "start": { "line": 385, @@ -36631,8 +36631,8 @@ "updateContext": null }, "value": "this", - "start": 15720, - "end": 15724, + "start": 15755, + "end": 15759, "loc": { "start": { "line": 385, @@ -36657,8 +36657,8 @@ "binop": null, "updateContext": null }, - "start": 15724, - "end": 15725, + "start": 15759, + "end": 15760, "loc": { "start": { "line": 385, @@ -36683,8 +36683,8 @@ "binop": null }, "value": "_measurements", - "start": 15725, - "end": 15738, + "start": 15760, + "end": 15773, "loc": { "start": { "line": 385, @@ -36709,8 +36709,8 @@ "binop": null, "updateContext": null }, - "start": 15738, - "end": 15739, + "start": 15773, + "end": 15774, "loc": { "start": { "line": 385, @@ -36734,8 +36734,8 @@ "postfix": false, "binop": null }, - "start": 15744, - "end": 15745, + "start": 15779, + "end": 15780, "loc": { "start": { "line": 386, @@ -36750,8 +36750,8 @@ { "type": "CommentBlock", "value": "*\n * Sets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n *\n * The axis wire's label is not shown when its length is less than this value.\n *\n * This is ````25```` pixels by default.\n *\n * Must not be less than ````1````.\n *\n * @type {number}\n ", - "start": 15751, - "end": 16072, + "start": 15786, + "end": 16107, "loc": { "start": { "line": 388, @@ -36776,8 +36776,8 @@ "binop": null }, "value": "set", - "start": 16077, - "end": 16080, + "start": 16112, + "end": 16115, "loc": { "start": { "line": 399, @@ -36802,8 +36802,8 @@ "binop": null }, "value": "labelMinAxisLength", - "start": 16081, - "end": 16099, + "start": 16116, + "end": 16134, "loc": { "start": { "line": 399, @@ -36827,8 +36827,8 @@ "postfix": false, "binop": null }, - "start": 16099, - "end": 16100, + "start": 16134, + "end": 16135, "loc": { "start": { "line": 399, @@ -36853,8 +36853,8 @@ "binop": null }, "value": "labelMinAxisLength", - "start": 16100, - "end": 16118, + "start": 16135, + "end": 16153, "loc": { "start": { "line": 399, @@ -36878,8 +36878,8 @@ "postfix": false, "binop": null }, - "start": 16118, - "end": 16119, + "start": 16153, + "end": 16154, "loc": { "start": { "line": 399, @@ -36903,8 +36903,8 @@ "postfix": false, "binop": null }, - "start": 16120, - "end": 16121, + "start": 16155, + "end": 16156, "loc": { "start": { "line": 399, @@ -36931,8 +36931,8 @@ "updateContext": null }, "value": "if", - "start": 16130, - "end": 16132, + "start": 16165, + "end": 16167, "loc": { "start": { "line": 400, @@ -36956,8 +36956,8 @@ "postfix": false, "binop": null }, - "start": 16133, - "end": 16134, + "start": 16168, + "end": 16169, "loc": { "start": { "line": 400, @@ -36982,8 +36982,8 @@ "binop": null }, "value": "labelMinAxisLength", - "start": 16134, - "end": 16152, + "start": 16169, + "end": 16187, "loc": { "start": { "line": 400, @@ -37009,8 +37009,8 @@ "updateContext": null }, "value": "<", - "start": 16153, - "end": 16154, + "start": 16188, + "end": 16189, "loc": { "start": { "line": 400, @@ -37036,8 +37036,8 @@ "updateContext": null }, "value": 1, - "start": 16155, - "end": 16156, + "start": 16190, + "end": 16191, "loc": { "start": { "line": 400, @@ -37061,8 +37061,8 @@ "postfix": false, "binop": null }, - "start": 16156, - "end": 16157, + "start": 16191, + "end": 16192, "loc": { "start": { "line": 400, @@ -37086,8 +37086,8 @@ "postfix": false, "binop": null }, - "start": 16158, - "end": 16159, + "start": 16193, + "end": 16194, "loc": { "start": { "line": 400, @@ -37114,8 +37114,8 @@ "updateContext": null }, "value": "this", - "start": 16172, - "end": 16176, + "start": 16207, + "end": 16211, "loc": { "start": { "line": 401, @@ -37140,8 +37140,8 @@ "binop": null, "updateContext": null }, - "start": 16176, - "end": 16177, + "start": 16211, + "end": 16212, "loc": { "start": { "line": 401, @@ -37166,8 +37166,8 @@ "binop": null }, "value": "error", - "start": 16177, - "end": 16182, + "start": 16212, + "end": 16217, "loc": { "start": { "line": 401, @@ -37191,8 +37191,8 @@ "postfix": false, "binop": null }, - "start": 16182, - "end": 16183, + "start": 16217, + "end": 16218, "loc": { "start": { "line": 401, @@ -37218,8 +37218,8 @@ "updateContext": null }, "value": "labelMinAxisLength must be >= 1; defaulting to 25", - "start": 16183, - "end": 16234, + "start": 16218, + "end": 16269, "loc": { "start": { "line": 401, @@ -37243,8 +37243,8 @@ "postfix": false, "binop": null }, - "start": 16234, - "end": 16235, + "start": 16269, + "end": 16270, "loc": { "start": { "line": 401, @@ -37269,8 +37269,8 @@ "binop": null, "updateContext": null }, - "start": 16235, - "end": 16236, + "start": 16270, + "end": 16271, "loc": { "start": { "line": 401, @@ -37295,8 +37295,8 @@ "binop": null }, "value": "labelMinAxisLength", - "start": 16249, - "end": 16267, + "start": 16284, + "end": 16302, "loc": { "start": { "line": 402, @@ -37322,8 +37322,8 @@ "updateContext": null }, "value": "=", - "start": 16268, - "end": 16269, + "start": 16303, + "end": 16304, "loc": { "start": { "line": 402, @@ -37349,8 +37349,8 @@ "updateContext": null }, "value": 25, - "start": 16270, - "end": 16272, + "start": 16305, + "end": 16307, "loc": { "start": { "line": 402, @@ -37375,8 +37375,8 @@ "binop": null, "updateContext": null }, - "start": 16272, - "end": 16273, + "start": 16307, + "end": 16308, "loc": { "start": { "line": 402, @@ -37400,8 +37400,8 @@ "postfix": false, "binop": null }, - "start": 16282, - "end": 16283, + "start": 16317, + "end": 16318, "loc": { "start": { "line": 403, @@ -37428,8 +37428,8 @@ "updateContext": null }, "value": "this", - "start": 16292, - "end": 16296, + "start": 16327, + "end": 16331, "loc": { "start": { "line": 404, @@ -37454,8 +37454,8 @@ "binop": null, "updateContext": null }, - "start": 16296, - "end": 16297, + "start": 16331, + "end": 16332, "loc": { "start": { "line": 404, @@ -37480,8 +37480,8 @@ "binop": null }, "value": "_labelMinAxisLength", - "start": 16297, - "end": 16316, + "start": 16332, + "end": 16351, "loc": { "start": { "line": 404, @@ -37507,8 +37507,8 @@ "updateContext": null }, "value": "=", - "start": 16317, - "end": 16318, + "start": 16352, + "end": 16353, "loc": { "start": { "line": 404, @@ -37533,8 +37533,8 @@ "binop": null }, "value": "labelMinAxisLength", - "start": 16319, - "end": 16337, + "start": 16354, + "end": 16372, "loc": { "start": { "line": 404, @@ -37560,8 +37560,8 @@ "updateContext": null }, "value": "||", - "start": 16338, - "end": 16340, + "start": 16373, + "end": 16375, "loc": { "start": { "line": 404, @@ -37587,8 +37587,8 @@ "updateContext": null }, "value": 25, - "start": 16341, - "end": 16343, + "start": 16376, + "end": 16378, "loc": { "start": { "line": 404, @@ -37613,8 +37613,8 @@ "binop": null, "updateContext": null }, - "start": 16343, - "end": 16344, + "start": 16378, + "end": 16379, "loc": { "start": { "line": 404, @@ -37638,8 +37638,8 @@ "postfix": false, "binop": null }, - "start": 16349, - "end": 16350, + "start": 16384, + "end": 16385, "loc": { "start": { "line": 405, @@ -37654,8 +37654,8 @@ { "type": "CommentBlock", "value": "*\n * Gets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @returns {number}\n ", - "start": 16356, - "end": 16484, + "start": 16391, + "end": 16519, "loc": { "start": { "line": 407, @@ -37680,8 +37680,8 @@ "binop": null }, "value": "get", - "start": 16489, - "end": 16492, + "start": 16524, + "end": 16527, "loc": { "start": { "line": 411, @@ -37706,8 +37706,8 @@ "binop": null }, "value": "labelMinAxisLength", - "start": 16493, - "end": 16511, + "start": 16528, + "end": 16546, "loc": { "start": { "line": 411, @@ -37731,8 +37731,8 @@ "postfix": false, "binop": null }, - "start": 16511, - "end": 16512, + "start": 16546, + "end": 16547, "loc": { "start": { "line": 411, @@ -37756,8 +37756,8 @@ "postfix": false, "binop": null }, - "start": 16512, - "end": 16513, + "start": 16547, + "end": 16548, "loc": { "start": { "line": 411, @@ -37781,8 +37781,8 @@ "postfix": false, "binop": null }, - "start": 16514, - "end": 16515, + "start": 16549, + "end": 16550, "loc": { "start": { "line": 411, @@ -37809,8 +37809,8 @@ "updateContext": null }, "value": "return", - "start": 16524, - "end": 16530, + "start": 16559, + "end": 16565, "loc": { "start": { "line": 412, @@ -37837,8 +37837,8 @@ "updateContext": null }, "value": "this", - "start": 16531, - "end": 16535, + "start": 16566, + "end": 16570, "loc": { "start": { "line": 412, @@ -37863,8 +37863,8 @@ "binop": null, "updateContext": null }, - "start": 16535, - "end": 16536, + "start": 16570, + "end": 16571, "loc": { "start": { "line": 412, @@ -37889,8 +37889,8 @@ "binop": null }, "value": "_labelMinAxisLength", - "start": 16536, - "end": 16555, + "start": 16571, + "end": 16590, "loc": { "start": { "line": 412, @@ -37915,8 +37915,8 @@ "binop": null, "updateContext": null }, - "start": 16555, - "end": 16556, + "start": 16590, + "end": 16591, "loc": { "start": { "line": 412, @@ -37940,8 +37940,8 @@ "postfix": false, "binop": null }, - "start": 16561, - "end": 16562, + "start": 16596, + "end": 16597, "loc": { "start": { "line": 413, @@ -37956,8 +37956,8 @@ { "type": "CommentBlock", "value": "*\n * Creates a {@link DistanceMeasurement}.\n *\n * The DistanceMeasurement is then registered by {@link DistanceMeasurement#id} in {@link DistanceMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link DistanceMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link DistanceMeasurement#id}. The DistanceMeasurement will be registered by this in {@link DistanceMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link DistanceMeasurement}.\n * @param {Boolean} [params.originVisible=true] Whether to initially show the {@link DistanceMeasurement} origin.\n * @param {Boolean} [params.targetVisible=true] Whether to initially show the {@link DistanceMeasurement} target.\n * @param {Boolean} [params.wireVisible=true] Whether to initially show the direct point-to-point wire between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.axisVisible=true] Whether to initially show the axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.xAxisVisible=true] Whether to initially show the X-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.yAxisVisible=true] Whether to initially show the Y-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.zAxisVisible=true] Whether to initially show the Z-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.labelsVisible=true] Whether to initially show the labels.\n * @param {string} [params.color] The color of the length dot, wire and label.\n * @param {Boolean} [params.labelsOnWires=true] Determines if labels will be set on wires or one below the other.\n * @returns {DistanceMeasurement} The new {@link DistanceMeasurement}.\n ", - "start": 16568, - "end": 19039, + "start": 16603, + "end": 19074, "loc": { "start": { "line": 415, @@ -37982,8 +37982,8 @@ "binop": null }, "value": "createMeasurement", - "start": 19044, - "end": 19061, + "start": 19079, + "end": 19096, "loc": { "start": { "line": 439, @@ -38007,8 +38007,8 @@ "postfix": false, "binop": null }, - "start": 19061, - "end": 19062, + "start": 19096, + "end": 19097, "loc": { "start": { "line": 439, @@ -38033,8 +38033,8 @@ "binop": null }, "value": "params", - "start": 19062, - "end": 19068, + "start": 19097, + "end": 19103, "loc": { "start": { "line": 439, @@ -38060,8 +38060,8 @@ "updateContext": null }, "value": "=", - "start": 19069, - "end": 19070, + "start": 19104, + "end": 19105, "loc": { "start": { "line": 439, @@ -38085,8 +38085,8 @@ "postfix": false, "binop": null }, - "start": 19071, - "end": 19072, + "start": 19106, + "end": 19107, "loc": { "start": { "line": 439, @@ -38110,8 +38110,8 @@ "postfix": false, "binop": null }, - "start": 19072, - "end": 19073, + "start": 19107, + "end": 19108, "loc": { "start": { "line": 439, @@ -38135,8 +38135,8 @@ "postfix": false, "binop": null }, - "start": 19073, - "end": 19074, + "start": 19108, + "end": 19109, "loc": { "start": { "line": 439, @@ -38160,8 +38160,8 @@ "postfix": false, "binop": null }, - "start": 19075, - "end": 19076, + "start": 19110, + "end": 19111, "loc": { "start": { "line": 439, @@ -38188,8 +38188,8 @@ "updateContext": null }, "value": "if", - "start": 19085, - "end": 19087, + "start": 19120, + "end": 19122, "loc": { "start": { "line": 440, @@ -38213,8 +38213,8 @@ "postfix": false, "binop": null }, - "start": 19088, - "end": 19089, + "start": 19123, + "end": 19124, "loc": { "start": { "line": 440, @@ -38241,8 +38241,8 @@ "updateContext": null }, "value": "this", - "start": 19089, - "end": 19093, + "start": 19124, + "end": 19128, "loc": { "start": { "line": 440, @@ -38267,8 +38267,8 @@ "binop": null, "updateContext": null }, - "start": 19093, - "end": 19094, + "start": 19128, + "end": 19129, "loc": { "start": { "line": 440, @@ -38293,8 +38293,8 @@ "binop": null }, "value": "viewer", - "start": 19094, - "end": 19100, + "start": 19129, + "end": 19135, "loc": { "start": { "line": 440, @@ -38319,8 +38319,8 @@ "binop": null, "updateContext": null }, - "start": 19100, - "end": 19101, + "start": 19135, + "end": 19136, "loc": { "start": { "line": 440, @@ -38345,8 +38345,8 @@ "binop": null }, "value": "scene", - "start": 19101, - "end": 19106, + "start": 19136, + "end": 19141, "loc": { "start": { "line": 440, @@ -38371,8 +38371,8 @@ "binop": null, "updateContext": null }, - "start": 19106, - "end": 19107, + "start": 19141, + "end": 19142, "loc": { "start": { "line": 440, @@ -38397,8 +38397,8 @@ "binop": null }, "value": "components", - "start": 19107, - "end": 19117, + "start": 19142, + "end": 19152, "loc": { "start": { "line": 440, @@ -38423,8 +38423,8 @@ "binop": null, "updateContext": null }, - "start": 19117, - "end": 19118, + "start": 19152, + "end": 19153, "loc": { "start": { "line": 440, @@ -38449,8 +38449,8 @@ "binop": null }, "value": "params", - "start": 19118, - "end": 19124, + "start": 19153, + "end": 19159, "loc": { "start": { "line": 440, @@ -38475,8 +38475,8 @@ "binop": null, "updateContext": null }, - "start": 19124, - "end": 19125, + "start": 19159, + "end": 19160, "loc": { "start": { "line": 440, @@ -38501,8 +38501,8 @@ "binop": null }, "value": "id", - "start": 19125, - "end": 19127, + "start": 19160, + "end": 19162, "loc": { "start": { "line": 440, @@ -38527,8 +38527,8 @@ "binop": null, "updateContext": null }, - "start": 19127, - "end": 19128, + "start": 19162, + "end": 19163, "loc": { "start": { "line": 440, @@ -38552,8 +38552,8 @@ "postfix": false, "binop": null }, - "start": 19128, - "end": 19129, + "start": 19163, + "end": 19164, "loc": { "start": { "line": 440, @@ -38577,8 +38577,8 @@ "postfix": false, "binop": null }, - "start": 19130, - "end": 19131, + "start": 19165, + "end": 19166, "loc": { "start": { "line": 440, @@ -38605,8 +38605,8 @@ "updateContext": null }, "value": "this", - "start": 19144, - "end": 19148, + "start": 19179, + "end": 19183, "loc": { "start": { "line": 441, @@ -38631,8 +38631,8 @@ "binop": null, "updateContext": null }, - "start": 19148, - "end": 19149, + "start": 19183, + "end": 19184, "loc": { "start": { "line": 441, @@ -38657,8 +38657,8 @@ "binop": null }, "value": "error", - "start": 19149, - "end": 19154, + "start": 19184, + "end": 19189, "loc": { "start": { "line": 441, @@ -38682,8 +38682,8 @@ "postfix": false, "binop": null }, - "start": 19154, - "end": 19155, + "start": 19189, + "end": 19190, "loc": { "start": { "line": 441, @@ -38709,8 +38709,8 @@ "updateContext": null }, "value": "Viewer scene component with this ID already exists: ", - "start": 19155, - "end": 19209, + "start": 19190, + "end": 19244, "loc": { "start": { "line": 441, @@ -38736,8 +38736,8 @@ "updateContext": null }, "value": "+", - "start": 19210, - "end": 19211, + "start": 19245, + "end": 19246, "loc": { "start": { "line": 441, @@ -38762,8 +38762,8 @@ "binop": null }, "value": "params", - "start": 19212, - "end": 19218, + "start": 19247, + "end": 19253, "loc": { "start": { "line": 441, @@ -38788,8 +38788,8 @@ "binop": null, "updateContext": null }, - "start": 19218, - "end": 19219, + "start": 19253, + "end": 19254, "loc": { "start": { "line": 441, @@ -38814,8 +38814,8 @@ "binop": null }, "value": "id", - "start": 19219, - "end": 19221, + "start": 19254, + "end": 19256, "loc": { "start": { "line": 441, @@ -38839,8 +38839,8 @@ "postfix": false, "binop": null }, - "start": 19221, - "end": 19222, + "start": 19256, + "end": 19257, "loc": { "start": { "line": 441, @@ -38865,8 +38865,8 @@ "binop": null, "updateContext": null }, - "start": 19222, - "end": 19223, + "start": 19257, + "end": 19258, "loc": { "start": { "line": 441, @@ -38893,8 +38893,8 @@ "updateContext": null }, "value": "delete", - "start": 19236, - "end": 19242, + "start": 19271, + "end": 19277, "loc": { "start": { "line": 442, @@ -38919,8 +38919,8 @@ "binop": null }, "value": "params", - "start": 19243, - "end": 19249, + "start": 19278, + "end": 19284, "loc": { "start": { "line": 442, @@ -38945,8 +38945,8 @@ "binop": null, "updateContext": null }, - "start": 19249, - "end": 19250, + "start": 19284, + "end": 19285, "loc": { "start": { "line": 442, @@ -38971,8 +38971,8 @@ "binop": null }, "value": "id", - "start": 19250, - "end": 19252, + "start": 19285, + "end": 19287, "loc": { "start": { "line": 442, @@ -38997,8 +38997,8 @@ "binop": null, "updateContext": null }, - "start": 19252, - "end": 19253, + "start": 19287, + "end": 19288, "loc": { "start": { "line": 442, @@ -39022,8 +39022,8 @@ "postfix": false, "binop": null }, - "start": 19262, - "end": 19263, + "start": 19297, + "end": 19298, "loc": { "start": { "line": 443, @@ -39050,8 +39050,8 @@ "updateContext": null }, "value": "const", - "start": 19272, - "end": 19277, + "start": 19307, + "end": 19312, "loc": { "start": { "line": 444, @@ -39076,8 +39076,8 @@ "binop": null }, "value": "origin", - "start": 19278, - "end": 19284, + "start": 19313, + "end": 19319, "loc": { "start": { "line": 444, @@ -39103,8 +39103,8 @@ "updateContext": null }, "value": "=", - "start": 19285, - "end": 19286, + "start": 19320, + "end": 19321, "loc": { "start": { "line": 444, @@ -39129,8 +39129,8 @@ "binop": null }, "value": "params", - "start": 19287, - "end": 19293, + "start": 19322, + "end": 19328, "loc": { "start": { "line": 444, @@ -39155,8 +39155,8 @@ "binop": null, "updateContext": null }, - "start": 19293, - "end": 19294, + "start": 19328, + "end": 19329, "loc": { "start": { "line": 444, @@ -39181,8 +39181,8 @@ "binop": null }, "value": "origin", - "start": 19294, - "end": 19300, + "start": 19329, + "end": 19335, "loc": { "start": { "line": 444, @@ -39207,8 +39207,8 @@ "binop": null, "updateContext": null }, - "start": 19300, - "end": 19301, + "start": 19335, + "end": 19336, "loc": { "start": { "line": 444, @@ -39235,8 +39235,8 @@ "updateContext": null }, "value": "const", - "start": 19310, - "end": 19315, + "start": 19345, + "end": 19350, "loc": { "start": { "line": 445, @@ -39261,8 +39261,8 @@ "binop": null }, "value": "target", - "start": 19316, - "end": 19322, + "start": 19351, + "end": 19357, "loc": { "start": { "line": 445, @@ -39288,8 +39288,8 @@ "updateContext": null }, "value": "=", - "start": 19323, - "end": 19324, + "start": 19358, + "end": 19359, "loc": { "start": { "line": 445, @@ -39314,8 +39314,8 @@ "binop": null }, "value": "params", - "start": 19325, - "end": 19331, + "start": 19360, + "end": 19366, "loc": { "start": { "line": 445, @@ -39340,8 +39340,8 @@ "binop": null, "updateContext": null }, - "start": 19331, - "end": 19332, + "start": 19366, + "end": 19367, "loc": { "start": { "line": 445, @@ -39366,8 +39366,8 @@ "binop": null }, "value": "target", - "start": 19332, - "end": 19338, + "start": 19367, + "end": 19373, "loc": { "start": { "line": 445, @@ -39392,8 +39392,8 @@ "binop": null, "updateContext": null }, - "start": 19338, - "end": 19339, + "start": 19373, + "end": 19374, "loc": { "start": { "line": 445, @@ -39420,8 +39420,8 @@ "updateContext": null }, "value": "const", - "start": 19348, - "end": 19353, + "start": 19383, + "end": 19388, "loc": { "start": { "line": 446, @@ -39446,8 +39446,8 @@ "binop": null }, "value": "measurement", - "start": 19354, - "end": 19365, + "start": 19389, + "end": 19400, "loc": { "start": { "line": 446, @@ -39473,8 +39473,8 @@ "updateContext": null }, "value": "=", - "start": 19366, - "end": 19367, + "start": 19401, + "end": 19402, "loc": { "start": { "line": 446, @@ -39501,8 +39501,8 @@ "updateContext": null }, "value": "new", - "start": 19368, - "end": 19371, + "start": 19403, + "end": 19406, "loc": { "start": { "line": 446, @@ -39527,8 +39527,8 @@ "binop": null }, "value": "DistanceMeasurement", - "start": 19372, - "end": 19391, + "start": 19407, + "end": 19426, "loc": { "start": { "line": 446, @@ -39552,8 +39552,8 @@ "postfix": false, "binop": null }, - "start": 19391, - "end": 19392, + "start": 19426, + "end": 19427, "loc": { "start": { "line": 446, @@ -39580,8 +39580,8 @@ "updateContext": null }, "value": "this", - "start": 19392, - "end": 19396, + "start": 19427, + "end": 19431, "loc": { "start": { "line": 446, @@ -39606,8 +39606,8 @@ "binop": null, "updateContext": null }, - "start": 19396, - "end": 19397, + "start": 19431, + "end": 19432, "loc": { "start": { "line": 446, @@ -39631,8 +39631,8 @@ "postfix": false, "binop": null }, - "start": 19398, - "end": 19399, + "start": 19433, + "end": 19434, "loc": { "start": { "line": 446, @@ -39657,8 +39657,8 @@ "binop": null }, "value": "id", - "start": 19412, - "end": 19414, + "start": 19447, + "end": 19449, "loc": { "start": { "line": 447, @@ -39683,8 +39683,8 @@ "binop": null, "updateContext": null }, - "start": 19414, - "end": 19415, + "start": 19449, + "end": 19450, "loc": { "start": { "line": 447, @@ -39709,8 +39709,8 @@ "binop": null }, "value": "params", - "start": 19416, - "end": 19422, + "start": 19451, + "end": 19457, "loc": { "start": { "line": 447, @@ -39735,8 +39735,8 @@ "binop": null, "updateContext": null }, - "start": 19422, - "end": 19423, + "start": 19457, + "end": 19458, "loc": { "start": { "line": 447, @@ -39761,8 +39761,8 @@ "binop": null }, "value": "id", - "start": 19423, - "end": 19425, + "start": 19458, + "end": 19460, "loc": { "start": { "line": 447, @@ -39787,8 +39787,8 @@ "binop": null, "updateContext": null }, - "start": 19425, - "end": 19426, + "start": 19460, + "end": 19461, "loc": { "start": { "line": 447, @@ -39813,8 +39813,8 @@ "binop": null }, "value": "plugin", - "start": 19439, - "end": 19445, + "start": 19474, + "end": 19480, "loc": { "start": { "line": 448, @@ -39839,8 +39839,8 @@ "binop": null, "updateContext": null }, - "start": 19445, - "end": 19446, + "start": 19480, + "end": 19481, "loc": { "start": { "line": 448, @@ -39867,8 +39867,8 @@ "updateContext": null }, "value": "this", - "start": 19447, - "end": 19451, + "start": 19482, + "end": 19486, "loc": { "start": { "line": 448, @@ -39893,8 +39893,8 @@ "binop": null, "updateContext": null }, - "start": 19451, - "end": 19452, + "start": 19486, + "end": 19487, "loc": { "start": { "line": 448, @@ -39919,8 +39919,8 @@ "binop": null }, "value": "container", - "start": 19465, - "end": 19474, + "start": 19500, + "end": 19509, "loc": { "start": { "line": 449, @@ -39945,8 +39945,8 @@ "binop": null, "updateContext": null }, - "start": 19474, - "end": 19475, + "start": 19509, + "end": 19510, "loc": { "start": { "line": 449, @@ -39973,8 +39973,8 @@ "updateContext": null }, "value": "this", - "start": 19476, - "end": 19480, + "start": 19511, + "end": 19515, "loc": { "start": { "line": 449, @@ -39999,8 +39999,8 @@ "binop": null, "updateContext": null }, - "start": 19480, - "end": 19481, + "start": 19515, + "end": 19516, "loc": { "start": { "line": 449, @@ -40025,8 +40025,8 @@ "binop": null }, "value": "_container", - "start": 19481, - "end": 19491, + "start": 19516, + "end": 19526, "loc": { "start": { "line": 449, @@ -40051,8 +40051,8 @@ "binop": null, "updateContext": null }, - "start": 19491, - "end": 19492, + "start": 19526, + "end": 19527, "loc": { "start": { "line": 449, @@ -40077,8 +40077,8 @@ "binop": null }, "value": "origin", - "start": 19505, - "end": 19511, + "start": 19540, + "end": 19546, "loc": { "start": { "line": 450, @@ -40103,8 +40103,8 @@ "binop": null, "updateContext": null }, - "start": 19511, - "end": 19512, + "start": 19546, + "end": 19547, "loc": { "start": { "line": 450, @@ -40128,8 +40128,8 @@ "postfix": false, "binop": null }, - "start": 19513, - "end": 19514, + "start": 19548, + "end": 19549, "loc": { "start": { "line": 450, @@ -40154,8 +40154,8 @@ "binop": null }, "value": "entity", - "start": 19531, - "end": 19537, + "start": 19566, + "end": 19572, "loc": { "start": { "line": 451, @@ -40180,8 +40180,8 @@ "binop": null, "updateContext": null }, - "start": 19537, - "end": 19538, + "start": 19572, + "end": 19573, "loc": { "start": { "line": 451, @@ -40206,8 +40206,8 @@ "binop": null }, "value": "origin", - "start": 19539, - "end": 19545, + "start": 19574, + "end": 19580, "loc": { "start": { "line": 451, @@ -40232,8 +40232,8 @@ "binop": null, "updateContext": null }, - "start": 19545, - "end": 19546, + "start": 19580, + "end": 19581, "loc": { "start": { "line": 451, @@ -40258,8 +40258,8 @@ "binop": null }, "value": "entity", - "start": 19546, - "end": 19552, + "start": 19581, + "end": 19587, "loc": { "start": { "line": 451, @@ -40284,8 +40284,8 @@ "binop": null, "updateContext": null }, - "start": 19552, - "end": 19553, + "start": 19587, + "end": 19588, "loc": { "start": { "line": 451, @@ -40310,8 +40310,8 @@ "binop": null }, "value": "worldPos", - "start": 19570, - "end": 19578, + "start": 19605, + "end": 19613, "loc": { "start": { "line": 452, @@ -40336,8 +40336,8 @@ "binop": null, "updateContext": null }, - "start": 19578, - "end": 19579, + "start": 19613, + "end": 19614, "loc": { "start": { "line": 452, @@ -40362,8 +40362,8 @@ "binop": null }, "value": "origin", - "start": 19580, - "end": 19586, + "start": 19615, + "end": 19621, "loc": { "start": { "line": 452, @@ -40388,8 +40388,8 @@ "binop": null, "updateContext": null }, - "start": 19586, - "end": 19587, + "start": 19621, + "end": 19622, "loc": { "start": { "line": 452, @@ -40414,8 +40414,8 @@ "binop": null }, "value": "worldPos", - "start": 19587, - "end": 19595, + "start": 19622, + "end": 19630, "loc": { "start": { "line": 452, @@ -40439,8 +40439,8 @@ "postfix": false, "binop": null }, - "start": 19608, - "end": 19609, + "start": 19643, + "end": 19644, "loc": { "start": { "line": 453, @@ -40465,8 +40465,8 @@ "binop": null, "updateContext": null }, - "start": 19609, - "end": 19610, + "start": 19644, + "end": 19645, "loc": { "start": { "line": 453, @@ -40491,8 +40491,8 @@ "binop": null }, "value": "target", - "start": 19623, - "end": 19629, + "start": 19658, + "end": 19664, "loc": { "start": { "line": 454, @@ -40517,8 +40517,8 @@ "binop": null, "updateContext": null }, - "start": 19629, - "end": 19630, + "start": 19664, + "end": 19665, "loc": { "start": { "line": 454, @@ -40542,8 +40542,8 @@ "postfix": false, "binop": null }, - "start": 19631, - "end": 19632, + "start": 19666, + "end": 19667, "loc": { "start": { "line": 454, @@ -40568,8 +40568,8 @@ "binop": null }, "value": "entity", - "start": 19649, - "end": 19655, + "start": 19684, + "end": 19690, "loc": { "start": { "line": 455, @@ -40594,8 +40594,8 @@ "binop": null, "updateContext": null }, - "start": 19655, - "end": 19656, + "start": 19690, + "end": 19691, "loc": { "start": { "line": 455, @@ -40620,8 +40620,8 @@ "binop": null }, "value": "target", - "start": 19657, - "end": 19663, + "start": 19692, + "end": 19698, "loc": { "start": { "line": 455, @@ -40646,8 +40646,8 @@ "binop": null, "updateContext": null }, - "start": 19663, - "end": 19664, + "start": 19698, + "end": 19699, "loc": { "start": { "line": 455, @@ -40672,8 +40672,8 @@ "binop": null }, "value": "entity", - "start": 19664, - "end": 19670, + "start": 19699, + "end": 19705, "loc": { "start": { "line": 455, @@ -40698,8 +40698,8 @@ "binop": null, "updateContext": null }, - "start": 19670, - "end": 19671, + "start": 19705, + "end": 19706, "loc": { "start": { "line": 455, @@ -40724,8 +40724,8 @@ "binop": null }, "value": "worldPos", - "start": 19688, - "end": 19696, + "start": 19723, + "end": 19731, "loc": { "start": { "line": 456, @@ -40750,8 +40750,8 @@ "binop": null, "updateContext": null }, - "start": 19696, - "end": 19697, + "start": 19731, + "end": 19732, "loc": { "start": { "line": 456, @@ -40776,8 +40776,8 @@ "binop": null }, "value": "target", - "start": 19698, - "end": 19704, + "start": 19733, + "end": 19739, "loc": { "start": { "line": 456, @@ -40802,8 +40802,8 @@ "binop": null, "updateContext": null }, - "start": 19704, - "end": 19705, + "start": 19739, + "end": 19740, "loc": { "start": { "line": 456, @@ -40828,8 +40828,8 @@ "binop": null }, "value": "worldPos", - "start": 19705, - "end": 19713, + "start": 19740, + "end": 19748, "loc": { "start": { "line": 456, @@ -40853,8 +40853,8 @@ "postfix": false, "binop": null }, - "start": 19726, - "end": 19727, + "start": 19761, + "end": 19762, "loc": { "start": { "line": 457, @@ -40879,8 +40879,8 @@ "binop": null, "updateContext": null }, - "start": 19727, - "end": 19728, + "start": 19762, + "end": 19763, "loc": { "start": { "line": 457, @@ -40905,8 +40905,8 @@ "binop": null }, "value": "visible", - "start": 19741, - "end": 19748, + "start": 19776, + "end": 19783, "loc": { "start": { "line": 458, @@ -40931,8 +40931,8 @@ "binop": null, "updateContext": null }, - "start": 19748, - "end": 19749, + "start": 19783, + "end": 19784, "loc": { "start": { "line": 458, @@ -40957,8 +40957,8 @@ "binop": null }, "value": "params", - "start": 19750, - "end": 19756, + "start": 19785, + "end": 19791, "loc": { "start": { "line": 458, @@ -40983,8 +40983,8 @@ "binop": null, "updateContext": null }, - "start": 19756, - "end": 19757, + "start": 19791, + "end": 19792, "loc": { "start": { "line": 458, @@ -41009,8 +41009,8 @@ "binop": null }, "value": "visible", - "start": 19757, - "end": 19764, + "start": 19792, + "end": 19799, "loc": { "start": { "line": 458, @@ -41035,8 +41035,8 @@ "binop": null, "updateContext": null }, - "start": 19764, - "end": 19765, + "start": 19799, + "end": 19800, "loc": { "start": { "line": 458, @@ -41061,8 +41061,8 @@ "binop": null }, "value": "wireVisible", - "start": 19778, - "end": 19789, + "start": 19813, + "end": 19824, "loc": { "start": { "line": 459, @@ -41087,8 +41087,8 @@ "binop": null, "updateContext": null }, - "start": 19789, - "end": 19790, + "start": 19824, + "end": 19825, "loc": { "start": { "line": 459, @@ -41113,8 +41113,8 @@ "binop": null }, "value": "params", - "start": 19791, - "end": 19797, + "start": 19826, + "end": 19832, "loc": { "start": { "line": 459, @@ -41139,8 +41139,8 @@ "binop": null, "updateContext": null }, - "start": 19797, - "end": 19798, + "start": 19832, + "end": 19833, "loc": { "start": { "line": 459, @@ -41165,8 +41165,8 @@ "binop": null }, "value": "wireVisible", - "start": 19798, - "end": 19809, + "start": 19833, + "end": 19844, "loc": { "start": { "line": 459, @@ -41191,8 +41191,8 @@ "binop": null, "updateContext": null }, - "start": 19809, - "end": 19810, + "start": 19844, + "end": 19845, "loc": { "start": { "line": 459, @@ -41217,8 +41217,8 @@ "binop": null }, "value": "axisVisible", - "start": 19823, - "end": 19834, + "start": 19858, + "end": 19869, "loc": { "start": { "line": 460, @@ -41243,8 +41243,8 @@ "binop": null, "updateContext": null }, - "start": 19834, - "end": 19835, + "start": 19869, + "end": 19870, "loc": { "start": { "line": 460, @@ -41269,8 +41269,8 @@ "binop": null }, "value": "params", - "start": 19836, - "end": 19842, + "start": 19871, + "end": 19877, "loc": { "start": { "line": 460, @@ -41295,8 +41295,8 @@ "binop": null, "updateContext": null }, - "start": 19842, - "end": 19843, + "start": 19877, + "end": 19878, "loc": { "start": { "line": 460, @@ -41321,8 +41321,8 @@ "binop": null }, "value": "axisVisible", - "start": 19843, - "end": 19854, + "start": 19878, + "end": 19889, "loc": { "start": { "line": 460, @@ -41348,8 +41348,8 @@ "updateContext": null }, "value": "!==", - "start": 19855, - "end": 19858, + "start": 19890, + "end": 19893, "loc": { "start": { "line": 460, @@ -41376,8 +41376,8 @@ "updateContext": null }, "value": "false", - "start": 19859, - "end": 19864, + "start": 19894, + "end": 19899, "loc": { "start": { "line": 460, @@ -41403,8 +41403,8 @@ "updateContext": null }, "value": "&&", - "start": 19865, - "end": 19867, + "start": 19900, + "end": 19902, "loc": { "start": { "line": 460, @@ -41431,8 +41431,8 @@ "updateContext": null }, "value": "this", - "start": 19868, - "end": 19872, + "start": 19903, + "end": 19907, "loc": { "start": { "line": 460, @@ -41457,8 +41457,8 @@ "binop": null, "updateContext": null }, - "start": 19872, - "end": 19873, + "start": 19907, + "end": 19908, "loc": { "start": { "line": 460, @@ -41483,8 +41483,8 @@ "binop": null }, "value": "defaultAxisVisible", - "start": 19873, - "end": 19891, + "start": 19908, + "end": 19926, "loc": { "start": { "line": 460, @@ -41510,8 +41510,8 @@ "updateContext": null }, "value": "!==", - "start": 19892, - "end": 19895, + "start": 19927, + "end": 19930, "loc": { "start": { "line": 460, @@ -41538,8 +41538,8 @@ "updateContext": null }, "value": "false", - "start": 19896, - "end": 19901, + "start": 19931, + "end": 19936, "loc": { "start": { "line": 460, @@ -41564,8 +41564,8 @@ "binop": null, "updateContext": null }, - "start": 19901, - "end": 19902, + "start": 19936, + "end": 19937, "loc": { "start": { "line": 460, @@ -41590,8 +41590,8 @@ "binop": null }, "value": "xAxisVisible", - "start": 19915, - "end": 19927, + "start": 19950, + "end": 19962, "loc": { "start": { "line": 461, @@ -41616,8 +41616,8 @@ "binop": null, "updateContext": null }, - "start": 19927, - "end": 19928, + "start": 19962, + "end": 19963, "loc": { "start": { "line": 461, @@ -41642,8 +41642,8 @@ "binop": null }, "value": "params", - "start": 19929, - "end": 19935, + "start": 19964, + "end": 19970, "loc": { "start": { "line": 461, @@ -41668,8 +41668,8 @@ "binop": null, "updateContext": null }, - "start": 19935, - "end": 19936, + "start": 19970, + "end": 19971, "loc": { "start": { "line": 461, @@ -41694,8 +41694,8 @@ "binop": null }, "value": "xAxisVisible", - "start": 19936, - "end": 19948, + "start": 19971, + "end": 19983, "loc": { "start": { "line": 461, @@ -41721,8 +41721,8 @@ "updateContext": null }, "value": "!==", - "start": 19949, - "end": 19952, + "start": 19984, + "end": 19987, "loc": { "start": { "line": 461, @@ -41749,8 +41749,8 @@ "updateContext": null }, "value": "false", - "start": 19953, - "end": 19958, + "start": 19988, + "end": 19993, "loc": { "start": { "line": 461, @@ -41776,8 +41776,8 @@ "updateContext": null }, "value": "&&", - "start": 19959, - "end": 19961, + "start": 19994, + "end": 19996, "loc": { "start": { "line": 461, @@ -41804,8 +41804,8 @@ "updateContext": null }, "value": "this", - "start": 19962, - "end": 19966, + "start": 19997, + "end": 20001, "loc": { "start": { "line": 461, @@ -41830,8 +41830,8 @@ "binop": null, "updateContext": null }, - "start": 19966, - "end": 19967, + "start": 20001, + "end": 20002, "loc": { "start": { "line": 461, @@ -41856,8 +41856,8 @@ "binop": null }, "value": "defaultXAxisVisible", - "start": 19967, - "end": 19986, + "start": 20002, + "end": 20021, "loc": { "start": { "line": 461, @@ -41883,8 +41883,8 @@ "updateContext": null }, "value": "!==", - "start": 19987, - "end": 19990, + "start": 20022, + "end": 20025, "loc": { "start": { "line": 461, @@ -41911,8 +41911,8 @@ "updateContext": null }, "value": "false", - "start": 19991, - "end": 19996, + "start": 20026, + "end": 20031, "loc": { "start": { "line": 461, @@ -41937,8 +41937,8 @@ "binop": null, "updateContext": null }, - "start": 19996, - "end": 19997, + "start": 20031, + "end": 20032, "loc": { "start": { "line": 461, @@ -41963,8 +41963,8 @@ "binop": null }, "value": "yAxisVisible", - "start": 20010, - "end": 20022, + "start": 20045, + "end": 20057, "loc": { "start": { "line": 462, @@ -41989,8 +41989,8 @@ "binop": null, "updateContext": null }, - "start": 20022, - "end": 20023, + "start": 20057, + "end": 20058, "loc": { "start": { "line": 462, @@ -42015,8 +42015,8 @@ "binop": null }, "value": "params", - "start": 20024, - "end": 20030, + "start": 20059, + "end": 20065, "loc": { "start": { "line": 462, @@ -42041,8 +42041,8 @@ "binop": null, "updateContext": null }, - "start": 20030, - "end": 20031, + "start": 20065, + "end": 20066, "loc": { "start": { "line": 462, @@ -42067,8 +42067,8 @@ "binop": null }, "value": "yAxisVisible", - "start": 20031, - "end": 20043, + "start": 20066, + "end": 20078, "loc": { "start": { "line": 462, @@ -42094,8 +42094,8 @@ "updateContext": null }, "value": "!==", - "start": 20044, - "end": 20047, + "start": 20079, + "end": 20082, "loc": { "start": { "line": 462, @@ -42122,8 +42122,8 @@ "updateContext": null }, "value": "false", - "start": 20048, - "end": 20053, + "start": 20083, + "end": 20088, "loc": { "start": { "line": 462, @@ -42149,8 +42149,8 @@ "updateContext": null }, "value": "&&", - "start": 20054, - "end": 20056, + "start": 20089, + "end": 20091, "loc": { "start": { "line": 462, @@ -42177,8 +42177,8 @@ "updateContext": null }, "value": "this", - "start": 20057, - "end": 20061, + "start": 20092, + "end": 20096, "loc": { "start": { "line": 462, @@ -42203,8 +42203,8 @@ "binop": null, "updateContext": null }, - "start": 20061, - "end": 20062, + "start": 20096, + "end": 20097, "loc": { "start": { "line": 462, @@ -42229,8 +42229,8 @@ "binop": null }, "value": "defaultYAxisVisible", - "start": 20062, - "end": 20081, + "start": 20097, + "end": 20116, "loc": { "start": { "line": 462, @@ -42256,8 +42256,8 @@ "updateContext": null }, "value": "!==", - "start": 20082, - "end": 20085, + "start": 20117, + "end": 20120, "loc": { "start": { "line": 462, @@ -42284,8 +42284,8 @@ "updateContext": null }, "value": "false", - "start": 20086, - "end": 20091, + "start": 20121, + "end": 20126, "loc": { "start": { "line": 462, @@ -42310,8 +42310,8 @@ "binop": null, "updateContext": null }, - "start": 20091, - "end": 20092, + "start": 20126, + "end": 20127, "loc": { "start": { "line": 462, @@ -42336,8 +42336,8 @@ "binop": null }, "value": "zAxisVisible", - "start": 20105, - "end": 20117, + "start": 20140, + "end": 20152, "loc": { "start": { "line": 463, @@ -42362,8 +42362,8 @@ "binop": null, "updateContext": null }, - "start": 20117, - "end": 20118, + "start": 20152, + "end": 20153, "loc": { "start": { "line": 463, @@ -42388,8 +42388,8 @@ "binop": null }, "value": "params", - "start": 20119, - "end": 20125, + "start": 20154, + "end": 20160, "loc": { "start": { "line": 463, @@ -42414,8 +42414,8 @@ "binop": null, "updateContext": null }, - "start": 20125, - "end": 20126, + "start": 20160, + "end": 20161, "loc": { "start": { "line": 463, @@ -42440,8 +42440,8 @@ "binop": null }, "value": "zAxisVisible", - "start": 20126, - "end": 20138, + "start": 20161, + "end": 20173, "loc": { "start": { "line": 463, @@ -42467,8 +42467,8 @@ "updateContext": null }, "value": "!==", - "start": 20139, - "end": 20142, + "start": 20174, + "end": 20177, "loc": { "start": { "line": 463, @@ -42495,8 +42495,8 @@ "updateContext": null }, "value": "false", - "start": 20143, - "end": 20148, + "start": 20178, + "end": 20183, "loc": { "start": { "line": 463, @@ -42522,8 +42522,8 @@ "updateContext": null }, "value": "&&", - "start": 20149, - "end": 20151, + "start": 20184, + "end": 20186, "loc": { "start": { "line": 463, @@ -42550,8 +42550,8 @@ "updateContext": null }, "value": "this", - "start": 20152, - "end": 20156, + "start": 20187, + "end": 20191, "loc": { "start": { "line": 463, @@ -42576,8 +42576,8 @@ "binop": null, "updateContext": null }, - "start": 20156, - "end": 20157, + "start": 20191, + "end": 20192, "loc": { "start": { "line": 463, @@ -42602,8 +42602,8 @@ "binop": null }, "value": "defaultZAxisVisible", - "start": 20157, - "end": 20176, + "start": 20192, + "end": 20211, "loc": { "start": { "line": 463, @@ -42629,8 +42629,8 @@ "updateContext": null }, "value": "!==", - "start": 20177, - "end": 20180, + "start": 20212, + "end": 20215, "loc": { "start": { "line": 463, @@ -42657,8 +42657,8 @@ "updateContext": null }, "value": "false", - "start": 20181, - "end": 20186, + "start": 20216, + "end": 20221, "loc": { "start": { "line": 463, @@ -42683,8 +42683,8 @@ "binop": null, "updateContext": null }, - "start": 20186, - "end": 20187, + "start": 20221, + "end": 20222, "loc": { "start": { "line": 463, @@ -42709,8 +42709,8 @@ "binop": null }, "value": "labelsVisible", - "start": 20200, - "end": 20213, + "start": 20235, + "end": 20248, "loc": { "start": { "line": 464, @@ -42735,8 +42735,8 @@ "binop": null, "updateContext": null }, - "start": 20213, - "end": 20214, + "start": 20248, + "end": 20249, "loc": { "start": { "line": 464, @@ -42761,8 +42761,8 @@ "binop": null }, "value": "params", - "start": 20215, - "end": 20221, + "start": 20250, + "end": 20256, "loc": { "start": { "line": 464, @@ -42787,8 +42787,8 @@ "binop": null, "updateContext": null }, - "start": 20221, - "end": 20222, + "start": 20256, + "end": 20257, "loc": { "start": { "line": 464, @@ -42813,8 +42813,8 @@ "binop": null }, "value": "labelsVisible", - "start": 20222, - "end": 20235, + "start": 20257, + "end": 20270, "loc": { "start": { "line": 464, @@ -42840,8 +42840,8 @@ "updateContext": null }, "value": "!==", - "start": 20236, - "end": 20239, + "start": 20271, + "end": 20274, "loc": { "start": { "line": 464, @@ -42868,8 +42868,8 @@ "updateContext": null }, "value": "false", - "start": 20240, - "end": 20245, + "start": 20275, + "end": 20280, "loc": { "start": { "line": 464, @@ -42895,8 +42895,8 @@ "updateContext": null }, "value": "&&", - "start": 20246, - "end": 20248, + "start": 20281, + "end": 20283, "loc": { "start": { "line": 464, @@ -42923,8 +42923,8 @@ "updateContext": null }, "value": "this", - "start": 20249, - "end": 20253, + "start": 20284, + "end": 20288, "loc": { "start": { "line": 464, @@ -42949,8 +42949,8 @@ "binop": null, "updateContext": null }, - "start": 20253, - "end": 20254, + "start": 20288, + "end": 20289, "loc": { "start": { "line": 464, @@ -42975,8 +42975,8 @@ "binop": null }, "value": "defaultLabelsVisible", - "start": 20254, - "end": 20274, + "start": 20289, + "end": 20309, "loc": { "start": { "line": 464, @@ -43002,8 +43002,8 @@ "updateContext": null }, "value": "!==", - "start": 20275, - "end": 20278, + "start": 20310, + "end": 20313, "loc": { "start": { "line": 464, @@ -43030,8 +43030,8 @@ "updateContext": null }, "value": "false", - "start": 20279, - "end": 20284, + "start": 20314, + "end": 20319, "loc": { "start": { "line": 464, @@ -43056,8 +43056,8 @@ "binop": null, "updateContext": null }, - "start": 20284, - "end": 20285, + "start": 20319, + "end": 20320, "loc": { "start": { "line": 464, @@ -43082,8 +43082,8 @@ "binop": null }, "value": "originVisible", - "start": 20298, - "end": 20311, + "start": 20333, + "end": 20346, "loc": { "start": { "line": 465, @@ -43108,8 +43108,8 @@ "binop": null, "updateContext": null }, - "start": 20311, - "end": 20312, + "start": 20346, + "end": 20347, "loc": { "start": { "line": 465, @@ -43134,8 +43134,8 @@ "binop": null }, "value": "params", - "start": 20313, - "end": 20319, + "start": 20348, + "end": 20354, "loc": { "start": { "line": 465, @@ -43160,8 +43160,8 @@ "binop": null, "updateContext": null }, - "start": 20319, - "end": 20320, + "start": 20354, + "end": 20355, "loc": { "start": { "line": 465, @@ -43186,8 +43186,8 @@ "binop": null }, "value": "originVisible", - "start": 20320, - "end": 20333, + "start": 20355, + "end": 20368, "loc": { "start": { "line": 465, @@ -43212,8 +43212,8 @@ "binop": null, "updateContext": null }, - "start": 20333, - "end": 20334, + "start": 20368, + "end": 20369, "loc": { "start": { "line": 465, @@ -43238,8 +43238,8 @@ "binop": null }, "value": "targetVisible", - "start": 20347, - "end": 20360, + "start": 20382, + "end": 20395, "loc": { "start": { "line": 466, @@ -43264,8 +43264,8 @@ "binop": null, "updateContext": null }, - "start": 20360, - "end": 20361, + "start": 20395, + "end": 20396, "loc": { "start": { "line": 466, @@ -43290,8 +43290,8 @@ "binop": null }, "value": "params", - "start": 20362, - "end": 20368, + "start": 20397, + "end": 20403, "loc": { "start": { "line": 466, @@ -43316,8 +43316,8 @@ "binop": null, "updateContext": null }, - "start": 20368, - "end": 20369, + "start": 20403, + "end": 20404, "loc": { "start": { "line": 466, @@ -43342,8 +43342,8 @@ "binop": null }, "value": "targetVisible", - "start": 20369, - "end": 20382, + "start": 20404, + "end": 20417, "loc": { "start": { "line": 466, @@ -43368,8 +43368,8 @@ "binop": null, "updateContext": null }, - "start": 20382, - "end": 20383, + "start": 20417, + "end": 20418, "loc": { "start": { "line": 466, @@ -43394,8 +43394,8 @@ "binop": null }, "value": "color", - "start": 20396, - "end": 20401, + "start": 20431, + "end": 20436, "loc": { "start": { "line": 467, @@ -43420,8 +43420,8 @@ "binop": null, "updateContext": null }, - "start": 20401, - "end": 20402, + "start": 20436, + "end": 20437, "loc": { "start": { "line": 467, @@ -43446,8 +43446,8 @@ "binop": null }, "value": "params", - "start": 20403, - "end": 20409, + "start": 20438, + "end": 20444, "loc": { "start": { "line": 467, @@ -43472,8 +43472,8 @@ "binop": null, "updateContext": null }, - "start": 20409, - "end": 20410, + "start": 20444, + "end": 20445, "loc": { "start": { "line": 467, @@ -43498,8 +43498,8 @@ "binop": null }, "value": "color", - "start": 20410, - "end": 20415, + "start": 20445, + "end": 20450, "loc": { "start": { "line": 467, @@ -43524,8 +43524,8 @@ "binop": null, "updateContext": null }, - "start": 20415, - "end": 20416, + "start": 20450, + "end": 20451, "loc": { "start": { "line": 467, @@ -43550,8 +43550,8 @@ "binop": null }, "value": "labelsOnWires", - "start": 20429, - "end": 20442, + "start": 20464, + "end": 20477, "loc": { "start": { "line": 468, @@ -43576,8 +43576,8 @@ "binop": null, "updateContext": null }, - "start": 20442, - "end": 20443, + "start": 20477, + "end": 20478, "loc": { "start": { "line": 468, @@ -43602,8 +43602,8 @@ "binop": null }, "value": "params", - "start": 20444, - "end": 20450, + "start": 20479, + "end": 20485, "loc": { "start": { "line": 468, @@ -43628,8 +43628,8 @@ "binop": null, "updateContext": null }, - "start": 20450, - "end": 20451, + "start": 20485, + "end": 20486, "loc": { "start": { "line": 468, @@ -43654,8 +43654,8 @@ "binop": null }, "value": "labelsOnWires", - "start": 20451, - "end": 20464, + "start": 20486, + "end": 20499, "loc": { "start": { "line": 468, @@ -43681,8 +43681,8 @@ "updateContext": null }, "value": "!==", - "start": 20465, - "end": 20468, + "start": 20500, + "end": 20503, "loc": { "start": { "line": 468, @@ -43709,8 +43709,8 @@ "updateContext": null }, "value": "false", - "start": 20469, - "end": 20474, + "start": 20504, + "end": 20509, "loc": { "start": { "line": 468, @@ -43736,8 +43736,8 @@ "updateContext": null }, "value": "&&", - "start": 20475, - "end": 20477, + "start": 20510, + "end": 20512, "loc": { "start": { "line": 468, @@ -43764,8 +43764,8 @@ "updateContext": null }, "value": "this", - "start": 20478, - "end": 20482, + "start": 20513, + "end": 20517, "loc": { "start": { "line": 468, @@ -43790,8 +43790,8 @@ "binop": null, "updateContext": null }, - "start": 20482, - "end": 20483, + "start": 20517, + "end": 20518, "loc": { "start": { "line": 468, @@ -43816,8 +43816,8 @@ "binop": null }, "value": "defaultLabelsOnWires", - "start": 20483, - "end": 20503, + "start": 20518, + "end": 20538, "loc": { "start": { "line": 468, @@ -43843,8 +43843,8 @@ "updateContext": null }, "value": "!==", - "start": 20504, - "end": 20507, + "start": 20539, + "end": 20542, "loc": { "start": { "line": 468, @@ -43871,8 +43871,8 @@ "updateContext": null }, "value": "false", - "start": 20508, - "end": 20513, + "start": 20543, + "end": 20548, "loc": { "start": { "line": 468, @@ -43897,8 +43897,8 @@ "binop": null, "updateContext": null }, - "start": 20513, - "end": 20514, + "start": 20548, + "end": 20549, "loc": { "start": { "line": 468, @@ -43923,8 +43923,8 @@ "binop": null }, "value": "onMouseOver", - "start": 20527, - "end": 20538, + "start": 20562, + "end": 20573, "loc": { "start": { "line": 469, @@ -43949,8 +43949,8 @@ "binop": null, "updateContext": null }, - "start": 20538, - "end": 20539, + "start": 20573, + "end": 20574, "loc": { "start": { "line": 469, @@ -43977,8 +43977,8 @@ "updateContext": null }, "value": "this", - "start": 20540, - "end": 20544, + "start": 20575, + "end": 20579, "loc": { "start": { "line": 469, @@ -44003,8 +44003,8 @@ "binop": null, "updateContext": null }, - "start": 20544, - "end": 20545, + "start": 20579, + "end": 20580, "loc": { "start": { "line": 469, @@ -44029,8 +44029,8 @@ "binop": null }, "value": "_onMouseOver", - "start": 20545, - "end": 20557, + "start": 20580, + "end": 20592, "loc": { "start": { "line": 469, @@ -44055,8 +44055,8 @@ "binop": null, "updateContext": null }, - "start": 20557, - "end": 20558, + "start": 20592, + "end": 20593, "loc": { "start": { "line": 469, @@ -44081,8 +44081,8 @@ "binop": null }, "value": "onMouseLeave", - "start": 20571, - "end": 20583, + "start": 20606, + "end": 20618, "loc": { "start": { "line": 470, @@ -44107,8 +44107,8 @@ "binop": null, "updateContext": null }, - "start": 20583, - "end": 20584, + "start": 20618, + "end": 20619, "loc": { "start": { "line": 470, @@ -44135,8 +44135,8 @@ "updateContext": null }, "value": "this", - "start": 20585, - "end": 20589, + "start": 20620, + "end": 20624, "loc": { "start": { "line": 470, @@ -44161,8 +44161,8 @@ "binop": null, "updateContext": null }, - "start": 20589, - "end": 20590, + "start": 20624, + "end": 20625, "loc": { "start": { "line": 470, @@ -44187,8 +44187,8 @@ "binop": null }, "value": "_onMouseLeave", - "start": 20590, - "end": 20603, + "start": 20625, + "end": 20638, "loc": { "start": { "line": 470, @@ -44213,8 +44213,8 @@ "binop": null, "updateContext": null }, - "start": 20603, - "end": 20604, + "start": 20638, + "end": 20639, "loc": { "start": { "line": 470, @@ -44239,8 +44239,8 @@ "binop": null }, "value": "onContextMenu", - "start": 20617, - "end": 20630, + "start": 20652, + "end": 20665, "loc": { "start": { "line": 471, @@ -44265,8 +44265,8 @@ "binop": null, "updateContext": null }, - "start": 20630, - "end": 20631, + "start": 20665, + "end": 20666, "loc": { "start": { "line": 471, @@ -44293,8 +44293,8 @@ "updateContext": null }, "value": "this", - "start": 20632, - "end": 20636, + "start": 20667, + "end": 20671, "loc": { "start": { "line": 471, @@ -44319,8 +44319,8 @@ "binop": null, "updateContext": null }, - "start": 20636, - "end": 20637, + "start": 20671, + "end": 20672, "loc": { "start": { "line": 471, @@ -44345,8 +44345,8 @@ "binop": null }, "value": "_onContextMenu", - "start": 20637, - "end": 20651, + "start": 20672, + "end": 20686, "loc": { "start": { "line": 471, @@ -44370,8 +44370,8 @@ "postfix": false, "binop": null }, - "start": 20660, - "end": 20661, + "start": 20695, + "end": 20696, "loc": { "start": { "line": 472, @@ -44395,8 +44395,8 @@ "postfix": false, "binop": null }, - "start": 20661, - "end": 20662, + "start": 20696, + "end": 20697, "loc": { "start": { "line": 472, @@ -44421,8 +44421,8 @@ "binop": null, "updateContext": null }, - "start": 20662, - "end": 20663, + "start": 20697, + "end": 20698, "loc": { "start": { "line": 472, @@ -44449,8 +44449,8 @@ "updateContext": null }, "value": "this", - "start": 20672, - "end": 20676, + "start": 20707, + "end": 20711, "loc": { "start": { "line": 473, @@ -44475,8 +44475,8 @@ "binop": null, "updateContext": null }, - "start": 20676, - "end": 20677, + "start": 20711, + "end": 20712, "loc": { "start": { "line": 473, @@ -44501,8 +44501,8 @@ "binop": null }, "value": "_measurements", - "start": 20677, - "end": 20690, + "start": 20712, + "end": 20725, "loc": { "start": { "line": 473, @@ -44527,8 +44527,8 @@ "binop": null, "updateContext": null }, - "start": 20690, - "end": 20691, + "start": 20725, + "end": 20726, "loc": { "start": { "line": 473, @@ -44553,8 +44553,8 @@ "binop": null }, "value": "measurement", - "start": 20691, - "end": 20702, + "start": 20726, + "end": 20737, "loc": { "start": { "line": 473, @@ -44579,8 +44579,8 @@ "binop": null, "updateContext": null }, - "start": 20702, - "end": 20703, + "start": 20737, + "end": 20738, "loc": { "start": { "line": 473, @@ -44605,8 +44605,8 @@ "binop": null }, "value": "id", - "start": 20703, - "end": 20705, + "start": 20738, + "end": 20740, "loc": { "start": { "line": 473, @@ -44631,8 +44631,8 @@ "binop": null, "updateContext": null }, - "start": 20705, - "end": 20706, + "start": 20740, + "end": 20741, "loc": { "start": { "line": 473, @@ -44658,8 +44658,8 @@ "updateContext": null }, "value": "=", - "start": 20707, - "end": 20708, + "start": 20742, + "end": 20743, "loc": { "start": { "line": 473, @@ -44684,8 +44684,8 @@ "binop": null }, "value": "measurement", - "start": 20709, - "end": 20720, + "start": 20744, + "end": 20755, "loc": { "start": { "line": 473, @@ -44710,8 +44710,8 @@ "binop": null, "updateContext": null }, - "start": 20720, - "end": 20721, + "start": 20755, + "end": 20756, "loc": { "start": { "line": 473, @@ -44736,8 +44736,8 @@ "binop": null }, "value": "measurement", - "start": 20730, - "end": 20741, + "start": 20765, + "end": 20776, "loc": { "start": { "line": 474, @@ -44762,8 +44762,8 @@ "binop": null, "updateContext": null }, - "start": 20741, - "end": 20742, + "start": 20776, + "end": 20777, "loc": { "start": { "line": 474, @@ -44788,8 +44788,8 @@ "binop": null }, "value": "on", - "start": 20742, - "end": 20744, + "start": 20777, + "end": 20779, "loc": { "start": { "line": 474, @@ -44813,8 +44813,8 @@ "postfix": false, "binop": null }, - "start": 20744, - "end": 20745, + "start": 20779, + "end": 20780, "loc": { "start": { "line": 474, @@ -44840,8 +44840,8 @@ "updateContext": null }, "value": "destroyed", - "start": 20745, - "end": 20756, + "start": 20780, + "end": 20791, "loc": { "start": { "line": 474, @@ -44866,8 +44866,8 @@ "binop": null, "updateContext": null }, - "start": 20756, - "end": 20757, + "start": 20791, + "end": 20792, "loc": { "start": { "line": 474, @@ -44891,8 +44891,8 @@ "postfix": false, "binop": null }, - "start": 20758, - "end": 20759, + "start": 20793, + "end": 20794, "loc": { "start": { "line": 474, @@ -44916,8 +44916,8 @@ "postfix": false, "binop": null }, - "start": 20759, - "end": 20760, + "start": 20794, + "end": 20795, "loc": { "start": { "line": 474, @@ -44942,8 +44942,8 @@ "binop": null, "updateContext": null }, - "start": 20761, - "end": 20763, + "start": 20796, + "end": 20798, "loc": { "start": { "line": 474, @@ -44967,8 +44967,8 @@ "postfix": false, "binop": null }, - "start": 20764, - "end": 20765, + "start": 20799, + "end": 20800, "loc": { "start": { "line": 474, @@ -44995,8 +44995,8 @@ "updateContext": null }, "value": "delete", - "start": 20778, - "end": 20784, + "start": 20813, + "end": 20819, "loc": { "start": { "line": 475, @@ -45023,8 +45023,8 @@ "updateContext": null }, "value": "this", - "start": 20785, - "end": 20789, + "start": 20820, + "end": 20824, "loc": { "start": { "line": 475, @@ -45049,8 +45049,8 @@ "binop": null, "updateContext": null }, - "start": 20789, - "end": 20790, + "start": 20824, + "end": 20825, "loc": { "start": { "line": 475, @@ -45075,8 +45075,8 @@ "binop": null }, "value": "_measurements", - "start": 20790, - "end": 20803, + "start": 20825, + "end": 20838, "loc": { "start": { "line": 475, @@ -45101,8 +45101,8 @@ "binop": null, "updateContext": null }, - "start": 20803, - "end": 20804, + "start": 20838, + "end": 20839, "loc": { "start": { "line": 475, @@ -45127,8 +45127,8 @@ "binop": null }, "value": "measurement", - "start": 20804, - "end": 20815, + "start": 20839, + "end": 20850, "loc": { "start": { "line": 475, @@ -45153,8 +45153,8 @@ "binop": null, "updateContext": null }, - "start": 20815, - "end": 20816, + "start": 20850, + "end": 20851, "loc": { "start": { "line": 475, @@ -45179,8 +45179,8 @@ "binop": null }, "value": "id", - "start": 20816, - "end": 20818, + "start": 20851, + "end": 20853, "loc": { "start": { "line": 475, @@ -45205,8 +45205,8 @@ "binop": null, "updateContext": null }, - "start": 20818, - "end": 20819, + "start": 20853, + "end": 20854, "loc": { "start": { "line": 475, @@ -45231,8 +45231,8 @@ "binop": null, "updateContext": null }, - "start": 20819, - "end": 20820, + "start": 20854, + "end": 20855, "loc": { "start": { "line": 475, @@ -45256,8 +45256,8 @@ "postfix": false, "binop": null }, - "start": 20829, - "end": 20830, + "start": 20864, + "end": 20865, "loc": { "start": { "line": 476, @@ -45281,8 +45281,8 @@ "postfix": false, "binop": null }, - "start": 20830, - "end": 20831, + "start": 20865, + "end": 20866, "loc": { "start": { "line": 476, @@ -45307,8 +45307,8 @@ "binop": null, "updateContext": null }, - "start": 20831, - "end": 20832, + "start": 20866, + "end": 20867, "loc": { "start": { "line": 476, @@ -45335,8 +45335,8 @@ "updateContext": null }, "value": "this", - "start": 20841, - "end": 20845, + "start": 20876, + "end": 20880, "loc": { "start": { "line": 477, @@ -45361,8 +45361,8 @@ "binop": null, "updateContext": null }, - "start": 20845, - "end": 20846, + "start": 20880, + "end": 20881, "loc": { "start": { "line": 477, @@ -45387,8 +45387,8 @@ "binop": null }, "value": "fire", - "start": 20846, - "end": 20850, + "start": 20881, + "end": 20885, "loc": { "start": { "line": 477, @@ -45412,8 +45412,8 @@ "postfix": false, "binop": null }, - "start": 20850, - "end": 20851, + "start": 20885, + "end": 20886, "loc": { "start": { "line": 477, @@ -45439,8 +45439,8 @@ "updateContext": null }, "value": "measurementCreated", - "start": 20851, - "end": 20871, + "start": 20886, + "end": 20906, "loc": { "start": { "line": 477, @@ -45465,8 +45465,8 @@ "binop": null, "updateContext": null }, - "start": 20871, - "end": 20872, + "start": 20906, + "end": 20907, "loc": { "start": { "line": 477, @@ -45491,8 +45491,8 @@ "binop": null }, "value": "measurement", - "start": 20873, - "end": 20884, + "start": 20908, + "end": 20919, "loc": { "start": { "line": 477, @@ -45516,8 +45516,8 @@ "postfix": false, "binop": null }, - "start": 20884, - "end": 20885, + "start": 20919, + "end": 20920, "loc": { "start": { "line": 477, @@ -45542,8 +45542,8 @@ "binop": null, "updateContext": null }, - "start": 20885, - "end": 20886, + "start": 20920, + "end": 20921, "loc": { "start": { "line": 477, @@ -45570,8 +45570,8 @@ "updateContext": null }, "value": "return", - "start": 20895, - "end": 20901, + "start": 20930, + "end": 20936, "loc": { "start": { "line": 478, @@ -45596,8 +45596,8 @@ "binop": null }, "value": "measurement", - "start": 20902, - "end": 20913, + "start": 20937, + "end": 20948, "loc": { "start": { "line": 478, @@ -45622,8 +45622,8 @@ "binop": null, "updateContext": null }, - "start": 20913, - "end": 20914, + "start": 20948, + "end": 20949, "loc": { "start": { "line": 478, @@ -45647,8 +45647,8 @@ "postfix": false, "binop": null }, - "start": 20919, - "end": 20920, + "start": 20954, + "end": 20955, "loc": { "start": { "line": 479, @@ -45663,8 +45663,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys a {@link DistanceMeasurement}.\n *\n * @param {String} id ID of DistanceMeasurement to destroy.\n ", - "start": 20926, - "end": 21055, + "start": 20961, + "end": 21090, "loc": { "start": { "line": 481, @@ -45689,8 +45689,8 @@ "binop": null }, "value": "destroyMeasurement", - "start": 21060, - "end": 21078, + "start": 21095, + "end": 21113, "loc": { "start": { "line": 486, @@ -45714,8 +45714,8 @@ "postfix": false, "binop": null }, - "start": 21078, - "end": 21079, + "start": 21113, + "end": 21114, "loc": { "start": { "line": 486, @@ -45740,8 +45740,8 @@ "binop": null }, "value": "id", - "start": 21079, - "end": 21081, + "start": 21114, + "end": 21116, "loc": { "start": { "line": 486, @@ -45765,8 +45765,8 @@ "postfix": false, "binop": null }, - "start": 21081, - "end": 21082, + "start": 21116, + "end": 21117, "loc": { "start": { "line": 486, @@ -45790,8 +45790,8 @@ "postfix": false, "binop": null }, - "start": 21083, - "end": 21084, + "start": 21118, + "end": 21119, "loc": { "start": { "line": 486, @@ -45818,8 +45818,8 @@ "updateContext": null }, "value": "const", - "start": 21093, - "end": 21098, + "start": 21128, + "end": 21133, "loc": { "start": { "line": 487, @@ -45844,8 +45844,8 @@ "binop": null }, "value": "measurement", - "start": 21099, - "end": 21110, + "start": 21134, + "end": 21145, "loc": { "start": { "line": 487, @@ -45871,8 +45871,8 @@ "updateContext": null }, "value": "=", - "start": 21111, - "end": 21112, + "start": 21146, + "end": 21147, "loc": { "start": { "line": 487, @@ -45899,8 +45899,8 @@ "updateContext": null }, "value": "this", - "start": 21113, - "end": 21117, + "start": 21148, + "end": 21152, "loc": { "start": { "line": 487, @@ -45925,8 +45925,8 @@ "binop": null, "updateContext": null }, - "start": 21117, - "end": 21118, + "start": 21152, + "end": 21153, "loc": { "start": { "line": 487, @@ -45951,8 +45951,8 @@ "binop": null }, "value": "_measurements", - "start": 21118, - "end": 21131, + "start": 21153, + "end": 21166, "loc": { "start": { "line": 487, @@ -45977,8 +45977,8 @@ "binop": null, "updateContext": null }, - "start": 21131, - "end": 21132, + "start": 21166, + "end": 21167, "loc": { "start": { "line": 487, @@ -46003,8 +46003,8 @@ "binop": null }, "value": "id", - "start": 21132, - "end": 21134, + "start": 21167, + "end": 21169, "loc": { "start": { "line": 487, @@ -46029,8 +46029,8 @@ "binop": null, "updateContext": null }, - "start": 21134, - "end": 21135, + "start": 21169, + "end": 21170, "loc": { "start": { "line": 487, @@ -46055,8 +46055,8 @@ "binop": null, "updateContext": null }, - "start": 21135, - "end": 21136, + "start": 21170, + "end": 21171, "loc": { "start": { "line": 487, @@ -46083,8 +46083,8 @@ "updateContext": null }, "value": "if", - "start": 21145, - "end": 21147, + "start": 21180, + "end": 21182, "loc": { "start": { "line": 488, @@ -46108,8 +46108,8 @@ "postfix": false, "binop": null }, - "start": 21148, - "end": 21149, + "start": 21183, + "end": 21184, "loc": { "start": { "line": 488, @@ -46135,8 +46135,8 @@ "updateContext": null }, "value": "!", - "start": 21149, - "end": 21150, + "start": 21184, + "end": 21185, "loc": { "start": { "line": 488, @@ -46161,8 +46161,8 @@ "binop": null }, "value": "measurement", - "start": 21150, - "end": 21161, + "start": 21185, + "end": 21196, "loc": { "start": { "line": 488, @@ -46186,8 +46186,8 @@ "postfix": false, "binop": null }, - "start": 21161, - "end": 21162, + "start": 21196, + "end": 21197, "loc": { "start": { "line": 488, @@ -46211,8 +46211,8 @@ "postfix": false, "binop": null }, - "start": 21163, - "end": 21164, + "start": 21198, + "end": 21199, "loc": { "start": { "line": 488, @@ -46239,8 +46239,8 @@ "updateContext": null }, "value": "this", - "start": 21177, - "end": 21181, + "start": 21212, + "end": 21216, "loc": { "start": { "line": 489, @@ -46265,8 +46265,8 @@ "binop": null, "updateContext": null }, - "start": 21181, - "end": 21182, + "start": 21216, + "end": 21217, "loc": { "start": { "line": 489, @@ -46291,8 +46291,8 @@ "binop": null }, "value": "log", - "start": 21182, - "end": 21185, + "start": 21217, + "end": 21220, "loc": { "start": { "line": 489, @@ -46316,8 +46316,8 @@ "postfix": false, "binop": null }, - "start": 21185, - "end": 21186, + "start": 21220, + "end": 21221, "loc": { "start": { "line": 489, @@ -46343,8 +46343,8 @@ "updateContext": null }, "value": "DistanceMeasurement not found: ", - "start": 21186, - "end": 21219, + "start": 21221, + "end": 21254, "loc": { "start": { "line": 489, @@ -46370,8 +46370,8 @@ "updateContext": null }, "value": "+", - "start": 21220, - "end": 21221, + "start": 21255, + "end": 21256, "loc": { "start": { "line": 489, @@ -46396,8 +46396,8 @@ "binop": null }, "value": "id", - "start": 21222, - "end": 21224, + "start": 21257, + "end": 21259, "loc": { "start": { "line": 489, @@ -46421,8 +46421,8 @@ "postfix": false, "binop": null }, - "start": 21224, - "end": 21225, + "start": 21259, + "end": 21260, "loc": { "start": { "line": 489, @@ -46447,8 +46447,8 @@ "binop": null, "updateContext": null }, - "start": 21225, - "end": 21226, + "start": 21260, + "end": 21261, "loc": { "start": { "line": 489, @@ -46475,8 +46475,8 @@ "updateContext": null }, "value": "return", - "start": 21239, - "end": 21245, + "start": 21274, + "end": 21280, "loc": { "start": { "line": 490, @@ -46501,8 +46501,8 @@ "binop": null, "updateContext": null }, - "start": 21245, - "end": 21246, + "start": 21280, + "end": 21281, "loc": { "start": { "line": 490, @@ -46526,8 +46526,8 @@ "postfix": false, "binop": null }, - "start": 21255, - "end": 21256, + "start": 21290, + "end": 21291, "loc": { "start": { "line": 491, @@ -46552,8 +46552,8 @@ "binop": null }, "value": "measurement", - "start": 21265, - "end": 21276, + "start": 21300, + "end": 21311, "loc": { "start": { "line": 492, @@ -46578,8 +46578,8 @@ "binop": null, "updateContext": null }, - "start": 21276, - "end": 21277, + "start": 21311, + "end": 21312, "loc": { "start": { "line": 492, @@ -46604,8 +46604,8 @@ "binop": null }, "value": "destroy", - "start": 21277, - "end": 21284, + "start": 21312, + "end": 21319, "loc": { "start": { "line": 492, @@ -46629,8 +46629,8 @@ "postfix": false, "binop": null }, - "start": 21284, - "end": 21285, + "start": 21319, + "end": 21320, "loc": { "start": { "line": 492, @@ -46654,8 +46654,8 @@ "postfix": false, "binop": null }, - "start": 21285, - "end": 21286, + "start": 21320, + "end": 21321, "loc": { "start": { "line": 492, @@ -46680,8 +46680,8 @@ "binop": null, "updateContext": null }, - "start": 21286, - "end": 21287, + "start": 21321, + "end": 21322, "loc": { "start": { "line": 492, @@ -46708,8 +46708,8 @@ "updateContext": null }, "value": "this", - "start": 21296, - "end": 21300, + "start": 21331, + "end": 21335, "loc": { "start": { "line": 493, @@ -46734,8 +46734,8 @@ "binop": null, "updateContext": null }, - "start": 21300, - "end": 21301, + "start": 21335, + "end": 21336, "loc": { "start": { "line": 493, @@ -46760,8 +46760,8 @@ "binop": null }, "value": "fire", - "start": 21301, - "end": 21305, + "start": 21336, + "end": 21340, "loc": { "start": { "line": 493, @@ -46785,8 +46785,8 @@ "postfix": false, "binop": null }, - "start": 21305, - "end": 21306, + "start": 21340, + "end": 21341, "loc": { "start": { "line": 493, @@ -46812,8 +46812,8 @@ "updateContext": null }, "value": "measurementDestroyed", - "start": 21306, - "end": 21328, + "start": 21341, + "end": 21363, "loc": { "start": { "line": 493, @@ -46838,8 +46838,8 @@ "binop": null, "updateContext": null }, - "start": 21328, - "end": 21329, + "start": 21363, + "end": 21364, "loc": { "start": { "line": 493, @@ -46864,8 +46864,8 @@ "binop": null }, "value": "measurement", - "start": 21330, - "end": 21341, + "start": 21365, + "end": 21376, "loc": { "start": { "line": 493, @@ -46889,8 +46889,8 @@ "postfix": false, "binop": null }, - "start": 21341, - "end": 21342, + "start": 21376, + "end": 21377, "loc": { "start": { "line": 493, @@ -46915,8 +46915,8 @@ "binop": null, "updateContext": null }, - "start": 21342, - "end": 21343, + "start": 21377, + "end": 21378, "loc": { "start": { "line": 493, @@ -46940,8 +46940,8 @@ "postfix": false, "binop": null }, - "start": 21348, - "end": 21349, + "start": 21383, + "end": 21384, "loc": { "start": { "line": 494, @@ -46956,8 +46956,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the distance label of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n ", - "start": 21355, - "end": 21526, + "start": 21390, + "end": 21561, "loc": { "start": { "line": 496, @@ -46982,8 +46982,8 @@ "binop": null }, "value": "setLabelsShown", - "start": 21531, - "end": 21545, + "start": 21566, + "end": 21580, "loc": { "start": { "line": 501, @@ -47007,8 +47007,8 @@ "postfix": false, "binop": null }, - "start": 21545, - "end": 21546, + "start": 21580, + "end": 21581, "loc": { "start": { "line": 501, @@ -47033,8 +47033,8 @@ "binop": null }, "value": "labelsShown", - "start": 21546, - "end": 21557, + "start": 21581, + "end": 21592, "loc": { "start": { "line": 501, @@ -47058,8 +47058,8 @@ "postfix": false, "binop": null }, - "start": 21557, - "end": 21558, + "start": 21592, + "end": 21593, "loc": { "start": { "line": 501, @@ -47083,8 +47083,8 @@ "postfix": false, "binop": null }, - "start": 21559, - "end": 21560, + "start": 21594, + "end": 21595, "loc": { "start": { "line": 501, @@ -47111,8 +47111,8 @@ "updateContext": null }, "value": "for", - "start": 21569, - "end": 21572, + "start": 21604, + "end": 21607, "loc": { "start": { "line": 502, @@ -47136,8 +47136,8 @@ "postfix": false, "binop": null }, - "start": 21573, - "end": 21574, + "start": 21608, + "end": 21609, "loc": { "start": { "line": 502, @@ -47164,8 +47164,8 @@ "updateContext": null }, "value": "const", - "start": 21574, - "end": 21579, + "start": 21609, + "end": 21614, "loc": { "start": { "line": 502, @@ -47190,8 +47190,8 @@ "binop": null, "updateContext": null }, - "start": 21580, - "end": 21581, + "start": 21615, + "end": 21616, "loc": { "start": { "line": 502, @@ -47216,8 +47216,8 @@ "binop": null }, "value": "key", - "start": 21581, - "end": 21584, + "start": 21616, + "end": 21619, "loc": { "start": { "line": 502, @@ -47242,8 +47242,8 @@ "binop": null, "updateContext": null }, - "start": 21584, - "end": 21585, + "start": 21619, + "end": 21620, "loc": { "start": { "line": 502, @@ -47268,8 +47268,8 @@ "binop": null }, "value": "measurement", - "start": 21586, - "end": 21597, + "start": 21621, + "end": 21632, "loc": { "start": { "line": 502, @@ -47294,8 +47294,8 @@ "binop": null, "updateContext": null }, - "start": 21597, - "end": 21598, + "start": 21632, + "end": 21633, "loc": { "start": { "line": 502, @@ -47320,8 +47320,8 @@ "binop": null }, "value": "of", - "start": 21599, - "end": 21601, + "start": 21634, + "end": 21636, "loc": { "start": { "line": 502, @@ -47346,8 +47346,8 @@ "binop": null }, "value": "Object", - "start": 21602, - "end": 21608, + "start": 21637, + "end": 21643, "loc": { "start": { "line": 502, @@ -47372,8 +47372,8 @@ "binop": null, "updateContext": null }, - "start": 21608, - "end": 21609, + "start": 21643, + "end": 21644, "loc": { "start": { "line": 502, @@ -47398,8 +47398,8 @@ "binop": null }, "value": "entries", - "start": 21609, - "end": 21616, + "start": 21644, + "end": 21651, "loc": { "start": { "line": 502, @@ -47423,8 +47423,8 @@ "postfix": false, "binop": null }, - "start": 21616, - "end": 21617, + "start": 21651, + "end": 21652, "loc": { "start": { "line": 502, @@ -47451,8 +47451,8 @@ "updateContext": null }, "value": "this", - "start": 21617, - "end": 21621, + "start": 21652, + "end": 21656, "loc": { "start": { "line": 502, @@ -47477,8 +47477,8 @@ "binop": null, "updateContext": null }, - "start": 21621, - "end": 21622, + "start": 21656, + "end": 21657, "loc": { "start": { "line": 502, @@ -47503,8 +47503,8 @@ "binop": null }, "value": "measurements", - "start": 21622, - "end": 21634, + "start": 21657, + "end": 21669, "loc": { "start": { "line": 502, @@ -47528,8 +47528,8 @@ "postfix": false, "binop": null }, - "start": 21634, - "end": 21635, + "start": 21669, + "end": 21670, "loc": { "start": { "line": 502, @@ -47553,8 +47553,8 @@ "postfix": false, "binop": null }, - "start": 21635, - "end": 21636, + "start": 21670, + "end": 21671, "loc": { "start": { "line": 502, @@ -47578,8 +47578,8 @@ "postfix": false, "binop": null }, - "start": 21637, - "end": 21638, + "start": 21672, + "end": 21673, "loc": { "start": { "line": 502, @@ -47604,8 +47604,8 @@ "binop": null }, "value": "measurement", - "start": 21651, - "end": 21662, + "start": 21686, + "end": 21697, "loc": { "start": { "line": 503, @@ -47630,8 +47630,8 @@ "binop": null, "updateContext": null }, - "start": 21662, - "end": 21663, + "start": 21697, + "end": 21698, "loc": { "start": { "line": 503, @@ -47656,8 +47656,8 @@ "binop": null }, "value": "labelShown", - "start": 21663, - "end": 21673, + "start": 21698, + "end": 21708, "loc": { "start": { "line": 503, @@ -47683,8 +47683,8 @@ "updateContext": null }, "value": "=", - "start": 21674, - "end": 21675, + "start": 21709, + "end": 21710, "loc": { "start": { "line": 503, @@ -47709,8 +47709,8 @@ "binop": null }, "value": "labelsShown", - "start": 21676, - "end": 21687, + "start": 21711, + "end": 21722, "loc": { "start": { "line": 503, @@ -47735,8 +47735,8 @@ "binop": null, "updateContext": null }, - "start": 21687, - "end": 21688, + "start": 21722, + "end": 21723, "loc": { "start": { "line": 503, @@ -47760,8 +47760,8 @@ "postfix": false, "binop": null }, - "start": 21697, - "end": 21698, + "start": 21732, + "end": 21733, "loc": { "start": { "line": 504, @@ -47785,8 +47785,8 @@ "postfix": false, "binop": null }, - "start": 21703, - "end": 21704, + "start": 21738, + "end": 21739, "loc": { "start": { "line": 505, @@ -47801,8 +47801,8 @@ { "type": "CommentBlock", "value": "*\n * Shows all or hides the axis wires of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the axis wires.\n ", - "start": 21710, - "end": 21881, + "start": 21745, + "end": 21916, "loc": { "start": { "line": 507, @@ -47827,8 +47827,8 @@ "binop": null }, "value": "setAxisVisible", - "start": 21886, - "end": 21900, + "start": 21921, + "end": 21935, "loc": { "start": { "line": 512, @@ -47852,8 +47852,8 @@ "postfix": false, "binop": null }, - "start": 21900, - "end": 21901, + "start": 21935, + "end": 21936, "loc": { "start": { "line": 512, @@ -47878,8 +47878,8 @@ "binop": null }, "value": "axisVisible", - "start": 21901, - "end": 21912, + "start": 21936, + "end": 21947, "loc": { "start": { "line": 512, @@ -47903,8 +47903,8 @@ "postfix": false, "binop": null }, - "start": 21912, - "end": 21913, + "start": 21947, + "end": 21948, "loc": { "start": { "line": 512, @@ -47928,8 +47928,8 @@ "postfix": false, "binop": null }, - "start": 21914, - "end": 21915, + "start": 21949, + "end": 21950, "loc": { "start": { "line": 512, @@ -47956,8 +47956,8 @@ "updateContext": null }, "value": "for", - "start": 21924, - "end": 21927, + "start": 21959, + "end": 21962, "loc": { "start": { "line": 513, @@ -47981,8 +47981,8 @@ "postfix": false, "binop": null }, - "start": 21928, - "end": 21929, + "start": 21963, + "end": 21964, "loc": { "start": { "line": 513, @@ -48009,8 +48009,8 @@ "updateContext": null }, "value": "const", - "start": 21929, - "end": 21934, + "start": 21964, + "end": 21969, "loc": { "start": { "line": 513, @@ -48035,8 +48035,8 @@ "binop": null, "updateContext": null }, - "start": 21935, - "end": 21936, + "start": 21970, + "end": 21971, "loc": { "start": { "line": 513, @@ -48061,8 +48061,8 @@ "binop": null }, "value": "key", - "start": 21936, - "end": 21939, + "start": 21971, + "end": 21974, "loc": { "start": { "line": 513, @@ -48087,8 +48087,8 @@ "binop": null, "updateContext": null }, - "start": 21939, - "end": 21940, + "start": 21974, + "end": 21975, "loc": { "start": { "line": 513, @@ -48113,8 +48113,8 @@ "binop": null }, "value": "measurement", - "start": 21941, - "end": 21952, + "start": 21976, + "end": 21987, "loc": { "start": { "line": 513, @@ -48139,8 +48139,8 @@ "binop": null, "updateContext": null }, - "start": 21952, - "end": 21953, + "start": 21987, + "end": 21988, "loc": { "start": { "line": 513, @@ -48165,8 +48165,8 @@ "binop": null }, "value": "of", - "start": 21954, - "end": 21956, + "start": 21989, + "end": 21991, "loc": { "start": { "line": 513, @@ -48191,8 +48191,8 @@ "binop": null }, "value": "Object", - "start": 21957, - "end": 21963, + "start": 21992, + "end": 21998, "loc": { "start": { "line": 513, @@ -48217,8 +48217,8 @@ "binop": null, "updateContext": null }, - "start": 21963, - "end": 21964, + "start": 21998, + "end": 21999, "loc": { "start": { "line": 513, @@ -48243,8 +48243,8 @@ "binop": null }, "value": "entries", - "start": 21964, - "end": 21971, + "start": 21999, + "end": 22006, "loc": { "start": { "line": 513, @@ -48268,8 +48268,8 @@ "postfix": false, "binop": null }, - "start": 21971, - "end": 21972, + "start": 22006, + "end": 22007, "loc": { "start": { "line": 513, @@ -48296,8 +48296,8 @@ "updateContext": null }, "value": "this", - "start": 21972, - "end": 21976, + "start": 22007, + "end": 22011, "loc": { "start": { "line": 513, @@ -48322,8 +48322,8 @@ "binop": null, "updateContext": null }, - "start": 21976, - "end": 21977, + "start": 22011, + "end": 22012, "loc": { "start": { "line": 513, @@ -48348,8 +48348,8 @@ "binop": null }, "value": "measurements", - "start": 21977, - "end": 21989, + "start": 22012, + "end": 22024, "loc": { "start": { "line": 513, @@ -48373,8 +48373,8 @@ "postfix": false, "binop": null }, - "start": 21989, - "end": 21990, + "start": 22024, + "end": 22025, "loc": { "start": { "line": 513, @@ -48398,8 +48398,8 @@ "postfix": false, "binop": null }, - "start": 21990, - "end": 21991, + "start": 22025, + "end": 22026, "loc": { "start": { "line": 513, @@ -48423,8 +48423,8 @@ "postfix": false, "binop": null }, - "start": 21992, - "end": 21993, + "start": 22027, + "end": 22028, "loc": { "start": { "line": 513, @@ -48449,8 +48449,8 @@ "binop": null }, "value": "measurement", - "start": 22006, - "end": 22017, + "start": 22041, + "end": 22052, "loc": { "start": { "line": 514, @@ -48475,8 +48475,8 @@ "binop": null, "updateContext": null }, - "start": 22017, - "end": 22018, + "start": 22052, + "end": 22053, "loc": { "start": { "line": 514, @@ -48501,8 +48501,8 @@ "binop": null }, "value": "axisVisible", - "start": 22018, - "end": 22029, + "start": 22053, + "end": 22064, "loc": { "start": { "line": 514, @@ -48528,8 +48528,8 @@ "updateContext": null }, "value": "=", - "start": 22030, - "end": 22031, + "start": 22065, + "end": 22066, "loc": { "start": { "line": 514, @@ -48554,8 +48554,8 @@ "binop": null }, "value": "axisVisible", - "start": 22032, - "end": 22043, + "start": 22067, + "end": 22078, "loc": { "start": { "line": 514, @@ -48580,8 +48580,8 @@ "binop": null, "updateContext": null }, - "start": 22043, - "end": 22044, + "start": 22078, + "end": 22079, "loc": { "start": { "line": 514, @@ -48605,8 +48605,8 @@ "postfix": false, "binop": null }, - "start": 22053, - "end": 22054, + "start": 22088, + "end": 22089, "loc": { "start": { "line": 515, @@ -48633,8 +48633,8 @@ "updateContext": null }, "value": "this", - "start": 22063, - "end": 22067, + "start": 22098, + "end": 22102, "loc": { "start": { "line": 516, @@ -48659,8 +48659,8 @@ "binop": null, "updateContext": null }, - "start": 22067, - "end": 22068, + "start": 22102, + "end": 22103, "loc": { "start": { "line": 516, @@ -48685,8 +48685,8 @@ "binop": null }, "value": "defaultAxisVisible", - "start": 22068, - "end": 22086, + "start": 22103, + "end": 22121, "loc": { "start": { "line": 516, @@ -48712,8 +48712,8 @@ "updateContext": null }, "value": "=", - "start": 22087, - "end": 22088, + "start": 22122, + "end": 22123, "loc": { "start": { "line": 516, @@ -48738,8 +48738,8 @@ "binop": null }, "value": "axisVisible", - "start": 22089, - "end": 22100, + "start": 22124, + "end": 22135, "loc": { "start": { "line": 516, @@ -48764,8 +48764,8 @@ "binop": null, "updateContext": null }, - "start": 22100, - "end": 22101, + "start": 22135, + "end": 22136, "loc": { "start": { "line": 516, @@ -48789,8 +48789,8 @@ "postfix": false, "binop": null }, - "start": 22106, - "end": 22107, + "start": 22141, + "end": 22142, "loc": { "start": { "line": 517, @@ -48805,8 +48805,8 @@ { "type": "CommentBlock", "value": "*\n * Gets if the axis wires of each {@link DistanceMeasurement} are visible.\n *\n * @returns {Boolean} Whether or not the axis wires are visible.\n ", - "start": 22113, - "end": 22279, + "start": 22148, + "end": 22314, "loc": { "start": { "line": 519, @@ -48831,8 +48831,8 @@ "binop": null }, "value": "getAxisVisible", - "start": 22284, - "end": 22298, + "start": 22319, + "end": 22333, "loc": { "start": { "line": 524, @@ -48856,8 +48856,8 @@ "postfix": false, "binop": null }, - "start": 22298, - "end": 22299, + "start": 22333, + "end": 22334, "loc": { "start": { "line": 524, @@ -48881,8 +48881,8 @@ "postfix": false, "binop": null }, - "start": 22299, - "end": 22300, + "start": 22334, + "end": 22335, "loc": { "start": { "line": 524, @@ -48906,8 +48906,8 @@ "postfix": false, "binop": null }, - "start": 22301, - "end": 22302, + "start": 22336, + "end": 22337, "loc": { "start": { "line": 524, @@ -48934,8 +48934,8 @@ "updateContext": null }, "value": "return", - "start": 22311, - "end": 22317, + "start": 22346, + "end": 22352, "loc": { "start": { "line": 525, @@ -48962,8 +48962,8 @@ "updateContext": null }, "value": "this", - "start": 22318, - "end": 22322, + "start": 22353, + "end": 22357, "loc": { "start": { "line": 525, @@ -48988,8 +48988,8 @@ "binop": null, "updateContext": null }, - "start": 22322, - "end": 22323, + "start": 22357, + "end": 22358, "loc": { "start": { "line": 525, @@ -49014,8 +49014,8 @@ "binop": null }, "value": "defaultAxisVisible", - "start": 22323, - "end": 22341, + "start": 22358, + "end": 22376, "loc": { "start": { "line": 525, @@ -49040,8 +49040,8 @@ "binop": null, "updateContext": null }, - "start": 22341, - "end": 22342, + "start": 22376, + "end": 22377, "loc": { "start": { "line": 525, @@ -49065,8 +49065,8 @@ "postfix": false, "binop": null }, - "start": 22347, - "end": 22348, + "start": 22382, + "end": 22383, "loc": { "start": { "line": 526, @@ -49081,8 +49081,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys all {@link DistanceMeasurement}s.\n ", - "start": 22354, - "end": 22415, + "start": 22389, + "end": 22450, "loc": { "start": { "line": 528, @@ -49107,8 +49107,8 @@ "binop": null }, "value": "clear", - "start": 22420, - "end": 22425, + "start": 22455, + "end": 22460, "loc": { "start": { "line": 531, @@ -49132,8 +49132,8 @@ "postfix": false, "binop": null }, - "start": 22425, - "end": 22426, + "start": 22460, + "end": 22461, "loc": { "start": { "line": 531, @@ -49157,8 +49157,8 @@ "postfix": false, "binop": null }, - "start": 22426, - "end": 22427, + "start": 22461, + "end": 22462, "loc": { "start": { "line": 531, @@ -49182,8 +49182,8 @@ "postfix": false, "binop": null }, - "start": 22428, - "end": 22429, + "start": 22463, + "end": 22464, "loc": { "start": { "line": 531, @@ -49210,8 +49210,8 @@ "updateContext": null }, "value": "const", - "start": 22438, - "end": 22443, + "start": 22473, + "end": 22478, "loc": { "start": { "line": 532, @@ -49236,8 +49236,8 @@ "binop": null }, "value": "ids", - "start": 22444, - "end": 22447, + "start": 22479, + "end": 22482, "loc": { "start": { "line": 532, @@ -49263,8 +49263,8 @@ "updateContext": null }, "value": "=", - "start": 22448, - "end": 22449, + "start": 22483, + "end": 22484, "loc": { "start": { "line": 532, @@ -49289,8 +49289,8 @@ "binop": null }, "value": "Object", - "start": 22450, - "end": 22456, + "start": 22485, + "end": 22491, "loc": { "start": { "line": 532, @@ -49315,8 +49315,8 @@ "binop": null, "updateContext": null }, - "start": 22456, - "end": 22457, + "start": 22491, + "end": 22492, "loc": { "start": { "line": 532, @@ -49341,8 +49341,8 @@ "binop": null }, "value": "keys", - "start": 22457, - "end": 22461, + "start": 22492, + "end": 22496, "loc": { "start": { "line": 532, @@ -49366,8 +49366,8 @@ "postfix": false, "binop": null }, - "start": 22461, - "end": 22462, + "start": 22496, + "end": 22497, "loc": { "start": { "line": 532, @@ -49394,8 +49394,8 @@ "updateContext": null }, "value": "this", - "start": 22462, - "end": 22466, + "start": 22497, + "end": 22501, "loc": { "start": { "line": 532, @@ -49420,8 +49420,8 @@ "binop": null, "updateContext": null }, - "start": 22466, - "end": 22467, + "start": 22501, + "end": 22502, "loc": { "start": { "line": 532, @@ -49446,8 +49446,8 @@ "binop": null }, "value": "_measurements", - "start": 22467, - "end": 22480, + "start": 22502, + "end": 22515, "loc": { "start": { "line": 532, @@ -49471,8 +49471,8 @@ "postfix": false, "binop": null }, - "start": 22480, - "end": 22481, + "start": 22515, + "end": 22516, "loc": { "start": { "line": 532, @@ -49497,8 +49497,8 @@ "binop": null, "updateContext": null }, - "start": 22481, - "end": 22482, + "start": 22516, + "end": 22517, "loc": { "start": { "line": 532, @@ -49525,8 +49525,8 @@ "updateContext": null }, "value": "for", - "start": 22491, - "end": 22494, + "start": 22526, + "end": 22529, "loc": { "start": { "line": 533, @@ -49550,8 +49550,8 @@ "postfix": false, "binop": null }, - "start": 22495, - "end": 22496, + "start": 22530, + "end": 22531, "loc": { "start": { "line": 533, @@ -49578,8 +49578,8 @@ "updateContext": null }, "value": "var", - "start": 22496, - "end": 22499, + "start": 22531, + "end": 22534, "loc": { "start": { "line": 533, @@ -49604,8 +49604,8 @@ "binop": null }, "value": "i", - "start": 22500, - "end": 22501, + "start": 22535, + "end": 22536, "loc": { "start": { "line": 533, @@ -49631,8 +49631,8 @@ "updateContext": null }, "value": "=", - "start": 22502, - "end": 22503, + "start": 22537, + "end": 22538, "loc": { "start": { "line": 533, @@ -49658,8 +49658,8 @@ "updateContext": null }, "value": 0, - "start": 22504, - "end": 22505, + "start": 22539, + "end": 22540, "loc": { "start": { "line": 533, @@ -49684,8 +49684,8 @@ "binop": null, "updateContext": null }, - "start": 22505, - "end": 22506, + "start": 22540, + "end": 22541, "loc": { "start": { "line": 533, @@ -49710,8 +49710,8 @@ "binop": null }, "value": "len", - "start": 22507, - "end": 22510, + "start": 22542, + "end": 22545, "loc": { "start": { "line": 533, @@ -49737,8 +49737,8 @@ "updateContext": null }, "value": "=", - "start": 22511, - "end": 22512, + "start": 22546, + "end": 22547, "loc": { "start": { "line": 533, @@ -49763,8 +49763,8 @@ "binop": null }, "value": "ids", - "start": 22513, - "end": 22516, + "start": 22548, + "end": 22551, "loc": { "start": { "line": 533, @@ -49789,8 +49789,8 @@ "binop": null, "updateContext": null }, - "start": 22516, - "end": 22517, + "start": 22551, + "end": 22552, "loc": { "start": { "line": 533, @@ -49815,8 +49815,8 @@ "binop": null }, "value": "length", - "start": 22517, - "end": 22523, + "start": 22552, + "end": 22558, "loc": { "start": { "line": 533, @@ -49841,8 +49841,8 @@ "binop": null, "updateContext": null }, - "start": 22523, - "end": 22524, + "start": 22558, + "end": 22559, "loc": { "start": { "line": 533, @@ -49867,8 +49867,8 @@ "binop": null }, "value": "i", - "start": 22525, - "end": 22526, + "start": 22560, + "end": 22561, "loc": { "start": { "line": 533, @@ -49894,8 +49894,8 @@ "updateContext": null }, "value": "<", - "start": 22527, - "end": 22528, + "start": 22562, + "end": 22563, "loc": { "start": { "line": 533, @@ -49920,8 +49920,8 @@ "binop": null }, "value": "len", - "start": 22529, - "end": 22532, + "start": 22564, + "end": 22567, "loc": { "start": { "line": 533, @@ -49946,8 +49946,8 @@ "binop": null, "updateContext": null }, - "start": 22532, - "end": 22533, + "start": 22567, + "end": 22568, "loc": { "start": { "line": 533, @@ -49972,8 +49972,8 @@ "binop": null }, "value": "i", - "start": 22534, - "end": 22535, + "start": 22569, + "end": 22570, "loc": { "start": { "line": 533, @@ -49998,8 +49998,8 @@ "binop": null }, "value": "++", - "start": 22535, - "end": 22537, + "start": 22570, + "end": 22572, "loc": { "start": { "line": 533, @@ -50023,8 +50023,8 @@ "postfix": false, "binop": null }, - "start": 22537, - "end": 22538, + "start": 22572, + "end": 22573, "loc": { "start": { "line": 533, @@ -50048,8 +50048,8 @@ "postfix": false, "binop": null }, - "start": 22539, - "end": 22540, + "start": 22574, + "end": 22575, "loc": { "start": { "line": 533, @@ -50076,8 +50076,8 @@ "updateContext": null }, "value": "this", - "start": 22553, - "end": 22557, + "start": 22588, + "end": 22592, "loc": { "start": { "line": 534, @@ -50102,8 +50102,8 @@ "binop": null, "updateContext": null }, - "start": 22557, - "end": 22558, + "start": 22592, + "end": 22593, "loc": { "start": { "line": 534, @@ -50128,8 +50128,8 @@ "binop": null }, "value": "destroyMeasurement", - "start": 22558, - "end": 22576, + "start": 22593, + "end": 22611, "loc": { "start": { "line": 534, @@ -50153,8 +50153,8 @@ "postfix": false, "binop": null }, - "start": 22576, - "end": 22577, + "start": 22611, + "end": 22612, "loc": { "start": { "line": 534, @@ -50179,8 +50179,8 @@ "binop": null }, "value": "ids", - "start": 22577, - "end": 22580, + "start": 22612, + "end": 22615, "loc": { "start": { "line": 534, @@ -50205,8 +50205,8 @@ "binop": null, "updateContext": null }, - "start": 22580, - "end": 22581, + "start": 22615, + "end": 22616, "loc": { "start": { "line": 534, @@ -50231,8 +50231,8 @@ "binop": null }, "value": "i", - "start": 22581, - "end": 22582, + "start": 22616, + "end": 22617, "loc": { "start": { "line": 534, @@ -50257,8 +50257,8 @@ "binop": null, "updateContext": null }, - "start": 22582, - "end": 22583, + "start": 22617, + "end": 22618, "loc": { "start": { "line": 534, @@ -50282,8 +50282,8 @@ "postfix": false, "binop": null }, - "start": 22583, - "end": 22584, + "start": 22618, + "end": 22619, "loc": { "start": { "line": 534, @@ -50308,8 +50308,8 @@ "binop": null, "updateContext": null }, - "start": 22584, - "end": 22585, + "start": 22619, + "end": 22620, "loc": { "start": { "line": 534, @@ -50333,8 +50333,8 @@ "postfix": false, "binop": null }, - "start": 22594, - "end": 22595, + "start": 22629, + "end": 22630, "loc": { "start": { "line": 535, @@ -50358,8 +50358,8 @@ "postfix": false, "binop": null }, - "start": 22600, - "end": 22601, + "start": 22635, + "end": 22636, "loc": { "start": { "line": 536, @@ -50374,8 +50374,8 @@ { "type": "CommentBlock", "value": "*\n * Destroys this DistanceMeasurementsPlugin.\n *\n * Destroys all {@link DistanceMeasurement}s first.\n ", - "start": 22607, - "end": 22730, + "start": 22642, + "end": 22765, "loc": { "start": { "line": 538, @@ -50400,8 +50400,8 @@ "binop": null }, "value": "destroy", - "start": 22735, - "end": 22742, + "start": 22770, + "end": 22777, "loc": { "start": { "line": 543, @@ -50425,8 +50425,8 @@ "postfix": false, "binop": null }, - "start": 22742, - "end": 22743, + "start": 22777, + "end": 22778, "loc": { "start": { "line": 543, @@ -50450,8 +50450,8 @@ "postfix": false, "binop": null }, - "start": 22743, - "end": 22744, + "start": 22778, + "end": 22779, "loc": { "start": { "line": 543, @@ -50475,8 +50475,8 @@ "postfix": false, "binop": null }, - "start": 22745, - "end": 22746, + "start": 22780, + "end": 22781, "loc": { "start": { "line": 543, @@ -50503,8 +50503,8 @@ "updateContext": null }, "value": "this", - "start": 22755, - "end": 22759, + "start": 22790, + "end": 22794, "loc": { "start": { "line": 544, @@ -50529,8 +50529,8 @@ "binop": null, "updateContext": null }, - "start": 22759, - "end": 22760, + "start": 22794, + "end": 22795, "loc": { "start": { "line": 544, @@ -50555,8 +50555,8 @@ "binop": null }, "value": "clear", - "start": 22760, - "end": 22765, + "start": 22795, + "end": 22800, "loc": { "start": { "line": 544, @@ -50580,8 +50580,8 @@ "postfix": false, "binop": null }, - "start": 22765, - "end": 22766, + "start": 22800, + "end": 22801, "loc": { "start": { "line": 544, @@ -50605,8 +50605,8 @@ "postfix": false, "binop": null }, - "start": 22766, - "end": 22767, + "start": 22801, + "end": 22802, "loc": { "start": { "line": 544, @@ -50631,8 +50631,8 @@ "binop": null, "updateContext": null }, - "start": 22767, - "end": 22768, + "start": 22802, + "end": 22803, "loc": { "start": { "line": 544, @@ -50659,8 +50659,8 @@ "updateContext": null }, "value": "super", - "start": 22777, - "end": 22782, + "start": 22812, + "end": 22817, "loc": { "start": { "line": 545, @@ -50685,8 +50685,8 @@ "binop": null, "updateContext": null }, - "start": 22782, - "end": 22783, + "start": 22817, + "end": 22818, "loc": { "start": { "line": 545, @@ -50711,8 +50711,8 @@ "binop": null }, "value": "destroy", - "start": 22783, - "end": 22790, + "start": 22818, + "end": 22825, "loc": { "start": { "line": 545, @@ -50736,8 +50736,8 @@ "postfix": false, "binop": null }, - "start": 22790, - "end": 22791, + "start": 22825, + "end": 22826, "loc": { "start": { "line": 545, @@ -50761,8 +50761,8 @@ "postfix": false, "binop": null }, - "start": 22791, - "end": 22792, + "start": 22826, + "end": 22827, "loc": { "start": { "line": 545, @@ -50787,8 +50787,8 @@ "binop": null, "updateContext": null }, - "start": 22792, - "end": 22793, + "start": 22827, + "end": 22828, "loc": { "start": { "line": 545, @@ -50812,8 +50812,8 @@ "postfix": false, "binop": null }, - "start": 22798, - "end": 22799, + "start": 22833, + "end": 22834, "loc": { "start": { "line": 546, @@ -50837,8 +50837,8 @@ "postfix": false, "binop": null }, - "start": 22800, - "end": 22801, + "start": 22835, + "end": 22836, "loc": { "start": { "line": 547, @@ -50865,8 +50865,8 @@ "updateContext": null }, "value": "export", - "start": 22803, - "end": 22809, + "start": 22838, + "end": 22844, "loc": { "start": { "line": 549, @@ -50890,8 +50890,8 @@ "postfix": false, "binop": null }, - "start": 22810, - "end": 22811, + "start": 22845, + "end": 22846, "loc": { "start": { "line": 549, @@ -50916,8 +50916,8 @@ "binop": null }, "value": "DistanceMeasurementsPlugin", - "start": 22811, - "end": 22837, + "start": 22846, + "end": 22872, "loc": { "start": { "line": 549, @@ -50941,8 +50941,8 @@ "postfix": false, "binop": null }, - "start": 22837, - "end": 22838, + "start": 22872, + "end": 22873, "loc": { "start": { "line": 549, @@ -50967,8 +50967,8 @@ "binop": null, "updateContext": null }, - "start": 22838, - "end": 22838, + "start": 22873, + "end": 22873, "loc": { "start": { "line": 549, diff --git a/docs/class/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js~AngleMeasurementsPlugin.html b/docs/class/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js~AngleMeasurementsPlugin.html index d5e61450c0..f2ef48332c 100644 --- a/docs/class/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js~AngleMeasurementsPlugin.html +++ b/docs/class/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js~AngleMeasurementsPlugin.html @@ -466,7 +466,7 @@
import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from "xeokit-sdk.es.js";
const viewer = new Viewer({
diff --git a/docs/class/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js~DistanceMeasurementsPlugin.html b/docs/class/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js~DistanceMeasurementsPlugin.html
index 9df95f6325..814853fd66 100644
--- a/docs/class/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js~DistanceMeasurementsPlugin.html
+++ b/docs/class/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js~DistanceMeasurementsPlugin.html
@@ -479,7 +479,7 @@ Example 5: Cr
to the nearest vertex or edge. While creating the measurements, a long-touch when setting the
start or end point will cause the point to snap to the nearest vertex or edge. A quick
touch-release will immediately set the point at the tapped position on the object surface.
-
+
import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from "xeokit-sdk.es.js";
const viewer = new Viewer({
diff --git a/docs/file/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js.html b/docs/file/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js.html
index d88a151d77..9d56dbc8db 100644
--- a/docs/file/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js.html
+++ b/docs/file/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js.html
@@ -471,7 +471,7 @@
* start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick
* touch-release will immediately set the point at the tapped position on the object surface.
*
- * [[Run example](/examples/measurement/#angle_createWithTouch_snapping)]
+ * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)]
*
* ````javascript
* import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from "xeokit-sdk.es.js";
diff --git a/docs/file/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js.html b/docs/file/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js.html
index dd84e901a2..af43d9bb04 100644
--- a/docs/file/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js.html
+++ b/docs/file/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js.html
@@ -489,7 +489,7 @@
* start or end point will cause the point to snap to the nearest vertex or edge. A quick
* touch-release will immediately set the point at the tapped position on the object surface.
*
- * [[Run example](/examples/measurement/#distance_createWithTouch_snapping)]
+ * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#distance_createWithTouch_snapping)]
*
* ````javascript
* import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from "xeokit-sdk.es.js";
diff --git a/docs/index.json b/docs/index.json
index 080934a37e..eb6e552f59 100644
--- a/docs/index.json
+++ b/docs/index.json
@@ -6354,7 +6354,7 @@
"__docId__": 431,
"kind": "file",
"name": "src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js",
- "content": "import {Plugin} from \"../../viewer/Plugin.js\";\nimport {AngleMeasurement} from \"./AngleMeasurement.js\";\nimport {AngleMeasurementsMouseControl} from \"./AngleMeasurementsMouseControl.js\";\n\n/**\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n */\nexport class AngleMeasurementsPlugin extends Plugin {\n\n /**\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"AngleMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {string} [cfg.defaultColor=null] The default color of the dots, wire and label.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of {@link AngleMeasurement.labelsVisible}.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n */\n constructor(viewer, cfg = {}) {\n\n super(\"AngleMeasurements\", viewer);\n\n this._container = cfg.container || document.body;\n\n this._defaultControl = null;\n\n this._measurements = {};\n\n this.defaultColor = cfg.defaultColor !== undefined ? cfg.defaultColor : \"#00BBFF\";\n this.defaultLabelsVisible = cfg.defaultLabelsVisible !== false;\n this.zIndex = cfg.zIndex || 10000;\n\n this._onMouseOver = (event, measurement) => {\n this.fire(\"mouseOver\", {\n plugin: this,\n angleMeasurement: measurement,\n measurement,\n event\n });\n }\n\n this._onMouseLeave = (event, measurement) => {\n this.fire(\"mouseLeave\", {\n plugin: this,\n angleMeasurement: measurement,\n measurement,\n event\n });\n };\n\n this._onContextMenu = (event, measurement) => {\n this.fire(\"contextMenu\", {\n plugin: this,\n angleMeasurement: measurement,\n measurement,\n event\n });\n };\n }\n\n /**\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n */\n getContainerElement() {\n return this._container;\n }\n\n\n /**\n * @private\n */\n send(name, value) {\n\n }\n\n /**\n * Gets the default {@link AngleMeasurementsMouseControl}.\n *\n * @type {AngleMeasurementsMouseControl}\n * @deprecated\n */\n get control() {\n if (!this._defaultControl) {\n this._defaultControl = new AngleMeasurementsMouseControl(this, {});\n }\n return this._defaultControl;\n }\n\n /**\n * Gets the existing {@link AngleMeasurement}s, each mapped to its {@link AngleMeasurement#id}.\n *\n * @type {{String:AngleMeasurement}}\n */\n get measurements() {\n return this._measurements;\n }\n\n /**\n * Creates an {@link AngleMeasurement}.\n *\n * The AngleMeasurement is then registered by {@link AngleMeasurement#id} in {@link AngleMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link AngleMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link AngleMeasurement#id}. The AngleMeasurement will be registered by this in {@link AngleMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.corner.worldPos Corner World-space 3D position.\n * @param {Entity} params.corner.entity Corner Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link AngleMeasurement}.\n * @returns {AngleMeasurement} The new {@link AngleMeasurement}.\n */\n createMeasurement(params = {}) {\n if (this.viewer.scene.components[params.id]) {\n this.error(\"Viewer scene component with this ID already exists: \" + params.id);\n delete params.id;\n }\n const origin = params.origin;\n const corner = params.corner;\n const target = params.target;\n const measurement = new AngleMeasurement(this, {\n id: params.id,\n plugin: this,\n container: this._container,\n origin: {\n entity: origin.entity,\n worldPos: origin.worldPos\n },\n corner: {\n entity: corner.entity,\n worldPos: corner.worldPos\n },\n target: {\n entity: target.entity,\n worldPos: target.worldPos\n },\n\n visible: params.visible,\n originVisible: true,\n originWireVisible: true,\n cornerVisible: true,\n targetWireVisible: true,\n targetVisible: true,\n onMouseOver: this._onMouseOver,\n onMouseLeave: this._onMouseLeave,\n onContextMenu: this._onContextMenu\n });\n this._measurements[measurement.id] = measurement;\n measurement.on(\"destroyed\", () => {\n delete this._measurements[measurement.id];\n });\n measurement.clickable = true;\n this.fire(\"measurementCreated\", measurement);\n return measurement;\n }\n\n /**\n * Destroys a {@link AngleMeasurement}.\n *\n * @param {String} id ID of AngleMeasurement to destroy.\n */\n destroyMeasurement(id) {\n const measurement = this._measurements[id];\n if (!measurement) {\n this.log(\"AngleMeasurement not found: \" + id);\n return;\n }\n measurement.destroy();\n this.fire(\"measurementDestroyed\", measurement);\n }\n\n /**\n * Shows all or hides the angle label of each {@link AngleMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n */\n setLabelsShown(labelsShown) {\n for (const [key, measurement] of Object.entries(this.measurements)) {\n measurement.labelShown = labelsShown;\n }\n }\n\n /**\n * Destroys all {@link AngleMeasurement}s.\n */\n clear() {\n const ids = Object.keys(this._measurements);\n for (var i = 0, len = ids.length; i < len; i++) {\n this.destroyMeasurement(ids[i]);\n }\n }\n\n /**\n * Destroys this AngleMeasurementsPlugin.\n *\n * Destroys all {@link AngleMeasurement}s first.\n */\n destroy() {\n this.clear();\n super.destroy();\n }\n}\n\n",
+ "content": "import {Plugin} from \"../../viewer/Plugin.js\";\nimport {AngleMeasurement} from \"./AngleMeasurement.js\";\nimport {AngleMeasurementsMouseControl} from \"./AngleMeasurementsMouseControl.js\";\n\n/**\n * {@link Viewer} plugin for measuring angles.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n *\n * * [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n * * [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ## Overview\n *\n * * An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\n * as three positions on the surface(s) of one or more {@link Entity}s.\n * * As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n * * Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n * * Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n * * Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n * * Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n *\n * ## Example 1: Creating AngleMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n *\n * Note how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true\n * });\n *\n * const myMeasurement2 = angleMeasurements.createMeasurement({\n * id: \"myAngleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating AngleMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n *\n * After we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\n * that will fix its target and complete the AngleMeasurement.\n *\n * The AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\n * another AngleMeasurement, and so on, until deactivated again.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * cconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * angleMeasurementsMouseControl.snapToVertex = true;\n * angleMeasurementsMouseControl.snapToEdge = true;\n *\n * angleMeasurementsMouseControl.activate();\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach even handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * angleMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * angleMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * angleMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n * },\n * visible: true\n * });\n *\n * angleMeasurementsPlugin.createMeasurement({\n * id: \"angleMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n * },\n * corner: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n * worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n *\n * },\n * target: {\n * entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n * worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n * },\n * visible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating AngleMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create angle measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const angleMeasurements = new AngleMeasurementsPlugin(viewer);\n *\n * const angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * angleMeasurementsTouchControl.activate();\n * ````\n */\nexport class AngleMeasurementsPlugin extends Plugin {\n\n /**\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"AngleMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {string} [cfg.defaultColor=null] The default color of the dots, wire and label.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of {@link AngleMeasurement.labelsVisible}.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n */\n constructor(viewer, cfg = {}) {\n\n super(\"AngleMeasurements\", viewer);\n\n this._container = cfg.container || document.body;\n\n this._defaultControl = null;\n\n this._measurements = {};\n\n this.defaultColor = cfg.defaultColor !== undefined ? cfg.defaultColor : \"#00BBFF\";\n this.defaultLabelsVisible = cfg.defaultLabelsVisible !== false;\n this.zIndex = cfg.zIndex || 10000;\n\n this._onMouseOver = (event, measurement) => {\n this.fire(\"mouseOver\", {\n plugin: this,\n angleMeasurement: measurement,\n measurement,\n event\n });\n }\n\n this._onMouseLeave = (event, measurement) => {\n this.fire(\"mouseLeave\", {\n plugin: this,\n angleMeasurement: measurement,\n measurement,\n event\n });\n };\n\n this._onContextMenu = (event, measurement) => {\n this.fire(\"contextMenu\", {\n plugin: this,\n angleMeasurement: measurement,\n measurement,\n event\n });\n };\n }\n\n /**\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n */\n getContainerElement() {\n return this._container;\n }\n\n\n /**\n * @private\n */\n send(name, value) {\n\n }\n\n /**\n * Gets the default {@link AngleMeasurementsMouseControl}.\n *\n * @type {AngleMeasurementsMouseControl}\n * @deprecated\n */\n get control() {\n if (!this._defaultControl) {\n this._defaultControl = new AngleMeasurementsMouseControl(this, {});\n }\n return this._defaultControl;\n }\n\n /**\n * Gets the existing {@link AngleMeasurement}s, each mapped to its {@link AngleMeasurement#id}.\n *\n * @type {{String:AngleMeasurement}}\n */\n get measurements() {\n return this._measurements;\n }\n\n /**\n * Creates an {@link AngleMeasurement}.\n *\n * The AngleMeasurement is then registered by {@link AngleMeasurement#id} in {@link AngleMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link AngleMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link AngleMeasurement#id}. The AngleMeasurement will be registered by this in {@link AngleMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.corner.worldPos Corner World-space 3D position.\n * @param {Entity} params.corner.entity Corner Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link AngleMeasurement}.\n * @returns {AngleMeasurement} The new {@link AngleMeasurement}.\n */\n createMeasurement(params = {}) {\n if (this.viewer.scene.components[params.id]) {\n this.error(\"Viewer scene component with this ID already exists: \" + params.id);\n delete params.id;\n }\n const origin = params.origin;\n const corner = params.corner;\n const target = params.target;\n const measurement = new AngleMeasurement(this, {\n id: params.id,\n plugin: this,\n container: this._container,\n origin: {\n entity: origin.entity,\n worldPos: origin.worldPos\n },\n corner: {\n entity: corner.entity,\n worldPos: corner.worldPos\n },\n target: {\n entity: target.entity,\n worldPos: target.worldPos\n },\n\n visible: params.visible,\n originVisible: true,\n originWireVisible: true,\n cornerVisible: true,\n targetWireVisible: true,\n targetVisible: true,\n onMouseOver: this._onMouseOver,\n onMouseLeave: this._onMouseLeave,\n onContextMenu: this._onContextMenu\n });\n this._measurements[measurement.id] = measurement;\n measurement.on(\"destroyed\", () => {\n delete this._measurements[measurement.id];\n });\n measurement.clickable = true;\n this.fire(\"measurementCreated\", measurement);\n return measurement;\n }\n\n /**\n * Destroys a {@link AngleMeasurement}.\n *\n * @param {String} id ID of AngleMeasurement to destroy.\n */\n destroyMeasurement(id) {\n const measurement = this._measurements[id];\n if (!measurement) {\n this.log(\"AngleMeasurement not found: \" + id);\n return;\n }\n measurement.destroy();\n this.fire(\"measurementDestroyed\", measurement);\n }\n\n /**\n * Shows all or hides the angle label of each {@link AngleMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n */\n setLabelsShown(labelsShown) {\n for (const [key, measurement] of Object.entries(this.measurements)) {\n measurement.labelShown = labelsShown;\n }\n }\n\n /**\n * Destroys all {@link AngleMeasurement}s.\n */\n clear() {\n const ids = Object.keys(this._measurements);\n for (var i = 0, len = ids.length; i < len; i++) {\n this.destroyMeasurement(ids[i]);\n }\n }\n\n /**\n * Destroys this AngleMeasurementsPlugin.\n *\n * Destroys all {@link AngleMeasurement}s first.\n */\n destroy() {\n this.clear();\n super.destroy();\n }\n}\n\n",
"static": true,
"longname": "/home/lindsay/xeolabs/xeokit-sdk-apr15/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js",
"access": "public",
@@ -6372,7 +6372,7 @@
"export": true,
"importPath": "@xeokit/xeokit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js",
"importStyle": "{AngleMeasurementsPlugin}",
- "description": "{@link Viewer} plugin for measuring angles.\n\n[](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n\n* [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n* [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n\n## Overview\n\n* An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\nas three positions on the surface(s) of one or more {@link Entity}s.\n* As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n* Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n* Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n* Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n* Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n* Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n\n## Example 1: Creating AngleMeasurements Programmatically\n\nIn our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n\nNote how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\nposition on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n\n[[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n\n````JavaScript\nimport {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst angleMeasurements = new AngleMeasurementsPlugin(viewer);\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n\nmodel.on(\"loaded\", () => {\n\n const myMeasurement1 = angleMeasurements.createMeasurement({\n id: \"myAngleMeasurement1\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [0.044, 5.998, 17.767]\n },\n corner: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [0.044, 5.998, 17.767]\n },\n target: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [4.738, 3.172, 17.768]\n },\n visible: true\n });\n\n const myMeasurement2 = angleMeasurements.createMeasurement({\n id: \"myAngleMeasurement2\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n worldPos: [0.457, 2.532, 17.766]\n },\n corner: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n worldPos: [0.457, 2.532, 17.766]\n },\n target: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [0.436, 0.001, 22.135]\n },\n visible: true\n });\n});\n````\n\n## Example 2: Creating AngleMeasurements with Mouse Input\n\nIn our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n\nAfter we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\norigin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\nthat will fix its target and complete the AngleMeasurement.\n\nThe AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\nanother AngleMeasurement, and so on, until deactivated again.\n\n[[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n\n````JavaScript\nimport {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\ncconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n pointerLens : new PointerLens(viewer)\n})\n\nangleMeasurementsMouseControl.snapToVertex = true;\nangleMeasurementsMouseControl.snapToEdge = true;\n\nangleMeasurementsMouseControl.activate();\n````\n\n## Example 4: Attaching Mouse Handlers\n\nIn our fourth example, we'll attach even handlers to our plugin, to catch when the user\nhovers or right-clicks over our measurements.\n\n[[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n\n````javascript\nimport {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst angleMeasurements = new AngleMeasurementsPlugin(viewer);\n\nangleMeasurements.on(\"mouseOver\", (e) => {\n e.measurement.setHighlighted(true);\n});\n\nangleMeasurements.on(\"mouseLeave\", (e) => {\n e.measurement.setHighlighted(false);\n});\n\nangleMeasurements.on(\"contextMenu\", (e) => {\n // Show context menu\n e.event.preventDefault();\n});\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n\nmodel.on(\"loaded\", () => {\n\n angleMeasurementsPlugin.createMeasurement({\n id: \"angleMeasurement1\",\n origin: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n },\n corner: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n },\n target: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n },\n visible: true\n });\n\n angleMeasurementsPlugin.createMeasurement({\n id: \"angleMeasurement2\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n },\n corner: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n\n },\n target: {\n entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n },\n visible: true\n });\n});\n````\n\n## Example 5: Creating AngleMeasurements with Touch Input\n\nIn our fifth example, we'll show how to create angle measurements with touch input, with snapping\nto the nearest vertex or edge. While creating the measurements, a long-touch when setting the\nstart, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\ntouch-release will immediately set the point at the tapped position on the object surface.\n\n[[Run example](/examples/measurement/#angle_createWithTouch_snapping)]\n\n````javascript\nimport {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst angleMeasurements = new AngleMeasurementsPlugin(viewer);\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n\nconst angleMeasurements = new AngleMeasurementsPlugin(viewer);\n\nconst angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n pointerLens : new PointerLens(viewer),\n snapToVertex: true,\n snapToEdge: true\n})\n\nangleMeasurementsTouchControl.activate();\n````",
+ "description": "{@link Viewer} plugin for measuring angles.\n\n[](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)\n\n* [[Example 1: Model with angle measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n* [[Example 2: Create angle measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n\n## Overview\n\n* An {@link AngleMeasurement} shows the angle between two connected 3D line segments, given\nas three positions on the surface(s) of one or more {@link Entity}s.\n* As shown on the screen capture above, a AngleMeasurement has two wires that show the line segments, with a label that shows the angle between them.\n* Create AngleMeasurements programmatically with {@link AngleMeasurementsPlugin#createMeasurement}.\n* Create AngleMeasurements interactively using a {@link AngleMeasurementsControl}.\n* Existing AngleMeasurements are registered by ID in {@link AngleMeasurementsPlugin#measurements}.\n* Destroy AngleMeasurements using {@link AngleMeasurementsPlugin#destroyMeasurement}.\n* Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}\n\n## Example 1: Creating AngleMeasurements Programmatically\n\nIn our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a AngleMeasurementsPlugin to programmatically create two {@link AngleMeasurement}s.\n\nNote how each AngleMeasurement has ````origin````, ````corner```` and ````target````, which each indicate a 3D World-space\nposition on the surface of an {@link Entity}. These can be aon the same Entity, or on different Entitys.\n\n[[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_modelWithMeasurements)]\n\n````JavaScript\nimport {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst angleMeasurements = new AngleMeasurementsPlugin(viewer);\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n\nmodel.on(\"loaded\", () => {\n\n const myMeasurement1 = angleMeasurements.createMeasurement({\n id: \"myAngleMeasurement1\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [0.044, 5.998, 17.767]\n },\n corner: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [0.044, 5.998, 17.767]\n },\n target: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [4.738, 3.172, 17.768]\n },\n visible: true\n });\n\n const myMeasurement2 = angleMeasurements.createMeasurement({\n id: \"myAngleMeasurement2\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n worldPos: [0.457, 2.532, 17.766]\n },\n corner: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n worldPos: [0.457, 2.532, 17.766]\n },\n target: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [0.436, 0.001, 22.135]\n },\n visible: true\n });\n});\n````\n\n## Example 2: Creating AngleMeasurements with Mouse Input\n\nIn our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use the AngleMeasurementsPlugin's {@link AngleMeasurementsTouchControl} to interactively create {@link AngleMeasurement}s with mouse or touch input.\n\nAfter we've activated the AngleMeasurementsControl, the first click on any {@link Entity} begins constructing a AngleMeasurement, fixing its\norigin to that Entity. The next click on any Entity will fix the AngleMeasurement's corner, and the next click after\nthat will fix its target and complete the AngleMeasurement.\n\nThe AngleMeasurementControl will then wait for the next click on any Entity, to begin constructing\nanother AngleMeasurement, and so on, until deactivated again.\n\n[[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_angle_createWithMouse)]\n\n````JavaScript\nimport {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\ncconst angleMeasurementsMouseControl = new AngleMeasurementsMouseControl(angleMeasurements, {\n pointerLens : new PointerLens(viewer)\n})\n\nangleMeasurementsMouseControl.snapToVertex = true;\nangleMeasurementsMouseControl.snapToEdge = true;\n\nangleMeasurementsMouseControl.activate();\n````\n\n## Example 4: Attaching Mouse Handlers\n\nIn our fourth example, we'll attach even handlers to our plugin, to catch when the user\nhovers or right-clicks over our measurements.\n\n[[Run example](/examples/measurement/#angle_modelWithMeasurements)]\n\n````javascript\nimport {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst angleMeasurements = new AngleMeasurementsPlugin(viewer);\n\nangleMeasurements.on(\"mouseOver\", (e) => {\n e.measurement.setHighlighted(true);\n});\n\nangleMeasurements.on(\"mouseLeave\", (e) => {\n e.measurement.setHighlighted(false);\n});\n\nangleMeasurements.on(\"contextMenu\", (e) => {\n // Show context menu\n e.event.preventDefault();\n});\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n\nmodel.on(\"loaded\", () => {\n\n angleMeasurementsPlugin.createMeasurement({\n id: \"angleMeasurement1\",\n origin: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [0.4158603637281142, 2.5193106917110457, 17.79972838299403]\n },\n corner: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [0.41857741956197625,0.0987169929481646,17.799763071093395]\n },\n target: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [5.235526066859247, 0.11580773869801986, 17.824891550941565]\n },\n visible: true\n });\n\n angleMeasurementsPlugin.createMeasurement({\n id: \"angleMeasurement2\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n worldPos: [-0.00003814187850181838, 5.9996748076205115,17.79996871551525]\n },\n corner: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNqI\"],\n worldPos: [-0.0005214119318139865, 3.1010044228517595, 17.787656604483363]\n\n },\n target: {\n entity: viewer.scene.objects[\"1s1jVhK8z0pgKYcr9jt7AB\"],\n worldPos: [ 8.380657312957396, 3.1055697628459553, 17.799220108187185]\n },\n visible: true\n });\n});\n````\n\n## Example 5: Creating AngleMeasurements with Touch Input\n\nIn our fifth example, we'll show how to create angle measurements with touch input, with snapping\nto the nearest vertex or edge. While creating the measurements, a long-touch when setting the\nstart, corner or end point will cause the point to snap to the nearest vertex or edge. A quick\ntouch-release will immediately set the point at the tapped position on the object surface.\n\n[[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)]\n\n````javascript\nimport {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst angleMeasurements = new AngleMeasurementsPlugin(viewer);\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n\nconst angleMeasurements = new AngleMeasurementsPlugin(viewer);\n\nconst angleMeasurementsTouchControl = new AngleMeasurementsTouchControl(angleMeasurements, {\n pointerLens : new PointerLens(viewer),\n snapToVertex: true,\n snapToEdge: true\n})\n\nangleMeasurementsTouchControl.activate();\n````",
"lineNumber": 247,
"interface": false,
"extends": [
@@ -14137,7 +14137,7 @@
"__docId__": 908,
"kind": "file",
"name": "src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js",
- "content": "import {Plugin} from \"../../viewer/Plugin.js\";\nimport {DistanceMeasurement} from \"./DistanceMeasurement.js\";\nimport {DistanceMeasurementsMouseControl} from \"./DistanceMeasurementsMouseControl.js\";\n\n/**\n * {@link Viewer} plugin for measuring point-to-point distances.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n *\n * * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n * * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n * * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n *\n * ## Overview\n *\n * * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n * * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\n * and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n * * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n * * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n * * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n * * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n *\n * ## Example 1: Creating DistanceMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n *\n * Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating DistanceMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n * {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n *\n * After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n *\n * The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\n * another DistanceMeasurement, and so on, until deactivated again.\n *\n * [[Run example](/examples/measurement/#distance_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n * ````\n *\n * ## Example 3: Configuring Measurement Units and Scale\n *\n * In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n *\n * The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n *\n * * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n *\n * ````JavaScript\n * const metrics = viewer.scene.metrics;\n\n * metrics.units = \"meters\";\n * metrics.scale = 10.0;\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach event handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * distanceMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * distanceMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * distanceMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"Duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating DistanceMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create distance measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](/examples/measurement/#distance_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * distanceMeasurementsTouchControl.activate();\n * ````\n */\nclass DistanceMeasurementsPlugin extends Plugin {\n\n /**\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"DistanceMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {Number} [cfg.labelMinAxisLength=25] The minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {boolean} [cfg.defaultVisible=true] The default value of the DistanceMeasurements `visible` property.\n * @param {boolean} [cfg.defaultOriginVisible=true] The default value of the DistanceMeasurements `originVisible` property.\n * @param {boolean} [cfg.defaultTargetVisible=true] The default value of the DistanceMeasurements `targetVisible` property.\n * @param {boolean} [cfg.defaultWireVisible=true] The default value of the DistanceMeasurements `wireVisible` property.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of the DistanceMeasurements `labelsVisible` property.\n * @param {boolean} [cfg.defaultAxisVisible=true] The default value of the DistanceMeasurements `axisVisible` property.\n * @param {boolean} [cfg.defaultXAxisVisible=true] The default value of the DistanceMeasurements `xAxisVisible` property.\n * @param {boolean} [cfg.defaultYAxisVisible=true] The default value of the DistanceMeasurements `yAxisVisible` property.\n * @param {boolean} [cfg.defaultZAxisVisible=true] The default value of the DistanceMeasurements `zAxisVisible` property.\n * @param {string} [cfg.defaultColor=#00BBFF] The default color of the length dots, wire and label.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {boolean} [cfg.defaultLabelsOnWires=true] The default value of the DistanceMeasurements `labelsOnWires` property.\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n */\n constructor(viewer, cfg = {}) {\n\n super(\"DistanceMeasurements\", viewer);\n\n this._pointerLens = cfg.pointerLens;\n\n this._container = cfg.container || document.body;\n\n this._defaultControl = null;\n\n this._measurements = {};\n\n this.labelMinAxisLength = cfg.labelMinAxisLength;\n\n this.defaultVisible = cfg.defaultVisible !== false;\n this.defaultOriginVisible = cfg.defaultOriginVisible !== false;\n this.defaultTargetVisible = cfg.defaultTargetVisible !== false;\n this.defaultWireVisible = cfg.defaultWireVisible !== false;\n this.defaultLabelsVisible = cfg.defaultLabelsVisible !== false;\n this.defaultAxisVisible = cfg.defaultAxisVisible !== false;\n this.defaultXAxisVisible = cfg.defaultXAxisVisible !== false;\n this.defaultYAxisVisible = cfg.defaultYAxisVisible !== false;\n this.defaultZAxisVisible = cfg.defaultZAxisVisible !== false;\n this.defaultColor = cfg.defaultColor !== undefined ? cfg.defaultColor : \"#00BBFF\";\n this.zIndex = cfg.zIndex || 10000;\n this.defaultLabelsOnWires = cfg.defaultLabelsOnWires !== false;\n\n this._onMouseOver = (event, measurement) => {\n this.fire(\"mouseOver\", {\n plugin: this,\n distanceMeasurement: measurement,\n measurement,\n event\n });\n }\n\n this._onMouseLeave = (event, measurement) => {\n this.fire(\"mouseLeave\", {\n plugin: this,\n distanceMeasurement: measurement,\n measurement,\n event\n });\n };\n\n this._onContextMenu = (event, measurement) => {\n this.fire(\"contextMenu\", {\n plugin: this,\n distanceMeasurement: measurement,\n measurement,\n event\n });\n };\n }\n\n /**\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n */\n getContainerElement() {\n return this._container;\n }\n\n /**\n * @private\n */\n send(name, value) {\n\n }\n\n /**\n * Gets the PointerLens attached to this DistanceMeasurementsPlugin.\n * @returns {PointerCircle}\n */\n get pointerLens() {\n return this._pointerLens;\n }\n\n /**\n * Gets the default {@link DistanceMeasurementsControl}.\n *\n * @type {DistanceMeasurementsControl}\n * @deprecated\n */\n get control() {\n if (!this._defaultControl) {\n this._defaultControl = new DistanceMeasurementsMouseControl(this, {});\n }\n return this._defaultControl;\n }\n\n /**\n * Gets the existing {@link DistanceMeasurement}s, each mapped to its {@link DistanceMeasurement#id}.\n *\n * @type {{String:DistanceMeasurement}}\n */\n get measurements() {\n return this._measurements;\n }\n\n /**\n * Sets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n *\n * The axis wire's label is not shown when its length is less than this value.\n *\n * This is ````25```` pixels by default.\n *\n * Must not be less than ````1````.\n *\n * @type {number}\n */\n set labelMinAxisLength(labelMinAxisLength) {\n if (labelMinAxisLength < 1) {\n this.error(\"labelMinAxisLength must be >= 1; defaulting to 25\");\n labelMinAxisLength = 25;\n }\n this._labelMinAxisLength = labelMinAxisLength || 25;\n }\n\n /**\n * Gets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @returns {number}\n */\n get labelMinAxisLength() {\n return this._labelMinAxisLength;\n }\n\n /**\n * Creates a {@link DistanceMeasurement}.\n *\n * The DistanceMeasurement is then registered by {@link DistanceMeasurement#id} in {@link DistanceMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link DistanceMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link DistanceMeasurement#id}. The DistanceMeasurement will be registered by this in {@link DistanceMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link DistanceMeasurement}.\n * @param {Boolean} [params.originVisible=true] Whether to initially show the {@link DistanceMeasurement} origin.\n * @param {Boolean} [params.targetVisible=true] Whether to initially show the {@link DistanceMeasurement} target.\n * @param {Boolean} [params.wireVisible=true] Whether to initially show the direct point-to-point wire between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.axisVisible=true] Whether to initially show the axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.xAxisVisible=true] Whether to initially show the X-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.yAxisVisible=true] Whether to initially show the Y-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.zAxisVisible=true] Whether to initially show the Z-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.labelsVisible=true] Whether to initially show the labels.\n * @param {string} [params.color] The color of the length dot, wire and label.\n * @param {Boolean} [params.labelsOnWires=true] Determines if labels will be set on wires or one below the other.\n * @returns {DistanceMeasurement} The new {@link DistanceMeasurement}.\n */\n createMeasurement(params = {}) {\n if (this.viewer.scene.components[params.id]) {\n this.error(\"Viewer scene component with this ID already exists: \" + params.id);\n delete params.id;\n }\n const origin = params.origin;\n const target = params.target;\n const measurement = new DistanceMeasurement(this, {\n id: params.id,\n plugin: this,\n container: this._container,\n origin: {\n entity: origin.entity,\n worldPos: origin.worldPos\n },\n target: {\n entity: target.entity,\n worldPos: target.worldPos\n },\n visible: params.visible,\n wireVisible: params.wireVisible,\n axisVisible: params.axisVisible !== false && this.defaultAxisVisible !== false,\n xAxisVisible: params.xAxisVisible !== false && this.defaultXAxisVisible !== false,\n yAxisVisible: params.yAxisVisible !== false && this.defaultYAxisVisible !== false,\n zAxisVisible: params.zAxisVisible !== false && this.defaultZAxisVisible !== false,\n labelsVisible: params.labelsVisible !== false && this.defaultLabelsVisible !== false,\n originVisible: params.originVisible,\n targetVisible: params.targetVisible,\n color: params.color,\n labelsOnWires: params.labelsOnWires !== false && this.defaultLabelsOnWires !== false,\n onMouseOver: this._onMouseOver,\n onMouseLeave: this._onMouseLeave,\n onContextMenu: this._onContextMenu\n });\n this._measurements[measurement.id] = measurement;\n measurement.on(\"destroyed\", () => {\n delete this._measurements[measurement.id];\n });\n this.fire(\"measurementCreated\", measurement);\n return measurement;\n }\n\n /**\n * Destroys a {@link DistanceMeasurement}.\n *\n * @param {String} id ID of DistanceMeasurement to destroy.\n */\n destroyMeasurement(id) {\n const measurement = this._measurements[id];\n if (!measurement) {\n this.log(\"DistanceMeasurement not found: \" + id);\n return;\n }\n measurement.destroy();\n this.fire(\"measurementDestroyed\", measurement);\n }\n\n /**\n * Shows all or hides the distance label of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n */\n setLabelsShown(labelsShown) {\n for (const [key, measurement] of Object.entries(this.measurements)) {\n measurement.labelShown = labelsShown;\n }\n }\n\n /**\n * Shows all or hides the axis wires of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the axis wires.\n */\n setAxisVisible(axisVisible) {\n for (const [key, measurement] of Object.entries(this.measurements)) {\n measurement.axisVisible = axisVisible;\n }\n this.defaultAxisVisible = axisVisible;\n }\n\n /**\n * Gets if the axis wires of each {@link DistanceMeasurement} are visible.\n *\n * @returns {Boolean} Whether or not the axis wires are visible.\n */\n getAxisVisible() {\n return this.defaultAxisVisible;\n }\n\n /**\n * Destroys all {@link DistanceMeasurement}s.\n */\n clear() {\n const ids = Object.keys(this._measurements);\n for (var i = 0, len = ids.length; i < len; i++) {\n this.destroyMeasurement(ids[i]);\n }\n }\n\n /**\n * Destroys this DistanceMeasurementsPlugin.\n *\n * Destroys all {@link DistanceMeasurement}s first.\n */\n destroy() {\n this.clear();\n super.destroy();\n }\n}\n\nexport {DistanceMeasurementsPlugin}",
+ "content": "import {Plugin} from \"../../viewer/Plugin.js\";\nimport {DistanceMeasurement} from \"./DistanceMeasurement.js\";\nimport {DistanceMeasurementsMouseControl} from \"./DistanceMeasurementsMouseControl.js\";\n\n/**\n * {@link Viewer} plugin for measuring point-to-point distances.\n *\n * [](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n *\n * * [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n * * [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n * * [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n *\n * ## Overview\n *\n * * A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n * * As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\n * and three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n * * Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n * * Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n * * Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n * * Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n * * Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n *\n * ## Example 1: Creating DistanceMeasurements Programmatically\n *\n * In our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n *\n * Note how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\n * position on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 2: Creating DistanceMeasurements with Mouse Input\n *\n * In our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n * {@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n *\n * After we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\n * origin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n *\n * The DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\n * another DistanceMeasurement, and so on, until deactivated again.\n *\n * [[Run example](/examples/measurement/#distance_createWithMouse)]\n *\n * ````JavaScript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n * ````\n *\n * ## Example 3: Configuring Measurement Units and Scale\n *\n * In our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n *\n * The wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n *\n * * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n *\n * ````JavaScript\n * const metrics = viewer.scene.metrics;\n\n * metrics.units = \"meters\";\n * metrics.scale = 10.0;\n * ````\n *\n * ## Example 4: Attaching Mouse Handlers\n *\n * In our fourth example, we'll attach event handlers to our plugin, to catch when the user\n * hovers or right-clicks over our measurements.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer)\n * })\n *\n * distanceMeasurementsControl.snapToVertex = true;\n * distanceMeasurementsControl.snapToEdge = true;\n *\n * distanceMeasurementsControl.activate();\n *\n * distanceMeasurements.on(\"mouseOver\", (e) => {\n * e.measurement.setHighlighted(true);\n * });\n *\n * distanceMeasurements.on(\"mouseLeave\", (e) => {\n * e.measurement.setHighlighted(false);\n * });\n *\n * distanceMeasurements.on(\"contextMenu\", (e) => {\n * // Show context menu\n * e.event.preventDefault();\n * });\n *\n * const model = xktLoader.load({\n * src: \"Duplex.xkt\"\n * });\n *\n * model.on(\"loaded\", () => {\n *\n * const myMeasurement1 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement1\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [0.044, 5.998, 17.767]\n * },\n * target: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n * worldPos: [4.738, 3.172, 17.768]\n * },\n * visible: true,\n * wireVisible: true\n * });\n *\n * const myMeasurement2 = distanceMeasurements.createMeasurement({\n * id: \"distanceMeasurement2\",\n * origin: {\n * entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n * worldPos: [0.457, 2.532, 17.766]\n * },\n * target: {\n * entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n * worldPos: [0.436, 0.001, 22.135]\n * },\n * visible: true,\n * wireVisible: true\n * });\n * });\n * ````\n *\n * ## Example 5: Creating DistanceMeasurements with Touch Input\n *\n * In our fifth example, we'll show how to create distance measurements with touch input, with snapping\n * to the nearest vertex or edge. While creating the measurements, a long-touch when setting the\n * start or end point will cause the point to snap to the nearest vertex or edge. A quick\n * touch-release will immediately set the point at the tapped position on the object surface.\n *\n * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#distance_createWithTouch_snapping)]\n *\n * ````javascript\n * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n *\n * const viewer = new Viewer({\n * canvasId: \"myCanvas\",\n * transparent: true\n * });\n *\n * viewer.scene.camera.eye = [-2.37, 18.97, -26.12];\n * viewer.scene.camera.look = [10.97, 5.82, -11.22];\n * viewer.scene.camera.up = [0.36, 0.83, 0.40];\n *\n * const xktLoader = new XKTLoaderPlugin(viewer);\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const model = xktLoader.load({\n * src: \"./models/xkt/duplex/duplex.xkt\"\n * });\n *\n * const distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n *\n * const distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n * pointerLens : new PointerLens(viewer),\n * snapToVertex: true,\n * snapToEdge: true\n * })\n *\n * distanceMeasurementsTouchControl.activate();\n * ````\n */\nclass DistanceMeasurementsPlugin extends Plugin {\n\n /**\n * @constructor\n * @param {Viewer} viewer The Viewer.\n * @param {Object} [cfg] Plugin configuration.\n * @param {String} [cfg.id=\"DistanceMeasurements\"] Optional ID for this plugin, so that we can find it within {@link Viewer#plugins}.\n * @param {Number} [cfg.labelMinAxisLength=25] The minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @param {HTMLElement} [cfg.container] Container DOM element for markers and labels. Defaults to ````document.body````.\n * @param {boolean} [cfg.defaultVisible=true] The default value of the DistanceMeasurements `visible` property.\n * @param {boolean} [cfg.defaultOriginVisible=true] The default value of the DistanceMeasurements `originVisible` property.\n * @param {boolean} [cfg.defaultTargetVisible=true] The default value of the DistanceMeasurements `targetVisible` property.\n * @param {boolean} [cfg.defaultWireVisible=true] The default value of the DistanceMeasurements `wireVisible` property.\n * @param {boolean} [cfg.defaultLabelsVisible=true] The default value of the DistanceMeasurements `labelsVisible` property.\n * @param {boolean} [cfg.defaultAxisVisible=true] The default value of the DistanceMeasurements `axisVisible` property.\n * @param {boolean} [cfg.defaultXAxisVisible=true] The default value of the DistanceMeasurements `xAxisVisible` property.\n * @param {boolean} [cfg.defaultYAxisVisible=true] The default value of the DistanceMeasurements `yAxisVisible` property.\n * @param {boolean} [cfg.defaultZAxisVisible=true] The default value of the DistanceMeasurements `zAxisVisible` property.\n * @param {string} [cfg.defaultColor=#00BBFF] The default color of the length dots, wire and label.\n * @param {number} [cfg.zIndex] If set, the wires, dots and labels will have this zIndex (+1 for dots and +2 for labels).\n * @param {boolean} [cfg.defaultLabelsOnWires=true] The default value of the DistanceMeasurements `labelsOnWires` property.\n * @param {PointerCircle} [cfg.pointerLens] A PointerLens to help the user position the pointer. This can be shared with other plugins.\n */\n constructor(viewer, cfg = {}) {\n\n super(\"DistanceMeasurements\", viewer);\n\n this._pointerLens = cfg.pointerLens;\n\n this._container = cfg.container || document.body;\n\n this._defaultControl = null;\n\n this._measurements = {};\n\n this.labelMinAxisLength = cfg.labelMinAxisLength;\n\n this.defaultVisible = cfg.defaultVisible !== false;\n this.defaultOriginVisible = cfg.defaultOriginVisible !== false;\n this.defaultTargetVisible = cfg.defaultTargetVisible !== false;\n this.defaultWireVisible = cfg.defaultWireVisible !== false;\n this.defaultLabelsVisible = cfg.defaultLabelsVisible !== false;\n this.defaultAxisVisible = cfg.defaultAxisVisible !== false;\n this.defaultXAxisVisible = cfg.defaultXAxisVisible !== false;\n this.defaultYAxisVisible = cfg.defaultYAxisVisible !== false;\n this.defaultZAxisVisible = cfg.defaultZAxisVisible !== false;\n this.defaultColor = cfg.defaultColor !== undefined ? cfg.defaultColor : \"#00BBFF\";\n this.zIndex = cfg.zIndex || 10000;\n this.defaultLabelsOnWires = cfg.defaultLabelsOnWires !== false;\n\n this._onMouseOver = (event, measurement) => {\n this.fire(\"mouseOver\", {\n plugin: this,\n distanceMeasurement: measurement,\n measurement,\n event\n });\n }\n\n this._onMouseLeave = (event, measurement) => {\n this.fire(\"mouseLeave\", {\n plugin: this,\n distanceMeasurement: measurement,\n measurement,\n event\n });\n };\n\n this._onContextMenu = (event, measurement) => {\n this.fire(\"contextMenu\", {\n plugin: this,\n distanceMeasurement: measurement,\n measurement,\n event\n });\n };\n }\n\n /**\n * Gets the plugin's HTML container element, if any.\n * @returns {*|HTMLElement|HTMLElement}\n */\n getContainerElement() {\n return this._container;\n }\n\n /**\n * @private\n */\n send(name, value) {\n\n }\n\n /**\n * Gets the PointerLens attached to this DistanceMeasurementsPlugin.\n * @returns {PointerCircle}\n */\n get pointerLens() {\n return this._pointerLens;\n }\n\n /**\n * Gets the default {@link DistanceMeasurementsControl}.\n *\n * @type {DistanceMeasurementsControl}\n * @deprecated\n */\n get control() {\n if (!this._defaultControl) {\n this._defaultControl = new DistanceMeasurementsMouseControl(this, {});\n }\n return this._defaultControl;\n }\n\n /**\n * Gets the existing {@link DistanceMeasurement}s, each mapped to its {@link DistanceMeasurement#id}.\n *\n * @type {{String:DistanceMeasurement}}\n */\n get measurements() {\n return this._measurements;\n }\n\n /**\n * Sets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n *\n * The axis wire's label is not shown when its length is less than this value.\n *\n * This is ````25```` pixels by default.\n *\n * Must not be less than ````1````.\n *\n * @type {number}\n */\n set labelMinAxisLength(labelMinAxisLength) {\n if (labelMinAxisLength < 1) {\n this.error(\"labelMinAxisLength must be >= 1; defaulting to 25\");\n labelMinAxisLength = 25;\n }\n this._labelMinAxisLength = labelMinAxisLength || 25;\n }\n\n /**\n * Gets the minimum length, in pixels, of an axis wire beyond which its label is shown.\n * @returns {number}\n */\n get labelMinAxisLength() {\n return this._labelMinAxisLength;\n }\n\n /**\n * Creates a {@link DistanceMeasurement}.\n *\n * The DistanceMeasurement is then registered by {@link DistanceMeasurement#id} in {@link DistanceMeasurementsPlugin#measurements}.\n *\n * @param {Object} params {@link DistanceMeasurement} configuration.\n * @param {String} params.id Unique ID to assign to {@link DistanceMeasurement#id}. The DistanceMeasurement will be registered by this in {@link DistanceMeasurementsPlugin#measurements} and {@link Scene.components}. Must be unique among all components in the {@link Viewer}.\n * @param {Number[]} params.origin.worldPos Origin World-space 3D position.\n * @param {Entity} params.origin.entity Origin Entity.\n * @param {Number[]} params.target.worldPos Target World-space 3D position.\n * @param {Entity} params.target.entity Target Entity.\n * @param {Boolean} [params.visible=true] Whether to initially show the {@link DistanceMeasurement}.\n * @param {Boolean} [params.originVisible=true] Whether to initially show the {@link DistanceMeasurement} origin.\n * @param {Boolean} [params.targetVisible=true] Whether to initially show the {@link DistanceMeasurement} target.\n * @param {Boolean} [params.wireVisible=true] Whether to initially show the direct point-to-point wire between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.axisVisible=true] Whether to initially show the axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.xAxisVisible=true] Whether to initially show the X-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.yAxisVisible=true] Whether to initially show the Y-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.zAxisVisible=true] Whether to initially show the Z-axis-aligned wires between {@link DistanceMeasurement#origin} and {@link DistanceMeasurement#target}.\n * @param {Boolean} [params.labelsVisible=true] Whether to initially show the labels.\n * @param {string} [params.color] The color of the length dot, wire and label.\n * @param {Boolean} [params.labelsOnWires=true] Determines if labels will be set on wires or one below the other.\n * @returns {DistanceMeasurement} The new {@link DistanceMeasurement}.\n */\n createMeasurement(params = {}) {\n if (this.viewer.scene.components[params.id]) {\n this.error(\"Viewer scene component with this ID already exists: \" + params.id);\n delete params.id;\n }\n const origin = params.origin;\n const target = params.target;\n const measurement = new DistanceMeasurement(this, {\n id: params.id,\n plugin: this,\n container: this._container,\n origin: {\n entity: origin.entity,\n worldPos: origin.worldPos\n },\n target: {\n entity: target.entity,\n worldPos: target.worldPos\n },\n visible: params.visible,\n wireVisible: params.wireVisible,\n axisVisible: params.axisVisible !== false && this.defaultAxisVisible !== false,\n xAxisVisible: params.xAxisVisible !== false && this.defaultXAxisVisible !== false,\n yAxisVisible: params.yAxisVisible !== false && this.defaultYAxisVisible !== false,\n zAxisVisible: params.zAxisVisible !== false && this.defaultZAxisVisible !== false,\n labelsVisible: params.labelsVisible !== false && this.defaultLabelsVisible !== false,\n originVisible: params.originVisible,\n targetVisible: params.targetVisible,\n color: params.color,\n labelsOnWires: params.labelsOnWires !== false && this.defaultLabelsOnWires !== false,\n onMouseOver: this._onMouseOver,\n onMouseLeave: this._onMouseLeave,\n onContextMenu: this._onContextMenu\n });\n this._measurements[measurement.id] = measurement;\n measurement.on(\"destroyed\", () => {\n delete this._measurements[measurement.id];\n });\n this.fire(\"measurementCreated\", measurement);\n return measurement;\n }\n\n /**\n * Destroys a {@link DistanceMeasurement}.\n *\n * @param {String} id ID of DistanceMeasurement to destroy.\n */\n destroyMeasurement(id) {\n const measurement = this._measurements[id];\n if (!measurement) {\n this.log(\"DistanceMeasurement not found: \" + id);\n return;\n }\n measurement.destroy();\n this.fire(\"measurementDestroyed\", measurement);\n }\n\n /**\n * Shows all or hides the distance label of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the labels.\n */\n setLabelsShown(labelsShown) {\n for (const [key, measurement] of Object.entries(this.measurements)) {\n measurement.labelShown = labelsShown;\n }\n }\n\n /**\n * Shows all or hides the axis wires of each {@link DistanceMeasurement}.\n *\n * @param {Boolean} labelsShown Whether or not to show the axis wires.\n */\n setAxisVisible(axisVisible) {\n for (const [key, measurement] of Object.entries(this.measurements)) {\n measurement.axisVisible = axisVisible;\n }\n this.defaultAxisVisible = axisVisible;\n }\n\n /**\n * Gets if the axis wires of each {@link DistanceMeasurement} are visible.\n *\n * @returns {Boolean} Whether or not the axis wires are visible.\n */\n getAxisVisible() {\n return this.defaultAxisVisible;\n }\n\n /**\n * Destroys all {@link DistanceMeasurement}s.\n */\n clear() {\n const ids = Object.keys(this._measurements);\n for (var i = 0, len = ids.length; i < len; i++) {\n this.destroyMeasurement(ids[i]);\n }\n }\n\n /**\n * Destroys this DistanceMeasurementsPlugin.\n *\n * Destroys all {@link DistanceMeasurement}s first.\n */\n destroy() {\n this.clear();\n super.destroy();\n }\n}\n\nexport {DistanceMeasurementsPlugin}",
"static": true,
"longname": "/home/lindsay/xeolabs/xeokit-sdk-apr15/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js",
"access": "public",
@@ -14155,7 +14155,7 @@
"export": true,
"importPath": "@xeokit/xeokit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js",
"importStyle": "{DistanceMeasurementsPlugin}",
- "description": "{@link Viewer} plugin for measuring point-to-point distances.\n\n[](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n\n* [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n* [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n* [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n\n## Overview\n\n* A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n* As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\nand three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n* Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n* Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n* Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n* Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n* Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n\n## Example 1: Creating DistanceMeasurements Programmatically\n\nIn our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n\nNote how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\nposition on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n\n[[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n\n````JavaScript\nimport {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n\nmodel.on(\"loaded\", () => {\n\n const myMeasurement1 = distanceMeasurements.createMeasurement({\n id: \"distanceMeasurement1\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [0.044, 5.998, 17.767]\n },\n target: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [4.738, 3.172, 17.768]\n },\n visible: true,\n wireVisible: true\n });\n\n const myMeasurement2 = distanceMeasurements.createMeasurement({\n id: \"distanceMeasurement2\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n worldPos: [0.457, 2.532, 17.766]\n },\n target: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [0.436, 0.001, 22.135]\n },\n visible: true,\n wireVisible: true\n });\n});\n````\n\n## Example 2: Creating DistanceMeasurements with Mouse Input\n\nIn our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n{@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n\nAfter we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\norigin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n\nThe DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\nanother DistanceMeasurement, and so on, until deactivated again.\n\n[[Run example](/examples/measurement/#distance_createWithMouse)]\n\n````JavaScript\nimport {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n\nconst distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n pointerLens : new PointerLens(viewer)\n})\n\ndistanceMeasurementsControl.snapToVertex = true;\ndistanceMeasurementsControl.snapToEdge = true;\n\ndistanceMeasurementsControl.activate();\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n````\n\n## Example 3: Configuring Measurement Units and Scale\n\nIn our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n\nThe wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n\n* [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n\n````JavaScript\nconst metrics = viewer.scene.metrics;\n\nmetrics.units = \"meters\";\nmetrics.scale = 10.0;\n````\n\n## Example 4: Attaching Mouse Handlers\n\nIn our fourth example, we'll attach event handlers to our plugin, to catch when the user\nhovers or right-clicks over our measurements.\n\n[[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n\n````javascript\nimport {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n\nconst distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n pointerLens : new PointerLens(viewer)\n})\n\ndistanceMeasurementsControl.snapToVertex = true;\ndistanceMeasurementsControl.snapToEdge = true;\n\ndistanceMeasurementsControl.activate();\n\ndistanceMeasurements.on(\"mouseOver\", (e) => {\n e.measurement.setHighlighted(true);\n});\n\ndistanceMeasurements.on(\"mouseLeave\", (e) => {\n e.measurement.setHighlighted(false);\n});\n\ndistanceMeasurements.on(\"contextMenu\", (e) => {\n // Show context menu\n e.event.preventDefault();\n});\n\nconst model = xktLoader.load({\n src: \"Duplex.xkt\"\n});\n\nmodel.on(\"loaded\", () => {\n\n const myMeasurement1 = distanceMeasurements.createMeasurement({\n id: \"distanceMeasurement1\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [0.044, 5.998, 17.767]\n },\n target: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [4.738, 3.172, 17.768]\n },\n visible: true,\n wireVisible: true\n });\n\n const myMeasurement2 = distanceMeasurements.createMeasurement({\n id: \"distanceMeasurement2\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n worldPos: [0.457, 2.532, 17.766]\n },\n target: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [0.436, 0.001, 22.135]\n },\n visible: true,\n wireVisible: true\n });\n});\n````\n\n## Example 5: Creating DistanceMeasurements with Touch Input\n\nIn our fifth example, we'll show how to create distance measurements with touch input, with snapping\nto the nearest vertex or edge. While creating the measurements, a long-touch when setting the\nstart or end point will cause the point to snap to the nearest vertex or edge. A quick\ntouch-release will immediately set the point at the tapped position on the object surface.\n\n[[Run example](/examples/measurement/#distance_createWithTouch_snapping)]\n\n````javascript\nimport {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n\nconst distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n\nconst distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n pointerLens : new PointerLens(viewer),\n snapToVertex: true,\n snapToEdge: true\n})\n\ndistanceMeasurementsTouchControl.activate();\n````",
+ "description": "{@link Viewer} plugin for measuring point-to-point distances.\n\n[](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)\n\n* [[Example 1: Model with distance measurements](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n* [[Example 2: Create distance measurements with mouse](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_createWithMouse)]\n* [[Example 3: Configuring units and scale](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)\n\n## Overview\n\n* A {@link DistanceMeasurement} represents a point-to-point measurement between two 3D points on one or two {@link Entity}s.\n* As shown on the screen capture above, a DistanceMeasurement has one wire (light blue) that shows the direct point-to-point measurement,\nand three more wires (red, green and blue) that show the distance on each of the World-space X, Y and Z axis.\n* Create DistanceMeasurements programmatically with {@link DistanceMeasurementsPlugin#createMeasurement}.\n* Create DistanceMeasurements interactively using a {@link DistanceMeasurementsControl}.\n* Existing DistanceMeasurements are registered by ID in {@link DistanceMeasurementsPlugin#measurements}.\n* Destroy DistanceMeasurements using {@link DistanceMeasurementsPlugin#destroyMeasurement}.\n* Configure global measurement units and scale via {@link Metrics}, located at {@link Scene#metrics}.\n\n## Example 1: Creating DistanceMeasurements Programmatically\n\nIn our first example, we'll use an {@link XKTLoaderPlugin} to load a model, and then use a DistanceMeasurementsPlugin to programmatically create two {@link DistanceMeasurement}s.\n\nNote how each DistanceMeasurement has ````origin```` and ````target```` endpoints, which each indicate a 3D World-space\nposition on the surface of an {@link Entity}. The endpoints can be attached to the same Entity, or to different Entitys.\n\n[[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurements/#distance_modelWithMeasurements)]\n\n````JavaScript\nimport {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n\nmodel.on(\"loaded\", () => {\n\n const myMeasurement1 = distanceMeasurements.createMeasurement({\n id: \"distanceMeasurement1\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [0.044, 5.998, 17.767]\n },\n target: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [4.738, 3.172, 17.768]\n },\n visible: true,\n wireVisible: true\n });\n\n const myMeasurement2 = distanceMeasurements.createMeasurement({\n id: \"distanceMeasurement2\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n worldPos: [0.457, 2.532, 17.766]\n },\n target: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [0.436, 0.001, 22.135]\n },\n visible: true,\n wireVisible: true\n });\n});\n````\n\n## Example 2: Creating DistanceMeasurements with Mouse Input\n\nIn our second example, we'll use an {@link XKTLoaderPlugin} to load a model, then we'll use a\n{@link DistanceMeasurementsMouseControl} to interactively create {@link DistanceMeasurement}s with mouse input.\n\nAfter we've activated the DistanceMeasurementsMouseControl, the first click on any {@link Entity} begins constructing a DistanceMeasurement, fixing its\norigin to that Entity. The next click on any Entity will complete the DistanceMeasurement, fixing its target to that second Entity.\n\nThe DistanceMeasurementsMouseControl will then wait for the next click on any Entity, to begin constructing\nanother DistanceMeasurement, and so on, until deactivated again.\n\n[[Run example](/examples/measurement/#distance_createWithMouse)]\n\n````JavaScript\nimport {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n\nconst distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n pointerLens : new PointerLens(viewer)\n})\n\ndistanceMeasurementsControl.snapToVertex = true;\ndistanceMeasurementsControl.snapToEdge = true;\n\ndistanceMeasurementsControl.activate();\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n````\n\n## Example 3: Configuring Measurement Units and Scale\n\nIn our third example, we'll use the {@link Scene}'s {@link Metrics} to set the global unit of measurement to ````\"meters\"````. We'll also specify that a unit within the World-space coordinate system represents ten meters.\n\nThe wires belonging to our DistanceMeasurements show their lengths in Real-space coordinates, in the current unit of measurement. They will dynamically update as we set these configurations.\n\n* [[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_unitsAndScale)]\n\n````JavaScript\nconst metrics = viewer.scene.metrics;\n\nmetrics.units = \"meters\";\nmetrics.scale = 10.0;\n````\n\n## Example 4: Attaching Mouse Handlers\n\nIn our fourth example, we'll attach event handlers to our plugin, to catch when the user\nhovers or right-clicks over our measurements.\n\n[[Run example](https://xeokit.github.io/xeokit-sdk/examples/#measurements_distance_modelWithMeasurements)]\n\n````javascript\nimport {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, PointerLens} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n\nconst distanceMeasurementsControl = new DistanceMeasurementsMouseControl(distanceMeasurements, {\n pointerLens : new PointerLens(viewer)\n})\n\ndistanceMeasurementsControl.snapToVertex = true;\ndistanceMeasurementsControl.snapToEdge = true;\n\ndistanceMeasurementsControl.activate();\n\ndistanceMeasurements.on(\"mouseOver\", (e) => {\n e.measurement.setHighlighted(true);\n});\n\ndistanceMeasurements.on(\"mouseLeave\", (e) => {\n e.measurement.setHighlighted(false);\n});\n\ndistanceMeasurements.on(\"contextMenu\", (e) => {\n // Show context menu\n e.event.preventDefault();\n});\n\nconst model = xktLoader.load({\n src: \"Duplex.xkt\"\n});\n\nmodel.on(\"loaded\", () => {\n\n const myMeasurement1 = distanceMeasurements.createMeasurement({\n id: \"distanceMeasurement1\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [0.044, 5.998, 17.767]\n },\n target: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FLOH\"],\n worldPos: [4.738, 3.172, 17.768]\n },\n visible: true,\n wireVisible: true\n });\n\n const myMeasurement2 = distanceMeasurements.createMeasurement({\n id: \"distanceMeasurement2\",\n origin: {\n entity: viewer.scene.objects[\"2O2Fr$t4X7Zf8NOew3FNr2\"],\n worldPos: [0.457, 2.532, 17.766]\n },\n target: {\n entity: viewer.scene.objects[\"1CZILmCaHETO8tf3SgGEXu\"],\n worldPos: [0.436, 0.001, 22.135]\n },\n visible: true,\n wireVisible: true\n });\n});\n````\n\n## Example 5: Creating DistanceMeasurements with Touch Input\n\nIn our fifth example, we'll show how to create distance measurements with touch input, with snapping\nto the nearest vertex or edge. While creating the measurements, a long-touch when setting the\nstart or end point will cause the point to snap to the nearest vertex or edge. A quick\ntouch-release will immediately set the point at the tapped position on the object surface.\n\n[[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#distance_createWithTouch_snapping)]\n\n````javascript\nimport {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from \"xeokit-sdk.es.js\";\n\nconst viewer = new Viewer({\n canvasId: \"myCanvas\",\n transparent: true\n});\n\nviewer.scene.camera.eye = [-2.37, 18.97, -26.12];\nviewer.scene.camera.look = [10.97, 5.82, -11.22];\nviewer.scene.camera.up = [0.36, 0.83, 0.40];\n\nconst xktLoader = new XKTLoaderPlugin(viewer);\n\nconst distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n\nconst model = xktLoader.load({\n src: \"./models/xkt/duplex/duplex.xkt\"\n});\n\nconst distanceMeasurements = new DistanceMeasurementsPlugin(viewer);\n\nconst distanceMeasurementsTouchControl = new DistanceMeasurementsTouchControl(distanceMeasurements, {\n pointerLens : new PointerLens(viewer),\n snapToVertex: true,\n snapToEdge: true\n})\n\ndistanceMeasurementsTouchControl.activate();\n````",
"lineNumber": 265,
"interface": false,
"extends": [
diff --git a/docs/source.html b/docs/source.html
index 4efe242572..ba812480b9 100644
--- a/docs/source.html
+++ b/docs/source.html
@@ -404,9 +404,9 @@
src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js
AngleMeasurementsPlugin
-
-
+
-
+
src/plugins/AngleMeasurementsPlugin/AngleMeasurementsTouchControl.js
@@ -540,9 +540,9 @@
src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js
DistanceMeasurementsPlugin
-
-
+
-
+
src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsTouchControl.js