rl_basicray  1.0.12
rl_BasicRay Class Reference

A basic ray: encapsulates position and direction vectors, energy, and ray id. More...

#include <rl_BasicRay.h>

Public Member Functions

virtual ~rl_BasicRay ()
 A virtual do-nothing destructor.
 
 rl_BasicRay ()
 Default constructor; constructs a ray in an INVALID state. More...
 
 rl_BasicRay (dvm3_Vector const &pos, dvm3_Vector const &dir, double energy, long int id)
 Constructor. More...
 
 rl_BasicRay (rl_BasicRay const &other)
 Copy constructor. More...
 
void set_id (long int id)
 Reset ray id. More...
 
long int id () const
 Read-only access to current ray id. More...
 
double & energy ()
 Read/write access to current ray energy. More...
 
double energy () const
 Read-only access to current ray position. More...
 
double & position (int i)
 Read/write access to component i of current ray position. More...
 
double position (int i) const
 Read-only access to component i of current ray position. More...
 
dvm3_Vector & position ()
 Read/write access to current ray position. More...
 
dvm3_Vector const & position () const
 Read-only access to current ray position. More...
 
double & direction (int i)
 Read/write access to component i of current ray direction. More...
 
double direction (int i) const
 Read-only access to component i of current ray direction. More...
 
dvm3_Vector & direction ()
 Read/write access to current ray direction vector. More...
 
dvm3_Vector const & direction () const
 Read-only access to current ray direction vector. More...
 
double reflect_direction_vector (dvm3_Vector const &normal)
 Reflect this ray's direction vector about a (surface) normal. More...
 
void project (double s)
 Project a distance s along this ray. More...
 
virtual void translate_rotate (dvm3_Vector const &trans, dvm3_RotMat const &rotmat)
 VIRTUAL: Translate to the BCS origin; rotate from STD to BCS coordinates. More...
 
virtual void derotate_detranslate (dvm3_Vector const &trans, dvm3_RotMat const &rotmat)
 VIRTUAL: Derotate back to STD coordinates; detranslate back to STD origin. More...
 
std::ostream & print_on (std::ostream &os, char const prefix[]="", char const postfix[]="") const
 Print the ray properties to an output stream. More...
 

Protected Member Functions

void init (dvm3_Vector const &pos, dvm3_Vector const &dir, double energy, long int id)
 Initialize rl_BasicRay with ray initial position and direction vector, energy, and id number. More...
 

Protected Attributes

dvm3_Vector pos_
 ray position
 
dvm3_Vector dir_
 ray direction vector (direction cosines)
 
double energy_
 ray energy
 
long int id_
 ray id number
 

Friends

std::ostream & operator<< (std::ostream &os, rl_BasicRay const &)
 Print the ray properties to an output stream. More...
 

Detailed Description

A basic ray: encapsulates position and direction vectors, energy, and ray id.

Definition at line 47 of file rl_BasicRay.h.

Constructor & Destructor Documentation

◆ rl_BasicRay() [1/3]

rl_BasicRay::rl_BasicRay ( )
inline

Default constructor; constructs a ray in an INVALID state.

Use init to initialize the fields.

Definition at line 274 of file rl_BasicRay.h.

◆ rl_BasicRay() [2/3]

rl_BasicRay::rl_BasicRay ( dvm3_Vector const &  pos,
dvm3_Vector const &  dir,
double  energy,
long int  id 
)
inline

Constructor.

Construct an rl_BasicRay from ray initial position and direction vector, energy, and id number.

Parameters
posray initial position.
dirray initial direction unit vector.
energyray energy, in keV.
idray id.

Definition at line 279 of file rl_BasicRay.h.

◆ rl_BasicRay() [3/3]

rl_BasicRay::rl_BasicRay ( rl_BasicRay const &  other)
inline

Copy constructor.

Parameters
otherray to be copied.

Definition at line 286 of file rl_BasicRay.h.

Member Function Documentation

◆ derotate_detranslate()

void rl_BasicRay::derotate_detranslate ( dvm3_Vector const &  trans,
dvm3_RotMat const &  rotmat 
)
inlinevirtual

VIRTUAL: Derotate back to STD coordinates; detranslate back to STD origin.

Parameters
transtranslation vector.
rotmatrotation matrix to be applied. rotmat specifies a rotation from std to bcs; the inverse of rotmat is applied to the ray.

Definition at line 391 of file rl_BasicRay.h.

◆ direction() [1/4]

double & rl_BasicRay::direction ( int  i)
inline

Read/write access to component i of current ray direction.

Parameters
iindex.

Definition at line 345 of file rl_BasicRay.h.

◆ direction() [2/4]

double rl_BasicRay::direction ( int  i) const
inline

Read-only access to component i of current ray direction.

Parameters
iindex.
Returns
component i of the position vector.

Definition at line 350 of file rl_BasicRay.h.

◆ direction() [3/4]

dvm3_Vector & rl_BasicRay::direction ( )
inline

Read/write access to current ray direction vector.

Returns
reference to current ray direction vector dvm3_Vector

Definition at line 355 of file rl_BasicRay.h.

◆ direction() [4/4]

dvm3_Vector const & rl_BasicRay::direction ( ) const
inline

Read-only access to current ray direction vector.

Returns
const reference to current ray direction vector dvm3_Vector

Definition at line 360 of file rl_BasicRay.h.

◆ energy() [1/2]

double & rl_BasicRay::energy ( )
inline

Read/write access to current ray energy.

Returns
a reference to the ray energy

Definition at line 315 of file rl_BasicRay.h.

◆ energy() [2/2]

double rl_BasicRay::energy ( ) const
inline

Read-only access to current ray position.

Returns
the ray energy

Definition at line 320 of file rl_BasicRay.h.

◆ id()

long int rl_BasicRay::id ( ) const
inline

Read-only access to current ray id.

Returns
ray id number

Definition at line 306 of file rl_BasicRay.h.

◆ init()

void rl_BasicRay::init ( dvm3_Vector const &  pos,
dvm3_Vector const &  dir,
double  energy,
long int  id 
)
inlineprotected

Initialize rl_BasicRay with ray initial position and direction vector, energy, and id number.

Parameters
posray position vector
dirray direction vector
energyray energy
idray id number

Definition at line 292 of file rl_BasicRay.h.

◆ position() [1/4]

double & rl_BasicRay::position ( int  i)
inline

Read/write access to component i of current ray position.

Parameters
iindex.
Returns
a reference to the i component of the position vector.

Definition at line 325 of file rl_BasicRay.h.

◆ position() [2/4]

double rl_BasicRay::position ( int  i) const
inline

Read-only access to component i of current ray position.

Parameters
iindex.
Returns
the i component of the position vector.

Definition at line 330 of file rl_BasicRay.h.

◆ position() [3/4]

dvm3_Vector & rl_BasicRay::position ( )
inline

Read/write access to current ray position.

Returns
a reference to the position vector dvm3_Vector.

Definition at line 335 of file rl_BasicRay.h.

◆ position() [4/4]

dvm3_Vector const & rl_BasicRay::position ( ) const
inline

Read-only access to current ray position.

Returns
a const reference to the position vector dvm3_Vector

Definition at line 340 of file rl_BasicRay.h.

◆ print_on()

ostream & rl_BasicRay::print_on ( std::ostream &  os,
char const  prefix[] = "",
char const  postfix[] = "" 
) const

Print the ray properties to an output stream.

Parameters
osoutput stream.
prefixan optional prefix string.
postfixan optional postfix string.
Returns
output stream

Definition at line 70 of file rl_BasicRay.cc.

◆ project()

void rl_BasicRay::project ( double  s)
inline

Project a distance s along this ray.

Parameters
sdistance to project the ray.

Definition at line 369 of file rl_BasicRay.h.

◆ reflect_direction_vector()

double rl_BasicRay::reflect_direction_vector ( dvm3_Vector const &  normal)

Reflect this ray's direction vector about a (surface) normal.

Parameters
normal- surface normal unit vector to be used in reflecting this rl_BasicRay.
Returns
sine of the graze angle between the ray and the surface

Definition at line 52 of file rl_BasicRay.cc.

◆ set_id()

void rl_BasicRay::set_id ( long int  id)
inline

Reset ray id.

Parameters
idnew id value.

Definition at line 310 of file rl_BasicRay.h.

◆ translate_rotate()

void rl_BasicRay::translate_rotate ( dvm3_Vector const &  trans,
dvm3_RotMat const &  rotmat 
)
inlinevirtual

VIRTUAL: Translate to the BCS origin; rotate from STD to BCS coordinates.

Parameters
transtranslation vector.
rotmatrotation matrix to be applied. rotmat specifies a rotation from std to bcs.

Definition at line 379 of file rl_BasicRay.h.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
rl_BasicRay const &   
)
friend

Print the ray properties to an output stream.

Parameters
osoutput stream.
Returns
output stream

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