gl-plane
Version:
Draw a plane with texture
46 lines (45 loc) • 1.41 kB
TypeScript
import { GLShader } from "gl-shader";
import { GLVAO } from "gl-vao";
import createBuffer from "gl-buffer";
import createTexture from "gl-texture2d";
declare type GLBuffer = ReturnType<typeof createBuffer>;
declare type Mat4 = [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number];
declare type Position = [number, number, number];
export declare type DrawParam = {
model?: Mat4;
view?: Mat4;
projection: Mat4;
};
export declare type GLPlaneOption = {
gl: WebGLRenderingContext;
model?: Mat4;
view?: Mat4;
projection?: Mat4;
opacity?: number;
points: [Position, Position, Position, Position];
texture?: HTMLImageElement;
};
export declare class GLPlane {
bounds: number[][];
option: Required<Omit<GLPlaneOption, "texture">> & {
texture?: HTMLImageElement;
};
vao: GLVAO;
vertextBuffer: GLBuffer;
trangleShader: GLShader<{
model: Mat4;
view: Mat4;
projection: Mat4;
}, "position">;
texture: ReturnType<typeof createTexture>;
constructor(opt: GLPlaneOption);
private getVertexCoords;
private updateBounds;
pick(): null;
isOpaque(): boolean;
isTransparent(): boolean;
update(opt: Partial<GLPlaneOption>): void;
draw(param: DrawParam): void;
drawTransparent(param: DrawParam): void;
}
export {};