A direction encoder based on the recursive subdivision of an octahedron.
More...
#include <vtkRecursiveSphereDirectionEncoder.h>
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.
- See Also
- vtkDirectionEncoder
Definition at line 33 of file vtkRecursiveSphereDirectionEncoder.h.
vtkRecursiveSphereDirectionEncoder::vtkRecursiveSphereDirectionEncoder |
( |
| ) |
|
|
protected |
vtkRecursiveSphereDirectionEncoder::~vtkRecursiveSphereDirectionEncoder |
( |
| ) |
|
|
protected |
virtual const char* vtkRecursiveSphereDirectionEncoder::GetClassName |
( |
| ) |
|
|
virtual |
static int vtkRecursiveSphereDirectionEncoder::IsTypeOf |
( |
const char * |
type | ) |
|
|
static |
virtual int vtkRecursiveSphereDirectionEncoder::IsA |
( |
const char * |
type | ) |
|
|
virtual |
void vtkRecursiveSphereDirectionEncoder::PrintSelf |
( |
ostream & |
os, |
|
|
vtkIndent |
indent |
|
) |
| |
|
virtual |
Construct the object. Initialize the index table which will be used to map the normal into a patch on the recursively subdivided sphere.
int vtkRecursiveSphereDirectionEncoder::GetEncodedDirection |
( |
float |
n[3] | ) |
|
|
virtual |
float* vtkRecursiveSphereDirectionEncoder::GetDecodedGradient |
( |
int |
value | ) |
|
|
virtual |
/ Given an encoded value, return a pointer to the normal vector
Implements vtkDirectionEncoder.
int vtkRecursiveSphereDirectionEncoder::GetNumberOfEncodedDirections |
( |
void |
| ) |
|
|
virtual |
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 |
int* vtkRecursiveSphereDirectionEncoder::IndexTable |
|
protected |
float* vtkRecursiveSphereDirectionEncoder::DecodedNormal |
|
protected |
int vtkRecursiveSphereDirectionEncoder::IndexTableRecursionDepth |
|
protected |
int vtkRecursiveSphereDirectionEncoder::OuterSize |
|
protected |
int vtkRecursiveSphereDirectionEncoder::InnerSize |
|
protected |
int vtkRecursiveSphereDirectionEncoder::GridSize |
|
protected |
The documentation for this class was generated from the following file: