The Gnome Chemistry Utils  0.14.0
Public Member Functions | Protected Member Functions | List of all members
gcu::Sphere Class Reference

#include <gcu/sphere.h>

Public Member Functions

void setup (int detail)
void draw (Vector const &center, double radius) const

Protected Member Functions

unsigned short indexOfVertex (int strip, int column, int row)
void computeVertex (int strip, int column, int row)

Detailed Description

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.

Author
Benoit Jacob jacob.nosp@m.@mat.nosp@m.h.jus.nosp@m.sieu.nosp@m..fr

Definition at line 46 of file sphere.h.

Member Function Documentation

void gcu::Sphere::computeVertex ( int  strip,
int  column,
int  row 
)
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

unsigned short gcu::Sphere::indexOfVertex ( int  strip,
int  column,
int  row 
)
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.

Parameters
detailthe wanted level of detail. See m_detail member

The documentation for this class was generated from the following file: