VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkRecursiveSphereDirectionEncoder Class Reference

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

#include <vtkRecursiveSphereDirectionEncoder.h>

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

Public Types

typedef vtkDirectionEncoder Superclass
 
- Public Types inherited from vtkDirectionEncoder
typedef vtkObject Superclass
 
- Public Types inherited from vtkObject
typedef vtkObjectBase 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 ()
 
- Public Member Functions inherited from vtkDirectionEncoder
vtkDirectionEncoderNewInstance () const
 
- Public Member Functions inherited from vtkObject
vtkObjectNewInstance () const
 
virtual void DebugOn ()
 
virtual void DebugOff ()
 
bool GetDebug ()
 
void SetDebug (bool debugFlag)
 
virtual void Modified ()
 
virtual unsigned long GetMTime ()
 
unsigned long AddObserver (unsigned long event, vtkCommand *, float priority=0.0f)
 
unsigned long AddObserver (const char *event, vtkCommand *, float priority=0.0f)
 
vtkCommandGetCommand (unsigned long tag)
 
void RemoveObserver (vtkCommand *)
 
void RemoveObservers (unsigned long event, vtkCommand *)
 
void RemoveObservers (const char *event, vtkCommand *)
 
int HasObserver (unsigned long event, vtkCommand *)
 
int HasObserver (const char *event, vtkCommand *)
 
void RemoveObserver (unsigned long tag)
 
void RemoveObservers (unsigned long event)
 
void RemoveObservers (const char *event)
 
void RemoveAllObservers ()
 
int HasObserver (unsigned long event)
 
int HasObserver (const char *event)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 
template<class U , class T >
unsigned long AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)
 
int InvokeEvent (unsigned long event, void *callData)
 
int InvokeEvent (const char *event, void *callData)
 
int InvokeEvent (unsigned long event)
 
int InvokeEvent (const char *event)
 
- Public Member Functions inherited from vtkObjectBase
const char * GetClassName () const
 
virtual void Delete ()
 
virtual void FastDelete ()
 
void Print (ostream &os)
 
virtual void Register (vtkObjectBase *o)
 
virtual void UnRegister (vtkObjectBase *o)
 
void SetReferenceCount (int)
 
void PrintRevisions (ostream &)
 
virtual void PrintHeader (ostream &os, vtkIndent indent)
 
virtual void PrintTrailer (ostream &os, vtkIndent indent)
 
int GetReferenceCount ()
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkRecursiveSphereDirectionEncoderSafeDownCast (vtkObjectBase *o)
 
static vtkRecursiveSphereDirectionEncoderNew ()
 
- Static Public Member Functions inherited from vtkDirectionEncoder
static int IsTypeOf (const char *type)
 
static vtkDirectionEncoderSafeDownCast (vtkObjectBase *o)
 
- Static Public Member Functions inherited from vtkObject
static int IsTypeOf (const char *type)
 
static vtkObjectSafeDownCast (vtkObjectBase *o)
 
static vtkObjectNew ()
 
static void BreakOnError ()
 
static void SetGlobalWarningDisplay (int val)
 
static void GlobalWarningDisplayOn ()
 
static void GlobalWarningDisplayOff ()
 
static int GetGlobalWarningDisplay ()
 
- Static Public Member Functions inherited from vtkObjectBase
static int IsTypeOf (const char *name)
 
static vtkObjectBaseNew ()
 

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 
 vtkRecursiveSphereDirectionEncoder ()
 
 ~vtkRecursiveSphereDirectionEncoder ()
 
void InitializeIndexTable (void)
 
- Protected Member Functions inherited from vtkDirectionEncoder
 vtkDirectionEncoder ()
 
 ~vtkDirectionEncoder ()
 
- Protected Member Functions inherited from vtkObject
 vtkObject ()
 
virtual ~vtkObject ()
 
virtual void RegisterInternal (vtkObjectBase *, int check)
 
virtual void UnRegisterInternal (vtkObjectBase *, int check)
 
void InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL)
 
void InternalReleaseFocus ()
 
- Protected Member Functions inherited from vtkObjectBase
 vtkObjectBase ()
 
virtual ~vtkObjectBase ()
 
virtual void CollectRevisions (ostream &)
 
virtual void ReportReferences (vtkGarbageCollector *)
 
 vtkObjectBase (const vtkObjectBase &)
 
void operator= (const vtkObjectBase &)
 

Protected Attributes

int RecursionDepth
 
intIndexTable
 
floatDecodedNormal
 
int IndexTableRecursionDepth
 
int OuterSize
 
int InnerSize
 
int GridSize
 
- Protected Attributes inherited from vtkObject
bool Debug
 
vtkTimeStamp MTime
 
vtkSubjectHelper * SubjectHelper
 
- Protected Attributes inherited from vtkObjectBase
vtkAtomicInt32 ReferenceCount
 
vtkWeakPointerBase ** WeakPointers
 

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

Definition at line 37 of file vtkRecursiveSphereDirectionEncoder.h.

Constructor & Destructor Documentation

vtkRecursiveSphereDirectionEncoder::vtkRecursiveSphereDirectionEncoder ( )
protected
vtkRecursiveSphereDirectionEncoder::~vtkRecursiveSphereDirectionEncoder ( )
protected

Member Function Documentation

static int vtkRecursiveSphereDirectionEncoder::IsTypeOf ( const char *  type)
static
virtual int vtkRecursiveSphereDirectionEncoder::IsA ( const char *  type)
virtual

Get the name of this class

Reimplemented from vtkDirectionEncoder.

static vtkRecursiveSphereDirectionEncoder* vtkRecursiveSphereDirectionEncoder::SafeDownCast ( vtkObjectBase o)
static
virtual vtkObjectBase* vtkRecursiveSphereDirectionEncoder::NewInstanceInternal ( ) const
protectedvirtual

Get the name of this class

Reimplemented from vtkDirectionEncoder.

vtkRecursiveSphereDirectionEncoder* vtkRecursiveSphereDirectionEncoder::NewInstance ( ) const
void vtkRecursiveSphereDirectionEncoder::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual

Get the name of this class

Reimplemented from vtkDirectionEncoder.

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

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

int* vtkRecursiveSphereDirectionEncoder::IndexTable
protected

Definition at line 87 of file vtkRecursiveSphereDirectionEncoder.h.

float* vtkRecursiveSphereDirectionEncoder::DecodedNormal
protected

Definition at line 93 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::IndexTableRecursionDepth
protected

Definition at line 99 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::OuterSize
protected

Definition at line 101 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::InnerSize
protected

Definition at line 102 of file vtkRecursiveSphereDirectionEncoder.h.

int vtkRecursiveSphereDirectionEncoder::GridSize
protected

Definition at line 103 of file vtkRecursiveSphereDirectionEncoder.h.


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