import { mat4, quat, vec2, vec3 } from 'gl-matrix'; import { Context } from '../context'; import { Geometry } from '../geometry'; export declare class PlaneGeometry extends Geometry { protected static readonly VERTICES: Float32Array; protected static readonly UV: Float32Array; protected static readonly INDICES: Uint8Array; protected _vertexLocation: GLuint; protected _texCoordLocation: GLuint; /** @see {@link translation} */ protected _translation: vec3; /** @see {@link scale} */ protected _scale: vec3; /** @see {@link rotation} */ protected _rotation: quat; /** * Object constructor, requires a context and an identifier. * @param context - Valid context to create the object for. * @param identifier - Meaningful name for identification of this instance. */ constructor(context: Context, identifier?: string); /** * Binds the vertex buffer object (VBO) to an attribute binding point of a given, pre-defined index. */ protected bindBuffers(): void; /** * Unbinds the vertex buffer object (VBO) and disables the binding point. */ protected unbindBuffers(): void; /** * Creates the vertex buffer object (VBO) and creates and initializes the buffer's data store. * @param aVertex - Attribute binding point for vertices. */ initialize(aVertex?: GLuint, aTexCoord?: number): boolean; /** * Specifies/invokes the draw of this plane. */ draw(): void; /** * Set the translation of the plane. */ set translation(t: vec3); /** * Set the extents of the plane in x and y direction. */ set scale(s: vec2); /** * Set the rotation of the plane. */ set rotation(q: quat); /** * Get the transformation matrix to transform the unit plane to the specified translation, scale and rotation. */ get transformation(): mat4; /** * Attribute location to which this geometrys vertices are bound to. */ get vertexLocation(): GLuint; /** * Attribute location to which this geometrys texture coordinates are bound to. */ get texCoordLocation(): GLuint; }