rl_Polarization Class Reference

#include <rl_Polarization.h>

List of all members.

Public Types

typedef rl_Traits::complex complex
 complex type

Public Member Functions

 ~rl_Polarization ()
 rl_Polarization ()
 rl_Polarization (rl_Polarization const &rhs)
 rl_Polarization (rl_PolCSPOD const &cs, dvm3_Vector const &dir)
void init (rl_PolCSPOD const &cs, dvm3_Vector const &dir)
void get_PolCSPOD (rl_PolCSPOD &cs, dvm3_Vector const &dir) const
double intensity () const
void rotate (rl_Polarization &rotated, dvm3_RotMat const &rot_mtx)
void derotate (rl_Polarization &derotated, dvm3_RotMat const &rot_mtx)
void attenuate (double factor)
void reflect (dvm3_Vector const &normal, dvm3_Vector const &dir_in, dvm3_Vector const &dir_out, rl_ReflectionCoefPOD const &rflcoef)
dvm3_Vector const & C_r () const
 return the real ``cosine' polarization vector
dvm3_Vector const & C_i () const
 return the imaginary ``cosine' polarization vector
dvm3_Vector const & S_r () const
 return the real ``sine' polarization vector
dvm3_Vector const & S_i () const
 return the imaginary ``sine' polarization vector
std::ostream & print_on (std::ostream &os) const
void cprint_on (std::FILE *of) const


Detailed Description

Encapsulates the polarization state of a ray. The class is a simple class to handle the ray polarization state resolved onto a specific coordinate system. The polarization axes are constructed from a direction vector and the coordinate axes. A coordinate triple is constructed in which one axis is the direction vector.

Definition at line 186 of file rl_Polarization.h.


Member Typedef Documentation

complex type

Definition at line 191 of file rl_Polarization.h.


Constructor & Destructor Documentation

rl_Polarization::~rl_Polarization (  )  [inline]

Destructor (NON-VIRTUAL)

Definition at line 343 of file rl_Polarization.h.

rl_Polarization::rl_Polarization (  )  [inline]

Default constructor; constructs rl_Polarization with INVALID fields.

Definition at line 349 of file rl_Polarization.h.

rl_Polarization::rl_Polarization ( rl_Polarization const &  rhs  )  [inline]

Copy constructor; constructs rl_Polarization with INVALID fields.

Parameters:
rhs - rl_Polarization object to be copied.

Definition at line 359 of file rl_Polarization.h.

rl_Polarization::rl_Polarization ( rl_PolCSPOD const &  cs,
dvm3_Vector const &  dir 
) [inline]

Conversion constructor. Convert OSAC-style polarization amplitudes into polarization vector set.

Parameters:
cs OSAC-style polarization amplitude
dir ray direction vector

Definition at line 354 of file rl_Polarization.h.

References init().


Member Function Documentation

void rl_Polarization::init ( rl_PolCSPOD const &  cs,
dvm3_Vector const &  dir 
)

Initialize the polarization state.

Parameters:
cs OSAC-style polarization amplitude
dir ray direction vector

Definition at line 171 of file rl_Polarization.cc.

References rl_PolCSPOD::c2_, and rl_PolCSPOD::s2_.

Referenced by rl_Ray::init_ray(), rl_Polarization(), and rl_Ray::set_polarization().

void rl_Polarization::get_PolCSPOD ( rl_PolCSPOD cs,
dvm3_Vector const &  dir 
) const

Evaluate rl_PolCSPOD corresponding to this polarization state.

Parameters:
cs OSAC-style polarization amplitude
dir ray direction vector

Definition at line 217 of file rl_Polarization.cc.

References rl_PolCSPOD::c2_, and rl_PolCSPOD::s2_.

Referenced by rl_Ray::get_PolCSPOD().

double rl_Polarization::intensity (  )  const

Evaluate intensity.

Returns:
intensity (i.e., Stoke's $s_0$).

Definition at line 208 of file rl_Polarization.cc.

Referenced by rl_Ray::intensity().

void rl_Polarization::rotate ( rl_Polarization rotated,
dvm3_RotMat const &  rot_mtx 
) [inline]

Rotate polarization state to frame described by rot_mtx

Parameters:
rotated output rotated polarization state. The state is now in the frame obtained by applying rot_mtx.
rot_mtx rotation matrix.

Definition at line 368 of file rl_Polarization.h.

References C_i_, C_r_, S_i_, and S_r_.

Referenced by rl_Ray::translate_rotate().

void rl_Polarization::derotate ( rl_Polarization derotated,
dvm3_RotMat const &  rot_mtx 
) [inline]

Rotate polarization state back from frame described by rot_mtx

Parameters:
derotated output derotated polarization state. The state is now back in the original frame.
rot_mtx rotation matrix.

Definition at line 378 of file rl_Polarization.h.

References C_i_, C_r_, S_i_, and S_r_.

Referenced by rl_Ray::derotate_detranslate().

void rl_Polarization::attenuate ( double  factor  ) 

Attenuate reflectivity by a factor.

Parameters:
factor attenuation factor. (NOTE: this multiplies the polarization components by sqrt(factor).)

Definition at line 243 of file rl_Polarization.cc.

Referenced by rl_Ray::attenuate().

void rl_Polarization::reflect ( dvm3_Vector const &  normal,
dvm3_Vector const &  dir_in,
dvm3_Vector const &  dir_out,
rl_ReflectionCoefPOD const &  rflcoef 
)

Evaluate the reflected polarization vectors. Given a surface normal, incident and reflected ray direction vectors, and the parallel and perpendicular reflection coefficients, evaluate the reflected polarization vectors.

Parameters:
normal surface normal vector.
dir_in direction vector for incoming ray.
dir_out direction vector for reflected ray.
rflcoef complex reflection coefficients for surface.

Definition at line 262 of file rl_Polarization.cc.

References rl_ReflectionCoefPOD::para(), and rl_ReflectionCoefPOD::perp().

Referenced by rl_Ray::reflect().

dvm3_Vector const & rl_Polarization::C_r (  )  const [inline]

return the real ``cosine' polarization vector

Definition at line 388 of file rl_Polarization.h.

dvm3_Vector const & rl_Polarization::C_i (  )  const [inline]

return the imaginary ``cosine' polarization vector

Definition at line 395 of file rl_Polarization.h.

dvm3_Vector const & rl_Polarization::S_r (  )  const [inline]

return the real ``sine' polarization vector

Definition at line 402 of file rl_Polarization.h.

dvm3_Vector const & rl_Polarization::S_i (  )  const [inline]

return the imaginary ``sine' polarization vector

Definition at line 409 of file rl_Polarization.h.

std::ostream & rl_Polarization::print_on ( std::ostream &  os  )  const

Write the polarization vectors to stream os. The state is written as "[x y z][x y z][x y z][x y z]".

Parameters:
os output stream.

Definition at line 339 of file rl_Polarization.cc.

Referenced by rl_Ray::print_on().

void rl_Polarization::cprint_on ( std::FILE *  of  )  const

Write the polarization amplitude to FILE* of. The state is written as "[x y z][x y z][x y z][x y z]".

Parameters:
of output FILE*.


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

Generated on Mon Nov 3 18:15:05 2008 for rl_raylib by  doxygen 1.5.6