rl_raylib  1.1.10
rl_MultilayerSurface Class Reference

A class encapsulating a multilayer surface, including surface normal. More...

#include <rl_MultilayerSurface.h>

Public Member Functions

virtual ~rl_MultilayerSurface ()
 Destructor.
 
 rl_MultilayerSurface (rl_Multilayer &ml, dvm3_Vector &norm)
 Constructor. More...
 
dvm3_Vector const & normal_vector () const
 Accessor. More...
 
void set_normal (dvm3_Vector const &norm)
 Mutator. More...
 
int reflect (rl_Ray &ray)
 Mutator. More...
 
rl_ReflectionCoefPOD const & reflection_coefs () const
 Accessor. More...
 
rl_DielectricLayer const & layer (int layer_no) const
 Accessor. More...
 
std::ostream & dump_on (std::ostream &os, int layer_no, char const pre[]="", char const pst[]="") const
 Dump information about a layer. More...
 

Detailed Description

A class encapsulating a multilayer surface, including surface normal.

This class contains the multilayer data and surface normal by reference. That is, the rl_Multilayer and dvm3_Vector objects must already exist.

Definition at line 51 of file rl_MultilayerSurface.h.

Constructor & Destructor Documentation

◆ rl_MultilayerSurface()

rl_MultilayerSurface::rl_MultilayerSurface ( rl_Multilayer ml,
dvm3_Vector &  norm 
)
inline

Constructor.

Constructs multilayer surface information from the provided rl_Multilayer object and normal vector.

Parameters
mlthe rl_Multilayer object to be used (must already exist)
normthe surface normal dvm3_Vector to be used (must already exist)

Definition at line 181 of file rl_MultilayerSurface.h.

Member Function Documentation

◆ dump_on()

std::ostream & rl_MultilayerSurface::dump_on ( std::ostream &  os,
int  layer_no,
char const  pre[] = "",
char const  pst[] = "" 
) const
inline

Dump information about a layer.

Parameters
osoutput stream
layer_nolayer number for which the information is requested.
preoptional char* prefix string.
pstoptional char* postfix string.

Definition at line 231 of file rl_MultilayerSurface.h.

◆ layer()

rl_DielectricLayer const & rl_MultilayerSurface::layer ( int  layer_no) const
inline

Accessor.

Parameters
layer_nolayer number for which the information is requested.
Returns
const reference to the rl_DielectricLayer for layer layer_no.

Definition at line 226 of file rl_MultilayerSurface.h.

◆ normal_vector()

dvm3_Vector const & rl_MultilayerSurface::normal_vector ( ) const
inline

Accessor.

Returns
the surface normal vector at the ray intercept

Definition at line 190 of file rl_MultilayerSurface.h.

◆ reflect()

int rl_MultilayerSurface::reflect ( rl_Ray ray)
inline

Mutator.

Reflect ray direction vector at this surface

Parameters
rayto be reflected. The ray is assumed to be already at a valid surface intercept point. The ray direction vector and polarization state are updated.
Returns
0 if successful.

Definition at line 213 of file rl_MultilayerSurface.h.

◆ reflection_coefs()

rl_ReflectionCoefPOD const & rl_MultilayerSurface::reflection_coefs ( ) const
inline

Accessor.

Returns
rl_ReflectionCoefPOD holding the complex perpendicular and parallel reflection coefficients.

Definition at line 195 of file rl_MultilayerSurface.h.

◆ set_normal()

void rl_MultilayerSurface::set_normal ( dvm3_Vector const &  norm)
inline

Mutator.

Set the surface normal at the ray/surface intercept.

Until the full surface intercept apparatus is available, applications need to set the surface normal at the intercept.

Parameters
normthe surface normal vector at the ray intercept

Definition at line 203 of file rl_MultilayerSurface.h.


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