1 |
- {"ast":null,"code":"import { _WarnImport } from \"./devTools.js\";\nimport { Tags } from \"./tags.js\";\nimport { Color3, Color4 } from \"../Maths/math.color.js\";\nimport { Matrix, Quaternion, Vector2, Vector3 } from \"../Maths/math.vector.js\";\nimport { GetMergedStore } from \"./decorators.functions.js\";\nconst _copySource = function (creationFunction, source, instanciate, options = {}) {\n const destination = creationFunction();\n // Tags\n if (Tags && Tags.HasTags(source)) {\n Tags.AddTagsTo(destination, Tags.GetTags(source, true));\n }\n const classStore = GetMergedStore(destination);\n // Map from source texture uniqueId to destination texture\n const textureMap = {};\n // Properties\n for (const property in classStore) {\n const propertyDescriptor = classStore[property];\n const sourceProperty = source[property];\n const propertyType = propertyDescriptor.type;\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\n switch (propertyType) {\n case 0: // Value\n case 6: // Mesh reference\n case 11:\n // Camera reference\n destination[property] = sourceProperty;\n break;\n case 1:\n // Texture\n if (options.cloneTexturesOnlyOnce && textureMap[sourceProperty.uniqueId]) {\n destination[property] = textureMap[sourceProperty.uniqueId];\n } else {\n destination[property] = instanciate || sourceProperty.isRenderTarget ? sourceProperty : sourceProperty.clone();\n textureMap[sourceProperty.uniqueId] = destination[property];\n }\n break;\n case 2: // Color3\n case 3: // FresnelParameters\n case 4: // Vector2\n case 5: // Vector3\n case 7: // Color Curves\n case 10: // Quaternion\n case 12:\n // Matrix\n destination[property] = instanciate ? sourceProperty : sourceProperty.clone();\n break;\n }\n }\n }\n return destination;\n};\n/**\n * Class used to help serialization objects\n */\nexport class SerializationHelper {\n /**\n * Appends the serialized animations from the source animations\n * @param source Source containing the animations\n * @param destination Target to store the animations\n */\n static AppendSerializedAnimations(source, destination) {\n if (source.animations) {\n destination.animations = [];\n for (let animationIndex = 0; animationIndex < source.animations.length; animationIndex++) {\n const animation = source.animations[animationIndex];\n destination.animations.push(animation.serialize());\n }\n }\n }\n /**\n * Static function used to serialized a specific entity\n * @param entity defines the entity to serialize\n * @param serializationObject defines the optional target object where serialization data will be stored\n * @returns a JSON compatible object representing the serialization of the entity\n */\n static Serialize(entity, serializationObject) {\n if (!serializationObject) {\n serializationObject = {};\n }\n // Tags\n if (Tags) {\n serializationObject.tags = Tags.GetTags(entity);\n }\n const serializedProperties = GetMergedStore(entity);\n // Properties\n for (const property in serializedProperties) {\n const propertyDescriptor = serializedProperties[property];\n const targetPropertyName = propertyDescriptor.sourceName || property;\n const propertyType = propertyDescriptor.type;\n const sourceProperty = entity[property];\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\n switch (propertyType) {\n case 0:\n // Value\n serializationObject[targetPropertyName] = sourceProperty;\n break;\n case 1:\n // Texture\n serializationObject[targetPropertyName] = sourceProperty.serialize();\n break;\n case 2:\n // Color3\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n case 3:\n // FresnelParameters\n serializationObject[targetPropertyName] = sourceProperty.serialize();\n break;\n case 4:\n // Vector2\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n case 5:\n // Vector3\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n case 6:\n // Mesh reference\n serializationObject[targetPropertyName] = sourceProperty.id;\n break;\n case 7:\n // Color Curves\n serializationObject[targetPropertyName] = sourceProperty.serialize();\n break;\n case 8:\n // Color 4\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n case 9:\n // Image Processing\n serializationObject[targetPropertyName] = sourceProperty.serialize();\n break;\n case 10:\n // Quaternion\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n case 11:\n // Camera reference\n serializationObject[targetPropertyName] = sourceProperty.id;\n break;\n case 12:\n // Matrix\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n }\n }\n }\n return serializationObject;\n }\n /**\n * Given a source json and a destination object in a scene, this function will parse the source and will try to apply its content to the destination object\n * @param source the source json data\n * @param destination the destination object\n * @param scene the scene where the object is\n * @param rootUrl root url to use to load assets\n */\n static ParseProperties(source, destination, scene, rootUrl) {\n if (!rootUrl) {\n rootUrl = \"\";\n }\n const classStore = GetMergedStore(destination);\n // Properties\n for (const property in classStore) {\n const propertyDescriptor = classStore[property];\n const sourceProperty = source[propertyDescriptor.sourceName || property];\n const propertyType = propertyDescriptor.type;\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\n const dest = destination;\n switch (propertyType) {\n case 0:\n // Value\n dest[property] = sourceProperty;\n break;\n case 1:\n // Texture\n if (scene) {\n dest[property] = SerializationHelper._TextureParser(sourceProperty, scene, rootUrl);\n }\n break;\n case 2:\n // Color3\n dest[property] = Color3.FromArray(sourceProperty);\n break;\n case 3:\n // FresnelParameters\n dest[property] = SerializationHelper._FresnelParametersParser(sourceProperty);\n break;\n case 4:\n // Vector2\n dest[property] = Vector2.FromArray(sourceProperty);\n break;\n case 5:\n // Vector3\n dest[property] = Vector3.FromArray(sourceProperty);\n break;\n case 6:\n // Mesh reference\n if (scene) {\n dest[property] = scene.getLastMeshById(sourceProperty);\n }\n break;\n case 7:\n // Color Curves\n dest[property] = SerializationHelper._ColorCurvesParser(sourceProperty);\n break;\n case 8:\n // Color 4\n dest[property] = Color4.FromArray(sourceProperty);\n break;\n case 9:\n // Image Processing\n dest[property] = SerializationHelper._ImageProcessingConfigurationParser(sourceProperty);\n break;\n case 10:\n // Quaternion\n dest[property] = Quaternion.FromArray(sourceProperty);\n break;\n case 11:\n // Camera reference\n if (scene) {\n dest[property] = scene.getCameraById(sourceProperty);\n }\n break;\n case 12:\n // Matrix\n dest[property] = Matrix.FromArray(sourceProperty);\n break;\n }\n }\n }\n }\n /**\n * Creates a new entity from a serialization data object\n * @param creationFunction defines a function used to instanciated the new entity\n * @param source defines the source serialization data\n * @param scene defines the hosting scene\n * @param rootUrl defines the root url for resources\n * @returns a new entity\n */\n static Parse(creationFunction, source, scene, rootUrl = null) {\n const destination = creationFunction();\n // Tags\n if (Tags) {\n Tags.AddTagsTo(destination, source.tags);\n }\n SerializationHelper.ParseProperties(source, destination, scene, rootUrl);\n return destination;\n }\n /**\n * Clones an object\n * @param creationFunction defines the function used to instanciate the new object\n * @param source defines the source object\n * @param options defines the options to use\n * @returns the cloned object\n */\n static Clone(creationFunction, source, options = {}) {\n return _copySource(creationFunction, source, false, options);\n }\n /**\n * Instanciates a new object based on a source one (some data will be shared between both object)\n * @param creationFunction defines the function used to instanciate the new object\n * @param source defines the source object\n * @returns the new object\n */\n static Instanciate(creationFunction, source) {\n return _copySource(creationFunction, source, true);\n }\n}\n/**\n * Gets or sets a boolean to indicate if the UniqueId property should be serialized\n */\nSerializationHelper.AllowLoadingUniqueId = false;\n/**\n * @internal\n */\nSerializationHelper._ImageProcessingConfigurationParser = sourceProperty => {\n throw _WarnImport(\"ImageProcessingConfiguration\");\n};\n/**\n * @internal\n */\nSerializationHelper._FresnelParametersParser = sourceProperty => {\n throw _WarnImport(\"FresnelParameters\");\n};\n/**\n * @internal\n */\nSerializationHelper._ColorCurvesParser = sourceProperty => {\n throw _WarnImport(\"ColorCurves\");\n};\n/**\n * @internal\n */\nSerializationHelper._TextureParser = (sourceProperty, scene, rootUrl) => {\n throw _WarnImport(\"Texture\");\n};","map":{"version":3,"names":["_WarnImport","Tags","Color3","Color4","Matrix","Quaternion","Vector2","Vector3","GetMergedStore","_copySource","creationFunction","source","instanciate","options","destination","HasTags","AddTagsTo","GetTags","classStore","textureMap","property","propertyDescriptor","sourceProperty","propertyType","type","undefined","SerializationHelper","AllowLoadingUniqueId","cloneTexturesOnlyOnce","uniqueId","isRenderTarget","clone","AppendSerializedAnimations","animations","animationIndex","length","animation","push","serialize","Serialize","entity","serializationObject","tags","serializedProperties","targetPropertyName","sourceName","asArray","id","ParseProperties","scene","rootUrl","dest","_TextureParser","FromArray","_FresnelParametersParser","getLastMeshById","_ColorCurvesParser","_ImageProcessingConfigurationParser","getCameraById","Parse","Clone","Instanciate"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Misc/decorators.serialization.js"],"sourcesContent":["import { _WarnImport } from \"./devTools.js\";\nimport { Tags } from \"./tags.js\";\nimport { Color3, Color4 } from \"../Maths/math.color.js\";\nimport { Matrix, Quaternion, Vector2, Vector3 } from \"../Maths/math.vector.js\";\nimport { GetMergedStore } from \"./decorators.functions.js\";\nconst _copySource = function (creationFunction, source, instanciate, options = {}) {\n const destination = creationFunction();\n // Tags\n if (Tags && Tags.HasTags(source)) {\n Tags.AddTagsTo(destination, Tags.GetTags(source, true));\n }\n const classStore = GetMergedStore(destination);\n // Map from source texture uniqueId to destination texture\n const textureMap = {};\n // Properties\n for (const property in classStore) {\n const propertyDescriptor = classStore[property];\n const sourceProperty = source[property];\n const propertyType = propertyDescriptor.type;\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\n switch (propertyType) {\n case 0: // Value\n case 6: // Mesh reference\n case 11: // Camera reference\n destination[property] = sourceProperty;\n break;\n case 1: // Texture\n if (options.cloneTexturesOnlyOnce && textureMap[sourceProperty.uniqueId]) {\n destination[property] = textureMap[sourceProperty.uniqueId];\n }\n else {\n destination[property] = instanciate || sourceProperty.isRenderTarget ? sourceProperty : sourceProperty.clone();\n textureMap[sourceProperty.uniqueId] = destination[property];\n }\n break;\n case 2: // Color3\n case 3: // FresnelParameters\n case 4: // Vector2\n case 5: // Vector3\n case 7: // Color Curves\n case 10: // Quaternion\n case 12: // Matrix\n destination[property] = instanciate ? sourceProperty : sourceProperty.clone();\n break;\n }\n }\n }\n return destination;\n};\n/**\n * Class used to help serialization objects\n */\nexport class SerializationHelper {\n /**\n * Appends the serialized animations from the source animations\n * @param source Source containing the animations\n * @param destination Target to store the animations\n */\n static AppendSerializedAnimations(source, destination) {\n if (source.animations) {\n destination.animations = [];\n for (let animationIndex = 0; animationIndex < source.animations.length; animationIndex++) {\n const animation = source.animations[animationIndex];\n destination.animations.push(animation.serialize());\n }\n }\n }\n /**\n * Static function used to serialized a specific entity\n * @param entity defines the entity to serialize\n * @param serializationObject defines the optional target object where serialization data will be stored\n * @returns a JSON compatible object representing the serialization of the entity\n */\n static Serialize(entity, serializationObject) {\n if (!serializationObject) {\n serializationObject = {};\n }\n // Tags\n if (Tags) {\n serializationObject.tags = Tags.GetTags(entity);\n }\n const serializedProperties = GetMergedStore(entity);\n // Properties\n for (const property in serializedProperties) {\n const propertyDescriptor = serializedProperties[property];\n const targetPropertyName = propertyDescriptor.sourceName || property;\n const propertyType = propertyDescriptor.type;\n const sourceProperty = entity[property];\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\n switch (propertyType) {\n case 0: // Value\n serializationObject[targetPropertyName] = sourceProperty;\n break;\n case 1: // Texture\n serializationObject[targetPropertyName] = sourceProperty.serialize();\n break;\n case 2: // Color3\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n case 3: // FresnelParameters\n serializationObject[targetPropertyName] = sourceProperty.serialize();\n break;\n case 4: // Vector2\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n case 5: // Vector3\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n case 6: // Mesh reference\n serializationObject[targetPropertyName] = sourceProperty.id;\n break;\n case 7: // Color Curves\n serializationObject[targetPropertyName] = sourceProperty.serialize();\n break;\n case 8: // Color 4\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n case 9: // Image Processing\n serializationObject[targetPropertyName] = sourceProperty.serialize();\n break;\n case 10: // Quaternion\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n case 11: // Camera reference\n serializationObject[targetPropertyName] = sourceProperty.id;\n break;\n case 12: // Matrix\n serializationObject[targetPropertyName] = sourceProperty.asArray();\n break;\n }\n }\n }\n return serializationObject;\n }\n /**\n * Given a source json and a destination object in a scene, this function will parse the source and will try to apply its content to the destination object\n * @param source the source json data\n * @param destination the destination object\n * @param scene the scene where the object is\n * @param rootUrl root url to use to load assets\n */\n static ParseProperties(source, destination, scene, rootUrl) {\n if (!rootUrl) {\n rootUrl = \"\";\n }\n const classStore = GetMergedStore(destination);\n // Properties\n for (const property in classStore) {\n const propertyDescriptor = classStore[property];\n const sourceProperty = source[propertyDescriptor.sourceName || property];\n const propertyType = propertyDescriptor.type;\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\n const dest = destination;\n switch (propertyType) {\n case 0: // Value\n dest[property] = sourceProperty;\n break;\n case 1: // Texture\n if (scene) {\n dest[property] = SerializationHelper._TextureParser(sourceProperty, scene, rootUrl);\n }\n break;\n case 2: // Color3\n dest[property] = Color3.FromArray(sourceProperty);\n break;\n case 3: // FresnelParameters\n dest[property] = SerializationHelper._FresnelParametersParser(sourceProperty);\n break;\n case 4: // Vector2\n dest[property] = Vector2.FromArray(sourceProperty);\n break;\n case 5: // Vector3\n dest[property] = Vector3.FromArray(sourceProperty);\n break;\n case 6: // Mesh reference\n if (scene) {\n dest[property] = scene.getLastMeshById(sourceProperty);\n }\n break;\n case 7: // Color Curves\n dest[property] = SerializationHelper._ColorCurvesParser(sourceProperty);\n break;\n case 8: // Color 4\n dest[property] = Color4.FromArray(sourceProperty);\n break;\n case 9: // Image Processing\n dest[property] = SerializationHelper._ImageProcessingConfigurationParser(sourceProperty);\n break;\n case 10: // Quaternion\n dest[property] = Quaternion.FromArray(sourceProperty);\n break;\n case 11: // Camera reference\n if (scene) {\n dest[property] = scene.getCameraById(sourceProperty);\n }\n break;\n case 12: // Matrix\n dest[property] = Matrix.FromArray(sourceProperty);\n break;\n }\n }\n }\n }\n /**\n * Creates a new entity from a serialization data object\n * @param creationFunction defines a function used to instanciated the new entity\n * @param source defines the source serialization data\n * @param scene defines the hosting scene\n * @param rootUrl defines the root url for resources\n * @returns a new entity\n */\n static Parse(creationFunction, source, scene, rootUrl = null) {\n const destination = creationFunction();\n // Tags\n if (Tags) {\n Tags.AddTagsTo(destination, source.tags);\n }\n SerializationHelper.ParseProperties(source, destination, scene, rootUrl);\n return destination;\n }\n /**\n * Clones an object\n * @param creationFunction defines the function used to instanciate the new object\n * @param source defines the source object\n * @param options defines the options to use\n * @returns the cloned object\n */\n static Clone(creationFunction, source, options = {}) {\n return _copySource(creationFunction, source, false, options);\n }\n /**\n * Instanciates a new object based on a source one (some data will be shared between both object)\n * @param creationFunction defines the function used to instanciate the new object\n * @param source defines the source object\n * @returns the new object\n */\n static Instanciate(creationFunction, source) {\n return _copySource(creationFunction, source, true);\n }\n}\n/**\n * Gets or sets a boolean to indicate if the UniqueId property should be serialized\n */\nSerializationHelper.AllowLoadingUniqueId = false;\n/**\n * @internal\n */\nSerializationHelper._ImageProcessingConfigurationParser = (sourceProperty) => {\n throw _WarnImport(\"ImageProcessingConfiguration\");\n};\n/**\n * @internal\n */\nSerializationHelper._FresnelParametersParser = (sourceProperty) => {\n throw _WarnImport(\"FresnelParameters\");\n};\n/**\n * @internal\n */\nSerializationHelper._ColorCurvesParser = (sourceProperty) => {\n throw _WarnImport(\"ColorCurves\");\n};\n/**\n * @internal\n */\nSerializationHelper._TextureParser = (sourceProperty, scene, rootUrl) => {\n throw _WarnImport(\"Texture\");\n};\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|