|
constexpr | Vec () |
| Construct vector with both elements set to 0.
|
|
constexpr | Vec (T a) |
| Construct a vector with both elements set to a .
|
|
constexpr | Vec (T x, T y) |
| Construct a vector with elements (x, y) .
|
|
constexpr | Vec (const T v[2]) |
| Construct a vector with elements copied from the 2-element array v .
|
|
Vec< T, 2 > | add (T dx, T dy) const |
| Addition. Convenience function with separate args for x and y .
|
|
Vec< T, 2 > | sub (T dx, T dy) const |
| Subtraction. Convenience function with separate args for x and y .
|
|
Vec< T, 2 > | scale (T sx, T sy) const |
| Scalar multiplication. Convenience function with separate args for x and y .
|
|
T | dot (T x1, T y1) const |
| Dot product with the vector (x1, y1) .
|
|
Vec< T, 2 > | reflected_x () const |
|
Vec< T, 2 > | reflected_y () const |
|
bool | is_finite_real () const |
|
Vec< T, 2 > | left_perpendicular () const |
|
Vec< T, 2 > | right_perpendicular () const |
|
Vec< T, 2 > | rotate (T radians) const |
|
Vec< T, 2 > | rotate (Vec< T, 2 > center, T radians) const |
|
Vec< T, 2 > | to_polar () const |
|
Vec< T, 2 > | from_polar () const |
|
T | get_angle () const |
|
const T & | operator[] (index_t idx) const |
| Vector element access. More...
|
|
T & | operator[] (index_t idx) |
| Vector element access. More...
|
|
| operator Vec< U, N > () const |
| Element typecast. More...
|
|
bool | operator== (const self_t &vv) const |
| Equality test. More...
|
|
bool | operator!= (const self_t &vv) const |
| Inequality test. More...
|
|
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 &v) const |
| Element-wise subtraction.
|
|
self_t | operator- () const |
| Negation. More...
|
|
self_t & | operator-= (const self_t &vv) |
| Subtraction and assignment.
|
|
self_t & | operator*= (T s) |
| Scalar multiplication and assignment.
|
|
self_t & | operator*= (const self_t &vv) |
| Element-wise multiplication and assignment.
|
|
self_t & | operator/= (T s) |
| Scalar division and assignment.
|
|
self_t | add (const self_t &v) const |
| Vector addition. More...
|
|
self_t | sub (const self_t &v) const |
| Vector subtraction. More...
|
|
self_t | scale (const self_t &v) const |
| Element-wise multiplication. More...
|
|
self_t | scale (T a) const |
| Scalar multiple. More...
|
|
self_t | unit () const |
| Vector normalization. More...
|
|
T | dot (const self_t &v) const |
| Dot product. More...
|
|
T | mag () const |
| Euclidean norm (magnitude). More...
|
|
T | mag2 () const |
| Squared magnitude. More...
|
|
T | dist (const self_t &pt) const |
| Distance between points. More...
|
|
T | dist2 (const self_t &pt) const |
| Distance squared to a point. More...
|
|
self_t | reflect_about (self_t normal) const |
| Reflection about a normal. More...
|
|
self_t | bounce_on (const self_t &normal) const |
| Elastic collision. More...
|
|
self_t | project_on (const self_t &axis) const |
| Orthogonal projection to an axis. More...
|
|
T | fraction_on (const self_t &axis) const |
| Return the component of this that projects to axis , as a fraction of axis's length. More...
|
|
self_t | with_length (T mag) const |
| Compute a vector with the direction of this and a new magnitude mag . More...
|
|
self_t | mix (const self_t &v, T mix) const |
| Linear interpolation. More...
|
|
T | angle_to (const self_t &v) const |
| Angle between vectors. More...
|
|
self_t | abs () const |
| Element-wise absolute value. More...
|
|
self_t | floor () const |
| Element-wise floor function. More...
|
|
self_t | ceil () const |
| Element-wise ceiling function. More...
|
|
self_t | min (const self_t &v) const |
| Element-wise minimum of two Vec s. More...
|
|
T | min () const |
| Minimum element. More...
|
|
self_t | max (const self_t &v) const |
| Element-wise maximum of two Vec s. More...
|
|
T | max () const |
| Maximum element. More...
|
|
self_t | clamp (const self_t &lo, const self_t &hi) const |
| Element-wise clamp. More...
|
|
self_t | round () const |
| Round each element to the nearest integer.
|
|
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.
|
|
PointType< T, M >::point_t | resized () const |
| Resized copy of a vector. More...
|
|
bool | is_zero () const |
| Return true if all elements are zero.
|
|
index_t | size () const |
| The number of elements in this vector. Always equal to N .
|
|
const T & | get (index_t idx) const |
|
T & | get (index_t idx) |
|
const T * | begin () const |
|
T * | begin () |
|
const T * | end () const |
|
T * | end () |
|
template<typename T>
class geom::Vec< T, 2 >
2D specialization of vector class.
Vec<T,2>
's elements may be accessed under these equivalent naming schemes:
v.{x,y} // conventional Euclidean coordinate names
v.{s,t} // conventional parameterization coordinate names
v.{row,col} // matrix coordinate names
with the latter scheme intended for use as matrix coordinates. x
, s
, and row
all refer to the same element.
Take special note that, in accordance with convention, row
refers to the vertical position of a matrix element, despite being the first coordinate. This means that row
, a vertical coordinate, aliases x
, a traditionally horizontal coordinate. For this reason it is inadviseable to interchange usage of the "matrix coordinate" and "Euclidean" naming schemes.