c17eac109a54599ecdb48329bb7373c211c5a47f02a120865f04a0cd93a3b174.json 35 KB

1
  1. {"ast":null,"code":"import { Matrix, Vector3, Vector4 } from \"../../Maths/math.vector.js\";\nimport { Color4 } from \"../../Maths/math.color.js\";\nimport { Mesh } from \"../mesh.js\";\nimport { VertexData } from \"../mesh.vertexData.js\";\nimport { CreateTiledPlaneVertexData } from \"./tiledPlaneBuilder.js\";\nimport { useOpenGLOrientationForUV } from \"../../Compat/compatibilityOptions.js\";\n/**\n * Creates the VertexData for a tiled box\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set/tiled_box\n * @param options an object used to set the following optional parameters for the tiled box, required but can be empty\n * * pattern sets the rotation or reflection pattern for the tiles,\n * * size of the box\n * * width of the box, overwrites size\n * * height of the box, overwrites size\n * * depth of the box, overwrites size\n * * tileSize sets the size of a tile\n * * tileWidth sets the tile width and overwrites tileSize\n * * tileHeight sets the tile width and overwrites tileSize\n * * faceUV an array of 6 Vector4 elements used to set different images to each box side\n * * faceColors an array of 6 Color3 elements used to set different colors to each box side\n * * alignHorizontal places whole tiles aligned to the center, left or right of a row\n * * alignVertical places whole tiles aligned to the center, left or right of a column\n * @param options.pattern\n * @param options.size\n * @param options.width\n * @param options.height\n * @param options.depth\n * @param options.tileSize\n * @param options.tileWidth\n * @param options.tileHeight\n * @param options.faceUV\n * @param options.faceColors\n * @param options.alignHorizontal\n * @param options.alignVertical\n * @param options.sideOrientation\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * @returns the VertexData of the TiledBox\n */\nexport function CreateTiledBoxVertexData(options) {\n const nbFaces = 6;\n const faceUV = options.faceUV || new Array(6);\n const faceColors = options.faceColors;\n const flipTile = options.pattern || Mesh.NO_FLIP;\n const width = options.width || options.size || 1;\n const height = options.height || options.size || 1;\n const depth = options.depth || options.size || 1;\n const tileWidth = options.tileWidth || options.tileSize || 1;\n const tileHeight = options.tileHeight || options.tileSize || 1;\n const alignH = options.alignHorizontal || 0;\n const alignV = options.alignVertical || 0;\n const sideOrientation = options.sideOrientation === 0 ? 0 : options.sideOrientation || VertexData.DEFAULTSIDE;\n // default face colors and UV if undefined\n for (let f = 0; f < nbFaces; f++) {\n if (faceUV[f] === undefined) {\n faceUV[f] = new Vector4(0, 0, 1, 1);\n }\n if (faceColors && faceColors[f] === undefined) {\n faceColors[f] = new Color4(1, 1, 1, 1);\n }\n }\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n const halfDepth = depth / 2;\n const faceVertexData = [];\n for (let f = 0; f < 2; f++) {\n //front and back\n faceVertexData[f] = CreateTiledPlaneVertexData({\n pattern: flipTile,\n tileWidth: tileWidth,\n tileHeight: tileHeight,\n width: width,\n height: height,\n alignVertical: alignV,\n alignHorizontal: alignH,\n sideOrientation: sideOrientation\n });\n }\n for (let f = 2; f < 4; f++) {\n //sides\n faceVertexData[f] = CreateTiledPlaneVertexData({\n pattern: flipTile,\n tileWidth: tileWidth,\n tileHeight: tileHeight,\n width: depth,\n height: height,\n alignVertical: alignV,\n alignHorizontal: alignH,\n sideOrientation: sideOrientation\n });\n }\n let baseAlignV = alignV;\n if (alignV === Mesh.BOTTOM) {\n baseAlignV = Mesh.TOP;\n } else if (alignV === Mesh.TOP) {\n baseAlignV = Mesh.BOTTOM;\n }\n for (let f = 4; f < 6; f++) {\n //top and bottom\n faceVertexData[f] = CreateTiledPlaneVertexData({\n pattern: flipTile,\n tileWidth: tileWidth,\n tileHeight: tileHeight,\n width: width,\n height: depth,\n alignVertical: baseAlignV,\n alignHorizontal: alignH,\n sideOrientation: sideOrientation\n });\n }\n let positions = [];\n let normals = [];\n let uvs = [];\n let indices = [];\n const colors = [];\n const facePositions = [];\n const faceNormals = [];\n const newFaceUV = [];\n let lu = 0;\n let li = 0;\n for (let f = 0; f < nbFaces; f++) {\n const len = faceVertexData[f].positions.length;\n facePositions[f] = [];\n faceNormals[f] = [];\n for (let p = 0; p < len / 3; p++) {\n facePositions[f].push(new Vector3(faceVertexData[f].positions[3 * p], faceVertexData[f].positions[3 * p + 1], faceVertexData[f].positions[3 * p + 2]));\n faceNormals[f].push(new Vector3(faceVertexData[f].normals[3 * p], faceVertexData[f].normals[3 * p + 1], faceVertexData[f].normals[3 * p + 2]));\n }\n // uvs\n lu = faceVertexData[f].uvs.length;\n newFaceUV[f] = [];\n for (let i = 0; i < lu; i += 2) {\n newFaceUV[f][i] = faceUV[f].x + (faceUV[f].z - faceUV[f].x) * faceVertexData[f].uvs[i];\n newFaceUV[f][i + 1] = faceUV[f].y + (faceUV[f].w - faceUV[f].y) * faceVertexData[f].uvs[i + 1];\n if (useOpenGLOrientationForUV) {\n newFaceUV[f][i + 1] = 1.0 - newFaceUV[f][i + 1];\n }\n }\n uvs = uvs.concat(newFaceUV[f]);\n indices = indices.concat(faceVertexData[f].indices.map(x => x + li));\n li += facePositions[f].length;\n if (faceColors) {\n for (let c = 0; c < 4; c++) {\n colors.push(faceColors[f].r, faceColors[f].g, faceColors[f].b, faceColors[f].a);\n }\n }\n }\n const vec0 = new Vector3(0, 0, halfDepth);\n const mtrx0 = Matrix.RotationY(Math.PI);\n positions = facePositions[0].map(entry => Vector3.TransformNormal(entry, mtrx0).add(vec0)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []);\n normals = faceNormals[0].map(entry => Vector3.TransformNormal(entry, mtrx0)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []);\n positions = positions.concat(facePositions[1].map(entry => entry.subtract(vec0)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n normals = normals.concat(faceNormals[1].map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n const vec2 = new Vector3(halfWidth, 0, 0);\n const mtrx2 = Matrix.RotationY(-Math.PI / 2);\n positions = positions.concat(facePositions[2].map(entry => Vector3.TransformNormal(entry, mtrx2).add(vec2)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n normals = normals.concat(faceNormals[2].map(entry => Vector3.TransformNormal(entry, mtrx2)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n const mtrx3 = Matrix.RotationY(Math.PI / 2);\n positions = positions.concat(facePositions[3].map(entry => Vector3.TransformNormal(entry, mtrx3).subtract(vec2)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n normals = normals.concat(faceNormals[3].map(entry => Vector3.TransformNormal(entry, mtrx3)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n const vec4 = new Vector3(0, halfHeight, 0);\n const mtrx4 = Matrix.RotationX(Math.PI / 2);\n positions = positions.concat(facePositions[4].map(entry => Vector3.TransformNormal(entry, mtrx4).add(vec4)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n normals = normals.concat(faceNormals[4].map(entry => Vector3.TransformNormal(entry, mtrx4)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n const mtrx5 = Matrix.RotationX(-Math.PI / 2);\n positions = positions.concat(facePositions[5].map(entry => Vector3.TransformNormal(entry, mtrx5).subtract(vec4)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n normals = normals.concat(faceNormals[5].map(entry => Vector3.TransformNormal(entry, mtrx5)).map(entry => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n // sides\n VertexData._ComputeSides(sideOrientation, positions, indices, normals, uvs);\n // Result\n const vertexData = new VertexData();\n vertexData.indices = indices;\n vertexData.positions = positions;\n vertexData.normals = normals;\n vertexData.uvs = uvs;\n if (faceColors) {\n const totalColors = sideOrientation === VertexData.DOUBLESIDE ? colors.concat(colors) : colors;\n vertexData.colors = totalColors;\n }\n return vertexData;\n}\n/**\n * Creates a tiled box mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set/tiled_box\n * @param name defines the name of the mesh\n * @param options an object used to set the following optional parameters for the tiled box, required but can be empty\n * * pattern sets the rotation or reflection pattern for the tiles,\n * * size of the box\n * * width of the box, overwrites size\n * * height of the box, overwrites size\n * * depth of the box, overwrites size\n * * tileSize sets the size of a tile\n * * tileWidth sets the tile width and overwrites tileSize\n * * tileHeight sets the tile width and overwrites tileSize\n * * faceUV an array of 6 Vector4 elements used to set different images to each box side\n * * faceColors an array of 6 Color3 elements used to set different colors to each box side\n * * alignHorizontal places whole tiles aligned to the center, left or right of a row\n * * alignVertical places whole tiles aligned to the center, left or right of a column\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * @param options.pattern\n * @param options.width\n * @param options.height\n * @param options.depth\n * @param options.tileSize\n * @param options.tileWidth\n * @param options.tileHeight\n * @param options.alignHorizontal\n * @param options.alignVertical\n * @param options.faceUV\n * @param options.faceColors\n * @param options.sideOrientation\n * @param options.updatable\n * @param scene defines the hosting scene\n * @returns the box mesh\n */\nexport function CreateTiledBox(name, options, scene = null) {\n const box = new Mesh(name, scene);\n options.sideOrientation = Mesh._GetDefaultSideOrientation(options.sideOrientation);\n box._originalBuilderSideOrientation = options.sideOrientation;\n const vertexData = CreateTiledBoxVertexData(options);\n vertexData.applyToMesh(box, options.updatable);\n return box;\n}\n/**\n * Class containing static functions to help procedurally build meshes\n * @deprecated use CreateTiledBox instead\n */\nexport const TiledBoxBuilder = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateTiledBox\n};\nVertexData.CreateTiledBox = CreateTiledBoxVertexData;","map":{"version":3,"names":["Matrix","Vector3","Vector4","Color4","Mesh","VertexData","CreateTiledPlaneVertexData","useOpenGLOrientationForUV","CreateTiledBoxVertexData","options","nbFaces","faceUV","Array","faceColors","flipTile","pattern","NO_FLIP","width","size","height","depth","tileWidth","tileSize","tileHeight","alignH","alignHorizontal","alignV","alignVertical","sideOrientation","DEFAULTSIDE","f","undefined","halfWidth","halfHeight","halfDepth","faceVertexData","baseAlignV","BOTTOM","TOP","positions","normals","uvs","indices","colors","facePositions","faceNormals","newFaceUV","lu","li","len","length","p","push","i","x","z","y","w","concat","map","c","r","g","b","a","vec0","mtrx0","RotationY","Math","PI","entry","TransformNormal","add","reduce","accumulator","currentValue","subtract","vec2","mtrx2","mtrx3","vec4","mtrx4","RotationX","mtrx5","_ComputeSides","vertexData","totalColors","DOUBLESIDE","CreateTiledBox","name","scene","box","_GetDefaultSideOrientation","_originalBuilderSideOrientation","applyToMesh","updatable","TiledBoxBuilder"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Meshes/Builders/tiledBoxBuilder.js"],"sourcesContent":["import { Matrix, Vector3, Vector4 } from \"../../Maths/math.vector.js\";\nimport { Color4 } from \"../../Maths/math.color.js\";\nimport { Mesh } from \"../mesh.js\";\nimport { VertexData } from \"../mesh.vertexData.js\";\nimport { CreateTiledPlaneVertexData } from \"./tiledPlaneBuilder.js\";\nimport { useOpenGLOrientationForUV } from \"../../Compat/compatibilityOptions.js\";\n/**\n * Creates the VertexData for a tiled box\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set/tiled_box\n * @param options an object used to set the following optional parameters for the tiled box, required but can be empty\n * * pattern sets the rotation or reflection pattern for the tiles,\n * * size of the box\n * * width of the box, overwrites size\n * * height of the box, overwrites size\n * * depth of the box, overwrites size\n * * tileSize sets the size of a tile\n * * tileWidth sets the tile width and overwrites tileSize\n * * tileHeight sets the tile width and overwrites tileSize\n * * faceUV an array of 6 Vector4 elements used to set different images to each box side\n * * faceColors an array of 6 Color3 elements used to set different colors to each box side\n * * alignHorizontal places whole tiles aligned to the center, left or right of a row\n * * alignVertical places whole tiles aligned to the center, left or right of a column\n * @param options.pattern\n * @param options.size\n * @param options.width\n * @param options.height\n * @param options.depth\n * @param options.tileSize\n * @param options.tileWidth\n * @param options.tileHeight\n * @param options.faceUV\n * @param options.faceColors\n * @param options.alignHorizontal\n * @param options.alignVertical\n * @param options.sideOrientation\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * @returns the VertexData of the TiledBox\n */\nexport function CreateTiledBoxVertexData(options) {\n const nbFaces = 6;\n const faceUV = options.faceUV || new Array(6);\n const faceColors = options.faceColors;\n const flipTile = options.pattern || Mesh.NO_FLIP;\n const width = options.width || options.size || 1;\n const height = options.height || options.size || 1;\n const depth = options.depth || options.size || 1;\n const tileWidth = options.tileWidth || options.tileSize || 1;\n const tileHeight = options.tileHeight || options.tileSize || 1;\n const alignH = options.alignHorizontal || 0;\n const alignV = options.alignVertical || 0;\n const sideOrientation = options.sideOrientation === 0 ? 0 : options.sideOrientation || VertexData.DEFAULTSIDE;\n // default face colors and UV if undefined\n for (let f = 0; f < nbFaces; f++) {\n if (faceUV[f] === undefined) {\n faceUV[f] = new Vector4(0, 0, 1, 1);\n }\n if (faceColors && faceColors[f] === undefined) {\n faceColors[f] = new Color4(1, 1, 1, 1);\n }\n }\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n const halfDepth = depth / 2;\n const faceVertexData = [];\n for (let f = 0; f < 2; f++) {\n //front and back\n faceVertexData[f] = CreateTiledPlaneVertexData({\n pattern: flipTile,\n tileWidth: tileWidth,\n tileHeight: tileHeight,\n width: width,\n height: height,\n alignVertical: alignV,\n alignHorizontal: alignH,\n sideOrientation: sideOrientation,\n });\n }\n for (let f = 2; f < 4; f++) {\n //sides\n faceVertexData[f] = CreateTiledPlaneVertexData({\n pattern: flipTile,\n tileWidth: tileWidth,\n tileHeight: tileHeight,\n width: depth,\n height: height,\n alignVertical: alignV,\n alignHorizontal: alignH,\n sideOrientation: sideOrientation,\n });\n }\n let baseAlignV = alignV;\n if (alignV === Mesh.BOTTOM) {\n baseAlignV = Mesh.TOP;\n }\n else if (alignV === Mesh.TOP) {\n baseAlignV = Mesh.BOTTOM;\n }\n for (let f = 4; f < 6; f++) {\n //top and bottom\n faceVertexData[f] = CreateTiledPlaneVertexData({\n pattern: flipTile,\n tileWidth: tileWidth,\n tileHeight: tileHeight,\n width: width,\n height: depth,\n alignVertical: baseAlignV,\n alignHorizontal: alignH,\n sideOrientation: sideOrientation,\n });\n }\n let positions = [];\n let normals = [];\n let uvs = [];\n let indices = [];\n const colors = [];\n const facePositions = [];\n const faceNormals = [];\n const newFaceUV = [];\n let lu = 0;\n let li = 0;\n for (let f = 0; f < nbFaces; f++) {\n const len = faceVertexData[f].positions.length;\n facePositions[f] = [];\n faceNormals[f] = [];\n for (let p = 0; p < len / 3; p++) {\n facePositions[f].push(new Vector3(faceVertexData[f].positions[3 * p], faceVertexData[f].positions[3 * p + 1], faceVertexData[f].positions[3 * p + 2]));\n faceNormals[f].push(new Vector3(faceVertexData[f].normals[3 * p], faceVertexData[f].normals[3 * p + 1], faceVertexData[f].normals[3 * p + 2]));\n }\n // uvs\n lu = faceVertexData[f].uvs.length;\n newFaceUV[f] = [];\n for (let i = 0; i < lu; i += 2) {\n newFaceUV[f][i] = faceUV[f].x + (faceUV[f].z - faceUV[f].x) * faceVertexData[f].uvs[i];\n newFaceUV[f][i + 1] = faceUV[f].y + (faceUV[f].w - faceUV[f].y) * faceVertexData[f].uvs[i + 1];\n if (useOpenGLOrientationForUV) {\n newFaceUV[f][i + 1] = 1.0 - newFaceUV[f][i + 1];\n }\n }\n uvs = uvs.concat(newFaceUV[f]);\n indices = indices.concat(faceVertexData[f].indices.map((x) => x + li));\n li += facePositions[f].length;\n if (faceColors) {\n for (let c = 0; c < 4; c++) {\n colors.push(faceColors[f].r, faceColors[f].g, faceColors[f].b, faceColors[f].a);\n }\n }\n }\n const vec0 = new Vector3(0, 0, halfDepth);\n const mtrx0 = Matrix.RotationY(Math.PI);\n positions = facePositions[0]\n .map((entry) => Vector3.TransformNormal(entry, mtrx0).add(vec0))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []);\n normals = faceNormals[0]\n .map((entry) => Vector3.TransformNormal(entry, mtrx0))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []);\n positions = positions.concat(facePositions[1]\n .map((entry) => entry.subtract(vec0))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n normals = normals.concat(faceNormals[1].map((entry) => [entry.x, entry.y, entry.z]).reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n const vec2 = new Vector3(halfWidth, 0, 0);\n const mtrx2 = Matrix.RotationY(-Math.PI / 2);\n positions = positions.concat(facePositions[2]\n .map((entry) => Vector3.TransformNormal(entry, mtrx2).add(vec2))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n normals = normals.concat(faceNormals[2]\n .map((entry) => Vector3.TransformNormal(entry, mtrx2))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n const mtrx3 = Matrix.RotationY(Math.PI / 2);\n positions = positions.concat(facePositions[3]\n .map((entry) => Vector3.TransformNormal(entry, mtrx3).subtract(vec2))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n normals = normals.concat(faceNormals[3]\n .map((entry) => Vector3.TransformNormal(entry, mtrx3))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n const vec4 = new Vector3(0, halfHeight, 0);\n const mtrx4 = Matrix.RotationX(Math.PI / 2);\n positions = positions.concat(facePositions[4]\n .map((entry) => Vector3.TransformNormal(entry, mtrx4).add(vec4))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n normals = normals.concat(faceNormals[4]\n .map((entry) => Vector3.TransformNormal(entry, mtrx4))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n const mtrx5 = Matrix.RotationX(-Math.PI / 2);\n positions = positions.concat(facePositions[5]\n .map((entry) => Vector3.TransformNormal(entry, mtrx5).subtract(vec4))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n normals = normals.concat(faceNormals[5]\n .map((entry) => Vector3.TransformNormal(entry, mtrx5))\n .map((entry) => [entry.x, entry.y, entry.z])\n .reduce((accumulator, currentValue) => accumulator.concat(currentValue), []));\n // sides\n VertexData._ComputeSides(sideOrientation, positions, indices, normals, uvs);\n // Result\n const vertexData = new VertexData();\n vertexData.indices = indices;\n vertexData.positions = positions;\n vertexData.normals = normals;\n vertexData.uvs = uvs;\n if (faceColors) {\n const totalColors = sideOrientation === VertexData.DOUBLESIDE ? colors.concat(colors) : colors;\n vertexData.colors = totalColors;\n }\n return vertexData;\n}\n/**\n * Creates a tiled box mesh\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/set/tiled_box\n * @param name defines the name of the mesh\n * @param options an object used to set the following optional parameters for the tiled box, required but can be empty\n * * pattern sets the rotation or reflection pattern for the tiles,\n * * size of the box\n * * width of the box, overwrites size\n * * height of the box, overwrites size\n * * depth of the box, overwrites size\n * * tileSize sets the size of a tile\n * * tileWidth sets the tile width and overwrites tileSize\n * * tileHeight sets the tile width and overwrites tileSize\n * * faceUV an array of 6 Vector4 elements used to set different images to each box side\n * * faceColors an array of 6 Color3 elements used to set different colors to each box side\n * * alignHorizontal places whole tiles aligned to the center, left or right of a row\n * * alignVertical places whole tiles aligned to the center, left or right of a column\n * * sideOrientation optional and takes the values : Mesh.FRONTSIDE (default), Mesh.BACKSIDE or Mesh.DOUBLESIDE\n * @param options.pattern\n * @param options.width\n * @param options.height\n * @param options.depth\n * @param options.tileSize\n * @param options.tileWidth\n * @param options.tileHeight\n * @param options.alignHorizontal\n * @param options.alignVertical\n * @param options.faceUV\n * @param options.faceColors\n * @param options.sideOrientation\n * @param options.updatable\n * @param scene defines the hosting scene\n * @returns the box mesh\n */\nexport function CreateTiledBox(name, options, scene = null) {\n const box = new Mesh(name, scene);\n options.sideOrientation = Mesh._GetDefaultSideOrientation(options.sideOrientation);\n box._originalBuilderSideOrientation = options.sideOrientation;\n const vertexData = CreateTiledBoxVertexData(options);\n vertexData.applyToMesh(box, options.updatable);\n return box;\n}\n/**\n * Class containing static functions to help procedurally build meshes\n * @deprecated use CreateTiledBox instead\n */\nexport const TiledBoxBuilder = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n CreateTiledBox,\n};\nVertexData.CreateTiledBox = CreateTiledBoxVertexData;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}