#include <rl_Ray.h>
Public Member Functions | |
virtual | ~rl_Ray () |
rl_Ray () | |
rl_Ray (rl_BasicRay const &ray, rl_PolCSPOD const &cspol) | |
rl_Ray (dvm3_Vector const &pos, dvm3_Vector const &dir, double energy, long int id, rl_PolCSPOD const &cspol) | |
void | init_ray (dvm3_Vector const &pos, dvm3_Vector const &dir, double energy, long int id, rl_PolCSPOD const &cspol) |
rl_Polarization const & | polarization () const |
void | set_polarization (rl_PolCSPOD const &cspol) |
void | get_PolCSPOD (rl_PolCSPOD &cs) const |
double | intensity () const |
void | attenuate (double by_how_much) |
void | reflect (dvm3_Vector const &normal, rl_ReflectionCoefPOD const &rflcoef) |
void | translate_rotate (dvm3_Vector const &trans, dvm3_RotMat const &rotmat) |
void | derotate_detranslate (dvm3_Vector const &trans, dvm3_RotMat const &rotmat) |
std::ostream & | print_on (std::ostream &os, char const pre[]="", char const pst[]="") const |
Definition at line 45 of file rl_Ray.h.
rl_Ray::rl_Ray | ( | ) | [inline] |
rl_Ray::rl_Ray | ( | rl_BasicRay const & | ray, | |
rl_PolCSPOD const & | cspol | |||
) | [inline] |
rl_Ray::rl_Ray | ( | dvm3_Vector const & | pos, | |
dvm3_Vector const & | dir, | |||
double | energy, | |||
long int | id, | |||
rl_PolCSPOD const & | cspol | |||
) | [inline] |
void rl_Ray::init_ray | ( | dvm3_Vector const & | pos, | |
dvm3_Vector const & | dir, | |||
double | energy, | |||
long int | id, | |||
rl_PolCSPOD const & | cspol | |||
) | [inline] |
Initialize a ray.
pos | ray position vector. | |
dir | ray direction unit vector. | |
energy | ray energy (keV). | |
id | a numeric ray identifier. | |
cspol | an OSAC-style complex polarization amplitude vector. |
Definition at line 211 of file rl_Ray.h.
References rl_Polarization::init().
rl_Polarization const & rl_Ray::polarization | ( | ) | const [inline] |
void rl_Ray::set_polarization | ( | rl_PolCSPOD const & | cspol | ) | [inline] |
Set the polarization state.
cspol | an OSAC-style complex polarization amplitude vector. |
Definition at line 242 of file rl_Ray.h.
References rl_Polarization::init().
void rl_Ray::get_PolCSPOD | ( | rl_PolCSPOD & | cs | ) | const [inline] |
Evaluate rl_PolCSPOD corresponding to this ray's polarization state.
cs | return an OSAC-style complex polarization amplitude vector. |
Definition at line 229 of file rl_Ray.h.
References rl_Polarization::get_PolCSPOD().
double rl_Ray::intensity | ( | ) | const [inline] |
Returns this ray's normalized intensity (i.e., "weight")
Definition at line 234 of file rl_Ray.h.
References rl_Polarization::intensity().
void rl_Ray::attenuate | ( | double | by_how_much | ) | [inline] |
Attenuate this ray by by_how_much
by_how_much | how much to attenuate this ray. |
Definition at line 247 of file rl_Ray.h.
References rl_Polarization::attenuate().
void rl_Ray::reflect | ( | dvm3_Vector const & | normal, | |
rl_ReflectionCoefPOD const & | rflcoef | |||
) |
Reflect this ray's direction vector and polarization state.
normal | surface normal unit vector. | |
rflcoef | complex reflectances for the surface. |
Definition at line 51 of file rl_Ray.cc.
References rl_Polarization::reflect().
Referenced by rl_MultilayerSurface::reflect().
void rl_Ray::translate_rotate | ( | dvm3_Vector const & | trans, | |
dvm3_RotMat const & | rotmat | |||
) |
Translate to BCS origin and rotate from STD to BCS coordinates.
trans | translation vector | |
rotmat | rotation matrix to be applied. rotmat specifies a rotation from std to bcs. |
Definition at line 63 of file rl_Ray.cc.
References rl_Polarization::rotate().
void rl_Ray::derotate_detranslate | ( | dvm3_Vector const & | trans, | |
dvm3_RotMat const & | rotmat | |||
) |
Derotate back to std coordinates; detranslate back to std origin
trans | translation vector. | |
rotmat | rotation matrix to be applied. rotmat specifies a rotation from std to bcs; the inverse of rotmat is applied to the ray. |
Definition at line 75 of file rl_Ray.cc.
References rl_Polarization::derotate().
std::ostream & rl_Ray::print_on | ( | std::ostream & | os, | |
char const | pre[] = "" , |
|||
char const | pst[] = "" | |||
) | const |
Write the ray contents with optional pre and post comment strings.
os | output stream. | |
pre | optional prefix c-string. | |
pst | optional postfix c-string. |
Definition at line 86 of file rl_Ray.cc.
References rl_Polarization::print_on().