@babylonjs/loaders 7.51.0 → 7.51.2
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/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +1 -0
- package/glTF/2.0/Extensions/KHR_animation_pointer.data.d.ts +0 -299
- package/glTF/2.0/Extensions/KHR_animation_pointer.data.js +190 -224
- package/glTF/2.0/Extensions/KHR_animation_pointer.data.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_animation_pointer.js +11 -14
- package/glTF/2.0/Extensions/KHR_animation_pointer.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.d.ts +339 -0
- package/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js +1507 -0
- package/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.d.ts +33 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js +20 -0
- package/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity/index.d.ts +3 -0
- package/glTF/2.0/Extensions/KHR_interactivity/index.js +4 -0
- package/glTF/2.0/Extensions/KHR_interactivity/index.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.d.ts +71 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js +442 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity.d.ts +7 -1
- package/glTF/2.0/Extensions/KHR_interactivity.js +105 -7
- package/glTF/2.0/Extensions/KHR_interactivity.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_node_hoverability.js +153 -0
- package/glTF/2.0/Extensions/KHR_node_hoverability.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_node_selectability.d.ts +30 -0
- package/glTF/2.0/Extensions/KHR_node_selectability.js +123 -0
- package/glTF/2.0/Extensions/KHR_node_selectability.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_node_visibility.js +25 -0
- package/glTF/2.0/Extensions/KHR_node_visibility.js.map +1 -1
- package/glTF/2.0/Extensions/gltfPathToObjectConverter.d.ts +5 -2
- package/glTF/2.0/Extensions/gltfPathToObjectConverter.js +26 -5
- package/glTF/2.0/Extensions/gltfPathToObjectConverter.js.map +1 -1
- package/glTF/2.0/Extensions/index.d.ts +4 -0
- package/glTF/2.0/Extensions/index.js +5 -0
- package/glTF/2.0/Extensions/index.js.map +1 -1
- package/glTF/2.0/Extensions/objectModelMapping.d.ts +289 -0
- package/glTF/2.0/Extensions/objectModelMapping.js +801 -0
- package/glTF/2.0/Extensions/objectModelMapping.js.map +1 -0
- package/glTF/2.0/glTFLoader.d.ts +4 -1
- package/glTF/2.0/glTFLoader.js +22 -11
- package/glTF/2.0/glTFLoader.js.map +1 -1
- package/glTF/2.0/glTFLoaderAnimation.d.ts +12 -10
- package/glTF/2.0/glTFLoaderAnimation.js +13 -11
- package/glTF/2.0/glTFLoaderAnimation.js.map +1 -1
- package/glTF/2.0/index.d.ts +1 -0
- package/glTF/2.0/index.js +1 -0
- package/glTF/2.0/index.js.map +1 -1
- package/package.json +3 -3
- package/glTF/2.0/Extensions/interactivityFunctions.d.ts +0 -9
- package/glTF/2.0/Extensions/interactivityFunctions.js +0 -198
- package/glTF/2.0/Extensions/interactivityFunctions.js.map +0 -1
- package/glTF/2.0/Extensions/interactivityPathToObjectConverter.d.ts +0 -9
- package/glTF/2.0/Extensions/interactivityPathToObjectConverter.js +0 -32
- package/glTF/2.0/Extensions/interactivityPathToObjectConverter.js.map +0 -1
- package/glTF/2.0/Extensions/interactivityUtils.d.ts +0 -4
- package/glTF/2.0/Extensions/interactivityUtils.js +0 -108
- package/glTF/2.0/Extensions/interactivityUtils.js.map +0 -1
@@ -1,17 +1,19 @@
|
|
1
1
|
import type { IObjectInfo, IPathToObjectConverter } from "@babylonjs/core/ObjectModel/objectModelInterfaces.js";
|
2
2
|
import type { IGLTF } from "../glTFLoaderInterfaces";
|
3
|
+
import type { IObjectAccessor } from "@babylonjs/core/FlowGraph/typeDefinitions.js";
|
3
4
|
/**
|
4
5
|
* A converter that takes a glTF Object Model JSON Pointer
|
5
6
|
* and transforms it into an ObjectAccessorContainer, allowing
|
6
7
|
* objects referenced in the glTF to be associated with their
|
7
8
|
* respective Babylon.js objects.
|
8
9
|
*/
|
9
|
-
export declare class GLTFPathToObjectConverter<T> implements IPathToObjectConverter<T
|
10
|
+
export declare class GLTFPathToObjectConverter<T, BabylonType, BabylonValue> implements IPathToObjectConverter<IObjectAccessor<T, BabylonType, BabylonValue>> {
|
10
11
|
private _gltf;
|
11
12
|
private _infoTree;
|
12
13
|
constructor(_gltf: IGLTF, _infoTree: any);
|
13
14
|
/**
|
14
15
|
* The pointer string is represented by a [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901).
|
16
|
+
* See also https://github.com/KhronosGroup/glTF/blob/main/specification/2.0/ObjectModel.adoc#core-pointers
|
15
17
|
* <animationPointer> := /<rootNode>/<assetIndex>/<propertyPath>
|
16
18
|
* <rootNode> := "nodes" | "materials" | "meshes" | "cameras" | "extensions"
|
17
19
|
* <assetIndex> := <digit> | <name>
|
@@ -23,6 +25,7 @@ export declare class GLTFPathToObjectConverter<T> implements IPathToObjectConver
|
|
23
25
|
*
|
24
26
|
* Examples:
|
25
27
|
* - "/nodes/0/rotation"
|
28
|
+
* - "/nodes.length"
|
26
29
|
* - "/materials/2/emissiveFactor"
|
27
30
|
* - "/materials/2/pbrMetallicRoughness/baseColorFactor"
|
28
31
|
* - "/materials/2/extensions/KHR_materials_emissive_strength/emissiveStrength"
|
@@ -30,5 +33,5 @@ export declare class GLTFPathToObjectConverter<T> implements IPathToObjectConver
|
|
30
33
|
* @param path The path to convert
|
31
34
|
* @returns The object and info associated with the path
|
32
35
|
*/
|
33
|
-
convert(path: string): IObjectInfo<T
|
36
|
+
convert(path: string): IObjectInfo<IObjectAccessor<T, BabylonType, BabylonValue>>;
|
34
37
|
}
|
@@ -11,6 +11,7 @@ export class GLTFPathToObjectConverter {
|
|
11
11
|
}
|
12
12
|
/**
|
13
13
|
* The pointer string is represented by a [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901).
|
14
|
+
* See also https://github.com/KhronosGroup/glTF/blob/main/specification/2.0/ObjectModel.adoc#core-pointers
|
14
15
|
* <animationPointer> := /<rootNode>/<assetIndex>/<propertyPath>
|
15
16
|
* <rootNode> := "nodes" | "materials" | "meshes" | "cameras" | "extensions"
|
16
17
|
* <assetIndex> := <digit> | <name>
|
@@ -22,6 +23,7 @@ export class GLTFPathToObjectConverter {
|
|
22
23
|
*
|
23
24
|
* Examples:
|
24
25
|
* - "/nodes/0/rotation"
|
26
|
+
* - "/nodes.length"
|
25
27
|
* - "/materials/2/emissiveFactor"
|
26
28
|
* - "/materials/2/pbrMetallicRoughness/baseColorFactor"
|
27
29
|
* - "/materials/2/extensions/KHR_materials_emissive_strength/emissiveStrength"
|
@@ -38,8 +40,23 @@ export class GLTFPathToObjectConverter {
|
|
38
40
|
}
|
39
41
|
const parts = path.split("/");
|
40
42
|
parts.shift();
|
43
|
+
//if the last part has ".length" in it, separate that as an extra part
|
44
|
+
if (parts[parts.length - 1].includes(".length")) {
|
45
|
+
const lastPart = parts[parts.length - 1];
|
46
|
+
const split = lastPart.split(".");
|
47
|
+
parts.pop();
|
48
|
+
parts.push(...split);
|
49
|
+
}
|
50
|
+
let ignoreObjectTree = false;
|
41
51
|
for (const part of parts) {
|
42
|
-
|
52
|
+
const isLength = part === "length";
|
53
|
+
if (isLength && !infoTree.__array__) {
|
54
|
+
throw new Error(`Path ${path} is invalid`);
|
55
|
+
}
|
56
|
+
if (infoTree.__ignoreObjectTree__) {
|
57
|
+
ignoreObjectTree = true;
|
58
|
+
}
|
59
|
+
if (infoTree.__array__ && !isLength) {
|
43
60
|
infoTree = infoTree.__array__;
|
44
61
|
}
|
45
62
|
else {
|
@@ -48,11 +65,15 @@ export class GLTFPathToObjectConverter {
|
|
48
65
|
throw new Error(`Path ${path} is invalid`);
|
49
66
|
}
|
50
67
|
}
|
51
|
-
if (
|
52
|
-
|
68
|
+
if (!ignoreObjectTree) {
|
69
|
+
if (objectTree === undefined) {
|
70
|
+
throw new Error(`Path ${path} is invalid`);
|
71
|
+
}
|
72
|
+
if (!isLength) {
|
73
|
+
objectTree = objectTree?.[part];
|
74
|
+
}
|
53
75
|
}
|
54
|
-
|
55
|
-
if (infoTree.__target__) {
|
76
|
+
if (infoTree.__target__ || isLength) {
|
56
77
|
target = objectTree;
|
57
78
|
}
|
58
79
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"gltfPathToObjectConverter.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/gltfPathToObjectConverter.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"gltfPathToObjectConverter.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/gltfPathToObjectConverter.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,OAAO,yBAAyB;IAClC,YACY,KAAY,EACZ,SAAc;QADd,UAAK,GAAL,KAAK,CAAO;QACZ,cAAS,GAAT,SAAS,CAAK;IACvB,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,OAAO,CAAC,IAAY;QACvB,IAAI,UAAU,GAAQ,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,QAAQ,GAAQ,IAAI,CAAC,SAAS,CAAC;QACnC,IAAI,MAAM,GAAQ,SAAS,CAAC;QAE5B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,sEAAsE;QACtE,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,KAAK,CAAC,GAAG,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,KAAK,QAAQ,CAAC;YACnC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAChC,gBAAgB,GAAG,IAAI,CAAC;YAC5B,CAAC;YACD,IAAI,QAAQ,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC;gBAC/C,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,UAAU,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;YAED,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC;gBAClC,MAAM,GAAG,UAAU,CAAC;YACxB,CAAC;QACL,CAAC;QAED,OAAO;YACH,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,QAAQ;SACjB,CAAC;IACN,CAAC;CACJ","sourcesContent":["import type { IObjectInfo, IPathToObjectConverter } from \"core/ObjectModel/objectModelInterfaces\";\r\nimport type { IGLTF } from \"../glTFLoaderInterfaces\";\r\nimport type { IObjectAccessor } from \"core/FlowGraph/typeDefinitions\";\r\n\r\n/**\r\n * A converter that takes a glTF Object Model JSON Pointer\r\n * and transforms it into an ObjectAccessorContainer, allowing\r\n * objects referenced in the glTF to be associated with their\r\n * respective Babylon.js objects.\r\n */\r\nexport class GLTFPathToObjectConverter<T, BabylonType, BabylonValue> implements IPathToObjectConverter<IObjectAccessor<T, BabylonType, BabylonValue>> {\r\n public constructor(\r\n private _gltf: IGLTF,\r\n private _infoTree: any\r\n ) {}\r\n\r\n /**\r\n * The pointer string is represented by a [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901).\r\n * See also https://github.com/KhronosGroup/glTF/blob/main/specification/2.0/ObjectModel.adoc#core-pointers\r\n * <animationPointer> := /<rootNode>/<assetIndex>/<propertyPath>\r\n * <rootNode> := \"nodes\" | \"materials\" | \"meshes\" | \"cameras\" | \"extensions\"\r\n * <assetIndex> := <digit> | <name>\r\n * <propertyPath> := <extensionPath> | <standardPath>\r\n * <extensionPath> := \"extensions\"/<name>/<standardPath>\r\n * <standardPath> := <name> | <name>/<standardPath>\r\n * <name> := W+\r\n * <digit> := D+\r\n *\r\n * Examples:\r\n * - \"/nodes/0/rotation\"\r\n * - \"/nodes.length\"\r\n * - \"/materials/2/emissiveFactor\"\r\n * - \"/materials/2/pbrMetallicRoughness/baseColorFactor\"\r\n * - \"/materials/2/extensions/KHR_materials_emissive_strength/emissiveStrength\"\r\n *\r\n * @param path The path to convert\r\n * @returns The object and info associated with the path\r\n */\r\n public convert(path: string): IObjectInfo<IObjectAccessor<T, BabylonType, BabylonValue>> {\r\n let objectTree: any = this._gltf;\r\n let infoTree: any = this._infoTree;\r\n let target: any = undefined;\r\n\r\n if (!path.startsWith(\"/\")) {\r\n throw new Error(\"Path must start with a /\");\r\n }\r\n const parts = path.split(\"/\");\r\n parts.shift();\r\n\r\n //if the last part has \".length\" in it, separate that as an extra part\r\n if (parts[parts.length - 1].includes(\".length\")) {\r\n const lastPart = parts[parts.length - 1];\r\n const split = lastPart.split(\".\");\r\n parts.pop();\r\n parts.push(...split);\r\n }\r\n\r\n let ignoreObjectTree = false;\r\n\r\n for (const part of parts) {\r\n const isLength = part === \"length\";\r\n if (isLength && !infoTree.__array__) {\r\n throw new Error(`Path ${path} is invalid`);\r\n }\r\n if (infoTree.__ignoreObjectTree__) {\r\n ignoreObjectTree = true;\r\n }\r\n if (infoTree.__array__ && !isLength) {\r\n infoTree = infoTree.__array__;\r\n } else {\r\n infoTree = infoTree[part];\r\n if (!infoTree) {\r\n throw new Error(`Path ${path} is invalid`);\r\n }\r\n }\r\n if (!ignoreObjectTree) {\r\n if (objectTree === undefined) {\r\n throw new Error(`Path ${path} is invalid`);\r\n }\r\n if (!isLength) {\r\n objectTree = objectTree?.[part];\r\n }\r\n }\r\n\r\n if (infoTree.__target__ || isLength) {\r\n target = objectTree;\r\n }\r\n }\r\n\r\n return {\r\n object: target,\r\n info: infoTree,\r\n };\r\n }\r\n}\r\n"]}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
export * from "./objectModelMapping";
|
1
2
|
export * from "./EXT_lights_image_based";
|
2
3
|
export * from "./EXT_mesh_gpu_instancing";
|
3
4
|
export * from "./EXT_meshopt_compression";
|
@@ -31,4 +32,7 @@ export * from "./MSFT_minecraftMesh";
|
|
31
32
|
export * from "./MSFT_sRGBFactors";
|
32
33
|
export * from "./KHR_interactivity";
|
33
34
|
export * from "./KHR_node_visibility";
|
35
|
+
export * from "./KHR_node_selectability";
|
36
|
+
export * from "./KHR_node_hoverability";
|
34
37
|
export * from "./ExtrasAsMetadata";
|
38
|
+
export * from "./KHR_interactivity/index";
|
@@ -1,3 +1,4 @@
|
|
1
|
+
export * from "./objectModelMapping.js";
|
1
2
|
export * from "./EXT_lights_image_based.js";
|
2
3
|
export * from "./EXT_mesh_gpu_instancing.js";
|
3
4
|
export * from "./EXT_meshopt_compression.js";
|
@@ -31,5 +32,9 @@ export * from "./MSFT_minecraftMesh.js";
|
|
31
32
|
export * from "./MSFT_sRGBFactors.js";
|
32
33
|
export * from "./KHR_interactivity.js";
|
33
34
|
export * from "./KHR_node_visibility.js";
|
35
|
+
export * from "./KHR_node_selectability.js";
|
36
|
+
export * from "./KHR_node_hoverability.js";
|
34
37
|
export * from "./ExtrasAsMetadata.js";
|
38
|
+
// eslint-disable-next-line import/no-internal-modules
|
39
|
+
export * from "./KHR_interactivity/index.js";
|
35
40
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from \"./EXT_lights_image_based\";\r\nexport * from \"./EXT_mesh_gpu_instancing\";\r\nexport * from \"./EXT_meshopt_compression\";\r\nexport * from \"./EXT_texture_webp\";\r\nexport * from \"./EXT_texture_avif\";\r\nexport * from \"./EXT_lights_ies\";\r\nexport * from \"./KHR_draco_mesh_compression\";\r\nexport * from \"./KHR_lights_punctual\";\r\nexport * from \"./KHR_materials_pbrSpecularGlossiness\";\r\nexport * from \"./KHR_materials_unlit\";\r\nexport * from \"./KHR_materials_clearcoat\";\r\nexport * from \"./KHR_materials_iridescence\";\r\nexport * from \"./KHR_materials_anisotropy\";\r\nexport * from \"./KHR_materials_emissive_strength\";\r\nexport * from \"./KHR_materials_sheen\";\r\nexport * from \"./KHR_materials_specular\";\r\nexport * from \"./KHR_materials_ior\";\r\nexport * from \"./KHR_materials_variants\";\r\nexport * from \"./KHR_materials_transmission\";\r\nexport * from \"./KHR_materials_diffuse_transmission\";\r\nexport * from \"./KHR_materials_volume\";\r\nexport * from \"./KHR_materials_dispersion\";\r\nexport * from \"./KHR_mesh_quantization\";\r\nexport * from \"./KHR_texture_basisu\";\r\nexport * from \"./KHR_texture_transform\";\r\nexport * from \"./KHR_xmp_json_ld\";\r\nexport * from \"./KHR_animation_pointer\";\r\nexport * from \"./MSFT_audio_emitter\";\r\nexport * from \"./MSFT_lod\";\r\nexport * from \"./MSFT_minecraftMesh\";\r\nexport * from \"./MSFT_sRGBFactors\";\r\nexport * from \"./KHR_interactivity\";\r\nexport * from \"./KHR_node_visibility\";\r\nexport * from \"./ExtrasAsMetadata\";\r\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,sDAAsD;AACtD,cAAc,2BAA2B,CAAC","sourcesContent":["export * from \"./objectModelMapping\";\r\nexport * from \"./EXT_lights_image_based\";\r\nexport * from \"./EXT_mesh_gpu_instancing\";\r\nexport * from \"./EXT_meshopt_compression\";\r\nexport * from \"./EXT_texture_webp\";\r\nexport * from \"./EXT_texture_avif\";\r\nexport * from \"./EXT_lights_ies\";\r\nexport * from \"./KHR_draco_mesh_compression\";\r\nexport * from \"./KHR_lights_punctual\";\r\nexport * from \"./KHR_materials_pbrSpecularGlossiness\";\r\nexport * from \"./KHR_materials_unlit\";\r\nexport * from \"./KHR_materials_clearcoat\";\r\nexport * from \"./KHR_materials_iridescence\";\r\nexport * from \"./KHR_materials_anisotropy\";\r\nexport * from \"./KHR_materials_emissive_strength\";\r\nexport * from \"./KHR_materials_sheen\";\r\nexport * from \"./KHR_materials_specular\";\r\nexport * from \"./KHR_materials_ior\";\r\nexport * from \"./KHR_materials_variants\";\r\nexport * from \"./KHR_materials_transmission\";\r\nexport * from \"./KHR_materials_diffuse_transmission\";\r\nexport * from \"./KHR_materials_volume\";\r\nexport * from \"./KHR_materials_dispersion\";\r\nexport * from \"./KHR_mesh_quantization\";\r\nexport * from \"./KHR_texture_basisu\";\r\nexport * from \"./KHR_texture_transform\";\r\nexport * from \"./KHR_xmp_json_ld\";\r\nexport * from \"./KHR_animation_pointer\";\r\nexport * from \"./MSFT_audio_emitter\";\r\nexport * from \"./MSFT_lod\";\r\nexport * from \"./MSFT_minecraftMesh\";\r\nexport * from \"./MSFT_sRGBFactors\";\r\nexport * from \"./KHR_interactivity\";\r\nexport * from \"./KHR_node_visibility\";\r\nexport * from \"./KHR_node_selectability\";\r\nexport * from \"./KHR_node_hoverability\";\r\nexport * from \"./ExtrasAsMetadata\";\r\n// eslint-disable-next-line import/no-internal-modules\r\nexport * from \"./KHR_interactivity/index\";\r\n"]}
|
@@ -0,0 +1,289 @@
|
|
1
|
+
import type { TransformNode } from "@babylonjs/core/Meshes/transformNode.js";
|
2
|
+
import type { IAnimation, ICamera, IGLTF, IKHRLightsPunctual_Light, IMaterial, IMesh, INode } from "../glTFLoaderInterfaces";
|
3
|
+
import type { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
|
4
|
+
import { Matrix, Quaternion, Vector2 } from "@babylonjs/core/Maths/math.vector.js";
|
5
|
+
import type { Color3 } from "@babylonjs/core/Maths/math.color.js";
|
6
|
+
import { Color4 } from "@babylonjs/core/Maths/math.color.js";
|
7
|
+
import type { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial.js";
|
8
|
+
import type { Light } from "@babylonjs/core/Lights/light.js";
|
9
|
+
import type { Nullable } from "@babylonjs/core/types.js";
|
10
|
+
import type { IEXTLightsImageBased_LightImageBased } from "babylonjs-gltf2interface";
|
11
|
+
import type { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js";
|
12
|
+
import type { IInterpolationPropertyInfo, IObjectAccessor } from "@babylonjs/core/FlowGraph/typeDefinitions.js";
|
13
|
+
import { GLTFPathToObjectConverter } from "./gltfPathToObjectConverter";
|
14
|
+
import type { AnimationGroup } from "@babylonjs/core/Animations/animationGroup.js";
|
15
|
+
import type { Mesh } from "@babylonjs/core/Meshes/mesh.js";
|
16
|
+
export interface IGLTFObjectModelTree {
|
17
|
+
cameras: IGLTFObjectModelTreeCamerasObject;
|
18
|
+
nodes: IGLTFObjectModelTreeNodesObject;
|
19
|
+
materials: IGLTFObjectModelTreeMaterialsObject;
|
20
|
+
extensions: IGLTFObjectModelTreeExtensionsObject;
|
21
|
+
animations: {
|
22
|
+
length: IObjectAccessor<IAnimation[], AnimationGroup[], number>;
|
23
|
+
__array__: {};
|
24
|
+
};
|
25
|
+
meshes: {
|
26
|
+
length: IObjectAccessor<IMesh[], (Mesh | undefined)[], number>;
|
27
|
+
__array__: {};
|
28
|
+
};
|
29
|
+
}
|
30
|
+
export interface IGLTFObjectModelTreeNodesObject<GLTFTargetType = INode, BabylonTargetType = TransformNode> {
|
31
|
+
length: IObjectAccessor<GLTFTargetType[], BabylonTargetType[], number>;
|
32
|
+
__array__: {
|
33
|
+
__target__: boolean;
|
34
|
+
translation: IObjectAccessor<GLTFTargetType, BabylonTargetType, Vector3>;
|
35
|
+
rotation: IObjectAccessor<GLTFTargetType, BabylonTargetType, Quaternion>;
|
36
|
+
scale: IObjectAccessor<GLTFTargetType, BabylonTargetType, Vector3>;
|
37
|
+
matrix: IObjectAccessor<GLTFTargetType, BabylonTargetType, Matrix>;
|
38
|
+
globalMatrix: IObjectAccessor<GLTFTargetType, BabylonTargetType, Matrix>;
|
39
|
+
weights: {
|
40
|
+
length: IObjectAccessor<GLTFTargetType, BabylonTargetType, number>;
|
41
|
+
__array__: {
|
42
|
+
__target__: boolean;
|
43
|
+
} & IObjectAccessor<GLTFTargetType, BabylonTargetType, number>;
|
44
|
+
} & IObjectAccessor<GLTFTargetType, BabylonTargetType, number[]>;
|
45
|
+
extensions: {
|
46
|
+
EXT_lights_ies?: {
|
47
|
+
multiplier: IObjectAccessor<INode, Light, number>;
|
48
|
+
color: IObjectAccessor<INode, Light, Color3>;
|
49
|
+
};
|
50
|
+
};
|
51
|
+
};
|
52
|
+
}
|
53
|
+
export interface IGLTFObjectModelTreeCamerasObject {
|
54
|
+
__array__: {
|
55
|
+
__target__: boolean;
|
56
|
+
orthographic: {
|
57
|
+
xmag: IObjectAccessor<ICamera, ICamera, Vector2>;
|
58
|
+
ymag: IObjectAccessor<ICamera, ICamera, Vector2>;
|
59
|
+
zfar: IObjectAccessor<ICamera, ICamera, number>;
|
60
|
+
znear: IObjectAccessor<ICamera, ICamera, number>;
|
61
|
+
};
|
62
|
+
perspective: {
|
63
|
+
yfov: IObjectAccessor<ICamera, ICamera, number>;
|
64
|
+
zfar: IObjectAccessor<ICamera, ICamera, number>;
|
65
|
+
znear: IObjectAccessor<ICamera, ICamera, number>;
|
66
|
+
aspectRatio: IObjectAccessor<ICamera, ICamera, Nullable<number>>;
|
67
|
+
};
|
68
|
+
};
|
69
|
+
}
|
70
|
+
export interface IGLTFObjectModelTreeMaterialsObject {
|
71
|
+
__array__: {
|
72
|
+
__target__: boolean;
|
73
|
+
pbrMetallicRoughness: {
|
74
|
+
baseColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color4>;
|
75
|
+
metallicFactor: IObjectAccessor<IMaterial, PBRMaterial, Nullable<number>>;
|
76
|
+
roughnessFactor: IObjectAccessor<IMaterial, PBRMaterial, Nullable<number>>;
|
77
|
+
baseColorTexture: {
|
78
|
+
extensions: {
|
79
|
+
KHR_texture_transform: ITextureDefinition;
|
80
|
+
};
|
81
|
+
};
|
82
|
+
metallicRoughnessTexture: {
|
83
|
+
extensions: {
|
84
|
+
KHR_texture_transform: ITextureDefinition;
|
85
|
+
};
|
86
|
+
};
|
87
|
+
};
|
88
|
+
emissiveFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
|
89
|
+
normalTexture: {
|
90
|
+
scale: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
91
|
+
extensions: {
|
92
|
+
KHR_texture_transform: ITextureDefinition;
|
93
|
+
};
|
94
|
+
};
|
95
|
+
occlusionTexture: {
|
96
|
+
strength: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
97
|
+
extensions: {
|
98
|
+
KHR_texture_transform: ITextureDefinition;
|
99
|
+
};
|
100
|
+
};
|
101
|
+
emissiveTexture: {
|
102
|
+
extensions: {
|
103
|
+
KHR_texture_transform: ITextureDefinition;
|
104
|
+
};
|
105
|
+
};
|
106
|
+
extensions: {
|
107
|
+
KHR_materials_anisotropy: {
|
108
|
+
anisotropyStrength: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
109
|
+
anisotropyRotation: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
110
|
+
anisotropyTexture: {
|
111
|
+
extensions: {
|
112
|
+
KHR_texture_transform: ITextureDefinition;
|
113
|
+
};
|
114
|
+
};
|
115
|
+
};
|
116
|
+
KHR_materials_clearcoat: {
|
117
|
+
clearcoatFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
118
|
+
clearcoatRoughnessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
119
|
+
clearcoatTexture: {
|
120
|
+
extensions: {
|
121
|
+
KHR_texture_transform: ITextureDefinition;
|
122
|
+
};
|
123
|
+
};
|
124
|
+
clearcoatNormalTexture: {
|
125
|
+
scale: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
126
|
+
extensions: {
|
127
|
+
KHR_texture_transform: ITextureDefinition;
|
128
|
+
};
|
129
|
+
};
|
130
|
+
clearcoatRoughnessTexture: {
|
131
|
+
extensions: {
|
132
|
+
KHR_texture_transform: ITextureDefinition;
|
133
|
+
};
|
134
|
+
};
|
135
|
+
};
|
136
|
+
KHR_materials_dispersion: {
|
137
|
+
dispersion: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
138
|
+
};
|
139
|
+
KHR_materials_emissive_strength: {
|
140
|
+
emissiveStrength: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
141
|
+
};
|
142
|
+
KHR_materials_ior: {
|
143
|
+
ior: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
144
|
+
};
|
145
|
+
KHR_materials_iridescence: {
|
146
|
+
iridescenceFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
147
|
+
iridescenceIor: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
148
|
+
iridescenceThicknessMinimum: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
149
|
+
iridescenceThicknessMaximum: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
150
|
+
iridescenceTexture: {
|
151
|
+
extensions: {
|
152
|
+
KHR_texture_transform: ITextureDefinition;
|
153
|
+
};
|
154
|
+
};
|
155
|
+
iridescenceThicknessTexture: {
|
156
|
+
extensions: {
|
157
|
+
KHR_texture_transform: ITextureDefinition;
|
158
|
+
};
|
159
|
+
};
|
160
|
+
};
|
161
|
+
KHR_materials_sheen: {
|
162
|
+
sheenColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
|
163
|
+
sheenRoughnessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
164
|
+
sheenColorTexture: {
|
165
|
+
extensions: {
|
166
|
+
KHR_texture_transform: ITextureDefinition;
|
167
|
+
};
|
168
|
+
};
|
169
|
+
sheenRoughnessTexture: {
|
170
|
+
extensions: {
|
171
|
+
KHR_texture_transform: ITextureDefinition;
|
172
|
+
};
|
173
|
+
};
|
174
|
+
};
|
175
|
+
KHR_materials_specular: {
|
176
|
+
specularFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
177
|
+
specularColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
|
178
|
+
specularTexture: {
|
179
|
+
extensions: {
|
180
|
+
KHR_texture_transform: ITextureDefinition;
|
181
|
+
};
|
182
|
+
};
|
183
|
+
specularColorTexture: {
|
184
|
+
extensions: {
|
185
|
+
KHR_texture_transform: ITextureDefinition;
|
186
|
+
};
|
187
|
+
};
|
188
|
+
};
|
189
|
+
KHR_materials_transmission: {
|
190
|
+
transmissionFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
191
|
+
transmissionTexture: {
|
192
|
+
extensions: {
|
193
|
+
KHR_texture_transform: ITextureDefinition;
|
194
|
+
};
|
195
|
+
};
|
196
|
+
};
|
197
|
+
KHR_materials_diffuse_transmission: {
|
198
|
+
diffuseTransmissionFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
199
|
+
diffuseTransmissionTexture: {
|
200
|
+
extensions: {
|
201
|
+
KHR_texture_transform: ITextureDefinition;
|
202
|
+
};
|
203
|
+
};
|
204
|
+
diffuseTransmissionColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Nullable<Color3>>;
|
205
|
+
diffuseTransmissionColorTexture: {
|
206
|
+
extensions: {
|
207
|
+
KHR_texture_transform: ITextureDefinition;
|
208
|
+
};
|
209
|
+
};
|
210
|
+
};
|
211
|
+
KHR_materials_volume: {
|
212
|
+
thicknessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
213
|
+
attenuationColor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
|
214
|
+
attenuationDistance: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
215
|
+
thicknessTexture: {
|
216
|
+
extensions: {
|
217
|
+
KHR_texture_transform: ITextureDefinition;
|
218
|
+
};
|
219
|
+
};
|
220
|
+
};
|
221
|
+
};
|
222
|
+
};
|
223
|
+
}
|
224
|
+
interface ITextureDefinition {
|
225
|
+
offset: IObjectAccessor<IMaterial, PBRMaterial, Vector2>;
|
226
|
+
rotation: IObjectAccessor<IMaterial, PBRMaterial, number>;
|
227
|
+
scale: IObjectAccessor<IMaterial, PBRMaterial, Vector2>;
|
228
|
+
}
|
229
|
+
export interface IGLTFObjectModelTreeMeshesObject {
|
230
|
+
}
|
231
|
+
export interface IGLTFObjectModelTreeExtensionsObject {
|
232
|
+
KHR_lights_punctual: {
|
233
|
+
lights: {
|
234
|
+
length: IObjectAccessor<IKHRLightsPunctual_Light[], Light[], number>;
|
235
|
+
__array__: {
|
236
|
+
__target__: boolean;
|
237
|
+
color: IObjectAccessor<IKHRLightsPunctual_Light, Light, Color3>;
|
238
|
+
intensity: IObjectAccessor<IKHRLightsPunctual_Light, Light, number>;
|
239
|
+
range: IObjectAccessor<IKHRLightsPunctual_Light, Light, number>;
|
240
|
+
spot: {
|
241
|
+
innerConeAngle: IObjectAccessor<IKHRLightsPunctual_Light, Light, number>;
|
242
|
+
outerConeAngle: IObjectAccessor<IKHRLightsPunctual_Light, Light, number>;
|
243
|
+
};
|
244
|
+
};
|
245
|
+
};
|
246
|
+
};
|
247
|
+
EXT_lights_ies: {
|
248
|
+
lights: {
|
249
|
+
length: IObjectAccessor<IKHRLightsPunctual_Light[], Light[], number>;
|
250
|
+
};
|
251
|
+
};
|
252
|
+
EXT_lights_image_based: {
|
253
|
+
lights: {
|
254
|
+
__array__: {
|
255
|
+
__target__: boolean;
|
256
|
+
intensity: IObjectAccessor<IEXTLightsImageBased_LightImageBased, BaseTexture, number>;
|
257
|
+
rotation: IObjectAccessor<IEXTLightsImageBased_LightImageBased, BaseTexture, Quaternion>;
|
258
|
+
};
|
259
|
+
length: IObjectAccessor<IEXTLightsImageBased_LightImageBased[], BaseTexture[], number>;
|
260
|
+
};
|
261
|
+
};
|
262
|
+
}
|
263
|
+
/**
|
264
|
+
* get a path-to-object converter for the given glTF tree
|
265
|
+
* @param gltf the glTF tree to use
|
266
|
+
* @returns a path-to-object converter for the given glTF tree
|
267
|
+
*/
|
268
|
+
export declare function GetPathToObjectConverter(gltf: IGLTF): GLTFPathToObjectConverter<unknown, unknown, unknown>;
|
269
|
+
/**
|
270
|
+
* This function will return the object accessor for the given key in the object model
|
271
|
+
* If the key is not found, it will return undefined
|
272
|
+
* @param key the key to get the mapping for, for example /materials/\{\}/emissiveFactor
|
273
|
+
* @returns an object accessor for the given key, or undefined if the key is not found
|
274
|
+
*/
|
275
|
+
export declare function GetMappingForKey(key: string): IObjectAccessor | undefined;
|
276
|
+
/**
|
277
|
+
* Set interpolation for a specific key in the object model
|
278
|
+
* @param key the key to set, for example /materials/\{\}/emissiveFactor
|
279
|
+
* @param interpolation the interpolation elements array
|
280
|
+
*/
|
281
|
+
export declare function SetInterpolationForKey(key: string, interpolation?: IInterpolationPropertyInfo[]): void;
|
282
|
+
/**
|
283
|
+
* This will ad a new object accessor in the object model at the given key.
|
284
|
+
* Note that this will NOT change the typescript types. To do that you will need to change the interface itself (extending it in the module that uses it)
|
285
|
+
* @param key the key to add the object accessor at. For example /cameras/\{\}/perspective/aspectRatio
|
286
|
+
* @param accessor the object accessor to add
|
287
|
+
*/
|
288
|
+
export declare function AddObjectAccessorToKey<GLTFTargetType = any, BabylonTargetType = any, BabylonValueType = any>(key: string, accessor: IObjectAccessor<GLTFTargetType, BabylonTargetType, BabylonValueType>): void;
|
289
|
+
export {};
|