@xeokit/xeokit-sdk 2.6.17 → 2.6.19

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.
Files changed (37) hide show
  1. package/dist/xeokit-sdk.cjs.js +2345 -117
  2. package/dist/xeokit-sdk.es.js +2335 -118
  3. package/dist/xeokit-sdk.es5.js +558 -418
  4. package/dist/xeokit-sdk.min.cjs.js +4 -4
  5. package/dist/xeokit-sdk.min.es.js +5 -5
  6. package/dist/xeokit-sdk.min.es5.js +4 -4
  7. package/package.json +2 -2
  8. package/src/extras/PointerLens/PointerLens.js +2 -2
  9. package/src/plugins/AnnotationsPlugin/Annotation.js +1 -0
  10. package/src/plugins/CityJSONLoaderPlugin/CityJSONDefaultDataSource.js +15 -2
  11. package/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +1 -1
  12. package/src/plugins/DotBIMLoaderPlugin/DotBIMDefaultDataSource.js +15 -2
  13. package/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +18 -5
  14. package/src/plugins/LASLoaderPlugin/LASDefaultDataSource.js +15 -1
  15. package/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +17 -0
  16. package/src/plugins/WebIFCLoaderPlugin/WebIFCDefaultDataSource.js +16 -1
  17. package/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +18 -4
  18. package/src/plugins/ZonesPlugin/index.js +2046 -0
  19. package/src/plugins/index.js +2 -1
  20. package/src/plugins/lib/html/Dot.js +19 -1
  21. package/src/viewer/Viewer.js +3 -1
  22. package/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +9 -0
  23. package/src/viewer/scene/geometry/builders/buildLineGeometry.js +267 -0
  24. package/src/viewer/scene/input/Input.js +41 -0
  25. package/src/viewer/scene/marker/Marker.js +1 -1
  26. package/src/viewer/scene/mesh/Mesh.js +5 -0
  27. package/src/viewer/scene/model/SceneModel.js +7 -1
  28. package/src/viewer/scene/scene/Scene.js +30 -4
  29. package/src/viewer/scene/sectionPlane/SectionPlane.js +3 -7
  30. package/src/viewer/scene/webgl/Renderer.js +84 -79
  31. package/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +1 -1
  32. package/src/viewer/scene/webgl/occlusion/OcclusionTester.js +8 -4
  33. package/types/viewer/Viewer.d.ts +2 -0
  34. package/types/viewer/scene/geometry/builders/buildLineGeometry.d.ts +22 -0
  35. package/types/viewer/scene/geometry/builders/buildPolylineGeometry.d.ts +2 -2
  36. package/types/viewer/scene/scene/Scene.d.ts +11 -0
  37. package/dist/web-ifc.wasm +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xeokit/xeokit-sdk",
3
- "version": "2.6.17",
3
+ "version": "2.6.19",
4
4
  "description": "Web Programming Toolkit for 3D/2D BIM and AEC Graphics",
5
5
  "module": "./dist/xeokit-sdk.es.js",
6
6
  "main": "./dist/xeokit-sdk.cjs.js",
@@ -11,7 +11,7 @@
11
11
  "docs": "rm -Rf ./docs/*; ./node_modules/.bin/esdoc",
12
12
  "typedocs": "rm -Rf ./docs/*; typedoc --tsconfig tsconfig.json",
13
13
  "publish": "npm publish --access public",
14
- "changelog": "git fetch all; auto-changelog --commit-limit false --package --template changelog-template.hbs"
14
+ "changelog": "git fetch; auto-changelog --commit-limit false --package --template changelog-template.hbs"
15
15
  },
16
16
  "repository": {
17
17
  "type": "git",
@@ -149,8 +149,8 @@ export class PointerLens {
149
149
  );
150
150
 
151
151
  const centerLensCanvas = [
152
- (lensRect.left + lensRect.right) / 2,
153
- (lensRect.top + lensRect.bottom) / 2
152
+ (lensRect.left + lensRect.right) / 2 - canvasRect.left,
153
+ (lensRect.top + lensRect.bottom) / 2 - canvasRect.top
154
154
  ];
155
155
 
156
156
  if (this._snappedCanvasPos) {
@@ -347,6 +347,7 @@ class Annotation extends Marker {
347
347
  if (this._marker) {
348
348
  if (!this._markerExternal) {
349
349
  this._marker.parentNode.removeChild(this._marker);
350
+ this._marker = null;
350
351
  } else {
351
352
  this._marker.removeEventListener("click", this._onMouseClickedExternalMarker);
352
353
  this._marker.removeEventListener("mouseenter", this._onMouseEnterExternalMarker);
@@ -5,7 +5,20 @@ import {utils} from "../../viewer/index.js";
5
5
  */
6
6
  class CityJSONDefaultDataSource {
7
7
 
8
- constructor() {
8
+ constructor(cfg = {}) {
9
+ this.cacheBuster = (cfg.cacheBuster !== false);
10
+ }
11
+
12
+ _cacheBusterURL(url) {
13
+ if (!this.cacheBuster) {
14
+ return url;
15
+ }
16
+ const timestamp = new Date().getTime();
17
+ if (url.indexOf('?') > -1) {
18
+ return url + '&_=' + timestamp;
19
+ } else {
20
+ return url + '?_=' + timestamp;
21
+ }
9
22
  }
10
23
 
11
24
  /**
@@ -16,7 +29,7 @@ class CityJSONDefaultDataSource {
16
29
  * @param {Function} error Callback fired on error.
17
30
  */
18
31
  getCityJSON(src, ok, error) {
19
- utils.loadJSON(src,
32
+ utils.loadJSON(this._cacheBusterURL(src),
20
33
  (json) => {
21
34
  ok(json);
22
35
  },
@@ -331,7 +331,7 @@ class DistanceMeasurement extends Component {
331
331
 
332
332
  if (this._wpDirty) {
333
333
 
334
- this._measurementOrientation = determineMeasurementOrientation(this._originWorld, this._targetWorld, 1);
334
+ this._measurementOrientation = determineMeasurementOrientation(this._originWorld, this._targetWorld, 0);
335
335
  if(this._measurementOrientation === 'Vertical' && this.useRotationAdjustment){
336
336
  this._wp[0] = this._originWorld[0];
337
337
  this._wp[1] = this._originWorld[1];
@@ -7,7 +7,20 @@ import {utils} from "../../viewer/scene/utils.js";
7
7
  */
8
8
  export class DotBIMDefaultDataSource {
9
9
 
10
- constructor() {
10
+ constructor(cfg = {}) {
11
+ this.cacheBuster = (cfg.cacheBuster !== false);
12
+ }
13
+
14
+ _cacheBusterURL(url) {
15
+ if (!this.cacheBuster) {
16
+ return url;
17
+ }
18
+ const timestamp = new Date().getTime();
19
+ if (url.indexOf('?') > -1) {
20
+ return url + '&_=' + timestamp;
21
+ } else {
22
+ return url + '?_=' + timestamp;
23
+ }
11
24
  }
12
25
 
13
26
  /**
@@ -18,7 +31,7 @@ export class DotBIMDefaultDataSource {
18
31
  * @param {Function} error Fired on error while loading the .BIM JSON asset.
19
32
  */
20
33
  getDotBIM(dotBIMSrc, ok, error) {
21
- utils.loadJSON(dotBIMSrc,
34
+ utils.loadJSON(this._cacheBusterURL(dotBIMSrc),
22
35
  (json) => {
23
36
  ok(json);
24
37
  },
@@ -8,7 +8,20 @@ import {core} from "../../viewer/scene/core.js";
8
8
  */
9
9
  class GLTFDefaultDataSource {
10
10
 
11
- constructor() {
11
+ constructor(cfg = {}) {
12
+ this.cacheBuster = (cfg.cacheBuster !== false);
13
+ }
14
+
15
+ _cacheBusterURL(url) {
16
+ if (!this.cacheBuster) {
17
+ return url;
18
+ }
19
+ const timestamp = new Date().getTime();
20
+ if (url.indexOf('?') > -1) {
21
+ return url + '&_=' + timestamp;
22
+ } else {
23
+ return url + '?_=' + timestamp;
24
+ }
12
25
  }
13
26
 
14
27
  /**
@@ -19,7 +32,7 @@ class GLTFDefaultDataSource {
19
32
  * @param {Function} error Fired on error while loading the metamodel JSON asset.
20
33
  */
21
34
  getMetaModel(metaModelSrc, ok, error) {
22
- utils.loadJSON(metaModelSrc,
35
+ utils.loadJSON(this._cacheBusterURL(metaModelSrc),
23
36
  (json) => {
24
37
  ok(json);
25
38
  },
@@ -36,7 +49,7 @@ class GLTFDefaultDataSource {
36
49
  * @param {Function} error Fired on error while loading the glTF JSON asset.
37
50
  */
38
51
  getGLTF(glTFSrc, ok, error) {
39
- utils.loadArraybuffer(glTFSrc,
52
+ utils.loadArraybuffer(this._cacheBusterURL(glTFSrc),
40
53
  (gltf) => {
41
54
  ok(gltf);
42
55
  },
@@ -53,7 +66,7 @@ class GLTFDefaultDataSource {
53
66
  * @param {Function} error Fired on error while loading the .glb asset.
54
67
  */
55
68
  getGLB(glbSrc, ok, error) {
56
- utils.loadArraybuffer(glbSrc,
69
+ utils.loadArraybuffer(this._cacheBusterURL(glbSrc),
57
70
  (arraybuffer) => {
58
71
  ok(arraybuffer);
59
72
  },
@@ -74,7 +87,7 @@ class GLTFDefaultDataSource {
74
87
  * @param {Function} error Fired on error while loading the glTF binary asset.
75
88
  */
76
89
  getArrayBuffer(glTFSrc, binarySrc, ok, error) {
77
- loadArraybuffer(glTFSrc, binarySrc,
90
+ loadArraybuffer(this._cacheBusterURL(glTFSrc), binarySrc,
78
91
  (arrayBuffer) => {
79
92
  ok(arrayBuffer);
80
93
  },
@@ -3,7 +3,20 @@
3
3
  */
4
4
  class LASDefaultDataSource {
5
5
 
6
- constructor() {
6
+ constructor(cfg = {}) {
7
+ this.cacheBuster = (cfg.cacheBuster !== false);
8
+ }
9
+
10
+ _cacheBusterURL(url) {
11
+ if (!this.cacheBuster) {
12
+ return url;
13
+ }
14
+ const timestamp = new Date().getTime();
15
+ if (url.indexOf('?') > -1) {
16
+ return url + '&_=' + timestamp;
17
+ } else {
18
+ return url + '?_=' + timestamp;
19
+ }
7
20
  }
8
21
 
9
22
  /**
@@ -14,6 +27,7 @@ class LASDefaultDataSource {
14
27
  * @param {Function} error Callback fired on error.
15
28
  */
16
29
  getLAS(src, ok, error) {
30
+ src = this._cacheBusterURL(src);
17
31
  var defaultCallback = () => {
18
32
  };
19
33
  ok = ok || defaultCallback;
@@ -5,6 +5,22 @@
5
5
  */
6
6
  class STLDefaultDataSource {
7
7
 
8
+ constructor(cfg = {}) {
9
+ this.cacheBuster = (cfg.cacheBuster !== false);
10
+ }
11
+
12
+ _cacheBusterURL(url) {
13
+ if (!this.cacheBuster) {
14
+ return url;
15
+ }
16
+ const timestamp = new Date().getTime();
17
+ if (url.indexOf('?') > -1) {
18
+ return url + '&_=' + timestamp;
19
+ } else {
20
+ return url + '?_=' + timestamp;
21
+ }
22
+ }
23
+
8
24
  /**
9
25
  * Gets STL data.
10
26
  *
@@ -13,6 +29,7 @@ class STLDefaultDataSource {
13
29
  * @param {Function} error Fired on error while loading the STL file.
14
30
  */
15
31
  getSTL(src, ok, error) {
32
+ src = this._cacheBusterURL(src);
16
33
  const request = new XMLHttpRequest();
17
34
  request.overrideMimeType("application/json");
18
35
  request.open('GET', src, true);
@@ -3,7 +3,20 @@
3
3
  */
4
4
  class WebIFCDefaultDataSource {
5
5
 
6
- constructor() {
6
+ constructor(cfg = {}) {
7
+ this.cacheBuster = (cfg.cacheBuster !== false);
8
+ }
9
+
10
+ _cacheBusterURL(url) {
11
+ if (!this.cacheBuster) {
12
+ return url;
13
+ }
14
+ const timestamp = new Date().getTime();
15
+ if (url.indexOf('?') > -1) {
16
+ return url + '&_=' + timestamp;
17
+ } else {
18
+ return url + '?_=' + timestamp;
19
+ }
7
20
  }
8
21
 
9
22
  /**
@@ -14,6 +27,8 @@ class WebIFCDefaultDataSource {
14
27
  * @param {Function} error Callback fired on error.
15
28
  */
16
29
  getIFC(src, ok, error) {
30
+ src = this._cacheBusterURL(src);
31
+
17
32
  var defaultCallback = () => {
18
33
  };
19
34
  ok = ok || defaultCallback;
@@ -1,11 +1,25 @@
1
1
  import {utils} from "../../viewer/scene/utils.js";
2
+ import {math} from "../../viewer";
2
3
 
3
4
  /**
4
5
  * Default data access strategy for {@link XKTLoaderPlugin}.
5
6
  */
6
7
  class XKTDefaultDataSource {
7
8
 
8
- constructor() {
9
+ constructor(cfg = {}) {
10
+ this.cacheBuster = (cfg.cacheBuster !== false);
11
+ }
12
+
13
+ _cacheBusterURL(url) {
14
+ if (!this.cacheBuster) {
15
+ return url;
16
+ }
17
+ const timestamp = new Date().getTime();
18
+ if (url.indexOf('?') > -1) {
19
+ return url + '&_=' + timestamp;
20
+ } else {
21
+ return url + '?_=' + timestamp;
22
+ }
9
23
  }
10
24
 
11
25
  /**
@@ -16,7 +30,7 @@ class XKTDefaultDataSource {
16
30
  * @param {Function} error Fired on error while loading the manifest JSON asset.
17
31
  */
18
32
  getManifest(manifestSrc, ok, error) {
19
- utils.loadJSON(manifestSrc,
33
+ utils.loadJSON(this._cacheBusterURL(manifestSrc),
20
34
  (json) => {
21
35
  ok(json);
22
36
  },
@@ -33,7 +47,7 @@ class XKTDefaultDataSource {
33
47
  * @param {Function} error Fired on error while loading the metamodel JSON asset.
34
48
  */
35
49
  getMetaModel(metaModelSrc, ok, error) {
36
- utils.loadJSON(metaModelSrc,
50
+ utils.loadJSON(this._cacheBusterURL(metaModelSrc),
37
51
  (json) => {
38
52
  ok(json);
39
53
  },
@@ -75,7 +89,7 @@ class XKTDefaultDataSource {
75
89
  }
76
90
  } else {
77
91
  const request = new XMLHttpRequest();
78
- request.open('GET', src, true);
92
+ request.open('GET', this._cacheBusterURL(src), true);
79
93
  request.responseType = 'arraybuffer';
80
94
  request.onreadystatechange = function () {
81
95
  if (request.readyState === 4) {