@babylonjs/loaders 5.25.0 → 5.26.1
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 +12 -31
- package/glTF/2.0/Extensions/KHR_animation_pointer.data.d.ts +133 -0
- package/glTF/2.0/Extensions/KHR_animation_pointer.data.js +169 -0
- package/glTF/2.0/Extensions/KHR_animation_pointer.data.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_animation_pointer.js +54 -204
- package/glTF/2.0/Extensions/KHR_animation_pointer.js.map +1 -1
- package/glTF/2.0/Extensions/KHR_lights_punctual.js +2 -1
- package/glTF/2.0/Extensions/KHR_lights_punctual.js.map +1 -1
- package/glTF/2.0/glTFLoader.d.ts +42 -8
- package/glTF/2.0/glTFLoader.js +204 -47
- package/glTF/2.0/glTFLoader.js.map +1 -1
- package/glTF/2.0/glTFLoaderAnimation.d.ts +29 -0
- package/glTF/2.0/glTFLoaderAnimation.js +66 -0
- package/glTF/2.0/glTFLoaderAnimation.js.map +1 -0
- package/glTF/2.0/glTFLoaderExtension.d.ts +14 -1
- package/glTF/2.0/glTFLoaderExtension.js.map +1 -1
- package/glTF/2.0/glTFLoaderInterfaces.d.ts +38 -11
- package/glTF/2.0/glTFLoaderInterfaces.js.map +1 -1
- package/package.json +3 -3
- package/glTF/2.0/Extensions/KHR_animation_pointer.map.d.ts +0 -15
- package/glTF/2.0/Extensions/KHR_animation_pointer.map.js +0 -454
- package/glTF/2.0/Extensions/KHR_animation_pointer.map.js.map +0 -1
- package/glTF/2.0/glTFUtilities.d.ts +0 -7
- package/glTF/2.0/glTFUtilities.js +0 -23
- package/glTF/2.0/glTFUtilities.js.map +0 -1
@@ -1,17 +1,14 @@
|
|
1
1
|
import type { IGLTFLoaderExtension } from "../glTFLoaderExtension";
|
2
2
|
import { GLTFLoader } from "../glTFLoader";
|
3
3
|
import type { Nullable } from "@babylonjs/core/types.js";
|
4
|
-
import {
|
4
|
+
import type { Animation } from "@babylonjs/core/Animations/animation.js";
|
5
5
|
import type { IAnimatable } from "@babylonjs/core/Animations/animatable.interface.js";
|
6
6
|
import type { IAnimation, IAnimationChannel } from "../glTFLoaderInterfaces";
|
7
7
|
/**
|
8
8
|
* [Specification PR](https://github.com/KhronosGroup/glTF/pull/2147)
|
9
|
+
* !!! Experimental Extension Subject to Changes !!!
|
9
10
|
*/
|
10
11
|
export declare class KHR_animation_pointer implements IGLTFLoaderExtension {
|
11
|
-
/**
|
12
|
-
* used to gently ignore invalid pointer. If false, invalid pointer will throw exception.
|
13
|
-
*/
|
14
|
-
ignoreInvalidPointer: boolean;
|
15
12
|
/**
|
16
13
|
* The name of this extension.
|
17
14
|
*/
|
@@ -28,47 +25,31 @@ export declare class KHR_animation_pointer implements IGLTFLoaderExtension {
|
|
28
25
|
/** @internal */
|
29
26
|
dispose(): void;
|
30
27
|
/**
|
31
|
-
*
|
32
|
-
* It is not allowed to animate a glTFid property, as it does change the structure of the glTF in general
|
33
|
-
* It is not allowed to animate a name property in general.
|
34
|
-
* @internal
|
35
|
-
*/
|
36
|
-
accept(property: string): boolean;
|
37
|
-
loadAnimationAsync(context: string, animation: IAnimation): Nullable<Promise<AnimationGroup>>;
|
38
|
-
/**
|
39
|
-
* @internal Loads a glTF animation channel.
|
28
|
+
* Loads a glTF animation channel.
|
40
29
|
* @param context The context when loading the asset
|
41
30
|
* @param animationContext The context of the animation when loading the asset
|
42
31
|
* @param animation The glTF animation property
|
43
32
|
* @param channel The glTF animation channel property
|
44
|
-
* @param
|
45
|
-
* @returns A void promise when the
|
33
|
+
* @param onLoad Called for each animation loaded
|
34
|
+
* @returns A void promise that resolves when the load is complete or null if not handled
|
46
35
|
*/
|
47
|
-
_loadAnimationChannelAsync(context: string, animationContext: string, animation: IAnimation, channel: IAnimationChannel,
|
48
|
-
private _loadAnimationSamplerAsync;
|
36
|
+
_loadAnimationChannelAsync(context: string, animationContext: string, animation: IAnimation, channel: IAnimationChannel, onLoad: (babylonAnimatable: IAnimatable, babylonAnimation: Animation) => void): Nullable<Promise<void>>;
|
49
37
|
/**
|
50
|
-
*
|
51
|
-
*
|
52
|
-
*
|
53
|
-
|
54
|
-
* <animationPointer> := <sep><assetContainer><sep><assetIndex><sep><propertyPath>
|
55
|
-
* <assetContainer> := "nodes" | "materials" | "meshes" | "cameras" | "extensions"
|
38
|
+
* The pointer string is represented by a [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901).
|
39
|
+
* <animationPointer> := /<rootNode>/<assetIndex>/<propertyPath>
|
40
|
+
* <rootNode> := "nodes" | "materials" | "meshes" | "cameras" | "extensions"
|
56
41
|
* <assetIndex> := <digit> | <name>
|
57
42
|
* <propertyPath> := <extensionPath> | <standardPath>
|
58
|
-
* <extensionPath> := "extensions"
|
59
|
-
* <standardPath> := <name> | <name
|
60
|
-
* <sep>:= "/"
|
43
|
+
* <extensionPath> := "extensions"/<name>/<standardPath>
|
44
|
+
* <standardPath> := <name> | <name>/<standardPath>
|
61
45
|
* <name> := W+
|
62
46
|
* <digit> := D+
|
63
47
|
*
|
64
|
-
*
|
48
|
+
* Examples:
|
65
49
|
* - "/nodes/0/rotation"
|
66
50
|
* - "/materials/2/emissiveFactor"
|
67
51
|
* - "/materials/2/pbrMetallicRoughness/baseColorFactor"
|
68
52
|
* - "/materials/2/extensions/KHR_materials_emissive_strength/emissiveStrength"
|
69
|
-
* @param context
|
70
|
-
* @param pointer
|
71
|
-
* @returns
|
72
53
|
*/
|
73
54
|
private _parseAnimationPointer;
|
74
55
|
}
|
@@ -0,0 +1,133 @@
|
|
1
|
+
import { Animation } from "@babylonjs/core/Animations/animation.js";
|
2
|
+
import type { ICamera, IKHRLightsPunctual_Light, IMaterial } from "../glTFLoaderInterfaces";
|
3
|
+
import type { IAnimatable } from "@babylonjs/core/Animations/animatable.interface.js";
|
4
|
+
import { AnimationPropertyInfo } from "../glTFLoaderAnimation";
|
5
|
+
declare class CameraAnimationPropertyInfo extends AnimationPropertyInfo {
|
6
|
+
buildAnimations(target: ICamera, name: string, fps: number, keys: any[], callback: (babylonAnimatable: IAnimatable, babylonAnimation: Animation) => void): void;
|
7
|
+
}
|
8
|
+
declare class MaterialAnimationPropertyInfo extends AnimationPropertyInfo {
|
9
|
+
buildAnimations(target: IMaterial, name: string, fps: number, keys: any[], callback: (babylonAnimatable: IAnimatable, babylonAnimation: Animation) => void): void;
|
10
|
+
}
|
11
|
+
declare class LightAnimationPropertyInfo extends AnimationPropertyInfo {
|
12
|
+
buildAnimations(target: IKHRLightsPunctual_Light, name: string, fps: number, keys: any[], callback: (babylonAnimatable: IAnimatable, babylonAnimation: Animation) => void): void;
|
13
|
+
}
|
14
|
+
export declare const animationPointerTree: {
|
15
|
+
nodes: {
|
16
|
+
__array__: {
|
17
|
+
translation: import("../glTFLoaderAnimation").TransformNodeAnimationPropertyInfo[];
|
18
|
+
rotation: import("../glTFLoaderAnimation").TransformNodeAnimationPropertyInfo[];
|
19
|
+
scale: import("../glTFLoaderAnimation").TransformNodeAnimationPropertyInfo[];
|
20
|
+
weights: import("../glTFLoaderAnimation").WeightAnimationPropertyInfo[];
|
21
|
+
__target__: boolean;
|
22
|
+
};
|
23
|
+
};
|
24
|
+
materials: {
|
25
|
+
__array__: {
|
26
|
+
__target__: boolean;
|
27
|
+
pbrMetallicRoughness: {
|
28
|
+
baseColorFactor: MaterialAnimationPropertyInfo[];
|
29
|
+
metallicFactor: MaterialAnimationPropertyInfo[];
|
30
|
+
roughnessFactor: MaterialAnimationPropertyInfo[];
|
31
|
+
baseColorTexture: {
|
32
|
+
extensions: {
|
33
|
+
KHR_texture_transform: {
|
34
|
+
scale: MaterialAnimationPropertyInfo[];
|
35
|
+
offset: MaterialAnimationPropertyInfo[];
|
36
|
+
rotation: MaterialAnimationPropertyInfo[];
|
37
|
+
};
|
38
|
+
};
|
39
|
+
};
|
40
|
+
};
|
41
|
+
emissiveFactor: MaterialAnimationPropertyInfo[];
|
42
|
+
normalTexture: {
|
43
|
+
scale: MaterialAnimationPropertyInfo[];
|
44
|
+
};
|
45
|
+
occlusionTexture: {
|
46
|
+
strength: MaterialAnimationPropertyInfo[];
|
47
|
+
extensions: {
|
48
|
+
KHR_texture_transform: {
|
49
|
+
scale: MaterialAnimationPropertyInfo[];
|
50
|
+
offset: MaterialAnimationPropertyInfo[];
|
51
|
+
rotation: MaterialAnimationPropertyInfo[];
|
52
|
+
};
|
53
|
+
};
|
54
|
+
};
|
55
|
+
emissiveTexture: {
|
56
|
+
extensions: {
|
57
|
+
KHR_texture_transform: {
|
58
|
+
scale: MaterialAnimationPropertyInfo[];
|
59
|
+
offset: MaterialAnimationPropertyInfo[];
|
60
|
+
rotation: MaterialAnimationPropertyInfo[];
|
61
|
+
};
|
62
|
+
};
|
63
|
+
};
|
64
|
+
extensions: {
|
65
|
+
KHR_materials_ior: {
|
66
|
+
ior: MaterialAnimationPropertyInfo[];
|
67
|
+
};
|
68
|
+
KHR_materials_clearcoat: {
|
69
|
+
clearcoatFactor: MaterialAnimationPropertyInfo[];
|
70
|
+
clearcoatRoughnessFactor: MaterialAnimationPropertyInfo[];
|
71
|
+
};
|
72
|
+
KHR_materials_sheen: {
|
73
|
+
sheenColorFactor: MaterialAnimationPropertyInfo[];
|
74
|
+
sheenRoughnessFactor: MaterialAnimationPropertyInfo[];
|
75
|
+
};
|
76
|
+
KHR_materials_specular: {
|
77
|
+
specularFactor: MaterialAnimationPropertyInfo[];
|
78
|
+
specularColorFactor: MaterialAnimationPropertyInfo[];
|
79
|
+
};
|
80
|
+
KHR_materials_emissive_strength: {
|
81
|
+
emissiveStrength: MaterialAnimationPropertyInfo[];
|
82
|
+
};
|
83
|
+
KHR_materials_transmission: {
|
84
|
+
transmissionFactor: MaterialAnimationPropertyInfo[];
|
85
|
+
};
|
86
|
+
KHR_materials_volume: {
|
87
|
+
attenuationColor: MaterialAnimationPropertyInfo[];
|
88
|
+
attenuationDistance: MaterialAnimationPropertyInfo[];
|
89
|
+
thicknessFactor: MaterialAnimationPropertyInfo[];
|
90
|
+
};
|
91
|
+
KHR_materials_iridescence: {
|
92
|
+
iridescenceFactor: MaterialAnimationPropertyInfo[];
|
93
|
+
iridescenceIor: MaterialAnimationPropertyInfo[];
|
94
|
+
iridescenceThicknessMinimum: MaterialAnimationPropertyInfo[];
|
95
|
+
iridescenceThicknessMaximum: MaterialAnimationPropertyInfo[];
|
96
|
+
};
|
97
|
+
};
|
98
|
+
};
|
99
|
+
};
|
100
|
+
cameras: {
|
101
|
+
__array__: {
|
102
|
+
__target__: boolean;
|
103
|
+
orthographic: {
|
104
|
+
xmag: CameraAnimationPropertyInfo[];
|
105
|
+
ymag: CameraAnimationPropertyInfo[];
|
106
|
+
zfar: CameraAnimationPropertyInfo[];
|
107
|
+
znear: CameraAnimationPropertyInfo[];
|
108
|
+
};
|
109
|
+
perspective: {
|
110
|
+
yfov: CameraAnimationPropertyInfo[];
|
111
|
+
zfar: CameraAnimationPropertyInfo[];
|
112
|
+
znear: CameraAnimationPropertyInfo[];
|
113
|
+
};
|
114
|
+
};
|
115
|
+
};
|
116
|
+
extensions: {
|
117
|
+
KHR_lights_punctual: {
|
118
|
+
lights: {
|
119
|
+
__array__: {
|
120
|
+
__target__: boolean;
|
121
|
+
color: LightAnimationPropertyInfo[];
|
122
|
+
intensity: LightAnimationPropertyInfo[];
|
123
|
+
range: LightAnimationPropertyInfo[];
|
124
|
+
spot: {
|
125
|
+
innerConeAngle: LightAnimationPropertyInfo[];
|
126
|
+
outerConeAngle: LightAnimationPropertyInfo[];
|
127
|
+
};
|
128
|
+
};
|
129
|
+
};
|
130
|
+
};
|
131
|
+
};
|
132
|
+
};
|
133
|
+
export {};
|
@@ -0,0 +1,169 @@
|
|
1
|
+
import { Animation } from "@babylonjs/core/Animations/animation.js";
|
2
|
+
import { AnimationPropertyInfo, nodeAnimationData } from "../glTFLoaderAnimation.js";
|
3
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color.js";
|
4
|
+
function getColor3(_target, source, offset, scale) {
|
5
|
+
return Color3.FromArray(source, offset).scale(scale);
|
6
|
+
}
|
7
|
+
function getAlpha(_target, source, offset, scale) {
|
8
|
+
return source[offset + 3] * scale;
|
9
|
+
}
|
10
|
+
function getFloat(_target, source, offset, scale) {
|
11
|
+
return source[offset] * scale;
|
12
|
+
}
|
13
|
+
function getMinusFloat(_target, source, offset, scale) {
|
14
|
+
return -source[offset] * scale;
|
15
|
+
}
|
16
|
+
function getNextFloat(_target, source, offset, scale) {
|
17
|
+
return source[offset + 1] * scale;
|
18
|
+
}
|
19
|
+
function getFloatBy2(_target, source, offset, scale) {
|
20
|
+
return source[offset] * scale * 2;
|
21
|
+
}
|
22
|
+
function getTextureTransformTree(textureName) {
|
23
|
+
return {
|
24
|
+
scale: [
|
25
|
+
new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, `${textureName}.uScale`, getFloat, () => 2),
|
26
|
+
new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, `${textureName}.vScale`, getNextFloat, () => 2),
|
27
|
+
],
|
28
|
+
offset: [
|
29
|
+
new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, `${textureName}.uOffset`, getFloat, () => 2),
|
30
|
+
new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, `${textureName}.vOffset`, getNextFloat, () => 2),
|
31
|
+
],
|
32
|
+
rotation: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, `${textureName}.wAng`, getMinusFloat, () => 1)],
|
33
|
+
};
|
34
|
+
}
|
35
|
+
class CameraAnimationPropertyInfo extends AnimationPropertyInfo {
|
36
|
+
buildAnimations(target, name, fps, keys, callback) {
|
37
|
+
callback(target._babylonCamera, this._buildAnimation(name, fps, keys));
|
38
|
+
}
|
39
|
+
}
|
40
|
+
class MaterialAnimationPropertyInfo extends AnimationPropertyInfo {
|
41
|
+
buildAnimations(target, name, fps, keys, callback) {
|
42
|
+
for (const fillMode in target._data) {
|
43
|
+
callback(target._data[fillMode].babylonMaterial, this._buildAnimation(name, fps, keys));
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
class LightAnimationPropertyInfo extends AnimationPropertyInfo {
|
48
|
+
buildAnimations(target, name, fps, keys, callback) {
|
49
|
+
callback(target._babylonLight, this._buildAnimation(name, fps, keys));
|
50
|
+
}
|
51
|
+
}
|
52
|
+
const nodesTree = {
|
53
|
+
__array__: {
|
54
|
+
__target__: true,
|
55
|
+
...nodeAnimationData,
|
56
|
+
},
|
57
|
+
};
|
58
|
+
const camerasTree = {
|
59
|
+
__array__: {
|
60
|
+
__target__: true,
|
61
|
+
orthographic: {
|
62
|
+
xmag: [
|
63
|
+
new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "orthoLeft", getMinusFloat, () => 1),
|
64
|
+
new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "orthoRight", getNextFloat, () => 1),
|
65
|
+
],
|
66
|
+
ymag: [
|
67
|
+
new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "orthoBottom", getMinusFloat, () => 1),
|
68
|
+
new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "orthoTop", getNextFloat, () => 1),
|
69
|
+
],
|
70
|
+
zfar: [new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "maxZ", getFloat, () => 1)],
|
71
|
+
znear: [new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "minZ", getFloat, () => 1)],
|
72
|
+
},
|
73
|
+
perspective: {
|
74
|
+
yfov: [new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "fov", getFloat, () => 1)],
|
75
|
+
zfar: [new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "maxZ", getFloat, () => 1)],
|
76
|
+
znear: [new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "minZ", getFloat, () => 1)],
|
77
|
+
},
|
78
|
+
},
|
79
|
+
};
|
80
|
+
const materialsTree = {
|
81
|
+
__array__: {
|
82
|
+
__target__: true,
|
83
|
+
pbrMetallicRoughness: {
|
84
|
+
baseColorFactor: [
|
85
|
+
new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, "albedoColor", getColor3, () => 4),
|
86
|
+
new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "alpha", getAlpha, () => 4),
|
87
|
+
],
|
88
|
+
metallicFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "metallic", getFloat, () => 1)],
|
89
|
+
roughnessFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "roughness", getFloat, () => 1)],
|
90
|
+
baseColorTexture: {
|
91
|
+
extensions: {
|
92
|
+
KHR_texture_transform: getTextureTransformTree("albedoTexture"),
|
93
|
+
},
|
94
|
+
},
|
95
|
+
},
|
96
|
+
emissiveFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, "emissiveColor", getColor3, () => 3)],
|
97
|
+
normalTexture: {
|
98
|
+
scale: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "bumpTexture.level", getFloat, () => 1)],
|
99
|
+
},
|
100
|
+
occlusionTexture: {
|
101
|
+
strength: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "ambientTextureStrength", getFloat, () => 1)],
|
102
|
+
extensions: {
|
103
|
+
KHR_texture_transform: getTextureTransformTree("ambientTexture"),
|
104
|
+
},
|
105
|
+
},
|
106
|
+
emissiveTexture: {
|
107
|
+
extensions: {
|
108
|
+
KHR_texture_transform: getTextureTransformTree("emissiveTexture"),
|
109
|
+
},
|
110
|
+
},
|
111
|
+
extensions: {
|
112
|
+
KHR_materials_ior: {
|
113
|
+
ior: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "indexOfRefraction", getFloat, () => 1)],
|
114
|
+
},
|
115
|
+
KHR_materials_clearcoat: {
|
116
|
+
clearcoatFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "clearCoat.intensity", getFloat, () => 1)],
|
117
|
+
clearcoatRoughnessFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "clearCoat.roughness", getFloat, () => 1)],
|
118
|
+
},
|
119
|
+
KHR_materials_sheen: {
|
120
|
+
sheenColorFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, "sheen.color", getColor3, () => 3)],
|
121
|
+
sheenRoughnessFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "sheen.roughness", getFloat, () => 1)],
|
122
|
+
},
|
123
|
+
KHR_materials_specular: {
|
124
|
+
specularFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "metallicF0Factor", getFloat, () => 1)],
|
125
|
+
specularColorFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, "metallicReflectanceColor", getColor3, () => 3)],
|
126
|
+
},
|
127
|
+
KHR_materials_emissive_strength: {
|
128
|
+
emissiveStrength: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "emissiveIntensity", getFloat, () => 1)],
|
129
|
+
},
|
130
|
+
KHR_materials_transmission: {
|
131
|
+
transmissionFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "subSurface.refractionIntensity", getFloat, () => 1)],
|
132
|
+
},
|
133
|
+
KHR_materials_volume: {
|
134
|
+
attenuationColor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, "subSurface.tintColor", getColor3, () => 3)],
|
135
|
+
attenuationDistance: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "subSurface.tintColorAtDistance", getFloat, () => 1)],
|
136
|
+
thicknessFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "subSurface.maximumThickness", getFloat, () => 1)],
|
137
|
+
},
|
138
|
+
KHR_materials_iridescence: {
|
139
|
+
iridescenceFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "iridescence.intensity", getFloat, () => 1)],
|
140
|
+
iridescenceIor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "iridescence.indexOfRefraction", getFloat, () => 1)],
|
141
|
+
iridescenceThicknessMinimum: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "iridescence.minimumThickness", getFloat, () => 1)],
|
142
|
+
iridescenceThicknessMaximum: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "iridescence.maximumThickness", getFloat, () => 1)],
|
143
|
+
},
|
144
|
+
},
|
145
|
+
},
|
146
|
+
};
|
147
|
+
const extensionsTree = {
|
148
|
+
KHR_lights_punctual: {
|
149
|
+
lights: {
|
150
|
+
__array__: {
|
151
|
+
__target__: true,
|
152
|
+
color: [new LightAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, "diffuse", getColor3, () => 3)],
|
153
|
+
intensity: [new LightAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "intensity", getFloat, () => 1)],
|
154
|
+
range: [new LightAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "range", getFloat, () => 1)],
|
155
|
+
spot: {
|
156
|
+
innerConeAngle: [new LightAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "innerAngle", getFloatBy2, () => 1)],
|
157
|
+
outerConeAngle: [new LightAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, "angle", getFloatBy2, () => 1)],
|
158
|
+
},
|
159
|
+
},
|
160
|
+
},
|
161
|
+
},
|
162
|
+
};
|
163
|
+
export const animationPointerTree = {
|
164
|
+
nodes: nodesTree,
|
165
|
+
materials: materialsTree,
|
166
|
+
cameras: camerasTree,
|
167
|
+
extensions: extensionsTree,
|
168
|
+
};
|
169
|
+
//# sourceMappingURL=KHR_animation_pointer.data.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"KHR_animation_pointer.data.js","sourceRoot":"","sources":["../../../../../../../lts/loaders/generated/glTF/2.0/Extensions/KHR_animation_pointer.data.ts"],"names":[],"mappings":"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","sourcesContent":["import { Animation } from \"core/Animations/animation\";\r\nimport type { ICamera, IKHRLightsPunctual_Light, IMaterial } from \"../glTFLoaderInterfaces\";\r\nimport type { IAnimatable } from \"core/Animations/animatable.interface\";\r\nimport { AnimationPropertyInfo, nodeAnimationData } from \"../glTFLoaderAnimation\";\r\nimport { Color3 } from \"core/Maths/math.color\";\r\n\r\nfunction getColor3(_target: any, source: Float32Array, offset: number, scale: number): Color3 {\r\n return Color3.FromArray(source, offset).scale(scale);\r\n}\r\n\r\nfunction getAlpha(_target: any, source: Float32Array, offset: number, scale: number): number {\r\n return source[offset + 3] * scale;\r\n}\r\n\r\nfunction getFloat(_target: any, source: Float32Array, offset: number, scale: number): number {\r\n return source[offset] * scale;\r\n}\r\n\r\nfunction getMinusFloat(_target: any, source: Float32Array, offset: number, scale: number): number {\r\n return -source[offset] * scale;\r\n}\r\n\r\nfunction getNextFloat(_target: any, source: Float32Array, offset: number, scale: number): number {\r\n return source[offset + 1] * scale;\r\n}\r\n\r\nfunction getFloatBy2(_target: any, source: Float32Array, offset: number, scale: number): number {\r\n return source[offset] * scale * 2;\r\n}\r\n\r\nfunction getTextureTransformTree(textureName: string) {\r\n return {\r\n scale: [\r\n new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, `${textureName}.uScale`, getFloat, () => 2),\r\n new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, `${textureName}.vScale`, getNextFloat, () => 2),\r\n ],\r\n offset: [\r\n new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, `${textureName}.uOffset`, getFloat, () => 2),\r\n new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, `${textureName}.vOffset`, getNextFloat, () => 2),\r\n ],\r\n rotation: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, `${textureName}.wAng`, getMinusFloat, () => 1)],\r\n };\r\n}\r\n\r\nclass CameraAnimationPropertyInfo extends AnimationPropertyInfo {\r\n public buildAnimations(target: ICamera, name: string, fps: number, keys: any[], callback: (babylonAnimatable: IAnimatable, babylonAnimation: Animation) => void): void {\r\n callback(target._babylonCamera!, this._buildAnimation(name, fps, keys));\r\n }\r\n}\r\n\r\nclass MaterialAnimationPropertyInfo extends AnimationPropertyInfo {\r\n public buildAnimations(target: IMaterial, name: string, fps: number, keys: any[], callback: (babylonAnimatable: IAnimatable, babylonAnimation: Animation) => void): void {\r\n for (const fillMode in target._data!) {\r\n callback(target._data![fillMode].babylonMaterial, this._buildAnimation(name, fps, keys));\r\n }\r\n }\r\n}\r\n\r\nclass LightAnimationPropertyInfo extends AnimationPropertyInfo {\r\n public buildAnimations(\r\n target: IKHRLightsPunctual_Light,\r\n name: string,\r\n fps: number,\r\n keys: any[],\r\n callback: (babylonAnimatable: IAnimatable, babylonAnimation: Animation) => void\r\n ): void {\r\n callback(target._babylonLight!, this._buildAnimation(name, fps, keys));\r\n }\r\n}\r\n\r\nconst nodesTree = {\r\n __array__: {\r\n __target__: true,\r\n ...nodeAnimationData,\r\n },\r\n};\r\n\r\nconst camerasTree = {\r\n __array__: {\r\n __target__: true,\r\n orthographic: {\r\n xmag: [\r\n new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"orthoLeft\", getMinusFloat, () => 1),\r\n new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"orthoRight\", getNextFloat, () => 1),\r\n ],\r\n ymag: [\r\n new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"orthoBottom\", getMinusFloat, () => 1),\r\n new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"orthoTop\", getNextFloat, () => 1),\r\n ],\r\n zfar: [new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"maxZ\", getFloat, () => 1)],\r\n znear: [new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"minZ\", getFloat, () => 1)],\r\n },\r\n perspective: {\r\n yfov: [new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"fov\", getFloat, () => 1)],\r\n zfar: [new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"maxZ\", getFloat, () => 1)],\r\n znear: [new CameraAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"minZ\", getFloat, () => 1)],\r\n },\r\n },\r\n};\r\n\r\nconst materialsTree = {\r\n __array__: {\r\n __target__: true,\r\n pbrMetallicRoughness: {\r\n baseColorFactor: [\r\n new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, \"albedoColor\", getColor3, () => 4),\r\n new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"alpha\", getAlpha, () => 4),\r\n ],\r\n metallicFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"metallic\", getFloat, () => 1)],\r\n roughnessFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"roughness\", getFloat, () => 1)],\r\n baseColorTexture: {\r\n extensions: {\r\n KHR_texture_transform: getTextureTransformTree(\"albedoTexture\"),\r\n },\r\n },\r\n },\r\n emissiveFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, \"emissiveColor\", getColor3, () => 3)],\r\n normalTexture: {\r\n scale: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"bumpTexture.level\", getFloat, () => 1)],\r\n },\r\n occlusionTexture: {\r\n strength: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"ambientTextureStrength\", getFloat, () => 1)],\r\n extensions: {\r\n KHR_texture_transform: getTextureTransformTree(\"ambientTexture\"),\r\n },\r\n },\r\n emissiveTexture: {\r\n extensions: {\r\n KHR_texture_transform: getTextureTransformTree(\"emissiveTexture\"),\r\n },\r\n },\r\n extensions: {\r\n KHR_materials_ior: {\r\n ior: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"indexOfRefraction\", getFloat, () => 1)],\r\n },\r\n KHR_materials_clearcoat: {\r\n clearcoatFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"clearCoat.intensity\", getFloat, () => 1)],\r\n clearcoatRoughnessFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"clearCoat.roughness\", getFloat, () => 1)],\r\n },\r\n KHR_materials_sheen: {\r\n sheenColorFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, \"sheen.color\", getColor3, () => 3)],\r\n sheenRoughnessFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"sheen.roughness\", getFloat, () => 1)],\r\n },\r\n KHR_materials_specular: {\r\n specularFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"metallicF0Factor\", getFloat, () => 1)],\r\n specularColorFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, \"metallicReflectanceColor\", getColor3, () => 3)],\r\n },\r\n KHR_materials_emissive_strength: {\r\n emissiveStrength: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"emissiveIntensity\", getFloat, () => 1)],\r\n },\r\n KHR_materials_transmission: {\r\n transmissionFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"subSurface.refractionIntensity\", getFloat, () => 1)],\r\n },\r\n KHR_materials_volume: {\r\n attenuationColor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, \"subSurface.tintColor\", getColor3, () => 3)],\r\n attenuationDistance: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"subSurface.tintColorAtDistance\", getFloat, () => 1)],\r\n thicknessFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"subSurface.maximumThickness\", getFloat, () => 1)],\r\n },\r\n KHR_materials_iridescence: {\r\n iridescenceFactor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"iridescence.intensity\", getFloat, () => 1)],\r\n iridescenceIor: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"iridescence.indexOfRefraction\", getFloat, () => 1)],\r\n iridescenceThicknessMinimum: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"iridescence.minimumThickness\", getFloat, () => 1)],\r\n iridescenceThicknessMaximum: [new MaterialAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"iridescence.maximumThickness\", getFloat, () => 1)],\r\n },\r\n },\r\n },\r\n};\r\n\r\nconst extensionsTree = {\r\n KHR_lights_punctual: {\r\n lights: {\r\n __array__: {\r\n __target__: true,\r\n color: [new LightAnimationPropertyInfo(Animation.ANIMATIONTYPE_COLOR3, \"diffuse\", getColor3, () => 3)],\r\n intensity: [new LightAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"intensity\", getFloat, () => 1)],\r\n range: [new LightAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"range\", getFloat, () => 1)],\r\n spot: {\r\n innerConeAngle: [new LightAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"innerAngle\", getFloatBy2, () => 1)],\r\n outerConeAngle: [new LightAnimationPropertyInfo(Animation.ANIMATIONTYPE_FLOAT, \"angle\", getFloatBy2, () => 1)],\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport const animationPointerTree = {\r\n nodes: nodesTree,\r\n materials: materialsTree,\r\n cameras: camerasTree,\r\n extensions: extensionsTree,\r\n};\r\n"]}
|