@combeenation/3d-viewer 21.0.1 → 21.1.0-beta2
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/buildinfo.json +1 -1
- package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
- package/dist/lib-cjs/internal/parameter/paintable-parameter-helper.d.ts +2 -2
- package/dist/lib-cjs/internal/parameter/paintable-parameter-helper.js +3 -2
- package/dist/lib-cjs/internal/parameter/paintable-parameter-helper.js.map +1 -1
- package/dist/lib-cjs/internal/parameter/parameter-helper.d.ts +2 -2
- package/dist/lib-cjs/internal/parameter/parameter-helper.js +9 -28
- package/dist/lib-cjs/internal/parameter/parameter-helper.js.map +1 -1
- package/dist/lib-cjs/internal/parameter/texture-parameter-helper.d.ts +2 -2
- package/dist/lib-cjs/internal/parameter/texture-parameter-helper.js +5 -5
- package/dist/lib-cjs/internal/parameter/texture-parameter-helper.js.map +1 -1
- package/dist/lib-cjs/internal/svg-helper.d.ts +5 -0
- package/dist/lib-cjs/internal/svg-helper.js +13 -2
- package/dist/lib-cjs/internal/svg-helper.js.map +1 -1
- package/dist/lib-cjs/manager/camera-manager.js +6 -6
- package/dist/lib-cjs/manager/camera-manager.js.map +1 -1
- package/dist/lib-cjs/manager/parameter-manager.d.ts +6 -4
- package/dist/lib-cjs/manager/parameter-manager.js +10 -9
- package/dist/lib-cjs/manager/parameter-manager.js.map +1 -1
- package/dist/lib-cjs/manager/scene-manager.js +8 -5
- package/dist/lib-cjs/manager/scene-manager.js.map +1 -1
- package/dist/lib-cjs/utils/viewer-utils.d.ts +24 -1
- package/dist/lib-cjs/utils/viewer-utils.js +63 -0
- package/dist/lib-cjs/utils/viewer-utils.js.map +1 -1
- package/dist/lib-cjs/viewer.js +1 -0
- package/dist/lib-cjs/viewer.js.map +1 -1
- package/package.json +1 -1
- package/src/internal/parameter/paintable-parameter-helper.ts +4 -3
- package/src/internal/parameter/parameter-helper.ts +15 -49
- package/src/internal/parameter/texture-parameter-helper.ts +7 -12
- package/src/internal/svg-helper.ts +13 -1
- package/src/manager/camera-manager.ts +3 -3
- package/src/manager/parameter-manager.ts +12 -12
- package/src/manager/scene-manager.ts +9 -5
- package/src/utils/viewer-utils.ts +75 -0
- package/src/viewer.ts +2 -0
- package/dist/lib-cjs/internal/animation-helper.d.ts +0 -2
- package/dist/lib-cjs/internal/animation-helper.js +0 -16
- package/dist/lib-cjs/internal/animation-helper.js.map +0 -1
- package/src/internal/animation-helper.ts +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-manager.js","sourceRoot":"","sources":["../../../src/manager/scene-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"scene-manager.js","sourceRoot":"","sources":["../../../src/manager/scene-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Mesh, Node, Nullable, TransformNode, Vector3, Viewer } from '../index';
|
|
1
|
+
import { AnimationGroup, Mesh, Node, Nullable, TransformNode, Vector3, Viewer } from '../index';
|
|
2
|
+
export declare type AnimatableProperties = 'albedoColor' | 'position' | 'rotation' | 'scaling' | 'influence';
|
|
2
3
|
export declare type BakeGeometrySettings = {
|
|
3
4
|
keepTransformation?: boolean;
|
|
4
5
|
};
|
|
@@ -63,4 +64,26 @@ export declare class ViewerUtils {
|
|
|
63
64
|
* Returns `undefined` if no node could be found.
|
|
64
65
|
*/
|
|
65
66
|
findParentNode<T extends Node>(node: Node, criteria?: FindNodeCriteria<T>): T | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* Animates a single property of a target object from its current value to a given target value.\
|
|
69
|
+
* Supported property types are defined by {@link AnimatableProperties} (i.e. `number`, `Vector3`, `Color3`).
|
|
70
|
+
*
|
|
71
|
+
* @param target The object whose property should be animated
|
|
72
|
+
* @param property The name of the property to animate. Must be a key of `target` whose value type is supported.
|
|
73
|
+
* @param value The target value the property should reach at the end of the animation.
|
|
74
|
+
* @param animationName Name given to the internally created animation group.\
|
|
75
|
+
* Use a stable, unique name per animated property so that concurrent calls can be
|
|
76
|
+
* identified (e.g. `"$parameterAnimation.position.MyNode"`).
|
|
77
|
+
* @param animationTimeMs Duration of the animation in milliseconds.
|
|
78
|
+
*/
|
|
79
|
+
animateProperty<T, K extends Extract<keyof T, AnimatableProperties>>(target: T, property: K, value: T[K], animationName: string, animationTimeMs: number): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Plays an animation group exactly in a certain duration, then disposes it.
|
|
82
|
+
*
|
|
83
|
+
* The animation group is expected to span exactly `framesPerSec` frames (i.e. one "logical second").\
|
|
84
|
+
* The speed ratio is derived from that assumption: `speedRatio = 1000 / durationMs`.
|
|
85
|
+
*
|
|
86
|
+
* Due to this strict convention, the method is marked as @internal and should not be used directly by a consumer.
|
|
87
|
+
*/
|
|
88
|
+
playAnimationGroupOnce(animationGroup: AnimationGroup, framesPerSec: number, durationMs: number): Promise<void>;
|
|
66
89
|
}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.ViewerUtils = void 0;
|
|
4
13
|
const index_1 = require("../index");
|
|
@@ -107,6 +116,60 @@ class ViewerUtils {
|
|
|
107
116
|
return this.findParentNode(parent, criteria);
|
|
108
117
|
}
|
|
109
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Animates a single property of a target object from its current value to a given target value.\
|
|
121
|
+
* Supported property types are defined by {@link AnimatableProperties} (i.e. `number`, `Vector3`, `Color3`).
|
|
122
|
+
*
|
|
123
|
+
* @param target The object whose property should be animated
|
|
124
|
+
* @param property The name of the property to animate. Must be a key of `target` whose value type is supported.
|
|
125
|
+
* @param value The target value the property should reach at the end of the animation.
|
|
126
|
+
* @param animationName Name given to the internally created animation group.\
|
|
127
|
+
* Use a stable, unique name per animated property so that concurrent calls can be
|
|
128
|
+
* identified (e.g. `"$parameterAnimation.position.MyNode"`).
|
|
129
|
+
* @param animationTimeMs Duration of the animation in milliseconds.
|
|
130
|
+
*/
|
|
131
|
+
animateProperty(target, property, value, animationName, animationTimeMs) {
|
|
132
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
133
|
+
const framesPerSec = 100;
|
|
134
|
+
// extend if further `AnimatableProperties` with different types are added
|
|
135
|
+
const dataType = value instanceof index_1.Vector3
|
|
136
|
+
? index_1.Animation.ANIMATIONTYPE_VECTOR3
|
|
137
|
+
: value instanceof index_1.Color3
|
|
138
|
+
? index_1.Animation.ANIMATIONTYPE_COLOR3
|
|
139
|
+
: index_1.Animation.ANIMATIONTYPE_FLOAT;
|
|
140
|
+
const animationGroup = new index_1.AnimationGroup(animationName);
|
|
141
|
+
const animation = new index_1.Animation(property, property, framesPerSec, dataType);
|
|
142
|
+
animation.setKeys([
|
|
143
|
+
{ frame: 0, value: target[property] },
|
|
144
|
+
{ frame: framesPerSec, value: value },
|
|
145
|
+
]);
|
|
146
|
+
animationGroup.addTargetedAnimation(animation, target);
|
|
147
|
+
yield this.playAnimationGroupOnce(animationGroup, framesPerSec, Math.max(animationTimeMs, 0));
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Plays an animation group exactly in a certain duration, then disposes it.
|
|
152
|
+
*
|
|
153
|
+
* The animation group is expected to span exactly `framesPerSec` frames (i.e. one "logical second").\
|
|
154
|
+
* The speed ratio is derived from that assumption: `speedRatio = 1000 / durationMs`.
|
|
155
|
+
*
|
|
156
|
+
* Due to this strict convention, the method is marked as @internal and should not be used directly by a consumer.
|
|
157
|
+
*/
|
|
158
|
+
playAnimationGroupOnce(animationGroup, framesPerSec, durationMs) {
|
|
159
|
+
if (durationMs <= 0) {
|
|
160
|
+
animationGroup.dispose();
|
|
161
|
+
return Promise.resolve();
|
|
162
|
+
}
|
|
163
|
+
// animation is created for 1 second (100 frames), adjust speed ratio according to desired movement time
|
|
164
|
+
const speedRatio = 1000 / durationMs;
|
|
165
|
+
return new Promise(resolve => {
|
|
166
|
+
animationGroup.onAnimationGroupEndObservable.addOnce(() => {
|
|
167
|
+
animationGroup.dispose();
|
|
168
|
+
resolve();
|
|
169
|
+
});
|
|
170
|
+
animationGroup.start(false, speedRatio, 0, framesPerSec);
|
|
171
|
+
});
|
|
172
|
+
}
|
|
110
173
|
}
|
|
111
174
|
exports.ViewerUtils = ViewerUtils;
|
|
112
175
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer-utils.js","sourceRoot":"","sources":["../../../src/utils/viewer-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"viewer-utils.js","sourceRoot":"","sources":["../../../src/utils/viewer-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/lib-cjs/viewer.js
CHANGED
|
@@ -216,6 +216,7 @@ class Viewer {
|
|
|
216
216
|
// NOTE: ATM creating the default scene required, as otherwise no camera would be available and the first render
|
|
217
217
|
// call would already throw
|
|
218
218
|
this._sceneManager.applyDefaultSettingsToScene();
|
|
219
|
+
this._parameterManager.addBuiltInParameterObservers();
|
|
219
220
|
this._debugManager.registerAutofocusStartListener();
|
|
220
221
|
engine.runRenderLoop(() => {
|
|
221
222
|
if (!this._isRenderLoopPaused) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
LegacyParameter,
|
|
4
4
|
Material,
|
|
5
5
|
PBRMaterial,
|
|
6
|
-
ParameterManager,
|
|
7
6
|
ParameterValue,
|
|
8
7
|
Scene,
|
|
9
8
|
StandardMaterial,
|
|
10
9
|
Texture,
|
|
10
|
+
Viewer,
|
|
11
11
|
ViewerError,
|
|
12
12
|
ViewerErrorIds,
|
|
13
13
|
} from '../..';
|
|
@@ -31,7 +31,8 @@ type PaintableOptions = {
|
|
|
31
31
|
* Creates observer for "paintable" parameter.
|
|
32
32
|
* Basically creates a dynamic texture from the source image and assigns it as albedo (or diffuse) texture.
|
|
33
33
|
*/
|
|
34
|
-
export function createPaintableParameter(
|
|
34
|
+
export function createPaintableParameter(viewer: Viewer): void {
|
|
35
|
+
const parameterManager = viewer.parameterManager;
|
|
35
36
|
parameterManager.setParameterObserver(LegacyParameter.Paintable, async ({ newValue, materials }) => {
|
|
36
37
|
const paintable = parsePaintable(newValue);
|
|
37
38
|
|
|
@@ -61,7 +62,7 @@ export function createPaintableParameter(parameterManager: ParameterManager, sce
|
|
|
61
62
|
|
|
62
63
|
// apply image source on desired material(s)
|
|
63
64
|
for (const material of materials) {
|
|
64
|
-
_drawPaintableOnMaterial(material, imageSource, scene, paintable.options);
|
|
65
|
+
_drawPaintableOnMaterial(material, imageSource, viewer.scene, paintable.options);
|
|
65
66
|
}
|
|
66
67
|
});
|
|
67
68
|
}
|
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AbstractMesh,
|
|
3
|
-
Animation,
|
|
4
|
-
AnimationGroup,
|
|
5
3
|
BuiltInParameter,
|
|
6
|
-
Color3,
|
|
7
|
-
MaterialManager,
|
|
8
4
|
PBRMaterial,
|
|
9
5
|
ParameterManager,
|
|
10
6
|
StandardMaterial,
|
|
11
|
-
|
|
7
|
+
Viewer,
|
|
12
8
|
ViewerError,
|
|
13
9
|
ViewerErrorIds,
|
|
14
10
|
} from '../..';
|
|
15
|
-
import { playAnimationGroupOnce } from '../animation-helper';
|
|
16
11
|
import { getInternalMetadataValue, setInternalMetadataValue } from '../metadata-helper';
|
|
17
12
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export function createBuiltInParameter(parameterManager: ParameterManager, materialManager: MaterialManager): void {
|
|
13
|
+
export function createBuiltInParameter(viewer: Viewer): void {
|
|
14
|
+
const parameterManager = viewer.parameterManager;
|
|
21
15
|
parameterManager.setParameterObserver(BuiltInParameter.Visible, async ({ nodes, newValue }) => {
|
|
22
16
|
const visible = ParameterManager.parseBoolean(newValue);
|
|
23
17
|
|
|
@@ -40,7 +34,7 @@ export function createBuiltInParameter(parameterManager: ParameterManager, mater
|
|
|
40
34
|
// => skip the material application in this case, as if it would be done twice
|
|
41
35
|
const anMaterialToBeSet = getInternalMetadataValue(an, 'materialToBeSet');
|
|
42
36
|
if (anVisibleNested && anRequestedMaterial && !anMaterialToBeSet) {
|
|
43
|
-
await materialManager.setMaterialOnMesh(
|
|
37
|
+
await viewer.materialManager.setMaterialOnMesh(
|
|
44
38
|
anRequestedMaterial,
|
|
45
39
|
// this cast is fine, as deferred material can only be set on meshes
|
|
46
40
|
an as AbstractMesh
|
|
@@ -73,7 +67,7 @@ export function createBuiltInParameter(parameterManager: ParameterManager, mater
|
|
|
73
67
|
// => skip the material application in this case, as if it would be done twice
|
|
74
68
|
const anMaterialToBeSet = getInternalMetadataValue(node, 'materialToBeSet');
|
|
75
69
|
if (!anMaterialToBeSet) {
|
|
76
|
-
await materialManager.setMaterialOnMesh(material, node);
|
|
70
|
+
await viewer.materialManager.setMaterialOnMesh(material, node);
|
|
77
71
|
}
|
|
78
72
|
} else {
|
|
79
73
|
setInternalMetadataValue(node, 'deferredMaterial', material);
|
|
@@ -86,11 +80,11 @@ export function createBuiltInParameter(parameterManager: ParameterManager, mater
|
|
|
86
80
|
|
|
87
81
|
for (const node of nodes) {
|
|
88
82
|
if (options?.animationTimeMs) {
|
|
89
|
-
|
|
83
|
+
viewer.utils.animateProperty(
|
|
90
84
|
node,
|
|
91
85
|
'position',
|
|
92
86
|
position,
|
|
93
|
-
`${BuiltInParameter.Position}.${node.name}`,
|
|
87
|
+
`${ParameterManager.PARAMETER_ANIMATION_NAME}.${BuiltInParameter.Position}.${node.name}`,
|
|
94
88
|
options.animationTimeMs
|
|
95
89
|
);
|
|
96
90
|
} else {
|
|
@@ -108,11 +102,11 @@ export function createBuiltInParameter(parameterManager: ParameterManager, mater
|
|
|
108
102
|
// otherwise the animation would just jump to the end value, as there is no start value to interpolate
|
|
109
103
|
node.rotation = node.rotationQuaternion.toEulerAngles();
|
|
110
104
|
}
|
|
111
|
-
|
|
105
|
+
viewer.utils.animateProperty(
|
|
112
106
|
node,
|
|
113
107
|
'rotation',
|
|
114
108
|
rotation,
|
|
115
|
-
`${BuiltInParameter.Rotation}.${node.name}`,
|
|
109
|
+
`${ParameterManager.PARAMETER_ANIMATION_NAME}.${BuiltInParameter.Rotation}.${node.name}`,
|
|
116
110
|
options.animationTimeMs
|
|
117
111
|
);
|
|
118
112
|
} else {
|
|
@@ -125,11 +119,11 @@ export function createBuiltInParameter(parameterManager: ParameterManager, mater
|
|
|
125
119
|
|
|
126
120
|
for (const node of nodes) {
|
|
127
121
|
if (options?.animationTimeMs) {
|
|
128
|
-
|
|
122
|
+
viewer.utils.animateProperty(
|
|
129
123
|
node,
|
|
130
124
|
'scaling',
|
|
131
125
|
scaling,
|
|
132
|
-
`${BuiltInParameter.Scaling}.${node.name}`,
|
|
126
|
+
`${ParameterManager.PARAMETER_ANIMATION_NAME}.${BuiltInParameter.Scaling}.${node.name}`,
|
|
133
127
|
options.animationTimeMs
|
|
134
128
|
);
|
|
135
129
|
} else {
|
|
@@ -145,11 +139,11 @@ export function createBuiltInParameter(parameterManager: ParameterManager, mater
|
|
|
145
139
|
switch (materialCls) {
|
|
146
140
|
case 'PBRMaterial':
|
|
147
141
|
if (options?.animationTimeMs) {
|
|
148
|
-
|
|
142
|
+
viewer.utils.animateProperty(
|
|
149
143
|
material as PBRMaterial,
|
|
150
144
|
'albedoColor',
|
|
151
145
|
color.toLinearSpace(),
|
|
152
|
-
`${BuiltInParameter.Color}.${material.id}`,
|
|
146
|
+
`${ParameterManager.PARAMETER_ANIMATION_NAME}.${BuiltInParameter.Color}.${material.id}`,
|
|
153
147
|
options.animationTimeMs
|
|
154
148
|
);
|
|
155
149
|
} else {
|
|
@@ -213,11 +207,11 @@ export function createBuiltInParameter(parameterManager: ParameterManager, mater
|
|
|
213
207
|
|
|
214
208
|
if (target) {
|
|
215
209
|
if (options?.animationTimeMs) {
|
|
216
|
-
|
|
210
|
+
viewer.utils.animateProperty(
|
|
217
211
|
target,
|
|
218
212
|
'influence',
|
|
219
213
|
morphTargetValue.value,
|
|
220
|
-
`${BuiltInParameter.Influence}.${node.name}.${target.name}`,
|
|
214
|
+
`${ParameterManager.PARAMETER_ANIMATION_NAME}.${BuiltInParameter.Influence}.${node.name}.${target.name}`,
|
|
221
215
|
options.animationTimeMs
|
|
222
216
|
);
|
|
223
217
|
} else {
|
|
@@ -233,31 +227,3 @@ export function createBuiltInParameter(parameterManager: ParameterManager, mater
|
|
|
233
227
|
}
|
|
234
228
|
});
|
|
235
229
|
}
|
|
236
|
-
|
|
237
|
-
async function _animateParameter<T, K extends Extract<keyof T, AnimatableProperties>>(
|
|
238
|
-
target: T,
|
|
239
|
-
property: K,
|
|
240
|
-
value: T[K],
|
|
241
|
-
animationNameSuffix: string,
|
|
242
|
-
animationTimeMs: number
|
|
243
|
-
): Promise<void> {
|
|
244
|
-
const framesPerSec = 100;
|
|
245
|
-
// extend if further `AnimatableProperties` with different types are added
|
|
246
|
-
const dataType =
|
|
247
|
-
value instanceof Vector3
|
|
248
|
-
? Animation.ANIMATIONTYPE_VECTOR3
|
|
249
|
-
: value instanceof Color3
|
|
250
|
-
? Animation.ANIMATIONTYPE_COLOR3
|
|
251
|
-
: Animation.ANIMATIONTYPE_FLOAT;
|
|
252
|
-
|
|
253
|
-
const animationGroup = new AnimationGroup(`${ParameterManager.PARAMETER_ANIMATION_NAME}.${animationNameSuffix}`);
|
|
254
|
-
|
|
255
|
-
const animation = new Animation(property, property, framesPerSec, dataType);
|
|
256
|
-
animation.setKeys([
|
|
257
|
-
{ frame: 0, value: target[property] },
|
|
258
|
-
{ frame: framesPerSec, value: value },
|
|
259
|
-
]);
|
|
260
|
-
animationGroup.addTargetedAnimation(animation, target);
|
|
261
|
-
|
|
262
|
-
await playAnimationGroupOnce(animationGroup, framesPerSec, Math.max(animationTimeMs, 0));
|
|
263
|
-
}
|
|
@@ -2,16 +2,15 @@ import {
|
|
|
2
2
|
BaseTexture,
|
|
3
3
|
BuiltInParameter,
|
|
4
4
|
Material,
|
|
5
|
-
MaterialManager,
|
|
6
5
|
PBRMaterial,
|
|
7
6
|
ParameterManager,
|
|
8
|
-
Scene,
|
|
9
7
|
Texture,
|
|
10
8
|
TextureManager,
|
|
9
|
+
Viewer,
|
|
11
10
|
ViewerError,
|
|
12
11
|
ViewerErrorIds,
|
|
13
12
|
} from '../..';
|
|
14
|
-
import { embedAssets } from '../svg-helper';
|
|
13
|
+
import { createSvgDataUri, embedAssets } from '../svg-helper';
|
|
15
14
|
import isSvg from 'is-svg';
|
|
16
15
|
|
|
17
16
|
/**
|
|
@@ -51,11 +50,8 @@ export const ParameterTextureChannels = {
|
|
|
51
50
|
};
|
|
52
51
|
export type ParameterTextureChannelsKeys = keyof typeof ParameterTextureChannels;
|
|
53
52
|
|
|
54
|
-
export function createBuiltInTextureParameter(
|
|
55
|
-
parameterManager
|
|
56
|
-
materialManager: MaterialManager,
|
|
57
|
-
scene: Scene
|
|
58
|
-
): void {
|
|
53
|
+
export function createBuiltInTextureParameter(viewer: Viewer): void {
|
|
54
|
+
const parameterManager = viewer.parameterManager;
|
|
59
55
|
// create parameter observer for each channel
|
|
60
56
|
(Object.values(ParameterTextureChannels) as ParameterTextureChannelsKeys[]).forEach(channel => {
|
|
61
57
|
parameterManager.setParameterObserver(
|
|
@@ -72,8 +68,7 @@ export function createBuiltInTextureParameter(
|
|
|
72
68
|
// However the rescaling functionality of "Dynamic Textures" is not required and therefore it can be
|
|
73
69
|
// implemented as a plain "Texture"
|
|
74
70
|
const svgWithAssetsEmbedded = await embedAssets(image);
|
|
75
|
-
|
|
76
|
-
url = 'data:image/svg+xml;base64,' + btoa(svgWithAssetsEmbedded);
|
|
71
|
+
url = createSvgDataUri(svgWithAssetsEmbedded);
|
|
77
72
|
} else if (image.includes('<svg') && image.includes('</svg>')) {
|
|
78
73
|
// seems like the user tried to use a SVG string, as <svg> tags are used
|
|
79
74
|
// inform the user that this is not a valid SVG string
|
|
@@ -105,13 +100,13 @@ export function createBuiltInTextureParameter(
|
|
|
105
100
|
} else if (url) {
|
|
106
101
|
// no texture, or wrong type => create texture from scratch
|
|
107
102
|
// first we check if some settings were provided in the material definition
|
|
108
|
-
const addMatSettings = await materialManager.getMaterialDefinition(pbrMaterial.id);
|
|
103
|
+
const addMatSettings = await viewer.materialManager.getMaterialDefinition(pbrMaterial.id);
|
|
109
104
|
const textureSettings = addMatSettings ? _getTextureObjFromParameterChannel(addMatSettings, channel) : {};
|
|
110
105
|
|
|
111
106
|
// overwrite the name with the url, as this is what the texture parser expects
|
|
112
107
|
(textureSettings as any).name = url;
|
|
113
108
|
// use parser instead of constructor to keep the original texture settings
|
|
114
|
-
const newTexture = Texture.Parse(textureSettings, scene, '') as Texture;
|
|
109
|
+
const newTexture = Texture.Parse(textureSettings, viewer.scene, '') as Texture;
|
|
115
110
|
|
|
116
111
|
if (!newTexture) {
|
|
117
112
|
throw new ViewerError({
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Replaces all supported image & font URLs in the given SVG with their base64 representation.
|
|
3
3
|
*/
|
|
4
4
|
export async function embedAssets(svgSrc: string): Promise<string> {
|
|
5
|
-
const _imageExtensions = ['png', 'gif', 'jpg', 'jpeg', 'svg', 'bmp'];
|
|
5
|
+
const _imageExtensions = ['png', 'gif', 'jpg', 'jpeg', 'svg', 'bmp', 'webp'];
|
|
6
6
|
const _fontExtensions = ['woff2', 'woff', 'ttf', 'otf'];
|
|
7
7
|
const _assetExtensions = [..._imageExtensions, ..._fontExtensions];
|
|
8
8
|
// Regex copied from https://stackoverflow.com/a/8943487/1273551, not "stress tested"...
|
|
@@ -22,6 +22,18 @@ export async function embedAssets(svgSrc: string): Promise<string> {
|
|
|
22
22
|
return assetFetcherResults.reduce((svgSrc, x) => svgSrc.replace(x.url, x.base64), svgSrc);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Converts an SVG string into a base64-encoded data URI that can be used as a texture URL.
|
|
27
|
+
* Uses `TextEncoder` to correctly handle non-ASCII characters (e.g. umlauts) before base64-encoding.
|
|
28
|
+
*/
|
|
29
|
+
export function createSvgDataUri(svgSrc: string): string {
|
|
30
|
+
const utf8Bytes = new TextEncoder().encode(svgSrc);
|
|
31
|
+
const binary = Array.from(utf8Bytes, b => String.fromCharCode(b)).join('');
|
|
32
|
+
const dataUri = 'data:image/svg+xml;base64,' + btoa(binary);
|
|
33
|
+
|
|
34
|
+
return dataUri;
|
|
35
|
+
}
|
|
36
|
+
|
|
25
37
|
/**
|
|
26
38
|
* Fetch asset (image or font) and convert it to base64 string representation.
|
|
27
39
|
*/
|
|
@@ -11,7 +11,6 @@ import {
|
|
|
11
11
|
ViewerErrorIds,
|
|
12
12
|
ViewerEvent,
|
|
13
13
|
} from '../index';
|
|
14
|
-
import { playAnimationGroupOnce } from '../internal/animation-helper';
|
|
15
14
|
import { downloadFile } from '../internal/export-helper';
|
|
16
15
|
import { nodeMatchesAnyCriteria } from '../internal/node-helper';
|
|
17
16
|
import { createScreenshotCanvas, trimCanvas } from '../internal/screenshot-helper';
|
|
@@ -271,10 +270,11 @@ export class CameraManager {
|
|
|
271
270
|
|
|
272
271
|
if (durationMs === 0) {
|
|
273
272
|
// instant movement without animation
|
|
273
|
+
activeCamera.target = position.target ?? activeCamera.target;
|
|
274
274
|
activeCamera.alpha = position.alpha ?? activeCamera.alpha;
|
|
275
275
|
activeCamera.beta = position.beta ?? activeCamera.beta;
|
|
276
276
|
activeCamera.radius = position.radius ?? activeCamera.radius;
|
|
277
|
-
|
|
277
|
+
return;
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
const framesPerSec = 100;
|
|
@@ -334,7 +334,7 @@ export class CameraManager {
|
|
|
334
334
|
);
|
|
335
335
|
}
|
|
336
336
|
|
|
337
|
-
await playAnimationGroupOnce(animationGroup, framesPerSec, durationMs);
|
|
337
|
+
await this.viewer.utils.playAnimationGroupOnce(animationGroup, framesPerSec, durationMs);
|
|
338
338
|
}
|
|
339
339
|
|
|
340
340
|
/**
|
|
@@ -272,9 +272,7 @@ export class ParameterManager {
|
|
|
272
272
|
protected _parameterObserver: { [parameterName: ParameterName]: ParameterObserver } = {};
|
|
273
273
|
|
|
274
274
|
/** @internal */
|
|
275
|
-
public constructor(protected viewer: Viewer) {
|
|
276
|
-
this._addBuiltInParameterObservers();
|
|
277
|
-
}
|
|
275
|
+
public constructor(protected viewer: Viewer) {}
|
|
278
276
|
|
|
279
277
|
/**
|
|
280
278
|
* Set parameter value for a certain node and calls the corresponding observer if the value has changed
|
|
@@ -417,6 +415,17 @@ export class ParameterManager {
|
|
|
417
415
|
console.table(printable);
|
|
418
416
|
}
|
|
419
417
|
|
|
418
|
+
/**
|
|
419
|
+
* Parameter observer implementation of default parameters
|
|
420
|
+
*
|
|
421
|
+
* @internal
|
|
422
|
+
*/
|
|
423
|
+
public addBuiltInParameterObservers(): void {
|
|
424
|
+
createBuiltInParameter(this.viewer);
|
|
425
|
+
createBuiltInTextureParameter(this.viewer);
|
|
426
|
+
createPaintableParameter(this.viewer);
|
|
427
|
+
}
|
|
428
|
+
|
|
420
429
|
/**
|
|
421
430
|
* Applies all existing parameter entries to a certain "model", as defined in the {@link ModelManager}.\
|
|
422
431
|
* This can be useful when updating the model before showing it in the scene.
|
|
@@ -579,15 +588,6 @@ export class ParameterManager {
|
|
|
579
588
|
return inputValue;
|
|
580
589
|
}
|
|
581
590
|
|
|
582
|
-
/**
|
|
583
|
-
* Parameter observer implementation of default parameters
|
|
584
|
-
*/
|
|
585
|
-
protected _addBuiltInParameterObservers(): void {
|
|
586
|
-
createBuiltInParameter(this, this.viewer.materialManager);
|
|
587
|
-
createBuiltInTextureParameter(this, this.viewer.materialManager, this.viewer.scene);
|
|
588
|
-
createPaintableParameter(this, this.viewer.scene);
|
|
589
|
-
}
|
|
590
|
-
|
|
591
591
|
/**
|
|
592
592
|
* Change parameter value in array of existing parameter entries or create a new entry
|
|
593
593
|
*
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
CubeTexture,
|
|
9
9
|
DeepPartial,
|
|
10
10
|
IShadowGenerator,
|
|
11
|
+
InstancedMesh,
|
|
11
12
|
NodeDescription,
|
|
12
13
|
TransformNode,
|
|
13
14
|
Vector3,
|
|
@@ -366,11 +367,14 @@ export class SceneManager {
|
|
|
366
367
|
|
|
367
368
|
const shadowCasterMeshes: AbstractMesh[] = [];
|
|
368
369
|
this.viewer.scene.meshes.forEach(mesh => {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
370
|
+
// setting `receiveShadows` for instanced meshes has no effect and creates a warning in the console
|
|
371
|
+
if (!(mesh instanceof InstancedMesh)) {
|
|
372
|
+
mesh.receiveShadows = !nodeMatchesAnyCriteria(mesh, {
|
|
373
|
+
isInList: settings?.excludeReceiverNodes,
|
|
374
|
+
isHtmlAnchorMesh: true,
|
|
375
|
+
isDimensionLine: true,
|
|
376
|
+
});
|
|
377
|
+
}
|
|
374
378
|
|
|
375
379
|
// exclude "helper meshes" (e.g. skybox, ground, dimension lines, html anchors) here to reduce the size of the
|
|
376
380
|
// poisson filters auto shadow plane calculation, which will result in better shadow resolution
|