Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

vuFourierCluster< SIZE, TYPE > Class Template Reference

#include <vuFourierCluster.h>

Inheritance diagram for vuFourierCluster< SIZE, TYPE >:

Inheritance graph
[legend]
Collaboration diagram for vuFourierCluster< SIZE, TYPE >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 vuFourierCluster ()
 ~vuFourierCluster ()
void preprocess (dword idx, vuSphericView< SIZE, TYPE > **view, vuProgressHandler *handler=NULL)
void prepareForInteractive (dword width, dword height)
void addView (vuSphericView< SIZE, TYPE > *view)
void setSliceFilter (vuSliceFilter *sliceFilter)
vuSliceFiltergetSliceFilter ()
bool isPreprocessed ()
 Is it preprocessed?
bool isPreparedForInteractive ()
 Is it prepared for interactive reconstruction?
void setNoInteractiveMode ()
 sets isPreparedForInteractive to false

Protected Member Functions

int wcoord (int x, int y, int z) const
void addViewToVolume (vuSphericView< SIZE, TYPE > *view)
void handleSlice (float *slice, dword sliceWidth, dword sliceHeight, vuSphericView< SIZE, TYPE > *view)
void normalizeVolume ()
void initializeVolume (dword width, dword height)
void transformSlice (float *slice, dword width, dword height)
void ensurePlan (dword width, dword height)
void destroyPlan ()
void calcSliceDimensions (vuSphericView< SIZE, TYPE > *view, dword &width, dword &height)
void doFilteringSeparable (vuVector &pos, float *value)
void doFilteringSpheric (vuVector &pos, float *value)
void weightView (vuSphericView< SIZE, TYPE > *view)
void doWeighting (vuVector &pos, float *value)
void premultiplySlice (vuFixelMap2F *slice)

Protected Attributes

fftwnd_plan m_Plan
dword m_PlanWidth
dword m_PlanHeight
bool m_IsPreprocessed
bool m_IsPreparedForInteractive
floatm_WeightVolume
vuSliceFilterm_SliceFilter
floatm_CacheVolume
float mc_HalfWidth
int mc_High
int mc_Low
bool mc_IsWidthOdd

Private Member Functions

typedef void (vuFourierCluster< SIZE, TYPE >::*KernelCallback)(vuVector &

template<int SIZE, class TYPE>
class vuFourierCluster< SIZE, TYPE >


Constructor & Destructor Documentation

template<int S, class T>
vuFourierCluster< S, T >::vuFourierCluster  ) 
 

Definition at line 10 of file vuFourierCluster.cpp.

References vuFourierCluster< SIZE, TYPE >::m_CacheVolume, vuFourierCluster< SIZE, TYPE >::m_IsPreparedForInteractive, vuFourierCluster< SIZE, TYPE >::m_IsPreprocessed, vuFourierCluster< SIZE, TYPE >::m_PlanHeight, vuFourierCluster< SIZE, TYPE >::m_PlanWidth, vuFourierCluster< SIZE, TYPE >::m_SliceFilter, and vuFourierCluster< SIZE, TYPE >::m_WeightVolume.

template<int S, class T>
vuFourierCluster< S, T >::~vuFourierCluster  ) 
 

Definition at line 22 of file vuFourierCluster.cpp.

References CHECKNDELETE, vuFourierCluster< SIZE, TYPE >::destroyPlan(), vuFourierCluster< SIZE, TYPE >::m_CacheVolume, and vuFourierCluster< SIZE, TYPE >::m_WeightVolume.

Here is the call graph for this function:


Member Function Documentation

template<int S, class T>
void vuFourierCluster< S, T >::addView vuSphericView< SIZE, TYPE > *  view  ) 
 

Definition at line 75 of file vuFourierCluster.cpp.

References vuFourierCluster< SIZE, TYPE >::addViewToVolume(), vuFourierCluster< SIZE, TYPE >::calcSliceDimensions(), dword, vuFourierCluster< SIZE, TYPE >::handleSlice(), vuFourierCluster< SIZE, TYPE >::m_SliceFilter, and NULL.

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::addViewToVolume vuSphericView< SIZE, TYPE > *  view  )  [protected]
 

Definition at line 303 of file vuFourierCluster.cpp.

References vuFourierCluster< SIZE, TYPE >::calcSliceDimensions(), CHECKNDELETE, dword, vuFourierCluster< SIZE, TYPE >::ensurePlan(), vuSphericView< SIZE, TYPE >::getMap(), vuFourierCluster< SIZE, TYPE >::handleSlice(), vuFourierVolume< SIZE >::shift2D(), T, and vuFourierVolume< SIZE >::transformSlice().

Referenced by vuFourierClusterN< SIZE, TYPE >::_preprocess(), vuFourierCluster< SIZE, TYPE >::addView(), vuFourierClusterN< SIZE, TYPE >::preprocess(), and vuFourierCluster< SIZE, TYPE >::preprocess().

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::calcSliceDimensions vuSphericView< SIZE, TYPE > *  view,
dword width,
dword height
[protected]
 

Definition at line 269 of file vuFourierCluster.cpp.

References linalg::abs(), dword, vuSphericView< SIZE, TYPE >::getHeight(), vuSphericView< SIZE, TYPE >::getWidth(), and ODD.

Referenced by vuFourierCluster< SIZE, TYPE >::addView(), and vuFourierCluster< SIZE, TYPE >::addViewToVolume().

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::destroyPlan  )  [protected]
 

Definition at line 260 of file vuFourierCluster.cpp.

References fftwnd_destroy_plan(), vuFourierCluster< SIZE, TYPE >::m_Plan, vuFourierCluster< SIZE, TYPE >::m_PlanHeight, and vuFourierCluster< SIZE, TYPE >::m_PlanWidth.

Referenced by vuFourierCluster< SIZE, TYPE >::ensurePlan(), and vuFourierCluster< SIZE, TYPE >::~vuFourierCluster().

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::doFilteringSeparable vuVector pos,
float value
[inline, protected]
 

Definition at line 415 of file vuFourierCluster.cpp.

References dword, vuSliceFilter::getWeight(), vuFourierCluster< SIZE, TYPE >::m_SliceFilter, vuFourierCluster< SIZE, TYPE >::m_WeightVolume, and vuFourierCluster< SIZE, TYPE >::wcoord().

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::doFilteringSpheric vuVector pos,
float value
[inline, protected]
 

Definition at line 468 of file vuFourierCluster.cpp.

References dword, vuSliceFilter::getWeight(), vuFourierCluster< SIZE, TYPE >::m_SliceFilter, vuFourierCluster< SIZE, TYPE >::m_WeightVolume, and vuFourierCluster< SIZE, TYPE >::wcoord().

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::doWeighting vuVector pos,
float value
[inline, protected]
 

Definition at line 570 of file vuFourierCluster.cpp.

References dword, vuFourierCluster< SIZE, TYPE >::m_CacheVolume, vuFourierCluster< SIZE, TYPE >::m_WeightVolume, and vuFourierVolume< SIZE >::vcoord().

Referenced by vuFourierCluster< SIZE, TYPE >::weightView().

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::ensurePlan dword  width,
dword  height
[protected]
 

Definition at line 246 of file vuFourierCluster.cpp.

References vuFourierCluster< SIZE, TYPE >::destroyPlan(), dword, fftw2d_create_plan(), FFTW_FORWARD, FFTW_IN_PLACE, FFTW_MEASURE, FFTW_USE_WISDOM, vuFourierCluster< SIZE, TYPE >::m_Plan, vuFourierCluster< SIZE, TYPE >::m_PlanHeight, and vuFourierCluster< SIZE, TYPE >::m_PlanWidth.

Referenced by vuFourierCluster< SIZE, TYPE >::addViewToVolume().

Here is the call graph for this function:

template<int S, class T>
vuSliceFilter * vuFourierCluster< S, T >::getSliceFilter  ) 
 

Definition at line 196 of file vuFourierCluster.cpp.

Referenced by vuFourierClusterN< SIZE, TYPE >::_preprocess(), vuFourierClusterN< SIZE, TYPE >::getSliceFilter(), and vuFourierClusterN< SIZE, TYPE >::preprocess().

template<int S, class T>
void vuFourierCluster< S, T >::handleSlice float slice,
dword  sliceWidth,
dword  sliceHeight,
vuSphericView< SIZE, TYPE > *  view
[protected]
 

Definition at line 338 of file vuFourierCluster.cpp.

References vuFourierVolume< SIZE >::calcViewVectors(), dword, vuSliceFilter::getKind(), vuSphericView< SIZE, TYPE >::getLookFrom(), vuSliceFilter::getLowPassFactor(), vuSphericView< SIZE, TYPE >::getUp(), vuSliceFilter::getWidth(), vuFourierCluster< SIZE, TYPE >::m_SliceFilter, vuVector::makeUnit(), vuFourierCluster< SIZE, TYPE >::mc_HalfWidth, vuFourierCluster< SIZE, TYPE >::mc_High, vuFourierCluster< SIZE, TYPE >::mc_IsWidthOdd, vuFourierCluster< SIZE, TYPE >::mc_Low, and ODD.

Referenced by vuFourierCluster< SIZE, TYPE >::addView(), and vuFourierCluster< SIZE, TYPE >::addViewToVolume().

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::initializeVolume dword  width,
dword  height
[protected]
 

Definition at line 207 of file vuFourierCluster.cpp.

References CHECKNDELETE, vuFourierVolume< SIZE >::computeDimensions(), dword, vuFourierCluster< SIZE, TYPE >::m_CacheVolume, M_SQRT2, vuFourierCluster< SIZE, TYPE >::m_WeightVolume, MAX_FILTER_SIZE, and NULL.

Referenced by vuFourierClusterN< SIZE, TYPE >::_preprocess(), vuFourierCluster< SIZE, TYPE >::prepareForInteractive(), vuFourierClusterN< SIZE, TYPE >::preprocess(), and vuFourierCluster< SIZE, TYPE >::preprocess().

Here is the call graph for this function:

template<int S, class T>
bool vuFourierCluster< S, T >::isPreparedForInteractive  ) 
 

Is it prepared for interactive reconstruction?

Definition at line 37 of file vuFourierCluster.cpp.

Referenced by vuFourierClusterN< SIZE, TYPE >::isPreparedForInteractive().

template<int S, class T>
bool vuFourierCluster< S, T >::isPreprocessed  ) 
 

Is it preprocessed?

Definition at line 31 of file vuFourierCluster.cpp.

Referenced by vuFourierClusterN< SIZE, TYPE >::computeUnscaledImage(), and vuFourierClusterN< SIZE, TYPE >::isPreprocessed().

template<int S, class T>
void vuFourierCluster< S, T >::normalizeVolume  )  [protected]
 

Definition at line 169 of file vuFourierCluster.cpp.

References CHECKNDELETE, dword, vuFourierCluster< SIZE, TYPE >::m_WeightVolume, and size.

Referenced by vuFourierClusterN< SIZE, TYPE >::_preprocess(), vuFourierClusterN< SIZE, TYPE >::preprocess(), and vuFourierCluster< SIZE, TYPE >::preprocess().

template<int S, class T>
void vuFourierCluster< S, T >::premultiplySlice vuFixelMap2F slice  )  [protected]
 

Definition at line 603 of file vuFourierCluster.cpp.

References dword, vuFixelMap< SIZE, TYPE >::getBuffer(), vuFixelMap< SIZE, TYPE >::getHeight(), vuSliceFilter::getTransformedWeight(), vuSliceFilter::getWidth(), vuFixelMap< SIZE, TYPE >::getWidth(), vuFourierCluster< SIZE, TYPE >::m_SliceFilter, and vuFixelMap2F.

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::prepareForInteractive dword  width,
dword  height
 

Definition at line 52 of file vuFourierCluster.cpp.

References CHECKNDELETE, dword, vuFourierCluster< SIZE, TYPE >::initializeVolume(), vuFourierCluster< SIZE, TYPE >::m_CacheVolume, vuFourierCluster< SIZE, TYPE >::m_IsPreparedForInteractive, vuFourierCluster< SIZE, TYPE >::m_IsPreprocessed, and vuFourierVolume< SIZE >::wrapAndInitialize().

Referenced by vuFourierClusterN< SIZE, TYPE >::prepareForInteractive().

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::preprocess dword  idx,
vuSphericView< SIZE, TYPE > **  view,
vuProgressHandler handler = NULL
 

Definition at line 109 of file vuFourierCluster.cpp.

References vuFourierCluster< SIZE, TYPE >::addViewToVolume(), dword, vuSphericView< SIZE, TYPE >::getHeight(), vuProgressHandler::getRange(), vuSphericView< SIZE, TYPE >::getWidth(), vuFourierCluster< SIZE, TYPE >::initializeVolume(), vuFourierCluster< SIZE, TYPE >::m_IsPreparedForInteractive, vuFourierCluster< SIZE, TYPE >::m_IsPreprocessed, vuFourierCluster< SIZE, TYPE >::m_SliceFilter, vuFourierCluster< SIZE, TYPE >::normalizeVolume(), vuProgressHandler::update(), and vuFourierVolume< SIZE >::wrapAndInitialize().

Here is the call graph for this function:

template<int S, class T>
void vuFourierCluster< S, T >::setNoInteractiveMode  ) 
 

sets isPreparedForInteractive to false

Definition at line 43 of file vuFourierCluster.cpp.

References CHECKNDELETE, vuFourierCluster< SIZE, TYPE >::m_CacheVolume, vuFourierCluster< SIZE, TYPE >::m_IsPreparedForInteractive, and vuFourierCluster< SIZE, TYPE >::m_WeightVolume.

Referenced by vuFourierClusterN< SIZE, TYPE >::setNoInteractiveMode().

template<int S, class T>
void vuFourierCluster< S, T >::setSliceFilter vuSliceFilter sliceFilter  ) 
 

Definition at line 190 of file vuFourierCluster.cpp.

References vuFourierCluster< SIZE, TYPE >::m_SliceFilter.

Referenced by vuFourierClusterN< SIZE, TYPE >::setSliceFilter().

template<int S, class T>
void vuFourierCluster< S, T >::transformSlice float slice,
dword  width,
dword  height
[protected]
 

Definition at line 235 of file vuFourierCluster.cpp.

References dword, fftwnd(), vuFourierCluster< SIZE, TYPE >::m_Plan, and NULL.

Here is the call graph for this function:

template<int SIZE, class TYPE>
typedef vuFourierCluster< SIZE, TYPE >::void vuFourierCluster< SIZE, TYPE >::*  KernelCallback  )  [private]
 

template<int SIZE, class TYPE>
int vuFourierCluster< SIZE, TYPE >::wcoord int  x,
int  y,
int  z
const [inline, protected]
 

Definition at line 50 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::doFilteringSeparable(), and vuFourierCluster< SIZE, TYPE >::doFilteringSpheric().

template<int S, class T>
void vuFourierCluster< S, T >::weightView vuSphericView< SIZE, TYPE > *  view  )  [protected]
 

Definition at line 521 of file vuFourierCluster.cpp.

References vuFourierVolume< SIZE >::calcViewVectors(), vuFourierCluster< SIZE, TYPE >::doWeighting(), dword, vuSphericView< SIZE, TYPE >::getLookFrom(), vuSphericView< SIZE, TYPE >::getUp(), vuSliceFilter::getWidth(), vuFourierCluster< SIZE, TYPE >::m_SliceFilter, vuVector::makeUnit(), vuFourierCluster< SIZE, TYPE >::mc_High, vuFourierCluster< SIZE, TYPE >::mc_IsWidthOdd, vuFourierCluster< SIZE, TYPE >::mc_Low, NULL, and ODD.

Here is the call graph for this function:


Member Data Documentation

template<int SIZE, class TYPE>
float* vuFourierCluster< SIZE, TYPE >::m_CacheVolume [protected]
 

Definition at line 88 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::doWeighting(), vuFourierCluster< SIZE, TYPE >::initializeVolume(), vuFourierCluster< SIZE, TYPE >::prepareForInteractive(), vuFourierCluster< SIZE, TYPE >::setNoInteractiveMode(), vuFourierCluster< SIZE, TYPE >::vuFourierCluster(), and vuFourierCluster< SIZE, TYPE >::~vuFourierCluster().

template<int SIZE, class TYPE>
bool vuFourierCluster< SIZE, TYPE >::m_IsPreparedForInteractive [protected]
 

Definition at line 85 of file vuFourierCluster.h.

Referenced by vuFourierClusterN< SIZE, TYPE >::_preprocess(), vuFourierCluster< SIZE, TYPE >::prepareForInteractive(), vuFourierClusterN< SIZE, TYPE >::preprocess(), vuFourierCluster< SIZE, TYPE >::preprocess(), vuFourierCluster< SIZE, TYPE >::setNoInteractiveMode(), and vuFourierCluster< SIZE, TYPE >::vuFourierCluster().

template<int SIZE, class TYPE>
bool vuFourierCluster< SIZE, TYPE >::m_IsPreprocessed [protected]
 

Definition at line 84 of file vuFourierCluster.h.

Referenced by vuFourierClusterN< SIZE, TYPE >::_preprocess(), vuFourierCluster< SIZE, TYPE >::prepareForInteractive(), vuFourierClusterN< SIZE, TYPE >::preprocess(), vuFourierCluster< SIZE, TYPE >::preprocess(), and vuFourierCluster< SIZE, TYPE >::vuFourierCluster().

template<int SIZE, class TYPE>
fftwnd_plan vuFourierCluster< SIZE, TYPE >::m_Plan [protected]
 

Definition at line 81 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::destroyPlan(), vuFourierCluster< SIZE, TYPE >::ensurePlan(), and vuFourierCluster< SIZE, TYPE >::transformSlice().

template<int SIZE, class TYPE>
dword vuFourierCluster< SIZE, TYPE >::m_PlanHeight [protected]
 

Definition at line 83 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::destroyPlan(), vuFourierCluster< SIZE, TYPE >::ensurePlan(), and vuFourierCluster< SIZE, TYPE >::vuFourierCluster().

template<int SIZE, class TYPE>
dword vuFourierCluster< SIZE, TYPE >::m_PlanWidth [protected]
 

Definition at line 82 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::destroyPlan(), vuFourierCluster< SIZE, TYPE >::ensurePlan(), and vuFourierCluster< SIZE, TYPE >::vuFourierCluster().

template<int SIZE, class TYPE>
vuSliceFilter* vuFourierCluster< SIZE, TYPE >::m_SliceFilter [protected]
 

Definition at line 87 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::addView(), vuFourierCluster< SIZE, TYPE >::doFilteringSeparable(), vuFourierCluster< SIZE, TYPE >::doFilteringSpheric(), vuFourierCluster< SIZE, TYPE >::handleSlice(), vuFourierCluster< SIZE, TYPE >::premultiplySlice(), vuFourierCluster< SIZE, TYPE >::preprocess(), vuFourierCluster< SIZE, TYPE >::setSliceFilter(), vuFourierCluster< SIZE, TYPE >::vuFourierCluster(), and vuFourierCluster< SIZE, TYPE >::weightView().

template<int SIZE, class TYPE>
float* vuFourierCluster< SIZE, TYPE >::m_WeightVolume [protected]
 

Definition at line 86 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::doFilteringSeparable(), vuFourierCluster< SIZE, TYPE >::doFilteringSpheric(), vuFourierCluster< SIZE, TYPE >::doWeighting(), vuFourierCluster< SIZE, TYPE >::initializeVolume(), vuFourierCluster< SIZE, TYPE >::normalizeVolume(), vuFourierCluster< SIZE, TYPE >::setNoInteractiveMode(), vuFourierCluster< SIZE, TYPE >::vuFourierCluster(), and vuFourierCluster< SIZE, TYPE >::~vuFourierCluster().

template<int SIZE, class TYPE>
float vuFourierCluster< SIZE, TYPE >::mc_HalfWidth [protected]
 

Definition at line 91 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::handleSlice().

template<int SIZE, class TYPE>
int vuFourierCluster< SIZE, TYPE >::mc_High [protected]
 

Definition at line 92 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::handleSlice(), and vuFourierCluster< SIZE, TYPE >::weightView().

template<int SIZE, class TYPE>
bool vuFourierCluster< SIZE, TYPE >::mc_IsWidthOdd [protected]
 

Definition at line 94 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::handleSlice(), and vuFourierCluster< SIZE, TYPE >::weightView().

template<int SIZE, class TYPE>
int vuFourierCluster< SIZE, TYPE >::mc_Low [protected]
 

Definition at line 93 of file vuFourierCluster.h.

Referenced by vuFourierCluster< SIZE, TYPE >::handleSlice(), and vuFourierCluster< SIZE, TYPE >::weightView().


The documentation for this class was generated from the following files:
Generated on Wed Dec 15 21:21:15 2004 for vuVolume by  doxygen 1.3.9.1