@onerjs/loaders 8.23.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/OBJ/index.d.ts +4 -0
- package/OBJ/index.js +5 -0
- package/OBJ/index.js.map +1 -0
- package/OBJ/mtlFileLoader.d.ts +41 -0
- package/OBJ/mtlFileLoader.js +231 -0
- package/OBJ/mtlFileLoader.js.map +1 -0
- package/OBJ/objFileLoader.d.ts +136 -0
- package/OBJ/objFileLoader.js +318 -0
- package/OBJ/objFileLoader.js.map +1 -0
- package/OBJ/objFileLoader.metadata.d.ts +4 -0
- package/OBJ/objFileLoader.metadata.js +5 -0
- package/OBJ/objFileLoader.metadata.js.map +1 -0
- package/OBJ/objLoadingOptions.d.ts +47 -0
- package/OBJ/objLoadingOptions.js +2 -0
- package/OBJ/objLoadingOptions.js.map +1 -0
- package/OBJ/solidParser.d.ts +174 -0
- package/OBJ/solidParser.js +862 -0
- package/OBJ/solidParser.js.map +1 -0
- package/SPLAT/index.d.ts +2 -0
- package/SPLAT/index.js +4 -0
- package/SPLAT/index.js.map +1 -0
- package/SPLAT/splatFileLoader.d.ts +88 -0
- package/SPLAT/splatFileLoader.js +562 -0
- package/SPLAT/splatFileLoader.js.map +1 -0
- package/SPLAT/splatFileLoader.metadata.d.ts +14 -0
- package/SPLAT/splatFileLoader.metadata.js +12 -0
- package/SPLAT/splatFileLoader.metadata.js.map +1 -0
- package/SPLAT/splatLoadingOptions.d.ts +13 -0
- package/SPLAT/splatLoadingOptions.js +2 -0
- package/SPLAT/splatLoadingOptions.js.map +1 -0
- package/STL/index.d.ts +1 -0
- package/STL/index.js +2 -0
- package/STL/index.js.map +1 -0
- package/STL/stlFileLoader.d.ts +78 -0
- package/STL/stlFileLoader.js +239 -0
- package/STL/stlFileLoader.js.map +1 -0
- package/STL/stlFileLoader.metadata.d.ts +8 -0
- package/STL/stlFileLoader.metadata.js +8 -0
- package/STL/stlFileLoader.metadata.js.map +1 -0
- package/bvh/bvhFileLoader.d.ts +69 -0
- package/bvh/bvhFileLoader.js +133 -0
- package/bvh/bvhFileLoader.js.map +1 -0
- package/bvh/bvhFileLoader.metadata.d.ts +8 -0
- package/bvh/bvhFileLoader.metadata.js +8 -0
- package/bvh/bvhFileLoader.metadata.js.map +1 -0
- package/bvh/bvhLoader.d.ts +14 -0
- package/bvh/bvhLoader.js +329 -0
- package/bvh/bvhLoader.js.map +1 -0
- package/bvh/bvhLoadingOptions.d.ts +9 -0
- package/bvh/bvhLoadingOptions.js +2 -0
- package/bvh/bvhLoadingOptions.js.map +1 -0
- package/bvh/index.d.ts +2 -0
- package/bvh/index.js +4 -0
- package/bvh/index.js.map +1 -0
- package/bvh/license.md +21 -0
- package/dynamic.d.ts +5 -0
- package/dynamic.js +57 -0
- package/dynamic.js.map +1 -0
- package/glTF/1.0/glTFBinaryExtension.d.ts +16 -0
- package/glTF/1.0/glTFBinaryExtension.js +65 -0
- package/glTF/1.0/glTFBinaryExtension.js.map +1 -0
- package/glTF/1.0/glTFLoader.d.ts +144 -0
- package/glTF/1.0/glTFLoader.js +1841 -0
- package/glTF/1.0/glTFLoader.js.map +1 -0
- package/glTF/1.0/glTFLoaderInterfaces.d.ts +412 -0
- package/glTF/1.0/glTFLoaderInterfaces.js +96 -0
- package/glTF/1.0/glTFLoaderInterfaces.js.map +1 -0
- package/glTF/1.0/glTFLoaderUtils.d.ts +71 -0
- package/glTF/1.0/glTFLoaderUtils.js +255 -0
- package/glTF/1.0/glTFLoaderUtils.js.map +1 -0
- package/glTF/1.0/glTFMaterialsCommonExtension.d.ts +13 -0
- package/glTF/1.0/glTFMaterialsCommonExtension.js +131 -0
- package/glTF/1.0/glTFMaterialsCommonExtension.js.map +1 -0
- package/glTF/1.0/index.d.ts +5 -0
- package/glTF/1.0/index.js +6 -0
- package/glTF/1.0/index.js.map +1 -0
- package/glTF/2.0/Extensions/EXT_lights_ies.d.ts +41 -0
- package/glTF/2.0/Extensions/EXT_lights_ies.js +84 -0
- package/glTF/2.0/Extensions/EXT_lights_ies.js.map +1 -0
- package/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +48 -0
- package/glTF/2.0/Extensions/EXT_lights_image_based.js +116 -0
- package/glTF/2.0/Extensions/EXT_lights_image_based.js.map +1 -0
- package/glTF/2.0/Extensions/EXT_materials_diffuse_roughness.d.ts +43 -0
- package/glTF/2.0/Extensions/EXT_materials_diffuse_roughness.js +69 -0
- package/glTF/2.0/Extensions/EXT_materials_diffuse_roughness.js.map +1 -0
- package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +39 -0
- package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +82 -0
- package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js.map +1 -0
- package/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +39 -0
- package/glTF/2.0/Extensions/EXT_meshopt_compression.js +51 -0
- package/glTF/2.0/Extensions/EXT_meshopt_compression.js.map +1 -0
- package/glTF/2.0/Extensions/EXT_texture_avif.d.ts +34 -0
- package/glTF/2.0/Extensions/EXT_texture_avif.js +39 -0
- package/glTF/2.0/Extensions/EXT_texture_avif.js.map +1 -0
- package/glTF/2.0/Extensions/EXT_texture_webp.d.ts +33 -0
- package/glTF/2.0/Extensions/EXT_texture_webp.js +38 -0
- package/glTF/2.0/Extensions/EXT_texture_webp.js.map +1 -0
- package/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +48 -0
- package/glTF/2.0/Extensions/ExtrasAsMetadata.js +63 -0
- package/glTF/2.0/Extensions/ExtrasAsMetadata.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +47 -0
- package/glTF/2.0/Extensions/KHR_animation_pointer.data.d.ts +1 -0
- package/glTF/2.0/Extensions/KHR_animation_pointer.data.js +239 -0
- package/glTF/2.0/Extensions/KHR_animation_pointer.data.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_animation_pointer.js +78 -0
- package/glTF/2.0/Extensions/KHR_animation_pointer.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +47 -0
- package/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +93 -0
- package/glTF/2.0/Extensions/KHR_draco_mesh_compression.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.d.ts +352 -0
- package/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js +1700 -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 +70 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js +450 -0
- package/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_interactivity.d.ts +38 -0
- package/glTF/2.0/Extensions/KHR_interactivity.js +151 -0
- package/glTF/2.0/Extensions/KHR_interactivity.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +41 -0
- package/glTF/2.0/Extensions/KHR_lights_punctual.js +92 -0
- package/glTF/2.0/Extensions/KHR_lights_punctual.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_anisotropy.d.ts +42 -0
- package/glTF/2.0/Extensions/KHR_materials_anisotropy.js +61 -0
- package/glTF/2.0/Extensions/KHR_materials_anisotropy.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +43 -0
- package/glTF/2.0/Extensions/KHR_materials_clearcoat.js +94 -0
- package/glTF/2.0/Extensions/KHR_materials_clearcoat.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.d.ts +43 -0
- package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js +95 -0
- package/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_dispersion.d.ts +43 -0
- package/glTF/2.0/Extensions/KHR_materials_dispersion.js +60 -0
- package/glTF/2.0/Extensions/KHR_materials_dispersion.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +42 -0
- package/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +52 -0
- package/glTF/2.0/Extensions/KHR_materials_emissive_strength.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_ior.d.ts +46 -0
- package/glTF/2.0/Extensions/KHR_materials_ior.js +62 -0
- package/glTF/2.0/Extensions/KHR_materials_ior.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_iridescence.d.ts +42 -0
- package/glTF/2.0/Extensions/KHR_materials_iridescence.js +71 -0
- package/glTF/2.0/Extensions/KHR_materials_iridescence.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +42 -0
- package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +81 -0
- package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +43 -0
- package/glTF/2.0/Extensions/KHR_materials_sheen.js +85 -0
- package/glTF/2.0/Extensions/KHR_materials_sheen.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_specular.d.ts +42 -0
- package/glTF/2.0/Extensions/KHR_materials_specular.js +85 -0
- package/glTF/2.0/Extensions/KHR_materials_specular.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +42 -0
- package/glTF/2.0/Extensions/KHR_materials_transmission.js +306 -0
- package/glTF/2.0/Extensions/KHR_materials_transmission.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +42 -0
- package/glTF/2.0/Extensions/KHR_materials_unlit.js +73 -0
- package/glTF/2.0/Extensions/KHR_materials_unlit.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_variants.d.ts +112 -0
- package/glTF/2.0/Extensions/KHR_materials_variants.js +263 -0
- package/glTF/2.0/Extensions/KHR_materials_variants.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_materials_volume.d.ts +43 -0
- package/glTF/2.0/Extensions/KHR_materials_volume.js +86 -0
- package/glTF/2.0/Extensions/KHR_materials_volume.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +29 -0
- package/glTF/2.0/Extensions/KHR_mesh_quantization.js +23 -0
- package/glTF/2.0/Extensions/KHR_mesh_quantization.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_node_hoverability.d.ts +31 -0
- package/glTF/2.0/Extensions/KHR_node_hoverability.js +190 -0
- package/glTF/2.0/Extensions/KHR_node_hoverability.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_node_selectability.d.ts +30 -0
- package/glTF/2.0/Extensions/KHR_node_selectability.js +124 -0
- package/glTF/2.0/Extensions/KHR_node_selectability.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_node_visibility.d.ts +30 -0
- package/glTF/2.0/Extensions/KHR_node_visibility.js +69 -0
- package/glTF/2.0/Extensions/KHR_node_visibility.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +33 -0
- package/glTF/2.0/Extensions/KHR_texture_basisu.js +38 -0
- package/glTF/2.0/Extensions/KHR_texture_basisu.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_texture_transform.d.ts +37 -0
- package/glTF/2.0/Extensions/KHR_texture_transform.js +59 -0
- package/glTF/2.0/Extensions/KHR_texture_transform.js.map +1 -0
- package/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +39 -0
- package/glTF/2.0/Extensions/KHR_xmp_json_ld.js +48 -0
- package/glTF/2.0/Extensions/KHR_xmp_json_ld.js.map +1 -0
- package/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +56 -0
- package/glTF/2.0/Extensions/MSFT_audio_emitter.js +227 -0
- package/glTF/2.0/Extensions/MSFT_audio_emitter.js.map +1 -0
- package/glTF/2.0/Extensions/MSFT_lod.d.ts +104 -0
- package/glTF/2.0/Extensions/MSFT_lod.js +338 -0
- package/glTF/2.0/Extensions/MSFT_lod.js.map +1 -0
- package/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +27 -0
- package/glTF/2.0/Extensions/MSFT_minecraftMesh.js +41 -0
- package/glTF/2.0/Extensions/MSFT_minecraftMesh.js.map +1 -0
- package/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +27 -0
- package/glTF/2.0/Extensions/MSFT_sRGBFactors.js +42 -0
- package/glTF/2.0/Extensions/MSFT_sRGBFactors.js.map +1 -0
- package/glTF/2.0/Extensions/dynamic.d.ts +4 -0
- package/glTF/2.0/Extensions/dynamic.js +156 -0
- package/glTF/2.0/Extensions/dynamic.js.map +1 -0
- package/glTF/2.0/Extensions/gltfPathToObjectConverter.d.ts +45 -0
- package/glTF/2.0/Extensions/gltfPathToObjectConverter.js +101 -0
- package/glTF/2.0/Extensions/gltfPathToObjectConverter.js.map +1 -0
- package/glTF/2.0/Extensions/index.d.ts +39 -0
- package/glTF/2.0/Extensions/index.js +41 -0
- package/glTF/2.0/Extensions/index.js.map +1 -0
- package/glTF/2.0/Extensions/objectModelMapping.d.ts +289 -0
- package/glTF/2.0/Extensions/objectModelMapping.js +828 -0
- package/glTF/2.0/Extensions/objectModelMapping.js.map +1 -0
- package/glTF/2.0/glTFLoader.d.ts +429 -0
- package/glTF/2.0/glTFLoader.js +2408 -0
- package/glTF/2.0/glTFLoader.js.map +1 -0
- package/glTF/2.0/glTFLoaderAnimation.d.ts +42 -0
- package/glTF/2.0/glTFLoaderAnimation.js +80 -0
- package/glTF/2.0/glTFLoaderAnimation.js.map +1 -0
- package/glTF/2.0/glTFLoaderExtension.d.ts +165 -0
- package/glTF/2.0/glTFLoaderExtension.js +2 -0
- package/glTF/2.0/glTFLoaderExtension.js.map +1 -0
- package/glTF/2.0/glTFLoaderExtensionRegistry.d.ts +25 -0
- package/glTF/2.0/glTFLoaderExtensionRegistry.js +33 -0
- package/glTF/2.0/glTFLoaderExtensionRegistry.js.map +1 -0
- package/glTF/2.0/glTFLoaderInterfaces.d.ts +257 -0
- package/glTF/2.0/glTFLoaderInterfaces.js +2 -0
- package/glTF/2.0/glTFLoaderInterfaces.js.map +1 -0
- package/glTF/2.0/index.d.ts +6 -0
- package/glTF/2.0/index.js +8 -0
- package/glTF/2.0/index.js.map +1 -0
- package/glTF/glTFFileLoader.d.ts +516 -0
- package/glTF/glTFFileLoader.js +968 -0
- package/glTF/glTFFileLoader.js.map +1 -0
- package/glTF/glTFFileLoader.metadata.d.ts +15 -0
- package/glTF/glTFFileLoader.metadata.js +18 -0
- package/glTF/glTFFileLoader.metadata.js.map +1 -0
- package/glTF/glTFValidation.d.ts +29 -0
- package/glTF/glTFValidation.js +126 -0
- package/glTF/glTFValidation.js.map +1 -0
- package/glTF/index.d.ts +5 -0
- package/glTF/index.js +7 -0
- package/glTF/index.js.map +1 -0
- package/index.d.ts +5 -0
- package/index.js +7 -0
- package/index.js.map +1 -0
- package/legacy/legacy-bvhFileLoader.d.ts +1 -0
- package/legacy/legacy-bvhFileLoader.js +16 -0
- package/legacy/legacy-bvhFileLoader.js.map +1 -0
- package/legacy/legacy-glTF.d.ts +2 -0
- package/legacy/legacy-glTF.js +19 -0
- package/legacy/legacy-glTF.js.map +1 -0
- package/legacy/legacy-glTF1.d.ts +2 -0
- package/legacy/legacy-glTF1.js +16 -0
- package/legacy/legacy-glTF1.js.map +1 -0
- package/legacy/legacy-glTF1FileLoader.d.ts +2 -0
- package/legacy/legacy-glTF1FileLoader.js +4 -0
- package/legacy/legacy-glTF1FileLoader.js.map +1 -0
- package/legacy/legacy-glTF2.d.ts +2 -0
- package/legacy/legacy-glTF2.js +35 -0
- package/legacy/legacy-glTF2.js.map +1 -0
- package/legacy/legacy-glTF2FileLoader.d.ts +2 -0
- package/legacy/legacy-glTF2FileLoader.js +4 -0
- package/legacy/legacy-glTF2FileLoader.js.map +1 -0
- package/legacy/legacy-glTFFileLoader.d.ts +3 -0
- package/legacy/legacy-glTFFileLoader.js +5 -0
- package/legacy/legacy-glTFFileLoader.js.map +1 -0
- package/legacy/legacy-objFileLoader.d.ts +1 -0
- package/legacy/legacy-objFileLoader.js +16 -0
- package/legacy/legacy-objFileLoader.js.map +1 -0
- package/legacy/legacy-stlFileLoader.d.ts +1 -0
- package/legacy/legacy-stlFileLoader.js +16 -0
- package/legacy/legacy-stlFileLoader.js.map +1 -0
- package/legacy/legacy.d.ts +7 -0
- package/legacy/legacy.js +10 -0
- package/legacy/legacy.js.map +1 -0
- package/license.md +71 -0
- package/package.json +49 -0
- package/readme.md +23 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objectModelMapping.js","sourceRoot":"","sources":["../../../../../../dev/loaders/src/glTF/2.0/Extensions/objectModelMapping.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\n\nimport type { TransformNode } from \"core/Meshes/transformNode\";\nimport type { IAnimation, ICamera, IGLTF, IKHRLightsPunctual_Light, IMaterial, IMesh, INode } from \"../glTFLoaderInterfaces\";\nimport type { Vector3 } from \"core/Maths/math.vector\";\nimport { Matrix, Quaternion, Vector2 } from \"core/Maths/math.vector\";\nimport { Constants } from \"core/Engines/constants\";\nimport type { Color3 } from \"core/Maths/math.color\";\nimport { Color4 } from \"core/Maths/math.color\";\nimport type { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\nimport type { Light } from \"core/Lights/light\";\nimport type { Nullable } from \"core/types\";\nimport { SpotLight } from \"core/Lights/spotLight\";\nimport type { IEXTLightsImageBased_LightImageBased } from \"babylonjs-gltf2interface\";\nimport type { BaseTexture } from \"core/Materials/Textures/baseTexture\";\nimport type { IInterpolationPropertyInfo, IObjectAccessor } from \"core/FlowGraph/typeDefinitions\";\nimport { GLTFPathToObjectConverter } from \"./gltfPathToObjectConverter\";\nimport type { AnimationGroup } from \"core/Animations/animationGroup\";\nimport type { Mesh } from \"core/Meshes/mesh\";\n\nexport interface IGLTFObjectModelTree {\n cameras: IGLTFObjectModelTreeCamerasObject;\n nodes: IGLTFObjectModelTreeNodesObject;\n materials: IGLTFObjectModelTreeMaterialsObject;\n extensions: IGLTFObjectModelTreeExtensionsObject;\n animations: {\n length: IObjectAccessor<IAnimation[], AnimationGroup[], number>;\n __array__: {};\n };\n meshes: {\n length: IObjectAccessor<IMesh[], (Mesh | undefined)[], number>;\n __array__: {};\n };\n}\n\nexport interface IGLTFObjectModelTreeNodesObject<GLTFTargetType = INode, BabylonTargetType = TransformNode> {\n length: IObjectAccessor<GLTFTargetType[], BabylonTargetType[], number>;\n __array__: {\n __target__: boolean;\n translation: IObjectAccessor<GLTFTargetType, BabylonTargetType, Vector3>;\n rotation: IObjectAccessor<GLTFTargetType, BabylonTargetType, Quaternion>;\n scale: IObjectAccessor<GLTFTargetType, BabylonTargetType, Vector3>;\n matrix: IObjectAccessor<GLTFTargetType, BabylonTargetType, Matrix>;\n globalMatrix: IObjectAccessor<GLTFTargetType, BabylonTargetType, Matrix>;\n weights: {\n length: IObjectAccessor<GLTFTargetType, BabylonTargetType, number>;\n __array__: { __target__: boolean } & IObjectAccessor<GLTFTargetType, BabylonTargetType, number>;\n } & IObjectAccessor<GLTFTargetType, BabylonTargetType, number[]>;\n extensions: {\n EXT_lights_ies?: {\n multiplier: IObjectAccessor<INode, Light, number>;\n color: IObjectAccessor<INode, Light, Color3>;\n };\n };\n };\n}\n\nexport interface IGLTFObjectModelTreeCamerasObject {\n __array__: {\n __target__: boolean;\n orthographic: {\n xmag: IObjectAccessor<ICamera, ICamera, Vector2>;\n ymag: IObjectAccessor<ICamera, ICamera, Vector2>;\n zfar: IObjectAccessor<ICamera, ICamera, number>;\n znear: IObjectAccessor<ICamera, ICamera, number>;\n };\n perspective: {\n yfov: IObjectAccessor<ICamera, ICamera, number>;\n zfar: IObjectAccessor<ICamera, ICamera, number>;\n znear: IObjectAccessor<ICamera, ICamera, number>;\n aspectRatio: IObjectAccessor<ICamera, ICamera, Nullable<number>>;\n };\n };\n}\n\nexport interface IGLTFObjectModelTreeMaterialsObject {\n __array__: {\n __target__: boolean;\n pbrMetallicRoughness: {\n baseColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color4>;\n metallicFactor: IObjectAccessor<IMaterial, PBRMaterial, Nullable<number>>;\n roughnessFactor: IObjectAccessor<IMaterial, PBRMaterial, Nullable<number>>;\n baseColorTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n metallicRoughnessTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n };\n emissiveFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;\n normalTexture: {\n scale: IObjectAccessor<IMaterial, PBRMaterial, number>;\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n occlusionTexture: {\n strength: IObjectAccessor<IMaterial, PBRMaterial, number>;\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n emissiveTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n extensions: {\n KHR_materials_anisotropy: {\n anisotropyStrength: IObjectAccessor<IMaterial, PBRMaterial, number>;\n anisotropyRotation: IObjectAccessor<IMaterial, PBRMaterial, number>;\n anisotropyTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n };\n KHR_materials_clearcoat: {\n clearcoatFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;\n clearcoatRoughnessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;\n clearcoatTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n clearcoatNormalTexture: {\n scale: IObjectAccessor<IMaterial, PBRMaterial, number>;\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n clearcoatRoughnessTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n };\n KHR_materials_dispersion: {\n dispersion: IObjectAccessor<IMaterial, PBRMaterial, number>;\n };\n KHR_materials_emissive_strength: {\n emissiveStrength: IObjectAccessor<IMaterial, PBRMaterial, number>;\n };\n KHR_materials_ior: {\n ior: IObjectAccessor<IMaterial, PBRMaterial, number>;\n };\n KHR_materials_iridescence: {\n iridescenceFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;\n iridescenceIor: IObjectAccessor<IMaterial, PBRMaterial, number>;\n iridescenceThicknessMinimum: IObjectAccessor<IMaterial, PBRMaterial, number>;\n iridescenceThicknessMaximum: IObjectAccessor<IMaterial, PBRMaterial, number>;\n iridescenceTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n iridescenceThicknessTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n };\n KHR_materials_sheen: {\n sheenColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;\n sheenRoughnessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;\n sheenColorTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n sheenRoughnessTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n };\n KHR_materials_specular: {\n specularFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;\n specularColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;\n specularTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n specularColorTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n };\n KHR_materials_transmission: {\n transmissionFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;\n transmissionTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n };\n KHR_materials_diffuse_transmission: {\n diffuseTransmissionFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;\n diffuseTransmissionTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n diffuseTransmissionColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Nullable<Color3>>;\n diffuseTransmissionColorTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n };\n KHR_materials_volume: {\n thicknessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;\n attenuationColor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;\n attenuationDistance: IObjectAccessor<IMaterial, PBRMaterial, number>;\n thicknessTexture: {\n extensions: {\n KHR_texture_transform: ITextureDefinition;\n };\n };\n };\n };\n };\n}\n\ninterface ITextureDefinition {\n offset: IObjectAccessor<IMaterial, PBRMaterial, Vector2>;\n rotation: IObjectAccessor<IMaterial, PBRMaterial, number>;\n scale: IObjectAccessor<IMaterial, PBRMaterial, Vector2>;\n}\n\nexport interface IGLTFObjectModelTreeMeshesObject {}\n\nexport interface IGLTFObjectModelTreeExtensionsObject {\n KHR_lights_punctual: {\n lights: {\n length: IObjectAccessor<IKHRLightsPunctual_Light[], Light[], number>;\n __array__: {\n __target__: boolean;\n color: IObjectAccessor<IKHRLightsPunctual_Light, Light, Color3>;\n intensity: IObjectAccessor<IKHRLightsPunctual_Light, Light, number>;\n range: IObjectAccessor<IKHRLightsPunctual_Light, Light, number>;\n spot: {\n innerConeAngle: IObjectAccessor<IKHRLightsPunctual_Light, Light, number>;\n outerConeAngle: IObjectAccessor<IKHRLightsPunctual_Light, Light, number>;\n };\n };\n };\n };\n EXT_lights_ies: {\n lights: {\n length: IObjectAccessor<IKHRLightsPunctual_Light[], Light[], number>;\n };\n };\n EXT_lights_image_based: {\n lights: {\n __array__: {\n __target__: boolean;\n intensity: IObjectAccessor<IEXTLightsImageBased_LightImageBased, BaseTexture, number>;\n rotation: IObjectAccessor<IEXTLightsImageBased_LightImageBased, BaseTexture, Quaternion>;\n };\n length: IObjectAccessor<IEXTLightsImageBased_LightImageBased[], BaseTexture[], number>;\n };\n };\n}\n\nconst nodesTree: IGLTFObjectModelTreeNodesObject = {\n length: {\n type: \"number\",\n get: (nodes: INode[]) => nodes.length,\n getTarget: (nodes: INode[]) => nodes.map((node) => node._babylonTransformNode!),\n getPropertyName: [() => \"length\"],\n },\n __array__: {\n __target__: true,\n translation: {\n type: \"Vector3\",\n get: (node: INode) => node._babylonTransformNode?.position,\n set: (value: Vector3, node: INode) => node._babylonTransformNode?.position.copyFrom(value),\n getTarget: (node: INode) => node._babylonTransformNode,\n getPropertyName: [() => \"position\"],\n },\n rotation: {\n type: \"Quaternion\",\n get: (node: INode) => node._babylonTransformNode?.rotationQuaternion!,\n set: (value: Quaternion, node: INode) => node._babylonTransformNode?.rotationQuaternion?.copyFrom(value),\n getTarget: (node: INode) => node._babylonTransformNode,\n getPropertyName: [() => \"rotationQuaternion\"],\n },\n scale: {\n type: \"Vector3\",\n get: (node: INode) => node._babylonTransformNode?.scaling,\n set: (value: Vector3, node: INode) => node._babylonTransformNode?.scaling.copyFrom(value),\n getTarget: (node: INode) => node._babylonTransformNode,\n getPropertyName: [() => \"scaling\"],\n },\n weights: {\n length: {\n type: \"number\",\n get: (node: INode) => node._numMorphTargets,\n getTarget: (node: INode) => node._babylonTransformNode,\n getPropertyName: [() => \"influence\"],\n },\n __array__: {\n __target__: true,\n type: \"number\",\n get: (node: INode, index?: number) => (index !== undefined ? node._primitiveBabylonMeshes?.[0].morphTargetManager?.getTarget(index).influence : undefined),\n // set: (value: number, node: INode, index?: number) => node._babylonTransformNode?.getMorphTargetManager()?.getTarget(index)?.setInfluence(value),\n getTarget: (node: INode) => node._babylonTransformNode,\n getPropertyName: [() => \"influence\"],\n },\n type: \"number[]\",\n get: (node: INode, index?: number) => [0], // TODO: get the weights correctly\n // set: (value: number, node: INode, index?: number) => node._babylonTransformNode?.getMorphTargetManager()?.getTarget(index)?.setInfluence(value),\n getTarget: (node: INode) => node._babylonTransformNode,\n getPropertyName: [() => \"influence\"],\n },\n // readonly!\n matrix: {\n type: \"Matrix\",\n get: (node: INode) => Matrix.Compose(node._babylonTransformNode?.scaling!, node._babylonTransformNode?.rotationQuaternion!, node._babylonTransformNode?.position!),\n getTarget: (node: INode) => node._babylonTransformNode,\n isReadOnly: true,\n },\n globalMatrix: {\n type: \"Matrix\",\n get: (node: INode) => {\n const matrix = Matrix.Identity();\n // RHS/LHS support\n let rootNode = node.parent;\n while (rootNode && rootNode.parent) {\n rootNode = rootNode.parent;\n }\n const forceUpdate =\n node._babylonTransformNode?.position._isDirty || node._babylonTransformNode?.rotationQuaternion?._isDirty || node._babylonTransformNode?.scaling._isDirty;\n if (rootNode) {\n // take the parent root node's world matrix, invert it, and multiply it with the current node's world matrix\n // This will provide the global matrix, ignoring the RHS->LHS conversion\n const rootMatrix = rootNode._babylonTransformNode?.computeWorldMatrix(true).invert();\n if (rootMatrix) {\n node._babylonTransformNode?.computeWorldMatrix(forceUpdate)?.multiplyToRef(rootMatrix, matrix);\n }\n } else if (node._babylonTransformNode) {\n matrix.copyFrom(node._babylonTransformNode.computeWorldMatrix(forceUpdate));\n }\n return matrix;\n },\n getTarget: (node: INode) => node._babylonTransformNode,\n isReadOnly: true,\n },\n extensions: {\n EXT_lights_ies: {\n multiplier: {\n type: \"number\",\n get: (node: INode) => {\n return node._babylonTransformNode?.getChildren((child) => child instanceof SpotLight, true)[0]?.intensity;\n },\n getTarget: (node: INode) => node._babylonTransformNode?.getChildren((child) => child instanceof SpotLight, true)[0],\n set: (value, node) => {\n if (node._babylonTransformNode) {\n const light = node._babylonTransformNode.getChildren((child) => child instanceof SpotLight, true)[0];\n if (light) {\n light.intensity = value;\n }\n }\n },\n },\n color: {\n type: \"Color3\",\n get: (node: INode) => {\n return node._babylonTransformNode?.getChildren((child) => child instanceof SpotLight, true)[0]?.diffuse;\n },\n getTarget: (node: INode) => node._babylonTransformNode?.getChildren((child) => child instanceof SpotLight, true)[0],\n set: (value, node: INode) => {\n if (node._babylonTransformNode) {\n const light = node._babylonTransformNode.getChildren((child) => child instanceof SpotLight, true)[0];\n if (light) {\n light.diffuse = value;\n }\n }\n },\n },\n },\n },\n },\n};\n\nconst animationsTree = {\n length: {\n type: \"number\",\n get: (animations: IAnimation[]) => animations.length,\n getTarget: (animations: IAnimation[]) => animations.map((animation) => animation._babylonAnimationGroup!),\n getPropertyName: [() => \"length\"],\n },\n __array__: {},\n};\n\nconst meshesTree = {\n length: {\n type: \"number\",\n get: (meshes: IMesh[]) => meshes.length,\n getTarget: (meshes: IMesh[]) => meshes.map((mesh) => mesh.primitives[0]._instanceData?.babylonSourceMesh),\n getPropertyName: [() => \"length\"],\n },\n __array__: {},\n};\n\nconst camerasTree: IGLTFObjectModelTreeCamerasObject = {\n __array__: {\n __target__: true,\n orthographic: {\n xmag: {\n componentsCount: 2,\n type: \"Vector2\",\n get: (camera) => new Vector2(camera._babylonCamera?.orthoLeft ?? 0, camera._babylonCamera?.orthoRight ?? 0),\n set: (value, camera) => {\n if (camera._babylonCamera) {\n camera._babylonCamera.orthoLeft = value.x;\n camera._babylonCamera.orthoRight = value.y;\n }\n },\n getTarget: (camera) => camera,\n getPropertyName: [() => \"orthoLeft\", () => \"orthoRight\"],\n },\n ymag: {\n componentsCount: 2,\n type: \"Vector2\",\n get: (camera: ICamera) => new Vector2(camera._babylonCamera?.orthoBottom ?? 0, camera._babylonCamera?.orthoTop ?? 0),\n set: (value: Vector2, camera: ICamera) => {\n if (camera._babylonCamera) {\n camera._babylonCamera.orthoBottom = value.x;\n camera._babylonCamera.orthoTop = value.y;\n }\n },\n getTarget: (camera) => camera,\n getPropertyName: [() => \"orthoBottom\", () => \"orthoTop\"],\n },\n zfar: {\n type: \"number\",\n get: (camera: ICamera) => camera._babylonCamera?.maxZ,\n set: (value: number, camera: ICamera) => {\n if (camera._babylonCamera) {\n camera._babylonCamera.maxZ = value;\n }\n },\n getTarget: (camera: ICamera) => camera,\n getPropertyName: [() => \"maxZ\"],\n },\n znear: {\n type: \"number\",\n get: (camera: ICamera) => camera._babylonCamera?.minZ,\n set: (value: number, camera: ICamera) => {\n if (camera._babylonCamera) {\n camera._babylonCamera.minZ = value;\n }\n },\n getTarget: (camera: ICamera) => camera,\n getPropertyName: [() => \"minZ\"],\n },\n },\n perspective: {\n aspectRatio: {\n type: \"number\",\n get: (camera: ICamera) => camera._babylonCamera?.getEngine().getAspectRatio(camera._babylonCamera),\n getTarget: (camera: ICamera) => camera,\n getPropertyName: [() => \"aspectRatio\"],\n isReadOnly: true, // might not be the case for glTF?\n },\n yfov: {\n type: \"number\",\n get: (camera: ICamera) => camera._babylonCamera?.fov,\n set: (value: number, camera: ICamera) => {\n if (camera._babylonCamera) {\n camera._babylonCamera.fov = value;\n }\n },\n getTarget: (camera: ICamera) => camera,\n getPropertyName: [() => \"fov\"],\n },\n zfar: {\n type: \"number\",\n get: (camera: ICamera) => camera._babylonCamera?.maxZ,\n set: (value: number, camera: ICamera) => {\n if (camera._babylonCamera) {\n camera._babylonCamera.maxZ = value;\n }\n },\n getTarget: (camera: ICamera) => camera,\n getPropertyName: [() => \"maxZ\"],\n },\n znear: {\n type: \"number\",\n get: (camera: ICamera) => camera._babylonCamera?.minZ,\n set: (value: number, camera: ICamera) => {\n if (camera._babylonCamera) {\n camera._babylonCamera.minZ = value;\n }\n },\n getTarget: (camera: ICamera) => camera,\n getPropertyName: [() => \"minZ\"],\n },\n },\n },\n};\n\nconst materialsTree: IGLTFObjectModelTreeMaterialsObject = {\n __array__: {\n __target__: true,\n emissiveFactor: {\n type: \"Color3\",\n get: (material, index?, payload?) => GetMaterial(material, index, payload).emissiveColor,\n set: (value: Color3, material, index?, payload?) => GetMaterial(material, index, payload).emissiveColor.copyFrom(value),\n getTarget: (material, index?, payload?) => GetMaterial(material, index, payload),\n getPropertyName: [() => \"emissiveColor\"],\n },\n emissiveTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"emissiveTexture\"),\n },\n },\n normalTexture: {\n scale: {\n type: \"number\",\n get: (material, index?, payload?) => GetTexture(material, payload, \"bumpTexture\")?.level,\n set: (value: number, material, index?, payload?) => {\n const texture = GetTexture(material, payload, \"bumpTexture\");\n if (texture) {\n texture.level = value;\n }\n },\n getTarget: (material, index?, payload?) => GetMaterial(material, index, payload),\n getPropertyName: [() => \"level\"],\n },\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"bumpTexture\"),\n },\n },\n occlusionTexture: {\n strength: {\n type: \"number\",\n get: (material, index?, payload?) => GetMaterial(material, index, payload).ambientTextureStrength,\n set: (value: number, material, index?, payload?) => {\n const mat = GetMaterial(material, index, payload);\n if (mat) {\n mat.ambientTextureStrength = value;\n }\n },\n getTarget: (material, index?, payload?) => GetMaterial(material, index, payload),\n getPropertyName: [() => \"ambientTextureStrength\"],\n },\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"ambientTexture\"),\n },\n },\n pbrMetallicRoughness: {\n baseColorFactor: {\n type: \"Color4\",\n get: (material, index?, payload?) => {\n const mat = GetMaterial(material, index, payload);\n return Color4.FromColor3(mat.albedoColor, mat.alpha);\n },\n set: (value: Color4, material, index?, payload?) => {\n const mat = GetMaterial(material, index, payload);\n mat.albedoColor.set(value.r, value.g, value.b);\n mat.alpha = value.a;\n },\n getTarget: (material, index?, payload?) => GetMaterial(material, index, payload),\n // This is correct on the animation level, but incorrect as a single property of a type Color4\n getPropertyName: [() => \"albedoColor\", () => \"alpha\"],\n },\n baseColorTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"albedoTexture\"),\n },\n },\n metallicFactor: {\n type: \"number\",\n get: (material, index?, payload?) => GetMaterial(material, index, payload).metallic,\n set: (value, material, index?, payload?) => {\n const mat = GetMaterial(material, index, payload);\n if (mat) {\n mat.metallic = value;\n }\n },\n getTarget: (material, index?, payload?) => GetMaterial(material, index, payload),\n getPropertyName: [() => \"metallic\"],\n },\n roughnessFactor: {\n type: \"number\",\n get: (material, index?, payload?) => GetMaterial(material, index, payload).roughness,\n set: (value, material, index?, payload?) => {\n const mat = GetMaterial(material, index, payload);\n if (mat) {\n mat.roughness = value;\n }\n },\n getTarget: (material, index?, payload?) => GetMaterial(material, index, payload),\n getPropertyName: [() => \"roughness\"],\n },\n metallicRoughnessTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"metallicTexture\"),\n },\n },\n },\n extensions: {\n KHR_materials_anisotropy: {\n anisotropyStrength: {\n type: \"number\",\n get: (material, index?, payload?) => GetMaterial(material, index, payload).anisotropy.intensity,\n set: (value: number, material, index?, payload?) => {\n GetMaterial(material, index, payload).anisotropy.intensity = value;\n },\n getTarget: (material, index?, payload?) => GetMaterial(material, index, payload),\n getPropertyName: [() => \"anisotropy.intensity\"],\n },\n anisotropyRotation: {\n type: \"number\",\n get: (material, index?, payload?) => GetMaterial(material, index, payload).anisotropy.angle,\n set: (value: number, material, index?, payload?) => {\n GetMaterial(material, index, payload).anisotropy.angle = value;\n },\n getTarget: (material, index?, payload?) => GetMaterial(material, index, payload),\n getPropertyName: [() => \"anisotropy.angle\"],\n },\n anisotropyTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"anisotropy\", \"texture\"),\n },\n },\n },\n KHR_materials_clearcoat: {\n clearcoatFactor: {\n type: \"number\",\n get: (material, index?, payload?) => GetMaterial(material, index, payload).clearCoat.intensity,\n set: (value, material, index?, payload?) => {\n GetMaterial(material, index, payload).clearCoat.intensity = value;\n },\n getTarget: (material, index?, payload?) => GetMaterial(material, index, payload),\n getPropertyName: [() => \"clearCoat.intensity\"],\n },\n clearcoatRoughnessFactor: {\n type: \"number\",\n get: (material, index?, payload?) => GetMaterial(material, index, payload).clearCoat.roughness,\n set: (value, material, index?, payload?) => {\n GetMaterial(material, index, payload).clearCoat.roughness = value;\n },\n getTarget: (material, index?, payload?) => GetMaterial(material, index, payload),\n getPropertyName: [() => \"clearCoat.roughness\"],\n },\n clearcoatTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"clearCoat\", \"texture\"),\n },\n },\n clearcoatNormalTexture: {\n scale: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).clearCoat.bumpTexture?.level,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).clearCoat.bumpTexture!.level = value),\n },\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"clearCoat\", \"bumpTexture\"),\n },\n },\n clearcoatRoughnessTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"clearCoat\", \"textureRoughness\"),\n },\n },\n },\n KHR_materials_dispersion: {\n dispersion: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).subSurface.dispersion,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).subSurface.dispersion = value),\n },\n },\n KHR_materials_emissive_strength: {\n emissiveStrength: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).emissiveIntensity,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).emissiveIntensity = value),\n },\n },\n KHR_materials_ior: {\n ior: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).indexOfRefraction,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).indexOfRefraction = value),\n },\n },\n KHR_materials_iridescence: {\n iridescenceFactor: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).iridescence.intensity,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).iridescence.intensity = value),\n },\n iridescenceIor: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).iridescence.indexOfRefraction,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).iridescence.indexOfRefraction = value),\n },\n iridescenceTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"iridescence\", \"texture\"),\n },\n },\n iridescenceThicknessMaximum: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).iridescence.maximumThickness,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).iridescence.maximumThickness = value),\n },\n iridescenceThicknessMinimum: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).iridescence.minimumThickness,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).iridescence.minimumThickness = value),\n },\n iridescenceThicknessTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"iridescence\", \"thicknessTexture\"),\n },\n },\n },\n KHR_materials_sheen: {\n sheenColorFactor: {\n type: \"Color3\",\n get: (material, index, payload) => GetMaterial(material, index, payload).sheen.color,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => GetMaterial(material, index, payload).sheen.color.copyFrom(value),\n },\n sheenColorTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"sheen\", \"texture\"),\n },\n },\n sheenRoughnessFactor: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).sheen.intensity,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).sheen.intensity = value),\n },\n sheenRoughnessTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"sheen\", \"thicknessTexture\"),\n },\n },\n },\n KHR_materials_specular: {\n specularFactor: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).metallicF0Factor,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).metallicF0Factor = value),\n getPropertyName: [() => \"metallicF0Factor\"],\n },\n specularColorFactor: {\n type: \"Color3\",\n get: (material, index, payload) => GetMaterial(material, index, payload).metallicReflectanceColor,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => GetMaterial(material, index, payload).metallicReflectanceColor.copyFrom(value),\n getPropertyName: [() => \"metallicReflectanceColor\"],\n },\n specularTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"metallicReflectanceTexture\"),\n },\n },\n specularColorTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"reflectanceTexture\"),\n },\n },\n },\n KHR_materials_transmission: {\n transmissionFactor: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).subSurface.refractionIntensity,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).subSurface.refractionIntensity = value),\n getPropertyName: [() => \"subSurface.refractionIntensity\"],\n },\n transmissionTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"subSurface\", \"refractionIntensityTexture\"),\n },\n },\n },\n KHR_materials_diffuse_transmission: {\n diffuseTransmissionFactor: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).subSurface.translucencyIntensity,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).subSurface.translucencyIntensity = value),\n },\n diffuseTransmissionTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"subSurface\", \"translucencyIntensityTexture\"),\n },\n },\n diffuseTransmissionColorFactor: {\n type: \"Color3\",\n get: (material, index, payload) => GetMaterial(material, index, payload).subSurface.translucencyColor,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => value && GetMaterial(material, index, payload).subSurface.translucencyColor?.copyFrom(value),\n },\n diffuseTransmissionColorTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"subSurface\", \"translucencyColorTexture\"),\n },\n },\n },\n KHR_materials_volume: {\n attenuationColor: {\n type: \"Color3\",\n get: (material, index, payload) => GetMaterial(material, index, payload).subSurface.tintColor,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => GetMaterial(material, index, payload).subSurface.tintColor.copyFrom(value),\n },\n attenuationDistance: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).subSurface.tintColorAtDistance,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).subSurface.tintColorAtDistance = value),\n },\n thicknessFactor: {\n type: \"number\",\n get: (material, index, payload) => GetMaterial(material, index, payload).subSurface.maximumThickness,\n getTarget: GetMaterial,\n set: (value, material, index, payload) => (GetMaterial(material, index, payload).subSurface.maximumThickness = value),\n },\n thicknessTexture: {\n extensions: {\n KHR_texture_transform: GenerateTextureMap(\"subSurface\", \"thicknessTexture\"),\n },\n },\n },\n },\n },\n};\n\nconst extensionsTree: IGLTFObjectModelTreeExtensionsObject = {\n KHR_lights_punctual: {\n lights: {\n length: {\n type: \"number\",\n get: (lights: IKHRLightsPunctual_Light[]) => lights.length,\n getTarget: (lights: IKHRLightsPunctual_Light[]) => lights.map((light) => light._babylonLight!),\n getPropertyName: [(_lights: IKHRLightsPunctual_Light[]) => \"length\"],\n },\n __array__: {\n __target__: true,\n color: {\n type: \"Color3\",\n get: (light: IKHRLightsPunctual_Light) => light._babylonLight?.diffuse,\n set: (value: Color3, light: IKHRLightsPunctual_Light) => light._babylonLight?.diffuse.copyFrom(value),\n getTarget: (light: IKHRLightsPunctual_Light) => light._babylonLight,\n getPropertyName: [(_light: IKHRLightsPunctual_Light) => \"diffuse\"],\n },\n intensity: {\n type: \"number\",\n get: (light: IKHRLightsPunctual_Light) => light._babylonLight?.intensity,\n set: (value: number, light: IKHRLightsPunctual_Light) => (light._babylonLight ? (light._babylonLight.intensity = value) : undefined),\n getTarget: (light: IKHRLightsPunctual_Light) => light._babylonLight,\n getPropertyName: [(_light: IKHRLightsPunctual_Light) => \"intensity\"],\n },\n range: {\n type: \"number\",\n get: (light: IKHRLightsPunctual_Light) => light._babylonLight?.range,\n set: (value: number, light: IKHRLightsPunctual_Light) => (light._babylonLight ? (light._babylonLight.range = value) : undefined),\n getTarget: (light: IKHRLightsPunctual_Light) => light._babylonLight,\n getPropertyName: [(_light: IKHRLightsPunctual_Light) => \"range\"],\n },\n spot: {\n innerConeAngle: {\n type: \"number\",\n get: (light: IKHRLightsPunctual_Light) => (light._babylonLight as SpotLight)?.innerAngle,\n set: (value: number, light: IKHRLightsPunctual_Light) => (light._babylonLight ? ((light._babylonLight as SpotLight).innerAngle = value) : undefined),\n getTarget: (light: IKHRLightsPunctual_Light) => light._babylonLight,\n getPropertyName: [(_light: IKHRLightsPunctual_Light) => \"innerConeAngle\"],\n },\n outerConeAngle: {\n type: \"number\",\n get: (light: IKHRLightsPunctual_Light) => (light._babylonLight as SpotLight)?.angle,\n set: (value: number, light: IKHRLightsPunctual_Light) => (light._babylonLight ? ((light._babylonLight as SpotLight).angle = value) : undefined),\n getTarget: (light: IKHRLightsPunctual_Light) => light._babylonLight,\n getPropertyName: [(_light: IKHRLightsPunctual_Light) => \"outerConeAngle\"],\n },\n },\n },\n },\n },\n EXT_lights_ies: {\n lights: {\n length: {\n type: \"number\",\n get: (lights: IKHRLightsPunctual_Light[]) => lights.length,\n getTarget: (lights: IKHRLightsPunctual_Light[]) => lights.map((light) => light._babylonLight!),\n getPropertyName: [(_lights: IKHRLightsPunctual_Light[]) => \"length\"],\n },\n },\n },\n EXT_lights_image_based: {\n lights: {\n length: {\n type: \"number\",\n get: (lights) => lights.length,\n getTarget: (lights) => lights.map((light) => light._babylonTexture!),\n getPropertyName: [(_lights) => \"length\"],\n },\n __array__: {\n __target__: true,\n intensity: {\n type: \"number\",\n get: (light) => light._babylonTexture?.level,\n set: (value, light) => {\n if (light._babylonTexture) {\n light._babylonTexture.level = value;\n }\n },\n\n getTarget: (light) => light._babylonTexture,\n },\n rotation: {\n type: \"Quaternion\",\n get: (light) => light._babylonTexture && Quaternion.FromRotationMatrix(light._babylonTexture?.getReflectionTextureMatrix()),\n set: (value, light) => {\n if (!light._babylonTexture) {\n return;\n }\n // Invert the rotation so that positive rotation is counter-clockwise.\n if (!light._babylonTexture.getScene()?.useRightHandedSystem) {\n value = Quaternion.Inverse(value);\n }\n\n Matrix.FromQuaternionToRef(value, light._babylonTexture.getReflectionTextureMatrix());\n },\n getTarget: (light) => light._babylonTexture,\n },\n },\n },\n },\n};\n\nfunction GetTexture(material: IMaterial, payload: any, textureType: keyof PBRMaterial, textureInObject?: string) {\n const babylonMaterial = GetMaterial(material, payload);\n return textureInObject ? babylonMaterial[textureType][textureInObject] : babylonMaterial[textureType];\n}\nfunction GetMaterial(material: IMaterial, _index?: number, payload?: any) {\n return material._data?.[payload?.fillMode ?? Constants.MATERIAL_TriangleFillMode]?.babylonMaterial as PBRMaterial;\n}\nfunction GenerateTextureMap(textureType: keyof PBRMaterial, textureInObject?: string): ITextureDefinition {\n return {\n offset: {\n componentsCount: 2,\n // assuming two independent values for u and v, and NOT a Vector2\n type: \"Vector2\",\n get: (material, _index?, payload?) => {\n const texture = GetTexture(material, payload, textureType, textureInObject);\n return new Vector2(texture?.uOffset, texture?.vOffset);\n },\n getTarget: GetMaterial,\n set: (value, material, _index?, payload?) => {\n const texture = GetTexture(material, payload, textureType, textureInObject);\n (texture.uOffset = value.x), (texture.vOffset = value.y);\n },\n getPropertyName: [\n () => `${textureType}${textureInObject ? \".\" + textureInObject : \"\"}.uOffset`,\n () => `${textureType}${textureInObject ? \".\" + textureInObject : \"\"}.vOffset`,\n ],\n },\n rotation: {\n type: \"number\",\n get: (material, _index?, payload?) => GetTexture(material, payload, textureType, textureInObject)?.wAng,\n getTarget: GetMaterial,\n set: (value, material, _index?, payload?) => (GetTexture(material, payload, textureType, textureInObject).wAng = value),\n getPropertyName: [() => `${textureType}${textureInObject ? \".\" + textureInObject : \"\"}.wAng`],\n },\n scale: {\n componentsCount: 2,\n type: \"Vector2\",\n get: (material, _index?, payload?) => {\n const texture = GetTexture(material, payload, textureType, textureInObject);\n return new Vector2(texture?.uScale, texture?.vScale);\n },\n getTarget: GetMaterial,\n set: (value, material, index?, payload?) => {\n const texture = GetTexture(material, payload, textureType, textureInObject);\n (texture.uScale = value.x), (texture.vScale = value.y);\n },\n getPropertyName: [\n () => `${textureType}${textureInObject ? \".\" + textureInObject : \"\"}.uScale`,\n () => `${textureType}${textureInObject ? \".\" + textureInObject : \"\"}.vScale`,\n ],\n },\n };\n}\n\nconst objectModelMapping: IGLTFObjectModelTree = {\n cameras: camerasTree,\n nodes: nodesTree,\n materials: materialsTree,\n extensions: extensionsTree,\n animations: animationsTree,\n meshes: meshesTree,\n};\n\n/**\n * get a path-to-object converter for the given glTF tree\n * @param gltf the glTF tree to use\n * @returns a path-to-object converter for the given glTF tree\n */\nexport function GetPathToObjectConverter(gltf: IGLTF) {\n return new GLTFPathToObjectConverter(gltf, objectModelMapping);\n}\n\n/**\n * This function will return the object accessor for the given key in the object model\n * If the key is not found, it will return undefined\n * @param key the key to get the mapping for, for example /materials/\\{\\}/emissiveFactor\n * @returns an object accessor for the given key, or undefined if the key is not found\n */\nexport function GetMappingForKey(key: string): IObjectAccessor | undefined {\n // replace every `{}` in key with __array__ to match the object model\n const keyParts = key.split(\"/\").map((part) => part.replace(/{}/g, \"__array__\"));\n let current = objectModelMapping as any;\n for (const part of keyParts) {\n // make sure part is not empty\n if (!part) {\n continue;\n }\n current = current[part];\n }\n // validate that current is an object accessor\n if (current && current.type && current.get) {\n return current;\n }\n return undefined;\n}\n\n/**\n * Set interpolation for a specific key in the object model\n * @param key the key to set, for example /materials/\\{\\}/emissiveFactor\n * @param interpolation the interpolation elements array\n */\nexport function SetInterpolationForKey(key: string, interpolation?: IInterpolationPropertyInfo[]): void {\n // replace every `{}` in key with __array__ to match the object model\n const keyParts = key.split(\"/\").map((part) => part.replace(/{}/g, \"__array__\"));\n let current = objectModelMapping as any;\n for (const part of keyParts) {\n // make sure part is not empty\n if (!part) {\n continue;\n }\n current = current[part];\n }\n // validate that the current object is an object accessor\n if (current && current.type && current.get) {\n (current as IObjectAccessor).interpolation = interpolation;\n }\n}\n\n/**\n * This will ad a new object accessor in the object model at the given key.\n * 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)\n * @param key the key to add the object accessor at. For example /cameras/\\{\\}/perspective/aspectRatio\n * @param accessor the object accessor to add\n */\nexport function AddObjectAccessorToKey<GLTFTargetType = any, BabylonTargetType = any, BabylonValueType = any>(\n key: string,\n accessor: IObjectAccessor<GLTFTargetType, BabylonTargetType, BabylonValueType>\n): void {\n // replace every `{}` in key with __array__ to match the object model\n const keyParts = key.split(\"/\").map((part) => part.replace(/{}/g, \"__array__\"));\n let current = objectModelMapping as any;\n for (const part of keyParts) {\n // make sure part is not empty\n if (!part) {\n continue;\n }\n if (!current[part]) {\n if (part === \"?\") {\n current.__ignoreObjectTree__ = true;\n continue;\n }\n current[part] = {};\n // if the part is __array__ then add the __target__ property\n if (part === \"__array__\") {\n current[part].__target__ = true;\n }\n }\n current = current[part];\n }\n Object.assign(current, accessor);\n}\n"]}
|
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
import type { IndicesArray, Nullable } from "@babylonjs/core/types.js";
|
|
2
|
+
import { Camera } from "@babylonjs/core/Cameras/camera.js";
|
|
3
|
+
import type { Animation } from "@babylonjs/core/Animations/animation.js";
|
|
4
|
+
import type { IAnimatable } from "@babylonjs/core/Animations/animatable.interface.js";
|
|
5
|
+
import type { AnimationGroup } from "@babylonjs/core/Animations/animationGroup.js";
|
|
6
|
+
import { Material } from "@babylonjs/core/Materials/material.js";
|
|
7
|
+
import type { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js";
|
|
8
|
+
import { TransformNode } from "@babylonjs/core/Meshes/transformNode.js";
|
|
9
|
+
import { Buffer, VertexBuffer } from "@babylonjs/core/Buffers/buffer.js";
|
|
10
|
+
import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
|
|
11
|
+
import { Mesh } from "@babylonjs/core/Meshes/mesh.js";
|
|
12
|
+
import type { ISceneLoaderAsyncResult, ISceneLoaderProgressEvent } from "@babylonjs/core/Loading/sceneLoader.js";
|
|
13
|
+
import type { Scene } from "@babylonjs/core/scene.js";
|
|
14
|
+
import type { IProperty } from "babylonjs-gltf2interface";
|
|
15
|
+
import type { IGLTF, ISampler, INode, IScene, IMesh, IAccessor, ICamera, IAnimation, IBuffer, IBufferView, IMaterial, ITextureInfo, ITexture, IImage, IMeshPrimitive, IArrayItem, IAnimationChannel } from "./glTFLoaderInterfaces.js";
|
|
16
|
+
import type { IGLTFLoader, IGLTFLoaderData } from "../glTFFileLoader.js";
|
|
17
|
+
import { GLTFFileLoader } from "../glTFFileLoader.js";
|
|
18
|
+
import type { IDataBuffer } from "@babylonjs/core/Misc/dataReader.js";
|
|
19
|
+
import type { Light } from "@babylonjs/core/Lights/light.js";
|
|
20
|
+
import { BoundingInfo } from "@babylonjs/core/Culling/boundingInfo.js";
|
|
21
|
+
import type { AssetContainer } from "@babylonjs/core/assetContainer.js";
|
|
22
|
+
import type { AnimationPropertyInfo } from "./glTFLoaderAnimation.js";
|
|
23
|
+
import type { IObjectInfo } from "@babylonjs/core/ObjectModel/objectModelInterfaces.js";
|
|
24
|
+
import type { GLTFExtensionFactory } from "./glTFLoaderExtensionRegistry.js";
|
|
25
|
+
import type { IInterpolationPropertyInfo } from "@babylonjs/core/FlowGraph/typeDefinitions.js";
|
|
26
|
+
export { GLTFFileLoader };
|
|
27
|
+
interface IWithMetadata {
|
|
28
|
+
metadata: any;
|
|
29
|
+
_internalMetadata: any;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Helper class for working with arrays when loading the glTF asset
|
|
33
|
+
*/
|
|
34
|
+
export declare class ArrayItem {
|
|
35
|
+
/**
|
|
36
|
+
* Gets an item from the given array.
|
|
37
|
+
* @param context The context when loading the asset
|
|
38
|
+
* @param array The array to get the item from
|
|
39
|
+
* @param index The index to the array
|
|
40
|
+
* @returns The array item
|
|
41
|
+
*/
|
|
42
|
+
static Get<T>(context: string, array: ArrayLike<T> | undefined, index: number | undefined): T;
|
|
43
|
+
/**
|
|
44
|
+
* Gets an item from the given array or returns null if not available.
|
|
45
|
+
* @param array The array to get the item from
|
|
46
|
+
* @param index The index to the array
|
|
47
|
+
* @returns The array item or null
|
|
48
|
+
*/
|
|
49
|
+
static TryGet<T>(array: ArrayLike<T> | undefined, index: number | undefined): Nullable<T>;
|
|
50
|
+
/**
|
|
51
|
+
* Assign an `index` field to each item of the given array.
|
|
52
|
+
* @param array The array of items
|
|
53
|
+
*/
|
|
54
|
+
static Assign(array?: IArrayItem[]): void;
|
|
55
|
+
}
|
|
56
|
+
/** @internal */
|
|
57
|
+
export interface IAnimationTargetInfo {
|
|
58
|
+
/** @internal */
|
|
59
|
+
target: unknown;
|
|
60
|
+
/** @internal */
|
|
61
|
+
properties: Array<AnimationPropertyInfo>;
|
|
62
|
+
}
|
|
63
|
+
/** @internal */
|
|
64
|
+
export declare function LoadBoundingInfoFromPositionAccessor(accessor: IAccessor): Nullable<BoundingInfo>;
|
|
65
|
+
/**
|
|
66
|
+
* The glTF 2.0 loader
|
|
67
|
+
*/
|
|
68
|
+
export declare class GLTFLoader implements IGLTFLoader {
|
|
69
|
+
/** @internal */
|
|
70
|
+
readonly _completePromises: Promise<unknown>[];
|
|
71
|
+
/** @internal */
|
|
72
|
+
_assetContainer: Nullable<AssetContainer>;
|
|
73
|
+
/** Storage */
|
|
74
|
+
_babylonLights: Light[];
|
|
75
|
+
/** @internal */
|
|
76
|
+
_disableInstancedMesh: number;
|
|
77
|
+
/** @internal */
|
|
78
|
+
_allMaterialsDirtyRequired: boolean;
|
|
79
|
+
/** @internal */
|
|
80
|
+
_skipStartAnimationStep: boolean;
|
|
81
|
+
private readonly _parent;
|
|
82
|
+
private readonly _extensions;
|
|
83
|
+
private _disposed;
|
|
84
|
+
private _rootUrl;
|
|
85
|
+
private _fileName;
|
|
86
|
+
private _uniqueRootUrl;
|
|
87
|
+
private _gltf;
|
|
88
|
+
private _bin;
|
|
89
|
+
private _babylonScene;
|
|
90
|
+
private _rootBabylonMesh;
|
|
91
|
+
private _defaultBabylonMaterialData;
|
|
92
|
+
private readonly _postSceneLoadActions;
|
|
93
|
+
/**
|
|
94
|
+
* The default glTF sampler.
|
|
95
|
+
*/
|
|
96
|
+
static readonly DefaultSampler: ISampler;
|
|
97
|
+
/**
|
|
98
|
+
* Registers a loader extension.
|
|
99
|
+
* @param name The name of the loader extension.
|
|
100
|
+
* @param factory The factory function that creates the loader extension.
|
|
101
|
+
* @deprecated Please use registerGLTFExtension instead.
|
|
102
|
+
*/
|
|
103
|
+
static RegisterExtension(name: string, factory: GLTFExtensionFactory): void;
|
|
104
|
+
/**
|
|
105
|
+
* Unregisters a loader extension.
|
|
106
|
+
* @param name The name of the loader extension.
|
|
107
|
+
* @returns A boolean indicating whether the extension has been unregistered
|
|
108
|
+
* @deprecated Please use unregisterGLTFExtension instead.
|
|
109
|
+
*/
|
|
110
|
+
static UnregisterExtension(name: string): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* The object that represents the glTF JSON.
|
|
113
|
+
*/
|
|
114
|
+
get gltf(): IGLTF;
|
|
115
|
+
/**
|
|
116
|
+
* The BIN chunk of a binary glTF.
|
|
117
|
+
*/
|
|
118
|
+
get bin(): Nullable<IDataBuffer>;
|
|
119
|
+
/**
|
|
120
|
+
* The parent file loader.
|
|
121
|
+
*/
|
|
122
|
+
get parent(): GLTFFileLoader;
|
|
123
|
+
/**
|
|
124
|
+
* The Babylon scene when loading the asset.
|
|
125
|
+
*/
|
|
126
|
+
get babylonScene(): Scene;
|
|
127
|
+
/**
|
|
128
|
+
* The root Babylon node when loading the asset.
|
|
129
|
+
*/
|
|
130
|
+
get rootBabylonMesh(): Nullable<TransformNode>;
|
|
131
|
+
/**
|
|
132
|
+
* The root url when loading the asset.
|
|
133
|
+
*/
|
|
134
|
+
get rootUrl(): Nullable<string>;
|
|
135
|
+
/**
|
|
136
|
+
* @internal
|
|
137
|
+
*/
|
|
138
|
+
constructor(parent: GLTFFileLoader);
|
|
139
|
+
/** @internal */
|
|
140
|
+
dispose(): void;
|
|
141
|
+
/**
|
|
142
|
+
* @internal
|
|
143
|
+
*/
|
|
144
|
+
importMeshAsync(meshesNames: string | readonly string[] | null | undefined, scene: Scene, container: Nullable<AssetContainer>, data: IGLTFLoaderData, rootUrl: string, onProgress?: (event: ISceneLoaderProgressEvent) => void, fileName?: string): Promise<ISceneLoaderAsyncResult>;
|
|
145
|
+
/**
|
|
146
|
+
* @internal
|
|
147
|
+
*/
|
|
148
|
+
loadAsync(scene: Scene, data: IGLTFLoaderData, rootUrl: string, onProgress?: (event: ISceneLoaderProgressEvent) => void, fileName?: string): Promise<void>;
|
|
149
|
+
private _loadAsync;
|
|
150
|
+
private _loadData;
|
|
151
|
+
private _setupData;
|
|
152
|
+
private _loadExtensionsAsync;
|
|
153
|
+
private _createRootNode;
|
|
154
|
+
/**
|
|
155
|
+
* Loads a glTF scene.
|
|
156
|
+
* @param context The context when loading the asset
|
|
157
|
+
* @param scene The glTF scene property
|
|
158
|
+
* @returns A promise that resolves when the load is complete
|
|
159
|
+
*/
|
|
160
|
+
loadSceneAsync(context: string, scene: IScene): Promise<void>;
|
|
161
|
+
private _forEachPrimitive;
|
|
162
|
+
private _getGeometries;
|
|
163
|
+
private _getMeshes;
|
|
164
|
+
private _getTransformNodes;
|
|
165
|
+
private _getSkeletons;
|
|
166
|
+
private _getAnimationGroups;
|
|
167
|
+
private _startAnimations;
|
|
168
|
+
/**
|
|
169
|
+
* Loads a glTF node.
|
|
170
|
+
* @param context The context when loading the asset
|
|
171
|
+
* @param node The glTF node property
|
|
172
|
+
* @param assign A function called synchronously after parsing the glTF properties
|
|
173
|
+
* @returns A promise that resolves with the loaded Babylon mesh when the load is complete
|
|
174
|
+
*/
|
|
175
|
+
loadNodeAsync(context: string, node: INode, assign?: (babylonTransformNode: TransformNode) => void): Promise<TransformNode>;
|
|
176
|
+
private _loadMeshAsync;
|
|
177
|
+
/**
|
|
178
|
+
* @internal Define this method to modify the default behavior when loading data for mesh primitives.
|
|
179
|
+
* @param context The context when loading the asset
|
|
180
|
+
* @param name The mesh name when loading the asset
|
|
181
|
+
* @param node The glTF node when loading the asset
|
|
182
|
+
* @param mesh The glTF mesh when loading the asset
|
|
183
|
+
* @param primitive The glTF mesh primitive property
|
|
184
|
+
* @param assign A function called synchronously after parsing the glTF properties
|
|
185
|
+
* @returns A promise that resolves with the loaded mesh when the load is complete or null if not handled
|
|
186
|
+
*/
|
|
187
|
+
_loadMeshPrimitiveAsync(context: string, name: string, node: INode, mesh: IMesh, primitive: IMeshPrimitive, assign: (babylonMesh: AbstractMesh) => void): Promise<AbstractMesh>;
|
|
188
|
+
private _loadVertexDataAsync;
|
|
189
|
+
private _createMorphTargets;
|
|
190
|
+
private _loadMorphTargetsAsync;
|
|
191
|
+
private _loadMorphTargetVertexDataAsync;
|
|
192
|
+
private static _LoadTransform;
|
|
193
|
+
private _loadSkinAsync;
|
|
194
|
+
private _loadBones;
|
|
195
|
+
private _findSkeletonRootNode;
|
|
196
|
+
private _loadBone;
|
|
197
|
+
private _loadSkinInverseBindMatricesDataAsync;
|
|
198
|
+
private _updateBoneMatrices;
|
|
199
|
+
private _getNodeMatrix;
|
|
200
|
+
/**
|
|
201
|
+
* Loads a glTF camera.
|
|
202
|
+
* @param context The context when loading the asset
|
|
203
|
+
* @param camera The glTF camera property
|
|
204
|
+
* @param assign A function called synchronously after parsing the glTF properties
|
|
205
|
+
* @returns A promise that resolves with the loaded Babylon camera when the load is complete
|
|
206
|
+
*/
|
|
207
|
+
loadCameraAsync(context: string, camera: ICamera, assign?: (babylonCamera: Camera) => void): Promise<Camera>;
|
|
208
|
+
private _loadAnimationsAsync;
|
|
209
|
+
/**
|
|
210
|
+
* Loads a glTF animation.
|
|
211
|
+
* @param context The context when loading the asset
|
|
212
|
+
* @param animation The glTF animation property
|
|
213
|
+
* @returns A promise that resolves with the loaded Babylon animation group when the load is complete
|
|
214
|
+
*/
|
|
215
|
+
loadAnimationAsync(context: string, animation: IAnimation): Promise<AnimationGroup>;
|
|
216
|
+
/**
|
|
217
|
+
* @hidden
|
|
218
|
+
* Loads a glTF animation channel.
|
|
219
|
+
* @param context The context when loading the asset
|
|
220
|
+
* @param animationContext The context of the animation when loading the asset
|
|
221
|
+
* @param animation The glTF animation property
|
|
222
|
+
* @param channel The glTF animation channel property
|
|
223
|
+
* @param onLoad Called for each animation loaded
|
|
224
|
+
* @returns A void promise that resolves when the load is complete
|
|
225
|
+
*/
|
|
226
|
+
_loadAnimationChannelAsync(context: string, animationContext: string, animation: IAnimation, channel: IAnimationChannel, onLoad: (babylonAnimatable: IAnimatable, babylonAnimation: Animation) => void): Promise<void>;
|
|
227
|
+
/**
|
|
228
|
+
* @hidden
|
|
229
|
+
* Loads a glTF animation channel.
|
|
230
|
+
* @param context The context when loading the asset
|
|
231
|
+
* @param animationContext The context of the animation when loading the asset
|
|
232
|
+
* @param animation The glTF animation property
|
|
233
|
+
* @param channel The glTF animation channel property
|
|
234
|
+
* @param targetInfo The glTF target and properties
|
|
235
|
+
* @param onLoad Called for each animation loaded
|
|
236
|
+
* @returns A void promise that resolves when the load is complete
|
|
237
|
+
*/
|
|
238
|
+
_loadAnimationChannelFromTargetInfoAsync(context: string, animationContext: string, animation: IAnimation, channel: IAnimationChannel, targetInfo: IObjectInfo<IInterpolationPropertyInfo[]>, onLoad: (babylonAnimatable: IAnimatable, babylonAnimation: Animation) => void): Promise<void>;
|
|
239
|
+
private _loadAnimationSamplerAsync;
|
|
240
|
+
/**
|
|
241
|
+
* Loads a glTF buffer.
|
|
242
|
+
* @param context The context when loading the asset
|
|
243
|
+
* @param buffer The glTF buffer property
|
|
244
|
+
* @param byteOffset The byte offset to use
|
|
245
|
+
* @param byteLength The byte length to use
|
|
246
|
+
* @returns A promise that resolves with the loaded data when the load is complete
|
|
247
|
+
*/
|
|
248
|
+
loadBufferAsync(context: string, buffer: IBuffer, byteOffset: number, byteLength: number): Promise<ArrayBufferView>;
|
|
249
|
+
/**
|
|
250
|
+
* Loads a glTF buffer view.
|
|
251
|
+
* @param context The context when loading the asset
|
|
252
|
+
* @param bufferView The glTF buffer view property
|
|
253
|
+
* @returns A promise that resolves with the loaded data when the load is complete
|
|
254
|
+
*/
|
|
255
|
+
loadBufferViewAsync(context: string, bufferView: IBufferView): Promise<ArrayBufferView>;
|
|
256
|
+
private _loadAccessorAsync;
|
|
257
|
+
/**
|
|
258
|
+
* @internal
|
|
259
|
+
*/
|
|
260
|
+
_loadFloatAccessorAsync(context: string, accessor: IAccessor): Promise<Float32Array>;
|
|
261
|
+
/**
|
|
262
|
+
* @internal
|
|
263
|
+
*/
|
|
264
|
+
_loadIndicesAccessorAsync(context: string, accessor: IAccessor): Promise<IndicesArray>;
|
|
265
|
+
/**
|
|
266
|
+
* @internal
|
|
267
|
+
*/
|
|
268
|
+
_loadVertexBufferViewAsync(bufferView: IBufferView): Promise<Buffer>;
|
|
269
|
+
/**
|
|
270
|
+
* @internal
|
|
271
|
+
*/
|
|
272
|
+
_loadVertexAccessorAsync(context: string, accessor: IAccessor, kind: string): Promise<VertexBuffer>;
|
|
273
|
+
private _loadMaterialMetallicRoughnessPropertiesAsync;
|
|
274
|
+
/**
|
|
275
|
+
* @internal
|
|
276
|
+
*/
|
|
277
|
+
_loadMaterialAsync(context: string, material: IMaterial, babylonMesh: Nullable<Mesh>, babylonDrawMode: number, assign?: (babylonMaterial: Material) => void): Promise<Material>;
|
|
278
|
+
private _createDefaultMaterial;
|
|
279
|
+
/**
|
|
280
|
+
* Creates a Babylon material from a glTF material.
|
|
281
|
+
* @param context The context when loading the asset
|
|
282
|
+
* @param material The glTF material property
|
|
283
|
+
* @param babylonDrawMode The draw mode for the Babylon material
|
|
284
|
+
* @returns The Babylon material
|
|
285
|
+
*/
|
|
286
|
+
createMaterial(context: string, material: IMaterial, babylonDrawMode: number): Material;
|
|
287
|
+
/**
|
|
288
|
+
* Loads properties from a glTF material into a Babylon material.
|
|
289
|
+
* @param context The context when loading the asset
|
|
290
|
+
* @param material The glTF material property
|
|
291
|
+
* @param babylonMaterial The Babylon material
|
|
292
|
+
* @returns A promise that resolves when the load is complete
|
|
293
|
+
*/
|
|
294
|
+
loadMaterialPropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Promise<void>;
|
|
295
|
+
/**
|
|
296
|
+
* Loads the normal, occlusion, and emissive properties from a glTF material into a Babylon material.
|
|
297
|
+
* @param context The context when loading the asset
|
|
298
|
+
* @param material The glTF material property
|
|
299
|
+
* @param babylonMaterial The Babylon material
|
|
300
|
+
* @returns A promise that resolves when the load is complete
|
|
301
|
+
*/
|
|
302
|
+
loadMaterialBasePropertiesAsync(context: string, material: IMaterial, babylonMaterial: Material): Promise<void>;
|
|
303
|
+
/**
|
|
304
|
+
* Loads the alpha properties from a glTF material into a Babylon material.
|
|
305
|
+
* Must be called after the setting the albedo texture of the Babylon material when the material has an albedo texture.
|
|
306
|
+
* @param context The context when loading the asset
|
|
307
|
+
* @param material The glTF material property
|
|
308
|
+
* @param babylonMaterial The Babylon material
|
|
309
|
+
*/
|
|
310
|
+
loadMaterialAlphaProperties(context: string, material: IMaterial, babylonMaterial: Material): void;
|
|
311
|
+
/**
|
|
312
|
+
* Loads a glTF texture info.
|
|
313
|
+
* @param context The context when loading the asset
|
|
314
|
+
* @param textureInfo The glTF texture info property
|
|
315
|
+
* @param assign A function called synchronously after parsing the glTF properties
|
|
316
|
+
* @returns A promise that resolves with the loaded Babylon texture when the load is complete
|
|
317
|
+
*/
|
|
318
|
+
loadTextureInfoAsync(context: string, textureInfo: ITextureInfo, assign?: (babylonTexture: BaseTexture) => void): Promise<BaseTexture>;
|
|
319
|
+
/**
|
|
320
|
+
* @internal
|
|
321
|
+
*/
|
|
322
|
+
_loadTextureAsync(context: string, texture: ITexture, assign?: (babylonTexture: BaseTexture) => void): Promise<BaseTexture>;
|
|
323
|
+
/**
|
|
324
|
+
* @internal
|
|
325
|
+
*/
|
|
326
|
+
_createTextureAsync(context: string, sampler: ISampler, image: IImage, assign?: (babylonTexture: BaseTexture) => void, textureLoaderOptions?: unknown, useSRGBBuffer?: boolean): Promise<BaseTexture>;
|
|
327
|
+
private _loadSampler;
|
|
328
|
+
/**
|
|
329
|
+
* Loads a glTF image.
|
|
330
|
+
* @param context The context when loading the asset
|
|
331
|
+
* @param image The glTF image property
|
|
332
|
+
* @returns A promise that resolves with the loaded data when the load is complete
|
|
333
|
+
*/
|
|
334
|
+
loadImageAsync(context: string, image: IImage): Promise<ArrayBufferView>;
|
|
335
|
+
/**
|
|
336
|
+
* Loads a glTF uri.
|
|
337
|
+
* @param context The context when loading the asset
|
|
338
|
+
* @param property The glTF property associated with the uri
|
|
339
|
+
* @param uri The base64 or relative uri
|
|
340
|
+
* @returns A promise that resolves with the loaded data when the load is complete
|
|
341
|
+
*/
|
|
342
|
+
loadUriAsync(context: string, property: IProperty, uri: string): Promise<ArrayBufferView>;
|
|
343
|
+
/**
|
|
344
|
+
* Adds a JSON pointer to the _internalMetadata of the Babylon object at `<object>._internalMetadata.gltf.pointers`.
|
|
345
|
+
* @param babylonObject the Babylon object with _internalMetadata
|
|
346
|
+
* @param pointer the JSON pointer
|
|
347
|
+
*/
|
|
348
|
+
static AddPointerMetadata(babylonObject: IWithMetadata, pointer: string): void;
|
|
349
|
+
private static _GetTextureWrapMode;
|
|
350
|
+
private static _GetTextureSamplingMode;
|
|
351
|
+
private static _GetTypedArrayConstructor;
|
|
352
|
+
private static _GetTypedArray;
|
|
353
|
+
private static _GetNumComponents;
|
|
354
|
+
private static _ValidateUri;
|
|
355
|
+
/**
|
|
356
|
+
* @internal
|
|
357
|
+
*/
|
|
358
|
+
static _GetDrawMode(context: string, mode: number | undefined): number;
|
|
359
|
+
private _compileMaterialsAsync;
|
|
360
|
+
private _compileShadowGeneratorsAsync;
|
|
361
|
+
private _forEachExtensions;
|
|
362
|
+
private _applyExtensions;
|
|
363
|
+
private _extensionsOnLoading;
|
|
364
|
+
private _extensionsOnReady;
|
|
365
|
+
private _extensionsLoadSceneAsync;
|
|
366
|
+
private _extensionsLoadNodeAsync;
|
|
367
|
+
private _extensionsLoadCameraAsync;
|
|
368
|
+
private _extensionsLoadVertexDataAsync;
|
|
369
|
+
private _extensionsLoadMeshPrimitiveAsync;
|
|
370
|
+
private _extensionsLoadMaterialAsync;
|
|
371
|
+
private _extensionsCreateMaterial;
|
|
372
|
+
private _extensionsLoadMaterialPropertiesAsync;
|
|
373
|
+
private _extensionsLoadTextureInfoAsync;
|
|
374
|
+
private _extensionsLoadTextureAsync;
|
|
375
|
+
private _extensionsLoadAnimationAsync;
|
|
376
|
+
private _extensionsLoadAnimationChannelAsync;
|
|
377
|
+
private _extensionsLoadSkinAsync;
|
|
378
|
+
private _extensionsLoadUriAsync;
|
|
379
|
+
private _extensionsLoadBufferViewAsync;
|
|
380
|
+
private _extensionsLoadBufferAsync;
|
|
381
|
+
/**
|
|
382
|
+
* Helper method called by a loader extension to load an glTF extension.
|
|
383
|
+
* @param context The context when loading the asset
|
|
384
|
+
* @param property The glTF property to load the extension from
|
|
385
|
+
* @param extensionName The name of the extension to load
|
|
386
|
+
* @param actionAsync The action to run
|
|
387
|
+
* @returns The promise returned by actionAsync or null if the extension does not exist
|
|
388
|
+
*/
|
|
389
|
+
static LoadExtensionAsync<TExtension = unknown, TResult = void>(context: string, property: IProperty, extensionName: string, actionAsync: (extensionContext: string, extension: TExtension) => Nullable<Promise<TResult>>): Nullable<Promise<TResult>>;
|
|
390
|
+
/**
|
|
391
|
+
* Helper method called by a loader extension to load a glTF extra.
|
|
392
|
+
* @param context The context when loading the asset
|
|
393
|
+
* @param property The glTF property to load the extra from
|
|
394
|
+
* @param extensionName The name of the extension to load
|
|
395
|
+
* @param actionAsync The action to run
|
|
396
|
+
* @returns The promise returned by actionAsync or null if the extra does not exist
|
|
397
|
+
*/
|
|
398
|
+
static LoadExtraAsync<TExtra = unknown, TResult = void>(context: string, property: IProperty, extensionName: string, actionAsync: (extraContext: string, extra: TExtra) => Nullable<Promise<TResult>>): Nullable<Promise<TResult>>;
|
|
399
|
+
/**
|
|
400
|
+
* Checks for presence of an extension.
|
|
401
|
+
* @param name The name of the extension to check
|
|
402
|
+
* @returns A boolean indicating the presence of the given extension name in `extensionsUsed`
|
|
403
|
+
*/
|
|
404
|
+
isExtensionUsed(name: string): boolean;
|
|
405
|
+
/**
|
|
406
|
+
* Increments the indentation level and logs a message.
|
|
407
|
+
* @param message The message to log
|
|
408
|
+
*/
|
|
409
|
+
logOpen(message: string): void;
|
|
410
|
+
/**
|
|
411
|
+
* Decrements the indentation level.
|
|
412
|
+
*/
|
|
413
|
+
logClose(): void;
|
|
414
|
+
/**
|
|
415
|
+
* Logs a message
|
|
416
|
+
* @param message The message to log
|
|
417
|
+
*/
|
|
418
|
+
log(message: string): void;
|
|
419
|
+
/**
|
|
420
|
+
* Starts a performance counter.
|
|
421
|
+
* @param counterName The name of the performance counter
|
|
422
|
+
*/
|
|
423
|
+
startPerformanceCounter(counterName: string): void;
|
|
424
|
+
/**
|
|
425
|
+
* Ends a performance counter.
|
|
426
|
+
* @param counterName The name of the performance counter
|
|
427
|
+
*/
|
|
428
|
+
endPerformanceCounter(counterName: string): void;
|
|
429
|
+
}
|