30#ifndef LSST_SPHGEOM_UNITVECTOR3D_H_
31#define LSST_SPHGEOM_UNITVECTOR3D_H_
104 static UnitVector3d Y() {
105 UnitVector3d u; u._v = Vector3d(0.0, 1.0, 0.0);
return u;
108 static UnitVector3d Z() {
109 UnitVector3d u; u._v = Vector3d(0.0, 0.0, 1.0);
return u;
123 UnitVector3d(
double x,
double y,
double z) : _v(x, y, z) {
143 bool operator==(
Vector3d const & v)
const {
return _v == v; }
144 bool operator!=(Vector3d
const & v)
const {
return _v != v; }
152 double x()
const {
return _v.x(); }
154 double y()
const {
return _v.y(); }
156 double z()
const {
return _v.z(); }
169 return (v + *
this).
cross(v - *
this);
209std::ostream & operator<<(std::ostream &, UnitVector3d
const &);
This file contains a class representing spherical coordinates.
This file declares a class for representing vectors in ℝ³.
Definition NormalizedAngle.h:50
Definition UnitVector3d.h:62
double dot(Vector3d const &v) const
dot returns the inner product of this unit vector and v.
Definition UnitVector3d.h:159
UnitVector3d operator-() const
The unary minus operator negates every component of this unit vector.
Definition UnitVector3d.h:173
Vector3d robustCross(UnitVector3d const &v) const
Definition UnitVector3d.h:168
Vector3d cwiseProduct(Vector3d const &v) const
Definition UnitVector3d.h:194
Vector3d operator+(Vector3d const &v) const
The addition operator returns the sum of this unit vector and v.
Definition UnitVector3d.h:186
static UnitVector3d fromNormalized(double x, double y, double z)
Definition UnitVector3d.h:96
static UnitVector3d orthogonalTo(NormalizedAngle const &a)
Definition UnitVector3d.h:83
UnitVector3d(Vector3d const &v)
Definition UnitVector3d.h:119
static UnitVector3d fromNormalized(Vector3d const &v)
Definition UnitVector3d.h:89
UnitVector3d rotatedAround(UnitVector3d const &k, Angle a) const
Definition UnitVector3d.h:200
Vector3d operator*(double s) const
Definition UnitVector3d.h:179
Vector3d operator/(double s) const
Definition UnitVector3d.h:183
UnitVector3d()
The default constructor creates a unit vector equal to (1, 0, 0).
Definition UnitVector3d.h:113
Vector3d operator-(Vector3d const &v) const
Definition UnitVector3d.h:190
static UnitVector3d orthogonalTo(Vector3d const &v)
Definition UnitVector3d.cc:41
Vector3d cross(Vector3d const &v) const
cross returns the cross product of this unit vector and v.
Definition UnitVector3d.h:162
UnitVector3d(LonLat const &p)
Definition UnitVector3d.h:130
double const * getData() const
getData returns a pointer to the 3 components of this unit vector.
Definition UnitVector3d.h:147
double operator()(int i) const
The function call operator returns the i-th component of this vector.
Definition UnitVector3d.h:150
static UnitVector3d northFrom(Vector3d const &v)
Definition UnitVector3d.cc:58
Vector3d is a vector in ℝ³ with components stored in double precision.
Definition Vector3d.h:51
Vector3d cwiseProduct(Vector3d const &v) const
cwiseProduct returns the component-wise product of this vector and v.
Definition Vector3d.h:157
Vector3d rotatedAround(UnitVector3d const &k, Angle a) const
Definition Vector3d.cc:132
double dot(Vector3d const &v) const
dot returns the inner product of this vector and v.
Definition Vector3d.h:80
double const * getData() const
data returns a pointer to the 3 components of this vector.
Definition Vector3d.h:68
double normalize()
Definition Vector3d.cc:48
Vector3d cross(Vector3d const &v) const
cross returns the cross product of this vector and v.
Definition Vector3d.h:108