@xeokit/xeokit-sdk 2.6.0-beta-5 → 2.6.0-beta-7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xeokit/xeokit-sdk",
3
- "version": "2.6.0-beta-5",
3
+ "version": "2.6.0-beta-7",
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",
@@ -189,6 +189,10 @@ export class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
189
189
  const mouseWorldPos = math.vec3();
190
190
  const mouseHoverCanvasPos = math.vec2();
191
191
  this._currentAngleMeasurement = null;
192
+
193
+ const getTop = el => el.offsetTop + (el.offsetParent && getTop(el.offsetParent));
194
+ const getLeft = el => el.offsetLeft + (el.offsetParent && getLeft(el.offsetParent));
195
+
192
196
  this._onMouseHoverSurface = cameraControl.on(
193
197
  this._snapping
194
198
  ? "hoverSnapOrSurface"
@@ -220,13 +224,9 @@ export class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
220
224
  mouseHoverCanvasPos.set(canvasPos);
221
225
  switch (this._mouseState) {
222
226
  case MOUSE_FINDING_ORIGIN:
223
- const canvasBoundRect = canvas.getBoundingClientRect();
224
- const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
225
- const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
226
- const canvasLeftEdge = canvasBoundRect.left + scrollLeft;
227
- const canvasTopEdge = canvasBoundRect.top + scrollTop;
228
- this.markerDiv.style.left = `${canvasLeftEdge + canvasPos[0] - 5}px`;
229
- this.markerDiv.style.top = `${canvasTopEdge + canvasPos[1] - 5}px`;
227
+ this.markerDiv.style.left = `${getLeft(canvas) + canvasPos[0] - 5}px`;
228
+ this.markerDiv.style.top = `${getTop(canvas) + canvasPos[1] - 5}px`;
229
+
230
230
  break;
231
231
  case MOUSE_FINDING_CORNER:
232
232
  if (this._currentAngleMeasurement) {
@@ -197,6 +197,9 @@ export class DistanceMeasurementsMouseControl extends DistanceMeasurementsContro
197
197
 
198
198
  this._mouseState = MOUSE_FIRST_CLICK_EXPECTED;
199
199
 
200
+ const getTop = el => el.offsetTop + (el.offsetParent && getTop(el.offsetParent));
201
+ const getLeft = el => el.offsetLeft + (el.offsetParent && getLeft(el.offsetParent));
202
+
200
203
  this._onCameraControlHoverSnapOrSurface = cameraControl.on(
201
204
  this._snapping
202
205
  ? "hoverSnapOrSurface"
@@ -207,16 +210,8 @@ export class DistanceMeasurementsMouseControl extends DistanceMeasurementsContro
207
210
  pointerCanvasPos.set(event.canvasPos);
208
211
  if (this._mouseState === MOUSE_FIRST_CLICK_EXPECTED) {
209
212
 
210
- // const canvasBoundary = getCanvasBoundary();
211
-
212
- const canvasBoundRect = canvas.getBoundingClientRect();
213
- const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;
214
- const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
215
- const canvasLeftEdge = canvasBoundRect.left + scrollLeft;
216
- const canvasTopEdge = canvasBoundRect.top + scrollTop;
217
-
218
- this._markerDiv.style.left = `${canvasLeftEdge + canvasPos[0] - 5}px`;
219
- this._markerDiv.style.top = `${canvasTopEdge + canvasPos[1] - 5}px`;
213
+ this._markerDiv.style.left = `${getLeft(canvas) + canvasPos[0] - 5}px`;
214
+ this._markerDiv.style.top = `${getTop(canvas) + canvasPos[1] - 5}px`;
220
215
 
221
216
  this._markerDiv.style.background = "pink";
222
217
  if (event.snappedToVertex || event.snappedToEdge) {
@@ -1,5 +1,5 @@
1
1
  import {utils} from "../../viewer/scene/utils.js";
2
- import {core} from "../../viewer/scene/core";
2
+ import {core} from "../../viewer/scene/core.js";
3
3
 
4
4
  /**
5
5
  * Default data access strategy for {@link GLTFLoaderPlugin}.
@@ -355,9 +355,9 @@ parsers[ParserV10.version] = ParserV10;
355
355
  * }
356
356
  *
357
357
  * // Gets the contents of the given .XKT file in an arraybuffer
358
- * getXKT(xKTSrc, ok, error) {
358
+ * getXKT(src, ok, error) {
359
359
  * console.log("MyDataSource#getXKT(" + xKTSrc + ", ... )");
360
- * utils.loadArraybuffer(xKTSrc,
360
+ * utils.loadArraybuffer(src,
361
361
  * (arraybuffer) => {
362
362
  * ok(arraybuffer);
363
363
  * },
@@ -1041,13 +1041,28 @@ class XKTLoaderPlugin extends Plugin {
1041
1041
  globalizeObjectIds: options.globalizeObjectIds
1042
1042
  });
1043
1043
  i++;
1044
- this.scheduleTask( loadNext, 100);
1044
+ this.scheduleTask(loadNext, 100);
1045
1045
  }, error);
1046
1046
  }
1047
1047
  }
1048
1048
  loadNext();
1049
1049
  }
1050
- const loadXKTs = (xktFiles, done, error) => {
1050
+ const loadXKTs_excludeTheirMetaModels = (xktFiles, done, error) => { // Load XKTs, ignore metamodels in the XKT
1051
+ let i = 0;
1052
+ const loadNext = () => {
1053
+ if (i >= xktFiles.length) {
1054
+ done();
1055
+ } else {
1056
+ this._dataSource.getXKT(`${baseDir}${xktFiles[i]}`, (arrayBuffer) => {
1057
+ this._parseModel(arrayBuffer, params, options, sceneModel, null /* Ignore metamodel in XKT */, manifestCtx);
1058
+ i++;
1059
+ this.scheduleTask(loadNext, 100);
1060
+ }, error);
1061
+ }
1062
+ }
1063
+ loadNext();
1064
+ };
1065
+ const loadXKTs_includeTheirMetaModels = (xktFiles, done, error) => { // Load XKTs, parse metamodels from the XKT
1051
1066
  let i = 0;
1052
1067
  const loadNext = () => {
1053
1068
  if (i >= xktFiles.length) {
@@ -1072,10 +1087,10 @@ class XKTLoaderPlugin extends Plugin {
1072
1087
  const metaModelFiles = manifestData.metaModelFiles;
1073
1088
  if (metaModelFiles) {
1074
1089
  loadJSONs(metaModelFiles, () => {
1075
- loadXKTs(xktFiles, finish, error);
1090
+ loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
1076
1091
  }, error);
1077
1092
  } else {
1078
- loadXKTs(xktFiles, finish, error);
1093
+ loadXKTs_includeTheirMetaModels(xktFiles, finish, error);
1079
1094
  }
1080
1095
  } else {
1081
1096
  this._dataSource.getManifest(params.manifestSrc, (manifestData) => {
@@ -1090,10 +1105,10 @@ class XKTLoaderPlugin extends Plugin {
1090
1105
  const metaModelFiles = manifestData.metaModelFiles;
1091
1106
  if (metaModelFiles) {
1092
1107
  loadJSONs(metaModelFiles, () => {
1093
- loadXKTs(xktFiles, finish, error);
1108
+ loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
1094
1109
  }, error);
1095
1110
  } else {
1096
- loadXKTs(xktFiles, finish, error);
1111
+ loadXKTs_includeTheirMetaModels(xktFiles, finish, error);
1097
1112
  }
1098
1113
  }, error);
1099
1114
  }
@@ -1133,56 +1148,6 @@ class XKTLoaderPlugin extends Plugin {
1133
1148
  }
1134
1149
  parser.parse(this.viewer, options, elements, sceneModel, metaModel, manifestCtx);
1135
1150
  }
1136
-
1137
- // _createDefaultMetaModelIfNeeded(sceneModel, params, options) {
1138
- //
1139
- // const metaModelId = sceneModel.id;
1140
- //
1141
- // if (!this.viewer.metaScene.metaModels[metaModelId]) {
1142
- //
1143
- // const metaModelData = {
1144
- // metaObjects: []
1145
- // };
1146
- //
1147
- // metaModelData.metaObjects.push({
1148
- // id: metaModelId,
1149
- // type: "default",
1150
- // name: metaModelId,
1151
- // parent: null
1152
- // });
1153
- //
1154
- // const entityList = sceneModel.entityList;
1155
- //
1156
- // for (let i = 0, len = entityList.length; i < len; i++) {
1157
- // const entity = entityList[i];
1158
- // if (entity.isObject) {
1159
- // metaModelData.metaObjects.push({
1160
- // id: entity.id,
1161
- // type: "default",
1162
- // name: entity.id,
1163
- // parent: metaModelId
1164
- // });
1165
- // }
1166
- // }
1167
- //
1168
- // const src = params.src;
1169
- //
1170
- // this.viewer.metaScene.createMetaModel(metaModelId, metaModelData, {
1171
- //
1172
- // includeTypes: options.includeTypes,
1173
- // excludeTypes: options.excludeTypes,
1174
- // globalizeObjectIds: options.globalizeObjectIds,
1175
- //
1176
- // getProperties: async (propertiesId) => {
1177
- // return await this._dataSource.getProperties(src, propertiesId);
1178
- // }
1179
- // });
1180
- //
1181
- // sceneModel.once("destroyed", () => {
1182
- // this.viewer.metaScene.destroyMetaModel(metaModelId);
1183
- // });
1184
- // }
1185
- // }
1186
1151
  }
1187
1152
 
1188
1153
  function getBaseDirectory(filePath) {
@@ -1,5 +1,5 @@
1
1
  import {Map} from "./scene/utils/Map.js";
2
- import {core} from "./scene/core";
2
+ import {core} from "./scene/core.js";
3
3
 
4
4
  /**
5
5
  @desc Base class for {@link Viewer} plugin classes.
@@ -3,7 +3,7 @@ import {CameraFlightAnimation} from "./scene/camera/CameraFlightAnimation.js";
3
3
  import {CameraControl} from "./scene/CameraControl/CameraControl.js";
4
4
  import {MetaScene} from "./metadata/MetaScene.js";
5
5
  import {LocaleService} from "./localization/LocaleService.js";
6
- import html2canvas from 'html2canvas/dist/html2canvas.esm.js';
6
+ import html2canvas from '../../node_modules/html2canvas/dist/html2canvas.esm.js';
7
7
 
8
8
  /**
9
9
  * The 3D Viewer at the heart of the xeokit SDK.
@@ -1,5 +1,5 @@
1
1
  import {TrianglesBatchingRenderer} from "./TrianglesBatchingRenderer.js";
2
- import {EdgesRenderer} from "./EdgesRenderer";
2
+ import {EdgesRenderer} from "./EdgesRenderer.js";
3
3
 
4
4
 
5
5
  /**
@@ -1,6 +1,6 @@
1
1
  import {Cache} from './Cache.js';
2
2
  import {Loader} from './Loader.js';
3
- import {core} from "../core";
3
+ import {core} from "../core.js";
4
4
 
5
5
  const loading = {};
6
6
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @private
3
3
  */
4
- import {core} from "./core";
4
+ import {core} from "./core.js";
5
5
 
6
6
  function xmlToJson(node, attributeRenamer) {
7
7
  if (node.nodeType === node.TEXT_NODE) {