Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound 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.

Date:
2002/08/22 18:39:31
Revision:
1.20

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):
  • .cxx (/Rendering/vtkRecursiveSphereDirectionEncoder.cxx)
  • .h (/Rendering/vtkRecursiveSphereDirectionEncoder.h)

Definition at line 48 of file vtkRecursiveSphereDirectionEncoder.h.

Public Types

typedef vtkDirectionEncoder Superclass

Public Methods

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 Methods

int IsTypeOf (const char *type)
vtkRecursiveSphereDirectionEncoder * SafeDownCast (vtkObject *o)
vtkRecursiveSphereDirectionEncoder * New ()

Protected Methods

 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 51 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 96 of file vtkRecursiveSphereDirectionEncoder.h.

int* vtkRecursiveSphereDirectionEncoder::IndexTable [protected]
 

Definition at line 101 of file vtkRecursiveSphereDirectionEncoder.h.

float* vtkRecursiveSphereDirectionEncoder::DecodedNormal [protected]
 

Definition at line 107 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::IndexTableRecursionDepth [protected]
 

Definition at line 113 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::OuterSize [protected]
 

Definition at line 115 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::InnerSize [protected]
 

Definition at line 116 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::GridSize [protected]
 

Definition at line 117 of file vtkRecursiveSphereDirectionEncoder.h.


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