GOAT (Geometrical optics application tool) 0.1
Loading...
Searching...
No Matches
ray_pow.h
Go to the documentation of this file.
1#pragma once
2#include "iray.h"
3namespace GOAT
4{
5 namespace raytracing
6 {
10 class Ray_pow :
11 public IRay
12 {
13 public:
28 Ray_pow(double pow, const maths::Vector<double>& p,
29 const maths::Vector<std::complex<double> >& Pol, const maths::Vector<double>& K,
30 std::complex<double> n0, double r0, double k0,
31 const int numObjs, std::vector<ObjectShape*> Einschluss);
35 Ray_pow(const Ray_pow& r) : IRay(r)
36 {
37 this->Pow = r.Pow;
38 }
39
45 Ray_pow reflect(maths::Vector<double> n, std::complex<double> n1, std::complex<double> n2);
54 void reflectRay(RayBase*& tray, maths::Vector<double> n, std::complex<double> n1, std::complex<double> n2);
63 void refract(maths::Matrix<std::complex<double> > FT, maths::Vector<double> N, std::complex<double> n1, std::complex<double> n2);
64 ~Ray_pow(void);
65 double Pow;
66 friend std::ostream& operator << (std::ostream& os, Ray_pow S);
67 };
68 }
69}
70
This class represents a threedimensional (numeric) Matrix as a template.
Definition matrix.h:23
Template class for threedimensional vectors.
Definition vector.h:57
void refract(maths::Matrix< std::complex< double > > FT, maths::Vector< double > N, std::complex< double > n1, std::complex< double > n2)
double Pow
Power held by the ray in Watts.
Definition ray_pow.h:65
friend std::ostream & operator<<(std::ostream &os, Ray_pow S)
output operator
Ray_pow reflect(maths::Vector< double > n, std::complex< double > n1, std::complex< double > n2)
Ray_pow(double pow, const maths::Vector< double > &p, const maths::Vector< std::complex< double > > &Pol, const maths::Vector< double > &K, std::complex< double > n0, double r0, double k0, const int numObjs, std::vector< ObjectShape * > Einschluss)
void reflectRay(RayBase *&tray, maths::Vector< double > n, std::complex< double > n1, std::complex< double > n2)
Ray_pow(const Ray_pow &r)
Copy constructor.
Definition ray_pow.h:35
Abstract base class for all rays used for the raytracing process. This abstract base class for all ra...
Definition raybase.h:16
std::complex< double > n0
current refractive index and refractive index of the host material
Definition raybase.h:30
std::complex< double > n
Definition raybase.h:30
RayBase * tray
transmitted ray (used by the raytracer, for internal use only)
Definition raybase.h:25
double k0
wave number
Definition raybase.h:31
Raytracer used for ultrashort pulse calculation with raytracing only.
Definition asphericLens.h:6
This class is used for the iray class. This class is intended for internal use only....
Definition fresnel.h:7