1 |
- {"ast":null,"code":"import { __decorate } from \"../tslib.es6.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { EngineStore } from \"../Engines/engineStore.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { serialize } from \"../Misc/decorators.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\nimport { GetClass } from \"../Misc/typeStore.js\";\n/**\n * Defines a target to use with MorphTargetManager\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/morphTargets\n */\nexport class MorphTarget {\n /**\n * Gets or sets the influence of this target (ie. its weight in the overall morphing)\n */\n get influence() {\n return this._influence;\n }\n set influence(influence) {\n if (this._influence === influence) {\n return;\n }\n const previous = this._influence;\n this._influence = influence;\n if (this.onInfluenceChanged.hasObservers()) {\n this.onInfluenceChanged.notifyObservers(previous === 0 || influence === 0);\n }\n }\n /**\n * Gets or sets the animation properties override\n */\n get animationPropertiesOverride() {\n if (!this._animationPropertiesOverride && this._scene) {\n return this._scene.animationPropertiesOverride;\n }\n return this._animationPropertiesOverride;\n }\n set animationPropertiesOverride(value) {\n this._animationPropertiesOverride = value;\n }\n /**\n * Creates a new MorphTarget\n * @param name defines the name of the target\n * @param influence defines the influence to use\n * @param scene defines the scene the morphtarget belongs to\n */\n constructor( /** defines the name of the target */\n name, influence = 0, scene = null) {\n this.name = name;\n /**\n * Gets or sets the list of animations\n */\n this.animations = [];\n this._positions = null;\n this._normals = null;\n this._tangents = null;\n this._uvs = null;\n this._uniqueId = 0;\n /**\n * Observable raised when the influence changes\n */\n this.onInfluenceChanged = new Observable();\n /** @internal */\n this._onDataLayoutChanged = new Observable();\n this._animationPropertiesOverride = null;\n this.id = name;\n this._scene = scene || EngineStore.LastCreatedScene;\n this.influence = influence;\n if (this._scene) {\n this._uniqueId = this._scene.getUniqueId();\n }\n }\n /**\n * Gets the unique ID of this manager\n */\n get uniqueId() {\n return this._uniqueId;\n }\n /**\n * Gets a boolean defining if the target contains position data\n */\n get hasPositions() {\n return !!this._positions;\n }\n /**\n * Gets a boolean defining if the target contains normal data\n */\n get hasNormals() {\n return !!this._normals;\n }\n /**\n * Gets a boolean defining if the target contains tangent data\n */\n get hasTangents() {\n return !!this._tangents;\n }\n /**\n * Gets a boolean defining if the target contains texture coordinates data\n */\n get hasUVs() {\n return !!this._uvs;\n }\n /**\n * Affects position data to this target\n * @param data defines the position data to use\n */\n setPositions(data) {\n const hadPositions = this.hasPositions;\n this._positions = data;\n if (hadPositions !== this.hasPositions) {\n this._onDataLayoutChanged.notifyObservers(undefined);\n }\n }\n /**\n * Gets the position data stored in this target\n * @returns a FloatArray containing the position data (or null if not present)\n */\n getPositions() {\n return this._positions;\n }\n /**\n * Affects normal data to this target\n * @param data defines the normal data to use\n */\n setNormals(data) {\n const hadNormals = this.hasNormals;\n this._normals = data;\n if (hadNormals !== this.hasNormals) {\n this._onDataLayoutChanged.notifyObservers(undefined);\n }\n }\n /**\n * Gets the normal data stored in this target\n * @returns a FloatArray containing the normal data (or null if not present)\n */\n getNormals() {\n return this._normals;\n }\n /**\n * Affects tangent data to this target\n * @param data defines the tangent data to use\n */\n setTangents(data) {\n const hadTangents = this.hasTangents;\n this._tangents = data;\n if (hadTangents !== this.hasTangents) {\n this._onDataLayoutChanged.notifyObservers(undefined);\n }\n }\n /**\n * Gets the tangent data stored in this target\n * @returns a FloatArray containing the tangent data (or null if not present)\n */\n getTangents() {\n return this._tangents;\n }\n /**\n * Affects texture coordinates data to this target\n * @param data defines the texture coordinates data to use\n */\n setUVs(data) {\n const hadUVs = this.hasUVs;\n this._uvs = data;\n if (hadUVs !== this.hasUVs) {\n this._onDataLayoutChanged.notifyObservers(undefined);\n }\n }\n /**\n * Gets the texture coordinates data stored in this target\n * @returns a FloatArray containing the texture coordinates data (or null if not present)\n */\n getUVs() {\n return this._uvs;\n }\n /**\n * Clone the current target\n * @returns a new MorphTarget\n */\n clone() {\n const newOne = SerializationHelper.Clone(() => new MorphTarget(this.name, this.influence, this._scene), this);\n newOne._positions = this._positions;\n newOne._normals = this._normals;\n newOne._tangents = this._tangents;\n newOne._uvs = this._uvs;\n return newOne;\n }\n /**\n * Serializes the current target into a Serialization object\n * @returns the serialized object\n */\n serialize() {\n const serializationObject = {};\n serializationObject.name = this.name;\n serializationObject.influence = this.influence;\n serializationObject.positions = Array.prototype.slice.call(this.getPositions());\n if (this.id != null) {\n serializationObject.id = this.id;\n }\n if (this.hasNormals) {\n serializationObject.normals = Array.prototype.slice.call(this.getNormals());\n }\n if (this.hasTangents) {\n serializationObject.tangents = Array.prototype.slice.call(this.getTangents());\n }\n if (this.hasUVs) {\n serializationObject.uvs = Array.prototype.slice.call(this.getUVs());\n }\n // Animations\n SerializationHelper.AppendSerializedAnimations(this, serializationObject);\n return serializationObject;\n }\n /**\n * Returns the string \"MorphTarget\"\n * @returns \"MorphTarget\"\n */\n getClassName() {\n return \"MorphTarget\";\n }\n // Statics\n /**\n * Creates a new target from serialized data\n * @param serializationObject defines the serialized data to use\n * @param scene defines the hosting scene\n * @returns a new MorphTarget\n */\n static Parse(serializationObject, scene) {\n const result = new MorphTarget(serializationObject.name, serializationObject.influence);\n result.setPositions(serializationObject.positions);\n if (serializationObject.id != null) {\n result.id = serializationObject.id;\n }\n if (serializationObject.normals) {\n result.setNormals(serializationObject.normals);\n }\n if (serializationObject.tangents) {\n result.setTangents(serializationObject.tangents);\n }\n if (serializationObject.uvs) {\n result.setUVs(serializationObject.uvs);\n }\n // Animations\n if (serializationObject.animations) {\n for (let animationIndex = 0; animationIndex < serializationObject.animations.length; animationIndex++) {\n const parsedAnimation = serializationObject.animations[animationIndex];\n const internalClass = GetClass(\"BABYLON.Animation\");\n if (internalClass) {\n result.animations.push(internalClass.Parse(parsedAnimation));\n }\n }\n if (serializationObject.autoAnimate && scene) {\n scene.beginAnimation(result, serializationObject.autoAnimateFrom, serializationObject.autoAnimateTo, serializationObject.autoAnimateLoop, serializationObject.autoAnimateSpeed || 1.0);\n }\n }\n return result;\n }\n /**\n * Creates a MorphTarget from mesh data\n * @param mesh defines the source mesh\n * @param name defines the name to use for the new target\n * @param influence defines the influence to attach to the target\n * @returns a new MorphTarget\n */\n static FromMesh(mesh, name, influence) {\n if (!name) {\n name = mesh.name;\n }\n const result = new MorphTarget(name, influence, mesh.getScene());\n result.setPositions(mesh.getVerticesData(VertexBuffer.PositionKind));\n if (mesh.isVerticesDataPresent(VertexBuffer.NormalKind)) {\n result.setNormals(mesh.getVerticesData(VertexBuffer.NormalKind));\n }\n if (mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {\n result.setTangents(mesh.getVerticesData(VertexBuffer.TangentKind));\n }\n if (mesh.isVerticesDataPresent(VertexBuffer.UVKind)) {\n result.setUVs(mesh.getVerticesData(VertexBuffer.UVKind));\n }\n return result;\n }\n}\n__decorate([serialize()], MorphTarget.prototype, \"id\", void 0);","map":{"version":3,"names":["__decorate","Observable","EngineStore","VertexBuffer","serialize","SerializationHelper","GetClass","MorphTarget","influence","_influence","previous","onInfluenceChanged","hasObservers","notifyObservers","animationPropertiesOverride","_animationPropertiesOverride","_scene","value","constructor","name","scene","animations","_positions","_normals","_tangents","_uvs","_uniqueId","_onDataLayoutChanged","id","LastCreatedScene","getUniqueId","uniqueId","hasPositions","hasNormals","hasTangents","hasUVs","setPositions","data","hadPositions","undefined","getPositions","setNormals","hadNormals","getNormals","setTangents","hadTangents","getTangents","setUVs","hadUVs","getUVs","clone","newOne","Clone","serializationObject","positions","Array","prototype","slice","call","normals","tangents","uvs","AppendSerializedAnimations","getClassName","Parse","result","animationIndex","length","parsedAnimation","internalClass","push","autoAnimate","beginAnimation","autoAnimateFrom","autoAnimateTo","autoAnimateLoop","autoAnimateSpeed","FromMesh","mesh","getScene","getVerticesData","PositionKind","isVerticesDataPresent","NormalKind","TangentKind","UVKind"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Morph/morphTarget.js"],"sourcesContent":["import { __decorate } from \"../tslib.es6.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { EngineStore } from \"../Engines/engineStore.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { serialize } from \"../Misc/decorators.js\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization.js\";\nimport { GetClass } from \"../Misc/typeStore.js\";\n/**\n * Defines a target to use with MorphTargetManager\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/morphTargets\n */\nexport class MorphTarget {\n /**\n * Gets or sets the influence of this target (ie. its weight in the overall morphing)\n */\n get influence() {\n return this._influence;\n }\n set influence(influence) {\n if (this._influence === influence) {\n return;\n }\n const previous = this._influence;\n this._influence = influence;\n if (this.onInfluenceChanged.hasObservers()) {\n this.onInfluenceChanged.notifyObservers(previous === 0 || influence === 0);\n }\n }\n /**\n * Gets or sets the animation properties override\n */\n get animationPropertiesOverride() {\n if (!this._animationPropertiesOverride && this._scene) {\n return this._scene.animationPropertiesOverride;\n }\n return this._animationPropertiesOverride;\n }\n set animationPropertiesOverride(value) {\n this._animationPropertiesOverride = value;\n }\n /**\n * Creates a new MorphTarget\n * @param name defines the name of the target\n * @param influence defines the influence to use\n * @param scene defines the scene the morphtarget belongs to\n */\n constructor(\n /** defines the name of the target */\n name, influence = 0, scene = null) {\n this.name = name;\n /**\n * Gets or sets the list of animations\n */\n this.animations = [];\n this._positions = null;\n this._normals = null;\n this._tangents = null;\n this._uvs = null;\n this._uniqueId = 0;\n /**\n * Observable raised when the influence changes\n */\n this.onInfluenceChanged = new Observable();\n /** @internal */\n this._onDataLayoutChanged = new Observable();\n this._animationPropertiesOverride = null;\n this.id = name;\n this._scene = scene || EngineStore.LastCreatedScene;\n this.influence = influence;\n if (this._scene) {\n this._uniqueId = this._scene.getUniqueId();\n }\n }\n /**\n * Gets the unique ID of this manager\n */\n get uniqueId() {\n return this._uniqueId;\n }\n /**\n * Gets a boolean defining if the target contains position data\n */\n get hasPositions() {\n return !!this._positions;\n }\n /**\n * Gets a boolean defining if the target contains normal data\n */\n get hasNormals() {\n return !!this._normals;\n }\n /**\n * Gets a boolean defining if the target contains tangent data\n */\n get hasTangents() {\n return !!this._tangents;\n }\n /**\n * Gets a boolean defining if the target contains texture coordinates data\n */\n get hasUVs() {\n return !!this._uvs;\n }\n /**\n * Affects position data to this target\n * @param data defines the position data to use\n */\n setPositions(data) {\n const hadPositions = this.hasPositions;\n this._positions = data;\n if (hadPositions !== this.hasPositions) {\n this._onDataLayoutChanged.notifyObservers(undefined);\n }\n }\n /**\n * Gets the position data stored in this target\n * @returns a FloatArray containing the position data (or null if not present)\n */\n getPositions() {\n return this._positions;\n }\n /**\n * Affects normal data to this target\n * @param data defines the normal data to use\n */\n setNormals(data) {\n const hadNormals = this.hasNormals;\n this._normals = data;\n if (hadNormals !== this.hasNormals) {\n this._onDataLayoutChanged.notifyObservers(undefined);\n }\n }\n /**\n * Gets the normal data stored in this target\n * @returns a FloatArray containing the normal data (or null if not present)\n */\n getNormals() {\n return this._normals;\n }\n /**\n * Affects tangent data to this target\n * @param data defines the tangent data to use\n */\n setTangents(data) {\n const hadTangents = this.hasTangents;\n this._tangents = data;\n if (hadTangents !== this.hasTangents) {\n this._onDataLayoutChanged.notifyObservers(undefined);\n }\n }\n /**\n * Gets the tangent data stored in this target\n * @returns a FloatArray containing the tangent data (or null if not present)\n */\n getTangents() {\n return this._tangents;\n }\n /**\n * Affects texture coordinates data to this target\n * @param data defines the texture coordinates data to use\n */\n setUVs(data) {\n const hadUVs = this.hasUVs;\n this._uvs = data;\n if (hadUVs !== this.hasUVs) {\n this._onDataLayoutChanged.notifyObservers(undefined);\n }\n }\n /**\n * Gets the texture coordinates data stored in this target\n * @returns a FloatArray containing the texture coordinates data (or null if not present)\n */\n getUVs() {\n return this._uvs;\n }\n /**\n * Clone the current target\n * @returns a new MorphTarget\n */\n clone() {\n const newOne = SerializationHelper.Clone(() => new MorphTarget(this.name, this.influence, this._scene), this);\n newOne._positions = this._positions;\n newOne._normals = this._normals;\n newOne._tangents = this._tangents;\n newOne._uvs = this._uvs;\n return newOne;\n }\n /**\n * Serializes the current target into a Serialization object\n * @returns the serialized object\n */\n serialize() {\n const serializationObject = {};\n serializationObject.name = this.name;\n serializationObject.influence = this.influence;\n serializationObject.positions = Array.prototype.slice.call(this.getPositions());\n if (this.id != null) {\n serializationObject.id = this.id;\n }\n if (this.hasNormals) {\n serializationObject.normals = Array.prototype.slice.call(this.getNormals());\n }\n if (this.hasTangents) {\n serializationObject.tangents = Array.prototype.slice.call(this.getTangents());\n }\n if (this.hasUVs) {\n serializationObject.uvs = Array.prototype.slice.call(this.getUVs());\n }\n // Animations\n SerializationHelper.AppendSerializedAnimations(this, serializationObject);\n return serializationObject;\n }\n /**\n * Returns the string \"MorphTarget\"\n * @returns \"MorphTarget\"\n */\n getClassName() {\n return \"MorphTarget\";\n }\n // Statics\n /**\n * Creates a new target from serialized data\n * @param serializationObject defines the serialized data to use\n * @param scene defines the hosting scene\n * @returns a new MorphTarget\n */\n static Parse(serializationObject, scene) {\n const result = new MorphTarget(serializationObject.name, serializationObject.influence);\n result.setPositions(serializationObject.positions);\n if (serializationObject.id != null) {\n result.id = serializationObject.id;\n }\n if (serializationObject.normals) {\n result.setNormals(serializationObject.normals);\n }\n if (serializationObject.tangents) {\n result.setTangents(serializationObject.tangents);\n }\n if (serializationObject.uvs) {\n result.setUVs(serializationObject.uvs);\n }\n // Animations\n if (serializationObject.animations) {\n for (let animationIndex = 0; animationIndex < serializationObject.animations.length; animationIndex++) {\n const parsedAnimation = serializationObject.animations[animationIndex];\n const internalClass = GetClass(\"BABYLON.Animation\");\n if (internalClass) {\n result.animations.push(internalClass.Parse(parsedAnimation));\n }\n }\n if (serializationObject.autoAnimate && scene) {\n scene.beginAnimation(result, serializationObject.autoAnimateFrom, serializationObject.autoAnimateTo, serializationObject.autoAnimateLoop, serializationObject.autoAnimateSpeed || 1.0);\n }\n }\n return result;\n }\n /**\n * Creates a MorphTarget from mesh data\n * @param mesh defines the source mesh\n * @param name defines the name to use for the new target\n * @param influence defines the influence to attach to the target\n * @returns a new MorphTarget\n */\n static FromMesh(mesh, name, influence) {\n if (!name) {\n name = mesh.name;\n }\n const result = new MorphTarget(name, influence, mesh.getScene());\n result.setPositions(mesh.getVerticesData(VertexBuffer.PositionKind));\n if (mesh.isVerticesDataPresent(VertexBuffer.NormalKind)) {\n result.setNormals(mesh.getVerticesData(VertexBuffer.NormalKind));\n }\n if (mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {\n result.setTangents(mesh.getVerticesData(VertexBuffer.TangentKind));\n }\n if (mesh.isVerticesDataPresent(VertexBuffer.UVKind)) {\n result.setUVs(mesh.getVerticesData(VertexBuffer.UVKind));\n }\n return result;\n }\n}\n__decorate([\n serialize()\n], MorphTarget.prototype, \"id\", void 0);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|