@combeenation/3d-viewer 19.1.0 → 20.0.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/buildinfo.json +1 -1
- package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
- package/dist/lib-cjs/index.d.ts +1 -1
- package/dist/lib-cjs/index.js +1 -1
- package/dist/lib-cjs/index.js.map +1 -1
- package/dist/lib-cjs/internal/animation-helper.d.ts +2 -0
- package/dist/lib-cjs/internal/animation-helper.js +16 -0
- package/dist/lib-cjs/internal/animation-helper.js.map +1 -0
- package/dist/lib-cjs/internal/cloning-helper.js +4 -2
- package/dist/lib-cjs/internal/cloning-helper.js.map +1 -1
- package/dist/lib-cjs/internal/export-helper.js +1 -1
- package/dist/lib-cjs/internal/export-helper.js.map +1 -1
- package/dist/lib-cjs/internal/math-helper.d.ts +9 -0
- package/dist/lib-cjs/internal/math-helper.js +43 -0
- package/dist/lib-cjs/internal/math-helper.js.map +1 -0
- package/dist/lib-cjs/internal/{paintable-helper.d.ts → parameter/paintable-parameter-helper.d.ts} +3 -3
- package/dist/lib-cjs/internal/{paintable-helper.js → parameter/paintable-parameter-helper.js} +26 -26
- package/dist/lib-cjs/internal/parameter/paintable-parameter-helper.js.map +1 -0
- package/dist/lib-cjs/internal/parameter/parameter-helper.d.ts +2 -0
- package/dist/lib-cjs/internal/parameter/parameter-helper.js +214 -0
- package/dist/lib-cjs/internal/parameter/parameter-helper.js.map +1 -0
- package/dist/lib-cjs/internal/{texture-parameter-helper.d.ts → parameter/texture-parameter-helper.d.ts} +1 -2
- package/dist/lib-cjs/internal/{texture-parameter-helper.js → parameter/texture-parameter-helper.js} +15 -16
- package/dist/lib-cjs/internal/parameter/texture-parameter-helper.js.map +1 -0
- package/dist/lib-cjs/manager/camera-manager.js +2 -9
- package/dist/lib-cjs/manager/camera-manager.js.map +1 -1
- package/dist/lib-cjs/manager/debug-manager.d.ts +5 -1
- package/dist/lib-cjs/manager/debug-manager.js +21 -5
- package/dist/lib-cjs/manager/debug-manager.js.map +1 -1
- package/dist/lib-cjs/manager/model-manager.d.ts +35 -4
- package/dist/lib-cjs/manager/model-manager.js +50 -8
- package/dist/lib-cjs/manager/model-manager.js.map +1 -1
- package/dist/lib-cjs/manager/parameter-manager.d.ts +37 -20
- package/dist/lib-cjs/manager/parameter-manager.js +109 -204
- package/dist/lib-cjs/manager/parameter-manager.js.map +1 -1
- package/dist/lib-cjs/utils/viewer-utils.d.ts +35 -0
- package/dist/lib-cjs/utils/viewer-utils.js +112 -0
- package/dist/lib-cjs/utils/viewer-utils.js.map +1 -0
- package/dist/lib-cjs/viewer.d.ts +13 -1
- package/dist/lib-cjs/viewer.js +24 -0
- package/dist/lib-cjs/viewer.js.map +1 -1
- package/package.json +13 -12
- package/src/index.ts +1 -1
- package/src/internal/animation-helper.ts +18 -0
- package/src/internal/cloning-helper.ts +4 -2
- package/src/internal/export-helper.ts +1 -2
- package/src/internal/math-helper.ts +46 -0
- package/src/internal/{paintable-helper.ts → parameter/paintable-parameter-helper.ts} +35 -35
- package/src/internal/parameter/parameter-helper.ts +263 -0
- package/src/internal/{texture-parameter-helper.ts → parameter/texture-parameter-helper.ts} +13 -3
- package/src/manager/camera-manager.ts +2 -10
- package/src/manager/debug-manager.ts +35 -6
- package/src/manager/model-manager.ts +81 -13
- package/src/manager/parameter-manager.ts +138 -232
- package/src/utils/viewer-utils.ts +149 -0
- package/src/viewer.ts +29 -1
- package/dist/lib-cjs/internal/paintable-helper.js.map +0 -1
- package/dist/lib-cjs/internal/texture-parameter-helper.js.map +0 -1
- package/dist/lib-cjs/utils/node-utils.d.ts +0 -17
- package/dist/lib-cjs/utils/node-utils.js +0 -92
- package/dist/lib-cjs/utils/node-utils.js.map +0 -1
- package/src/utils/node-utils.ts +0 -112
package/dist/lib-cjs/index.d.ts
CHANGED
package/dist/lib-cjs/index.js
CHANGED
|
@@ -95,5 +95,5 @@ __exportStar(require("./manager/parameter-manager"), exports);
|
|
|
95
95
|
__exportStar(require("./manager/scene-manager"), exports);
|
|
96
96
|
__exportStar(require("./manager/texture-manager"), exports);
|
|
97
97
|
__exportStar(require("./utils/decal-utils"), exports);
|
|
98
|
-
__exportStar(require("./utils/
|
|
98
|
+
__exportStar(require("./utils/viewer-utils"), exports);
|
|
99
99
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,wBAAwB;AACxB,qDAAqD;AACrD,kDAAgD;AAChD,sDAAoD;AAEpD,qBAAqB;AACrB,2DAA2D;AAC3D,wHAAwH;AACxH,+CAA+C;AAC/C,yGAAyG;AACzG,iEAAiE;AACjE,6DAA2C;AAC3C,iEAA+C;AAC/C,kEAAgD;AAChD,0DAAwC;AACxC,0EAAwD;AACxD,iEAA+C;AAC/C,0DAAwC;AACxC,mEAAiD;AACjD,mEAAiD;AACjD,yEAAuD;AACvD,iEAA+C;AAC/C,kFAAgE;AAChE,qEAAmD;AACnD,qEAAmD;AACnD,yDAAuC;AACvC,0DAAwC;AACxC,qEAAmD;AACnD,gEAA8C;AAC9C,6EAA2D;AAC3D,qEAAmD;AACnD,wDAAsC;AACtC,sEAAoD;AACpD,kEAAgD;AAChD,uEAAqD;AACrD,mEAAiD;AACjD,8DAA4C;AAC5C,qEAAmD;AACnD,uEAAqD;AACrD,kEAAgD;AAChD,iFAA+D;AAC/D,uEAAqD;AACrD,4DAA0C;AAC1C,wDAAsC;AACtC,uDAAqC;AACrC,gFAA8D;AAC9D,iFAA+D;AAC/D,wDAAsC;AACtC,wDAAsC;AACtC,2EAAyD;AACzD,uEAAqD;AACrD,yEAAuD;AACvD,iFAA+D;AAC/D,6DAA2C;AAE3C,gCAAgC;AAChC,sHAAsH;AACtH,UAAU;AACV,2DAA2D;AAC3D,6DAA2C;AAC3C,qCAAqC;AACrC,uEAAqD;AACrD,sDAAsD;AACtD,uEAAqD;AACrD,gDAAgD;AAChD,iEAA+C;AAE/C,iBAAiB;AACjB,qFAAqF;AACrF,2CAAyB;AACzB,iDAA+B;AAC/B,2DAAyC;AACzC,mEAAiD;AACjD,0DAAwC;AACxC,0DAAwC;AACxC,2DAAyC;AACzC,gEAA8C;AAC9C,6DAA2C;AAC3C,0DAAwC;AACxC,8DAA4C;AAC5C,0DAAwC;AACxC,4DAA0C;AAC1C,sDAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,wBAAwB;AACxB,qDAAqD;AACrD,kDAAgD;AAChD,sDAAoD;AAEpD,qBAAqB;AACrB,2DAA2D;AAC3D,wHAAwH;AACxH,+CAA+C;AAC/C,yGAAyG;AACzG,iEAAiE;AACjE,6DAA2C;AAC3C,iEAA+C;AAC/C,kEAAgD;AAChD,0DAAwC;AACxC,0EAAwD;AACxD,iEAA+C;AAC/C,0DAAwC;AACxC,mEAAiD;AACjD,mEAAiD;AACjD,yEAAuD;AACvD,iEAA+C;AAC/C,kFAAgE;AAChE,qEAAmD;AACnD,qEAAmD;AACnD,yDAAuC;AACvC,0DAAwC;AACxC,qEAAmD;AACnD,gEAA8C;AAC9C,6EAA2D;AAC3D,qEAAmD;AACnD,wDAAsC;AACtC,sEAAoD;AACpD,kEAAgD;AAChD,uEAAqD;AACrD,mEAAiD;AACjD,8DAA4C;AAC5C,qEAAmD;AACnD,uEAAqD;AACrD,kEAAgD;AAChD,iFAA+D;AAC/D,uEAAqD;AACrD,4DAA0C;AAC1C,wDAAsC;AACtC,uDAAqC;AACrC,gFAA8D;AAC9D,iFAA+D;AAC/D,wDAAsC;AACtC,wDAAsC;AACtC,2EAAyD;AACzD,uEAAqD;AACrD,yEAAuD;AACvD,iFAA+D;AAC/D,6DAA2C;AAE3C,gCAAgC;AAChC,sHAAsH;AACtH,UAAU;AACV,2DAA2D;AAC3D,6DAA2C;AAC3C,qCAAqC;AACrC,uEAAqD;AACrD,sDAAsD;AACtD,uEAAqD;AACrD,gDAAgD;AAChD,iEAA+C;AAE/C,iBAAiB;AACjB,qFAAqF;AACrF,2CAAyB;AACzB,iDAA+B;AAC/B,2DAAyC;AACzC,mEAAiD;AACjD,0DAAwC;AACxC,0DAAwC;AACxC,2DAAyC;AACzC,gEAA8C;AAC9C,6DAA2C;AAC3C,0DAAwC;AACxC,8DAA4C;AAC5C,0DAAwC;AACxC,4DAA0C;AAC1C,sDAAoC;AACpC,uDAAqC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.playAnimationGroupOnce = void 0;
|
|
4
|
+
function playAnimationGroupOnce(animationGroup, framesPerSec, durationMs) {
|
|
5
|
+
// animation is created for 1 second (100 frames), adjust speed ratio according to desired movement time
|
|
6
|
+
const speedRatio = 1000 / durationMs;
|
|
7
|
+
return new Promise(resolve => {
|
|
8
|
+
animationGroup.onAnimationGroupEndObservable.addOnce(() => {
|
|
9
|
+
animationGroup.dispose();
|
|
10
|
+
resolve();
|
|
11
|
+
});
|
|
12
|
+
animationGroup.start(false, speedRatio, 0, framesPerSec);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
exports.playAnimationGroupOnce = playAnimationGroupOnce;
|
|
16
|
+
//# sourceMappingURL=animation-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation-helper.js","sourceRoot":"","sources":["../../../src/internal/animation-helper.ts"],"names":[],"mappings":";;;AAEA,SAAgB,sBAAsB,CACpC,cAA8B,EAC9B,YAAoB,EACpB,UAAkB;IAElB,wGAAwG;IACxG,MAAM,UAAU,GAAG,IAAI,GAAG,UAAU,CAAC;IAErC,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;QACjC,cAAc,CAAC,6BAA6B,CAAC,OAAO,CAAC,GAAG,EAAE;YACxD,cAAc,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAfD,wDAeC"}
|
|
@@ -5,10 +5,12 @@ const index_1 = require("../index");
|
|
|
5
5
|
const metadata_helper_1 = require("./metadata-helper");
|
|
6
6
|
const tags_helper_1 = require("./tags-helper");
|
|
7
7
|
const _defaultNodeNamingStrategy = (node, clonedObjectId) => {
|
|
8
|
-
|
|
8
|
+
// Do not rename cloned nodes (anymore)
|
|
9
|
+
// Babylon.js allows it and in praxis cloned node names are not targetted anyway
|
|
10
|
+
// Having shorter node names heavily improves the readability of the node structure via the inspector
|
|
11
|
+
return node.name;
|
|
9
12
|
};
|
|
10
13
|
const _defaultTagNamingStrategy = (tag, clonedObjectId) => {
|
|
11
|
-
// don't rename tags by default
|
|
12
14
|
return tag;
|
|
13
15
|
};
|
|
14
16
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloning-helper.js","sourceRoot":"","sources":["../../../src/internal/cloning-helper.ts"],"names":[],"mappings":";;;AAAA,oCAWkB;AAClB,uDAK2B;AAC3B,+CAA4E;AAE5E,MAAM,0BAA0B,GAAuB,CAAC,IAAmB,EAAE,cAAsB,EAAU,EAAE;IAC7G,OAAO,
|
|
1
|
+
{"version":3,"file":"cloning-helper.js","sourceRoot":"","sources":["../../../src/internal/cloning-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ function exportPreProcess(viewer, settings) {
|
|
|
50
50
|
// it's important that this is done AFTER instanced meshes have been converted (`_prepareNodeForExport`)
|
|
51
51
|
nodesForExport.forEach(node => {
|
|
52
52
|
if (node instanceof index_1.Mesh)
|
|
53
|
-
|
|
53
|
+
viewer.utils.bakeGeometryOfMesh(node);
|
|
54
54
|
});
|
|
55
55
|
// reset transformation of all "TransformNodes", as transform nodes are not considered by the `_bakeGeometryOfMesh`
|
|
56
56
|
// function, still their transformation data has to be reset to eliminated negative scalings and to make the baking of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-helper.js","sourceRoot":"","sources":["../../../src/internal/export-helper.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"export-helper.js","sourceRoot":"","sources":["../../../src/internal/export-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TransformNode } from '..';
|
|
2
|
+
/**
|
|
3
|
+
* Evaluates if the absolute scaling of the node represents a left or right handed coordinate system
|
|
4
|
+
*/
|
|
5
|
+
export declare function nodeHasLeftHandedScaling(node: TransformNode): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Multiplies the nodes world matrix with the conversion matrix (-1 in x scaling) to flip the handedness.
|
|
8
|
+
*/
|
|
9
|
+
export declare function flipHandednessOfNode(node: TransformNode): void;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.flipHandednessOfNode = exports.nodeHasLeftHandedScaling = void 0;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
const _CONVERT_HANDEDNESS_MATRIX = __1.Matrix.Compose(new __1.Vector3(-1, 1, 1), __1.Quaternion.Identity(), __1.Vector3.Zero());
|
|
6
|
+
/**
|
|
7
|
+
* Evaluates if the absolute scaling of the node represents a left or right handed coordinate system
|
|
8
|
+
*/
|
|
9
|
+
function nodeHasLeftHandedScaling(node) {
|
|
10
|
+
// update world matrix is required to get absolute scaling
|
|
11
|
+
node.computeWorldMatrix(true);
|
|
12
|
+
let cntNeg = 0;
|
|
13
|
+
if (node.absoluteScaling.x < 0) {
|
|
14
|
+
cntNeg++;
|
|
15
|
+
}
|
|
16
|
+
if (node.absoluteScaling.y < 0) {
|
|
17
|
+
cntNeg++;
|
|
18
|
+
}
|
|
19
|
+
if (node.absoluteScaling.z < 0) {
|
|
20
|
+
cntNeg++;
|
|
21
|
+
}
|
|
22
|
+
// flipping scaling values by an odd amount of directions also flips the coordinate system mode.
|
|
23
|
+
// given that Babylon.js is left handed by default, we can say that even is left handed and odd is right handed
|
|
24
|
+
const isLeftHanded = cntNeg % 2 === 0;
|
|
25
|
+
return isLeftHanded;
|
|
26
|
+
}
|
|
27
|
+
exports.nodeHasLeftHandedScaling = nodeHasLeftHandedScaling;
|
|
28
|
+
/**
|
|
29
|
+
* Multiplies the nodes world matrix with the conversion matrix (-1 in x scaling) to flip the handedness.
|
|
30
|
+
*/
|
|
31
|
+
function flipHandednessOfNode(node) {
|
|
32
|
+
const world = node.getWorldMatrix().clone();
|
|
33
|
+
world.multiplyToRef(_CONVERT_HANDEDNESS_MATRIX, world);
|
|
34
|
+
const scaling = new __1.Vector3();
|
|
35
|
+
const rotation = new __1.Quaternion();
|
|
36
|
+
const position = new __1.Vector3();
|
|
37
|
+
world.decompose(scaling, rotation, position);
|
|
38
|
+
node.scaling = scaling;
|
|
39
|
+
node.rotationQuaternion = rotation;
|
|
40
|
+
node.position = position;
|
|
41
|
+
}
|
|
42
|
+
exports.flipHandednessOfNode = flipHandednessOfNode;
|
|
43
|
+
//# sourceMappingURL=math-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-helper.js","sourceRoot":"","sources":["../../../src/internal/math-helper.ts"],"names":[],"mappings":";;;AAAA,0BAAgE;AAEhE,MAAM,0BAA0B,GAAG,UAAM,CAAC,OAAO,CAAC,IAAI,WAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,cAAU,CAAC,QAAQ,EAAE,EAAE,WAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAEhH;;GAEG;AACH,SAAgB,wBAAwB,CAAC,IAAmB;IAC1D,0DAA0D;IAC1D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAE9B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE;QAC9B,MAAM,EAAE,CAAC;KACV;IACD,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE;QAC9B,MAAM,EAAE,CAAC;KACV;IACD,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,EAAE;QAC9B,MAAM,EAAE,CAAC;KACV;IAED,gGAAgG;IAChG,+GAA+G;IAC/G,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC;IAEtC,OAAO,YAAY,CAAC;AACtB,CAAC;AApBD,4DAoBC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAAC,IAAmB;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,CAAC;IAC5C,KAAK,CAAC,aAAa,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,IAAI,WAAO,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,cAAU,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,WAAO,EAAE,CAAC;IAE/B,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC3B,CAAC;AAbD,oDAaC"}
|
package/dist/lib-cjs/internal/{paintable-helper.d.ts → parameter/paintable-parameter-helper.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ParameterManager, ParameterValue, Scene } from '../..';
|
|
2
2
|
declare type PaintableValue = {
|
|
3
3
|
src: string;
|
|
4
4
|
options?: PaintableOptions;
|
|
@@ -10,10 +10,10 @@ declare type PaintableOptions = {
|
|
|
10
10
|
vOffset?: number;
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Creates observer for "paintable" parameter.
|
|
14
14
|
* Basically creates a dynamic texture from the source image and assigns it as albedo (or diffuse) texture.
|
|
15
15
|
*/
|
|
16
|
-
export declare function
|
|
16
|
+
export declare function createPaintableParameter(parameterManager: ParameterManager, scene: Scene): void;
|
|
17
17
|
/**
|
|
18
18
|
* Parser for paintable value.
|
|
19
19
|
* ATM this is only used internally, but it could theoretically be used to create ones own paintable implementation.
|
package/dist/lib-cjs/internal/{paintable-helper.js → parameter/paintable-parameter-helper.js}
RENAMED
|
@@ -23,25 +23,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.parsePaintable = exports.
|
|
27
|
-
const
|
|
28
|
-
const svg_helper_1 = require("
|
|
26
|
+
exports.parsePaintable = exports.createPaintableParameter = void 0;
|
|
27
|
+
const __1 = require("../..");
|
|
28
|
+
const svg_helper_1 = require("../svg-helper");
|
|
29
29
|
const is_svg_1 = __importDefault(require("is-svg"));
|
|
30
30
|
const lodash_es_1 = require("lodash-es");
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* Creates observer for "paintable" parameter.
|
|
33
33
|
* Basically creates a dynamic texture from the source image and assigns it as albedo (or diffuse) texture.
|
|
34
34
|
*/
|
|
35
|
-
function
|
|
36
|
-
|
|
35
|
+
function createPaintableParameter(parameterManager, scene) {
|
|
36
|
+
parameterManager.setParameterObserver(__1.LegacyParameter.Paintable, ({ newValue, materials }) => __awaiter(this, void 0, void 0, function* () {
|
|
37
37
|
const paintable = parsePaintable(newValue);
|
|
38
38
|
// check if value is svg or image source, do the conversion accordingly
|
|
39
39
|
const srcIsSvg = (0, is_svg_1.default)(paintable.src);
|
|
40
40
|
if (!srcIsSvg && paintable.src.includes('<svg') && paintable.src.includes('</svg>')) {
|
|
41
41
|
// seems like the user tried to use a SVG string, as <svg> tags are used
|
|
42
42
|
// inform the user that this is not a valid SVG string
|
|
43
|
-
throw new
|
|
44
|
-
id:
|
|
43
|
+
throw new __1.ViewerError({
|
|
44
|
+
id: __1.ViewerErrorIds.InvalidParameterValue,
|
|
45
45
|
message: `Invalid value for parameter "paintable" given:\nsource string is no valid SVG string\nGiven value: ${paintable.src}`,
|
|
46
46
|
});
|
|
47
47
|
}
|
|
@@ -53,8 +53,8 @@ function paintableParameterObserver(newValue, materials, scene) {
|
|
|
53
53
|
// SVG might be invalid, even if it passes `isSvg` check
|
|
54
54
|
// in this case the image can't be created and will throw an error, which should be handled by the viewer and
|
|
55
55
|
// Combeenation viewer control
|
|
56
|
-
throw new
|
|
57
|
-
id:
|
|
56
|
+
throw new __1.ViewerError({
|
|
57
|
+
id: __1.ViewerErrorIds.InvalidParameterValue,
|
|
58
58
|
message: `Invalid value for parameter "paintable" given:\nimage can't be created from source string\nGiven value: ${paintable.src}`,
|
|
59
59
|
});
|
|
60
60
|
}
|
|
@@ -62,9 +62,9 @@ function paintableParameterObserver(newValue, materials, scene) {
|
|
|
62
62
|
for (const material of materials) {
|
|
63
63
|
_drawPaintableOnMaterial(material, imageSource, scene, paintable.options);
|
|
64
64
|
}
|
|
65
|
-
});
|
|
65
|
+
}));
|
|
66
66
|
}
|
|
67
|
-
exports.
|
|
67
|
+
exports.createPaintableParameter = createPaintableParameter;
|
|
68
68
|
/**
|
|
69
69
|
* Parser for paintable value.
|
|
70
70
|
* ATM this is only used internally, but it could theoretically be used to create ones own paintable implementation.
|
|
@@ -89,8 +89,8 @@ exports.paintableParameterObserver = paintableParameterObserver;
|
|
|
89
89
|
*/
|
|
90
90
|
function parsePaintable(value) {
|
|
91
91
|
if (!(0, lodash_es_1.isString)(value)) {
|
|
92
|
-
throw new
|
|
93
|
-
id:
|
|
92
|
+
throw new __1.ViewerError({
|
|
93
|
+
id: __1.ViewerErrorIds.InvalidParameterValue,
|
|
94
94
|
message: `Unable to parse paintable value: not a string\nGiven value: ${value}`,
|
|
95
95
|
});
|
|
96
96
|
}
|
|
@@ -104,8 +104,8 @@ function parsePaintable(value) {
|
|
|
104
104
|
paintableValue.src = value;
|
|
105
105
|
if (value.startsWith('{')) {
|
|
106
106
|
// seems like the user tried to use a JSON string, as the input starts with {
|
|
107
|
-
throw new
|
|
108
|
-
id:
|
|
107
|
+
throw new __1.ViewerError({
|
|
108
|
+
id: __1.ViewerErrorIds.InvalidParameterValue,
|
|
109
109
|
message: `Unable to parse paintable value: not a valid JSON string\nGiven value: ${value}`,
|
|
110
110
|
});
|
|
111
111
|
}
|
|
@@ -113,14 +113,14 @@ function parsePaintable(value) {
|
|
|
113
113
|
if (valObj) {
|
|
114
114
|
// input string is JSON, src attribute is required
|
|
115
115
|
if (!valObj.src) {
|
|
116
|
-
throw new
|
|
117
|
-
id:
|
|
116
|
+
throw new __1.ViewerError({
|
|
117
|
+
id: __1.ViewerErrorIds.InvalidParameterValue,
|
|
118
118
|
message: `Unable to parse paintable value: property "src" is missing\nGiven value: ${value}`,
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
if (!(0, lodash_es_1.isString)(valObj.src)) {
|
|
122
|
-
throw new
|
|
123
|
-
id:
|
|
122
|
+
throw new __1.ViewerError({
|
|
123
|
+
id: __1.ViewerErrorIds.InvalidParameterValue,
|
|
124
124
|
message: `Unable to parse paintable value: property "src" is not a string\nGiven value: ${value}`,
|
|
125
125
|
});
|
|
126
126
|
}
|
|
@@ -154,7 +154,7 @@ function _drawPaintableOnMaterial(material, imageSource, scene, options) {
|
|
|
154
154
|
width: imageSource.width,
|
|
155
155
|
height: imageSource.height,
|
|
156
156
|
};
|
|
157
|
-
const texture = new
|
|
157
|
+
const texture = new __1.DynamicTexture(`${material.id}.paintable_texture`, widthAndHeight, scene);
|
|
158
158
|
// draw image on texture
|
|
159
159
|
const ctx = texture.getContext();
|
|
160
160
|
ctx.drawImage(imageSource, 0, 0);
|
|
@@ -166,8 +166,8 @@ function _drawPaintableOnMaterial(material, imageSource, scene, options) {
|
|
|
166
166
|
texture.vOffset = (_d = options === null || options === void 0 ? void 0 : options.vOffset) !== null && _d !== void 0 ? _d : texture.vOffset;
|
|
167
167
|
// wrap mode is preferred, as it will always show the texture, no matter which position offset is currently chosen
|
|
168
168
|
// clamp mode requires more knowledge (and patience) when adjusting the uv scale and offset values
|
|
169
|
-
texture.wrapU =
|
|
170
|
-
texture.wrapV =
|
|
169
|
+
texture.wrapU = __1.Texture.WRAP_ADDRESSMODE;
|
|
170
|
+
texture.wrapV = __1.Texture.WRAP_ADDRESSMODE;
|
|
171
171
|
// apply the paintable texture on the dedicated material type
|
|
172
172
|
const materialCls = material.getClassName();
|
|
173
173
|
switch (materialCls) {
|
|
@@ -178,8 +178,8 @@ function _drawPaintableOnMaterial(material, imageSource, scene, options) {
|
|
|
178
178
|
material.diffuseTexture = texture;
|
|
179
179
|
break;
|
|
180
180
|
default:
|
|
181
|
-
throw new
|
|
182
|
-
id:
|
|
181
|
+
throw new __1.ViewerError({
|
|
182
|
+
id: __1.ViewerErrorIds.InvalidParameterSubject,
|
|
183
183
|
message: `Setting paintable texture for material of instance "${materialCls}" not implemented`,
|
|
184
184
|
});
|
|
185
185
|
}
|
|
@@ -235,4 +235,4 @@ function _createImageFromImgSrc(imgSrc) {
|
|
|
235
235
|
return img;
|
|
236
236
|
});
|
|
237
237
|
}
|
|
238
|
-
//# sourceMappingURL=paintable-helper.js.map
|
|
238
|
+
//# sourceMappingURL=paintable-parameter-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paintable-parameter-helper.js","sourceRoot":"","sources":["../../../../src/internal/parameter/paintable-parameter-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,214 @@
|
|
|
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
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.createBuiltInParameter = void 0;
|
|
13
|
+
const __1 = require("../..");
|
|
14
|
+
const animation_helper_1 = require("../animation-helper");
|
|
15
|
+
const metadata_helper_1 = require("../metadata-helper");
|
|
16
|
+
function createBuiltInParameter(parameterManager, materialManager) {
|
|
17
|
+
parameterManager.setParameterObserver(__1.BuiltInParameter.Visible, ({ nodes, newValue }) => __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const visible = __1.ParameterManager.parseBoolean(newValue);
|
|
19
|
+
const observerProms = nodes.map((node) => __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
const visibleNested = parameterManager.getNestedVisibilityParameterValueOfNode(node);
|
|
21
|
+
if (visibleNested) {
|
|
22
|
+
// if a mesh gets visible by this operation we have to activate the assigned material which is stored in the
|
|
23
|
+
// internal metadata
|
|
24
|
+
// => consider child meshes as well (CB-10143)
|
|
25
|
+
const activatedNodes = [node, ...node.getChildMeshes(false)];
|
|
26
|
+
const setMaterialProms = activatedNodes.map((an) => __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
const anVisibleNested = parameterManager.getNestedVisibilityParameterValueOfNode(an);
|
|
28
|
+
const anDeferredMaterial = (0, metadata_helper_1.getInternalMetadataValue)(an, 'deferredMaterial');
|
|
29
|
+
const anMaterialParamValue = parameterManager.getParameterValueOfNode(an, __1.BuiltInParameter.Material);
|
|
30
|
+
// get latest requested material, either from (new) parameter value or from deferred material
|
|
31
|
+
const anRequestedMaterial = anMaterialParamValue !== null && anMaterialParamValue !== void 0 ? anMaterialParamValue : anDeferredMaterial;
|
|
32
|
+
// material observer might have been executed before visibility observer
|
|
33
|
+
// => skip the material application in this case, as if it would be done twice
|
|
34
|
+
const anMaterialToBeSet = (0, metadata_helper_1.getInternalMetadataValue)(an, 'materialToBeSet');
|
|
35
|
+
if (anVisibleNested && anRequestedMaterial && !anMaterialToBeSet) {
|
|
36
|
+
yield materialManager.setMaterialOnMesh(anRequestedMaterial,
|
|
37
|
+
// this cast is fine, as deferred material can only be set on meshes
|
|
38
|
+
an);
|
|
39
|
+
}
|
|
40
|
+
}));
|
|
41
|
+
yield Promise.all(setMaterialProms);
|
|
42
|
+
}
|
|
43
|
+
// set enabled state anyway
|
|
44
|
+
node.setEnabled(visible);
|
|
45
|
+
}));
|
|
46
|
+
yield Promise.all(observerProms);
|
|
47
|
+
}));
|
|
48
|
+
parameterManager.setParameterObserver(__1.BuiltInParameter.Material, ({ nodes, newValue }) => __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const material = __1.ParameterManager.parseString(newValue);
|
|
50
|
+
const observerProms = nodes.map((node) => __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
if (!(node instanceof __1.AbstractMesh)) {
|
|
52
|
+
throw new __1.ViewerError({
|
|
53
|
+
id: __1.ViewerErrorIds.InvalidParameterSubject,
|
|
54
|
+
message: `Material can't be set, as the target node "${node.name}" is not a mesh`,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
// only set material if the mesh is visible, or gets visible by the parameter update
|
|
58
|
+
const visible = parameterManager.getNestedVisibilityParameterValueOfNode(node);
|
|
59
|
+
if (visible) {
|
|
60
|
+
// visibility observer might have been executed before material observer
|
|
61
|
+
// => skip the material application in this case, as if it would be done twice
|
|
62
|
+
const anMaterialToBeSet = (0, metadata_helper_1.getInternalMetadataValue)(node, 'materialToBeSet');
|
|
63
|
+
if (!anMaterialToBeSet) {
|
|
64
|
+
yield materialManager.setMaterialOnMesh(material, node);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
(0, metadata_helper_1.setInternalMetadataValue)(node, 'deferredMaterial', material);
|
|
69
|
+
}
|
|
70
|
+
}));
|
|
71
|
+
yield Promise.all(observerProms);
|
|
72
|
+
}));
|
|
73
|
+
parameterManager.setParameterObserver(__1.BuiltInParameter.Position, ({ nodes, newValue, options }) => __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const position = __1.ParameterManager.parseVector(newValue);
|
|
75
|
+
for (const node of nodes) {
|
|
76
|
+
if (options === null || options === void 0 ? void 0 : options.animationTimeMs) {
|
|
77
|
+
_animateParameter(node, 'position', position, `${__1.BuiltInParameter.Position}.${node.name}`, options.animationTimeMs);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
node.position = position;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}));
|
|
84
|
+
parameterManager.setParameterObserver(__1.BuiltInParameter.Rotation, ({ nodes, newValue, options }) => __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
const rotation = __1.ParameterManager.parseRotation(newValue);
|
|
86
|
+
for (const node of nodes) {
|
|
87
|
+
if (options === null || options === void 0 ? void 0 : options.animationTimeMs) {
|
|
88
|
+
if (node.rotationQuaternion) {
|
|
89
|
+
// set initial rotation value, if rotation is defined via quaternion
|
|
90
|
+
// otherwise the animation would just jump to the end value, as there is no start value to interpolate
|
|
91
|
+
node.rotation = node.rotationQuaternion.toEulerAngles();
|
|
92
|
+
}
|
|
93
|
+
_animateParameter(node, 'rotation', rotation, `${__1.BuiltInParameter.Rotation}.${node.name}`, options.animationTimeMs);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
node.rotation = rotation;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}));
|
|
100
|
+
parameterManager.setParameterObserver(__1.BuiltInParameter.Scaling, ({ nodes, newValue, options }) => __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
const scaling = __1.ParameterManager.parseVector(newValue);
|
|
102
|
+
for (const node of nodes) {
|
|
103
|
+
if (options === null || options === void 0 ? void 0 : options.animationTimeMs) {
|
|
104
|
+
_animateParameter(node, 'scaling', scaling, `${__1.BuiltInParameter.Scaling}.${node.name}`, options.animationTimeMs);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
node.scaling = scaling;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}));
|
|
111
|
+
parameterManager.setParameterObserver(__1.BuiltInParameter.Color, ({ materials, newValue, options }) => __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
const color = __1.ParameterManager.parseColor(newValue);
|
|
113
|
+
for (const material of materials) {
|
|
114
|
+
const materialCls = material.getClassName();
|
|
115
|
+
switch (materialCls) {
|
|
116
|
+
case 'PBRMaterial':
|
|
117
|
+
if (options === null || options === void 0 ? void 0 : options.animationTimeMs) {
|
|
118
|
+
_animateParameter(material, 'albedoColor', color.toLinearSpace(), `${__1.BuiltInParameter.Color}.${material.id}`, options.animationTimeMs);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
material.albedoColor = color.toLinearSpace();
|
|
122
|
+
}
|
|
123
|
+
break;
|
|
124
|
+
case 'StandardMaterial':
|
|
125
|
+
material.diffuseColor = color;
|
|
126
|
+
break;
|
|
127
|
+
default:
|
|
128
|
+
throw new __1.ViewerError({
|
|
129
|
+
id: __1.ViewerErrorIds.InvalidParameterSubject,
|
|
130
|
+
message: `Setting color for material of instance "${materialCls}" not implemented`,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}));
|
|
135
|
+
parameterManager.setParameterObserver(__1.BuiltInParameter.Roughness, ({ materials, newValue }) => __awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
const roughness = __1.ParameterManager.parseNumber(newValue);
|
|
137
|
+
for (const material of materials) {
|
|
138
|
+
const materialCls = material.getClassName();
|
|
139
|
+
switch (materialCls) {
|
|
140
|
+
case 'PBRMaterial':
|
|
141
|
+
material.roughness = roughness;
|
|
142
|
+
break;
|
|
143
|
+
case 'StandardMaterial':
|
|
144
|
+
material.roughness = roughness;
|
|
145
|
+
break;
|
|
146
|
+
default:
|
|
147
|
+
throw new __1.ViewerError({
|
|
148
|
+
id: __1.ViewerErrorIds.InvalidParameterSubject,
|
|
149
|
+
message: `Setting rougness for material of instance "${materialCls}" not implemented`,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}));
|
|
154
|
+
parameterManager.setParameterObserver(__1.BuiltInParameter.Metallic, ({ materials, newValue }) => __awaiter(this, void 0, void 0, function* () {
|
|
155
|
+
const metallic = __1.ParameterManager.parseNumber(newValue);
|
|
156
|
+
for (const material of materials) {
|
|
157
|
+
const materialCls = material.getClassName();
|
|
158
|
+
switch (materialCls) {
|
|
159
|
+
case 'PBRMaterial':
|
|
160
|
+
material.metallic = metallic;
|
|
161
|
+
break;
|
|
162
|
+
default:
|
|
163
|
+
throw new __1.ViewerError({
|
|
164
|
+
id: __1.ViewerErrorIds.InvalidParameterSubject,
|
|
165
|
+
message: `Setting metallic for material of instance "${materialCls}" not implemented`,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}));
|
|
170
|
+
parameterManager.setParameterObserver(__1.BuiltInParameter.Influence, ({ nodes, newValue, options }) => __awaiter(this, void 0, void 0, function* () {
|
|
171
|
+
var _a;
|
|
172
|
+
const morphTargetValues = __1.ParameterManager.parseMorphTargets(newValue);
|
|
173
|
+
for (const morphTargetValue of morphTargetValues) {
|
|
174
|
+
for (const node of nodes) {
|
|
175
|
+
const target = node instanceof __1.AbstractMesh && ((_a = node.morphTargetManager) === null || _a === void 0 ? void 0 : _a.getTargetByName(morphTargetValue.name));
|
|
176
|
+
if (target) {
|
|
177
|
+
if (options === null || options === void 0 ? void 0 : options.animationTimeMs) {
|
|
178
|
+
_animateParameter(target, 'influence', morphTargetValue.value, `${__1.BuiltInParameter.Influence}.${node.name}.${target.name}`, options.animationTimeMs);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
target.influence = morphTargetValue.value;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
throw new __1.ViewerError({
|
|
186
|
+
id: __1.ViewerErrorIds.InvalidParameterSubject,
|
|
187
|
+
message: `Morph target couldn't be found, node: ${node.name} / morph target: ${morphTargetValue.name}`,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}));
|
|
193
|
+
}
|
|
194
|
+
exports.createBuiltInParameter = createBuiltInParameter;
|
|
195
|
+
function _animateParameter(target, property, value, animationNameSuffix, animationTimeMs) {
|
|
196
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
197
|
+
const framesPerSec = 100;
|
|
198
|
+
// extend if further `AnimatableProperties` with different types are added
|
|
199
|
+
const dataType = value instanceof __1.Vector3
|
|
200
|
+
? __1.Animation.ANIMATIONTYPE_VECTOR3
|
|
201
|
+
: value instanceof __1.Color3
|
|
202
|
+
? __1.Animation.ANIMATIONTYPE_COLOR3
|
|
203
|
+
: __1.Animation.ANIMATIONTYPE_FLOAT;
|
|
204
|
+
const animationGroup = new __1.AnimationGroup(`${__1.ParameterManager.PARAMETER_ANIMATION_NAME}.${animationNameSuffix}`);
|
|
205
|
+
const animation = new __1.Animation(property, property, framesPerSec, dataType);
|
|
206
|
+
animation.setKeys([
|
|
207
|
+
{ frame: 0, value: target[property] },
|
|
208
|
+
{ frame: framesPerSec, value: value },
|
|
209
|
+
]);
|
|
210
|
+
animationGroup.addTargetedAnimation(animation, target);
|
|
211
|
+
yield (0, animation_helper_1.playAnimationGroupOnce)(animationGroup, framesPerSec, Math.max(animationTimeMs, 0));
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=parameter-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameter-helper.js","sourceRoot":"","sources":["../../../../src/internal/parameter/parameter-helper.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAae;AACf,0DAA6D;AAC7D,wDAAwF;AAIxF,SAAgB,sBAAsB,CAAC,gBAAkC,EAAE,eAAgC;IACzG,gBAAgB,CAAC,oBAAoB,CAAC,oBAAgB,CAAC,OAAO,EAAE,CAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC5F,MAAM,OAAO,GAAG,oBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAM,IAAI,EAAC,EAAE;YAC3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,uCAAuC,CAAC,IAAI,CAAC,CAAC;YACrF,IAAI,aAAa,EAAE;gBACjB,4GAA4G;gBAC5G,oBAAoB;gBACpB,8CAA8C;gBAC9C,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7D,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAM,EAAE,EAAC,EAAE;oBACrD,MAAM,eAAe,GAAG,gBAAgB,CAAC,uCAAuC,CAAC,EAAE,CAAC,CAAC;oBACrF,MAAM,kBAAkB,GAAG,IAAA,0CAAwB,EAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;oBAC5E,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,EAAE,EAAE,oBAAgB,CAAC,QAAQ,CAEtF,CAAC;oBACd,6FAA6F;oBAC7F,MAAM,mBAAmB,GAAG,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,kBAAkB,CAAC;oBACvE,wEAAwE;oBACxE,8EAA8E;oBAC9E,MAAM,iBAAiB,GAAG,IAAA,0CAAwB,EAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;oBAC1E,IAAI,eAAe,IAAI,mBAAmB,IAAI,CAAC,iBAAiB,EAAE;wBAChE,MAAM,eAAe,CAAC,iBAAiB,CACrC,mBAAmB;wBACnB,oEAAoE;wBACpE,EAAkB,CACnB,CAAC;qBACH;gBACH,CAAC,CAAA,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;aACrC;YAED,2BAA2B;YAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC,CAAA,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC,CAAA,CAAC,CAAC;IACH,gBAAgB,CAAC,oBAAoB,CAAC,oBAAgB,CAAC,QAAQ,EAAE,CAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7F,MAAM,QAAQ,GAAG,oBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAM,IAAI,EAAC,EAAE;YAC3C,IAAI,CAAC,CAAC,IAAI,YAAY,gBAAY,CAAC,EAAE;gBACnC,MAAM,IAAI,eAAW,CAAC;oBACpB,EAAE,EAAE,kBAAc,CAAC,uBAAuB;oBAC1C,OAAO,EAAE,8CAA8C,IAAI,CAAC,IAAI,iBAAiB;iBAClF,CAAC,CAAC;aACJ;YAED,oFAAoF;YACpF,MAAM,OAAO,GAAG,gBAAgB,CAAC,uCAAuC,CAAC,IAAI,CAAC,CAAC;YAC/E,IAAI,OAAO,EAAE;gBACX,wEAAwE;gBACxE,8EAA8E;gBAC9E,MAAM,iBAAiB,GAAG,IAAA,0CAAwB,EAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;gBAC5E,IAAI,CAAC,iBAAiB,EAAE;oBACtB,MAAM,eAAe,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;iBACzD;aACF;iBAAM;gBACL,IAAA,0CAAwB,EAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;aAC9D;QACH,CAAC,CAAA,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC,CAAA,CAAC,CAAC;IACH,gBAAgB,CAAC,oBAAoB,CAAC,oBAAgB,CAAC,QAAQ,EAAE,CAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACtG,MAAM,QAAQ,GAAG,oBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAExD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,EAAE;gBAC5B,iBAAiB,CACf,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,GAAG,oBAAgB,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,EAC3C,OAAO,CAAC,eAAe,CACxB,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;SACF;IACH,CAAC,CAAA,CAAC,CAAC;IACH,gBAAgB,CAAC,oBAAoB,CAAC,oBAAgB,CAAC,QAAQ,EAAE,CAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACtG,MAAM,QAAQ,GAAG,oBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,EAAE;gBAC5B,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBAC3B,oEAAoE;oBACpE,sGAAsG;oBACtG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;iBACzD;gBACD,iBAAiB,CACf,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,GAAG,oBAAgB,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,EAC3C,OAAO,CAAC,eAAe,CACxB,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;aAC1B;SACF;IACH,CAAC,CAAA,CAAC,CAAC;IACH,gBAAgB,CAAC,oBAAoB,CAAC,oBAAgB,CAAC,OAAO,EAAE,CAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACrG,MAAM,OAAO,GAAG,oBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,EAAE;gBAC5B,iBAAiB,CACf,IAAI,EACJ,SAAS,EACT,OAAO,EACP,GAAG,oBAAgB,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,EAC1C,OAAO,CAAC,eAAe,CACxB,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aACxB;SACF;IACH,CAAC,CAAA,CAAC,CAAC;IACH,gBAAgB,CAAC,oBAAoB,CAAC,oBAAgB,CAAC,KAAK,EAAE,CAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACvG,MAAM,KAAK,GAAG,oBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEpD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC5C,QAAQ,WAAW,EAAE;gBACnB,KAAK,aAAa;oBAChB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,EAAE;wBAC5B,iBAAiB,CACf,QAAuB,EACvB,aAAa,EACb,KAAK,CAAC,aAAa,EAAE,EACrB,GAAG,oBAAgB,CAAC,KAAK,IAAI,QAAQ,CAAC,EAAE,EAAE,EAC1C,OAAO,CAAC,eAAe,CACxB,CAAC;qBACH;yBAAM;wBACJ,QAAwB,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;qBAC/D;oBACD,MAAM;gBACR,KAAK,kBAAkB;oBACpB,QAA6B,CAAC,YAAY,GAAG,KAAK,CAAC;oBACpD,MAAM;gBACR;oBACE,MAAM,IAAI,eAAW,CAAC;wBACpB,EAAE,EAAE,kBAAc,CAAC,uBAAuB;wBAC1C,OAAO,EAAE,2CAA2C,WAAW,mBAAmB;qBACnF,CAAC,CAAC;aACN;SACF;IACH,CAAC,CAAA,CAAC,CAAC;IACH,gBAAgB,CAAC,oBAAoB,CAAC,oBAAgB,CAAC,SAAS,EAAE,CAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QAClG,MAAM,SAAS,GAAG,oBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEzD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC5C,QAAQ,WAAW,EAAE;gBACnB,KAAK,aAAa;oBACf,QAAwB,CAAC,SAAS,GAAG,SAAS,CAAC;oBAChD,MAAM;gBACR,KAAK,kBAAkB;oBACpB,QAA6B,CAAC,SAAS,GAAG,SAAS,CAAC;oBACrD,MAAM;gBACR;oBACE,MAAM,IAAI,eAAW,CAAC;wBACpB,EAAE,EAAE,kBAAc,CAAC,uBAAuB;wBAC1C,OAAO,EAAE,8CAA8C,WAAW,mBAAmB;qBACtF,CAAC,CAAC;aACN;SACF;IACH,CAAC,CAAA,CAAC,CAAC;IACH,gBAAgB,CAAC,oBAAoB,CAAC,oBAAgB,CAAC,QAAQ,EAAE,CAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjG,MAAM,QAAQ,GAAG,oBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAExD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC5C,QAAQ,WAAW,EAAE;gBACnB,KAAK,aAAa;oBACf,QAAwB,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC9C,MAAM;gBACR;oBACE,MAAM,IAAI,eAAW,CAAC;wBACpB,EAAE,EAAE,kBAAc,CAAC,uBAAuB;wBAC1C,OAAO,EAAE,8CAA8C,WAAW,mBAAmB;qBACtF,CAAC,CAAC;aACN;SACF;IACH,CAAC,CAAA,CAAC,CAAC;IACH,gBAAgB,CAAC,oBAAoB,CAAC,oBAAgB,CAAC,SAAS,EAAE,CAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;;QACvG,MAAM,iBAAiB,GAAG,oBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEvE,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE;YAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,MAAM,GAAG,IAAI,YAAY,gBAAY,KAAI,MAAA,IAAI,CAAC,kBAAkB,0CAAE,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA,CAAC;gBAE/G,IAAI,MAAM,EAAE;oBACV,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,EAAE;wBAC5B,iBAAiB,CACf,MAAM,EACN,WAAW,EACX,gBAAgB,CAAC,KAAK,EACtB,GAAG,oBAAgB,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,EAC3D,OAAO,CAAC,eAAe,CACxB,CAAC;qBACH;yBAAM;wBACL,MAAM,CAAC,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC;qBAC3C;iBACF;qBAAM;oBACL,MAAM,IAAI,eAAW,CAAC;wBACpB,EAAE,EAAE,kBAAc,CAAC,uBAAuB;wBAC1C,OAAO,EAAE,yCAAyC,IAAI,CAAC,IAAI,oBAAoB,gBAAgB,CAAC,IAAI,EAAE;qBACvG,CAAC,CAAC;iBACJ;aACF;SACF;IACH,CAAC,CAAA,CAAC,CAAC;AACL,CAAC;AAvND,wDAuNC;AAED,SAAe,iBAAiB,CAC9B,MAAS,EACT,QAAW,EACX,KAAW,EACX,mBAA2B,EAC3B,eAAuB;;QAEvB,MAAM,YAAY,GAAG,GAAG,CAAC;QACzB,0EAA0E;QAC1E,MAAM,QAAQ,GACZ,KAAK,YAAY,WAAO;YACtB,CAAC,CAAC,aAAS,CAAC,qBAAqB;YACjC,CAAC,CAAC,KAAK,YAAY,UAAM;gBACzB,CAAC,CAAC,aAAS,CAAC,oBAAoB;gBAChC,CAAC,CAAC,aAAS,CAAC,mBAAmB,CAAC;QAEpC,MAAM,cAAc,GAAG,IAAI,kBAAc,CAAC,GAAG,oBAAgB,CAAC,wBAAwB,IAAI,mBAAmB,EAAE,CAAC,CAAC;QAEjH,MAAM,SAAS,GAAG,IAAI,aAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC5E,SAAS,CAAC,OAAO,CAAC;YAChB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;YACrC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE;SACtC,CAAC,CAAC;QACH,cAAc,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAEvD,MAAM,IAAA,yCAAsB,EAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Scene } from '
|
|
2
|
-
import { ParameterManager } from '../manager/parameter-manager';
|
|
1
|
+
import { ParameterManager, Scene } from '../..';
|
|
3
2
|
/**
|
|
4
3
|
* Texture parameters are a combination of the channel (e.g. albedo, bump, AO) and the "sub" parameter (e.g. uScale).
|
|
5
4
|
* Each parameter is available in each texture, that's why these textures parameter are defined as dotted path
|