|
|
constexpr | Vec () |
| | Construct vector with all elements set to 0.
|
|
constexpr | Vec (const T v[4]) |
| | Construct a vector with elements copied from the 4-element array v.
|
|
constexpr | Vec (T a) |
| | Construct a vector with all elements set to a.
|
|
constexpr | Vec (T x, T y, T z, T w) |
| | Construct a vector with elements (x, y, z, w).
|
|
template<typename U> |
| constexpr | Vec (Vec< U, 2 > xy, T z, T w) |
|
template<typename U> |
| constexpr | Vec (Vec< U, 3 > xyz, T w) |
| | Construct a vector with (x, y, z) taken from the 3D vector xyz, and w as the final element.
|
| self_t | abs () const |
| | Element-wise absolute value.
|
| self_t | add (const self_t &v) const |
| | Vector addition.
|
| self_t | add (const self_t &v) const |
| | Vector addition.
|
| Vec< T, 4 > | add (T dx, T dy, T dz, T dw) const |
|
self_t | align (const self_t &from, const self_t &to) const |
| | Apply a rotation to this which aligns the unit vectors from with to.
|
|
self_t | align (const self_t &from, const self_t &to) const |
| | Apply a rotation to this which aligns the unit vectors from with to.
|
| T | angle_to (const self_t &v) const |
| | Angle between vectors.
|
| T | angle_to (const self_t &v) const |
| | Angle between vectors.
|
|
index_t | argmax () const |
| | Return the index of the coordinate with the largest absolute value.
|
|
index_t | argmin () const |
| | Return the index of the coordinate with the smallest absolute value.
|
| T * | begin () |
| const T * | begin () const |
| self_t | bounce_on (const self_t &normal) const |
| | Elastic collision.
|
| self_t | bounce_on (const self_t &normal) const |
| | Elastic collision.
|
| self_t | ceil () const |
| | Element-wise ceiling function.
|
| self_t | clamp (const self_t &lo, const self_t &hi) const |
| | Element-wise clamp.
|
| self_t | clamp (const self_t &lo, const self_t &hi) const |
| | Element-wise clamp.
|
| T | dist (const self_t &pt) const |
| | Distance between points.
|
| T | dist (const self_t &pt) const |
| | Distance between points.
|
| T | dist2 (const self_t &pt) const |
| | Distance squared to a point.
|
| T | dist2 (const self_t &pt) const |
| | Distance squared to a point.
|
| T | dot (const self_t &v) const |
| | Dot product.
|
| T | dot (const self_t &v) const |
| | Dot product.
|
| T | dot (T xx, T yy, T zz, T ww) const |
| T * | end () |
| const T * | end () const |
| self_t | floor () const |
| | Element-wise floor function.
|
| T | fraction_on (const self_t &axis) const |
| | Return the component of this that projects to axis, as a fraction of axis's length.
|
| T | fraction_on (const self_t &axis) const |
| | Return the component of this that projects to axis, as a fraction of axis's length.
|
| T & | get (index_t idx) |
| const T & | get (index_t idx) const |
|
bool | is_zero () const |
| | Return true if all elements are zero.
|
| T | mag () const |
| | Euclidean norm (magnitude).
|
| T | mag2 () const |
| | Squared magnitude.
|
| self_t | max (const self_t &v) const |
| | Element-wise maximum of two Vecs.
|
| self_t | max (const self_t &v) const |
| | Element-wise maximum of two Vecs.
|
| self_t | min (const self_t &v) const |
| | Element-wise minimum of two Vecs.
|
| self_t | min (const self_t &v) const |
| | Element-wise minimum of two Vecs.
|
| self_t | mix (const self_t &v, T mix) const |
| | Linear interpolation.
|
| self_t | mix (const self_t &v, T mix) const |
| | Linear interpolation.
|
| | operator Vec< U, N > () const |
| | Element typecast.
|
| bool | operator!= (const self_t &vv) const |
| | Inequality test.
|
| bool | operator!= (const self_t &vv) const |
| | Inequality test.
|
|
self_t & | operator*= (T s) |
| | Scalar multiplication and assignment.
|
|
self_t | operator+ (const self_t &v) const |
| | Element-wise addition.
|
|
self_t | operator+ (const self_t &v) const |
| | Element-wise addition.
|
|
self_t & | operator+= (const self_t &vv) |
| | Element-wise addition and assignment.
|
|
self_t & | operator+= (const self_t &vv) |
| | Element-wise addition and assignment.
|
|
self_t | operator- (const self_t &v) const |
| | Element-wise subtraction.
|
|
self_t | operator- (const self_t &v) const |
| | Element-wise subtraction.
|
|
self_t & | operator-= (const self_t &vv) |
| | Subtraction and assignment.
|
|
self_t & | operator-= (const self_t &vv) |
| | Subtraction and assignment.
|
|
self_t & | operator/= (T s) |
| | Scalar division and assignment.
|
| bool | operator== (const self_t &vv) const |
| | Equality test.
|
| bool | operator== (const self_t &vv) const |
| | Equality test.
|
| const T & | operator[] (index_t idx) const |
| | Vector element access.
|
|
T | product () const |
| | Multiply all elements together.
|
| self_t | project_on (const self_t &axis) const |
| | Orthogonal projection to an axis.
|
| self_t | project_on (const self_t &axis) const |
| | Orthogonal projection to an axis.
|
| self_t | reflect_about (self_t normal) const |
| | Reflection about a normal.
|
| self_t | reflect_about (self_t normal) const |
| | Reflection about a normal.
|
| PointType< T, M >::point_t | resized () const |
| | Resized copy of a vector.
|
|
self_t | round () const |
| | Round each element to the nearest integer.
|
| self_t | scale (const self_t &v) const |
| | Element-wise multiplication.
|
| self_t | scale (const self_t &v) const |
| | Element-wise multiplication.
|
| Vec< T, 4 > | scale (T a, T b, T c, T d) const |
|
index_t | size () const |
| | The number of elements in this vector. Always equal to N.
|
| self_t | sub (const self_t &v) const |
| | Vector subtraction.
|
| self_t | sub (const self_t &v) const |
| | Vector subtraction.
|
| Vec< T, 4 > | sub (T dx, T dy, T dz, T dw) const |
|
T | sum () const |
| | Sum the elements of the vector.
|
| self_t | unit () const |
| | Vector normalization.
|
| self_t | with_length (T mag) const |
| | Compute a vector with the direction of this and a new magnitude mag.
|
|
(Note that these are not member symbols.)
|
| geom::Vec< T, N > | abs (const geom::Vec< T, N > &v) |
| geom::Vec< T, N > | ceil (const geom::Vec< T, N > &v) |
| geom::Vec< T, N > | cos (const geom::Vec< T, N > &v) |
| geom::Vec< T, N > | exp (const geom::Vec< T, N > &v) |
| geom::Vec< T, N > | floor (const geom::Vec< T, N > &v) |
| geom::Vec< T, N > | log (const geom::Vec< T, N > &v) |
| geom::Vec< T, N > | max (const geom::Vec< T, N > &a, const geom::Vec< T, N > &b) |
| geom::Vec< T, N > | min (const geom::Vec< T, N > &a, const geom::Vec< T, N > &b) |
| const Vec< T, N > | operator* (const Vec< T, N > &a, const Vec< T, N > &b) |
| Vec< T, N > | operator* (const Vec< T, N > &v, U d) |
| Vec< T, N > | operator* (U d, const Vec< T, N > &v) |
| const Vec< T, N > | operator/ (const Vec< T, N > &a, const Vec< T, N > &b) |
| Vec< T, N > | operator/ (const Vec< T, N > &v, U d) |
| Vec< T, N > | operator/ (const Vec< T, N > &v, U d) |
| geom::Vec< T, N > | sin (const geom::Vec< T, N > &v) |
| geom::Vec< T, N > | sqrt (const geom::Vec< T, N > &v) |
| geom::Vec< T, N > | tan (const geom::Vec< T, N > &v) |
template<typename T>
class geom::Vec< T, 4 >
4D specialization of vector class.
Vec<T,4>'s elements may be accessed under these equivalent naming schemes:
v.{x,y,z,w} // conventional Euclidean coordinate names
v.{s,t,u,v} // conventional parameterization coordinate names
v.{r,g,b,a} // conventional color tuple coordinate names
with x, s, and r all referring to the same element.