GOAT (Geometrical optics application tool) 0.1
Loading...
Searching...
No Matches
raytrace_field_usp.h
Go to the documentation of this file.
1#pragma once
2#include "raytrace_inel.h"
3#include "raytrace_field.h"
4#include "gridentry.h"
5#include <vector>
6
7
8namespace GOAT
9{
10 namespace raytracing
11 {
12
19 public Raytrace {
20 public:
24 void traceOneRay(RayBase* ray, int& Reflexions, int& recur);
26 void clean();
27 void clear();
28 void init();
29 void trace();
33
34 void addBoxDetector(Box* box) { BoxDetector.push_back(box); }
35 void addBoxDetectorList(std::vector<Box*> BoxDetector);
37 std::vector<Box*> BoxDetector;
38 std::vector<SuperArray <std::vector<gridEntry> > > SA;
41 int iR = 0;
45 };
46 }
47}
Template class for threedimensional vectors.
Definition vector.h:57
class which represents a box (cuboid). It is derived by class ObjectShape This class is mainly used f...
Definition box.h:18
Abstract base class for all rays used for the raytracing process. This abstract base class for all ra...
Definition raybase.h:16
INDEX_TYPE n
Number of cells in one direction.
int indexCurrentDetector
index of the current box detector (for internal use only)
gridEntry stack
here, the information from the light source until the region of interest (=box) is reached
void trace()
make the raytracing
int iR
Number of reflections to consider.
void traceOneRay(RayBase *ray, int &Reflexions, int &recur)
traces one ray
void clean()
removes all content from SuperArray grid (SA)
std::vector< SuperArray< std::vector< gridEntry > > > SA
Here, the information for the steps is stored (needed for Fourier transform in pulsecalculation_field...
int findBoxDetectorIntersection(maths::Vector< double > P, maths::Vector< double > k, maths::Vector< double > &pStart, maths::Vector< double > &pStop)
searches for the intersection point with the next box detector
void init()
Initialises the SuperArray grid.
void storeStack(maths::Vector< double > PStart, maths::Vector< double > PStop)
void clear()
Clears the SuperArray grid (SA)
Raytrace_Field_usp(const Scene &S, INDEX_TYPE n)
void addBoxDetectorList(std::vector< Box * > BoxDetector)
add a list of box detectors
void traceLeaveObject()
has to be added since this class is a child of Raytrace (makes nothing)
void addBoxDetector(Box *box)
add one box detector
void traceEnterObject()
has to be added since this class is a child of Raytrace (makes nothing)
std::vector< Box * > BoxDetector
list of the box detectors
void storeData(maths::Vector< double > PStart, maths::Vector< double > Pen, maths::Vector< std::complex< double > > EStart)
maths::Vector< double > PStart
Definition raytrace.h:101
Scene S
Description of the scene.
Definition raytrace.h:116
RayBase * ray
current ray
Definition raytrace.h:126
maths::Vector< double > PStop
Start and end point of the last step.
Definition raytrace.h:101
maths::Vector< std::complex< double > > EStart
Definition raytrace.h:102
Class defining a scene with lightsources and objects. This is a container used to inform the Raytrace...
Definition raytrace.h:28
Raytracer used for ultrashort pulse calculation with raytracing only.
Definition asphericLens.h:6
long long int INDEX_TYPE
Definition superarray.h:16
This class is used for the iray class. This class is intended for internal use only....
Definition fresnel.h:7
Structure which holds all steps from the light source to the grid point In this structure every step ...
Definition gridentry.h:37