ts-game-engine
Version:
Simple WebGL game/render engine written in TypeScript
59 lines (58 loc) • 1.94 kB
TypeScript
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;
}