4#ifndef HUMMINGBIRD_ORDINATE_H_
5#define HUMMINGBIRD_ORDINATE_H_
33 const arma::vec3 surface_normal);
Ordinate(const double azimuth, const double polar)
Construct a new Ordinate object.
const double polar_
Polar angle in radians.
const double azimuth_
Azimuthal angle in radians.
double polar() const
Getter for polar angle.
double x() const
Evaluate the x-direction cosine.
double azimuth() const
Getter for azimuthal angle.
double y() const
Evaluate the y-direction cosine.
arma::vec3 CartesianUnitVector() const
Returns the Ordinate as a Cartesian unit vector.
void CheckInput(const double azimuth, const double polar)
Check that input angles are within expected bounds.
static Ordinate Reflect(const Ordinate &ordinate, const arma::vec3 surface_normal)
Construct a new Ordinate object in the reflected direction given a starting direction and surface nor...
double z() const
Evaluate the z-direction cosine.