VTK
|
A direction encoder based on the recursive subdivision of an octahedron. More...
#include <vtkRecursiveSphereDirectionEncoder.h>
Public Types | |
typedef vtkDirectionEncoder | Superclass |
Public Member Functions | |
virtual int | IsA (const char *type) |
vtkRecursiveSphereDirectionEncoder * | NewInstance () const |
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 (vtkObjectBase *o) |
static vtkRecursiveSphereDirectionEncoder * | New () |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkRecursiveSphereDirectionEncoder () | |
~vtkRecursiveSphereDirectionEncoder () | |
void | InitializeIndexTable (void) |
Protected Attributes | |
int | RecursionDepth |
int * | IndexTable |
float * | DecodedNormal |
int | IndexTableRecursionDepth |
int | OuterSize |
int | InnerSize |
int | GridSize |
A direction encoder based on the recursive subdivision of an octahedron.
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 34 of file vtkRecursiveSphereDirectionEncoder.h.
Get the name of this class
Reimplemented from vtkDirectionEncoder.
Definition at line 37 of file vtkRecursiveSphereDirectionEncoder.h.
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 | ( | vtkObjectBase * | o | ) | [static] |
Get the name of this class
Reimplemented from vtkDirectionEncoder.
virtual vtkObjectBase* vtkRecursiveSphereDirectionEncoder::NewInstanceInternal | ( | ) | const [protected, virtual] |
Get the name of this class
Reimplemented from vtkDirectionEncoder.
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] |
Definition at line 82 of file vtkRecursiveSphereDirectionEncoder.h.
int* vtkRecursiveSphereDirectionEncoder::IndexTable [protected] |
Definition at line 87 of file vtkRecursiveSphereDirectionEncoder.h.
float* vtkRecursiveSphereDirectionEncoder::DecodedNormal [protected] |
Definition at line 93 of file vtkRecursiveSphereDirectionEncoder.h.
Definition at line 99 of file vtkRecursiveSphereDirectionEncoder.h.
int vtkRecursiveSphereDirectionEncoder::OuterSize [protected] |
Definition at line 101 of file vtkRecursiveSphereDirectionEncoder.h.
int vtkRecursiveSphereDirectionEncoder::InnerSize [protected] |
Definition at line 102 of file vtkRecursiveSphereDirectionEncoder.h.
int vtkRecursiveSphereDirectionEncoder::GridSize [protected] |
Definition at line 103 of file vtkRecursiveSphereDirectionEncoder.h.