|
HDK
|
4D Vector class. More...
#include <UT_Vector4.h>
Public Types | |
| typedef T | value_type |
Public Member Functions | |
| constexpr SYS_FORCE_INLINE | UT_Vector4T ()=default |
| constexpr SYS_FORCE_INLINE | UT_Vector4T (const UT_Vector4T< T > &that)=default |
| constexpr SYS_FORCE_INLINE | UT_Vector4T (UT_Vector4T< T > &&that)=default |
| constexpr SYS_FORCE_INLINE | UT_Vector4T (const T vx, const T vy, const T vz, const T vw=1.0f) |
| constexpr SYS_FORCE_INLINE | UT_Vector4T (const fpreal32 v[]) noexcept |
| constexpr SYS_FORCE_INLINE | UT_Vector4T (const fpreal64 v[]) noexcept |
| constexpr SYS_FORCE_INLINE | UT_Vector4T (const int32 v[]) noexcept |
| constexpr SYS_FORCE_INLINE | UT_Vector4T (const int64 v[]) noexcept |
| SYS_FORCE_INLINE constexpr | UT_Vector4T (const UT_Vector2T< T > &v) noexcept |
| constexpr | UT_Vector4T (const UT_Vector3T< T > &v, T w=1.f) noexcept |
| template<typename S > | |
| constexpr SYS_FORCE_INLINE | UT_Vector4T (const UT_Vector4T< S > &v) noexcept |
| Our own type of any given value_type. More... | |
| SYS_FORCE_INLINE UT_Vector4T< T > & | operator= (const UT_Vector4T< T > &that)=default |
| SYS_FORCE_INLINE UT_Vector4T< T > & | operator= (UT_Vector4T< T > &&that)=default |
| template<typename S > | |
| SYS_FORCE_INLINE UT_Vector4T< T > & | operator= (const UT_Vector4T< S > &v) |
| constexpr SYS_FORCE_INLINE const T * | data () const noexcept |
| constexpr SYS_FORCE_INLINE T * | data () noexcept |
| constexpr SYS_FORCE_INLINE const T & | operator[] (exint i) const noexcept |
| constexpr SYS_FORCE_INLINE T & | operator[] (exint i) noexcept |
| constexpr SYS_FORCE_INLINE UT_Vector4T & | operator+= (const UT_Vector4T &a) noexcept |
| constexpr SYS_FORCE_INLINE UT_Vector4T & | operator-= (const UT_Vector4T &a) noexcept |
| constexpr SYS_FORCE_INLINE UT_Vector4T & | operator*= (const T &a) noexcept |
| constexpr SYS_FORCE_INLINE UT_Vector4T & | operator/= (const T &a) noexcept |
| constexpr SYS_FORCE_INLINE UT_Vector4T & | operator*= (const UT_Vector4T &a) noexcept |
| constexpr SYS_FORCE_INLINE void | negate () noexcept |
| constexpr SYS_FORCE_INLINE T | length2 () const noexcept |
| constexpr SYS_FORCE_INLINE T | length () const noexcept |
| constexpr SYS_FORCE_INLINE T | distance2 (const UT_Vector4T &b) const noexcept |
| constexpr SYS_FORCE_INLINE T | distance (const UT_Vector4T &b) const noexcept |
| SYS_FORCE_INLINE UT_StorageMathFloat_t< T > | normalize () noexcept |
| constexpr SYS_FORCE_INLINE bool | isZero () const noexcept |
| constexpr SYS_FORCE_INLINE UT_Vector4T & | operator= (const T a) noexcept |
| UT_Vector4T< T > & | operator= (const UT_Vector3T< T > &v) |
| int | equalZero3 (T tol=0.00001f) const |
| void | clampZero (T tol=0.00001f) |
| void | clampZero3 (T tol=0.00001f) |
| void | negate3 () |
| void | multiplyComponents (const UT_Vector4T< T > &v) |
| constexpr SYS_FORCE_INLINE bool | isFinite () const noexcept |
| constexpr SYS_FORCE_INLINE bool | equalZero (const T tolerance=SYS_FTOLERANCE) const noexcept |
| constexpr SYS_FORCE_INLINE bool | isEqual (const UT_Vector4T &b, const T tolerance=SYS_FTOLERANCE) const noexcept |
| constexpr SYS_FORCE_INLINE T | maxComponent () const noexcept |
| constexpr SYS_FORCE_INLINE T | minComponent () const noexcept |
| constexpr SYS_FORCE_INLINE T | avgComponent () const noexcept |
| int | isEqual (const UT_Vector3T< T > &vect, T tol=0.00001f) const |
| constexpr SYS_FORCE_INLINE T | dot (const UT_Vector4T &b) const noexcept |
| unsigned | hash () const |
| Compute a hash. More... | |
| void | assign (T xx=0.0f, T yy=0.0f, T zz=0.0f, T ww=1.0f) |
| Set the values of the vector components. More... | |
| void | assign (const T *v, int size=tuple_size) |
| Set the values of the vector components. More... | |
| void | save (std::ostream &os, int binary=0) const |
| bool | load (UT_IStream &is) |
| template<typename S > | |
| void | rowVecMult (const UT_Matrix4T< S > &m) |
| template<typename S > | |
| void | colVecMult (const UT_Matrix4T< S > &m) |
| template<typename S > | |
| void | rowVecMult3 (const UT_Matrix4T< S > &m) |
| template<typename S > | |
| UT_Vector4T< T > & | operator*= (const UT_Matrix4T< S > &mat) |
| template<typename S > | |
| void | multiply3 (const UT_Matrix4T< S > &mat) |
| template<typename S > | |
| void | multiply3 (UT_Vector4T< T > &dest, const UT_Matrix4T< S > &mat) const |
| int | findMinAbsAxis () const |
| These allow you to find out what indices to use for different axes. More... | |
| int | findMaxAbsAxis () const |
| These allow you to find out what indices to use for different axes. More... | |
| constexpr SYS_FORCE_INLINE T & | x () noexcept |
| constexpr SYS_FORCE_INLINE T | x () const noexcept |
| constexpr SYS_FORCE_INLINE T & | y () noexcept |
| constexpr SYS_FORCE_INLINE T | y () const noexcept |
| constexpr SYS_FORCE_INLINE T & | z () noexcept |
| constexpr SYS_FORCE_INLINE T | z () const noexcept |
| constexpr SYS_FORCE_INLINE T & | w () noexcept |
| constexpr SYS_FORCE_INLINE T | w () const noexcept |
| T & | operator() (unsigned i) |
| T | operator() (unsigned i) const |
| void | homogenize () |
| Express the point in homogeneous coordinates or vice-versa. More... | |
| void | dehomogenize () |
| Express the point in homogeneous coordinates or vice-versa. More... | |
| bool | save (UT_JSONWriter &w) const |
| bool | save (UT_JSONValue &v) const |
| bool | load (UT_JSONParser &p) |
Static Public Member Functions | |
| static int | entries () |
| Returns the vector size. More... | |
Public Attributes | |
| T | vec [tuple_size] |
Static Public Attributes | |
| static constexpr int | tuple_size = 4 |
Friends | |
| constexpr bool | isZero (const UT_Vector4T &a) noexcept |
| constexpr auto | dot (const UT_Vector4T &a, const UT_Vector4T &b) noexcept |
| constexpr auto | length2 (const UT_Vector4T &a) noexcept |
| constexpr auto | distance2 (const UT_Vector4T &a, const UT_Vector4T &b) noexcept |
| constexpr bool | operator== (const UT_Vector4T &a, const UT_Vector4T &b) noexcept |
| constexpr bool | operator!= (const UT_Vector4T &a, const UT_Vector4T &b) noexcept |
| constexpr bool | operator< (const UT_Vector4T &a, const UT_Vector4T &b) noexcept |
| constexpr bool | operator<= (const UT_Vector4T &a, const UT_Vector4T &b) noexcept |
| constexpr bool | operator> (const UT_Vector4T &a, const UT_Vector4T &b) noexcept |
| constexpr bool | operator>= (const UT_Vector4T &a, const UT_Vector4T &b) noexcept |
| std::ostream & | operator<< (std::ostream &os, const UT_Vector4T< T > &v) |
| I/O friends. More... | |
4D Vector class.
Definition at line 176 of file UT_Vector4.h.
| typedef T UT_Vector4T< T >::value_type |
Definition at line 179 of file UT_Vector4.h.
|
default |
Default constructor. No data is initialized! Use it for extra speed.
|
default |
|
default |
|
inline |
Definition at line 189 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 193 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 196 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 199 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 202 of file UT_Vector4.h.
|
explicitnoexcept |
Definition at line 666 of file UT_Vector4.h.
|
explicitnoexcept |
Definition at line 674 of file UT_Vector4.h.
|
inlinenoexcept |
Our own type of any given value_type.
Definition at line 214 of file UT_Vector4.h.
|
inline |
Set the values of the vector components.
Definition at line 525 of file UT_Vector4.h.
|
inline |
Set the values of the vector components.
Definition at line 531 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 387 of file UT_Vector4.h.
|
inline |
Definition at line 336 of file UT_Vector4.h.
|
inline |
Definition at line 344 of file UT_Vector4.h.
|
inline |
If you need a multiplication operator that left multiplies the vector by a matrix (M * v), use the following colVecMult() functions. If you'd rather not use operator*=() for right-multiplications (v * M), use the following rowVecMult() functions.
Definition at line 404 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 226 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 231 of file UT_Vector4.h.
|
inline |
Express the point in homogeneous coordinates or vice-versa.
Definition at line 547 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 301 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 296 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 514 of file UT_Vector4.h.
|
inlinestatic |
Returns the vector size.
Definition at line 571 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 367 of file UT_Vector4.h.
|
inline |
Definition at line 329 of file UT_Vector4.h.
|
inline |
These allow you to find out what indices to use for different axes.
Definition at line 463 of file UT_Vector4.h.
|
inline |
These allow you to find out what indices to use for different axes.
Definition at line 438 of file UT_Vector4.h.
|
inline |
Compute a hash.
Definition at line 520 of file UT_Vector4.h.
|
inline |
Express the point in homogeneous coordinates or vice-versa.
Definition at line 541 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 372 of file UT_Vector4.h.
|
inline |
Definition at line 707 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 362 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 313 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 291 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 286 of file UT_Vector4.h.
| bool UT_Vector4T< T >::load | ( | UT_IStream & | is | ) |
| bool UT_Vector4T< T >::load | ( | UT_JSONParser & | p | ) |
Methods to serialize to a JSON stream. The vector is stored as an array of 4 reals.
|
inlinenoexcept |
Definition at line 377 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 382 of file UT_Vector4.h.
|
inline |
Definition at line 429 of file UT_Vector4.h.
|
inline |
Definition at line 432 of file UT_Vector4.h.
|
inline |
Definition at line 354 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 281 of file UT_Vector4.h.
|
inline |
Definition at line 351 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 306 of file UT_Vector4.h.
|
inline |
Return the components of the vector. The () operator does NOT check for the boundary condition.
Definition at line 502 of file UT_Vector4.h.
|
inline |
Return the components of the vector. The () operator does NOT check for the boundary condition.
Definition at line 507 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 262 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 275 of file UT_Vector4.h.
|
inline |
Definition at line 425 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 250 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 256 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 268 of file UT_Vector4.h.
|
default |
|
default |
|
inline |
Definition at line 222 of file UT_Vector4.h.
|
noexcept |
Definition at line 683 of file UT_Vector4.h.
| UT_Vector4T<T>& UT_Vector4T< T >::operator= | ( | const UT_Vector3T< T > & | v | ) |
Assignment operator that creates a V4 from a V3 by adding a '1' element.
|
inlinenoexcept |
Definition at line 236 of file UT_Vector4.h.
|
inlinenoexcept |
Definition at line 243 of file UT_Vector4.h.
|
inline |
If you need a multiplication operator that left multiplies the vector by a matrix (M * v), use the following colVecMult() functions. If you'd rather not use operator*=() for right-multiplications (v * M), use the following rowVecMult() functions.
Definition at line 401 of file UT_Vector4.h.
|
inline |
This multiply will ignore the 4th component both in the vector an in the matrix. This helps when you want to avoid affecting the 'w' component. This in turns annihilates the translation components (row 4) in mat, so be careful.
Definition at line 414 of file UT_Vector4.h.
| void UT_Vector4T< T >::save | ( | std::ostream & | os, |
| int | binary = 0 |
||
| ) | const |
| bool UT_Vector4T< T >::save | ( | UT_JSONWriter & | w | ) | const |
Methods to serialize to a JSON stream. The vector is stored as an array of 4 reals.
| bool UT_Vector4T< T >::save | ( | UT_JSONValue & | v | ) | const |
Methods to serialize to a JSON stream. The vector is stored as an array of 4 reals.
|
inlinenoexcept |
Return the components of the vector. The () operator does NOT check for the boundary condition.
Definition at line 499 of file UT_Vector4.h.
|
inlinenoexcept |
Return the components of the vector. The () operator does NOT check for the boundary condition.
Definition at line 500 of file UT_Vector4.h.
|
inlinenoexcept |
Return the components of the vector. The () operator does NOT check for the boundary condition.
Definition at line 493 of file UT_Vector4.h.
|
inlinenoexcept |
Return the components of the vector. The () operator does NOT check for the boundary condition.
Definition at line 494 of file UT_Vector4.h.
|
inlinenoexcept |
Return the components of the vector. The () operator does NOT check for the boundary condition.
Definition at line 495 of file UT_Vector4.h.
|
inlinenoexcept |
Return the components of the vector. The () operator does NOT check for the boundary condition.
Definition at line 496 of file UT_Vector4.h.
|
inlinenoexcept |
Return the components of the vector. The () operator does NOT check for the boundary condition.
Definition at line 497 of file UT_Vector4.h.
|
inlinenoexcept |
Return the components of the vector. The () operator does NOT check for the boundary condition.
Definition at line 498 of file UT_Vector4.h.
|
friend |
Definition at line 603 of file UT_Vector4.h.
|
friend |
Definition at line 582 of file UT_Vector4.h.
|
friend |
Definition at line 577 of file UT_Vector4.h.
|
friend |
Definition at line 598 of file UT_Vector4.h.
|
friend |
Definition at line 613 of file UT_Vector4.h.
|
friend |
Lexicographic order comparison operators
Definition at line 620 of file UT_Vector4.h.
|
friend |
I/O friends.
Definition at line 643 of file UT_Vector4.h.
|
friend |
Lexicographic order comparison operators
Definition at line 625 of file UT_Vector4.h.
|
friend |
Definition at line 608 of file UT_Vector4.h.
|
friend |
Lexicographic order comparison operators
Definition at line 630 of file UT_Vector4.h.
|
friend |
Lexicographic order comparison operators
Definition at line 635 of file UT_Vector4.h.
|
static |
Definition at line 180 of file UT_Vector4.h.
| T UT_Vector4T< T >::vec[tuple_size] |
Definition at line 573 of file UT_Vector4.h.