UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

200 lines 4.5 kB
export class InstancedMeshGroup { /** * * @param {THREE.BufferGeometry} geometry * @param {Material} material * @returns {InstancedMeshGroup} */ static from(geometry: THREE.BufferGeometry, material: Material): InstancedMeshGroup; /** * Instanced geometry * @type {InstancedBufferGeometry|null} * @private */ private __threeGeometry; /** * Geometry of a single instance * @type {BufferGeometry|null} * @private */ private __threeInstanceGeometry; /** * @private * @type {number} */ private count; /** * * @type {number} */ capacity: number; /** * * @type {number} */ growFactor: number; /** * Minimum spare capacity increase during growing * @type {number} */ growConstant: number; /** * * @type {number} */ shrinkFactor: number; /** * Minimum capacity reduction for shrinkage to occur * @type {number} */ shrinkConstant: number; /** * * @type {InstancedBufferAttribute} * @private */ private __attributeTransform; /** * Shortcut to buffer attribute data * @type {Float32Array} * @private */ private __attributeTransformArray; /** * * TODO implement usage * @type {InstancedBufferAttribute} * @private */ private __attributeColor; /** * TODO implement usage * @type {Uint8Array} * @private */ private __attributeColorArray; /** * * @type {Usage} * @private */ private __instanceUsage; /** * * @type {Material} * @private */ private __material; indices: any[]; references: any[]; /** * * @type {DrawMode} * @private */ private __draw_mode; mesh: Mesh<BufferGeometry, import("three").Material | import("three").Material[]>; use_color: boolean; __build_mesh(): void; /** * * @param {DrawMode} v */ set draw_mode(arg: DrawMode); /** * * @param {Usage} v */ set instance_usage(arg: Usage); /** * * @return {Usage} */ get instance_usage(): Usage; dispose(): void; /** * * @param {THREE.BufferGeometry} geometry */ setGeometry(geometry: THREE.BufferGeometry): void; /** * * @param {THREE.Material|THREE.ShaderMaterial} sourceMaterial */ setMaterial(sourceMaterial: THREE.Material | THREE.ShaderMaterial): void; /** * * @param {number} size */ setCapacity(size: number): void; /** * * @param {number} size */ ensureCapacity(size: number): void; /** * * @param {number} index * @param {number[]|ArrayLike<number>|Float32Array} transform 4x4 transform matrix of the instance */ setTransformAt(index: number, transform: number[] | ArrayLike<number> | Float32Array): void; /** * * @param {number} index * @param {number[]|ArrayLike<number>|Float32Array} color RGBA color in uint8 format (0...255), LDR */ setColorAt(index: number, color: number[] | ArrayLike<number> | Float32Array): void; /** * * @param {number} index * @param {number} r * @param {number} g * @param {number} b * @param {number} a */ setColorByComponentAt(index: number, r: number, g: number, b: number, a: number): void; requestAttributeUpdate(): void; /** * Swap position in attribute arrays of two elements * @param {int} indexA * @param {int} indexB */ swap(indexA: int, indexB: int): void; /** * * @param {int} size */ setCount(size: int): void; /** * * @return {number|int} */ getCount(): number | int; /** * * @param {int} reference * @returns {int} */ add(reference: int): int; /** * * @param {function(index:int,reference:int)} visitor * @param {*} [thisArg] */ traverseReferences(visitor: any, thisArg?: any): void; /** * * @param {int} reference */ remove(reference: int): void; build(): void; #private; } export type CacheKey = { color: Material; depth: Material; }; import { BufferGeometry } from 'three'; import { Mesh } from 'three'; import { DrawMode } from "../../ecs/mesh-v2/DrawMode.js"; //# sourceMappingURL=InstancedMeshGroup.d.ts.map