Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

vtkRecursiveSphereDirectionEncoder Class Reference

A direction encoder based on the recursive subdivision of an octahedron. More...

#include <vtkRecursiveSphereDirectionEncoder.h>

Inheritance diagram for vtkRecursiveSphereDirectionEncoder:

Inheritance graph
Collaboration diagram for vtkRecursiveSphereDirectionEncoder:

Collaboration graph
List of all members.

Public Methods

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent index)
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 ()
 vtkRecursiveSphereDirectionEncoder (const vtkRecursiveSphereDirectionEncoder &)
void operator= (const vtkRecursiveSphereDirectionEncoder &)
void InitializeIndexTable (void)

Protected Attributes

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

Detailed Description

A direction encoder based on the recursive subdivision of an octahedron.

2000/12/10 20:08:50

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:
vtkRecursiveSphereDirectionEncoder (examples)

Definition at line 63 of file vtkRecursiveSphereDirectionEncoder.h.

Constructor & Destructor Documentation

vtkRecursiveSphereDirectionEncoder::vtkRecursiveSphereDirectionEncoder   [protected]

vtkRecursiveSphereDirectionEncoder::~vtkRecursiveSphereDirectionEncoder   [protected]

vtkRecursiveSphereDirectionEncoder::vtkRecursiveSphereDirectionEncoder const vtkRecursiveSphereDirectionEncoder &    [inline, protected]

Definition at line 107 of file vtkRecursiveSphereDirectionEncoder.h.

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]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDirectionEncoder.

virtual int vtkRecursiveSphereDirectionEncoder::IsA const char *    type [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDirectionEncoder.

vtkRecursiveSphereDirectionEncoder* vtkRecursiveSphereDirectionEncoder::SafeDownCast vtkObject   o [static]

Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkDirectionEncoder.

void vtkRecursiveSphereDirectionEncoder::PrintSelf ostream &    os,
vtkIndent    index

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObject.

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

Reimplemented from vtkDirectionEncoder.

float* vtkRecursiveSphereDirectionEncoder::GetDecodedGradient int    value [virtual]

/ Given an encoded value, return a pointer to the normal vector

Reimplemented from vtkDirectionEncoder.

int vtkRecursiveSphereDirectionEncoder::GetNumberOfEncodedDirections void    [virtual]

Return the number of encoded directions

Reimplemented from 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.

Reimplemented from 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]

void vtkRecursiveSphereDirectionEncoder::operator= const vtkRecursiveSphereDirectionEncoder &    [inline, protected]

Definition at line 108 of file vtkRecursiveSphereDirectionEncoder.h.

void vtkRecursiveSphereDirectionEncoder::InitializeIndexTable void    [protected]

Member Data Documentation

int vtkRecursiveSphereDirectionEncoder::RecursionDepth [protected]

Definition at line 111 of file vtkRecursiveSphereDirectionEncoder.h.

int* vtkRecursiveSphereDirectionEncoder::IndexTable [protected]

Definition at line 116 of file vtkRecursiveSphereDirectionEncoder.h.

float* vtkRecursiveSphereDirectionEncoder::DecodedNormal [protected]

Definition at line 122 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::IndexTableRecursionDepth [protected]

Definition at line 128 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::OuterSize [protected]

Definition at line 130 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::InnerSize [protected]

Definition at line 131 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::GridSize [protected]

Definition at line 132 of file vtkRecursiveSphereDirectionEncoder.h.

The documentation for this class was generated from the following file:
Generated on Wed Nov 21 12:58:36 2001 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001