@combeenation/3d-viewer 4.0.0-beta5 → 4.1.0-alpha1
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/lib-cjs/api/classes/element.js +31 -28
- package/dist/lib-cjs/api/classes/element.js.map +1 -1
- package/dist/lib-cjs/api/classes/parameter.js +2 -2
- package/dist/lib-cjs/api/classes/parameter.js.map +1 -1
- package/dist/lib-cjs/api/classes/variantParameterizable.js +8 -1
- package/dist/lib-cjs/api/classes/variantParameterizable.js.map +1 -1
- package/dist/lib-cjs/api/classes/viewer.js +16 -9
- package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
- package/dist/lib-cjs/api/classes/viewerLight.js +21 -18
- package/dist/lib-cjs/api/classes/viewerLight.js.map +1 -1
- package/dist/lib-cjs/api/manager/gltfExportManager.d.ts +35 -0
- package/dist/lib-cjs/api/manager/gltfExportManager.js +108 -0
- package/dist/lib-cjs/api/manager/gltfExportManager.js.map +1 -0
- package/dist/lib-cjs/api/util/babylonHelper.d.ts +4 -13
- package/dist/lib-cjs/api/util/babylonHelper.js +27 -47
- package/dist/lib-cjs/api/util/babylonHelper.js.map +1 -1
- package/dist/lib-cjs/api/util/globalTypes.d.ts +5 -0
- package/package.json +1 -1
- package/src/api/classes/element.ts +27 -23
- package/src/api/classes/parameter.ts +2 -2
- package/src/api/classes/variantParameterizable.ts +8 -1
- package/src/api/classes/viewer.ts +16 -7
- package/src/api/classes/viewerLight.ts +19 -15
- package/src/api/util/babylonHelper.ts +29 -48
- package/src/api/util/globalTypes.ts +6 -0
- package/src/dev.ts +2 -2
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GltfExportManager = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var serializers_1 = require("@babylonjs/serializers");
|
|
6
|
+
var lodash_es_1 = require("lodash-es");
|
|
7
|
+
var GltfExportManager = /** @class */ (function () {
|
|
8
|
+
/**
|
|
9
|
+
* Constructor.
|
|
10
|
+
*/
|
|
11
|
+
function GltfExportManager(scene) {
|
|
12
|
+
this.scene = scene;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Creates an {@link GltfExportManager}.
|
|
16
|
+
*/
|
|
17
|
+
GltfExportManager.create = function (scene) {
|
|
18
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
19
|
+
return tslib_1.__generator(this, function (_a) {
|
|
20
|
+
return [2 /*return*/, new GltfExportManager(scene)];
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Exports selected nodes to a {@link GlbExportResult} blob.
|
|
26
|
+
* @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
|
|
27
|
+
*/
|
|
28
|
+
GltfExportManager.prototype.exportGlb = function (exportOptions) {
|
|
29
|
+
if (exportOptions === void 0) { exportOptions = {}; }
|
|
30
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
31
|
+
var glbData;
|
|
32
|
+
return tslib_1.__generator(this, function (_a) {
|
|
33
|
+
switch (_a.label) {
|
|
34
|
+
case 0: return [4 /*yield*/, serializers_1.GLTF2Export.GLBAsync(this.scene, 'dummy', this.gltfExportOptions(exportOptions))];
|
|
35
|
+
case 1:
|
|
36
|
+
glbData = _a.sent();
|
|
37
|
+
return [2 /*return*/, glbData.glTFFiles['dummy.glb']]; // should be only one file for glb
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Exports selected nodes to GLTF. This may result in more than one file, since textures are exported separately.
|
|
44
|
+
* @param filename name of the main (text-based) .GLTF file referring to separate texture files.
|
|
45
|
+
* @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
|
|
46
|
+
*/
|
|
47
|
+
GltfExportManager.prototype.exportGltfToFile = function (filename, exportOptions) {
|
|
48
|
+
if (exportOptions === void 0) { exportOptions = {}; }
|
|
49
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
50
|
+
return tslib_1.__generator(this, function (_a) {
|
|
51
|
+
switch (_a.label) {
|
|
52
|
+
case 0: return [4 /*yield*/, serializers_1.GLTF2Export.GLTFAsync(this.scene, filename, this.gltfExportOptions(exportOptions)).then(function (glb) {
|
|
53
|
+
glb.downloadFiles();
|
|
54
|
+
})];
|
|
55
|
+
case 1:
|
|
56
|
+
_a.sent();
|
|
57
|
+
return [2 /*return*/];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Exports selected nodes to GLB. This results in one binary file.
|
|
64
|
+
* @param filename name of the .GLB file.
|
|
65
|
+
* @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
|
|
66
|
+
*/
|
|
67
|
+
GltfExportManager.prototype.exportGlbToFile = function (filename, exportOptions) {
|
|
68
|
+
if (exportOptions === void 0) { exportOptions = {}; }
|
|
69
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
70
|
+
return tslib_1.__generator(this, function (_a) {
|
|
71
|
+
switch (_a.label) {
|
|
72
|
+
case 0: return [4 /*yield*/, serializers_1.GLTF2Export.GLBAsync(this.scene, filename, this.gltfExportOptions(exportOptions)).then(function (glb) {
|
|
73
|
+
glb.downloadFiles();
|
|
74
|
+
})];
|
|
75
|
+
case 1:
|
|
76
|
+
_a.sent();
|
|
77
|
+
return [2 /*return*/];
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Gets predefined {@link IExportOptions } merged with given ones.
|
|
84
|
+
* @protected
|
|
85
|
+
*/
|
|
86
|
+
GltfExportManager.prototype.gltfExportOptions = function (mergeWithOptions) {
|
|
87
|
+
if (mergeWithOptions === void 0) { mergeWithOptions = {}; }
|
|
88
|
+
var defaultOptions = {
|
|
89
|
+
// includeCoordinateSystemConversionNodes: true,
|
|
90
|
+
shouldExportNode: function (node) {
|
|
91
|
+
if (!node.isEnabled()) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
if (node.isVisible === false) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
if (node.name === '__bounding_box__') {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
return lodash_es_1.merge({}, defaultOptions, mergeWithOptions);
|
|
104
|
+
};
|
|
105
|
+
return GltfExportManager;
|
|
106
|
+
}());
|
|
107
|
+
exports.GltfExportManager = GltfExportManager;
|
|
108
|
+
//# sourceMappingURL=gltfExportManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gltfExportManager.js","sourceRoot":"","sources":["../../../../src/api/manager/gltfExportManager.ts"],"names":[],"mappings":";;;;AACA,sDAAqE;AACrE,uCAAkC;AAElC;IAEC;;OAEG;IACH,2BAAiC,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAC7C,CAAC;IAED;;OAEG;IACiB,wBAAM,GAA1B,UAA4B,KAAY;;;gBACvC,sBAAO,IAAI,iBAAiB,CAAE,KAAK,CAAE,EAAC;;;KACtC;IAED;;;OAGG;IACU,qCAAS,GAAtB,UAAwB,aAAkC;QAAlC,8BAAA,EAAA,kBAAkC;;;;;4BACzC,qBAAM,yBAAW,CAAC,QAAQ,CAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAE,aAAa,CAAE,CAAE,EAAA;;wBAApG,OAAO,GAAG,SAA0F;wBAC1G,sBAAO,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAC,CAAE,kCAAkC;;;;KAC1E;IAED;;;;OAIG;IACU,4CAAgB,GAA7B,UAA+B,QAAgB,EAAE,aAAkC;QAAlC,8BAAA,EAAA,kBAAkC;;;;4BAClF,qBAAM,yBAAW,CAAC,SAAS,CAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAE,aAAa,CAAE,CAAE,CAAC,IAAI,CAAE,UAAE,GAAG;4BACvG,GAAG,CAAC,aAAa,EAAE,CAAC;wBACrB,CAAC,CAAE,EAAA;;wBAFH,SAEG,CAAC;;;;;KACJ;IAED;;;;OAIG;IACU,2CAAe,GAA5B,UAA8B,QAAgB,EAAE,aAAkC;QAAlC,8BAAA,EAAA,kBAAkC;;;;4BACjF,qBAAM,yBAAW,CAAC,QAAQ,CAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAE,aAAa,CAAE,CAAE,CAAC,IAAI,CAAE,UAAE,GAAG;4BACtG,GAAG,CAAC,aAAa,EAAE,CAAC;wBACrB,CAAC,CAAE,EAAA;;wBAFH,SAEG,CAAC;;;;;KACJ;IAED;;;OAGG;IACO,6CAAiB,GAA3B,UAA6B,gBAAqC;QAArC,iCAAA,EAAA,qBAAqC;QACjE,IAAM,cAAc,GAAG;YACtB,gDAAgD;YAChD,gBAAgB,EAAE,UAAU,IAAS;gBACpC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAG;oBACvB,OAAO,KAAK,CAAC;iBACb;gBACD,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAG;oBAC9B,OAAO,KAAK,CAAC;iBACb;gBACD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAG;oBACtC,OAAO,KAAK,CAAC;iBACb;gBACD,OAAO,IAAI,CAAC;YACb,CAAC;SACD,CAAC;QACF,OAAO,iBAAK,CAAE,EAAE,EAAE,cAAc,EAAE,gBAAgB,CAAE,CAAC;IACtD,CAAC;IAEF,wBAAC;AAAD,CAAC,AArED,IAqEC;AArEY,8CAAiB"}
|
|
@@ -2,7 +2,6 @@ import { HighlightLayer } from '@babylonjs/core/Layers/highlightLayer';
|
|
|
2
2
|
import { ShadowGenerator } from '@babylonjs/core/Lights/Shadows/shadowGenerator';
|
|
3
3
|
import { Material } from '@babylonjs/core/Materials/material';
|
|
4
4
|
import { Color3 } from '@babylonjs/core/Maths/math.color';
|
|
5
|
-
import { Vector3 } from '@babylonjs/core/Maths/math.vector';
|
|
6
5
|
import { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh';
|
|
7
6
|
import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
|
|
8
7
|
import { Node } from '@babylonjs/core/node';
|
|
@@ -74,19 +73,11 @@ declare const enableNodeWithParents: (node: Node) => void;
|
|
|
74
73
|
*/
|
|
75
74
|
declare const disableNodeWithParents: (node: Node) => void;
|
|
76
75
|
/**
|
|
77
|
-
*
|
|
78
|
-
* functions moving nodes around.
|
|
76
|
+
* Applies a {@link TransformationDefinition} consecutively to ensure dependencies in positioning etc.
|
|
79
77
|
* @param node
|
|
80
|
-
* @param
|
|
78
|
+
* @param transformation
|
|
81
79
|
*/
|
|
82
|
-
declare const
|
|
83
|
-
/**
|
|
84
|
-
* Attention: this function mutates the position of a node. Keep in mind that there are dependencies to other
|
|
85
|
-
* functions moving nodes around.
|
|
86
|
-
* @param node
|
|
87
|
-
* @param distance
|
|
88
|
-
*/
|
|
89
|
-
declare const moveTransformNode: (node: TransformNode, distance: Vector3) => TransformNode;
|
|
80
|
+
declare const transformTransformNode: (node: TransformNode, transformation: TransformationDefinition) => void;
|
|
90
81
|
/**
|
|
91
82
|
* @param node
|
|
92
83
|
* @param material
|
|
@@ -172,4 +163,4 @@ declare const removeFromShadowGenerator: (generator: ShadowGenerator, node: Tran
|
|
|
172
163
|
* @param canvas
|
|
173
164
|
*/
|
|
174
165
|
declare const getClientRectFromMesh: (mesh: AbstractMesh, scene: Scene, canvas: HTMLCanvasElement) => ClientRect;
|
|
175
|
-
export { getRootNode, mapToDottedNodes, getDottedPathForNode, cloneTransformNode, cloneNodeWithParents, cloneTransformNodeMaterial, injectNodeMetadata, assertTransformNode, activateTransformNode, deactivateTransformNode, enableNodeWithParents, disableNodeWithParents,
|
|
166
|
+
export { getRootNode, mapToDottedNodes, getDottedPathForNode, cloneTransformNode, cloneNodeWithParents, cloneTransformNodeMaterial, injectNodeMetadata, assertTransformNode, activateTransformNode, deactivateTransformNode, enableNodeWithParents, disableNodeWithParents, transformTransformNode, setMaterial, setSourceNodeMaterial, setMaterialColor, setMaterialTexture, setMaterialMetallness, setMaterialRoughness, addToHighlightLayer, removeFromHighlightLayer, setReceiveShadows, addToShadowGenerator, removeFromShadowGenerator, getClientRectFromMesh };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getClientRectFromMesh = exports.removeFromShadowGenerator = exports.addToShadowGenerator = exports.setReceiveShadows = exports.removeFromHighlightLayer = exports.addToHighlightLayer = exports.setMaterialRoughness = exports.setMaterialMetallness = exports.setMaterialTexture = exports.setMaterialColor = exports.setSourceNodeMaterial = exports.setMaterial = exports.
|
|
3
|
+
exports.getClientRectFromMesh = exports.removeFromShadowGenerator = exports.addToShadowGenerator = exports.setReceiveShadows = exports.removeFromHighlightLayer = exports.addToHighlightLayer = exports.setMaterialRoughness = exports.setMaterialMetallness = exports.setMaterialTexture = exports.setMaterialColor = exports.setSourceNodeMaterial = exports.setMaterial = exports.transformTransformNode = exports.disableNodeWithParents = exports.enableNodeWithParents = exports.deactivateTransformNode = exports.activateTransformNode = exports.assertTransformNode = exports.injectNodeMetadata = exports.cloneTransformNodeMaterial = exports.cloneNodeWithParents = exports.cloneTransformNode = exports.getDottedPathForNode = exports.mapToDottedNodes = exports.getRootNode = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var light_1 = require("@babylonjs/core/Lights/light");
|
|
6
6
|
var math_axis_1 = require("@babylonjs/core/Maths/math.axis");
|
|
@@ -211,59 +211,39 @@ var disableNodeWithParents = function (node) {
|
|
|
211
211
|
};
|
|
212
212
|
exports.disableNodeWithParents = disableNodeWithParents;
|
|
213
213
|
/**
|
|
214
|
-
*
|
|
215
|
-
* functions moving nodes around.
|
|
214
|
+
* Applies a {@link TransformationDefinition} consecutively to ensure dependencies in positioning etc.
|
|
216
215
|
* @param node
|
|
217
|
-
* @param
|
|
216
|
+
* @param transformation
|
|
218
217
|
*/
|
|
219
|
-
var
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
if (lodash_es_1.has(node.metadata, 'rotation.offset')) {
|
|
228
|
-
rotationPosition = rotationPosition.subtract(lodash_es_1.get(node.metadata, 'rotation.offset'));
|
|
229
|
-
}
|
|
230
|
-
injectNodeMetadata(node, { 'rotation.position': rotationPosition }, false);
|
|
231
|
-
injectNodeMetadata(node, { 'position.dirty': false }, false);
|
|
232
|
-
}
|
|
233
|
-
node.setAbsolutePosition(lodash_es_1.get(node.metadata, 'rotation.position'));
|
|
234
|
-
if (node.metadata.rotation) {
|
|
235
|
-
node.rotationQuaternion = math_vector_1.Quaternion.FromArray(lodash_es_1.get(node.metadata, 'rotation.initial'));
|
|
236
|
-
}
|
|
237
|
-
node.rotateAround(math_vector_1.Vector3.Zero(), math_axis_1.Axis.X, rotation.x);
|
|
238
|
-
node.rotateAround(math_vector_1.Vector3.Zero(), math_axis_1.Axis.Y, rotation.y);
|
|
239
|
-
node.rotateAround(math_vector_1.Vector3.Zero(), math_axis_1.Axis.Z, rotation.z);
|
|
240
|
-
node.computeWorldMatrix(true);
|
|
241
|
-
injectNodeMetadata(node, {
|
|
242
|
-
'rotation.offset': node.absolutePosition.subtract(lodash_es_1.get(node.metadata, 'rotation.position'))
|
|
243
|
-
}, false);
|
|
244
|
-
return node;
|
|
245
|
-
};
|
|
246
|
-
exports.rotateTransformNode = rotateTransformNode;
|
|
247
|
-
/**
|
|
248
|
-
* Attention: this function mutates the position of a node. Keep in mind that there are dependencies to other
|
|
249
|
-
* functions moving nodes around.
|
|
250
|
-
* @param node
|
|
251
|
-
* @param distance
|
|
252
|
-
*/
|
|
253
|
-
var moveTransformNode = function (node, distance) {
|
|
254
|
-
// remember absolute position and reset it before translating
|
|
218
|
+
var transformTransformNode = function (node, transformation) {
|
|
219
|
+
// scaling
|
|
220
|
+
if (!lodash_es_1.has(node.metadata, 'scaling.initial')) {
|
|
221
|
+
injectNodeMetadata(node, { 'scaling.initial': node.scaling }, false);
|
|
222
|
+
}
|
|
223
|
+
var initialScaling = lodash_es_1.get(node.metadata, 'scaling.initial');
|
|
224
|
+
node.scaling = initialScaling.multiply(transformation.scaling);
|
|
225
|
+
// position
|
|
255
226
|
if (!lodash_es_1.has(node.metadata, 'position.initial')) {
|
|
256
227
|
injectNodeMetadata(node, { 'position.initial': node.absolutePosition.clone() }, false);
|
|
257
228
|
}
|
|
258
|
-
var
|
|
259
|
-
|
|
260
|
-
|
|
229
|
+
var initialPosition = lodash_es_1.get(node.metadata, 'position.initial');
|
|
230
|
+
node.setAbsolutePosition(initialPosition.add(transformation.position).multiply(transformation.scaling));
|
|
231
|
+
// rotation
|
|
232
|
+
if (!lodash_es_1.has(node.metadata, 'rotation.initial')) {
|
|
233
|
+
var rotationQuaternion = node.rotationQuaternion;
|
|
234
|
+
if (!rotationQuaternion) {
|
|
235
|
+
rotationQuaternion = math_vector_1.Quaternion.RotationYawPitchRoll(node.rotation.x, node.rotation.y, node.rotation.z);
|
|
236
|
+
}
|
|
237
|
+
injectNodeMetadata(node, { 'rotation.initial': rotationQuaternion.asArray() }, false);
|
|
261
238
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
239
|
+
var initialRotationQuaternion = math_vector_1.Quaternion.FromArray(lodash_es_1.get(node.metadata, 'rotation.initial'));
|
|
240
|
+
node.rotationQuaternion = initialRotationQuaternion;
|
|
241
|
+
node.rotateAround(math_vector_1.Vector3.Zero(), math_axis_1.Axis.X, transformation.rotation.x);
|
|
242
|
+
node.rotateAround(math_vector_1.Vector3.Zero(), math_axis_1.Axis.Y, transformation.rotation.y);
|
|
243
|
+
node.rotateAround(math_vector_1.Vector3.Zero(), math_axis_1.Axis.Z, transformation.rotation.z);
|
|
244
|
+
node.computeWorldMatrix(true);
|
|
265
245
|
};
|
|
266
|
-
exports.
|
|
246
|
+
exports.transformTransformNode = transformTransformNode;
|
|
267
247
|
/**
|
|
268
248
|
* @param node
|
|
269
249
|
* @param material
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babylonHelper.js","sourceRoot":"","sources":["../../../../src/api/util/babylonHelper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"babylonHelper.js","sourceRoot":"","sources":["../../../../src/api/util/babylonHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,11 @@ declare type ElementDefinition = {
|
|
|
63
63
|
traceables?: TraceableDefinitions;
|
|
64
64
|
paintables?: PaintableDefinitions;
|
|
65
65
|
};
|
|
66
|
+
declare type TransformationDefinition = {
|
|
67
|
+
scaling: Vector3;
|
|
68
|
+
position: Vector3;
|
|
69
|
+
rotation: Vector3;
|
|
70
|
+
};
|
|
66
71
|
declare type StructureJson = {
|
|
67
72
|
/**
|
|
68
73
|
* `scene` describes the visualisation of the Babylon `scene` such as the incidence of light and camera position. If a
|
package/package.json
CHANGED
|
@@ -21,16 +21,15 @@ import {
|
|
|
21
21
|
getClientRectFromMesh,
|
|
22
22
|
injectNodeMetadata,
|
|
23
23
|
mapToDottedNodes,
|
|
24
|
-
moveTransformNode,
|
|
25
24
|
removeFromHighlightLayer,
|
|
26
25
|
removeFromShadowGenerator,
|
|
27
|
-
rotateTransformNode,
|
|
28
26
|
setMaterial,
|
|
29
27
|
setMaterialColor,
|
|
30
28
|
setMaterialMetallness,
|
|
31
29
|
setMaterialRoughness,
|
|
32
30
|
setMaterialTexture,
|
|
33
|
-
setReceiveShadows
|
|
31
|
+
setReceiveShadows,
|
|
32
|
+
transformTransformNode
|
|
34
33
|
} from '../util/babylonHelper';
|
|
35
34
|
import { createImageFromImgSrc, createImageFromSvg } from '../util/resourceHelper';
|
|
36
35
|
import { VariantParameterizable } from './../classes/variantParameterizable';
|
|
@@ -356,7 +355,31 @@ export class Element extends VariantParameterizable {
|
|
|
356
355
|
this._parameterObservers.set( Parameter.SCALING, [
|
|
357
356
|
async ( element: Element, oldValue: ParameterValue, newValue: ParameterValue ) => {
|
|
358
357
|
// we have to deal just with root nodes here due to relative impacts in a node tree
|
|
359
|
-
element.nodes.forEach( node =>
|
|
358
|
+
element.nodes.forEach( node => transformTransformNode( node, {
|
|
359
|
+
scaling: Parameter.parseVector( newValue ),
|
|
360
|
+
position: Parameter.parseVector( element.inheritedParameters[Parameter.POSITION] || '(0, 0, 0)' ),
|
|
361
|
+
rotation: Parameter.parseRotation( element.inheritedParameters[Parameter.ROTATION] || '(0, 0, 0)' )
|
|
362
|
+
} ) );
|
|
363
|
+
}
|
|
364
|
+
] );
|
|
365
|
+
this._parameterObservers.set( Parameter.POSITION, [
|
|
366
|
+
async ( element: Element, oldValue: ParameterValue, newValue: ParameterValue ) => {
|
|
367
|
+
// we have to deal just with root nodes here due to relative impacts in a node tree
|
|
368
|
+
element.nodes.forEach( node => transformTransformNode( node, {
|
|
369
|
+
scaling: Parameter.parseVector( element.inheritedParameters[Parameter.SCALING] || '(1, 1, 1)' ),
|
|
370
|
+
position: Parameter.parseVector( newValue ),
|
|
371
|
+
rotation: Parameter.parseRotation( element.inheritedParameters[Parameter.ROTATION] || '(0, 0, 0)' )
|
|
372
|
+
} ) );
|
|
373
|
+
}
|
|
374
|
+
] );
|
|
375
|
+
this._parameterObservers.set( Parameter.ROTATION, [
|
|
376
|
+
async ( element: Element, oldValue: ParameterValue, newValue: ParameterValue ) => {
|
|
377
|
+
// we have to deal just with root nodes here due to relative impacts in a node tree
|
|
378
|
+
element.nodes.forEach( node => transformTransformNode( node, {
|
|
379
|
+
scaling: Parameter.parseVector( element.inheritedParameters[Parameter.SCALING] || '(1, 1, 1)' ),
|
|
380
|
+
position: Parameter.parseVector( element.inheritedParameters[Parameter.POSITION] || '(0, 0, 0)' ),
|
|
381
|
+
rotation: Parameter.parseRotation( newValue )
|
|
382
|
+
} ) );
|
|
360
383
|
}
|
|
361
384
|
] );
|
|
362
385
|
this._parameterObservers.set( Parameter.MATERIAL, [
|
|
@@ -514,25 +537,6 @@ export class Element extends VariantParameterizable {
|
|
|
514
537
|
}
|
|
515
538
|
}
|
|
516
539
|
] );
|
|
517
|
-
this._parameterObservers.set( Parameter.POSITION, [
|
|
518
|
-
async ( element: Element, oldValue: ParameterValue, newValue: ParameterValue ) => {
|
|
519
|
-
// we have to deal just with root nodes here due to relative impacts in a node tree
|
|
520
|
-
element.nodes.forEach( node => moveTransformNode( node, Parameter.parseVector( newValue ) ) );
|
|
521
|
-
}
|
|
522
|
-
] );
|
|
523
|
-
this._parameterObservers.set( Parameter.ROTATION, [
|
|
524
|
-
async ( element: Element, oldValue: ParameterValue, newValue: ParameterValue ) => {
|
|
525
|
-
// The current implementation (rotating around coordinates 0,0,0) implicitly mutates the position of a node.
|
|
526
|
-
// Since a user expects the rotation after the positioning, we have to manually fire the position observers.
|
|
527
|
-
// Without calling these observers, the pivot and the position of a node is initially the same before rotating,
|
|
528
|
-
// so there is no rotation happening at all.
|
|
529
|
-
if( Parameter.POSITION in element.inheritedParameters ) {
|
|
530
|
-
await element.commitParameter( Parameter.POSITION, element.inheritedParameters[Parameter.POSITION] );
|
|
531
|
-
}
|
|
532
|
-
// we have to deal just with root nodes here due to relative impacts in a node tree
|
|
533
|
-
element.nodes.forEach( node => rotateTransformNode( node, Parameter.parseRotation( newValue ) ) );
|
|
534
|
-
}
|
|
535
|
-
] );
|
|
536
540
|
this._parameterObservers.set( Parameter.CAST_SHADOW, [
|
|
537
541
|
async ( element: Element, oldValue: ParameterValue, newValue: ParameterValue ) => {
|
|
538
542
|
let castShadow;
|
|
@@ -240,6 +240,8 @@ export class Parameter {
|
|
|
240
240
|
const declarations: ParameterDeclarations = {};
|
|
241
241
|
declarations[Parameter.VISIBLE] = { type: 'boolean', parser: Parameter.parseBoolean };
|
|
242
242
|
declarations[Parameter.SCALING] = { type: 'number', parser: Parameter.parseNumber };
|
|
243
|
+
declarations[Parameter.POSITION] = { type: 'vector', parser: Parameter.parseVector };
|
|
244
|
+
declarations[Parameter.ROTATION] = { type: 'vector', parser: Parameter.parseVector };
|
|
243
245
|
declarations[Parameter.HIGHLIGHTED] = { type: 'boolean', parser: Parameter.parseBoolean };
|
|
244
246
|
declarations[Parameter.MATERIAL] = { type: 'string' };
|
|
245
247
|
declarations[Parameter.MATERIAL_COLOR] = { type: 'color', parser: Parameter.parseColor };
|
|
@@ -248,8 +250,6 @@ export class Parameter {
|
|
|
248
250
|
declarations[Parameter.HIGHLIGHT_ENABLED] = { type: 'boolean', parser: Parameter.parseBoolean };
|
|
249
251
|
declarations[Parameter.HIGHLIGHT_COLOR] = { type: 'color', parser: Parameter.parseColor };
|
|
250
252
|
declarations[Parameter.HIGHLIGHTED] = { type: 'boolean', parser: Parameter.parseBoolean };
|
|
251
|
-
declarations[Parameter.POSITION] = { type: 'vector', parser: Parameter.parseVector };
|
|
252
|
-
declarations[Parameter.ROTATION] = { type: 'vector', parser: Parameter.parseVector };
|
|
253
253
|
declarations[Parameter.CAST_SHADOW] = { type: 'boolean', parser: Parameter.parseBoolean };
|
|
254
254
|
declarations[Parameter.CAST_SHADOW_FROM_LIGHTS] = { type: 'csl', parser: Parameter.parseCommaSeparatedList };
|
|
255
255
|
declarations[Parameter.RECEIVE_SHADOWS] = { type: 'boolean', parser: Parameter.parseBoolean };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { cloneDeep, concat, get, merge } from 'lodash-es';
|
|
1
2
|
import { DottedPath } from './../classes/dottedPath';
|
|
2
3
|
import { Event } from './../classes/event';
|
|
3
4
|
import { Parameterizable } from './../classes/parameterizable';
|
|
4
5
|
import { Variant } from './../classes/variant';
|
|
5
6
|
import { mergeMaps } from './../util/resourceHelper';
|
|
6
7
|
import { camelToSnakeCase } from './../util/stringHelper';
|
|
7
|
-
import { cloneDeep, concat, get, merge } from 'lodash-es';
|
|
8
8
|
|
|
9
9
|
export abstract class VariantParameterizable extends Parameterizable {
|
|
10
10
|
|
|
@@ -20,6 +20,13 @@ export abstract class VariantParameterizable extends Parameterizable {
|
|
|
20
20
|
*/
|
|
21
21
|
get inheritedParameters(): ParameterBag {
|
|
22
22
|
const parameterBag: ParameterBag = {};
|
|
23
|
+
for( const parameter in this.variant.inheritedParameters ) {
|
|
24
|
+
const dpp = DottedPath.create( parameter );
|
|
25
|
+
if( dpp.parts.length !== 1 ) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
parameterBag[parameter] = this.variant.inheritedParameters[parameter];
|
|
29
|
+
}
|
|
23
30
|
for( const parameter in this.variant.inheritedParameters ) {
|
|
24
31
|
const dpp = DottedPath.create( parameter );
|
|
25
32
|
if( dpp.firstPart !== this.name ) {
|
|
@@ -278,18 +278,27 @@ export class Viewer extends EventBroadcaster {
|
|
|
278
278
|
}
|
|
279
279
|
this.scene.render(); // XXX: workaround for BoundingBox not respecting render loop
|
|
280
280
|
const bbName = '__bounding_box__';
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
281
|
+
|
|
282
|
+
const { max, min } = this.scene.meshes.filter( mesh => {
|
|
283
|
+
const isEnabled = mesh.isEnabled();
|
|
284
|
+
// ignore the existing bounding box mesh for calculating the current one
|
|
285
|
+
const isNotBBoxMesh = bbName !== mesh.id;
|
|
286
|
+
// ignore meshes with invalid bounding infos
|
|
287
|
+
const hasValidBBoxInfo = mesh.getBoundingInfo().boundingSphere.radius > 0;
|
|
288
|
+
return isEnabled && isNotBBoxMesh && hasValidBBoxInfo;
|
|
289
|
+
} ).reduce( ( accBBoxMinMax, curMesh, idx ) => {
|
|
290
|
+
const bBox = curMesh.getBoundingInfo().boundingBox;
|
|
291
|
+
// use the first entry in the array as default value and get the resulting maximum/minimum values
|
|
292
|
+
const max = ( idx === 0 ) ? bBox.maximumWorld : Vector3.Maximize( accBBoxMinMax.max, bBox.maximumWorld )
|
|
293
|
+
const min = ( idx === 0 ) ? bBox.minimumWorld : Vector3.Minimize( accBBoxMinMax.min, bBox.minimumWorld )
|
|
294
|
+
return { max, min }
|
|
295
|
+
}, { max: new Vector3(), min: new Vector3() } );
|
|
296
|
+
|
|
287
297
|
let boundingBox = this.scene.getMeshByName( bbName ) as Mesh;
|
|
288
298
|
if( !boundingBox ) {
|
|
289
299
|
boundingBox = new Mesh( bbName, this.scene );
|
|
290
300
|
}
|
|
291
301
|
boundingBox.setBoundingInfo( new BoundingInfo( min, max ) );
|
|
292
|
-
//boundingBox.showBoundingBox = true;
|
|
293
302
|
return boundingBox;
|
|
294
303
|
}
|
|
295
304
|
|
|
@@ -14,8 +14,7 @@ import {
|
|
|
14
14
|
enableNodeWithParents,
|
|
15
15
|
getRootNode,
|
|
16
16
|
injectNodeMetadata,
|
|
17
|
-
|
|
18
|
-
rotateTransformNode
|
|
17
|
+
transformTransformNode
|
|
19
18
|
} from './../util/babylonHelper';
|
|
20
19
|
import { DottedPath } from './dottedPath';
|
|
21
20
|
import { Parameter } from './parameter';
|
|
@@ -128,37 +127,42 @@ export class ViewerLight extends VariantParameterizable {
|
|
|
128
127
|
set( light.light, 'intensity', Parameter.parseNumber( newValue ) );
|
|
129
128
|
}
|
|
130
129
|
] );
|
|
131
|
-
this._parameterObservers.set( Parameter.
|
|
130
|
+
this._parameterObservers.set( Parameter.SCALING, [
|
|
132
131
|
async ( light: ViewerLight, oldValue: ParameterValue, newValue: ParameterValue ) => {
|
|
133
132
|
// we have to deal just with root nodes here due to relative impacts in a node tree
|
|
134
133
|
const rootNode = getRootNode( light.light );
|
|
135
134
|
if( rootNode instanceof TransformNode ) {
|
|
136
|
-
|
|
135
|
+
transformTransformNode( rootNode, {
|
|
136
|
+
scaling: Parameter.parseScaling( newValue ),
|
|
137
|
+
position: Parameter.parseVector( light.inheritedParameters[Parameter.POSITION] || '(0, 0, 0)' ),
|
|
138
|
+
rotation: Parameter.parseRotation( light.inheritedParameters[Parameter.ROTATION] || '(0, 0, 0)' )
|
|
139
|
+
} );
|
|
137
140
|
}
|
|
138
141
|
}
|
|
139
142
|
] );
|
|
140
|
-
this._parameterObservers.set( Parameter.
|
|
143
|
+
this._parameterObservers.set( Parameter.POSITION, [
|
|
141
144
|
async ( light: ViewerLight, oldValue: ParameterValue, newValue: ParameterValue ) => {
|
|
142
|
-
// The current implementation (rotating around coordinates 0,0,0) implicitly mutates the position of a node.
|
|
143
|
-
// Since a user expects the rotation after the positioning, we have to manually fire the position observers.
|
|
144
|
-
// Without calling these observers, the pivot and the position of a node is initially the same before rotating,
|
|
145
|
-
// so there is no rotation happening at all.
|
|
146
|
-
if( Parameter.POSITION in light.inheritedParameters ) {
|
|
147
|
-
await light.commitParameter( Parameter.POSITION, light.inheritedParameters[Parameter.POSITION] );
|
|
148
|
-
}
|
|
149
145
|
// we have to deal just with root nodes here due to relative impacts in a node tree
|
|
150
146
|
const rootNode = getRootNode( light.light );
|
|
151
147
|
if( rootNode instanceof TransformNode ) {
|
|
152
|
-
|
|
148
|
+
transformTransformNode( rootNode, {
|
|
149
|
+
scaling: Parameter.parseVector( light.inheritedParameters[Parameter.SCALING] || '(1, 1, 1)' ),
|
|
150
|
+
position: Parameter.parseVector( newValue ),
|
|
151
|
+
rotation: Parameter.parseRotation( light.inheritedParameters[Parameter.ROTATION] || '(0, 0, 0)' )
|
|
152
|
+
} );
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
155
|
] );
|
|
156
|
-
this._parameterObservers.set( Parameter.
|
|
156
|
+
this._parameterObservers.set( Parameter.ROTATION, [
|
|
157
157
|
async ( light: ViewerLight, oldValue: ParameterValue, newValue: ParameterValue ) => {
|
|
158
158
|
// we have to deal just with root nodes here due to relative impacts in a node tree
|
|
159
159
|
const rootNode = getRootNode( light.light );
|
|
160
160
|
if( rootNode instanceof TransformNode ) {
|
|
161
|
-
|
|
161
|
+
transformTransformNode( rootNode, {
|
|
162
|
+
scaling: Parameter.parseVector( light.inheritedParameters[Parameter.SCALING] || '(1, 1, 1)' ),
|
|
163
|
+
position: Parameter.parseVector( light.inheritedParameters[Parameter.POSITION] || '(0, 0, 0)' ),
|
|
164
|
+
rotation: Parameter.parseRotation( newValue )
|
|
165
|
+
} );
|
|
162
166
|
}
|
|
163
167
|
}
|
|
164
168
|
] );
|