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:

[legend]
Collaboration diagram for vtkRecursiveSphereDirectionEncoder:

[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:

- Rendering/vtkRecursiveSphereDirectionEncoder.h