import { vec2, vec3 } from 'gl-matrix'; type ivec3 = [number, number, number]; /** * Helper class to generate a sphere geometry based on a refinable icosahedron */ export declare class Icosahedron { /** @see {@link faces} */ protected _faces: Array; /** @see {@link vertices} */ protected _vertices: Array; /** @see {@link texcoords} */ protected _texcoords: Array; /** * Object constructor. */ constructor(); /** * Returns the base vertices for the icosahedron. */ protected baseVertices(): Array; /** * Returns the base faces for the icosahedron. */ protected baseFaces(): Array; /** * Refines the icosahedron. For each step, every triangle is split into 4. * @param vertices - List of vertices that is modified. * @param faces - List of faces that is modified. * @param levels - Number of levels of refinement. */ protected refine(vertices: Array, faces: Array, levels: number): void; /** * Splits an edge and returns the new vertex that is the center of the edge. * @param a - Index of first vertex. * @param b - Index of second vertex. * @param vertices - List of vertices that is modified. * @param cache - Cache to identify newly created vertices. */ protected split(a: number, b: number, vertices: Array, cache: Map): number; /** * Generates the geometry of the icosahedron. * @param levels - Number of levels of refinement. */ generateGeometry(levels: number): void; /** * Generates texture coordinates for the icosahedron. */ generateTextureCoordinates(): void; /** * Read-only access to the faces of the icosahedron. */ get faces(): Array; /** * Read-only access to the vertices of the icosahedron. */ get vertices(): Array; /** * Read-only access to the texture coordinates of the icosahedron. */ get texcoords(): Array; } export {};