#include <vtkRecursiveSphereDirectionEncoder.h>
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.
Definition at line 33 of file vtkRecursiveSphereDirectionEncoder.h.
Public Types | |
typedef vtkDirectionEncoder | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
int | GetEncodedDirection (float n[3]) |
float * | GetDecodedGradient (int value) |
int | GetNumberOfEncodedDirections (void) |
float * | GetDecodedGradientTable (void) |
virtual void | SetRecursionDepth (int) |
virtual int | GetRecursionDepth () |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkRecursiveSphereDirectionEncoder * | SafeDownCast (vtkObject *o) |
static vtkRecursiveSphereDirectionEncoder * | New () |
Protected Member Functions | |
vtkRecursiveSphereDirectionEncoder () | |
~vtkRecursiveSphereDirectionEncoder () | |
void | InitializeIndexTable (void) |
Protected Attributes | |
int | RecursionDepth |
int * | IndexTable |
float * | DecodedNormal |
int | IndexTableRecursionDepth |
int | OuterSize |
int | InnerSize |
int | GridSize |
Get the name of this class
Reimplemented from vtkDirectionEncoder.
Definition at line 36 of file vtkRecursiveSphereDirectionEncoder.h.
vtkRecursiveSphereDirectionEncoder::vtkRecursiveSphereDirectionEncoder | ( | ) | [protected] |
vtkRecursiveSphereDirectionEncoder::~vtkRecursiveSphereDirectionEncoder | ( | ) | [protected] |
virtual const char* vtkRecursiveSphereDirectionEncoder::GetClassName | ( | ) | [virtual] |
Get the name of this class
Reimplemented from vtkDirectionEncoder.
static int vtkRecursiveSphereDirectionEncoder::IsTypeOf | ( | const char * | type | ) | [static] |
Get the name of this class
Reimplemented from vtkDirectionEncoder.
virtual int vtkRecursiveSphereDirectionEncoder::IsA | ( | const char * | type | ) | [virtual] |
Get the name of this class
Reimplemented from vtkDirectionEncoder.
static vtkRecursiveSphereDirectionEncoder* vtkRecursiveSphereDirectionEncoder::SafeDownCast | ( | vtkObject * | o | ) | [static] |
Get the name of this class
Reimplemented from vtkDirectionEncoder.
void vtkRecursiveSphereDirectionEncoder::PrintSelf | ( | ostream & | os, | |
vtkIndent | indent | |||
) | [virtual] |
Get the name of this class
Reimplemented from vtkDirectionEncoder.
static vtkRecursiveSphereDirectionEncoder* vtkRecursiveSphereDirectionEncoder::New | ( | ) | [static] |
Construct the object. Initialize the index table which will be used to map the normal into a patch on the recursively subdivided sphere.
Reimplemented from vtkObject.
int vtkRecursiveSphereDirectionEncoder::GetEncodedDirection | ( | float | n[3] | ) | [virtual] |
Given a normal vector n, return the encoded direction
Implements vtkDirectionEncoder.
float* vtkRecursiveSphereDirectionEncoder::GetDecodedGradient | ( | int | value | ) | [virtual] |
/ Given an encoded value, return a pointer to the normal vector
Implements vtkDirectionEncoder.
int vtkRecursiveSphereDirectionEncoder::GetNumberOfEncodedDirections | ( | void | ) | [virtual] |
Return the number of encoded directions
Implements vtkDirectionEncoder.
float* vtkRecursiveSphereDirectionEncoder::GetDecodedGradientTable | ( | void | ) | [virtual] |
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.
Implements vtkDirectionEncoder.
virtual void vtkRecursiveSphereDirectionEncoder::SetRecursionDepth | ( | int | ) | [virtual] |
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.
virtual int vtkRecursiveSphereDirectionEncoder::GetRecursionDepth | ( | ) | [virtual] |
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 vtkRecursiveSphereDirectionEncoder::InitializeIndexTable | ( | void | ) | [protected] |
int vtkRecursiveSphereDirectionEncoder::RecursionDepth [protected] |
Definition at line 81 of file vtkRecursiveSphereDirectionEncoder.h.
int* vtkRecursiveSphereDirectionEncoder::IndexTable [protected] |
Definition at line 86 of file vtkRecursiveSphereDirectionEncoder.h.
float* vtkRecursiveSphereDirectionEncoder::DecodedNormal [protected] |
Definition at line 92 of file vtkRecursiveSphereDirectionEncoder.h.
int vtkRecursiveSphereDirectionEncoder::IndexTableRecursionDepth [protected] |
Definition at line 98 of file vtkRecursiveSphereDirectionEncoder.h.
int vtkRecursiveSphereDirectionEncoder::OuterSize [protected] |
Definition at line 100 of file vtkRecursiveSphereDirectionEncoder.h.
int vtkRecursiveSphereDirectionEncoder::InnerSize [protected] |
Definition at line 101 of file vtkRecursiveSphereDirectionEncoder.h.
int vtkRecursiveSphereDirectionEncoder::GridSize [protected] |
Definition at line 102 of file vtkRecursiveSphereDirectionEncoder.h.