#include <rl_Polarization.h>
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 |
Definition at line 186 of file rl_Polarization.h.
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.
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.
cs | OSAC-style polarization amplitude | |
dir | ray direction vector |
Definition at line 354 of file rl_Polarization.h.
References init().
void rl_Polarization::init | ( | rl_PolCSPOD const & | cs, | |
dvm3_Vector const & | dir | |||
) |
Initialize the polarization state.
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.
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.
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
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
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.
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.
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] |
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] |
dvm3_Vector const & rl_Polarization::S_i | ( | ) | const [inline] |
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]".
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]".
of | output FILE*. |