|
GOAT (Geometrical optics application tool) 0.1
|
class derived from LightSrc. It represents a plane wave described by the electric field \( \vec{E}(\vec{P})=\vec{E}_0 \cdot e^{i\vec{k}\cdot\Delta\vec{P}} \) More...
#include <lightsrc.h>
Public Member Functions | |
| double | area () |
| area A of the light source, \( A=d^2\) | |
| 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 | |
| LightSrcPlane (const LightSrcPlane &) | |
| copy Constructor | |
| LightSrcPlane (maths::Vector< double > Pos, int N, double wvl, double D=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) | |
| constructor with the following parameters : Pos: position of the light source, k : main direction of the light source, N : number of rays per direction(total number of all rays is N* N) | |
| LightSrcPlane (void) | |
| int | next (GOAT::raytracing::RayBase *ray) |
| Destructor, not needed. | |
| int | next (IRay &S) |
| gives the next ray for the following calculations | |
| int | next (Ray_pow &S) |
| gives the next ray for the following calculations | |
| int | next (tubedRay &S) |
| gives the next ray for the following calculations | |
| ~LightSrcPlane (void) | |
| 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 () |
| ObjectShape * | getObject (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) | |
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 | |
class derived from LightSrc. It represents a plane wave described by the electric field \( \vec{E}(\vec{P})=\vec{E}_0 \cdot e^{i\vec{k}\cdot\Delta\vec{P}} \)
Definition at line 196 of file lightsrc.h.
| GOAT::raytracing::LightSrcPlane::LightSrcPlane | ( | void | ) |
| GOAT::raytracing::LightSrcPlane::LightSrcPlane | ( | maths::Vector< double > | Pos, |
| int | N, | ||
| double | wvl, | ||
| double | D = 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 ) |
constructor with the following parameters : Pos: position of the light source, k : main direction of the light source, N : number of rays per direction(total number of all rays is N* N)
Main constructor
| Pos | Center of the start area |
| N | Number of rays (per direction, total number of rays:N*N) |
| wvl | Wavelength |
| D | Edge length of the quadratic start area (=size of the light source) |
| Pol | direction of the polarisation |
| GOAT::raytracing::LightSrcPlane::LightSrcPlane | ( | const LightSrcPlane & | ) |
copy Constructor
|
inline |
Definition at line 210 of file lightsrc.h.
|
inlinevirtual |
area A of the light source, \( A=d^2\)
Reimplemented from GOAT::raytracing::LightSrc.
Reimplemented in GOAT::raytracing::LightSrcRingGauss_mc.
Definition at line 217 of file lightsrc.h.
|
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 216 of file lightsrc.h.
|
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 215 of file lightsrc.h.
|
virtual |
Destructor, not needed.
gives the next ray for the following calculations
Implements GOAT::raytracing::LightSrc.
|
virtual |
gives the next ray for the following calculations
Implements GOAT::raytracing::LightSrc.
Reimplemented in GOAT::raytracing::LightSrcPlane_mc, GOAT::raytracing::LightSrcRing_mc, and GOAT::raytracing::LightSrcRingGauss_mc.
|
virtual |
gives the next ray for the following calculations
Implements GOAT::raytracing::LightSrc.
Reimplemented in GOAT::raytracing::LightSrcPlane_mc, GOAT::raytracing::LightSrcRing_mc, and GOAT::raytracing::LightSrcRingGauss_mc.
|
virtual |
gives the next ray for the following calculations
Implements GOAT::raytracing::LightSrc.
Reimplemented in GOAT::raytracing::LightSrcPlane_mc, GOAT::raytracing::LightSrcRing_mc, and GOAT::raytracing::LightSrcRingGauss_mc.