Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkRecursiveSphereDirectionEncoder Class Reference

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

#include <mitkRecursiveSphereDirectionEncoder.h>

Inherits mitkDirectionEncoder.

Inheritance diagram for mitkRecursiveSphereDirectionEncoder:

Inheritance graph
[legend]
Collaboration diagram for mitkRecursiveSphereDirectionEncoder:

Collaboration graph
[legend]
List of all members.

Public Member Functions

int GetEncodedDirection (float n[3])
float * GetDecodedGradient (int value)
int GetNumberOfEncodedDirections ()
float * GetDecodedGradientTable ()
virtual void SetRecursionDepth (int fnDepth)
virtual int GetRecursionDepthMinValue ()
virtual int GetRecursionDepthMaxValue ()
virtual int GetRecursionDepth ()

Detailed Description

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

mitkRecursiveSphereDirectionEncoder 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. Some codes are borrowed from VTK, and please see the copyright at end.


Member Function Documentation

float* mitkRecursiveSphereDirectionEncoder::GetDecodedGradient int  value  )  [virtual]
 

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

Parameters:
value Represent the encoded value
Returns:
Return a pointer to the normal vector

Implements mitkDirectionEncoder.

float* mitkRecursiveSphereDirectionEncoder::GetDecodedGradientTable  )  [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.

Returns:
Return the decoded gradient table

Implements mitkDirectionEncoder.

int mitkRecursiveSphereDirectionEncoder::GetEncodedDirection float  n[3]  )  [virtual]
 

Given a normal vector n, return the encoded direction

Parameters:
n Represent the normal vector
Returns:
Return the encoded direction

Implements mitkDirectionEncoder.

int mitkRecursiveSphereDirectionEncoder::GetNumberOfEncodedDirections  )  [virtual]
 

Return the number of encoded directions

Returns:
Return the number of encoded directions

Implements mitkDirectionEncoder.

virtual int mitkRecursiveSphereDirectionEncoder::GetRecursionDepth  )  [inline, virtual]
 

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.

Returns:
Return the recursion depth value

virtual int mitkRecursiveSphereDirectionEncoder::GetRecursionDepthMaxValue  )  [inline, virtual]
 

Get the max recursion depth value

Returns:
fnDepth Return the max recursion depth value

virtual int mitkRecursiveSphereDirectionEncoder::GetRecursionDepthMinValue  )  [inline, virtual]
 

Get the min recursion depth value

Returns:
fnDepth Return the min recursion depth value

virtual void mitkRecursiveSphereDirectionEncoder::SetRecursionDepth int  fnDepth  )  [virtual]
 

Set 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.

Parameters:
fnDepth Represent the recursion depth value


The documentation for this class was generated from the following file:
Generated on Tue Feb 25 15:05:34 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3