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

Arroyo::conic_mirror< aperture_type > Class Template Reference

#include <conic_mirror.h>

Inheritance diagram for Arroyo::conic_mirror< aperture_type >:

Arroyo::conic_mirror_base Arroyo::one_to_one_optic Arroyo::conic_section Arroyo::optic Arroyo::AO_sim_base Arroyo::AO_sim_base List of all members.

Public Member Functions

 conic_mirror (const conic_mirror &cmr)
 conic_mirror (const char *filename)
 conic_mirror (const iofits &iof)
 conic_mirror (const three_point &vertex, const three_point &focus, double eccty, const aperture_type &in_ap)
 ~conic_mirror ()
conic_mirroroperator= (const conic_mirror &cmr)
void read (const char *filename)
void read (const iofits &iof)
void write (const char *filename) const
void write (iofits &iof) const
void print (ostream &os, const char *prefix="") const
bool get_raytrace_policy () const
void set_raytrace_policy (bool raytrace_policy)
rectangular_region get_covering_region (const three_frame &tf) const
three_point get_point_of_intersection (const three_point &tp, const three_vector &tv) const
void transform (diffractive_wavefront< float > &wf) const
void transform (diffractive_wavefront< double > &wf) const

Protected Member Functions

 conic_mirror ()
template<class T>
void private_transform (diffractive_wavefront< T > &wf) const

Protected Attributes

aperture_type ap
bool raytrace_policy

Detailed Description

template<class aperture_type>
class Arroyo::conic_mirror< aperture_type >

A class to represent a mirror formed from a conic shape. If the mirror is constructed using an aperture with a three frame of non-common origin, this will model an off-axis mirror (e.g. an off-axis parabola)


Constructor & Destructor Documentation

template<class aperture_type>
Arroyo::conic_mirror< aperture_type >::conic_mirror  )  [inline, protected]
 

Null constructor

Protected because a class instance requires initialization

template<class aperture_type>
Arroyo::conic_mirror< aperture_type >::conic_mirror const conic_mirror< aperture_type > &  cmr  ) 
 

Copy constructor

template<class aperture_type>
Arroyo::conic_mirror< aperture_type >::conic_mirror const char *  filename  ) 
 

Construct from file

template<class aperture_type>
Arroyo::conic_mirror< aperture_type >::conic_mirror const iofits iof  ) 
 

Construct from iofits object

template<class aperture_type>
Arroyo::conic_mirror< aperture_type >::conic_mirror const three_point vertex,
const three_point focus,
double  eccty,
const aperture_type &  in_ap
 

Construct from the bits

The vertex of the conic lies along the axis of symmetry.

The focus of the conic is the focal point closest to the vertex.

The eccentricity of the conic is as follows:

For a spherical mirror, eccentricity = 0 For an elliptical mirror, 0 < eccentricity < 1 For a parabolic mirror, eccentricity = 1 For a hyperbolic mirror, eccentricity > 1

The concave flag denotes the reflective surface of the conic. If the flag is true, the conic reflects waves incident from the general direction of the focal point.

template<class aperture_type>
Arroyo::conic_mirror< aperture_type >::~conic_mirror  )  [inline]
 

Destructor


Member Function Documentation

template<class aperture_type>
rectangular_region Arroyo::conic_mirror< aperture_type >::get_covering_region const three_frame tf  )  const [virtual]
 

Get a rectangular region guaranteed to cover the aperture. The resulting region will have its edges aligned with the x and y axes of the three_frame tf.

If foreshortening is on, the projected region is guaranteed to cover the optic

If the z axis of the three_frame is orthogonal to the z axis of the aperture, this function throws an error

Implements Arroyo::optic.

template<class aperture_type>
three_point Arroyo::conic_mirror< aperture_type >::get_point_of_intersection const three_point tp,
const three_vector tv
const [virtual]
 

Get the point of intersection of a line extending from three_point tp in the direction of the three_vector tv and the conic section. If there is no intersection point, this function throws an error

Implements Arroyo::conic_mirror_base.

template<class aperture_type>
bool Arroyo::conic_mirror< aperture_type >::get_raytrace_policy  )  const [inline]
 

Get the raytrace policy

Returns true if the policy is to use the law of reflection

Returns false if the policy is to force the final ray to be orthogonal to the final spherical wavefront

These differ due to numerical precision

template<class aperture_type>
conic_mirror< aperture_type > & Arroyo::conic_mirror< aperture_type >::operator= const conic_mirror< aperture_type > &  cmr  ) 
 

Operator =

template<class aperture_type>
void Arroyo::conic_mirror< aperture_type >::print ostream &  os,
const char *  prefix = ""
const [virtual]
 

Print

Implements Arroyo::conic_mirror_base.

template<class aperture_type>
template<class T>
void Arroyo::conic_mirror< aperture_type >::private_transform diffractive_wavefront< T > &  wf  )  const [protected]
 

A template member function to perform transform on both float and double instantiations of wavefront. This is necessary because there is no mechanism in C++ for virtual template member functions.

template<class aperture_type>
void Arroyo::conic_mirror< aperture_type >::read const iofits iof  )  [virtual]
 

Read from an iofits object

Implements Arroyo::conic_mirror_base.

template<class aperture_type>
void Arroyo::conic_mirror< aperture_type >::read const char *  filename  )  [virtual]
 

Read from file

Implements Arroyo::conic_mirror_base.

template<class aperture_type>
void Arroyo::conic_mirror< aperture_type >::set_raytrace_policy bool  raytrace_policy  )  [inline]
 

Set the raytrace policy

template<class aperture_type>
void Arroyo::conic_mirror< aperture_type >::transform diffractive_wavefront< double > &  wf  )  const [virtual]
 

Apply the aperture to the wavefront

Implements Arroyo::one_to_one_optic.

template<class aperture_type>
void Arroyo::conic_mirror< aperture_type >::transform diffractive_wavefront< float > &  wf  )  const [virtual]
 

Apply the aperture to the wavefront

Implements Arroyo::one_to_one_optic.

template<class aperture_type>
void Arroyo::conic_mirror< aperture_type >::write iofits iof  )  const [virtual]
 

Write to an iofits object

Implements Arroyo::conic_mirror_base.

template<class aperture_type>
void Arroyo::conic_mirror< aperture_type >::write const char *  filename  )  const [virtual]
 

Write to file

Implements Arroyo::conic_mirror_base.


Member Data Documentation

template<class aperture_type>
aperture_type Arroyo::conic_mirror< aperture_type >::ap [protected]
 

template<class aperture_type>
bool Arroyo::conic_mirror< aperture_type >::raytrace_policy [protected]
 


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