Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkRecursiveSphereDirectionEncoder Class Reference

#include <vtkRecursiveSphereDirectionEncoder.h>

Inheritance diagram for vtkRecursiveSphereDirectionEncoder:

Inheritance graph
[legend]
Collaboration diagram for vtkRecursiveSphereDirectionEncoder:

Collaboration graph
[legend]
List of all members.

Detailed Description

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
Created by:
  • Avila, Lisa
CVS contributions (if > 5%):
  • Avila, Lisa (84%)
  • Lorensen, Bill (5%)
CVS logs (CVSweb):
  • .h (/Rendering/vtkRecursiveSphereDirectionEncoder.h)
  • .cxx (/Rendering/vtkRecursiveSphereDirectionEncoder.cxx)

Definition at line 44 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

int IsTypeOf (const char *type)
vtkRecursiveSphereDirectionEncoderSafeDownCast (vtkObject *o)
vtkRecursiveSphereDirectionEncoderNew ()

Protected Member Functions

 vtkRecursiveSphereDirectionEncoder ()
 ~vtkRecursiveSphereDirectionEncoder ()
void InitializeIndexTable (void)

Protected Attributes

int RecursionDepth
int * IndexTable
float * DecodedNormal
int IndexTableRecursionDepth
int OuterSize
int InnerSize
int GridSize


Member Typedef Documentation

typedef vtkDirectionEncoder vtkRecursiveSphereDirectionEncoder::Superclass
 

Get the name of this class

Reimplemented from vtkDirectionEncoder.

Definition at line 47 of file vtkRecursiveSphereDirectionEncoder.h.


Constructor & Destructor Documentation

vtkRecursiveSphereDirectionEncoder::vtkRecursiveSphereDirectionEncoder  )  [protected]
 

vtkRecursiveSphereDirectionEncoder::~vtkRecursiveSphereDirectionEncoder  )  [protected]
 


Member Function Documentation

virtual const char* vtkRecursiveSphereDirectionEncoder::GetClassName  )  [virtual]
 

Get the name of this class

Reimplemented from vtkDirectionEncoder.

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.

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.

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]
 


Member Data Documentation

int vtkRecursiveSphereDirectionEncoder::RecursionDepth [protected]
 

Definition at line 92 of file vtkRecursiveSphereDirectionEncoder.h.

int* vtkRecursiveSphereDirectionEncoder::IndexTable [protected]
 

Definition at line 97 of file vtkRecursiveSphereDirectionEncoder.h.

float* vtkRecursiveSphereDirectionEncoder::DecodedNormal [protected]
 

Definition at line 103 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::IndexTableRecursionDepth [protected]
 

Definition at line 109 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::OuterSize [protected]
 

Definition at line 111 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::InnerSize [protected]
 

Definition at line 112 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::GridSize [protected]
 

Definition at line 113 of file vtkRecursiveSphereDirectionEncoder.h.


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