23 std::complex<double>
n,
This class represents a threedimensional (numeric) Matrix as a template.
Template class for threedimensional vectors.
bool next(const maths::Vector< double > &Ps, const maths::Vector< double > &K, maths::Vector< double > &pout)
searches for the next (nearest) intersection of a ray with the object, p: current position of the ray...
Cylinder(ObjectShape &os)
Cylinder(const maths::Vector< double > &P, double r, double h, std::complex< double > n, double r0=1.0, const maths::Matrix< std::complex< double > > alpha=maths::CUNITY, const maths::Vector< double > &Ex=maths::ex, const maths::Vector< double > &Ey=maths::ey, const maths::Vector< double > &Ez=maths::ez)
maths::Vector< double > calcCoM()
Calculates the center of mass, which is in the case of an ellipsoid simply its center,...
maths::Vector< double > norm(const maths::Vector< double > &p)
surface normal at the point P
void scale(double sf)
Set the scaling factor (the half axis will be multiplied by this factor)
void binRead(std::ifstream &is)
binary reading from file
maths::Matrix< double > computeInertia()
Calculates the inertia matrix of the ellipsoid.
Cylinder & operator=(Cylinder &f)
void setr0(double r0)
defines the radius of the calculation sphere
void binWrite(std::ofstream &os)
binary writing to file
void setPos(maths::Vector< double > r)
sets reference point P
double volume()
Calculates the volume of the ellipsoid.
void initQuad()
Sets the circumscribing cuboid (for use in inelastic calculations)
void setPos(double x, double y, double z)
sets reference point P
void setHeight(double h)
set the height of the cylinder
bool isInside(const maths::Vector< double > &p)
checks if point P is inside the object
double sf
scaling factor, it is used to scale the shape of the object
maths::Matrix< std::complex< double > > alpha
polarisability matrix
maths::Vector< double > P
position of the object
double r0
radius of the calculation sphere
std::complex< double > n
refractive index of the object
const Matrix< std::complex< double > > CUNITY
Unity matrix (complex-valued)
Raytracer used for ultrashort pulse calculation with raytracing only.
This class is used for the iray class. This class is intended for internal use only....