UNPKG

ts-game-engine

Version:

Simple WebGL game/render engine written in TypeScript

59 lines (58 loc) 1.94 kB
import { IDisposable, IAttributeTypeInfo } from "../Interfaces"; import { Scene } from "../Scene"; import { vec3 } from "gl-matrix"; import { BoundingBox } from "../Math/BoundingBox"; export declare const enum VertexFormat { Position = 1, Color = 2, Normal = 4, UV0 = 8, UV1 = 16 } export declare const enum IndexFormat { UInt16 = 0, UInt32 = 1 } export declare const enum MeshTopology { Points = 0, Lines = 1, LineLoop = 2, LineStrip = 3, Triangles = 4, TriangleStrip = 5, TriangleFan = 6 } export declare const VERTEX_POSITION_SIZE: number; export declare const VERTEX_COLOR_SIZE: number; export declare const VERTEX_NORMAL_SIZE: number; export declare const VERTEX_UV_SIZE: number; export declare const ATTRIBUTE_INFO: IAttributeTypeInfo[]; export declare class Mesh implements IDisposable { private context; private pipelineState; protected isLoaded: boolean; get IsLoaded(): boolean; private vertexBuffer; get VertexBuffer(): WebGLBuffer; private indexBuffer; get IndexBuffer(): WebGLBuffer | undefined; private vertexFormat; get VertexFormat(): VertexFormat; private indexFormat; get IndexFormat(): IndexFormat; private meshTopology; get MeshTopology(): MeshTopology; private vertexCount; get VertexCount(): number; private indexCount; get IndexCount(): number; private boundingBox; get BoundingBox(): BoundingBox; private isVertexBufferDynamic; constructor(scene: Scene); Dispose(): void; protected SetVertexData(vertexFormat: VertexFormat, meshTopology: MeshTopology, vertexCount: number, vertexData: Float32Array, isDynamic: boolean): void; protected UpdateVertexData(vertexData: Float32Array): void; protected SetIndexData(indices: Uint16Array): void; protected SetBounds(min: vec3, max: vec3): void; }