1 |
- {"ast":null,"code":"import { GLTFLoader } from \"../glTFLoader.js\";\nimport { Logger } from \"@babylonjs/core/Misc/logger.js\";\nimport { animationPointerTree } from \"./KHR_animation_pointer.data.js\";\nimport { GLTFPathToObjectConverter } from \"./gltfPathToObjectConverter.js\";\nconst NAME = \"KHR_animation_pointer\";\n/**\n * Class to convert an animation pointer path to a smart object that\n * gets data from the animation buffer and creates animations.\n */\nclass AnimationPointerPathToObjectConverter extends GLTFPathToObjectConverter {\n constructor(gltf) {\n super(gltf, animationPointerTree);\n }\n}\n/**\n * [Specification PR](https://github.com/KhronosGroup/glTF/pull/2147)\n * !!! Experimental Extension Subject to Changes !!!\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_animation_pointer {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this._pathToObjectConverter = new AnimationPointerPathToObjectConverter(this._loader.gltf);\n }\n /**\n * Defines whether this extension is enabled.\n */\n get enabled() {\n return this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._pathToObjectConverter; // GC\n }\n /**\n * Loads a glTF animation channel.\n * @param context The context when loading the asset\n * @param animationContext The context of the animation when loading the asset\n * @param animation The glTF animation property\n * @param channel The glTF animation channel property\n * @param onLoad Called for each animation loaded\n * @returns A void promise that resolves when the load is complete or null if not handled\n */\n _loadAnimationChannelAsync(context, animationContext, animation, channel, onLoad) {\n var _channel$target$exten;\n const extension = (_channel$target$exten = channel.target.extensions) === null || _channel$target$exten === void 0 ? void 0 : _channel$target$exten.KHR_animation_pointer;\n if (!extension || !this._pathToObjectConverter) {\n return null;\n }\n if (channel.target.path !== \"pointer\" /* AnimationChannelTargetPath.POINTER */) {\n Logger.Warn(`${context}/target/path: Value (${channel.target.path}) must be (${\"pointer\" /* AnimationChannelTargetPath.POINTER */}) when using the ${this.name} extension`);\n }\n if (channel.target.node != undefined) {\n Logger.Warn(`${context}/target/node: Value (${channel.target.node}) must not be present when using the ${this.name} extension`);\n }\n const extensionContext = `${context}/extensions/${this.name}`;\n const pointer = extension.pointer;\n if (!pointer) {\n throw new Error(`${extensionContext}: Pointer is missing`);\n }\n try {\n const targetInfo = this._pathToObjectConverter.convert(pointer);\n return this._loader._loadAnimationChannelFromTargetInfoAsync(context, animationContext, animation, channel, targetInfo, onLoad);\n } catch (e) {\n Logger.Warn(`${extensionContext}/pointer: Invalid pointer (${pointer}) skipped`);\n return null;\n }\n }\n}\nGLTFLoader.RegisterExtension(NAME, loader => new KHR_animation_pointer(loader));","map":{"version":3,"names":["GLTFLoader","Logger","animationPointerTree","GLTFPathToObjectConverter","NAME","AnimationPointerPathToObjectConverter","constructor","gltf","KHR_animation_pointer","loader","name","_loader","_pathToObjectConverter","enabled","isExtensionUsed","dispose","_loadAnimationChannelAsync","context","animationContext","animation","channel","onLoad","_channel$target$exten","extension","target","extensions","path","Warn","node","undefined","extensionContext","pointer","Error","targetInfo","convert","_loadAnimationChannelFromTargetInfoAsync","e","RegisterExtension"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.js"],"sourcesContent":["import { GLTFLoader } from \"../glTFLoader.js\";\nimport { Logger } from \"@babylonjs/core/Misc/logger.js\";\nimport { animationPointerTree } from \"./KHR_animation_pointer.data.js\";\nimport { GLTFPathToObjectConverter } from \"./gltfPathToObjectConverter.js\";\nconst NAME = \"KHR_animation_pointer\";\n/**\n * Class to convert an animation pointer path to a smart object that\n * gets data from the animation buffer and creates animations.\n */\nclass AnimationPointerPathToObjectConverter extends GLTFPathToObjectConverter {\n constructor(gltf) {\n super(gltf, animationPointerTree);\n }\n}\n/**\n * [Specification PR](https://github.com/KhronosGroup/glTF/pull/2147)\n * !!! Experimental Extension Subject to Changes !!!\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_animation_pointer {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this._pathToObjectConverter = new AnimationPointerPathToObjectConverter(this._loader.gltf);\n }\n /**\n * Defines whether this extension is enabled.\n */\n get enabled() {\n return this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._pathToObjectConverter; // GC\n }\n /**\n * Loads a glTF animation channel.\n * @param context The context when loading the asset\n * @param animationContext The context of the animation when loading the asset\n * @param animation The glTF animation property\n * @param channel The glTF animation channel property\n * @param onLoad Called for each animation loaded\n * @returns A void promise that resolves when the load is complete or null if not handled\n */\n _loadAnimationChannelAsync(context, animationContext, animation, channel, onLoad) {\n const extension = channel.target.extensions?.KHR_animation_pointer;\n if (!extension || !this._pathToObjectConverter) {\n return null;\n }\n if (channel.target.path !== \"pointer\" /* AnimationChannelTargetPath.POINTER */) {\n Logger.Warn(`${context}/target/path: Value (${channel.target.path}) must be (${\"pointer\" /* AnimationChannelTargetPath.POINTER */}) when using the ${this.name} extension`);\n }\n if (channel.target.node != undefined) {\n Logger.Warn(`${context}/target/node: Value (${channel.target.node}) must not be present when using the ${this.name} extension`);\n }\n const extensionContext = `${context}/extensions/${this.name}`;\n const pointer = extension.pointer;\n if (!pointer) {\n throw new Error(`${extensionContext}: Pointer is missing`);\n }\n try {\n const targetInfo = this._pathToObjectConverter.convert(pointer);\n return this._loader._loadAnimationChannelFromTargetInfoAsync(context, animationContext, animation, channel, targetInfo, onLoad);\n }\n catch (e) {\n Logger.Warn(`${extensionContext}/pointer: Invalid pointer (${pointer}) skipped`);\n return null;\n }\n }\n}\nGLTFLoader.RegisterExtension(NAME, (loader) => new KHR_animation_pointer(loader));\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|