Documentation for vtkRecursiveSphereDirectionEncoder

vtkRecursiveSphereDirectionEncoder - A direction encoder based on the recursive subdivision of an octahedron

Super Class: vtkDirectionEncoder

Description:

vtkRecursiveSphereDirectionEncoder is a direction encoder which uses the vertices of a recursive subdivision of an octahedron (with the vertices pushed out onto the surface of an enclosing sphere) to encode directions into a two byte value.

 

See Also:

vtkDirectionEncoder

 

Methods:

void vtkRecursiveSphereDirectionEncoder ()
void vtkRecursiveSphereDirectionEncoder ()
const char *GetClassName ()
void PrintSelf (unknown & ,vtkIndent )
static vtkRecursiveSphereDirectionEncoder *New ()
int GetEncodedDirection (float )
float *GetDecodedGradient (int )
int GetNumberOfEncodedDirections ()
float *GetDecodedGradientTable ()
void SetRecursionDepth (int )
int GetRecursionDepth ()
void InitializeIndexTable ()

 

Detailed Method Descriptions:

Construct the object. Initialize the index table which will be used to map the normal into a patch on the recursively subdivided sphere.

static vtkRecursiveSphereDirectionEncoder *New ()

Given a normal vector n, return the encoded direction

int GetEncodedDirection (float )

/ Given an encoded value, return a pointer to the normal vector

float *GetDecodedGradient (int )

Return the number of encoded directions

int GetNumberOfEncodedDirections ()

Get the decoded gradient table. There are this->GetNumberOfEncodedDirections() entries in the table, each containing a normal (direction) vector. This is a flat structure - 3 times the number of directions floats in an array.

float *GetDecodedGradientTable ()

Set / Get the recursion depth for the subdivision. This indicates how many time one triangle on the initial 8-sided sphere model is replaced by four triangles formed by connecting triangle edge midpoints. A recursion level of 0 yields 8 triangles with 6 unique vertices. The normals are the vectors from the sphere center through the vertices. The number of directions will be 11 since the four normals with 0 z values will be duplicated in the table - once with +0 values and the other time with -0 values, and an addition index will be used to represent the (0,0,0) normal. If we instead choose a recursion level of 6 (the maximum that can fit within 2 bytes) the number of directions is 16643, with 16386 unique directions and a zero normal.

void SetRecursionDepth (int )
int GetRecursionDepth ()