The Gnome Chemistry Utils
0.14.0
|
#include <gcu/sphere.h>
Public Member Functions | |
void | setup (int detail) |
void | draw (Vector const ¢er, double radius) const |
Protected Member Functions | |
unsigned short | indexOfVertex (int strip, int column, int row) |
void | computeVertex (int strip, int column, int row) |
This class represents and draws a sphere. The level of detail can be controlled. At level 0, the sphere is a octahedron. At levels >=1, the sphere is a "geosphere", that is, one starts with an icosahedron, which is the regular solid with 20 triangular faces, and one then sub-tesselates each face into smaller triangles. This is a classical tesselation, known to give a very good quality/complexity ratio.
|
protected |
computes the coordinates of a vertex given by its position (strip, column, row) inside a certain flat model of the sub-tesselated icosahedron
void gcu::Sphere::draw | ( | Vector const & | center, |
double | radius | ||
) | const |
draws the sphere at specified position and with specified radius
|
inlineprotected |
computes the index (position inside the index buffer) of a vertex given by its position (strip, column, row) inside a certain flat model of the sub-tesselated icosahedron
void gcu::Sphere::setup | ( | int | detail | ) |
initializes the sphere with given level of detail. If the
sphere was already initialized, any pre-allocated buffers are freed and then re-allocated.
detail | the wanted level of detail. See m_detail member |