1 line
7.0 KiB
Plaintext
1 line
7.0 KiB
Plaintext
{"version":3,"file":"MeshGeometry.mjs","sources":["../../../../src/scene/mesh/shared/MeshGeometry.ts"],"sourcesContent":["import { Buffer } from '../../../rendering/renderers/shared/buffer/Buffer';\nimport { BufferUsage } from '../../../rendering/renderers/shared/buffer/const';\nimport { Geometry } from '../../../rendering/renderers/shared/geometry/Geometry';\nimport { deprecation, v8_0_0 } from '../../../utils/logging/deprecation';\n\nimport type { Topology } from '../../../rendering/renderers/shared/geometry/const';\nimport type { BatchMode } from '../../graphics/shared/GraphicsContext';\n\n/**\n * Options for the mesh geometry.\n * @memberof scene\n */\nexport interface MeshGeometryOptions\n{\n /** The positions of the mesh. */\n positions?: Float32Array;\n /** The UVs of the mesh. */\n uvs?: Float32Array;\n /** The indices of the mesh. */\n indices?: Uint32Array;\n /** The topology of the mesh. */\n topology?: Topology;\n /** Whether to shrink the buffers to fit the data. */\n shrinkBuffersToFit?: boolean;\n}\n\n/**\n * A geometry used to batch multiple meshes with the same texture.\n * @memberof scene\n */\nexport class MeshGeometry extends Geometry\n{\n public static defaultOptions: MeshGeometryOptions = {\n topology: 'triangle-list',\n shrinkBuffersToFit: false,\n };\n\n public batchMode: BatchMode = 'auto';\n\n /**\n * @param {scene.MeshGeometryOptions} options - The options of the mesh geometry.\n */\n constructor(options: MeshGeometryOptions);\n /** @deprecated since 8.0.0 */\n constructor(positions: Float32Array, uvs: Float32Array, indices: Uint32Array);\n constructor(...args: [MeshGeometryOptions] | [Float32Array, Float32Array, Uint32Array])\n {\n let options = args[0] ?? {};\n\n if (options instanceof Float32Array)\n {\n // #if _DEBUG\n deprecation(v8_0_0, 'use new MeshGeometry({ positions, uvs, indices }) instead');\n // #endif\n\n options = {\n positions: options,\n uvs: args[1],\n indices: args[2],\n };\n }\n\n options = { ...MeshGeometry.defaultOptions, ...options };\n\n const positions = options.positions || new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]);\n const uvs = options.uvs || new Float32Array([0, 0, 1, 0, 1, 1, 0, 1]);\n const indices = options.indices || new Uint32Array([0, 1, 2, 0, 2, 3]);\n\n const shrinkToFit = options.shrinkBuffersToFit;\n\n const positionBuffer = new Buffer({\n data: positions,\n label: 'attribute-mesh-positions',\n shrinkToFit,\n usage: BufferUsage.VERTEX | BufferUsage.COPY_DST,\n });\n\n const uvBuffer = new Buffer({\n data: uvs,\n label: 'attribute-mesh-uvs',\n shrinkToFit,\n usage: BufferUsage.VERTEX | BufferUsage.COPY_DST,\n });\n\n const indexBuffer = new Buffer({\n data: indices,\n label: 'index-mesh-buffer',\n shrinkToFit,\n usage: BufferUsage.INDEX | BufferUsage.COPY_DST,\n });\n\n super({\n attributes: {\n aPosition: {\n buffer: positionBuffer,\n format: 'float32x2',\n stride: 2 * 4,\n offset: 0,\n },\n aUV: {\n buffer: uvBuffer,\n format: 'float32x2',\n stride: 2 * 4,\n offset: 0,\n },\n },\n indexBuffer,\n topology: options.topology,\n });\n }\n\n /** The positions of the mesh. */\n get positions(): Float32Array\n {\n return this.attributes.aPosition.buffer.data as Float32Array;\n }\n\n set positions(value: Float32Array)\n {\n this.attributes.aPosition.buffer.data = value;\n }\n\n /** The UVs of the mesh. */\n get uvs(): Float32Array\n {\n return this.attributes.aUV.buffer.data as Float32Array;\n }\n\n set uvs(value: Float32Array)\n {\n this.attributes.aUV.buffer.data = value;\n }\n\n /** The indices of the mesh. */\n get indices(): Uint32Array\n {\n return this.indexBuffer.data as Uint32Array;\n }\n\n set indices(value: Uint32Array)\n {\n this.indexBuffer.data = value;\n }\n}\n"],"names":[],"mappings":"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"} |