import { Context } from '../context'; import { Geometry } from '../geometry'; /** * @todo Refine this based on https://github.com/cginternals/webgl-operate/issues/183 */ export declare class GeosphereGeometry extends Geometry { /** * Diameter of the sphere */ protected _diameter: number; /** * Is the sphere textured? */ protected _textured: boolean; /** * */ protected _size: number; /** * Attribute location of the vertex position */ protected _vertexLocation: GLuint; /** * Attribute location of the texture coordinate */ protected _texCoordLocation: GLuint; /** * 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. * @param diameter - Diameter of the sphere (default: 1.0) * @param textured - Is the box textured? (default: true) */ constructor(context: Context, identifier?: string, diameter?: number, textured?: boolean); /** * 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. * @param aTexCoord - Attribute binding point for texture coordinates. */ initialize(aVertex?: GLuint, aTexCoord?: GLuint): boolean; /** * Draws the sphere. */ draw(): void; /** * 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; }