@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/dist/xeokit-sdk.cjs.js +35 -75
- package/dist/xeokit-sdk.es.js +35 -75
- package/dist/xeokit-sdk.es5.js +7 -55
- package/dist/xeokit-sdk.min.cjs.js +3 -3
- package/dist/xeokit-sdk.min.es.js +3 -3
- package/dist/xeokit-sdk.min.es5.js +3 -3
- package/package.json +1 -1
- package/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsMouseControl.js +7 -7
- package/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsMouseControl.js +5 -10
- package/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +1 -1
- package/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +23 -58
- package/src/viewer/Plugin.js +1 -1
- package/src/viewer/Viewer.js +1 -1
- package/src/viewer/scene/model/vbo/batching/triangles/renderers/EdgesEmphasisRenderer.js +1 -1
- package/src/viewer/scene/utils/FileLoader.js +1 -1
- package/src/viewer/scene/utils.js +1 -1
package/package.json
CHANGED
|
@@ -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
|
-
|
|
224
|
-
|
|
225
|
-
|
|
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
|
-
|
|
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) {
|
|
@@ -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(
|
|
358
|
+
* getXKT(src, ok, error) {
|
|
359
359
|
* console.log("MyDataSource#getXKT(" + xKTSrc + ", ... )");
|
|
360
|
-
* utils.loadArraybuffer(
|
|
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(
|
|
1044
|
+
this.scheduleTask(loadNext, 100);
|
|
1045
1045
|
}, error);
|
|
1046
1046
|
}
|
|
1047
1047
|
}
|
|
1048
1048
|
loadNext();
|
|
1049
1049
|
}
|
|
1050
|
-
const
|
|
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
|
-
|
|
1090
|
+
loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
|
|
1076
1091
|
}, error);
|
|
1077
1092
|
} else {
|
|
1078
|
-
|
|
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
|
-
|
|
1108
|
+
loadXKTs_excludeTheirMetaModels(xktFiles, finish, error);
|
|
1094
1109
|
}, error);
|
|
1095
1110
|
} else {
|
|
1096
|
-
|
|
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) {
|
package/src/viewer/Plugin.js
CHANGED
package/src/viewer/Viewer.js
CHANGED
|
@@ -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.
|