5b7f35cf78ca3a486c885b14c0e5d4a52f2835198b3001eb765e975e640b8034.json 40 KB

1
  1. {"ast":null,"code":"/* eslint-disable @typescript-eslint/naming-convention */\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { _CreationDataStorage, Mesh } from \"../mesh.js\";\nimport { VertexData } from \"../mesh.vertexData.js\";\nimport { LinesMesh } from \"../../Meshes/linesMesh.js\";\nimport { VertexBuffer } from \"../../Buffers/buffer.js\";\nimport { Logger } from \"../../Misc/logger.js\";\n/**\n * Creates the VertexData of the LineSystem\n * @param options an object used to set the following optional parameters for the LineSystem, required but can be empty\n * - lines an array of lines, each line being an array of successive Vector3\n * - colors an array of line colors, each of the line colors being an array of successive Color4, one per line point\n * @returns the VertexData of the LineSystem\n */\nexport function CreateLineSystemVertexData(options) {\n const indices = [];\n const positions = [];\n const lines = options.lines;\n const colors = options.colors;\n const vertexColors = [];\n let idx = 0;\n for (let l = 0; l < lines.length; l++) {\n const points = lines[l];\n for (let index = 0; index < points.length; index++) {\n const {\n x,\n y,\n z\n } = points[index];\n positions.push(x, y, z);\n if (colors) {\n const color = colors[l];\n const {\n r,\n g,\n b,\n a\n } = color[index];\n vertexColors.push(r, g, b, a);\n }\n if (index > 0) {\n indices.push(idx - 1);\n indices.push(idx);\n }\n idx++;\n }\n }\n const vertexData = new VertexData();\n vertexData.indices = indices;\n vertexData.positions = positions;\n if (colors) {\n vertexData.colors = vertexColors;\n }\n return vertexData;\n}\n/**\n * Create the VertexData for a DashedLines\n * @param options an object used to set the following optional parameters for the DashedLines, required but can be empty\n * - points an array successive Vector3\n * - dashSize the size of the dashes relative to the dash number, optional, default 3\n * - gapSize the size of the gap between two successive dashes relative to the dash number, optional, default 1\n * - dashNb the intended total number of dashes, optional, default 200\n * @returns the VertexData for the DashedLines\n */\nexport function CreateDashedLinesVertexData(options) {\n const dashSize = options.dashSize || 3;\n const gapSize = options.gapSize || 1;\n const dashNb = options.dashNb || 200;\n const points = options.points;\n const positions = [];\n const indices = [];\n const curvect = Vector3.Zero();\n let lg = 0;\n let nb = 0;\n let shft = 0;\n let dashshft = 0;\n let curshft = 0;\n let idx = 0;\n let i = 0;\n for (i = 0; i < points.length - 1; i++) {\n points[i + 1].subtractToRef(points[i], curvect);\n lg += curvect.length();\n }\n shft = lg / dashNb;\n dashshft = dashSize * shft / (dashSize + gapSize);\n for (i = 0; i < points.length - 1; i++) {\n points[i + 1].subtractToRef(points[i], curvect);\n nb = Math.floor(curvect.length() / shft);\n curvect.normalize();\n for (let j = 0; j < nb; j++) {\n curshft = shft * j;\n positions.push(points[i].x + curshft * curvect.x, points[i].y + curshft * curvect.y, points[i].z + curshft * curvect.z);\n positions.push(points[i].x + (curshft + dashshft) * curvect.x, points[i].y + (curshft + dashshft) * curvect.y, points[i].z + (curshft + dashshft) * curvect.z);\n indices.push(idx, idx + 1);\n idx += 2;\n }\n }\n // Result\n const vertexData = new VertexData();\n vertexData.positions = positions;\n vertexData.indices = indices;\n return vertexData;\n}\n/**\n * Creates a line system mesh. A line system is a pool of many lines gathered in a single mesh\n * * A line system mesh is considered as a parametric shape since it has no predefined original shape. Its shape is determined by the passed array of lines as an input parameter\n * * Like every other parametric shape, it is dynamically updatable by passing an existing instance of LineSystem to this static function\n * * The parameter `lines` is an array of lines, each line being an array of successive Vector3\n * * The optional parameter `instance` is an instance of an existing LineSystem object to be updated with the passed `lines` parameter\n * * The optional parameter `colors` is an array of line colors, each line colors being an array of successive Color4, one per line point\n * * The optional parameter `useVertexAlpha` is to be set to `false` (default `true`) when you don't need the alpha blending (faster)\n * * The optional parameter `material` is the material to use to draw the lines if provided. If not, a default material will be created\n * * Updating a simple Line mesh, you just need to update every line in the `lines` array : https://doc.babylonjs.com/features/featuresDeepDive/mesh/dynamicMeshMorph#lines-and-dashedlines\n * * When updating an instance, remember that only line point positions can change, not the number of points, neither the number of lines\n * * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param#line-system\n * @param name defines the name of the new line system\n * @param options defines the options used to create the line system\n * @param scene defines the hosting scene\n * @returns a new line system mesh\n */\nexport function CreateLineSystem(name, options, scene = null) {\n const instance = options.instance;\n const lines = options.lines;\n const colors = options.colors;\n if (instance) {\n // lines update\n const positions = instance.getVerticesData(VertexBuffer.PositionKind);\n let vertexColor;\n let lineColors;\n if (colors) {\n vertexColor = instance.getVerticesData(VertexBuffer.ColorKind);\n }\n let i = 0;\n let c = 0;\n for (let l = 0; l < lines.length; l++) {\n const points = lines[l];\n for (let p = 0; p < points.length; p++) {\n positions[i] = points[p].x;\n positions[i + 1] = points[p].y;\n positions[i + 2] = points[p].z;\n if (colors && vertexColor) {\n lineColors = colors[l];\n vertexColor[c] = lineColors[p].r;\n vertexColor[c + 1] = lineColors[p].g;\n vertexColor[c + 2] = lineColors[p].b;\n vertexColor[c + 3] = lineColors[p].a;\n c += 4;\n }\n i += 3;\n }\n }\n instance.updateVerticesData(VertexBuffer.PositionKind, positions, false, false);\n if (colors && vertexColor) {\n instance.updateVerticesData(VertexBuffer.ColorKind, vertexColor, false, false);\n }\n instance.refreshBoundingInfo();\n return instance;\n }\n // line system creation\n const useVertexColor = colors ? true : false;\n const lineSystem = new LinesMesh(name, scene, null, undefined, undefined, useVertexColor, options.useVertexAlpha, options.material);\n const vertexData = CreateLineSystemVertexData(options);\n vertexData.applyToMesh(lineSystem, options.updatable);\n return lineSystem;\n}\n/**\n * Creates a line mesh\n * A line mesh is considered as a parametric shape since it has no predefined original shape. Its shape is determined by the passed array of points as an input parameter\n * * Like every other parametric shape, it is dynamically updatable by passing an existing instance of LineMesh to this static function\n * * The parameter `points` is an array successive Vector3\n * * The optional parameter `instance` is an instance of an existing LineMesh object to be updated with the passed `points` parameter : https://doc.babylonjs.com/features/featuresDeepDive/mesh/dynamicMeshMorph#lines-and-dashedlines\n * * The optional parameter `colors` is an array of successive Color4, one per line point\n * * The optional parameter `useVertexAlpha` is to be set to `false` (default `true`) when you don't need alpha blending (faster)\n * * The optional parameter `material` is the material to use to draw the lines if provided. If not, a default material will be created\n * * When updating an instance, remember that only point positions can change, not the number of points\n * * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param#lines\n * @param name defines the name of the new line system\n * @param options defines the options used to create the line system\n * @param scene defines the hosting scene\n * @returns a new line mesh\n */\nexport function CreateLines(name, options, scene = null) {\n const colors = options.colors ? [options.colors] : null;\n const lines = CreateLineSystem(name, {\n lines: [options.points],\n updatable: options.updatable,\n instance: options.instance,\n colors: colors,\n useVertexAlpha: options.useVertexAlpha,\n material: options.material\n }, scene);\n return lines;\n}\n/**\n * Creates a dashed line mesh\n * * A dashed line mesh is considered as a parametric shape since it has no predefined original shape. Its shape is determined by the passed array of points as an input parameter\n * * Like every other parametric shape, it is dynamically updatable by passing an existing instance of LineMesh to this static function\n * * The parameter `points` is an array successive Vector3\n * * The parameter `dashNb` is the intended total number of dashes (positive integer, default 200)\n * * The parameter `dashSize` is the size of the dashes relatively the dash number (positive float, default 3)\n * * The parameter `gapSize` is the size of the gap between two successive dashes relatively the dash number (positive float, default 1)\n * * The optional parameter `instance` is an instance of an existing LineMesh object to be updated with the passed `points` parameter : https://doc.babylonjs.com/features/featuresDeepDive/mesh/dynamicMeshMorph#lines-and-dashedlines\n * * The optional parameter `useVertexAlpha` is to be set to `false` (default `true`) when you don't need the alpha blending (faster)\n * * The optional parameter `material` is the material to use to draw the lines if provided. If not, a default material will be created\n * * When updating an instance, remember that only point positions can change, not the number of points\n * * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created\n * @param name defines the name of the mesh\n * @param options defines the options used to create the mesh\n * @param scene defines the hosting scene\n * @returns the dashed line mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param#dashed-lines\n */\nexport function CreateDashedLines(name, options, scene = null) {\n const points = options.points;\n const instance = options.instance;\n const gapSize = options.gapSize || 1;\n const dashSize = options.dashSize || 3;\n if (instance) {\n // dashed lines update\n const positionFunction = positions => {\n const curvect = Vector3.Zero();\n const nbSeg = positions.length / 6;\n let lg = 0;\n let nb = 0;\n let shft = 0;\n let dashshft = 0;\n let curshft = 0;\n let p = 0;\n let i = 0;\n let j = 0;\n for (i = 0; i < points.length - 1; i++) {\n points[i + 1].subtractToRef(points[i], curvect);\n lg += curvect.length();\n }\n shft = lg / nbSeg;\n const dashSize = instance._creationDataStorage.dashSize;\n const gapSize = instance._creationDataStorage.gapSize;\n dashshft = dashSize * shft / (dashSize + gapSize);\n for (i = 0; i < points.length - 1; i++) {\n points[i + 1].subtractToRef(points[i], curvect);\n nb = Math.floor(curvect.length() / shft);\n curvect.normalize();\n j = 0;\n while (j < nb && p < positions.length) {\n curshft = shft * j;\n positions[p] = points[i].x + curshft * curvect.x;\n positions[p + 1] = points[i].y + curshft * curvect.y;\n positions[p + 2] = points[i].z + curshft * curvect.z;\n positions[p + 3] = points[i].x + (curshft + dashshft) * curvect.x;\n positions[p + 4] = points[i].y + (curshft + dashshft) * curvect.y;\n positions[p + 5] = points[i].z + (curshft + dashshft) * curvect.z;\n p += 6;\n j++;\n }\n }\n while (p < positions.length) {\n positions[p] = points[i].x;\n positions[p + 1] = points[i].y;\n positions[p + 2] = points[i].z;\n p += 3;\n }\n };\n if (options.dashNb || options.dashSize || options.gapSize || options.useVertexAlpha || options.material) {\n Logger.Warn(\"You have used an option other than points with the instance option. Please be aware that these other options will be ignored.\");\n }\n instance.updateMeshPositions(positionFunction, false);\n return instance;\n }\n // dashed lines creation\n const dashedLines = new LinesMesh(name, scene, null, undefined, undefined, undefined, options.useVertexAlpha, options.material);\n const vertexData = CreateDashedLinesVertexData(options);\n vertexData.applyToMesh(dashedLines, options.updatable);\n dashedLines._creationDataStorage = new _CreationDataStorage();\n dashedLines._creationDataStorage.dashSize = dashSize;\n dashedLines._creationDataStorage.gapSize = gapSize;\n return dashedLines;\n}\n/**\n * Class containing static functions to help procedurally build meshes\n * @deprecated use the functions directly from the module\n */\nexport const LinesBuilder = {\n CreateDashedLines,\n CreateLineSystem,\n CreateLines\n};\nVertexData.CreateLineSystem = CreateLineSystemVertexData;\nVertexData.CreateDashedLines = CreateDashedLinesVertexData;\nMesh.CreateLines = (name, points, scene = null, updatable = false, instance = null) => {\n const options = {\n points,\n updatable,\n instance\n };\n return CreateLines(name, options, scene);\n};\nMesh.CreateDashedLines = (name, points, dashSize, gapSize, dashNb, scene = null, updatable, instance) => {\n const options = {\n points,\n dashSize,\n gapSize,\n dashNb,\n updatable,\n instance\n };\n return CreateDashedLines(name, options, scene);\n};","map":{"version":3,"names":["Vector3","_CreationDataStorage","Mesh","VertexData","LinesMesh","VertexBuffer","Logger","CreateLineSystemVertexData","options","indices","positions","lines","colors","vertexColors","idx","l","length","points","index","x","y","z","push","color","r","g","b","a","vertexData","CreateDashedLinesVertexData","dashSize","gapSize","dashNb","curvect","Zero","lg","nb","shft","dashshft","curshft","i","subtractToRef","Math","floor","normalize","j","CreateLineSystem","name","scene","instance","getVerticesData","PositionKind","vertexColor","lineColors","ColorKind","c","p","updateVerticesData","refreshBoundingInfo","useVertexColor","lineSystem","undefined","useVertexAlpha","material","applyToMesh","updatable","CreateLines","CreateDashedLines","positionFunction","nbSeg","_creationDataStorage","Warn","updateMeshPositions","dashedLines","LinesBuilder"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Meshes/Builders/linesBuilder.js"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Vector3 } from \"../../Maths/math.vector.js\";\nimport { _CreationDataStorage, Mesh } from \"../mesh.js\";\nimport { VertexData } from \"../mesh.vertexData.js\";\nimport { LinesMesh } from \"../../Meshes/linesMesh.js\";\nimport { VertexBuffer } from \"../../Buffers/buffer.js\";\nimport { Logger } from \"../../Misc/logger.js\";\n/**\n * Creates the VertexData of the LineSystem\n * @param options an object used to set the following optional parameters for the LineSystem, required but can be empty\n * - lines an array of lines, each line being an array of successive Vector3\n * - colors an array of line colors, each of the line colors being an array of successive Color4, one per line point\n * @returns the VertexData of the LineSystem\n */\nexport function CreateLineSystemVertexData(options) {\n const indices = [];\n const positions = [];\n const lines = options.lines;\n const colors = options.colors;\n const vertexColors = [];\n let idx = 0;\n for (let l = 0; l < lines.length; l++) {\n const points = lines[l];\n for (let index = 0; index < points.length; index++) {\n const { x, y, z } = points[index];\n positions.push(x, y, z);\n if (colors) {\n const color = colors[l];\n const { r, g, b, a } = color[index];\n vertexColors.push(r, g, b, a);\n }\n if (index > 0) {\n indices.push(idx - 1);\n indices.push(idx);\n }\n idx++;\n }\n }\n const vertexData = new VertexData();\n vertexData.indices = indices;\n vertexData.positions = positions;\n if (colors) {\n vertexData.colors = vertexColors;\n }\n return vertexData;\n}\n/**\n * Create the VertexData for a DashedLines\n * @param options an object used to set the following optional parameters for the DashedLines, required but can be empty\n * - points an array successive Vector3\n * - dashSize the size of the dashes relative to the dash number, optional, default 3\n * - gapSize the size of the gap between two successive dashes relative to the dash number, optional, default 1\n * - dashNb the intended total number of dashes, optional, default 200\n * @returns the VertexData for the DashedLines\n */\nexport function CreateDashedLinesVertexData(options) {\n const dashSize = options.dashSize || 3;\n const gapSize = options.gapSize || 1;\n const dashNb = options.dashNb || 200;\n const points = options.points;\n const positions = [];\n const indices = [];\n const curvect = Vector3.Zero();\n let lg = 0;\n let nb = 0;\n let shft = 0;\n let dashshft = 0;\n let curshft = 0;\n let idx = 0;\n let i = 0;\n for (i = 0; i < points.length - 1; i++) {\n points[i + 1].subtractToRef(points[i], curvect);\n lg += curvect.length();\n }\n shft = lg / dashNb;\n dashshft = (dashSize * shft) / (dashSize + gapSize);\n for (i = 0; i < points.length - 1; i++) {\n points[i + 1].subtractToRef(points[i], curvect);\n nb = Math.floor(curvect.length() / shft);\n curvect.normalize();\n for (let j = 0; j < nb; j++) {\n curshft = shft * j;\n positions.push(points[i].x + curshft * curvect.x, points[i].y + curshft * curvect.y, points[i].z + curshft * curvect.z);\n positions.push(points[i].x + (curshft + dashshft) * curvect.x, points[i].y + (curshft + dashshft) * curvect.y, points[i].z + (curshft + dashshft) * curvect.z);\n indices.push(idx, idx + 1);\n idx += 2;\n }\n }\n // Result\n const vertexData = new VertexData();\n vertexData.positions = positions;\n vertexData.indices = indices;\n return vertexData;\n}\n/**\n * Creates a line system mesh. A line system is a pool of many lines gathered in a single mesh\n * * A line system mesh is considered as a parametric shape since it has no predefined original shape. Its shape is determined by the passed array of lines as an input parameter\n * * Like every other parametric shape, it is dynamically updatable by passing an existing instance of LineSystem to this static function\n * * The parameter `lines` is an array of lines, each line being an array of successive Vector3\n * * The optional parameter `instance` is an instance of an existing LineSystem object to be updated with the passed `lines` parameter\n * * The optional parameter `colors` is an array of line colors, each line colors being an array of successive Color4, one per line point\n * * The optional parameter `useVertexAlpha` is to be set to `false` (default `true`) when you don't need the alpha blending (faster)\n * * The optional parameter `material` is the material to use to draw the lines if provided. If not, a default material will be created\n * * Updating a simple Line mesh, you just need to update every line in the `lines` array : https://doc.babylonjs.com/features/featuresDeepDive/mesh/dynamicMeshMorph#lines-and-dashedlines\n * * When updating an instance, remember that only line point positions can change, not the number of points, neither the number of lines\n * * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param#line-system\n * @param name defines the name of the new line system\n * @param options defines the options used to create the line system\n * @param scene defines the hosting scene\n * @returns a new line system mesh\n */\nexport function CreateLineSystem(name, options, scene = null) {\n const instance = options.instance;\n const lines = options.lines;\n const colors = options.colors;\n if (instance) {\n // lines update\n const positions = instance.getVerticesData(VertexBuffer.PositionKind);\n let vertexColor;\n let lineColors;\n if (colors) {\n vertexColor = instance.getVerticesData(VertexBuffer.ColorKind);\n }\n let i = 0;\n let c = 0;\n for (let l = 0; l < lines.length; l++) {\n const points = lines[l];\n for (let p = 0; p < points.length; p++) {\n positions[i] = points[p].x;\n positions[i + 1] = points[p].y;\n positions[i + 2] = points[p].z;\n if (colors && vertexColor) {\n lineColors = colors[l];\n vertexColor[c] = lineColors[p].r;\n vertexColor[c + 1] = lineColors[p].g;\n vertexColor[c + 2] = lineColors[p].b;\n vertexColor[c + 3] = lineColors[p].a;\n c += 4;\n }\n i += 3;\n }\n }\n instance.updateVerticesData(VertexBuffer.PositionKind, positions, false, false);\n if (colors && vertexColor) {\n instance.updateVerticesData(VertexBuffer.ColorKind, vertexColor, false, false);\n }\n instance.refreshBoundingInfo();\n return instance;\n }\n // line system creation\n const useVertexColor = colors ? true : false;\n const lineSystem = new LinesMesh(name, scene, null, undefined, undefined, useVertexColor, options.useVertexAlpha, options.material);\n const vertexData = CreateLineSystemVertexData(options);\n vertexData.applyToMesh(lineSystem, options.updatable);\n return lineSystem;\n}\n/**\n * Creates a line mesh\n * A line mesh is considered as a parametric shape since it has no predefined original shape. Its shape is determined by the passed array of points as an input parameter\n * * Like every other parametric shape, it is dynamically updatable by passing an existing instance of LineMesh to this static function\n * * The parameter `points` is an array successive Vector3\n * * The optional parameter `instance` is an instance of an existing LineMesh object to be updated with the passed `points` parameter : https://doc.babylonjs.com/features/featuresDeepDive/mesh/dynamicMeshMorph#lines-and-dashedlines\n * * The optional parameter `colors` is an array of successive Color4, one per line point\n * * The optional parameter `useVertexAlpha` is to be set to `false` (default `true`) when you don't need alpha blending (faster)\n * * The optional parameter `material` is the material to use to draw the lines if provided. If not, a default material will be created\n * * When updating an instance, remember that only point positions can change, not the number of points\n * * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param#lines\n * @param name defines the name of the new line system\n * @param options defines the options used to create the line system\n * @param scene defines the hosting scene\n * @returns a new line mesh\n */\nexport function CreateLines(name, options, scene = null) {\n const colors = options.colors ? [options.colors] : null;\n const lines = CreateLineSystem(name, { lines: [options.points], updatable: options.updatable, instance: options.instance, colors: colors, useVertexAlpha: options.useVertexAlpha, material: options.material }, scene);\n return lines;\n}\n/**\n * Creates a dashed line mesh\n * * A dashed line mesh is considered as a parametric shape since it has no predefined original shape. Its shape is determined by the passed array of points as an input parameter\n * * Like every other parametric shape, it is dynamically updatable by passing an existing instance of LineMesh to this static function\n * * The parameter `points` is an array successive Vector3\n * * The parameter `dashNb` is the intended total number of dashes (positive integer, default 200)\n * * The parameter `dashSize` is the size of the dashes relatively the dash number (positive float, default 3)\n * * The parameter `gapSize` is the size of the gap between two successive dashes relatively the dash number (positive float, default 1)\n * * The optional parameter `instance` is an instance of an existing LineMesh object to be updated with the passed `points` parameter : https://doc.babylonjs.com/features/featuresDeepDive/mesh/dynamicMeshMorph#lines-and-dashedlines\n * * The optional parameter `useVertexAlpha` is to be set to `false` (default `true`) when you don't need the alpha blending (faster)\n * * The optional parameter `material` is the material to use to draw the lines if provided. If not, a default material will be created\n * * When updating an instance, remember that only point positions can change, not the number of points\n * * The mesh can be set to updatable with the boolean parameter `updatable` (default false) if its internal geometry is supposed to change once created\n * @param name defines the name of the mesh\n * @param options defines the options used to create the mesh\n * @param scene defines the hosting scene\n * @returns the dashed line mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param#dashed-lines\n */\nexport function CreateDashedLines(name, options, scene = null) {\n const points = options.points;\n const instance = options.instance;\n const gapSize = options.gapSize || 1;\n const dashSize = options.dashSize || 3;\n if (instance) {\n // dashed lines update\n const positionFunction = (positions) => {\n const curvect = Vector3.Zero();\n const nbSeg = positions.length / 6;\n let lg = 0;\n let nb = 0;\n let shft = 0;\n let dashshft = 0;\n let curshft = 0;\n let p = 0;\n let i = 0;\n let j = 0;\n for (i = 0; i < points.length - 1; i++) {\n points[i + 1].subtractToRef(points[i], curvect);\n lg += curvect.length();\n }\n shft = lg / nbSeg;\n const dashSize = instance._creationDataStorage.dashSize;\n const gapSize = instance._creationDataStorage.gapSize;\n dashshft = (dashSize * shft) / (dashSize + gapSize);\n for (i = 0; i < points.length - 1; i++) {\n points[i + 1].subtractToRef(points[i], curvect);\n nb = Math.floor(curvect.length() / shft);\n curvect.normalize();\n j = 0;\n while (j < nb && p < positions.length) {\n curshft = shft * j;\n positions[p] = points[i].x + curshft * curvect.x;\n positions[p + 1] = points[i].y + curshft * curvect.y;\n positions[p + 2] = points[i].z + curshft * curvect.z;\n positions[p + 3] = points[i].x + (curshft + dashshft) * curvect.x;\n positions[p + 4] = points[i].y + (curshft + dashshft) * curvect.y;\n positions[p + 5] = points[i].z + (curshft + dashshft) * curvect.z;\n p += 6;\n j++;\n }\n }\n while (p < positions.length) {\n positions[p] = points[i].x;\n positions[p + 1] = points[i].y;\n positions[p + 2] = points[i].z;\n p += 3;\n }\n };\n if (options.dashNb || options.dashSize || options.gapSize || options.useVertexAlpha || options.material) {\n Logger.Warn(\"You have used an option other than points with the instance option. Please be aware that these other options will be ignored.\");\n }\n instance.updateMeshPositions(positionFunction, false);\n return instance;\n }\n // dashed lines creation\n const dashedLines = new LinesMesh(name, scene, null, undefined, undefined, undefined, options.useVertexAlpha, options.material);\n const vertexData = CreateDashedLinesVertexData(options);\n vertexData.applyToMesh(dashedLines, options.updatable);\n dashedLines._creationDataStorage = new _CreationDataStorage();\n dashedLines._creationDataStorage.dashSize = dashSize;\n dashedLines._creationDataStorage.gapSize = gapSize;\n return dashedLines;\n}\n/**\n * Class containing static functions to help procedurally build meshes\n * @deprecated use the functions directly from the module\n */\nexport const LinesBuilder = {\n CreateDashedLines,\n CreateLineSystem,\n CreateLines,\n};\nVertexData.CreateLineSystem = CreateLineSystemVertexData;\nVertexData.CreateDashedLines = CreateDashedLinesVertexData;\nMesh.CreateLines = (name, points, scene = null, updatable = false, instance = null) => {\n const options = {\n points,\n updatable,\n instance,\n };\n return CreateLines(name, options, scene);\n};\nMesh.CreateDashedLines = (name, points, dashSize, gapSize, dashNb, scene = null, updatable, instance) => {\n const options = {\n points,\n dashSize,\n gapSize,\n dashNb,\n updatable,\n instance,\n };\n return CreateDashedLines(name, options, scene);\n};\n"],"mappings":"AAAA;AACA,SAASA,OAAO,QAAQ,4BAA4B;AACpD,SAASC,oBAAoB,EAAEC,IAAI,QAAQ,YAAY;AACvD,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,MAAM,QAAQ,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CAACC,OAAO,EAAE;EAChD,MAAMC,OAAO,GAAG,EAAE;EAClB,MAAMC,SAAS,GAAG,EAAE;EACpB,MAAMC,KAAK,GAAGH,OAAO,CAACG,KAAK;EAC3B,MAAMC,MAAM,GAAGJ,OAAO,CAACI,MAAM;EAC7B,MAAMC,YAAY,GAAG,EAAE;EACvB,IAAIC,GAAG,GAAG,CAAC;EACX,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACK,MAAM,EAAED,CAAC,EAAE,EAAE;IACnC,MAAME,MAAM,GAAGN,KAAK,CAACI,CAAC,CAAC;IACvB,KAAK,IAAIG,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGD,MAAM,CAACD,MAAM,EAAEE,KAAK,EAAE,EAAE;MAChD,MAAM;QAAEC,CAAC;QAAEC,CAAC;QAAEC;MAAE,CAAC,GAAGJ,MAAM,CAACC,KAAK,CAAC;MACjCR,SAAS,CAACY,IAAI,CAACH,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;MACvB,IAAIT,MAAM,EAAE;QACR,MAAMW,KAAK,GAAGX,MAAM,CAACG,CAAC,CAAC;QACvB,MAAM;UAAES,CAAC;UAAEC,CAAC;UAAEC,CAAC;UAAEC;QAAE,CAAC,GAAGJ,KAAK,CAACL,KAAK,CAAC;QACnCL,YAAY,CAACS,IAAI,CAACE,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;MACjC;MACA,IAAIT,KAAK,GAAG,CAAC,EAAE;QACXT,OAAO,CAACa,IAAI,CAACR,GAAG,GAAG,CAAC,CAAC;QACrBL,OAAO,CAACa,IAAI,CAACR,GAAG,CAAC;MACrB;MACAA,GAAG,EAAE;IACT;EACJ;EACA,MAAMc,UAAU,GAAG,IAAIzB,UAAU,CAAC,CAAC;EACnCyB,UAAU,CAACnB,OAAO,GAAGA,OAAO;EAC5BmB,UAAU,CAAClB,SAAS,GAAGA,SAAS;EAChC,IAAIE,MAAM,EAAE;IACRgB,UAAU,CAAChB,MAAM,GAAGC,YAAY;EACpC;EACA,OAAOe,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,2BAA2BA,CAACrB,OAAO,EAAE;EACjD,MAAMsB,QAAQ,GAAGtB,OAAO,CAACsB,QAAQ,IAAI,CAAC;EACtC,MAAMC,OAAO,GAAGvB,OAAO,CAACuB,OAAO,IAAI,CAAC;EACpC,MAAMC,MAAM,GAAGxB,OAAO,CAACwB,MAAM,IAAI,GAAG;EACpC,MAAMf,MAAM,GAAGT,OAAO,CAACS,MAAM;EAC7B,MAAMP,SAAS,GAAG,EAAE;EACpB,MAAMD,OAAO,GAAG,EAAE;EAClB,MAAMwB,OAAO,GAAGjC,OAAO,CAACkC,IAAI,CAAC,CAAC;EAC9B,IAAIC,EAAE,GAAG,CAAC;EACV,IAAIC,EAAE,GAAG,CAAC;EACV,IAAIC,IAAI,GAAG,CAAC;EACZ,IAAIC,QAAQ,GAAG,CAAC;EAChB,IAAIC,OAAO,GAAG,CAAC;EACf,IAAIzB,GAAG,GAAG,CAAC;EACX,IAAI0B,CAAC,GAAG,CAAC;EACT,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGvB,MAAM,CAACD,MAAM,GAAG,CAAC,EAAEwB,CAAC,EAAE,EAAE;IACpCvB,MAAM,CAACuB,CAAC,GAAG,CAAC,CAAC,CAACC,aAAa,CAACxB,MAAM,CAACuB,CAAC,CAAC,EAAEP,OAAO,CAAC;IAC/CE,EAAE,IAAIF,OAAO,CAACjB,MAAM,CAAC,CAAC;EAC1B;EACAqB,IAAI,GAAGF,EAAE,GAAGH,MAAM;EAClBM,QAAQ,GAAIR,QAAQ,GAAGO,IAAI,IAAKP,QAAQ,GAAGC,OAAO,CAAC;EACnD,KAAKS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGvB,MAAM,CAACD,MAAM,GAAG,CAAC,EAAEwB,CAAC,EAAE,EAAE;IACpCvB,MAAM,CAACuB,CAAC,GAAG,CAAC,CAAC,CAACC,aAAa,CAACxB,MAAM,CAACuB,CAAC,CAAC,EAAEP,OAAO,CAAC;IAC/CG,EAAE,GAAGM,IAAI,CAACC,KAAK,CAACV,OAAO,CAACjB,MAAM,CAAC,CAAC,GAAGqB,IAAI,CAAC;IACxCJ,OAAO,CAACW,SAAS,CAAC,CAAC;IACnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,EAAE,EAAES,CAAC,EAAE,EAAE;MACzBN,OAAO,GAAGF,IAAI,GAAGQ,CAAC;MAClBnC,SAAS,CAACY,IAAI,CAACL,MAAM,CAACuB,CAAC,CAAC,CAACrB,CAAC,GAAGoB,OAAO,GAAGN,OAAO,CAACd,CAAC,EAAEF,MAAM,CAACuB,CAAC,CAAC,CAACpB,CAAC,GAAGmB,OAAO,GAAGN,OAAO,CAACb,CAAC,EAAEH,MAAM,CAACuB,CAAC,CAAC,CAACnB,CAAC,GAAGkB,OAAO,GAAGN,OAAO,CAACZ,CAAC,CAAC;MACvHX,SAAS,CAACY,IAAI,CAACL,MAAM,CAACuB,CAAC,CAAC,CAACrB,CAAC,GAAG,CAACoB,OAAO,GAAGD,QAAQ,IAAIL,OAAO,CAACd,CAAC,EAAEF,MAAM,CAACuB,CAAC,CAAC,CAACpB,CAAC,GAAG,CAACmB,OAAO,GAAGD,QAAQ,IAAIL,OAAO,CAACb,CAAC,EAAEH,MAAM,CAACuB,CAAC,CAAC,CAACnB,CAAC,GAAG,CAACkB,OAAO,GAAGD,QAAQ,IAAIL,OAAO,CAACZ,CAAC,CAAC;MAC9JZ,OAAO,CAACa,IAAI,CAACR,GAAG,EAAEA,GAAG,GAAG,CAAC,CAAC;MAC1BA,GAAG,IAAI,CAAC;IACZ;EACJ;EACA;EACA,MAAMc,UAAU,GAAG,IAAIzB,UAAU,CAAC,CAAC;EACnCyB,UAAU,CAAClB,SAAS,GAAGA,SAAS;EAChCkB,UAAU,CAACnB,OAAO,GAAGA,OAAO;EAC5B,OAAOmB,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASkB,gBAAgBA,CAACC,IAAI,EAAEvC,OAAO,EAAEwC,KAAK,GAAG,IAAI,EAAE;EAC1D,MAAMC,QAAQ,GAAGzC,OAAO,CAACyC,QAAQ;EACjC,MAAMtC,KAAK,GAAGH,OAAO,CAACG,KAAK;EAC3B,MAAMC,MAAM,GAAGJ,OAAO,CAACI,MAAM;EAC7B,IAAIqC,QAAQ,EAAE;IACV;IACA,MAAMvC,SAAS,GAAGuC,QAAQ,CAACC,eAAe,CAAC7C,YAAY,CAAC8C,YAAY,CAAC;IACrE,IAAIC,WAAW;IACf,IAAIC,UAAU;IACd,IAAIzC,MAAM,EAAE;MACRwC,WAAW,GAAGH,QAAQ,CAACC,eAAe,CAAC7C,YAAY,CAACiD,SAAS,CAAC;IAClE;IACA,IAAId,CAAC,GAAG,CAAC;IACT,IAAIe,CAAC,GAAG,CAAC;IACT,KAAK,IAAIxC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACK,MAAM,EAAED,CAAC,EAAE,EAAE;MACnC,MAAME,MAAM,GAAGN,KAAK,CAACI,CAAC,CAAC;MACvB,KAAK,IAAIyC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGvC,MAAM,CAACD,MAAM,EAAEwC,CAAC,EAAE,EAAE;QACpC9C,SAAS,CAAC8B,CAAC,CAAC,GAAGvB,MAAM,CAACuC,CAAC,CAAC,CAACrC,CAAC;QAC1BT,SAAS,CAAC8B,CAAC,GAAG,CAAC,CAAC,GAAGvB,MAAM,CAACuC,CAAC,CAAC,CAACpC,CAAC;QAC9BV,SAAS,CAAC8B,CAAC,GAAG,CAAC,CAAC,GAAGvB,MAAM,CAACuC,CAAC,CAAC,CAACnC,CAAC;QAC9B,IAAIT,MAAM,IAAIwC,WAAW,EAAE;UACvBC,UAAU,GAAGzC,MAAM,CAACG,CAAC,CAAC;UACtBqC,WAAW,CAACG,CAAC,CAAC,GAAGF,UAAU,CAACG,CAAC,CAAC,CAAChC,CAAC;UAChC4B,WAAW,CAACG,CAAC,GAAG,CAAC,CAAC,GAAGF,UAAU,CAACG,CAAC,CAAC,CAAC/B,CAAC;UACpC2B,WAAW,CAACG,CAAC,GAAG,CAAC,CAAC,GAAGF,UAAU,CAACG,CAAC,CAAC,CAAC9B,CAAC;UACpC0B,WAAW,CAACG,CAAC,GAAG,CAAC,CAAC,GAAGF,UAAU,CAACG,CAAC,CAAC,CAAC7B,CAAC;UACpC4B,CAAC,IAAI,CAAC;QACV;QACAf,CAAC,IAAI,CAAC;MACV;IACJ;IACAS,QAAQ,CAACQ,kBAAkB,CAACpD,YAAY,CAAC8C,YAAY,EAAEzC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAC/E,IAAIE,MAAM,IAAIwC,WAAW,EAAE;MACvBH,QAAQ,CAACQ,kBAAkB,CAACpD,YAAY,CAACiD,SAAS,EAAEF,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC;IAClF;IACAH,QAAQ,CAACS,mBAAmB,CAAC,CAAC;IAC9B,OAAOT,QAAQ;EACnB;EACA;EACA,MAAMU,cAAc,GAAG/C,MAAM,GAAG,IAAI,GAAG,KAAK;EAC5C,MAAMgD,UAAU,GAAG,IAAIxD,SAAS,CAAC2C,IAAI,EAAEC,KAAK,EAAE,IAAI,EAAEa,SAAS,EAAEA,SAAS,EAAEF,cAAc,EAAEnD,OAAO,CAACsD,cAAc,EAAEtD,OAAO,CAACuD,QAAQ,CAAC;EACnI,MAAMnC,UAAU,GAAGrB,0BAA0B,CAACC,OAAO,CAAC;EACtDoB,UAAU,CAACoC,WAAW,CAACJ,UAAU,EAAEpD,OAAO,CAACyD,SAAS,CAAC;EACrD,OAAOL,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,WAAWA,CAACnB,IAAI,EAAEvC,OAAO,EAAEwC,KAAK,GAAG,IAAI,EAAE;EACrD,MAAMpC,MAAM,GAAGJ,OAAO,CAACI,MAAM,GAAG,CAACJ,OAAO,CAACI,MAAM,CAAC,GAAG,IAAI;EACvD,MAAMD,KAAK,GAAGmC,gBAAgB,CAACC,IAAI,EAAE;IAAEpC,KAAK,EAAE,CAACH,OAAO,CAACS,MAAM,CAAC;IAAEgD,SAAS,EAAEzD,OAAO,CAACyD,SAAS;IAAEhB,QAAQ,EAAEzC,OAAO,CAACyC,QAAQ;IAAErC,MAAM,EAAEA,MAAM;IAAEkD,cAAc,EAAEtD,OAAO,CAACsD,cAAc;IAAEC,QAAQ,EAAEvD,OAAO,CAACuD;EAAS,CAAC,EAAEf,KAAK,CAAC;EACtN,OAAOrC,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASwD,iBAAiBA,CAACpB,IAAI,EAAEvC,OAAO,EAAEwC,KAAK,GAAG,IAAI,EAAE;EAC3D,MAAM/B,MAAM,GAAGT,OAAO,CAACS,MAAM;EAC7B,MAAMgC,QAAQ,GAAGzC,OAAO,CAACyC,QAAQ;EACjC,MAAMlB,OAAO,GAAGvB,OAAO,CAACuB,OAAO,IAAI,CAAC;EACpC,MAAMD,QAAQ,GAAGtB,OAAO,CAACsB,QAAQ,IAAI,CAAC;EACtC,IAAImB,QAAQ,EAAE;IACV;IACA,MAAMmB,gBAAgB,GAAI1D,SAAS,IAAK;MACpC,MAAMuB,OAAO,GAAGjC,OAAO,CAACkC,IAAI,CAAC,CAAC;MAC9B,MAAMmC,KAAK,GAAG3D,SAAS,CAACM,MAAM,GAAG,CAAC;MAClC,IAAImB,EAAE,GAAG,CAAC;MACV,IAAIC,EAAE,GAAG,CAAC;MACV,IAAIC,IAAI,GAAG,CAAC;MACZ,IAAIC,QAAQ,GAAG,CAAC;MAChB,IAAIC,OAAO,GAAG,CAAC;MACf,IAAIiB,CAAC,GAAG,CAAC;MACT,IAAIhB,CAAC,GAAG,CAAC;MACT,IAAIK,CAAC,GAAG,CAAC;MACT,KAAKL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGvB,MAAM,CAACD,MAAM,GAAG,CAAC,EAAEwB,CAAC,EAAE,EAAE;QACpCvB,MAAM,CAACuB,CAAC,GAAG,CAAC,CAAC,CAACC,aAAa,CAACxB,MAAM,CAACuB,CAAC,CAAC,EAAEP,OAAO,CAAC;QAC/CE,EAAE,IAAIF,OAAO,CAACjB,MAAM,CAAC,CAAC;MAC1B;MACAqB,IAAI,GAAGF,EAAE,GAAGkC,KAAK;MACjB,MAAMvC,QAAQ,GAAGmB,QAAQ,CAACqB,oBAAoB,CAACxC,QAAQ;MACvD,MAAMC,OAAO,GAAGkB,QAAQ,CAACqB,oBAAoB,CAACvC,OAAO;MACrDO,QAAQ,GAAIR,QAAQ,GAAGO,IAAI,IAAKP,QAAQ,GAAGC,OAAO,CAAC;MACnD,KAAKS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGvB,MAAM,CAACD,MAAM,GAAG,CAAC,EAAEwB,CAAC,EAAE,EAAE;QACpCvB,MAAM,CAACuB,CAAC,GAAG,CAAC,CAAC,CAACC,aAAa,CAACxB,MAAM,CAACuB,CAAC,CAAC,EAAEP,OAAO,CAAC;QAC/CG,EAAE,GAAGM,IAAI,CAACC,KAAK,CAACV,OAAO,CAACjB,MAAM,CAAC,CAAC,GAAGqB,IAAI,CAAC;QACxCJ,OAAO,CAACW,SAAS,CAAC,CAAC;QACnBC,CAAC,GAAG,CAAC;QACL,OAAOA,CAAC,GAAGT,EAAE,IAAIoB,CAAC,GAAG9C,SAAS,CAACM,MAAM,EAAE;UACnCuB,OAAO,GAAGF,IAAI,GAAGQ,CAAC;UAClBnC,SAAS,CAAC8C,CAAC,CAAC,GAAGvC,MAAM,CAACuB,CAAC,CAAC,CAACrB,CAAC,GAAGoB,OAAO,GAAGN,OAAO,CAACd,CAAC;UAChDT,SAAS,CAAC8C,CAAC,GAAG,CAAC,CAAC,GAAGvC,MAAM,CAACuB,CAAC,CAAC,CAACpB,CAAC,GAAGmB,OAAO,GAAGN,OAAO,CAACb,CAAC;UACpDV,SAAS,CAAC8C,CAAC,GAAG,CAAC,CAAC,GAAGvC,MAAM,CAACuB,CAAC,CAAC,CAACnB,CAAC,GAAGkB,OAAO,GAAGN,OAAO,CAACZ,CAAC;UACpDX,SAAS,CAAC8C,CAAC,GAAG,CAAC,CAAC,GAAGvC,MAAM,CAACuB,CAAC,CAAC,CAACrB,CAAC,GAAG,CAACoB,OAAO,GAAGD,QAAQ,IAAIL,OAAO,CAACd,CAAC;UACjET,SAAS,CAAC8C,CAAC,GAAG,CAAC,CAAC,GAAGvC,MAAM,CAACuB,CAAC,CAAC,CAACpB,CAAC,GAAG,CAACmB,OAAO,GAAGD,QAAQ,IAAIL,OAAO,CAACb,CAAC;UACjEV,SAAS,CAAC8C,CAAC,GAAG,CAAC,CAAC,GAAGvC,MAAM,CAACuB,CAAC,CAAC,CAACnB,CAAC,GAAG,CAACkB,OAAO,GAAGD,QAAQ,IAAIL,OAAO,CAACZ,CAAC;UACjEmC,CAAC,IAAI,CAAC;UACNX,CAAC,EAAE;QACP;MACJ;MACA,OAAOW,CAAC,GAAG9C,SAAS,CAACM,MAAM,EAAE;QACzBN,SAAS,CAAC8C,CAAC,CAAC,GAAGvC,MAAM,CAACuB,CAAC,CAAC,CAACrB,CAAC;QAC1BT,SAAS,CAAC8C,CAAC,GAAG,CAAC,CAAC,GAAGvC,MAAM,CAACuB,CAAC,CAAC,CAACpB,CAAC;QAC9BV,SAAS,CAAC8C,CAAC,GAAG,CAAC,CAAC,GAAGvC,MAAM,CAACuB,CAAC,CAAC,CAACnB,CAAC;QAC9BmC,CAAC,IAAI,CAAC;MACV;IACJ,CAAC;IACD,IAAIhD,OAAO,CAACwB,MAAM,IAAIxB,OAAO,CAACsB,QAAQ,IAAItB,OAAO,CAACuB,OAAO,IAAIvB,OAAO,CAACsD,cAAc,IAAItD,OAAO,CAACuD,QAAQ,EAAE;MACrGzD,MAAM,CAACiE,IAAI,CAAC,+HAA+H,CAAC;IAChJ;IACAtB,QAAQ,CAACuB,mBAAmB,CAACJ,gBAAgB,EAAE,KAAK,CAAC;IACrD,OAAOnB,QAAQ;EACnB;EACA;EACA,MAAMwB,WAAW,GAAG,IAAIrE,SAAS,CAAC2C,IAAI,EAAEC,KAAK,EAAE,IAAI,EAAEa,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAErD,OAAO,CAACsD,cAAc,EAAEtD,OAAO,CAACuD,QAAQ,CAAC;EAC/H,MAAMnC,UAAU,GAAGC,2BAA2B,CAACrB,OAAO,CAAC;EACvDoB,UAAU,CAACoC,WAAW,CAACS,WAAW,EAAEjE,OAAO,CAACyD,SAAS,CAAC;EACtDQ,WAAW,CAACH,oBAAoB,GAAG,IAAIrE,oBAAoB,CAAC,CAAC;EAC7DwE,WAAW,CAACH,oBAAoB,CAACxC,QAAQ,GAAGA,QAAQ;EACpD2C,WAAW,CAACH,oBAAoB,CAACvC,OAAO,GAAGA,OAAO;EAClD,OAAO0C,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAG;EACxBP,iBAAiB;EACjBrB,gBAAgB;EAChBoB;AACJ,CAAC;AACD/D,UAAU,CAAC2C,gBAAgB,GAAGvC,0BAA0B;AACxDJ,UAAU,CAACgE,iBAAiB,GAAGtC,2BAA2B;AAC1D3B,IAAI,CAACgE,WAAW,GAAG,CAACnB,IAAI,EAAE9B,MAAM,EAAE+B,KAAK,GAAG,IAAI,EAAEiB,SAAS,GAAG,KAAK,EAAEhB,QAAQ,GAAG,IAAI,KAAK;EACnF,MAAMzC,OAAO,GAAG;IACZS,MAAM;IACNgD,SAAS;IACThB;EACJ,CAAC;EACD,OAAOiB,WAAW,CAACnB,IAAI,EAAEvC,OAAO,EAAEwC,KAAK,CAAC;AAC5C,CAAC;AACD9C,IAAI,CAACiE,iBAAiB,GAAG,CAACpB,IAAI,EAAE9B,MAAM,EAAEa,QAAQ,EAAEC,OAAO,EAAEC,MAAM,EAAEgB,KAAK,GAAG,IAAI,EAAEiB,SAAS,EAAEhB,QAAQ,KAAK;EACrG,MAAMzC,OAAO,GAAG;IACZS,MAAM;IACNa,QAAQ;IACRC,OAAO;IACPC,MAAM;IACNiC,SAAS;IACThB;EACJ,CAAC;EACD,OAAOkB,iBAAiB,CAACpB,IAAI,EAAEvC,OAAO,EAAEwC,KAAK,CAAC;AAClD,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}