rl_raylib
1.1.10
|
A class encapsulating reflection of a ray from a multilayer surface. More...
#include <rl_Multilayer.h>
Public Types | |
typedef rl_Traits::EInterpMode | EInterpMode |
interpolation mode for dielectric data | |
Public Member Functions | |
virtual | ~rl_Multilayer () |
Destructor. More... | |
rl_Multilayer (int num_layers, rl_DielectricLayer *layers, rl_Traits::Bool adopt_data=rl_Traits::True) | |
Construct multilayer from num_layers individual layers. More... | |
void | init (int num_layers, rl_DielectricLayer *layers, rl_Traits::Bool adopt_data=rl_Traits::True) |
Initialize multilayer from num_layers individual layers. More... | |
int | multilayer_reflect_coef (rl_ReflectionCoefPOD &rfl, double energy, double sg) |
Evaluate the multilayer reflection coefficients. More... | |
int | multilayer_reflectivity (double &rfl, double energy, double sg, double polarization_factor=0.0) |
Evaluate the multilayer reflectivity (assuming unpolarized rays) More... | |
rl_DielectricLayer const & | layer (int layer_no) const |
int | num_layers () const |
std::ostream & | dump_on (std::ostream &os, int layer_no, char const pre[]="", char const pst[]="") const |
Dump information about layer layer_no to stream os. More... | |
void | cdump_on (std::FILE *of, int layer_no, char const pre[]="", char const pst[]="") const |
Dump information about layer layer_no to output FILE*. More... | |
Protected Attributes | |
int | num_layers_ |
number of multilayers | |
rl_DielectricLayer | vacuum_ |
the top (vacuum) layer | |
rl_DielectricLayer * | layer_ |
array of dielectric layers | |
rl_Traits::Bool | own_data_ |
do we own the rl_DielectricLayer array? | |
A class encapsulating reflection of a ray from a multilayer surface.
Given the energy and the sine of the graze angle, reflection coefficient can be evaluated.
Definition at line 60 of file rl_Multilayer.h.
|
virtual |
Destructor.
Frees up rl_DielectricLayer array if own_data_ is rl_Traits::True.
Definition at line 46 of file rl_Multilayer.cc.
rl_Multilayer::rl_Multilayer | ( | int | num_layers, |
rl_DielectricLayer * | layers, | ||
rl_Traits::Bool | adopt_data = rl_Traits::True |
||
) |
Construct multilayer from num_layers individual layers.
num_layers | number of layers to construct. |
layers | pointer to array of layer data |
adopt_data | boolean flag
|
Definition at line 53 of file rl_Multilayer.cc.
void rl_Multilayer::cdump_on | ( | std::FILE * | of, |
int | layer_no, | ||
char const | pre[] = "" , |
||
char const | pst[] = "" |
||
) | const |
Dump information about layer layer_no to output FILE*.
of | output FILE* |
layer_no | layer number to be dumped |
pre | optional prefix string |
pst | optional postfix string |
Definition at line 181 of file rl_Multilayer.cc.
std::ostream & rl_Multilayer::dump_on | ( | std::ostream & | os, |
int | layer_no, | ||
char const | pre[] = "" , |
||
char const | pst[] = "" |
||
) | const |
Dump information about layer layer_no to stream os.
os | output stream |
layer_no | layer number to be dumped |
pre | optional prefix string |
pst | optional postfix string |
Definition at line 164 of file rl_Multilayer.cc.
void rl_Multilayer::init | ( | int | num_layers, |
rl_DielectricLayer * | layers, | ||
rl_Traits::Bool | adopt_data = rl_Traits::True |
||
) |
Initialize multilayer from num_layers individual layers.
num_layers | number of layers to construct. |
layers | pointer to array of layer data |
adopt_data | boolean flag
|
Definition at line 64 of file rl_Multilayer.cc.
rl_DielectricLayer const & rl_Multilayer::layer | ( | int | layer_no | ) | const |
Definition at line 156 of file rl_Multilayer.cc.
int rl_Multilayer::multilayer_reflect_coef | ( | rl_ReflectionCoefPOD & | rfl, |
double | energy, | ||
double | sg | ||
) |
Evaluate the multilayer reflection coefficients.
rfl | the computed reflection coefficient. |
energy | ray energy. |
sg | sine of the graze angle between the ray and the surface. |
Definition at line 90 of file rl_Multilayer.cc.
int rl_Multilayer::multilayer_reflectivity | ( | double & | rfl, |
double | energy, | ||
double | sg, | ||
double | polarization_factor = 0.0 |
||
) |
Evaluate the multilayer reflectivity (assuming unpolarized rays)
rfl | multilayer reflectivity. |
energy | ray energy. |
sg | sine of the graze angle between the ray and the surface. |
polarization_factor | polarization factor; it must be a value between -1 and 1. The polarization factor is related to parallel (p) and perpendicular (s) polarization by:
![]() ![]()
|
Definition at line 136 of file rl_Multilayer.cc.
|
inline |
Definition at line 231 of file rl_Multilayer.h.