DMRITool  v0.1.1-139-g860d86b4
Diffusion MRI Tool
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
itk::SphereTessellator< TElement > Class Template Reference

#include <itkSphereTessellator.h>

+ Inheritance diagram for itk::SphereTessellator< TElement >:
+ Collaboration diagram for itk::SphereTessellator< TElement >:

Detailed Description

template<typename TElement = double>
class itk::SphereTessellator< TElement >

Tesselates a sphere via subdivision of tetrahedron, octahedron, or icosahedron.

Generation of a sphere by recursive subdivisions inspired by source code written by Jon Leech (http://www.cs.unc.edu/~jon/sphere.html)

Author
Pew-Thian Yap, UNC-CH

Definition at line 37 of file itkSphereTessellator.h.

Public Types

enum  BasicShapeType {
  TETRAHEDRON,
  OCTAHEDRON,
  ICOSAHEDRON
}
 
typedef vnl_matrix< unsigned long > CellsMatrixType
 
typedef SmartPointer< const SelfConstPointer
 
typedef SmartPointer< SelfPointer
 
typedef vnl_matrix< TElement > PointsMatrixType
 
typedef SphereTessellator Self
 
typedef Object Superclass
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual BasicShapeType GetBasicShape ()
 
CellsMatrixType GetCellsMatrix ()
 
virtual const char * GetNameOfClass () const
 
virtual unsigned int GetNumberOfEdges ()
 
virtual unsigned int GetNumberOfFaces ()
 
virtual unsigned int GetNumberOfVertices ()
 
virtual unsigned int GetOrder ()
 
PointsMatrixType GetPointsMatrix ()
 
PointsMatrixType GetPointsMatrixInHemisphere ()
 
void Initialize (void)
 
void Reserve (void)
 
virtual void SetBasicShape (BasicShapeType _arg)
 
virtual void SetOrder (unsigned int _arg)
 
void Squeeze (void)
 
void TessellateSphere ()
 

Static Public Member Functions

static Pointer New ()
 

Static Public Attributes

static const unsigned int NDimensions = 3
 

Protected Member Functions

void InitIcosahedron ()
 
void InitOctahedron ()
 
void InitTetrahedron ()
 
void OutputSphere ()
 
void PrintSelf (std::ostream &os, Indent indent) const ITK_OVERRIDE
 
int SearchMidpoint (int index_start, int index_end)
 
 SphereTessellator ()
 
void Subdivide ()
 
virtual ~SphereTessellator ()
 

Private Member Functions

void operator= (const Self &)
 
 SphereTessellator (const Self &)
 

Private Attributes

unsigned int edge_walk
 
int * end
 
int * faces
 
BasicShapeType m_BasicShape
 
CellsMatrixType m_Cells
 
unsigned int m_NumberOfEdges
 
unsigned int m_NumberOfFaces
 
unsigned int m_NumberOfVertices
 
unsigned int m_Order
 
PointsMatrixType m_Points
 
int * midpoint
 
unsigned int n_edges
 
unsigned int n_faces
 
unsigned int n_vertices
 
int * start
 
double * vertices
 

Member Typedef Documentation

template<typename TElement = double>
typedef vnl_matrix<unsigned long> itk::SphereTessellator< TElement >::CellsMatrixType

Definition at line 57 of file itkSphereTessellator.h.

template<typename TElement = double>
typedef SmartPointer<const Self> itk::SphereTessellator< TElement >::ConstPointer

Definition at line 44 of file itkSphereTessellator.h.

template<typename TElement = double>
typedef SmartPointer<Self> itk::SphereTessellator< TElement >::Pointer

Definition at line 43 of file itkSphereTessellator.h.

template<typename TElement = double>
typedef vnl_matrix<TElement> itk::SphereTessellator< TElement >::PointsMatrixType

Save the template parameters.

Definition at line 56 of file itkSphereTessellator.h.

template<typename TElement = double>
typedef SphereTessellator itk::SphereTessellator< TElement >::Self

Standard class typedefs.

Definition at line 41 of file itkSphereTessellator.h.

template<typename TElement = double>
typedef Object itk::SphereTessellator< TElement >::Superclass

Definition at line 42 of file itkSphereTessellator.h.

Member Enumeration Documentation

template<typename TElement = double>
enum itk::SphereTessellator::BasicShapeType

Get/Set basic shape for subdivision

Enumerator
TETRAHEDRON 
OCTAHEDRON 
ICOSAHEDRON 

Definition at line 63 of file itkSphereTessellator.h.

Constructor & Destructor Documentation

template<typename TElement >
itk::SphereTessellator< TElement >::SphereTessellator ( )
protected

Definition at line 29 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::~SphereTessellator().

+ Here is the call graph for this function:

template<typename TElement >
itk::SphereTessellator< TElement >::~SphereTessellator ( )
protectedvirtual

Definition at line 50 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::Reserve().

Referenced by itk::SphereTessellator< TElement >::SphereTessellator().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename TElement = double>
itk::SphereTessellator< TElement >::SphereTessellator ( const Self )
private

Member Function Documentation

template<typename TElement = double>
virtual::itk::LightObject::Pointer itk::SphereTessellator< TElement >::CreateAnother ( void  ) const
template<typename TElement = double>
virtual BasicShapeType itk::SphereTessellator< TElement >::GetBasicShape ( )
virtual
template<typename TElement = double>
CellsMatrixType itk::SphereTessellator< TElement >::GetCellsMatrix ( )
inline

Definition at line 101 of file itkSphereTessellator.h.

References ITK_OVERRIDE.

template<typename TElement = double>
virtual const char* itk::SphereTessellator< TElement >::GetNameOfClass ( ) const
virtual

Standard part of every itk Object.

template<typename TElement = double>
virtual unsigned int itk::SphereTessellator< TElement >::GetNumberOfEdges ( )
virtual
template<typename TElement = double>
virtual unsigned int itk::SphereTessellator< TElement >::GetNumberOfFaces ( )
virtual
template<typename TElement = double>
virtual unsigned int itk::SphereTessellator< TElement >::GetNumberOfVertices ( )
virtual

Information on tesselation

template<typename TElement = double>
virtual unsigned int itk::SphereTessellator< TElement >::GetOrder ( )
virtual

Get/Set tesselation order oder = numer of subdivision + 1

template<typename TElement = double>
PointsMatrixType itk::SphereTessellator< TElement >::GetPointsMatrix ( )
inline

Definition at line 78 of file itkSphereTessellator.h.

template<typename TElement = double>
PointsMatrixType itk::SphereTessellator< TElement >::GetPointsMatrixInHemisphere ( )
inline

Definition at line 83 of file itkSphereTessellator.h.

References spams::abs().

+ Here is the call graph for this function:

template<typename TElement >
void itk::SphereTessellator< TElement >::Initialize ( void  )

Release allocated memory.

Tell the container to release any of its allocated memory.

Definition at line 88 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::InitTetrahedron().

Referenced by itk::SphereTessellator< TElement >::Squeeze().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename TElement >
void itk::SphereTessellator< TElement >::InitIcosahedron ( void  )
protected

Definition at line 142 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::SearchMidpoint().

Referenced by itk::SphereTessellator< TElement >::InitOctahedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename TElement >
void itk::SphereTessellator< TElement >::InitOctahedron ( void  )
protected

Definition at line 120 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::InitIcosahedron().

Referenced by itk::SphereTessellator< TElement >::InitTetrahedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename TElement >
void itk::SphereTessellator< TElement >::InitTetrahedron ( void  )
protected

Definition at line 99 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::InitOctahedron().

Referenced by itk::SphereTessellator< TElement >::Initialize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename TElement = double>
static Pointer itk::SphereTessellator< TElement >::New ( )
static

Method for creation through the object factory.

template<typename TElement = double>
void itk::SphereTessellator< TElement >::operator= ( const Self )
private
template<typename TElement >
void itk::SphereTessellator< TElement >::OutputSphere ( )
protected

Definition at line 320 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::PrintSelf().

Referenced by itk::SphereTessellator< TElement >::TessellateSphere().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename TElement >
void itk::SphereTessellator< TElement >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protected

PrintSelf routine. Normally this is a protected internal method. It is made public here so that Image can call this method. Users should not call this method but should call Print() instead.

Definition at line 347 of file itkSphereTessellator.hxx.

Referenced by itk::SphereTessellator< TElement >::OutputSphere().

+ Here is the caller graph for this function:

template<typename TElement >
void itk::SphereTessellator< TElement >::Reserve ( void  )

This method does nothing.

Tell the container to allocate enough memory to allow at least as many elements as the size given to be stored.

Definition at line 63 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::Squeeze().

Referenced by itk::SphereTessellator< TElement >::~SphereTessellator().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename TElement >
int itk::SphereTessellator< TElement >::SearchMidpoint ( int  index_start,
int  index_end 
)
protected

Definition at line 193 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::Subdivide().

Referenced by itk::SphereTessellator< TElement >::InitIcosahedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename TElement = double>
virtual void itk::SphereTessellator< TElement >::SetBasicShape ( BasicShapeType  _arg)
virtual
template<typename TElement = double>
virtual void itk::SphereTessellator< TElement >::SetOrder ( unsigned int  _arg)
virtual
template<typename TElement >
void itk::SphereTessellator< TElement >::Squeeze ( void  )

This method does nothing.

Tell the container to try to minimize its memory usage for storage of the current number of elements.

Definition at line 76 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::Initialize().

Referenced by itk::SphereTessellator< TElement >::Reserve().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename TElement >
void itk::SphereTessellator< TElement >::Subdivide ( void  )
protected

Definition at line 238 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::TessellateSphere().

Referenced by itk::SphereTessellator< TElement >::SearchMidpoint().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename TElement >
void itk::SphereTessellator< TElement >::TessellateSphere ( void  )

Generate basis.

Do actual work in generating the basis.

Definition at line 296 of file itkSphereTessellator.hxx.

References itk::SphereTessellator< TElement >::OutputSphere().

Referenced by itk::SphereTessellator< TElement >::Subdivide().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

template<typename TElement = double>
unsigned int itk::SphereTessellator< TElement >::edge_walk
private

Definition at line 141 of file itkSphereTessellator.h.

template<typename TElement = double>
int* itk::SphereTessellator< TElement >::end
private

Definition at line 143 of file itkSphereTessellator.h.

template<typename TElement = double>
int* itk::SphereTessellator< TElement >::faces
private

Definition at line 139 of file itkSphereTessellator.h.

template<typename TElement = double>
BasicShapeType itk::SphereTessellator< TElement >::m_BasicShape
private

Definition at line 149 of file itkSphereTessellator.h.

template<typename TElement = double>
CellsMatrixType itk::SphereTessellator< TElement >::m_Cells
private

Definition at line 147 of file itkSphereTessellator.h.

template<typename TElement = double>
unsigned int itk::SphereTessellator< TElement >::m_NumberOfEdges
private

Definition at line 155 of file itkSphereTessellator.h.

template<typename TElement = double>
unsigned int itk::SphereTessellator< TElement >::m_NumberOfFaces
private

Definition at line 154 of file itkSphereTessellator.h.

template<typename TElement = double>
unsigned int itk::SphereTessellator< TElement >::m_NumberOfVertices
private

Definition at line 153 of file itkSphereTessellator.h.

template<typename TElement = double>
unsigned int itk::SphereTessellator< TElement >::m_Order
private

Definition at line 151 of file itkSphereTessellator.h.

template<typename TElement = double>
PointsMatrixType itk::SphereTessellator< TElement >::m_Points
private

Definition at line 146 of file itkSphereTessellator.h.

template<typename TElement = double>
int* itk::SphereTessellator< TElement >::midpoint
private

Definition at line 144 of file itkSphereTessellator.h.

template<typename TElement = double>
unsigned int itk::SphereTessellator< TElement >::n_edges
private

Definition at line 137 of file itkSphereTessellator.h.

template<typename TElement = double>
unsigned int itk::SphereTessellator< TElement >::n_faces
private

Definition at line 136 of file itkSphereTessellator.h.

template<typename TElement = double>
unsigned int itk::SphereTessellator< TElement >::n_vertices
private

Definition at line 135 of file itkSphereTessellator.h.

template<typename TElement = double>
const unsigned int itk::SphereTessellator< TElement >::NDimensions = 3
static

Set the orientation tables.

Definition at line 53 of file itkSphereTessellator.h.

template<typename TElement = double>
int* itk::SphereTessellator< TElement >::start
private

Definition at line 142 of file itkSphereTessellator.h.

template<typename TElement = double>
double* itk::SphereTessellator< TElement >::vertices
private

Definition at line 138 of file itkSphereTessellator.h.


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