@babylonjs/loaders 6.36.1 → 6.37.1
Sign up to get free protection for your applications and to get access to all the features.
- package/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +1 -18
- package/glTF/2.0/Extensions/KHR_animation_pointer.js +18 -55
- package/glTF/2.0/Extensions/KHR_animation_pointer.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity.d.ts +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity.js +7 -14
- package/glTF/2.0/Extensions/KHR_interactivity.js.map +1 -1
- package/glTF/2.0/Extensions/gltfPathToObjectConverter.d.ts +31 -0
- package/glTF/2.0/Extensions/gltfPathToObjectConverter.js +62 -0
- package/glTF/2.0/Extensions/gltfPathToObjectConverter.js.map +1 -0
- package/glTF/2.0/Extensions/interactivityFunctions.js +1 -4
- package/glTF/2.0/Extensions/interactivityFunctions.js.map +1 -1
- package/glTF/2.0/Extensions/interactivityPathToObjectConverter.d.ts +9 -0
- package/glTF/2.0/Extensions/interactivityPathToObjectConverter.js +32 -0
- package/glTF/2.0/Extensions/interactivityPathToObjectConverter.js.map +1 -0
- package/glTF/2.0/glTFLoader.d.ts +2 -1
- package/glTF/2.0/glTFLoader.js +12 -10
- package/glTF/2.0/glTFLoader.js.map +1 -1
- package/package.json +3 -3
- package/glTF/2.0/Extensions/interactivityPathCameraExtensions.d.ts +0 -7
- package/glTF/2.0/Extensions/interactivityPathCameraExtensions.js +0 -77
- package/glTF/2.0/Extensions/interactivityPathCameraExtensions.js.map +0 -1
- package/glTF/2.0/Extensions/interactivityPathExtensions.d.ts +0 -2
- package/glTF/2.0/Extensions/interactivityPathExtensions.js +0 -5
- package/glTF/2.0/Extensions/interactivityPathExtensions.js.map +0 -1
- package/glTF/2.0/Extensions/interactivityPathMaterialExtensions.d.ts +0 -7
- package/glTF/2.0/Extensions/interactivityPathMaterialExtensions.js +0 -87
- package/glTF/2.0/Extensions/interactivityPathMaterialExtensions.js.map +0 -1
- package/glTF/2.0/Extensions/interactivityPathTransformNodeExtensions.d.ts +0 -2
- package/glTF/2.0/Extensions/interactivityPathTransformNodeExtensions.js +0 -50
- package/glTF/2.0/Extensions/interactivityPathTransformNodeExtensions.js.map +0 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@babylonjs/loaders",
|
3
|
-
"version": "6.
|
3
|
+
"version": "6.37.1",
|
4
4
|
"main": "index.js",
|
5
5
|
"module": "index.js",
|
6
6
|
"types": "index.d.ts",
|
@@ -18,10 +18,10 @@
|
|
18
18
|
"postcompile": "build-tools -c add-js-to-es6"
|
19
19
|
},
|
20
20
|
"devDependencies": {
|
21
|
-
"@babylonjs/core": "^6.
|
21
|
+
"@babylonjs/core": "^6.37.1",
|
22
22
|
"@dev/build-tools": "^1.0.0",
|
23
23
|
"@lts/loaders": "^1.0.0",
|
24
|
-
"babylonjs-gltf2interface": "^6.
|
24
|
+
"babylonjs-gltf2interface": "^6.37.1"
|
25
25
|
},
|
26
26
|
"peerDependencies": {
|
27
27
|
"@babylonjs/core": "^6.0.0",
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import type { FlowGraphPath } from "@babylonjs/core/FlowGraph/flowGraphPath.js";
|
2
|
-
import type { FlowGraphContext } from "@babylonjs/core/FlowGraph/flowGraphContext.js";
|
3
|
-
export declare const camerasExtension: {
|
4
|
-
shouldProcess(path: FlowGraphPath): boolean;
|
5
|
-
processGet(path: FlowGraphPath, context: FlowGraphContext): any;
|
6
|
-
processSet(path: FlowGraphPath, context: FlowGraphContext, value: any): void;
|
7
|
-
};
|
@@ -1,77 +0,0 @@
|
|
1
|
-
import { Tools } from "@babylonjs/core/Misc/tools.js";
|
2
|
-
const camerasRegex = /^\/cameras\/(\d+)\/(orthographic|perspective)\/(xmag|ymag|zfar|znear|aspectRatio|yfov)$/;
|
3
|
-
function getBabylonCamera(path, context) {
|
4
|
-
const fullPath = path.getFinalPath();
|
5
|
-
const gltfTree = context.getVariable("gltf");
|
6
|
-
if (!gltfTree) {
|
7
|
-
throw new Error(`No glTF tree found for path ${fullPath}`);
|
8
|
-
}
|
9
|
-
const matches = fullPath.match(camerasRegex);
|
10
|
-
if (!matches || matches.length !== 4) {
|
11
|
-
throw new Error(`Invalid path ${fullPath}`);
|
12
|
-
}
|
13
|
-
const cameraIndex = parseInt(matches[1]);
|
14
|
-
const camera = gltfTree.cameras && gltfTree.cameras[cameraIndex];
|
15
|
-
if (!camera) {
|
16
|
-
throw new Error(`Invalid camera index for path ${fullPath}`);
|
17
|
-
}
|
18
|
-
const babylonCamera = camera._babylonCamera;
|
19
|
-
if (!babylonCamera) {
|
20
|
-
throw new Error(`No Babylon camera found for path ${fullPath}`);
|
21
|
-
}
|
22
|
-
const gltfProperty = matches[3];
|
23
|
-
if (!gltfProperty) {
|
24
|
-
throw new Error(`Invalid property for path ${fullPath}`);
|
25
|
-
}
|
26
|
-
return { babylonCamera, gltfProperty };
|
27
|
-
}
|
28
|
-
export const camerasExtension = {
|
29
|
-
shouldProcess(path) {
|
30
|
-
const fullPath = path.getFinalPath();
|
31
|
-
return !!fullPath.match(camerasRegex);
|
32
|
-
},
|
33
|
-
processGet(path, context) {
|
34
|
-
const { babylonCamera, gltfProperty } = getBabylonCamera(path, context);
|
35
|
-
switch (gltfProperty) {
|
36
|
-
case "aspectRatio":
|
37
|
-
Tools.Warn("Getting aspect ratio is not supported.");
|
38
|
-
return -1;
|
39
|
-
case "zNear":
|
40
|
-
return babylonCamera.minZ;
|
41
|
-
case "zFar":
|
42
|
-
return babylonCamera.maxZ;
|
43
|
-
case "yfov":
|
44
|
-
return babylonCamera.fov;
|
45
|
-
case "xmag":
|
46
|
-
return babylonCamera.orthoRight;
|
47
|
-
case "ymag":
|
48
|
-
return babylonCamera.orthoTop;
|
49
|
-
}
|
50
|
-
},
|
51
|
-
processSet(path, context, value) {
|
52
|
-
const { babylonCamera, gltfProperty } = getBabylonCamera(path, context);
|
53
|
-
switch (gltfProperty) {
|
54
|
-
case "aspectRatio":
|
55
|
-
Tools.Warn("Setting aspect ratio is not supported.");
|
56
|
-
break;
|
57
|
-
case "zNear":
|
58
|
-
babylonCamera.minZ = value;
|
59
|
-
break;
|
60
|
-
case "zFar":
|
61
|
-
babylonCamera.maxZ = value;
|
62
|
-
break;
|
63
|
-
case "yfov":
|
64
|
-
babylonCamera.fov = value;
|
65
|
-
break;
|
66
|
-
case "xmag":
|
67
|
-
babylonCamera.orthoLeft = -value;
|
68
|
-
babylonCamera.orthoRight = value;
|
69
|
-
break;
|
70
|
-
case "ymag":
|
71
|
-
babylonCamera.orthoTop = value;
|
72
|
-
babylonCamera.orthoBottom = -value;
|
73
|
-
break;
|
74
|
-
}
|
75
|
-
},
|
76
|
-
};
|
77
|
-
//# sourceMappingURL=interactivityPathCameraExtensions.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"interactivityPathCameraExtensions.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/interactivityPathCameraExtensions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Camera } from \"core/Cameras/camera\";\r\nimport type { FlowGraphPath } from \"core/FlowGraph/flowGraphPath\";\r\nimport type { FlowGraphContext } from \"core/FlowGraph/flowGraphContext\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport type { IGLTF } from \"../glTFLoaderInterfaces\";\r\n\r\nconst camerasRegex = /^\\/cameras\\/(\\d+)\\/(orthographic|perspective)\\/(xmag|ymag|zfar|znear|aspectRatio|yfov)$/;\r\n\r\nfunction getBabylonCamera(path: FlowGraphPath, context: FlowGraphContext): { babylonCamera: Camera; gltfProperty: string } {\r\n const fullPath = path.getFinalPath();\r\n const gltfTree = context.getVariable(\"gltf\") as IGLTF;\r\n if (!gltfTree) {\r\n throw new Error(`No glTF tree found for path ${fullPath}`);\r\n }\r\n const matches = fullPath.match(camerasRegex);\r\n if (!matches || matches.length !== 4) {\r\n throw new Error(`Invalid path ${fullPath}`);\r\n }\r\n const cameraIndex = parseInt(matches[1]);\r\n const camera = gltfTree.cameras && gltfTree.cameras[cameraIndex];\r\n if (!camera) {\r\n throw new Error(`Invalid camera index for path ${fullPath}`);\r\n }\r\n const babylonCamera = camera._babylonCamera;\r\n if (!babylonCamera) {\r\n throw new Error(`No Babylon camera found for path ${fullPath}`);\r\n }\r\n const gltfProperty = matches[3];\r\n if (!gltfProperty) {\r\n throw new Error(`Invalid property for path ${fullPath}`);\r\n }\r\n\r\n return { babylonCamera, gltfProperty };\r\n}\r\n\r\nexport const camerasExtension = {\r\n shouldProcess(path: FlowGraphPath): boolean {\r\n const fullPath = path.getFinalPath();\r\n return !!fullPath.match(camerasRegex);\r\n },\r\n processGet(path: FlowGraphPath, context: FlowGraphContext): any {\r\n const { babylonCamera, gltfProperty } = getBabylonCamera(path, context);\r\n switch (gltfProperty) {\r\n case \"aspectRatio\":\r\n Tools.Warn(\"Getting aspect ratio is not supported.\");\r\n return -1;\r\n case \"zNear\":\r\n return babylonCamera.minZ;\r\n case \"zFar\":\r\n return babylonCamera.maxZ;\r\n case \"yfov\":\r\n return babylonCamera.fov;\r\n case \"xmag\":\r\n return babylonCamera.orthoRight;\r\n case \"ymag\":\r\n return babylonCamera.orthoTop;\r\n }\r\n },\r\n processSet(path: FlowGraphPath, context: FlowGraphContext, value: any) {\r\n const { babylonCamera, gltfProperty } = getBabylonCamera(path, context);\r\n switch (gltfProperty) {\r\n case \"aspectRatio\":\r\n Tools.Warn(\"Setting aspect ratio is not supported.\");\r\n break;\r\n case \"zNear\":\r\n babylonCamera.minZ = value;\r\n break;\r\n case \"zFar\":\r\n babylonCamera.maxZ = value;\r\n break;\r\n case \"yfov\":\r\n babylonCamera.fov = value;\r\n break;\r\n case \"xmag\":\r\n babylonCamera.orthoLeft = -value;\r\n babylonCamera.orthoRight = value;\r\n break;\r\n case \"ymag\":\r\n babylonCamera.orthoTop = value;\r\n babylonCamera.orthoBottom = -value;\r\n break;\r\n }\r\n },\r\n};\r\n"]}
|
@@ -1,5 +0,0 @@
|
|
1
|
-
import { transformNodeExtension } from "./interactivityPathTransformNodeExtensions.js";
|
2
|
-
import { pbrMaterialExtension } from "./interactivityPathMaterialExtensions.js";
|
3
|
-
import { camerasExtension } from "./interactivityPathCameraExtensions.js";
|
4
|
-
export const interactivityPathExensions = [transformNodeExtension, pbrMaterialExtension, camerasExtension];
|
5
|
-
//# sourceMappingURL=interactivityPathExtensions.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"interactivityPathExtensions.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/interactivityPathExtensions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,MAAM,CAAC,MAAM,0BAA0B,GAAqB,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,CAAC","sourcesContent":["import type { IPathExtension } from \"core/FlowGraph/flowGraphPath\";\r\nimport { transformNodeExtension } from \"./interactivityPathTransformNodeExtensions\";\r\nimport { pbrMaterialExtension } from \"./interactivityPathMaterialExtensions\";\r\nimport { camerasExtension } from \"./interactivityPathCameraExtensions\";\r\n\r\nexport const interactivityPathExensions: IPathExtension[] = [transformNodeExtension, pbrMaterialExtension, camerasExtension];\r\n"]}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import type { FlowGraphPath } from "@babylonjs/core/FlowGraph/flowGraphPath.js";
|
2
|
-
import type { FlowGraphContext } from "@babylonjs/core/FlowGraph/flowGraphContext.js";
|
3
|
-
export declare const pbrMaterialExtension: {
|
4
|
-
shouldProcess(path: FlowGraphPath): boolean;
|
5
|
-
processGet(path: FlowGraphPath, context: FlowGraphContext): any;
|
6
|
-
processSet(path: FlowGraphPath, context: FlowGraphContext, value: any): void;
|
7
|
-
};
|
@@ -1,87 +0,0 @@
|
|
1
|
-
import { Color3 } from "@babylonjs/core/Maths/math.color.js";
|
2
|
-
const materialsRegex = /^\/materials\/(\d+)\/(pbrMetallicRoughness\/baseColorFactor|pbrMetallicRoughness\/metallicFactor|pbrMetallicRoughness\/roughnessFactor|alphaCutoff|emissiveFactor|normalTexture\/scale|emissiveTexture\/strength)$/;
|
3
|
-
const gltfPbrMaterialPropertyToBabylonPropertyMap = {
|
4
|
-
"pbrMetallicRoughness/baseColorFactor": "albedoColor",
|
5
|
-
"pbrMetallicRoughness/metallicFactor": "metallic",
|
6
|
-
"pbrMetallicRoughness/roughnessFactor": "roughness",
|
7
|
-
emissiveFactor: "emissiveColor",
|
8
|
-
};
|
9
|
-
function getBabylonMaterial(path, context) {
|
10
|
-
var _a;
|
11
|
-
const fullPath = path.getFinalPath();
|
12
|
-
const gltfTree = context.getVariable("gltf");
|
13
|
-
if (!gltfTree) {
|
14
|
-
throw new Error(`No glTF tree found for path ${fullPath}`);
|
15
|
-
}
|
16
|
-
const matches = fullPath.match(materialsRegex);
|
17
|
-
if (!matches || matches.length !== 3) {
|
18
|
-
throw new Error(`Invalid path ${fullPath}`);
|
19
|
-
}
|
20
|
-
const materialIndex = parseInt(matches[1]);
|
21
|
-
const material = gltfTree.materials && gltfTree.materials[materialIndex];
|
22
|
-
if (!material) {
|
23
|
-
throw new Error(`Invalid material index for path ${fullPath}`);
|
24
|
-
}
|
25
|
-
const babylonMaterials = [];
|
26
|
-
if (!material._data) {
|
27
|
-
throw new Error(`No Babylon materials found for path ${fullPath}`);
|
28
|
-
}
|
29
|
-
for (const data of Object.keys(material._data)) {
|
30
|
-
const babylonMaterial = material._data[parseInt(data)].babylonMaterial;
|
31
|
-
if (babylonMaterial) {
|
32
|
-
babylonMaterials.push(babylonMaterial);
|
33
|
-
}
|
34
|
-
}
|
35
|
-
if (!babylonMaterials || babylonMaterials.length === 0) {
|
36
|
-
throw new Error(`No Babylon materials found for path ${fullPath}`);
|
37
|
-
}
|
38
|
-
const property = matches[2];
|
39
|
-
if (!property) {
|
40
|
-
throw new Error(`Invalid property for path ${fullPath}`);
|
41
|
-
}
|
42
|
-
const babylonProperty = (_a = gltfPbrMaterialPropertyToBabylonPropertyMap[property]) !== null && _a !== void 0 ? _a : property;
|
43
|
-
return { babylonMaterials, babylonProperty };
|
44
|
-
}
|
45
|
-
export const pbrMaterialExtension = {
|
46
|
-
shouldProcess(path) {
|
47
|
-
const fullPath = path.getFinalPath();
|
48
|
-
return !!fullPath.match(materialsRegex);
|
49
|
-
},
|
50
|
-
processGet(path, context) {
|
51
|
-
var _a, _b;
|
52
|
-
const { babylonMaterials, babylonProperty } = getBabylonMaterial(path, context);
|
53
|
-
/* The difference between the materials is only the drawMode, so we can return the
|
54
|
-
property of the first one*/
|
55
|
-
if (babylonProperty === "normalTexture/scale") {
|
56
|
-
const firstMat = babylonMaterials[0];
|
57
|
-
return (_a = firstMat.bumpTexture) === null || _a === void 0 ? void 0 : _a.uScale;
|
58
|
-
}
|
59
|
-
else if (babylonProperty === "emissiveTexture/strength") {
|
60
|
-
const firstMat = babylonMaterials[0];
|
61
|
-
return (_b = firstMat.emissiveTexture) === null || _b === void 0 ? void 0 : _b.level;
|
62
|
-
}
|
63
|
-
else {
|
64
|
-
return babylonMaterials[0][babylonProperty];
|
65
|
-
}
|
66
|
-
},
|
67
|
-
processSet(path, context, value) {
|
68
|
-
const { babylonMaterials, babylonProperty } = getBabylonMaterial(path, context);
|
69
|
-
for (const material of babylonMaterials) {
|
70
|
-
if (babylonProperty === "normalTexture/scale") {
|
71
|
-
material.bumpTexture.uScale = value;
|
72
|
-
material.bumpTexture.vScale = value;
|
73
|
-
}
|
74
|
-
else if (babylonProperty === "emissiveTexture/strength") {
|
75
|
-
material.emissiveTexture.level = value;
|
76
|
-
}
|
77
|
-
else {
|
78
|
-
let finalValue = value;
|
79
|
-
if (babylonProperty === "albedoColor" || babylonProperty === "emissiveColor") {
|
80
|
-
finalValue = new Color3(value.x, value.y, value.z);
|
81
|
-
}
|
82
|
-
material[babylonProperty] = finalValue;
|
83
|
-
}
|
84
|
-
}
|
85
|
-
},
|
86
|
-
};
|
87
|
-
//# sourceMappingURL=interactivityPathMaterialExtensions.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"interactivityPathMaterialExtensions.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/interactivityPathMaterialExtensions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FlowGraphPath } from \"core/FlowGraph/flowGraphPath\";\r\nimport type { FlowGraphContext } from \"core/FlowGraph/flowGraphContext\";\r\nimport type { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\r\nimport type { Texture } from \"core/Materials/Textures/texture\";\r\nimport { Color3 } from \"core/Maths/math.color\";\r\nimport type { IGLTF } from \"../glTFLoaderInterfaces\";\r\n\r\nconst materialsRegex =\r\n /^\\/materials\\/(\\d+)\\/(pbrMetallicRoughness\\/baseColorFactor|pbrMetallicRoughness\\/metallicFactor|pbrMetallicRoughness\\/roughnessFactor|alphaCutoff|emissiveFactor|normalTexture\\/scale|emissiveTexture\\/strength)$/;\r\n\r\nconst gltfPbrMaterialPropertyToBabylonPropertyMap: { [key: string]: string } = {\r\n \"pbrMetallicRoughness/baseColorFactor\": \"albedoColor\",\r\n \"pbrMetallicRoughness/metallicFactor\": \"metallic\",\r\n \"pbrMetallicRoughness/roughnessFactor\": \"roughness\",\r\n emissiveFactor: \"emissiveColor\",\r\n};\r\n\r\nfunction getBabylonMaterial(path: FlowGraphPath, context: FlowGraphContext) {\r\n const fullPath = path.getFinalPath();\r\n const gltfTree = context.getVariable(\"gltf\") as IGLTF;\r\n if (!gltfTree) {\r\n throw new Error(`No glTF tree found for path ${fullPath}`);\r\n }\r\n const matches = fullPath.match(materialsRegex);\r\n if (!matches || matches.length !== 3) {\r\n throw new Error(`Invalid path ${fullPath}`);\r\n }\r\n const materialIndex = parseInt(matches[1]);\r\n const material = gltfTree.materials && gltfTree.materials[materialIndex];\r\n if (!material) {\r\n throw new Error(`Invalid material index for path ${fullPath}`);\r\n }\r\n const babylonMaterials = [];\r\n if (!material._data) {\r\n throw new Error(`No Babylon materials found for path ${fullPath}`);\r\n }\r\n for (const data of Object.keys(material._data)) {\r\n const babylonMaterial = material._data[parseInt(data)].babylonMaterial as PBRMaterial;\r\n if (babylonMaterial) {\r\n babylonMaterials.push(babylonMaterial);\r\n }\r\n }\r\n if (!babylonMaterials || babylonMaterials.length === 0) {\r\n throw new Error(`No Babylon materials found for path ${fullPath}`);\r\n }\r\n const property = matches[2];\r\n if (!property) {\r\n throw new Error(`Invalid property for path ${fullPath}`);\r\n }\r\n const babylonProperty = gltfPbrMaterialPropertyToBabylonPropertyMap[property] ?? property;\r\n return { babylonMaterials, babylonProperty };\r\n}\r\n\r\nexport const pbrMaterialExtension = {\r\n shouldProcess(path: FlowGraphPath): boolean {\r\n const fullPath = path.getFinalPath();\r\n return !!fullPath.match(materialsRegex);\r\n },\r\n processGet(path: FlowGraphPath, context: FlowGraphContext): any {\r\n const { babylonMaterials, babylonProperty } = getBabylonMaterial(path, context);\r\n /* The difference between the materials is only the drawMode, so we can return the\r\n property of the first one*/\r\n if (babylonProperty === \"normalTexture/scale\") {\r\n const firstMat = babylonMaterials[0];\r\n return (firstMat.bumpTexture as Texture)?.uScale;\r\n } else if (babylonProperty === \"emissiveTexture/strength\") {\r\n const firstMat = babylonMaterials[0];\r\n return firstMat.emissiveTexture?.level;\r\n } else {\r\n return (babylonMaterials[0] as any)[babylonProperty];\r\n }\r\n },\r\n processSet(path: FlowGraphPath, context: FlowGraphContext, value: any) {\r\n const { babylonMaterials, babylonProperty } = getBabylonMaterial(path, context);\r\n for (const material of babylonMaterials) {\r\n if (babylonProperty === \"normalTexture/scale\") {\r\n (material.bumpTexture as Texture).uScale = value;\r\n (material.bumpTexture as Texture).vScale = value;\r\n } else if (babylonProperty === \"emissiveTexture/strength\") {\r\n material.emissiveTexture!.level = value;\r\n } else {\r\n let finalValue = value;\r\n if (babylonProperty === \"albedoColor\" || babylonProperty === \"emissiveColor\") {\r\n finalValue = new Color3(value.x, value.y, value.z);\r\n }\r\n (material as any)[babylonProperty] = finalValue;\r\n }\r\n }\r\n },\r\n};\r\n"]}
|
@@ -1,50 +0,0 @@
|
|
1
|
-
const nodesRegex = /^\/nodes\/(\d+)\/(translation|rotation|scale)$/;
|
2
|
-
function getBabylonTransformNode(path, context) {
|
3
|
-
const fullPath = path.getFinalPath();
|
4
|
-
const gltfTree = context.getVariable("gltf");
|
5
|
-
if (!gltfTree) {
|
6
|
-
throw new Error(`No glTF tree found for path ${fullPath}`);
|
7
|
-
}
|
8
|
-
const matches = fullPath.match(nodesRegex);
|
9
|
-
if (!matches || matches.length !== 3) {
|
10
|
-
throw new Error(`Invalid path ${fullPath}`);
|
11
|
-
}
|
12
|
-
const nodeIndex = parseInt(matches[1]);
|
13
|
-
const node = gltfTree.nodes && gltfTree.nodes[nodeIndex];
|
14
|
-
if (!node) {
|
15
|
-
throw new Error(`Invalid node index for path ${fullPath}`);
|
16
|
-
}
|
17
|
-
const babylonNode = node._babylonTransformNode;
|
18
|
-
if (!babylonNode) {
|
19
|
-
throw new Error(`No Babylon node found for path ${fullPath}`);
|
20
|
-
}
|
21
|
-
const property = matches[2];
|
22
|
-
if (!property) {
|
23
|
-
throw new Error(`Invalid property for path ${fullPath}`);
|
24
|
-
}
|
25
|
-
const babylonProperty = gltfNodePropertyToBabylonPropertyMap[property];
|
26
|
-
if (!babylonProperty) {
|
27
|
-
throw new Error(`Invalid property for path ${fullPath}`);
|
28
|
-
}
|
29
|
-
return { babylonNode, babylonProperty };
|
30
|
-
}
|
31
|
-
const gltfNodePropertyToBabylonPropertyMap = {
|
32
|
-
translation: "position",
|
33
|
-
scale: "scaling",
|
34
|
-
rotation: "rotationQuaternion",
|
35
|
-
};
|
36
|
-
export const transformNodeExtension = {
|
37
|
-
shouldProcess(path) {
|
38
|
-
const fullPath = path.getFinalPath();
|
39
|
-
return !!fullPath.match(nodesRegex);
|
40
|
-
},
|
41
|
-
processGet(path, context) {
|
42
|
-
const { babylonNode, babylonProperty } = getBabylonTransformNode(path, context);
|
43
|
-
return babylonNode[babylonProperty];
|
44
|
-
},
|
45
|
-
processSet(path, context, value) {
|
46
|
-
const { babylonNode, babylonProperty } = getBabylonTransformNode(path, context);
|
47
|
-
babylonNode[babylonProperty] = value;
|
48
|
-
},
|
49
|
-
};
|
50
|
-
//# sourceMappingURL=interactivityPathTransformNodeExtensions.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"interactivityPathTransformNodeExtensions.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/interactivityPathTransformNodeExtensions.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,GAAG,gDAAgD,CAAC;AAEpE,SAAS,uBAAuB,CAAC,IAAmB,EAAE,OAAyB;IAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAU,CAAC;IACtD,IAAI,CAAC,QAAQ,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;KAC9D;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;KAC/C;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,EAAE;QACP,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;KAC9D;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAsC,CAAC;IAChE,IAAI,CAAC,WAAW,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;KACjE;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,QAAQ,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;KAC5D;IACD,MAAM,eAAe,GAAG,oCAAoC,CAAC,QAAQ,CAAC,CAAC;IACvE,IAAI,CAAC,eAAe,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;KAC5D;IACD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,oCAAoC,GAA8B;IACpE,WAAW,EAAE,UAAU;IACvB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,oBAAoB;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAmB;IAClD,aAAa,CAAC,IAAmB;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,UAAU,CAAC,IAAmB,EAAE,OAAyB;QACrD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChF,OAAQ,WAAmB,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IACD,UAAU,CAAC,IAAmB,EAAE,OAAyB,EAAE,KAAU;QACjE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/E,WAAmB,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC;IAClD,CAAC;CACJ,CAAC","sourcesContent":["import type { FlowGraphPath, IPathExtension } from \"core/FlowGraph/flowGraphPath\";\r\nimport type { FlowGraphContext } from \"core/FlowGraph/flowGraphContext\";\r\nimport type { TransformNode } from \"core/Meshes\";\r\nimport type { IGLTF } from \"../glTFLoaderInterfaces\";\r\n\r\nconst nodesRegex = /^\\/nodes\\/(\\d+)\\/(translation|rotation|scale)$/;\r\n\r\nfunction getBabylonTransformNode(path: FlowGraphPath, context: FlowGraphContext) {\r\n const fullPath = path.getFinalPath();\r\n const gltfTree = context.getVariable(\"gltf\") as IGLTF;\r\n if (!gltfTree) {\r\n throw new Error(`No glTF tree found for path ${fullPath}`);\r\n }\r\n const matches = fullPath.match(nodesRegex);\r\n if (!matches || matches.length !== 3) {\r\n throw new Error(`Invalid path ${fullPath}`);\r\n }\r\n const nodeIndex = parseInt(matches[1]);\r\n const node = gltfTree.nodes && gltfTree.nodes[nodeIndex];\r\n if (!node) {\r\n throw new Error(`Invalid node index for path ${fullPath}`);\r\n }\r\n const babylonNode = node._babylonTransformNode as TransformNode;\r\n if (!babylonNode) {\r\n throw new Error(`No Babylon node found for path ${fullPath}`);\r\n }\r\n const property = matches[2];\r\n if (!property) {\r\n throw new Error(`Invalid property for path ${fullPath}`);\r\n }\r\n const babylonProperty = gltfNodePropertyToBabylonPropertyMap[property];\r\n if (!babylonProperty) {\r\n throw new Error(`Invalid property for path ${fullPath}`);\r\n }\r\n return { babylonNode, babylonProperty };\r\n}\r\n\r\nconst gltfNodePropertyToBabylonPropertyMap: { [key: string]: string } = {\r\n translation: \"position\",\r\n scale: \"scaling\",\r\n rotation: \"rotationQuaternion\",\r\n};\r\n\r\nexport const transformNodeExtension: IPathExtension = {\r\n shouldProcess(path: FlowGraphPath): boolean {\r\n const fullPath = path.getFinalPath();\r\n return !!fullPath.match(nodesRegex);\r\n },\r\n processGet(path: FlowGraphPath, context: FlowGraphContext) {\r\n const { babylonNode, babylonProperty } = getBabylonTransformNode(path, context);\r\n return (babylonNode as any)[babylonProperty];\r\n },\r\n processSet(path: FlowGraphPath, context: FlowGraphContext, value: any) {\r\n const { babylonNode, babylonProperty } = getBabylonTransformNode(path, context);\r\n (babylonNode as any)[babylonProperty] = value;\r\n },\r\n};\r\n"]}
|