92440c76f271204db06fa453e755e526b1d2d1c2093ae13a1bcf75dea5ca78b7.json 26 KB

1
  1. {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { Color3, Color4 } from \"../Maths/math.color.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { Mesh } from \"../Meshes/mesh.js\";\nimport { InstancedMesh } from \"../Meshes/instancedMesh.js\";\nimport { Material } from \"../Materials/material.js\";\nimport { ShaderMaterial } from \"../Materials/shaderMaterial.js\";\nMesh._LinesMeshParser = (parsedMesh, scene) => {\n return LinesMesh.Parse(parsedMesh, scene);\n};\n/**\n * Line mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param\n */\nexport class LinesMesh extends Mesh {\n _isShaderMaterial(shader) {\n return shader.getClassName() === \"ShaderMaterial\";\n }\n /**\n * Creates a new LinesMesh\n * @param name defines the name\n * @param scene defines the hosting scene\n * @param parent defines the parent mesh if any\n * @param source defines the optional source LinesMesh used to clone data from\n * @param doNotCloneChildren When cloning, skip cloning child meshes of source, default False.\n * When false, achieved by calling a clone(), also passing False.\n * This will make creation of children, recursive.\n * @param useVertexColor defines if this LinesMesh supports vertex color\n * @param useVertexAlpha defines if this LinesMesh supports vertex alpha\n * @param material material to use to draw the line. If not provided, will create a new one\n */\n constructor(name, scene = null, parent = null, source = null, doNotCloneChildren,\n /**\n * If vertex color should be applied to the mesh\n */\n useVertexColor,\n /**\n * If vertex alpha should be applied to the mesh\n */\n useVertexAlpha, material) {\n var _this;\n super(name, scene, parent, source, doNotCloneChildren);\n _this = this;\n this.useVertexColor = useVertexColor;\n this.useVertexAlpha = useVertexAlpha;\n /**\n * Color of the line (Default: White)\n */\n this.color = new Color3(1, 1, 1);\n /**\n * Alpha of the line (Default: 1)\n */\n this.alpha = 1;\n /** Shader language used by the material */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n if (source) {\n this.color = source.color.clone();\n this.alpha = source.alpha;\n this.useVertexColor = source.useVertexColor;\n this.useVertexAlpha = source.useVertexAlpha;\n }\n this.intersectionThreshold = 0.1;\n const defines = [];\n const options = {\n attributes: [VertexBuffer.PositionKind],\n uniforms: [\"world\", \"viewProjection\"],\n needAlphaBlending: true,\n defines: defines,\n useClipPlane: null,\n shaderLanguage: 0 /* ShaderLanguage.GLSL */\n };\n if (useVertexAlpha === false) {\n options.needAlphaBlending = false;\n } else {\n options.defines.push(\"#define VERTEXALPHA\");\n }\n if (!useVertexColor) {\n options.uniforms.push(\"color\");\n this._color4 = new Color4();\n } else {\n options.defines.push(\"#define VERTEXCOLOR\");\n options.attributes.push(VertexBuffer.ColorKind);\n }\n if (material) {\n this.material = material;\n } else {\n const engine = this.getScene().getEngine();\n if (engine.isWebGPU && !LinesMesh.ForceGLSL) {\n this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n }\n options.shaderLanguage = this._shaderLanguage;\n options.extraInitializationsAsync = /*#__PURE__*/_asyncToGenerator(function* () {\n if (_this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n yield Promise.all([import(\"../ShadersWGSL/color.vertex.js\"), import(\"../ShadersWGSL/color.fragment.js\")]);\n } else {\n yield Promise.all([import(\"../Shaders/color.vertex.js\"), import(\"../Shaders/color.fragment.js\")]);\n }\n });\n this.material = new ShaderMaterial(\"colorShader\", this.getScene(), \"color\", options, false);\n this.material.doNotSerialize = true;\n }\n }\n isReady() {\n if (!this._lineMaterial.isReady(this, !!this._userInstancedBuffersStorage || this.hasThinInstances)) {\n return false;\n }\n return super.isReady();\n }\n /**\n * @returns the string \"LineMesh\"\n */\n getClassName() {\n return \"LinesMesh\";\n }\n /**\n * @internal\n */\n get material() {\n return this._lineMaterial;\n }\n /**\n * @internal\n */\n set material(value) {\n this._lineMaterial = value;\n this._lineMaterial.fillMode = Material.LineListDrawMode;\n }\n /**\n * @internal\n */\n get checkCollisions() {\n return false;\n }\n set checkCollisions(value) {\n // Just ignore it\n }\n /**\n * @internal\n */\n _bind(_subMesh, colorEffect) {\n if (!this._geometry) {\n return this;\n }\n // VBOs\n const indexToBind = this.isUnIndexed ? null : this._geometry.getIndexBuffer();\n if (!this._userInstancedBuffersStorage || this.hasThinInstances) {\n this._geometry._bind(colorEffect, indexToBind);\n } else {\n this._geometry._bind(colorEffect, indexToBind, this._userInstancedBuffersStorage.vertexBuffers, this._userInstancedBuffersStorage.vertexArrayObjects);\n }\n // Color\n if (!this.useVertexColor && this._isShaderMaterial(this._lineMaterial)) {\n const {\n r,\n g,\n b\n } = this.color;\n this._color4.set(r, g, b, this.alpha);\n this._lineMaterial.setColor4(\"color\", this._color4);\n }\n return this;\n }\n /**\n * @internal\n */\n _draw(subMesh, fillMode, instancesCount) {\n if (!this._geometry || !this._geometry.getVertexBuffers() || !this._unIndexed && !this._geometry.getIndexBuffer()) {\n return this;\n }\n const engine = this.getScene().getEngine();\n // Draw order\n if (this._unIndexed) {\n engine.drawArraysType(Material.LineListDrawMode, subMesh.verticesStart, subMesh.verticesCount, instancesCount);\n } else {\n engine.drawElementsType(Material.LineListDrawMode, subMesh.indexStart, subMesh.indexCount, instancesCount);\n }\n return this;\n }\n /**\n * Disposes of the line mesh\n * @param doNotRecurse If children should be disposed\n * @param disposeMaterialAndTextures This parameter is not used by the LineMesh class\n * @param doNotDisposeMaterial If the material should not be disposed (default: false, meaning the material is disposed)\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispose(doNotRecurse, disposeMaterialAndTextures = false, doNotDisposeMaterial) {\n if (!doNotDisposeMaterial) {\n this._lineMaterial.dispose(false, false, true);\n }\n super.dispose(doNotRecurse);\n }\n /**\n * Returns a new LineMesh object cloned from the current one.\n * @param name defines the cloned mesh name\n * @param newParent defines the new mesh parent\n * @param doNotCloneChildren if set to true, none of the mesh children are cloned (false by default)\n * @returns the new mesh\n */\n clone(name, newParent = null, doNotCloneChildren) {\n return new LinesMesh(name, this.getScene(), newParent, this, doNotCloneChildren);\n }\n /**\n * Creates a new InstancedLinesMesh object from the mesh model.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/copies/instances\n * @param name defines the name of the new instance\n * @returns a new InstancedLinesMesh\n */\n createInstance(name) {\n const instance = new InstancedLinesMesh(name, this);\n if (this.instancedBuffers) {\n instance.instancedBuffers = {};\n for (const key in this.instancedBuffers) {\n instance.instancedBuffers[key] = this.instancedBuffers[key];\n }\n }\n return instance;\n }\n /**\n * Serializes this ground mesh\n * @param serializationObject object to write serialization to\n */\n serialize(serializationObject) {\n super.serialize(serializationObject);\n serializationObject.color = this.color.asArray();\n serializationObject.alpha = this.alpha;\n }\n /**\n * Parses a serialized ground mesh\n * @param parsedMesh the serialized mesh\n * @param scene the scene to create the ground mesh in\n * @returns the created ground mesh\n */\n static Parse(parsedMesh, scene) {\n const result = new LinesMesh(parsedMesh.name, scene);\n result.color = Color3.FromArray(parsedMesh.color);\n result.alpha = parsedMesh.alpha;\n return result;\n }\n}\n/**\n * Force all the LineMeshes to compile their default color material to glsl even on WebGPU engines.\n * False by default. This is mostly meant for backward compatibility.\n */\nLinesMesh.ForceGLSL = false;\n/**\n * Creates an instance based on a source LinesMesh\n */\nexport class InstancedLinesMesh extends InstancedMesh {\n constructor(name, source) {\n super(name, source);\n this.intersectionThreshold = source.intersectionThreshold;\n }\n /**\n * @returns the string \"InstancedLinesMesh\".\n */\n getClassName() {\n return \"InstancedLinesMesh\";\n }\n}","map":{"version":3,"names":["Color3","Color4","VertexBuffer","Mesh","InstancedMesh","Material","ShaderMaterial","_LinesMeshParser","parsedMesh","scene","LinesMesh","Parse","_isShaderMaterial","shader","getClassName","constructor","name","parent","source","doNotCloneChildren","useVertexColor","useVertexAlpha","material","_this","this","color","alpha","_shaderLanguage","clone","intersectionThreshold","defines","options","attributes","PositionKind","uniforms","needAlphaBlending","useClipPlane","shaderLanguage","push","_color4","ColorKind","engine","getScene","getEngine","isWebGPU","ForceGLSL","extraInitializationsAsync","_asyncToGenerator","Promise","all","doNotSerialize","isReady","_lineMaterial","_userInstancedBuffersStorage","hasThinInstances","value","fillMode","LineListDrawMode","checkCollisions","_bind","_subMesh","colorEffect","_geometry","indexToBind","isUnIndexed","getIndexBuffer","vertexBuffers","vertexArrayObjects","r","g","b","set","setColor4","_draw","subMesh","instancesCount","getVertexBuffers","_unIndexed","drawArraysType","verticesStart","verticesCount","drawElementsType","indexStart","indexCount","dispose","doNotRecurse","disposeMaterialAndTextures","doNotDisposeMaterial","newParent","createInstance","instance","InstancedLinesMesh","instancedBuffers","key","serialize","serializationObject","asArray","result","FromArray"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Meshes/linesMesh.js"],"sourcesContent":["import { Color3, Color4 } from \"../Maths/math.color.js\";\nimport { VertexBuffer } from \"../Buffers/buffer.js\";\nimport { Mesh } from \"../Meshes/mesh.js\";\nimport { InstancedMesh } from \"../Meshes/instancedMesh.js\";\nimport { Material } from \"../Materials/material.js\";\nimport { ShaderMaterial } from \"../Materials/shaderMaterial.js\";\nMesh._LinesMeshParser = (parsedMesh, scene) => {\n return LinesMesh.Parse(parsedMesh, scene);\n};\n/**\n * Line mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param\n */\nexport class LinesMesh extends Mesh {\n _isShaderMaterial(shader) {\n return shader.getClassName() === \"ShaderMaterial\";\n }\n /**\n * Creates a new LinesMesh\n * @param name defines the name\n * @param scene defines the hosting scene\n * @param parent defines the parent mesh if any\n * @param source defines the optional source LinesMesh used to clone data from\n * @param doNotCloneChildren When cloning, skip cloning child meshes of source, default False.\n * When false, achieved by calling a clone(), also passing False.\n * This will make creation of children, recursive.\n * @param useVertexColor defines if this LinesMesh supports vertex color\n * @param useVertexAlpha defines if this LinesMesh supports vertex alpha\n * @param material material to use to draw the line. If not provided, will create a new one\n */\n constructor(name, scene = null, parent = null, source = null, doNotCloneChildren, \n /**\n * If vertex color should be applied to the mesh\n */\n useVertexColor, \n /**\n * If vertex alpha should be applied to the mesh\n */\n useVertexAlpha, material) {\n super(name, scene, parent, source, doNotCloneChildren);\n this.useVertexColor = useVertexColor;\n this.useVertexAlpha = useVertexAlpha;\n /**\n * Color of the line (Default: White)\n */\n this.color = new Color3(1, 1, 1);\n /**\n * Alpha of the line (Default: 1)\n */\n this.alpha = 1;\n /** Shader language used by the material */\n this._shaderLanguage = 0 /* ShaderLanguage.GLSL */;\n if (source) {\n this.color = source.color.clone();\n this.alpha = source.alpha;\n this.useVertexColor = source.useVertexColor;\n this.useVertexAlpha = source.useVertexAlpha;\n }\n this.intersectionThreshold = 0.1;\n const defines = [];\n const options = {\n attributes: [VertexBuffer.PositionKind],\n uniforms: [\"world\", \"viewProjection\"],\n needAlphaBlending: true,\n defines: defines,\n useClipPlane: null,\n shaderLanguage: 0 /* ShaderLanguage.GLSL */,\n };\n if (useVertexAlpha === false) {\n options.needAlphaBlending = false;\n }\n else {\n options.defines.push(\"#define VERTEXALPHA\");\n }\n if (!useVertexColor) {\n options.uniforms.push(\"color\");\n this._color4 = new Color4();\n }\n else {\n options.defines.push(\"#define VERTEXCOLOR\");\n options.attributes.push(VertexBuffer.ColorKind);\n }\n if (material) {\n this.material = material;\n }\n else {\n const engine = this.getScene().getEngine();\n if (engine.isWebGPU && !LinesMesh.ForceGLSL) {\n this._shaderLanguage = 1 /* ShaderLanguage.WGSL */;\n }\n options.shaderLanguage = this._shaderLanguage;\n options.extraInitializationsAsync = async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([import(\"../ShadersWGSL/color.vertex.js\"), import(\"../ShadersWGSL/color.fragment.js\")]);\n }\n else {\n await Promise.all([import(\"../Shaders/color.vertex.js\"), import(\"../Shaders/color.fragment.js\")]);\n }\n };\n this.material = new ShaderMaterial(\"colorShader\", this.getScene(), \"color\", options, false);\n this.material.doNotSerialize = true;\n }\n }\n isReady() {\n if (!this._lineMaterial.isReady(this, !!this._userInstancedBuffersStorage || this.hasThinInstances)) {\n return false;\n }\n return super.isReady();\n }\n /**\n * @returns the string \"LineMesh\"\n */\n getClassName() {\n return \"LinesMesh\";\n }\n /**\n * @internal\n */\n get material() {\n return this._lineMaterial;\n }\n /**\n * @internal\n */\n set material(value) {\n this._lineMaterial = value;\n this._lineMaterial.fillMode = Material.LineListDrawMode;\n }\n /**\n * @internal\n */\n get checkCollisions() {\n return false;\n }\n set checkCollisions(value) {\n // Just ignore it\n }\n /**\n * @internal\n */\n _bind(_subMesh, colorEffect) {\n if (!this._geometry) {\n return this;\n }\n // VBOs\n const indexToBind = this.isUnIndexed ? null : this._geometry.getIndexBuffer();\n if (!this._userInstancedBuffersStorage || this.hasThinInstances) {\n this._geometry._bind(colorEffect, indexToBind);\n }\n else {\n this._geometry._bind(colorEffect, indexToBind, this._userInstancedBuffersStorage.vertexBuffers, this._userInstancedBuffersStorage.vertexArrayObjects);\n }\n // Color\n if (!this.useVertexColor && this._isShaderMaterial(this._lineMaterial)) {\n const { r, g, b } = this.color;\n this._color4.set(r, g, b, this.alpha);\n this._lineMaterial.setColor4(\"color\", this._color4);\n }\n return this;\n }\n /**\n * @internal\n */\n _draw(subMesh, fillMode, instancesCount) {\n if (!this._geometry || !this._geometry.getVertexBuffers() || (!this._unIndexed && !this._geometry.getIndexBuffer())) {\n return this;\n }\n const engine = this.getScene().getEngine();\n // Draw order\n if (this._unIndexed) {\n engine.drawArraysType(Material.LineListDrawMode, subMesh.verticesStart, subMesh.verticesCount, instancesCount);\n }\n else {\n engine.drawElementsType(Material.LineListDrawMode, subMesh.indexStart, subMesh.indexCount, instancesCount);\n }\n return this;\n }\n /**\n * Disposes of the line mesh\n * @param doNotRecurse If children should be disposed\n * @param disposeMaterialAndTextures This parameter is not used by the LineMesh class\n * @param doNotDisposeMaterial If the material should not be disposed (default: false, meaning the material is disposed)\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispose(doNotRecurse, disposeMaterialAndTextures = false, doNotDisposeMaterial) {\n if (!doNotDisposeMaterial) {\n this._lineMaterial.dispose(false, false, true);\n }\n super.dispose(doNotRecurse);\n }\n /**\n * Returns a new LineMesh object cloned from the current one.\n * @param name defines the cloned mesh name\n * @param newParent defines the new mesh parent\n * @param doNotCloneChildren if set to true, none of the mesh children are cloned (false by default)\n * @returns the new mesh\n */\n clone(name, newParent = null, doNotCloneChildren) {\n return new LinesMesh(name, this.getScene(), newParent, this, doNotCloneChildren);\n }\n /**\n * Creates a new InstancedLinesMesh object from the mesh model.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/copies/instances\n * @param name defines the name of the new instance\n * @returns a new InstancedLinesMesh\n */\n createInstance(name) {\n const instance = new InstancedLinesMesh(name, this);\n if (this.instancedBuffers) {\n instance.instancedBuffers = {};\n for (const key in this.instancedBuffers) {\n instance.instancedBuffers[key] = this.instancedBuffers[key];\n }\n }\n return instance;\n }\n /**\n * Serializes this ground mesh\n * @param serializationObject object to write serialization to\n */\n serialize(serializationObject) {\n super.serialize(serializationObject);\n serializationObject.color = this.color.asArray();\n serializationObject.alpha = this.alpha;\n }\n /**\n * Parses a serialized ground mesh\n * @param parsedMesh the serialized mesh\n * @param scene the scene to create the ground mesh in\n * @returns the created ground mesh\n */\n static Parse(parsedMesh, scene) {\n const result = new LinesMesh(parsedMesh.name, scene);\n result.color = Color3.FromArray(parsedMesh.color);\n result.alpha = parsedMesh.alpha;\n return result;\n }\n}\n/**\n * Force all the LineMeshes to compile their default color material to glsl even on WebGPU engines.\n * False by default. This is mostly meant for backward compatibility.\n */\nLinesMesh.ForceGLSL = false;\n/**\n * Creates an instance based on a source LinesMesh\n */\nexport class InstancedLinesMesh extends InstancedMesh {\n constructor(name, source) {\n super(name, source);\n this.intersectionThreshold = source.intersectionThreshold;\n }\n /**\n * @returns the string \"InstancedLinesMesh\".\n */\n getClassName() {\n return \"InstancedLinesMesh\";\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}