UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

89 lines 1.83 kB
/** * Fixed-sized container structure, where ends are connected into a circle/ring * This is a FIFO structure (first in, first out) * @see https://en.wikipedia.org/wiki/Circular_buffer * @template V */ export class RingBuffer<V> { /** * @param {number} size */ constructor(size: number); /** * Capacity of the buffer, number of slots * @type {number} */ size: number; /** * * @type {number} */ head: number; /** * * @type {number} */ tail: number; /** * Number of used slots. Starts at 0, goes up to {@link #size} * @type {number} */ count: number; /** * * @type {V[]} */ data: V[]; /** * * @param {number} new_size */ resize(new_size: number): void; /** * * @return {V} */ getHead(): V; /** * * @param {number} offset * @returns {V} */ getFromHead(offset: number): V; clear(): void; /** * * @param {V} element */ push(element: V): void; /** * Remove element from the tail * @returns {V|undefined} */ shift(): V | undefined; /** * * @param {number} index */ removeElementByIndex(index: number): void; /** * Removed first element that fulfills the criteria * @param {function(V):boolean} condition * @param {*} [thisArg] * @returns {V|undefined} */ removeIf(condition: (arg0: V) => boolean, thisArg?: any): V | undefined; /** * * @param {function(V)} visitor * @param {*} [thisArg] */ forEach(visitor: (arg0: V) => any, thisArg?: any): void; /** * * @param {V} value * @returns {boolean} */ contains(value: V): boolean; } //# sourceMappingURL=RingBuffer.d.ts.map