PyPO User Manual
RTRefls< T > Class Template Reference

#include <RTRefls.h>

Static Public Member Functions

static T common1 (T t, T xr, T yr, T dxr, T dyr, T a, T b)
 
static T common2 (T t, T xr, T yr, T dxr, T dyr, T a, T b)
 
static T gp (T t, T xr, T yr, T zr, T dxr, T dyr, T dzr, T a, T b, T c)
 
static T gh (T t, T xr, T yr, T zr, T dxr, T dyr, T dzr, T a, T b, T c)
 
static T ge (T t, T xr, T yr, T zr, T dxr, T dyr, T dzr, T a, T b, T c)
 
static T gpl (T t, T xr, T yr, T zr, T dxr, T dyr, T dzr, T a, T b, T c)
 
static std::array< T, 3 > np (T xr, T yr, T zr, int flip, T a, T b, T c)
 
static std::array< T, 3 > nh (T xr, T yr, T zr, int flip, T a, T b, T c)
 
static std::array< T, 3 > ne (T xr, T yr, T zr, int flip, T a, T b, T c)
 
static std::array< T, 3 > npl (T xr, T yr, T zr, int flip, T a, T b, T c)
 

Public Attributes

Utils< T > ut
 

Detailed Description

template<class T>
class RTRefls< T >

Simple representation of reflectors and implementations for the Newton-Rhapson method.

Member Function Documentation

◆ common1()

template<class T >
T RTRefls< T >::common1 ( t,
xr,
yr,
dxr,
dyr,
a,
b 
)
inlinestatic

Common factor 1 for all reflectors.

Calculate common factor 1. These calculations are done separately as these factors are common to all reflectors.

Parameters
tScaling factor of ray, double/float.
xrCurrent x co-ordinate of ray, double/float.
yrCurrent y co-ordinate of ray, double/float.
dxrComponent of ray direction along x-axis, double/float.
dyrComponent of ray direction along y-axis, double/float.
aScale factor along x-axis, double/float.
bScale factor along y-axis, double/float.
Returns
z Co-ordinate along z-axis on reflector, corresponding to ray co-ordinate, direction and scaling. Double/float.

◆ common2()

template<class T >
T RTRefls< T >::common2 ( t,
xr,
yr,
dxr,
dyr,
a,
b 
)
inlinestatic

Common factor 2 for all reflectors.

Calculate common factor 2. These calculations are done separately as these factors are common to all reflectors.

Parameters
tScaling factor of ray, double/float.
xrCurrent x co-ordinate of ray, double/float.
yrCurrent y co-ordinate of ray, double/float.
dxrComponent of ray direction along x-axis.
dyrComponent of ray direction along y-axis.
aScale factor along x-axis, double/float.
bScale factor along y-axis, double/float.
Returns
z Co-ordinate along z-axis on reflector, corresponding to ray co-ordinate, direction and scaling. Double/float.

◆ ge()

template<class T >
T RTRefls< T >::ge ( t,
xr,
yr,
zr,
dxr,
dyr,
dzr,
a,
b,
c 
)
inlinestatic

Grid ellipsoid.

Calculate difference between ellipsoid z co-ordinate and ray z co-ordinate corresponding to x and y ray co-ordinates.

Parameters
tScaling factor of ray, double/float.
xrCurrent x co-ordinate of ray, double/float.
yrCurrent y co-ordinate of ray, double/float.
zrCurrent z co-ordinate of ray, double/float.
dxrComponent of ray direction along x-axis.
dyrComponent of ray direction along y-axis.
dzrComponent of ray direction along z-axis.
aScale factor along x-axis, double/float.
bScale factor along y-axis, double/float.
cScale factor along z-axis, double/float (hyperboloid/ellipsoid only).
Returns
dz Difference between reflector and ray co-ordinate along z-axis.

◆ gh()

template<class T >
T RTRefls< T >::gh ( t,
xr,
yr,
zr,
dxr,
dyr,
dzr,
a,
b,
c 
)
inlinestatic

Grid hyperboloid.

Calculate difference between hyperboloid z co-ordinate and ray z co-ordinate corresponding to x and y ray co-ordinates.

Parameters
tScaling factor of ray, double/float.
xrCurrent x co-ordinate of ray, double/float.
yrCurrent y co-ordinate of ray, double/float.
zrCurrent z co-ordinate of ray, double/float.
dxrComponent of ray direction along x-axis.
dyrComponent of ray direction along y-axis.
dzrComponent of ray direction along z-axis.
aScale factor along x-axis, double/float.
bScale factor along y-axis, double/float.
cScale factor along z-axis, double/float (hyperboloid/ellipsoid only).
Returns
dz Difference between reflector and ray co-ordinate along z-axis.

◆ gp()

template<class T >
T RTRefls< T >::gp ( t,
xr,
yr,
zr,
dxr,
dyr,
dzr,
a,
b,
c 
)
inlinestatic

Grid paraboloid.

Calculate difference between paraboloid z co-ordinate and ray z co-ordinate corresponding to x and y ray co-ordinates.

Parameters
tScaling factor of ray, double/float.
xrCurrent x co-ordinate of ray, double/float.
yrCurrent y co-ordinate of ray, double/float.
zrCurrent z co-ordinate of ray, double/float.
dxrComponent of ray direction along x-axis.
dyrComponent of ray direction along y-axis.
dzrComponent of ray direction along z-axis.
aScale factor along x-axis, double/float.
bScale factor along y-axis, double/float.
cScale factor along z-axis, double/float (hyperboloid/ellipsoid only).
Returns
dz Difference between reflector and ray co-ordinate along z-axis.

◆ gpl()

template<class T >
T RTRefls< T >::gpl ( t,
xr,
yr,
zr,
dxr,
dyr,
dzr,
a,
b,
c 
)
inlinestatic

Grid plane.

Calculate difference between plane z co-ordinate and ray z co-ordinate corresponding to x and y ray co-ordinates.

Parameters
tScaling factor of ray, double/float.
xrCurrent x co-ordinate of ray, double/float.
yrCurrent y co-ordinate of ray, double/float.
zrCurrent z co-ordinate of ray, double/float.
dxrComponent of ray direction along x-axis.
dyrComponent of ray direction along y-axis.
dzrComponent of ray direction along z-axis.
aScale factor along x-axis, double/float.
bScale factor along y-axis, double/float.
cScale factor along z-axis, double/float (hyperboloid/ellipsoid only).
Returns
dz Difference between reflector and ray co-ordinate along z-axis.

◆ ne()

template<class T >
std::array< T, 3 > RTRefls< T >::ne ( xr,
yr,
zr,
int  flip,
a,
b,
c 
)
inlinestatic

Ellipsoid normal vectors.

Calculate normal vectors to point on ellipsoid.

Parameters
xrCurrent x co-ordinate of ray, double/float.
yrCurrent y co-ordinate of ray, double/float.
zrCurrent z co-ordinate of ray, double/float.
flipDirection of normal vectors.
aScale factor along x-axis, double/float.
bScale factor along y-axis, double/float.
cScale factor along z-axis, double/float (hyperboloid/ellipsoid only).
Returns
out Array of 3 double/float, containing components of normal vector.

◆ nh()

template<class T >
std::array< T, 3 > RTRefls< T >::nh ( xr,
yr,
zr,
int  flip,
a,
b,
c 
)
inlinestatic

Hyperboloid normal vectors.

Calculate normal vectors to point on hyperboloid.

Parameters
xrCurrent x co-ordinate of ray, double/float.
yrCurrent y co-ordinate of ray, double/float.
zrCurrent z co-ordinate of ray, double/float.
flipDirection of normal vectors.
aScale factor along x-axis, double/float.
bScale factor along y-axis, double/float.
cScale factor along z-axis, double/float (hyperboloid/ellipsoid only).
Returns
out Array of 3 double/float, containing components of normal vector.

◆ np()

template<class T >
std::array< T, 3 > RTRefls< T >::np ( xr,
yr,
zr,
int  flip,
a,
b,
c 
)
inlinestatic

Paraboloid normal vectors.

Calculate normal vectors to point on paraboloid.

Parameters
xrCurrent x co-ordinate of ray, double/float.
yrCurrent y co-ordinate of ray, double/float.
zrCurrent z co-ordinate of ray, double/float.
flipDirection of normal vectors.
aScale factor along x-axis, double/float.
bScale factor along y-axis, double/float.
cScale factor along z-axis, double/float (hyperboloid/ellipsoid only).
Returns
out Array of 3 double/float, containing components of normal vector.

◆ npl()

template<class T >
std::array< T, 3 > RTRefls< T >::npl ( xr,
yr,
zr,
int  flip,
a,
b,
c 
)
inlinestatic

Plane normal vectors.

Calculate normal vectors to point on plane. Seems sort of redundant, but implement this way for consistency.

Parameters
xrCurrent x co-ordinate of ray, double/float.
yrCurrent y co-ordinate of ray, double/float.
zrCurrent z co-ordinate of ray, double/float.
flipDirection of normal vectors.
aScale factor along x-axis, double/float.
bScale factor along y-axis, double/float.
cScale factor along z-axis, double/float (hyperboloid/ellipsoid only).
Returns
out Array of 3 double/float, containing components of normal vector.

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