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

Abstract base class for all rays used for the raytracing process. This abstract base class for all rays is the parent class, from which all ray classes are derived. More...

#include <raybase.h>

Inheritance diagram for GOAT::raytracing::RayBase:
GOAT::raytracing::IRay GOAT::raytracing::tubedRay GOAT::raytracing::Ray_pow

Public Member Functions

virtual maths::Vector< std::complex< double > > getE ()=0
 gives back electric field strength
virtual maths::Vector< double > getk ()=0
 gives back direction Vector
virtual maths::Vector< double > getP ()=0
 gives back position
virtual bool isInObject ()=0
 true if ray is in an object otherwise false
virtual bool next ()=0
 make the next step (has to include phase progress)
virtual int objectIndex ()=0
 index of the current object or -1
virtual void reflectRay (RayBase *&tray, maths::Vector< double > n, std::complex< double > n1, std::complex< double > n2)=0
 reflects ray

Public Attributes

bool inObject =false
 is in an object
int iR =0
 number of reflections already done
double k0 =2.0*M_PI
 wave number
std::complex< double > n
std::complex< double > n0
 current refractive index and refractive index of the host material
int numObj =0
 number of objects
std::vector< ObjectShape * > Obj
 list of all objects
int objIndex =0
 index of the current object
double r0 =1.0
double rc =1.0
 radius of the calculation sphere
int status = RAYBASE_STATUS_NONE
bool suppress_phase_progress =false
 suppress phase change in next(), needed for short pulse consideration
RayBasetray =0
 transmitted ray (used by the raytracer, for internal use only)

Detailed Description

Abstract base class for all rays used for the raytracing process. This abstract base class for all rays is the parent class, from which all ray classes are derived.

Definition at line 16 of file raybase.h.

Member Function Documentation

◆ getE()

virtual maths::Vector< std::complex< double > > GOAT::raytracing::RayBase::getE ( )
pure virtual

gives back electric field strength

Implemented in GOAT::raytracing::IRay, and GOAT::raytracing::tubedRay.

◆ getk()

virtual maths::Vector< double > GOAT::raytracing::RayBase::getk ( )
pure virtual

gives back direction Vector

Implemented in GOAT::raytracing::IRay, and GOAT::raytracing::tubedRay.

◆ getP()

virtual maths::Vector< double > GOAT::raytracing::RayBase::getP ( )
pure virtual

gives back position

Implemented in GOAT::raytracing::IRay, and GOAT::raytracing::tubedRay.

◆ isInObject()

virtual bool GOAT::raytracing::RayBase::isInObject ( )
pure virtual

true if ray is in an object otherwise false

Implemented in GOAT::raytracing::IRay, and GOAT::raytracing::tubedRay.

◆ next()

virtual bool GOAT::raytracing::RayBase::next ( )
pure virtual

make the next step (has to include phase progress)

Implemented in GOAT::raytracing::IRay, and GOAT::raytracing::tubedRay.

◆ objectIndex()

virtual int GOAT::raytracing::RayBase::objectIndex ( )
pure virtual

index of the current object or -1

Implemented in GOAT::raytracing::IRay, and GOAT::raytracing::tubedRay.

◆ reflectRay()

virtual void GOAT::raytracing::RayBase::reflectRay ( RayBase *& tray,
maths::Vector< double > n,
std::complex< double > n1,
std::complex< double > n2 )
pure virtual

Member Data Documentation

◆ inObject

bool GOAT::raytracing::RayBase::inObject =false

is in an object

Definition at line 26 of file raybase.h.

◆ iR

int GOAT::raytracing::RayBase::iR =0

number of reflections already done

Definition at line 33 of file raybase.h.

◆ k0

double GOAT::raytracing::RayBase::k0 =2.0*M_PI

wave number

Definition at line 31 of file raybase.h.

◆ n

std::complex<double> GOAT::raytracing::RayBase::n

Definition at line 30 of file raybase.h.

◆ n0

std::complex<double> GOAT::raytracing::RayBase::n0

current refractive index and refractive index of the host material

Definition at line 30 of file raybase.h.

◆ numObj

int GOAT::raytracing::RayBase::numObj =0

number of objects

Definition at line 28 of file raybase.h.

◆ Obj

std::vector<ObjectShape*> GOAT::raytracing::RayBase::Obj

list of all objects

Definition at line 27 of file raybase.h.

◆ objIndex

int GOAT::raytracing::RayBase::objIndex =0

index of the current object

Definition at line 29 of file raybase.h.

◆ r0

double GOAT::raytracing::RayBase::r0 =1.0

Definition at line 32 of file raybase.h.

◆ rc

double GOAT::raytracing::RayBase::rc =1.0

radius of the calculation sphere

Definition at line 32 of file raybase.h.

◆ status

int GOAT::raytracing::RayBase::status = RAYBASE_STATUS_NONE

Definition at line 35 of file raybase.h.

◆ suppress_phase_progress

bool GOAT::raytracing::RayBase::suppress_phase_progress =false

suppress phase change in next(), needed for short pulse consideration

Definition at line 34 of file raybase.h.

◆ tray

RayBase* GOAT::raytracing::RayBase::tray =0

transmitted ray (used by the raytracer, for internal use only)

Definition at line 25 of file raybase.h.


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