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

Arroyo::optic Class Reference

#include <optic.h>

Inheritance diagram for Arroyo::optic:

Arroyo::AO_sim_base Arroyo::one_to_many_optic Arroyo::one_to_one_optic Arroyo::plane_optic Arroyo::aperture Arroyo::conic_mirror_base Arroyo::deformable_mirror_base Arroyo::lenslet_array_base Arroyo::refractive_atmospheric_layer< T > Arroyo::tip_tilt_mirror_base Arroyo::aperture Arroyo::deformable_mirror_base Arroyo::lenslet_array_base Arroyo::refractive_atmospheric_layer< T > Arroyo::tip_tilt_mirror_base List of all members.

Public Member Functions

 optic ()
 optic (const optic &op)
virtual ~optic ()
opticoperator= (const optic &op)
bool get_foreshortening () const
void set_foreshortening (bool fshrtn)
virtual void read (const iofits &iof)
virtual void write (iofits &iof) const
virtual void print (ostream &os, const char *prefix="") const
virtual rectangular_region get_covering_region (const three_frame &tf) const =0
virtual three_point get_point_of_intersection (const three_point &tp, const three_vector &tv) const =0

Static Public Member Functions

opticoptic_factory (const char *filename)
opticoptic_factory (const iofits &iof)

Static Public Attributes

int verbose_level

Protected Attributes

bool foreshortening
 A flag to indicate whether to account for foreshortening that results when a wavefront strikes an optic at an oblique angle. Default is true.

Detailed Description

A virtual base class for an optic.


Constructor & Destructor Documentation

Arroyo::optic::optic  )  [inline]
 

Null constructor

Arroyo::optic::optic const optic op  ) 
 

Copy constructor

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

Virtual destructor


Member Function Documentation

virtual rectangular_region Arroyo::optic::get_covering_region const three_frame tf  )  const [pure virtual]
 

Get a rectangular region guaranteed to cover the entire optic. The resulting region will have its edges aligned with the x and y axes of the three_frame tf, regardless of the foreshortening status of the optic. However, if foreshortening is on then the rectangular region returned by this function covers the optic when projected onto the plane containing the optic. If foreshortening is off, then this function returns a region that covers the optic when rotated into the plane of the optic. That is, when we just assume the z axis defining the plane containing the region is the same as the z axis defining the optic.)

Implemented in Arroyo::circular_aperture, Arroyo::annular_aperture, Arroyo::rectangular_aperture, Arroyo::hexagonal_aperture, Arroyo::tiled_hexagonal_aperture, Arroyo::conic_mirror< aperture_type >, Arroyo::square_lenslet_array, and Arroyo::refractive_atmospheric_layer< T >.

bool Arroyo::optic::get_foreshortening  )  const [inline]
 

Query whether the optic appears foreshortened to a wavefront incident at an angle to the optic

virtual three_point Arroyo::optic::get_point_of_intersection const three_point tp,
const three_vector tv
const [pure virtual]
 

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

Implemented in Arroyo::conic_mirror_base, Arroyo::conic_mirror< aperture_type >, and Arroyo::plane_optic.

optic& Arroyo::optic::operator= const optic op  ) 
 

Operator =

optic* Arroyo::optic::optic_factory const iofits iof  )  [static]
 

Factory to construct optics from file

optic* Arroyo::optic::optic_factory const char *  filename  )  [static]
 

Factory to construct optics from file

virtual void Arroyo::optic::print ostream &  os,
const char *  prefix = ""
const [virtual]
 

Print

Implements Arroyo::AO_sim_base.

Reimplemented in Arroyo::aperture, Arroyo::circular_aperture, Arroyo::annular_aperture, Arroyo::rectangular_aperture, Arroyo::spidered_annular_aperture, Arroyo::hexagonal_aperture, Arroyo::tiled_hexagonal_aperture, Arroyo::conic_mirror_base, Arroyo::conic_mirror< aperture_type >, Arroyo::deformable_mirror_base, Arroyo::ideal_deformable_mirror< aperture_type >, Arroyo::square_lenslet_array, Arroyo::plane_optic, Arroyo::refractive_atmospheric_layer< T >, Arroyo::tip_tilt_mirror_base, and Arroyo::ideal_tip_tilt_mirror< aperture_type >.

virtual void Arroyo::optic::read const iofits iof  )  [virtual]
 

Read from an iofits object

Reimplemented in Arroyo::aperture, Arroyo::circular_aperture, Arroyo::annular_aperture, Arroyo::rectangular_aperture, Arroyo::spidered_annular_aperture, Arroyo::hexagonal_aperture, Arroyo::tiled_hexagonal_aperture, Arroyo::conic_mirror_base, Arroyo::conic_mirror< aperture_type >, Arroyo::deformable_mirror_base, Arroyo::ideal_deformable_mirror< aperture_type >, Arroyo::square_lenslet_array, Arroyo::plane_optic, Arroyo::refractive_atmospheric_layer< T >, Arroyo::tip_tilt_mirror_base, and Arroyo::ideal_tip_tilt_mirror< aperture_type >.

void Arroyo::optic::set_foreshortening bool  fshrtn  )  [inline]
 

Choose whether the optic appears foreshortened to a wavefront incident at an angle to the optic

virtual void Arroyo::optic::write iofits iof  )  const [virtual]
 

Write to an iofits object

Reimplemented in Arroyo::aperture, Arroyo::circular_aperture, Arroyo::annular_aperture, Arroyo::rectangular_aperture, Arroyo::spidered_annular_aperture, Arroyo::hexagonal_aperture, Arroyo::tiled_hexagonal_aperture, Arroyo::conic_mirror_base, Arroyo::conic_mirror< aperture_type >, Arroyo::deformable_mirror_base, Arroyo::ideal_deformable_mirror< aperture_type >, Arroyo::lenslet_array_base, Arroyo::square_lenslet_array, Arroyo::plane_optic, Arroyo::refractive_atmospheric_layer< T >, Arroyo::tip_tilt_mirror_base, and Arroyo::ideal_tip_tilt_mirror< aperture_type >.


Member Data Documentation

bool Arroyo::optic::foreshortening [protected]
 

A flag to indicate whether to account for foreshortening that results when a wavefront strikes an optic at an oblique angle. Default is true.

int Arroyo::optic::verbose_level [static]
 

Verbose level


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