1 #ifndef rl_Multilayer_h_INCLUDED 2 #define rl_Multilayer_h_INCLUDED 43 #include <rl_raylib/rl_Traits.h> 44 #include <rl_raylib/rl_DielectricLayer.h> 174 double polarization_factor = 0.0
197 std::ostream&
dump_on( std::ostream& os,
int layer_no,
198 char const pre[] =
"",
199 char const pst[] =
"" )
const;
209 void cdump_on( std::FILE* of,
int layer_no,
210 char const pre[] =
"",
211 char const pst[] =
"" )
const;
int num_layers_
number of multilayers
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.
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*.
rl_Traits::Bool own_data_
do we own the rl_DielectricLayer array?
void init(int num_layers, rl_DielectricLayer *layers, rl_Traits::Bool adopt_data=rl_Traits::True)
Initialize multilayer from num_layers individual layers.
A Plain Ol' Data class representing complex reflection coefficients.
rl_DielectricLayer vacuum_
the top (vacuum) layer
int multilayer_reflect_coef(rl_ReflectionCoefPOD &rfl, double energy, double sg)
Evaluate the multilayer reflection coefficients.
A class encapsulating reflection of a ray from a multilayer surface.
rl_DielectricLayer * layer_
array of dielectric layers
int multilayer_reflectivity(double &rfl, double energy, double sg, double polarization_factor=0.0)
Evaluate the multilayer reflectivity (assuming unpolarized rays)
EInterpMode
Enumeration specifying the interpolation of the optical constants.
rl_DielectricLayer const & layer(int layer_no) const
rl_Traits::EInterpMode EInterpMode
interpolation mode for dielectric data
virtual ~rl_Multilayer()
Destructor.
A class encapsulating the multilayer reflection of a ray.
Bool
Typedef for the Boolean type.