#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 140 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 148 of file Vector.hpp.
Definition at line 150 of file Vector.hpp.
|
inline |
Definition at line 151 of file Vector.hpp.
Addition.
Definition at line 158 of file Vector.hpp.
Addition.
Definition at line 165 of file Vector.hpp.
|
inline |
Negation.
Definition at line 172 of file Vector.hpp.
Subtraction.
Definition at line 174 of file Vector.hpp.
Subtraction.
Definition at line 176 of file Vector.hpp.
|
inline |
Scalar multiplication.
Definition at line 183 of file Vector.hpp.
|
inline |
Scalar multiplication.
Definition at line 190 of file Vector.hpp.
|
inline |
Scalar division.
Definition at line 197 of file Vector.hpp.
|
inline |
Scalar division.
Definition at line 204 of file Vector.hpp.
|
inline |
Inner product.
Definition at line 211 of file Vector.hpp.
|
inline |
Norm squared.
Definition at line 216 of file Vector.hpp.
|
inline |
|
inline |
Normalize this vector.
Definition at line 225 of file Vector.hpp.
|
inline |
Normalize a copy of this vector (doesn't change the original vector).
Definition at line 227 of file Vector.hpp.
|
inline |
Equality check.
Definition at line 230 of file Vector.hpp.
|
inline |
Inequality check.
Definition at line 234 of file Vector.hpp.
|
related |
Printing.
float x = 0.0 |
The x component of the vector.
Definition at line 141 of file Vector.hpp.
float y = 0.0 |
The y component of the vector.
Definition at line 142 of file Vector.hpp.
float z = 0.0 |
The z component of the vector.
Definition at line 143 of file Vector.hpp.