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

Arroyo::one_to_many_optic Class Reference

#include <optic.h>

Inheritance diagram for Arroyo::one_to_many_optic:

Arroyo::optic Arroyo::AO_sim_base List of all members.

Public Member Functions

 one_to_many_optic ()
virtual ~one_to_many_optic ()
virtual long number_of_outputs () const =0
virtual vector< diffractive_wavefront<
float > > 
transform (const diffractive_wavefront< float > &wf) const =0
virtual vector< diffractive_wavefront<
double > > 
transform (const diffractive_wavefront< double > &wf) const =0

Protected Member Functions

template<class T>
const T *const get_wavefront_data (const diffractive_wavefront< T > &wf) const
template<class T>
bool real_imag_storage (const diffractive_wavefront< T > &wf) const
template<class T>
bool interleaved_storage (const diffractive_wavefront< T > &wf) const

Detailed Description

A virtual base class for an optic that maps one wavefront to many wavefronts.


Constructor & Destructor Documentation

Arroyo::one_to_many_optic::one_to_many_optic  )  [inline]
 

Null constructor

virtual Arroyo::one_to_many_optic::~one_to_many_optic  )  [inline, virtual]
 

Virtual destructor


Member Function Documentation

template<class T>
const T* const Arroyo::one_to_many_optic::get_wavefront_data const diffractive_wavefront< T > &  wf  )  const [inline, protected]
 

Return pointer to the raw wavefront data array.

This member function is used in the one_to_one_optic inheritance hierarchy to implement the virtual member function

vector<diffractive_wavefront<T> > one_to_many_optic::transform(const diffractive_wavefront<T> &)

It is intended that the above member function leave the diffractive_wavefront data unchanged, instead constructing diffractive_wavefronts corresponding to the multiple outputs of this optic. To help enforce this, this member function returns a const pointer to a const. You shouldn't need to cast away this constness to implement the behavior described above

template<class T>
bool Arroyo::one_to_many_optic::interleaved_storage const diffractive_wavefront< T > &  wf  )  const [inline, protected]
 

return storage method - interleaved or non-interleaved

This member function is used in the optic inheritance hierarchy to implement the virtual member function vector<diffractive_wavefront<T> > one_to_many_optic::transform(const diffractive_wavefront<T>)

virtual long Arroyo::one_to_many_optic::number_of_outputs  )  const [pure virtual]
 

Virtual member function to report the number of wavefronts returned by optic::transform

template<class T>
bool Arroyo::one_to_many_optic::real_imag_storage const diffractive_wavefront< T > &  wf  )  const [inline, protected]
 

return storage method - real-imag or amp-phase

This member function is used in the optic inheritance hierarchy to implement the virtual member function vector<diffractive_wavefront<T> > one_to_many_optic::transform(const diffractive_wavefront<T>)

virtual vector<diffractive_wavefront<double> > Arroyo::one_to_many_optic::transform const diffractive_wavefront< double > &  wf  )  const [pure virtual]
 

Virtual member function to apply this optic to a diffractive_wavefront<double>

virtual vector<diffractive_wavefront<float> > Arroyo::one_to_many_optic::transform const diffractive_wavefront< float > &  wf  )  const [pure virtual]
 

Virtual member function to apply this optic to a diffractive_wavefront<double>


The documentation for this class was generated from the following file:
Generated on Thu Nov 29 17:16:35 2007 for arroyo by  doxygen 1.3.9.1