UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

191 lines 4.94 kB
export class TopoMesh { /** * * @type {TopoVertex[]} */ vertices: TopoVertex[]; /** * * @type {Set<TopoEdge>} * @private */ private __edges; /** * * @type {Set<TopoTriangle>} * @private */ private __faces; /** * Approximation of memory footprint of this object * NOTE: this is highly speculative and will differ from reality depending on VM running the code as well as many other factors * @return {number} */ get byteSize(): number; /** * * @returns {Set<TopoEdge>} */ getEdges(): Set<TopoEdge>; /** * * @returns {Set<TopoTriangle>} */ getFaces(): Set<TopoTriangle>; /** * * @param {number} index * @return {undefined|TopoTriangle} */ getFaceByIndex(index: number): undefined | TopoTriangle; /** * * @param {function(reason:string)} [error_consumer] * @returns {boolean} */ validate(error_consumer?: typeof noop): boolean; clone(): TopoMesh; /** * * @returns {Map<number, TopoVertex>} */ buildVertexMapping(): Map<number, TopoVertex>; /** * * @param {TopoMesh} other * @param {Map<number, TopoVertex>} vertex_map */ _addWithVertexMap(other: TopoMesh, vertex_map: Map<number, TopoVertex>): void; /** * Will create a topologically matching copy of the given face in this Mesh * @param {TopoTriangle} face * @param {Map<number,TopoVertex>} vertex_map */ addFaceCopy(face: TopoTriangle, vertex_map: Map<number, TopoVertex>): void; /** * Ensures that face has correct edges. * NOTE: this method is additive, it will not *NOT* remove any references * @param {TopoTriangle} face */ patchFaceEdges(face: TopoTriangle): void; /** * * @param {TopoMesh} other */ add(other: TopoMesh): void; /** * * @param {TopoVertex} v */ addVertex(v: TopoVertex): void; /** * * @param {TopoVertex} v */ addUniqueVertex(v: TopoVertex): void; /** * @deprecated use {@link tm_kill_only_vert} * @param {TopoVertex} v */ removeVertex(v: TopoVertex): void; /** * * @param {TopoVertex} v * @returns {boolean} */ containsVertex(v: TopoVertex): boolean; /** * * @param {TopoEdge} e */ addEdge(e: TopoEdge): void; /** * * @param {TopoEdge} e */ addUniqueEdge(e: TopoEdge): void; /** * @deprecated use {@link tm_kill_only_edge} * @param {TopoEdge} e */ removeEdge(e: TopoEdge): void; /** * * @param {TopoEdge} e * @returns {boolean} */ containsEdge(e: TopoEdge): boolean; /** * * @param {TopoTriangle} f */ addFace(f: TopoTriangle): void; /** * * @param {Iterable<TopoTriangle>} faces */ injectManyFaces(faces: Iterable<TopoTriangle>): void; /** * Add face as well as it's edges and vertices * @param {TopoTriangle} f */ injectFace(f: TopoTriangle): void; /** * @deprecated use {@link tm_kill_only_face} instead * @param {TopoTriangle} f */ removeFace(f: TopoTriangle): void; /** * * @param {TopoTriangle} f * @returns {boolean} */ containsFace(f: TopoTriangle): boolean; /** * Creates an edge between two vertices, or if one already exists - returns that * @param {TopoVertex} a * @param {TopoVertex} b * * @returns {TopoEdge} Edge connecting vertices A and B */ ensureEdge(a: TopoVertex, b: TopoVertex): TopoEdge; mergeEdges(): void; computeEdgeSquaredLengths(): void; /** * * @param {Float32Array} vertices */ setVerticesFromArray(vertices: Float32Array): void; /** * * @param {Uint16Array|Uint32Array|number[]} faces */ setFacesFromIndexArray(faces: Uint16Array | Uint32Array | number[]): void; setFacedUnindexed(): void; /** * * @param {Float64Array|Float32Array|number[]} vertices * @param {Uint32Array|Uint16Array|Uint8Array|number[]} [faces] */ build(vertices: Float64Array | Float32Array | number[], faces?: Uint32Array | Uint16Array | Uint8Array | number[]): void; /** * * @param {number} index * @param {TopoVertex} v0 * @param {TopoVertex} v1 * @param {TopoVertex} v2 * @returns {TopoTriangle} */ createTriangle(index: number, v0: TopoVertex, v1: TopoVertex, v2: TopoVertex): TopoTriangle; toString(): string; /** * @readonly * @type {boolean} */ readonly isTopoMesh: boolean; } import { TopoVertex } from "./TopoVertex.js"; import { TopoEdge } from "./TopoEdge.js"; import { TopoTriangle } from "./TopoTriangle.js"; import { noop } from "../../../../function/noop.js"; //# sourceMappingURL=TopoMesh.d.ts.map