VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkRecursiveSphereDirectionEncoder Class Reference

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

#include <vtkRecursiveSphereDirectionEncoder.h>

Inheritance diagram for vtkRecursiveSphereDirectionEncoder:
Inheritance graph
[legend]
Collaboration diagram for vtkRecursiveSphereDirectionEncoder:
Collaboration graph
[legend]

List of all members.

Public Types

typedef vtkDirectionEncoder Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkRecursiveSphereDirectionEncoderNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
int GetEncodedDirection (float n[3])
floatGetDecodedGradient (int value)
int GetNumberOfEncodedDirections (void)
floatGetDecodedGradientTable (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 vtkObjectBaseNewInstanceInternal () const
 vtkRecursiveSphereDirectionEncoder ()
 ~vtkRecursiveSphereDirectionEncoder ()
void InitializeIndexTable (void)

Protected Attributes

int RecursionDepth
intIndexTable
floatDecodedNormal
int IndexTableRecursionDepth
int OuterSize
int InnerSize
int GridSize

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

Definition at line 34 of file vtkRecursiveSphereDirectionEncoder.h.


Member Typedef Documentation

Get the name of this class

Reimplemented from vtkDirectionEncoder.

Definition at line 37 of file vtkRecursiveSphereDirectionEncoder.h.


Constructor & Destructor Documentation


Member Function Documentation

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.

Get the name of this class

Reimplemented from vtkDirectionEncoder.

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.

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.

Given a normal vector n, return the encoded direction

Implements vtkDirectionEncoder.

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

Implements vtkDirectionEncoder.

Return the number of encoded directions

Implements vtkDirectionEncoder.

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.

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.

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.


Member Data Documentation

Definition at line 82 of file vtkRecursiveSphereDirectionEncoder.h.

Definition at line 87 of file vtkRecursiveSphereDirectionEncoder.h.

Definition at line 93 of file vtkRecursiveSphereDirectionEncoder.h.

Definition at line 99 of file vtkRecursiveSphereDirectionEncoder.h.

Definition at line 101 of file vtkRecursiveSphereDirectionEncoder.h.

Definition at line 102 of file vtkRecursiveSphereDirectionEncoder.h.

Definition at line 103 of file vtkRecursiveSphereDirectionEncoder.h.


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