GOAT (Geometrical optics application tool) 0.1
Loading...
Searching...
No Matches
GOAT::raytracing::LightSrcRing Class Reference

This class describes a ring shaped This class represents a ring shaped light source, defined by the inner radius rmin and the outer radius rmax. More...

#include <lightsrc.h>

Inheritance diagram for GOAT::raytracing::LightSrcRing:
GOAT::raytracing::LightSrc

Public Member Functions

double area ()
 area
void binReadItem (std::ifstream &os)
 reads content of LightSrc from a binary file, represented by os (has to be specified by the derived classes)
void binWriteItem (std::ofstream &os)
 writes content of LightSrc in a binary file, represented by is (has to be specified by the derived classes)focuspos
double getRmax ()
 returns the outer radius of the light source
double getRmin ()
 returns the inner radius of the light source
 LightSrcRing ()
 LightSrcRing (maths::Vector< double > Pos, int N, double wvl, double rmin=0.0, double rmax=100.0, maths::Vector< std::complex< double > > Pol=maths::Vector< std::complex< double > >(0.0, 1.0, 0.0), int raytype=LIGHTSRC_RAYTYPE_IRAY, double r0=100.0)
int next (IRay &S)
int next (Ray_pow &S)
int next (RayBase *ray)
int next (tubedRay &S)
void setRmax (double rmax)
 set the outer radius of the light source
void setRmin (double rmin)
 set the inner radius of the light source
Public Member Functions inherited from GOAT::raytracing::LightSrc
void addObject (ObjectShape *obj)
 add single object to the object list
void adjustDirection ()
void binRead (std::ifstream &is)
 writes content of LightSrc in a binary file, represented by is
void binWrite (std::ofstream &os)
 reads content of LightSrc from a binary file, represented by os
void clearObjects ()
 clear object list
double getDensity ()
 returns the ray density, i.e. the number of rays per unit length (=D/N)
maths::Vector< std::complex< double > > getInitPol ()
double getIsum1 ()
double getIsum2 ()
maths::Vector< double > getk ()
 returns the main direction of the light source
int getNumObjs ()
 returns the number of Objects (only needed, when used seperately outside scene)
int getNumRays ()
 returns the number of rays (per direction in space)
int getNumRaysRT ()
ObjectShapegetObject (int i)
 returns i-th item in the object list
maths::Vector< double > getPos ()
 returns the position of the light source. This is the center of the square area of the light source
double getWavelength ()
double getWavenumber ()
 LightSrc ()
 LightSrc (const LightSrc &)
 Copy constructor.
void ObjectList (int Anz, std::vector< ObjectShape * > Obj)
int rayType ()
 returns the current ray type
void removeObject (ObjectShape *obj)
 remove object from the object list
void reset ()
 Reset everything (counting starts from the beginning)
void setD (double D)
 sets the width of the light source (this resets also the ray counter)
void setD (double D1, double D2)
void setk (const maths::Vector< double > &k)
 sets the main direction of the light source
void setN0 (std::complex< double > n0)
 sets the complex valued refractive index of the intermediate medium
void setNumRays (int N)
void setNumRaysRT (int numRaysRT)
void setObject (ObjectShape *O, int i=-1)
 exchanges i-th object in the object list
void setPol (maths::Vector< std::complex< double > > pol)
 sets the polarisation
void setPos (maths::Vector< double > P)
 sets the position of the light source. This is the center of the square area of the light source
void setR0 (double r0)
 sets the radius of the calculation sphere
void setWavelength (double wvl)
void setWavenumber (double k0)
 ~LightSrc (void)

Private Attributes

double rmax = 100.0
double rmin = 0.0

Additional Inherited Members

Public Attributes inherited from GOAT::raytracing::LightSrc
double D
 width of the square light source area
double D1
double D2
 width in the e1- and the e2-direction (used only for _mc versions of LightSrc)
double density
 ray density, i.e. distance between two neighboring rays
maths::Vector< double > e1
maths::Vector< double > e2
 unit vectors that span the light source area
int i1
 first index of the ray inside the starting area (for internal use, -1 if the calculation has not yet been started)
int i2
 second index of the ray inside the starting area (for internal use, -1 if the calculation has not yet been started)
maths::Vector< std::complex< double > > initPol
 Polarisation, if the k-Vector points in z-direction.
maths::Vector< double > k
 main direction of the light source
int N =10000
 number of rays (per direction)
std::complex< double > n0
 refractive index of the intermediate medium
int numObjs
 number of objects
std::vector< ObjectShape * > Obj
 list of all objects
double P0 =1.0
 power
double Pall
 overall Power
maths::Vector< std::complex< double > > Pol
 polarisation (default: (0.0, 1.0, 0.0)
maths::Vector< std::complex< double > > Pol2
 second polarisation (used by IRay)
int polType
 Polarisationsrichtung (s.o.)
maths::Vector< double > Pos
 position of the light source (center of the square area of the light source)
double r0 =1.0
 radius of the calculation sphere
int rayCounter =0
int raytype
 Strahltyp : ray oder ISTRAHL (=RAY oder IRAY)
bool suppress_phase_progress = false
 if set true, the phase won't be changed when calling a next method (needed for USP-calculations)
int type
 type of the light source
Protected Attributes inherited from GOAT::raytracing::LightSrc
double Isum1
double Isum2
double k0
 wavenumber (i.e. \( \frac{2\pi}{\lambda}\)
int numRaysRT =20
 used in GOATvis to determine number of rays for ray representation
maths::Vector< double > rotVec =maths::Vector<double>(1,0,0)
 Vector which holds the spherical coordinates \(r\), \(\vartheta\) and \(\varphi\) of the direction vector k.
double wvl =1
 wavelength

Detailed Description

This class describes a ring shaped This class represents a ring shaped light source, defined by the inner radius rmin and the outer radius rmax.

Definition at line 252 of file lightsrc.h.

Constructor & Destructor Documentation

◆ LightSrcRing() [1/2]

GOAT::raytracing::LightSrcRing::LightSrcRing ( )

◆ LightSrcRing() [2/2]

GOAT::raytracing::LightSrcRing::LightSrcRing ( maths::Vector< double > Pos,
int N,
double wvl,
double rmin = 0.0,
double rmax = 100.0,
maths::Vector< std::complex< double > > Pol = maths::Vector< std::complex< double > >(0.0, 1.0, 0.0),
int raytype = LIGHTSRC_RAYTYPE_IRAY,
double r0 = 100.0 )

Member Function Documentation

◆ area()

double GOAT::raytracing::LightSrcRing::area ( )
inlinevirtual

area

Reimplemented from GOAT::raytracing::LightSrc.

Definition at line 267 of file lightsrc.h.

◆ binReadItem()

void GOAT::raytracing::LightSrcRing::binReadItem ( std::ifstream & os)
inlinevirtual

reads content of LightSrc from a binary file, represented by os (has to be specified by the derived classes)

Implements GOAT::raytracing::LightSrc.

Definition at line 262 of file lightsrc.h.

◆ binWriteItem()

void GOAT::raytracing::LightSrcRing::binWriteItem ( std::ofstream & os)
inlinevirtual

writes content of LightSrc in a binary file, represented by is (has to be specified by the derived classes)focuspos

Implements GOAT::raytracing::LightSrc.

Definition at line 261 of file lightsrc.h.

◆ getRmax()

double GOAT::raytracing::LightSrcRing::getRmax ( )
inline

returns the outer radius of the light source

Definition at line 264 of file lightsrc.h.

◆ getRmin()

double GOAT::raytracing::LightSrcRing::getRmin ( )
inline

returns the inner radius of the light source

Definition at line 263 of file lightsrc.h.

◆ next() [1/4]

int GOAT::raytracing::LightSrcRing::next ( IRay & S)
virtual

◆ next() [2/4]

int GOAT::raytracing::LightSrcRing::next ( Ray_pow & S)
virtual

◆ next() [3/4]

int GOAT::raytracing::LightSrcRing::next ( RayBase * ray)
virtual

These functions return the next ray of the light source for further calculations

Parameters
raynext ray
Return values
LIGHTSRC_NOT_LAST_RAY,ifray is not the last ray, LIGHTSRC_IS_LAST_RAY, if the ray is the last ray or LIGHTSRC_ERROR if an error occured

Implements GOAT::raytracing::LightSrc.

◆ next() [4/4]

int GOAT::raytracing::LightSrcRing::next ( tubedRay & S)
virtual

◆ setRmax()

void GOAT::raytracing::LightSrcRing::setRmax ( double rmax)

set the outer radius of the light source

◆ setRmin()

void GOAT::raytracing::LightSrcRing::setRmin ( double rmin)

set the inner radius of the light source

Member Data Documentation

◆ rmax

double GOAT::raytracing::LightSrcRing::rmax = 100.0
private

Definition at line 270 of file lightsrc.h.

◆ rmin

double GOAT::raytracing::LightSrcRing::rmin = 0.0
private

Definition at line 269 of file lightsrc.h.


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