#include <AH/Math/Vector.hpp>
Type for 3D vectors of floating point numbers.
Vec3fs can be added, subtracted, multiplied (dot product) and normalized. It also has an implementation of the following operators: "+", "+=", "-", "-=", "*" (vector-vector); "*", "*=", "/", "/=" (vector-scalar); "==", "!=" (equality); "*" (scalar-vector); "<<" (printing).
Definition at line 143 of file Vector.hpp.
Public Member Functions | |
Vec3f ()=default | |
Create a vector that is initialized to the zero vector (0,0,0). More... | |
Vec3f (float x, float y, float z) | |
Create a vector with the given x, y and z coordinates. More... | |
Vec3f (const Vec3f &)=default | |
Vec3f (const volatile Vec3f &other) | |
void | operator= (const Vec3f &other) volatile |
Vec3f & | operator+= (Vec3f rhs) |
Addition. More... | |
Vec3f | operator+ (Vec3f rhs) const |
Addition. More... | |
Vec3f | operator- () const |
Negation. More... | |
Vec3f & | operator-= (Vec3f rhs) |
Subtraction. More... | |
Vec3f | operator- (Vec3f rhs) const |
Subtraction. More... | |
Vec3f & | operator*= (float rhs) |
Scalar multiplication. More... | |
Vec3f | operator* (float rhs) const |
Scalar multiplication. More... | |
Vec3f & | operator/= (float rhs) |
Scalar division. More... | |
Vec3f | operator/ (float rhs) const |
Scalar division. More... | |
float | operator* (Vec3f rhs) const |
Inner product. More... | |
float | normSquared () const |
Norm squared. More... | |
float | norm () const |
Norm. More... | |
Vec3f & | normalize () |
Normalize this vector. More... | |
Vec3f | normalized () const |
Normalize a copy of this vector (doesn't change the original vector). More... | |
bool | operator== (Vec3f rhs) const |
Equality check. More... | |
bool | operator!= (Vec3f rhs) const |
Inequality check. More... | |
Public Attributes | |
float | x = 0.0 |
The x component of the vector. More... | |
float | y = 0.0 |
The y component of the vector. More... | |
float | z = 0.0 |
The z component of the vector. More... | |
Related Functions | |
(Note that these are not member functions.) | |
Print & | operator<< (Print &os, Vec3f v) |
Printing. More... | |
Vec3f | operator* (float lhs, Vec3f rhs) |
Scalar multiplication. More... | |
Print & | operator<< (Print &os, Vec3f v) |
Printing. More... | |
|
default |
Create a vector that is initialized to the zero vector (0,0,0).
|
inline |
Create a vector with the given x, y and z coordinates.
Definition at line 151 of file Vector.hpp.
Definition at line 153 of file Vector.hpp.
|
inline |
Definition at line 154 of file Vector.hpp.
Addition.
Definition at line 161 of file Vector.hpp.
Addition.
Definition at line 168 of file Vector.hpp.
|
inline |
Negation.
Definition at line 175 of file Vector.hpp.
Subtraction.
Definition at line 177 of file Vector.hpp.
Subtraction.
Definition at line 179 of file Vector.hpp.
|
inline |
Scalar multiplication.
Definition at line 186 of file Vector.hpp.
|
inline |
Scalar multiplication.
Definition at line 193 of file Vector.hpp.
|
inline |
Scalar division.
Definition at line 200 of file Vector.hpp.
|
inline |
Scalar division.
Definition at line 207 of file Vector.hpp.
|
inline |
Inner product.
Definition at line 214 of file Vector.hpp.
|
inline |
Norm squared.
Definition at line 219 of file Vector.hpp.
|
inline |
Norm.
Definition at line 222 of file Vector.hpp.
|
inline |
Normalize this vector.
Definition at line 228 of file Vector.hpp.
|
inline |
Normalize a copy of this vector (doesn't change the original vector).
Definition at line 230 of file Vector.hpp.
|
inline |
Equality check.
Definition at line 233 of file Vector.hpp.
|
inline |
Inequality check.
Definition at line 237 of file Vector.hpp.
|
related |
Printing.
Definition at line 38 of file Vector.cpp.
float x = 0.0 |
The x component of the vector.
Definition at line 144 of file Vector.hpp.
float y = 0.0 |
The y component of the vector.
Definition at line 145 of file Vector.hpp.
float z = 0.0 |
The z component of the vector.
Definition at line 146 of file Vector.hpp.