@xeokit/xeokit-sdk 2.5.2-beta-7 → 2.5.2-beta-9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/xeokit-sdk.cjs.js +42 -20
- package/dist/xeokit-sdk.es.js +138 -116
- package/dist/xeokit-sdk.es5.js +8 -6
- package/dist/xeokit-sdk.min.cjs.js +5 -5
- package/dist/xeokit-sdk.min.es.js +5 -5
- package/dist/xeokit-sdk.min.es5.js +4 -4
- package/package.json +1 -1
- package/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsMouseControl.js +7 -2
- package/src/plugins/AnnotationsPlugin/Annotation.js +2 -2
- package/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsMouseControl.js +9 -2
- package/src/plugins/XKTLoaderPlugin/parsers/ParserV11.js +663 -0
- package/src/viewer/scene/core.js +24 -14
- package/types/viewer/scene/models/SceneModel.d.ts +46 -48
package/dist/xeokit-sdk.cjs.js
CHANGED
|
@@ -7474,8 +7474,28 @@ function Core() {
|
|
|
7474
7474
|
*/
|
|
7475
7475
|
const core = new Core();
|
|
7476
7476
|
|
|
7477
|
-
|
|
7478
7477
|
const frame = function () {
|
|
7478
|
+
let time = Date.now();
|
|
7479
|
+
elapsedTime = time - lastTime;
|
|
7480
|
+
if (lastTime > 0 && elapsedTime > 0) { // Log FPS stats
|
|
7481
|
+
var newFPS = 1000 / elapsedTime; // Moving average of FPS
|
|
7482
|
+
totalFPS += newFPS;
|
|
7483
|
+
fpsSamples.push(newFPS);
|
|
7484
|
+
if (fpsSamples.length >= numFPSSamples) {
|
|
7485
|
+
totalFPS -= fpsSamples.shift();
|
|
7486
|
+
}
|
|
7487
|
+
stats.frame.fps = Math.round(totalFPS / fpsSamples.length);
|
|
7488
|
+
}
|
|
7489
|
+
for (let id in core.scenes) {
|
|
7490
|
+
core.scenes[id].compile();
|
|
7491
|
+
}
|
|
7492
|
+
runTasks(time);
|
|
7493
|
+
lastTime = time;
|
|
7494
|
+
};
|
|
7495
|
+
|
|
7496
|
+
window.setInterval(frame, 1000 / 30);
|
|
7497
|
+
|
|
7498
|
+
const renderFrame = function () {
|
|
7479
7499
|
let time = Date.now();
|
|
7480
7500
|
elapsedTime = time - lastTime;
|
|
7481
7501
|
if (lastTime > 0 && elapsedTime > 0) { // Log FPS stats
|
|
@@ -7490,10 +7510,11 @@ const frame = function () {
|
|
|
7490
7510
|
runTasks(time);
|
|
7491
7511
|
fireTickEvents(time);
|
|
7492
7512
|
renderScenes();
|
|
7493
|
-
|
|
7494
|
-
(window.requestPostAnimationFrame !== undefined) ? window.requestPostAnimationFrame(frame) : requestAnimationFrame(frame);
|
|
7513
|
+
(window.requestPostAnimationFrame !== undefined) ? window.requestPostAnimationFrame(frame) : requestAnimationFrame(renderFrame);
|
|
7495
7514
|
};
|
|
7496
7515
|
|
|
7516
|
+
renderFrame();
|
|
7517
|
+
|
|
7497
7518
|
function runTasks(time) { // Process as many enqueued tasks as we can within the per-frame task budget
|
|
7498
7519
|
const tasksRun = core.runTasks(time + taskBudget);
|
|
7499
7520
|
const tasksScheduled = core.getNumTasks();
|
|
@@ -7567,17 +7588,6 @@ function renderScenes() {
|
|
|
7567
7588
|
}
|
|
7568
7589
|
}
|
|
7569
7590
|
|
|
7570
|
-
(window.requestPostAnimationFrame !== undefined) ? window.requestPostAnimationFrame(frame) : requestAnimationFrame(frame);
|
|
7571
|
-
|
|
7572
|
-
function compileScenes() {
|
|
7573
|
-
|
|
7574
|
-
for (let id in core.scenes) {
|
|
7575
|
-
core.scenes[id].compile();
|
|
7576
|
-
}
|
|
7577
|
-
}
|
|
7578
|
-
|
|
7579
|
-
window.setInterval(compileScenes, 1000 / 60);
|
|
7580
|
-
|
|
7581
7591
|
/**
|
|
7582
7592
|
* @desc Base class for all xeokit components.
|
|
7583
7593
|
*
|
|
@@ -12154,8 +12164,13 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
|
|
|
12154
12164
|
mouseHoverCanvasPos.set(canvasPos);
|
|
12155
12165
|
switch (this._mouseState) {
|
|
12156
12166
|
case MOUSE_FINDING_ORIGIN:
|
|
12157
|
-
|
|
12158
|
-
|
|
12167
|
+
const canvasBoundRect = canvas.getBoundingClientRect();
|
|
12168
|
+
const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
|
|
12169
|
+
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
|
12170
|
+
const canvasLeftEdge = canvasBoundRect.left + scrollLeft;
|
|
12171
|
+
const canvasTopEdge = canvasBoundRect.top + scrollTop;
|
|
12172
|
+
this._markerDiv.style.marginLeft = `${canvasLeftEdge + canvasPos[0] - 5}px`;
|
|
12173
|
+
this._markerDiv.style.marginTop = `${canvasTopEdge + canvasPos[1] - 5}px`;
|
|
12159
12174
|
break;
|
|
12160
12175
|
case MOUSE_FINDING_CORNER:
|
|
12161
12176
|
if (this._currentAngleMeasurement) {
|
|
@@ -12917,7 +12932,7 @@ class Annotation extends Marker {
|
|
|
12917
12932
|
if (utils.isArray(markerHTML)) {
|
|
12918
12933
|
markerHTML = markerHTML.join("");
|
|
12919
12934
|
}
|
|
12920
|
-
markerHTML = this._renderTemplate(markerHTML);
|
|
12935
|
+
markerHTML = this._renderTemplate(markerHTML.trim());
|
|
12921
12936
|
const markerFragment = document.createRange().createContextualFragment(markerHTML);
|
|
12922
12937
|
this._marker = markerFragment.firstChild;
|
|
12923
12938
|
this._container.appendChild(this._marker);
|
|
@@ -12944,7 +12959,7 @@ class Annotation extends Marker {
|
|
|
12944
12959
|
if (utils.isArray(labelHTML)) {
|
|
12945
12960
|
labelHTML = labelHTML.join("");
|
|
12946
12961
|
}
|
|
12947
|
-
labelHTML = this._renderTemplate(labelHTML);
|
|
12962
|
+
labelHTML = this._renderTemplate(labelHTML.trim());
|
|
12948
12963
|
const labelFragment = document.createRange().createContextualFragment(labelHTML);
|
|
12949
12964
|
this._label = labelFragment.firstChild;
|
|
12950
12965
|
this._container.appendChild(this._label);
|
|
@@ -85533,8 +85548,15 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
|
|
|
85533
85548
|
pointerWorldPos.set(event.worldPos);
|
|
85534
85549
|
pointerCanvasPos.set(event.canvasPos);
|
|
85535
85550
|
if (this._mouseState === MOUSE_FIRST_CLICK_EXPECTED) {
|
|
85536
|
-
|
|
85537
|
-
|
|
85551
|
+
|
|
85552
|
+
const canvasBoundRect = canvas.getBoundingClientRect();
|
|
85553
|
+
const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
|
|
85554
|
+
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
|
85555
|
+
const canvasLeftEdge = canvasBoundRect.left + scrollLeft;
|
|
85556
|
+
const canvasTopEdge = canvasBoundRect.top + scrollTop;
|
|
85557
|
+
|
|
85558
|
+
this._markerDiv.style.marginLeft = `${canvasLeftEdge + canvasPos[0] - 5}px`;
|
|
85559
|
+
this._markerDiv.style.marginTop = `${canvasTopEdge + canvasPos[1] - 5}px`;
|
|
85538
85560
|
this._markerDiv.style.background = "pink";
|
|
85539
85561
|
if (event.snappedToVertex || event.snappedToEdge) {
|
|
85540
85562
|
if (this.pointerLens) {
|
package/dist/xeokit-sdk.es.js
CHANGED
|
@@ -7470,8 +7470,28 @@ function Core() {
|
|
|
7470
7470
|
*/
|
|
7471
7471
|
const core = new Core();
|
|
7472
7472
|
|
|
7473
|
-
|
|
7474
7473
|
const frame = function () {
|
|
7474
|
+
let time = Date.now();
|
|
7475
|
+
elapsedTime = time - lastTime;
|
|
7476
|
+
if (lastTime > 0 && elapsedTime > 0) { // Log FPS stats
|
|
7477
|
+
var newFPS = 1000 / elapsedTime; // Moving average of FPS
|
|
7478
|
+
totalFPS += newFPS;
|
|
7479
|
+
fpsSamples.push(newFPS);
|
|
7480
|
+
if (fpsSamples.length >= numFPSSamples) {
|
|
7481
|
+
totalFPS -= fpsSamples.shift();
|
|
7482
|
+
}
|
|
7483
|
+
stats.frame.fps = Math.round(totalFPS / fpsSamples.length);
|
|
7484
|
+
}
|
|
7485
|
+
for (let id in core.scenes) {
|
|
7486
|
+
core.scenes[id].compile();
|
|
7487
|
+
}
|
|
7488
|
+
runTasks(time);
|
|
7489
|
+
lastTime = time;
|
|
7490
|
+
};
|
|
7491
|
+
|
|
7492
|
+
window.setInterval(frame, 1000 / 30);
|
|
7493
|
+
|
|
7494
|
+
const renderFrame = function () {
|
|
7475
7495
|
let time = Date.now();
|
|
7476
7496
|
elapsedTime = time - lastTime;
|
|
7477
7497
|
if (lastTime > 0 && elapsedTime > 0) { // Log FPS stats
|
|
@@ -7486,10 +7506,11 @@ const frame = function () {
|
|
|
7486
7506
|
runTasks(time);
|
|
7487
7507
|
fireTickEvents(time);
|
|
7488
7508
|
renderScenes();
|
|
7489
|
-
|
|
7490
|
-
(window.requestPostAnimationFrame !== undefined) ? window.requestPostAnimationFrame(frame) : requestAnimationFrame(frame);
|
|
7509
|
+
(window.requestPostAnimationFrame !== undefined) ? window.requestPostAnimationFrame(frame) : requestAnimationFrame(renderFrame);
|
|
7491
7510
|
};
|
|
7492
7511
|
|
|
7512
|
+
renderFrame();
|
|
7513
|
+
|
|
7493
7514
|
function runTasks(time) { // Process as many enqueued tasks as we can within the per-frame task budget
|
|
7494
7515
|
const tasksRun = core.runTasks(time + taskBudget);
|
|
7495
7516
|
const tasksScheduled = core.getNumTasks();
|
|
@@ -7563,17 +7584,6 @@ function renderScenes() {
|
|
|
7563
7584
|
}
|
|
7564
7585
|
}
|
|
7565
7586
|
|
|
7566
|
-
(window.requestPostAnimationFrame !== undefined) ? window.requestPostAnimationFrame(frame) : requestAnimationFrame(frame);
|
|
7567
|
-
|
|
7568
|
-
function compileScenes() {
|
|
7569
|
-
|
|
7570
|
-
for (let id in core.scenes) {
|
|
7571
|
-
core.scenes[id].compile();
|
|
7572
|
-
}
|
|
7573
|
-
}
|
|
7574
|
-
|
|
7575
|
-
window.setInterval(compileScenes, 1000 / 60);
|
|
7576
|
-
|
|
7577
7587
|
/**
|
|
7578
7588
|
* @desc Base class for all xeokit components.
|
|
7579
7589
|
*
|
|
@@ -12150,8 +12160,13 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
|
|
|
12150
12160
|
mouseHoverCanvasPos.set(canvasPos);
|
|
12151
12161
|
switch (this._mouseState) {
|
|
12152
12162
|
case MOUSE_FINDING_ORIGIN:
|
|
12153
|
-
|
|
12154
|
-
|
|
12163
|
+
const canvasBoundRect = canvas.getBoundingClientRect();
|
|
12164
|
+
const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
|
|
12165
|
+
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
|
12166
|
+
const canvasLeftEdge = canvasBoundRect.left + scrollLeft;
|
|
12167
|
+
const canvasTopEdge = canvasBoundRect.top + scrollTop;
|
|
12168
|
+
this._markerDiv.style.marginLeft = `${canvasLeftEdge + canvasPos[0] - 5}px`;
|
|
12169
|
+
this._markerDiv.style.marginTop = `${canvasTopEdge + canvasPos[1] - 5}px`;
|
|
12155
12170
|
break;
|
|
12156
12171
|
case MOUSE_FINDING_CORNER:
|
|
12157
12172
|
if (this._currentAngleMeasurement) {
|
|
@@ -12913,7 +12928,7 @@ class Annotation extends Marker {
|
|
|
12913
12928
|
if (utils.isArray(markerHTML)) {
|
|
12914
12929
|
markerHTML = markerHTML.join("");
|
|
12915
12930
|
}
|
|
12916
|
-
markerHTML = this._renderTemplate(markerHTML);
|
|
12931
|
+
markerHTML = this._renderTemplate(markerHTML.trim());
|
|
12917
12932
|
const markerFragment = document.createRange().createContextualFragment(markerHTML);
|
|
12918
12933
|
this._marker = markerFragment.firstChild;
|
|
12919
12934
|
this._container.appendChild(this._marker);
|
|
@@ -12940,7 +12955,7 @@ class Annotation extends Marker {
|
|
|
12940
12955
|
if (utils.isArray(labelHTML)) {
|
|
12941
12956
|
labelHTML = labelHTML.join("");
|
|
12942
12957
|
}
|
|
12943
|
-
labelHTML = this._renderTemplate(labelHTML);
|
|
12958
|
+
labelHTML = this._renderTemplate(labelHTML.trim());
|
|
12944
12959
|
const labelFragment = document.createRange().createContextualFragment(labelHTML);
|
|
12945
12960
|
this._label = labelFragment.firstChild;
|
|
12946
12961
|
this._container.appendChild(this._label);
|
|
@@ -81897,7 +81912,7 @@ class SceneModel extends Component {
|
|
|
81897
81912
|
* @param {Number} [cfg.opacity=1] Opacity in range ````[0..1]````. Overridden by texture set ````colorTexture````.
|
|
81898
81913
|
* @param {Number} [cfg.metallic=0] Metallic factor in range ````[0..1]````. Overridden by texture set ````metallicRoughnessTexture````.
|
|
81899
81914
|
* @param {Number} [cfg.roughness=1] Roughness factor in range ````[0..1]````. Overridden by texture set ````metallicRoughnessTexture````.
|
|
81900
|
-
* @returns {Boolean} True
|
|
81915
|
+
* @returns {Boolean} True = successfully mesh was created. False = error during creation of a mesh.
|
|
81901
81916
|
*/
|
|
81902
81917
|
createMesh(cfg) {
|
|
81903
81918
|
|
|
@@ -82611,15 +82626,15 @@ class SceneModel extends Component {
|
|
|
82611
82626
|
let meshes = [];
|
|
82612
82627
|
for (let i = 0, len = cfg.meshIds.length; i < len; i++) {
|
|
82613
82628
|
const meshId = cfg.meshIds[i];
|
|
82614
|
-
let mesh = this._meshes[meshId];
|
|
82615
|
-
if (!mesh) {
|
|
82616
|
-
let meshCfg = this._meshesCfgsBeforeMeshCreation[meshId];
|
|
82617
|
-
if (!meshCfg) {
|
|
82618
|
-
this.error(`Mesh with this ID not found: "${meshId}" - ignoring this mesh`);
|
|
82629
|
+
let mesh = this._meshes[meshId]; // Trying to get already created mesh
|
|
82630
|
+
if (!mesh) { // Checks if there is already created mesh for this meshId
|
|
82631
|
+
let meshCfg = this._meshesCfgsBeforeMeshCreation[meshId]; // Trying to get already created cfg
|
|
82632
|
+
if (!meshCfg) { // Checks if there is already created cfg for this meshId
|
|
82633
|
+
this.error(`Mesh with this ID not found: "${meshId}" - ignoring this mesh`); // There is no such cfg
|
|
82619
82634
|
continue;
|
|
82620
82635
|
}
|
|
82621
|
-
mesh = this._createMesh(meshCfg);
|
|
82622
|
-
this._meshes[cfg.id] = mesh;
|
|
82636
|
+
mesh = this._createMesh(meshCfg); // There is no such mesh yet, but there is already created cfg, so it creates this mesh
|
|
82637
|
+
this._meshes[cfg.id] = mesh; // Now it will also add this mesh to dictionary of created meshes
|
|
82623
82638
|
}
|
|
82624
82639
|
if (mesh.parent) {
|
|
82625
82640
|
this.error(`Mesh with ID "${meshId}" already belongs to object with ID "${mesh.parent.id}" - ignoring this mesh`);
|
|
@@ -85529,8 +85544,15 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
|
|
|
85529
85544
|
pointerWorldPos.set(event.worldPos);
|
|
85530
85545
|
pointerCanvasPos.set(event.canvasPos);
|
|
85531
85546
|
if (this._mouseState === MOUSE_FIRST_CLICK_EXPECTED) {
|
|
85532
|
-
|
|
85533
|
-
|
|
85547
|
+
|
|
85548
|
+
const canvasBoundRect = canvas.getBoundingClientRect();
|
|
85549
|
+
const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
|
|
85550
|
+
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
|
85551
|
+
const canvasLeftEdge = canvasBoundRect.left + scrollLeft;
|
|
85552
|
+
const canvasTopEdge = canvasBoundRect.top + scrollTop;
|
|
85553
|
+
|
|
85554
|
+
this._markerDiv.style.marginLeft = `${canvasLeftEdge + canvasPos[0] - 5}px`;
|
|
85555
|
+
this._markerDiv.style.marginTop = `${canvasTopEdge + canvasPos[1] - 5}px`;
|
|
85534
85556
|
this._markerDiv.style.background = "pink";
|
|
85535
85557
|
if (event.snappedToVertex || event.snappedToEdge) {
|
|
85536
85558
|
if (this.pointerLens) {
|
|
@@ -97224,94 +97246,94 @@ function arrayToMap(array) {
|
|
|
97224
97246
|
* Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>
|
|
97225
97247
|
* Released under MIT License
|
|
97226
97248
|
*/
|
|
97227
|
-
/*! *****************************************************************************
|
|
97228
|
-
Copyright (c) Microsoft Corporation.
|
|
97229
|
-
|
|
97230
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
97231
|
-
purpose with or without fee is hereby granted.
|
|
97232
|
-
|
|
97233
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
97234
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
97235
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
97236
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
97237
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
97238
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
97239
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
97240
|
-
***************************************************************************** */
|
|
97241
|
-
/* global Reflect, Promise */
|
|
97242
|
-
|
|
97243
|
-
var extendStatics = function(d, b) {
|
|
97244
|
-
extendStatics = Object.setPrototypeOf ||
|
|
97245
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
97246
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
97247
|
-
return extendStatics(d, b);
|
|
97248
|
-
};
|
|
97249
|
-
|
|
97250
|
-
function __extends(d, b) {
|
|
97251
|
-
if (typeof b !== "function" && b !== null)
|
|
97252
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
97253
|
-
extendStatics(d, b);
|
|
97254
|
-
function __() { this.constructor = d; }
|
|
97255
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
97256
|
-
}
|
|
97257
|
-
|
|
97258
|
-
var __assign = function() {
|
|
97259
|
-
__assign = Object.assign || function __assign(t) {
|
|
97260
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
97261
|
-
s = arguments[i];
|
|
97262
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
97263
|
-
}
|
|
97264
|
-
return t;
|
|
97265
|
-
};
|
|
97266
|
-
return __assign.apply(this, arguments);
|
|
97267
|
-
};
|
|
97268
|
-
|
|
97269
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
97270
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
97271
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
97272
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
97273
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
97274
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
97275
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
97276
|
-
});
|
|
97277
|
-
}
|
|
97278
|
-
|
|
97279
|
-
function __generator(thisArg, body) {
|
|
97280
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
97281
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
97282
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
97283
|
-
function step(op) {
|
|
97284
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
97285
|
-
while (_) try {
|
|
97286
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
97287
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
97288
|
-
switch (op[0]) {
|
|
97289
|
-
case 0: case 1: t = op; break;
|
|
97290
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
97291
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
97292
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
97293
|
-
default:
|
|
97294
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
97295
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
97296
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
97297
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
97298
|
-
if (t[2]) _.ops.pop();
|
|
97299
|
-
_.trys.pop(); continue;
|
|
97300
|
-
}
|
|
97301
|
-
op = body.call(thisArg, _);
|
|
97302
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
97303
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
97304
|
-
}
|
|
97305
|
-
}
|
|
97306
|
-
|
|
97307
|
-
function __spreadArray(to, from, pack) {
|
|
97308
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
97309
|
-
if (ar || !(i in from)) {
|
|
97310
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
97311
|
-
ar[i] = from[i];
|
|
97312
|
-
}
|
|
97313
|
-
}
|
|
97314
|
-
return to.concat(ar || from);
|
|
97249
|
+
/*! *****************************************************************************
|
|
97250
|
+
Copyright (c) Microsoft Corporation.
|
|
97251
|
+
|
|
97252
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
97253
|
+
purpose with or without fee is hereby granted.
|
|
97254
|
+
|
|
97255
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
97256
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
97257
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
97258
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
97259
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
97260
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
97261
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
97262
|
+
***************************************************************************** */
|
|
97263
|
+
/* global Reflect, Promise */
|
|
97264
|
+
|
|
97265
|
+
var extendStatics = function(d, b) {
|
|
97266
|
+
extendStatics = Object.setPrototypeOf ||
|
|
97267
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
97268
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
97269
|
+
return extendStatics(d, b);
|
|
97270
|
+
};
|
|
97271
|
+
|
|
97272
|
+
function __extends(d, b) {
|
|
97273
|
+
if (typeof b !== "function" && b !== null)
|
|
97274
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
97275
|
+
extendStatics(d, b);
|
|
97276
|
+
function __() { this.constructor = d; }
|
|
97277
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
97278
|
+
}
|
|
97279
|
+
|
|
97280
|
+
var __assign = function() {
|
|
97281
|
+
__assign = Object.assign || function __assign(t) {
|
|
97282
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
97283
|
+
s = arguments[i];
|
|
97284
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
97285
|
+
}
|
|
97286
|
+
return t;
|
|
97287
|
+
};
|
|
97288
|
+
return __assign.apply(this, arguments);
|
|
97289
|
+
};
|
|
97290
|
+
|
|
97291
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
97292
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
97293
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
97294
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
97295
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
97296
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
97297
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
97298
|
+
});
|
|
97299
|
+
}
|
|
97300
|
+
|
|
97301
|
+
function __generator(thisArg, body) {
|
|
97302
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
97303
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
97304
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
97305
|
+
function step(op) {
|
|
97306
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
97307
|
+
while (_) try {
|
|
97308
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
97309
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
97310
|
+
switch (op[0]) {
|
|
97311
|
+
case 0: case 1: t = op; break;
|
|
97312
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
97313
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
97314
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
97315
|
+
default:
|
|
97316
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
97317
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
97318
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
97319
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
97320
|
+
if (t[2]) _.ops.pop();
|
|
97321
|
+
_.trys.pop(); continue;
|
|
97322
|
+
}
|
|
97323
|
+
op = body.call(thisArg, _);
|
|
97324
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
97325
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
97326
|
+
}
|
|
97327
|
+
}
|
|
97328
|
+
|
|
97329
|
+
function __spreadArray(to, from, pack) {
|
|
97330
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
97331
|
+
if (ar || !(i in from)) {
|
|
97332
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
97333
|
+
ar[i] = from[i];
|
|
97334
|
+
}
|
|
97335
|
+
}
|
|
97336
|
+
return to.concat(ar || from);
|
|
97315
97337
|
}
|
|
97316
97338
|
|
|
97317
97339
|
var Bounds = /** @class */ (function () {
|
package/dist/xeokit-sdk.es5.js
CHANGED
|
@@ -1627,7 +1627,9 @@ var time=new Date().getTime();var callback;var scope;var tasksRun=0;while(taskQu
|
|
|
1627
1627
|
* @type {Core}
|
|
1628
1628
|
*/var core=new Core();var frame=function frame(){var time=Date.now();elapsedTime=time-lastTime;if(lastTime>0&&elapsedTime>0){// Log FPS stats
|
|
1629
1629
|
var newFPS=1000/elapsedTime;// Moving average of FPS
|
|
1630
|
-
totalFPS+=newFPS;fpsSamples.push(newFPS);if(fpsSamples.length>=numFPSSamples){totalFPS-=fpsSamples.shift();}stats.frame.fps=Math.round(totalFPS/fpsSamples.length);}
|
|
1630
|
+
totalFPS+=newFPS;fpsSamples.push(newFPS);if(fpsSamples.length>=numFPSSamples){totalFPS-=fpsSamples.shift();}stats.frame.fps=Math.round(totalFPS/fpsSamples.length);}for(var id in core.scenes){core.scenes[id].compile();}runTasks(time);lastTime=time;};window.setInterval(frame,1000/30);var renderFrame=function renderFrame(){var time=Date.now();elapsedTime=time-lastTime;if(lastTime>0&&elapsedTime>0){// Log FPS stats
|
|
1631
|
+
var newFPS=1000/elapsedTime;// Moving average of FPS
|
|
1632
|
+
totalFPS+=newFPS;fpsSamples.push(newFPS);if(fpsSamples.length>=numFPSSamples){totalFPS-=fpsSamples.shift();}stats.frame.fps=Math.round(totalFPS/fpsSamples.length);}runTasks(time);fireTickEvents(time);renderScenes();window.requestPostAnimationFrame!==undefined?window.requestPostAnimationFrame(frame):requestAnimationFrame(renderFrame);};renderFrame();function runTasks(time){// Process as many enqueued tasks as we can within the per-frame task budget
|
|
1631
1633
|
var tasksRun=core.runTasks(time+taskBudget);var tasksScheduled=core.getNumTasks();stats.frame.tasksRun=tasksRun;stats.frame.tasksScheduled=tasksScheduled;stats.frame.tasksBudget=taskBudget;}function fireTickEvents(time){// Fire tick event on each Scene
|
|
1632
1634
|
tickEvent.time=time;for(var id in core.scenes){if(core.scenes.hasOwnProperty(id)){var scene=core.scenes[id];tickEvent.sceneId=id;tickEvent.startTime=scene.startTime;tickEvent.deltaTime=tickEvent.prevTime!=null?tickEvent.time-tickEvent.prevTime:0;/**
|
|
1633
1635
|
* Fired on each game loop iteration.
|
|
@@ -1639,7 +1641,7 @@ tickEvent.time=time;for(var id in core.scenes){if(core.scenes.hasOwnProperty(id)
|
|
|
1639
1641
|
* @param {Number} prevTime The time of the previous "tick" event from this Scene.
|
|
1640
1642
|
* @param {Number} deltaTime The time in seconds since the previous "tick" event from this Scene.
|
|
1641
1643
|
*/scene.fire("tick",tickEvent,true);}}tickEvent.prevTime=time;}function renderScenes(){var scenes=core.scenes;var forceRender=false;var scene;var renderInfo;var ticksPerOcclusionTest;var ticksPerRender;var id;for(id in scenes){if(scenes.hasOwnProperty(id)){scene=scenes[id];renderInfo=scenesRenderInfo[id];if(!renderInfo){renderInfo=scenesRenderInfo[id]={};// FIXME
|
|
1642
|
-
}ticksPerOcclusionTest=scene.ticksPerOcclusionTest;if(renderInfo.ticksPerOcclusionTest!==ticksPerOcclusionTest){renderInfo.ticksPerOcclusionTest=ticksPerOcclusionTest;renderInfo.renderCountdown=ticksPerOcclusionTest;}if(--scene.occlusionTestCountdown<=0){scene.doOcclusionTest();scene.occlusionTestCountdown=ticksPerOcclusionTest;}ticksPerRender=scene.ticksPerRender;if(renderInfo.ticksPerRender!==ticksPerRender){renderInfo.ticksPerRender=ticksPerRender;renderInfo.renderCountdown=ticksPerRender;}if(--renderInfo.renderCountdown===0){scene.render(forceRender);renderInfo.renderCountdown=ticksPerRender;}}}}
|
|
1644
|
+
}ticksPerOcclusionTest=scene.ticksPerOcclusionTest;if(renderInfo.ticksPerOcclusionTest!==ticksPerOcclusionTest){renderInfo.ticksPerOcclusionTest=ticksPerOcclusionTest;renderInfo.renderCountdown=ticksPerOcclusionTest;}if(--scene.occlusionTestCountdown<=0){scene.doOcclusionTest();scene.occlusionTestCountdown=ticksPerOcclusionTest;}ticksPerRender=scene.ticksPerRender;if(renderInfo.ticksPerRender!==ticksPerRender){renderInfo.ticksPerRender=ticksPerRender;renderInfo.renderCountdown=ticksPerRender;}if(--renderInfo.renderCountdown===0){scene.render(forceRender);renderInfo.renderCountdown=ticksPerRender;}}}}/**
|
|
1643
1645
|
* @desc Base class for all xeokit components.
|
|
1644
1646
|
*
|
|
1645
1647
|
* ## Component IDs
|
|
@@ -2979,7 +2981,7 @@ _this18._initMarkerDiv();_this18._onMouseHoverSurface=null;_this18._onHoverNothi
|
|
|
2979
2981
|
*/function get(){return this._snapping;}/**
|
|
2980
2982
|
* Activates this AngleMeasurementsMouseControl, ready to respond to input.
|
|
2981
2983
|
*/,set:function set(snapping){if(snapping!==this._snapping){this._snapping=snapping;this.deactivate();this.activate();}else{this._snapping=snapping;}}},{key:"activate",value:function activate(){var _this19=this;if(this._active){return;}if(!this.markerDiv){this._initMarkerDiv();// if the marker is destroyed after deactivation, we recreate it
|
|
2982
|
-
}this.angleMeasurementsPlugin;var scene=this.scene;scene.input;var canvas=scene.canvas.canvas;var clickTolerance=20;var cameraControl=this.angleMeasurementsPlugin.viewer.cameraControl;var pointerLens=this.pointerLens;var mouseHovering=false;var hoveredEntity=null;var lastMouseCanvasX=0;var lastMouseCanvasY=0;var mouseWorldPos=math.vec3();var mouseHoverCanvasPos=math.vec2();this._currentAngleMeasurement=null;this._onMouseHoverSurface=cameraControl.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",function(event){if(event.snappedToVertex||event.snappedToEdge){if(pointerLens){pointerLens.visible=true;pointerLens.canvasPos=event.canvasPos;pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;pointerLens.snapped=true;}_this19.markerDiv.style.background="greenyellow";_this19.markerDiv.style.border="2px solid green";}else{if(pointerLens){pointerLens.visible=true;pointerLens.canvasPos=event.canvasPos;pointerLens.snappedCanvasPos=event.canvasPos;pointerLens.snapped=false;}_this19.markerDiv.style.background="pink";_this19.markerDiv.style.border="2px solid red";}var canvasPos=event.snappedCanvasPos||event.canvasPos;mouseHovering=true;hoveredEntity=event.entity;mouseWorldPos.set(event.worldPos);mouseHoverCanvasPos.set(canvasPos);switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:_this19.
|
|
2984
|
+
}this.angleMeasurementsPlugin;var scene=this.scene;scene.input;var canvas=scene.canvas.canvas;var clickTolerance=20;var cameraControl=this.angleMeasurementsPlugin.viewer.cameraControl;var pointerLens=this.pointerLens;var mouseHovering=false;var hoveredEntity=null;var lastMouseCanvasX=0;var lastMouseCanvasY=0;var mouseWorldPos=math.vec3();var mouseHoverCanvasPos=math.vec2();this._currentAngleMeasurement=null;this._onMouseHoverSurface=cameraControl.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",function(event){if(event.snappedToVertex||event.snappedToEdge){if(pointerLens){pointerLens.visible=true;pointerLens.canvasPos=event.canvasPos;pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;pointerLens.snapped=true;}_this19.markerDiv.style.background="greenyellow";_this19.markerDiv.style.border="2px solid green";}else{if(pointerLens){pointerLens.visible=true;pointerLens.canvasPos=event.canvasPos;pointerLens.snappedCanvasPos=event.canvasPos;pointerLens.snapped=false;}_this19.markerDiv.style.background="pink";_this19.markerDiv.style.border="2px solid red";}var canvasPos=event.snappedCanvasPos||event.canvasPos;mouseHovering=true;hoveredEntity=event.entity;mouseWorldPos.set(event.worldPos);mouseHoverCanvasPos.set(canvasPos);switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:var canvasBoundRect=canvas.getBoundingClientRect();var scrollLeft=window.pageXOffset||document.documentElement.scrollLeft;var scrollTop=window.pageYOffset||document.documentElement.scrollTop;var canvasLeftEdge=canvasBoundRect.left+scrollLeft;var canvasTopEdge=canvasBoundRect.top+scrollTop;_this19._markerDiv.style.marginLeft="".concat(canvasLeftEdge+canvasPos[0]-5,"px");_this19._markerDiv.style.marginTop="".concat(canvasTopEdge+canvasPos[1]-5,"px");break;case MOUSE_FINDING_CORNER:if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.originWireVisible=true;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.cornerVisible=true;_this19._currentAngleMeasurement.angleVisible=false;_this19._currentAngleMeasurement.corner.worldPos=event.worldPos;_this19._currentAngleMeasurement.corner.entity=event.entity;}_this19.markerDiv.style.marginLeft="-10000px";_this19.markerDiv.style.marginTop="-10000px";canvas.style.cursor="pointer";break;case MOUSE_FINDING_TARGET:if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.targetWireVisible=true;_this19._currentAngleMeasurement.targetVisible=true;_this19._currentAngleMeasurement.angleVisible=true;_this19._currentAngleMeasurement.target.worldPos=event.worldPos;_this19._currentAngleMeasurement.target.entity=event.entity;}_this19.markerDiv.style.marginLeft="-10000px";_this19.markerDiv.style.marginTop="-10000px";canvas.style.cursor="pointer";break;}});canvas.addEventListener('mousedown',this._onMouseDown=function(e){if(e.which!==1){return;}lastMouseCanvasX=e.clientX;lastMouseCanvasY=e.clientY;});canvas.addEventListener("mouseup",this._onMouseUp=function(e){if(e.which!==1){return;}if(e.clientX>lastMouseCanvasX+clickTolerance||e.clientX<lastMouseCanvasX-clickTolerance||e.clientY>lastMouseCanvasY+clickTolerance||e.clientY<lastMouseCanvasY-clickTolerance){return;}switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:if(mouseHovering){_this19._currentAngleMeasurement=_this19.angleMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{worldPos:mouseWorldPos},corner:{worldPos:mouseWorldPos},target:{worldPos:mouseWorldPos},approximate:true});_this19._currentAngleMeasurement.clickable=false;_this19._currentAngleMeasurement.originVisible=true;_this19._currentAngleMeasurement.originWireVisible=true;_this19._currentAngleMeasurement.cornerVisible=false;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.targetVisible=false;_this19._currentAngleMeasurement.angleVisible=false;_this19._currentAngleMeasurement.origin.entity=hoveredEntity;_this19._mouseState=MOUSE_FINDING_CORNER;_this19.angleMeasurementsPlugin.fire("measurementStart",_this19._currentAngleMeasurement);}break;case MOUSE_FINDING_CORNER:if(mouseHovering){_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.targetVisible=true;_this19._currentAngleMeasurement.angleVisible=true;_this19._currentAngleMeasurement.corner.entity=hoveredEntity;_this19._mouseState=MOUSE_FINDING_TARGET;}else{if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.destroy();_this19._currentAngleMeasurement=null;hoveredEntity=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;_this19.angleMeasurementsPlugin.fire("measurementCancel",_this19._currentAngleMeasurement);}}break;case MOUSE_FINDING_TARGET:if(mouseHovering){_this19._currentAngleMeasurement.targetVisible=true;_this19._currentAngleMeasurement.angleVisible=true;_this19._currentAngleMeasurement.target.entity=hoveredEntity;_this19._currentAngleMeasurement.clickable=true;hoveredEntity=null;_this19.angleMeasurementsPlugin.fire("measurementEnd",_this19._currentAngleMeasurement);_this19._currentAngleMeasurement=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;}else{if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.destroy();_this19._currentAngleMeasurement=null;hoveredEntity=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;_this19.angleMeasurementsPlugin.fire("measurementCancel",_this19._currentAngleMeasurement);}}break;}});this._onMouseHoverOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){mouseHovering=false;if(pointerLens){pointerLens.visible=true;pointerLens.pointerPos=event.canvasPos;pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;pointerLens.snapped=false;}_this19.markerDiv.style.marginLeft="-100px";_this19.markerDiv.style.marginTop="-100px";if(_this19._currentAngleMeasurement){switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:_this19._currentAngleMeasurement.originVisible=false;break;case MOUSE_FINDING_CORNER:_this19._currentAngleMeasurement.cornerVisible=false;_this19._currentAngleMeasurement.originWireVisible=false;_this19._currentAngleMeasurement.targetVisible=false;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.angleVisible=false;break;case MOUSE_FINDING_TARGET:_this19._currentAngleMeasurement.targetVisible=false;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.angleVisible=false;break;}canvas.style.cursor="default";}});this._active=true;}/**
|
|
2983
2985
|
* Deactivates this AngleMeasurementsMouseControl, making it unresponsive to input.
|
|
2984
2986
|
*
|
|
2985
2987
|
* Destroys any {@link AngleMeasurement} under construction by this AngleMeasurementsMouseControl.
|
|
@@ -3283,8 +3285,8 @@ _this18._initMarkerDiv();_this18._onMouseHoverSurface=null;_this18._onHoverNothi
|
|
|
3283
3285
|
*/_this22.projection=cfg.projection;return _this22;}/**
|
|
3284
3286
|
* @private
|
|
3285
3287
|
*/_createClass(Annotation,[{key:"_buildHTML",value:function _buildHTML(){var _this23=this;if(!this._markerExternal){if(this._marker){this._container.removeChild(this._marker);this._marker=null;}var markerHTML=this._markerHTML||"<p></p>";// Make marker
|
|
3286
|
-
if(utils.isArray(markerHTML)){markerHTML=markerHTML.join("");}markerHTML=this._renderTemplate(markerHTML);var markerFragment=document.createRange().createContextualFragment(markerHTML);this._marker=markerFragment.firstChild;this._container.appendChild(this._marker);this._marker.style.visibility=this._markerShown?"visible":"hidden";this._marker.addEventListener("click",function(){_this23.plugin.fire("markerClicked",_this23);});this._marker.addEventListener("mouseenter",function(){_this23.plugin.fire("markerMouseEnter",_this23);});this._marker.addEventListener("mouseleave",function(){_this23.plugin.fire("markerMouseLeave",_this23);});this._marker.addEventListener('wheel',function(event){_this23.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent('wheel',event));});}if(!this._labelExternal){if(this._label){this._container.removeChild(this._label);this._label=null;}var labelHTML=this._labelHTML||"<p></p>";// Make label
|
|
3287
|
-
if(utils.isArray(labelHTML)){labelHTML=labelHTML.join("");}labelHTML=this._renderTemplate(labelHTML);var labelFragment=document.createRange().createContextualFragment(labelHTML);this._label=labelFragment.firstChild;this._container.appendChild(this._label);this._label.style.visibility=this._markerShown&&this._labelShown?"visible":"hidden";this._label.addEventListener('wheel',function(event){_this23.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent('wheel',event));});}}/**
|
|
3288
|
+
if(utils.isArray(markerHTML)){markerHTML=markerHTML.join("");}markerHTML=this._renderTemplate(markerHTML.trim());var markerFragment=document.createRange().createContextualFragment(markerHTML);this._marker=markerFragment.firstChild;this._container.appendChild(this._marker);this._marker.style.visibility=this._markerShown?"visible":"hidden";this._marker.addEventListener("click",function(){_this23.plugin.fire("markerClicked",_this23);});this._marker.addEventListener("mouseenter",function(){_this23.plugin.fire("markerMouseEnter",_this23);});this._marker.addEventListener("mouseleave",function(){_this23.plugin.fire("markerMouseLeave",_this23);});this._marker.addEventListener('wheel',function(event){_this23.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent('wheel',event));});}if(!this._labelExternal){if(this._label){this._container.removeChild(this._label);this._label=null;}var labelHTML=this._labelHTML||"<p></p>";// Make label
|
|
3289
|
+
if(utils.isArray(labelHTML)){labelHTML=labelHTML.join("");}labelHTML=this._renderTemplate(labelHTML.trim());var labelFragment=document.createRange().createContextualFragment(labelHTML);this._label=labelFragment.firstChild;this._container.appendChild(this._label);this._label.style.visibility=this._markerShown&&this._labelShown?"visible":"hidden";this._label.addEventListener('wheel',function(event){_this23.plugin.viewer.scene.canvas.canvas.dispatchEvent(new WheelEvent('wheel',event));});}}/**
|
|
3288
3290
|
* @private
|
|
3289
3291
|
*/},{key:"_updatePosition",value:function _updatePosition(){var boundary=this.scene.canvas.boundary;var left=boundary[0];var top=boundary[1];var canvasPos=this.canvasPos;this._marker.style.left=Math.floor(left+canvasPos[0])-12+"px";this._marker.style.top=Math.floor(top+canvasPos[1])-12+"px";this._marker.style["z-index"]=90005+Math.floor(this._viewPos[2])+1;var offsetX=20;var offsetY=-17;this._label.style.left=20+Math.floor(left+canvasPos[0]+offsetX)+"px";this._label.style.top=Math.floor(top+canvasPos[1]+offsetY)+"px";this._label.style["z-index"]=90005+Math.floor(this._viewPos[2])+1;}/**
|
|
3290
3292
|
* @private
|
|
@@ -18947,7 +18949,7 @@ this._originDot.setVisible(this._visible&&this._originVisible);this._targetDot.s
|
|
|
18947
18949
|
* @returns {boolean} Whether snap-to-vertex and snap-to-edge are enabled for this DistanceMeasurementsMouseControl.
|
|
18948
18950
|
*/function get(){return this._snapping;}/**
|
|
18949
18951
|
* Activates this DistanceMeasurementsMouseControl, ready to respond to input.
|
|
18950
|
-
*/,set:function set(snapping){if(snapping!==this._snapping){this._snapping=snapping;this.deactivate();this.activate();}else{this._snapping=snapping;}}},{key:"activate",value:function activate(){var _this82=this;if(this._active){return;}if(!this._markerDiv){this._initMarkerDiv();}this.fire("activated",true);var distanceMeasurementsPlugin=this.distanceMeasurementsPlugin;var scene=this.scene;var cameraControl=distanceMeasurementsPlugin.viewer.cameraControl;var canvas=scene.canvas.canvas;scene.input;var mouseHovering=false;var pointerWorldPos=math.vec3();var pointerCanvasPos=math.vec2();var pointerDownCanvasX;var pointerDownCanvasY;var clickTolerance=20;var hoveredEntity=null;this._mouseState=MOUSE_FIRST_CLICK_EXPECTED;this._onCameraControlHoverSnapOrSurface=cameraControl.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",function(event){var canvasPos=event.snappedCanvasPos||event.canvasPos;mouseHovering=true;pointerWorldPos.set(event.worldPos);pointerCanvasPos.set(event.canvasPos);if(_this82._mouseState===MOUSE_FIRST_CLICK_EXPECTED){_this82._markerDiv.style.marginLeft="".concat(canvasPos[0]-5,"px");_this82._markerDiv.style.marginTop="".concat(canvasPos[1]-5,"px");_this82._markerDiv.style.background="pink";if(event.snappedToVertex||event.snappedToEdge){if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;_this82.pointerLens.snapped=true;}_this82._markerDiv.style.background="greenyellow";_this82._markerDiv.style.border="2px solid green";}else{if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.canvasPos;_this82.pointerLens.snapped=false;}_this82._markerDiv.style.background="pink";_this82._markerDiv.style.border="2px solid red";}hoveredEntity=event.entity;}else{_this82._markerDiv.style.marginLeft="-10000px";_this82._markerDiv.style.marginTop="-10000px";}canvas.style.cursor="pointer";if(_this82._currentDistanceMeasurement){_this82._currentDistanceMeasurement.wireVisible=_this82._currentDistanceMeasurementInitState.wireVisible;_this82._currentDistanceMeasurement.axisVisible=_this82._currentDistanceMeasurementInitState.axisVisible&&_this82.distanceMeasurementsPlugin.defaultAxisVisible;_this82._currentDistanceMeasurement.xAxisVisible=_this82._currentDistanceMeasurementInitState.xAxisVisible&&_this82.distanceMeasurementsPlugin.defaultXAxisVisible;_this82._currentDistanceMeasurement.yAxisVisible=_this82._currentDistanceMeasurementInitState.yAxisVisible&&_this82.distanceMeasurementsPlugin.defaultYAxisVisible;_this82._currentDistanceMeasurement.zAxisVisible=_this82._currentDistanceMeasurementInitState.zAxisVisible&&_this82.distanceMeasurementsPlugin.defaultZAxisVisible;_this82._currentDistanceMeasurement.targetVisible=_this82._currentDistanceMeasurementInitState.targetVisible;_this82._currentDistanceMeasurement.target.worldPos=pointerWorldPos.slice();_this82._markerDiv.style.marginLeft="-10000px";_this82._markerDiv.style.marginTop="-10000px";}});canvas.addEventListener('mousedown',this._onMouseDown=function(e){if(e.which!==1){return;}pointerDownCanvasX=e.clientX;pointerDownCanvasY=e.clientY;});canvas.addEventListener("mouseup",this._onMouseUp=function(e){if(e.which!==1){return;}if(e.clientX>pointerDownCanvasX+clickTolerance||e.clientX<pointerDownCanvasX-clickTolerance||e.clientY>pointerDownCanvasY+clickTolerance||e.clientY<pointerDownCanvasY-clickTolerance){return;}if(_this82._currentDistanceMeasurement){if(mouseHovering){_this82._currentDistanceMeasurement.target.entity=hoveredEntity;hoveredEntity=null;_this82._currentDistanceMeasurement.clickable=true;_this82.distanceMeasurementsPlugin.fire("measurementEnd",_this82._currentDistanceMeasurement);_this82._currentDistanceMeasurement=null;}else{_this82._currentDistanceMeasurement.destroy();_this82.distanceMeasurementsPlugin.fire("measurementCancel",_this82._currentDistanceMeasurement);_this82._currentDistanceMeasurement=null;hoveredEntity=null;}}else{if(mouseHovering){_this82._currentDistanceMeasurement=distanceMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{worldPos:pointerWorldPos.slice()},target:{worldPos:pointerWorldPos.slice()},approximate:true});_this82._currentDistanceMeasurementInitState.axisVisible=_this82._currentDistanceMeasurement.axisVisible&&_this82.distanceMeasurementsPlugin.defaultAxisVisible;_this82._currentDistanceMeasurementInitState.xAxisVisible=_this82._currentDistanceMeasurement.xAxisVisible&&_this82.distanceMeasurementsPlugin.defaultXAxisVisible;_this82._currentDistanceMeasurementInitState.yAxisVisible=_this82._currentDistanceMeasurement.yAxisVisible&&_this82.distanceMeasurementsPlugin.defaultYAxisVisible;_this82._currentDistanceMeasurementInitState.zAxisVisible=_this82._currentDistanceMeasurement.zAxisVisible&&_this82.distanceMeasurementsPlugin.defaultZAxisVisible;_this82._currentDistanceMeasurementInitState.wireVisible=_this82._currentDistanceMeasurement.wireVisible;_this82._currentDistanceMeasurementInitState.targetVisible=_this82._currentDistanceMeasurement.targetVisible;_this82._currentDistanceMeasurement.clickable=false;_this82._currentDistanceMeasurement.origin.entity=hoveredEntity;hoveredEntity=null;_this82.fire("measurementStart",_this82._currentDistanceMeasurement);}}});this._onCameraControlHoverSnapOrSurfaceOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;}mouseHovering=false;_this82._markerDiv.style.marginLeft="-100px";_this82._markerDiv.style.marginTop="-100px";if(_this82._currentDistanceMeasurement){_this82._currentDistanceMeasurement.wireVisible=false;_this82._currentDistanceMeasurement.targetVisible=false;_this82._currentDistanceMeasurement.axisVisible=false;}canvas.style.cursor="default";});this._active=true;}/**
|
|
18952
|
+
*/,set:function set(snapping){if(snapping!==this._snapping){this._snapping=snapping;this.deactivate();this.activate();}else{this._snapping=snapping;}}},{key:"activate",value:function activate(){var _this82=this;if(this._active){return;}if(!this._markerDiv){this._initMarkerDiv();}this.fire("activated",true);var distanceMeasurementsPlugin=this.distanceMeasurementsPlugin;var scene=this.scene;var cameraControl=distanceMeasurementsPlugin.viewer.cameraControl;var canvas=scene.canvas.canvas;scene.input;var mouseHovering=false;var pointerWorldPos=math.vec3();var pointerCanvasPos=math.vec2();var pointerDownCanvasX;var pointerDownCanvasY;var clickTolerance=20;var hoveredEntity=null;this._mouseState=MOUSE_FIRST_CLICK_EXPECTED;this._onCameraControlHoverSnapOrSurface=cameraControl.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",function(event){var canvasPos=event.snappedCanvasPos||event.canvasPos;mouseHovering=true;pointerWorldPos.set(event.worldPos);pointerCanvasPos.set(event.canvasPos);if(_this82._mouseState===MOUSE_FIRST_CLICK_EXPECTED){var canvasBoundRect=canvas.getBoundingClientRect();var scrollLeft=window.pageXOffset||document.documentElement.scrollLeft;var scrollTop=window.pageYOffset||document.documentElement.scrollTop;var canvasLeftEdge=canvasBoundRect.left+scrollLeft;var canvasTopEdge=canvasBoundRect.top+scrollTop;_this82._markerDiv.style.marginLeft="".concat(canvasLeftEdge+canvasPos[0]-5,"px");_this82._markerDiv.style.marginTop="".concat(canvasTopEdge+canvasPos[1]-5,"px");_this82._markerDiv.style.background="pink";if(event.snappedToVertex||event.snappedToEdge){if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;_this82.pointerLens.snapped=true;}_this82._markerDiv.style.background="greenyellow";_this82._markerDiv.style.border="2px solid green";}else{if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.canvasPos;_this82.pointerLens.snapped=false;}_this82._markerDiv.style.background="pink";_this82._markerDiv.style.border="2px solid red";}hoveredEntity=event.entity;}else{_this82._markerDiv.style.marginLeft="-10000px";_this82._markerDiv.style.marginTop="-10000px";}canvas.style.cursor="pointer";if(_this82._currentDistanceMeasurement){_this82._currentDistanceMeasurement.wireVisible=_this82._currentDistanceMeasurementInitState.wireVisible;_this82._currentDistanceMeasurement.axisVisible=_this82._currentDistanceMeasurementInitState.axisVisible&&_this82.distanceMeasurementsPlugin.defaultAxisVisible;_this82._currentDistanceMeasurement.xAxisVisible=_this82._currentDistanceMeasurementInitState.xAxisVisible&&_this82.distanceMeasurementsPlugin.defaultXAxisVisible;_this82._currentDistanceMeasurement.yAxisVisible=_this82._currentDistanceMeasurementInitState.yAxisVisible&&_this82.distanceMeasurementsPlugin.defaultYAxisVisible;_this82._currentDistanceMeasurement.zAxisVisible=_this82._currentDistanceMeasurementInitState.zAxisVisible&&_this82.distanceMeasurementsPlugin.defaultZAxisVisible;_this82._currentDistanceMeasurement.targetVisible=_this82._currentDistanceMeasurementInitState.targetVisible;_this82._currentDistanceMeasurement.target.worldPos=pointerWorldPos.slice();_this82._markerDiv.style.marginLeft="-10000px";_this82._markerDiv.style.marginTop="-10000px";}});canvas.addEventListener('mousedown',this._onMouseDown=function(e){if(e.which!==1){return;}pointerDownCanvasX=e.clientX;pointerDownCanvasY=e.clientY;});canvas.addEventListener("mouseup",this._onMouseUp=function(e){if(e.which!==1){return;}if(e.clientX>pointerDownCanvasX+clickTolerance||e.clientX<pointerDownCanvasX-clickTolerance||e.clientY>pointerDownCanvasY+clickTolerance||e.clientY<pointerDownCanvasY-clickTolerance){return;}if(_this82._currentDistanceMeasurement){if(mouseHovering){_this82._currentDistanceMeasurement.target.entity=hoveredEntity;hoveredEntity=null;_this82._currentDistanceMeasurement.clickable=true;_this82.distanceMeasurementsPlugin.fire("measurementEnd",_this82._currentDistanceMeasurement);_this82._currentDistanceMeasurement=null;}else{_this82._currentDistanceMeasurement.destroy();_this82.distanceMeasurementsPlugin.fire("measurementCancel",_this82._currentDistanceMeasurement);_this82._currentDistanceMeasurement=null;hoveredEntity=null;}}else{if(mouseHovering){_this82._currentDistanceMeasurement=distanceMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{worldPos:pointerWorldPos.slice()},target:{worldPos:pointerWorldPos.slice()},approximate:true});_this82._currentDistanceMeasurementInitState.axisVisible=_this82._currentDistanceMeasurement.axisVisible&&_this82.distanceMeasurementsPlugin.defaultAxisVisible;_this82._currentDistanceMeasurementInitState.xAxisVisible=_this82._currentDistanceMeasurement.xAxisVisible&&_this82.distanceMeasurementsPlugin.defaultXAxisVisible;_this82._currentDistanceMeasurementInitState.yAxisVisible=_this82._currentDistanceMeasurement.yAxisVisible&&_this82.distanceMeasurementsPlugin.defaultYAxisVisible;_this82._currentDistanceMeasurementInitState.zAxisVisible=_this82._currentDistanceMeasurement.zAxisVisible&&_this82.distanceMeasurementsPlugin.defaultZAxisVisible;_this82._currentDistanceMeasurementInitState.wireVisible=_this82._currentDistanceMeasurement.wireVisible;_this82._currentDistanceMeasurementInitState.targetVisible=_this82._currentDistanceMeasurement.targetVisible;_this82._currentDistanceMeasurement.clickable=false;_this82._currentDistanceMeasurement.origin.entity=hoveredEntity;hoveredEntity=null;_this82.fire("measurementStart",_this82._currentDistanceMeasurement);}}});this._onCameraControlHoverSnapOrSurfaceOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;}mouseHovering=false;_this82._markerDiv.style.marginLeft="-100px";_this82._markerDiv.style.marginTop="-100px";if(_this82._currentDistanceMeasurement){_this82._currentDistanceMeasurement.wireVisible=false;_this82._currentDistanceMeasurement.targetVisible=false;_this82._currentDistanceMeasurement.axisVisible=false;}canvas.style.cursor="default";});this._active=true;}/**
|
|
18951
18953
|
* Deactivates this DistanceMeasurementsMouseControl, making it unresponsive to input.
|
|
18952
18954
|
*
|
|
18953
18955
|
* Destroys any {@link DistanceMeasurement} under construction by this DistanceMeasurementsMouseControl.
|