HDK
|
#include "UT_API.h"
#include "UT_Assert.h"
#include "UT_FixedVectorTraits.h"
#include "UT_Storage.h"
#include "UT_FixedArrayMath.h"
#include "UT_VectorTypes.h"
#include <SYS/SYS_Deprecated.h>
#include <SYS/SYS_Math.h>
#include <SYS/SYS_Inline.h>
#include <VM/VM_SIMD.h>
#include <iosfwd>
#include <limits>
#include "UT_Matrix2.h"
Go to the source code of this file.
Classes | |
class | UT_Vector2T< T > |
2D Vector class. More... | |
class | UT_FixedVector< T, D > |
struct | UT_FixedVectorTraits< UT_Vector2T< T > > |
struct | SYS_IsFixedArrayNoCVRef< UT_Vector2T< T > > |
struct | SYS_FixedArrayElementNoCVRef< UT_Vector2T< T > > |
struct | SYS_FixedArraySizeNoCVRef< UT_Vector2T< T > > |
struct | UT_Vector2TFromUnbounded< T > |
struct | UT_FromUnbounded< V > |
UT_FromUnbounded creates a V from an unbounded array-like type. More... | |
struct | UT_FromUnbounded< UT_Vector2T< T > > |
struct | UT_Vector2TFromFixed< T > |
struct | UT_FromFixed< V > |
struct | UT_FromFixed< UT_Vector2T< T > > |
Macros | |
#define | __UT_Vector2_h__ |
Functions | |
template<typename T > | |
constexpr UT_Vector2T< T > | operator+ (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) noexcept |
template<typename T > | |
constexpr UT_Vector2T< T > | operator- (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) noexcept |
template<typename T > | |
constexpr bool | operator< (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) noexcept |
template<typename T > | |
constexpr bool | operator<= (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) noexcept |
template<typename T > | |
constexpr bool | operator> (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) noexcept |
template<typename T > | |
constexpr bool | operator>= (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) noexcept |
template<typename T , typename S > | |
UT_Vector2T< T > | operator+ (const UT_Vector2T< T > &v, S scalar) |
template<typename T , typename S > | |
UT_Vector2T< T > | operator- (const UT_Vector2T< T > &v, S scalar) |
template<typename T , typename S > | |
UT_Vector2T< T > | operator* (const UT_Vector2T< T > &v, S scalar) |
template<typename T , typename S > | |
UT_Vector2T< T > | operator/ (const UT_Vector2T< T > &v, S scalar) |
template<typename T , typename S > | |
UT_Vector2T< T > | operator+ (S scalar, const UT_Vector2T< T > &v) |
template<typename T , typename S > | |
UT_Vector2T< T > | operator- (S scalar, const UT_Vector2T< T > &v) |
template<typename T , typename S > | |
constexpr UT_Vector2T< T > | operator* (S scalar, const UT_Vector2T< T > &v) noexcept |
template<typename T , typename S > | |
UT_Vector2T< T > | operator/ (S scalar, const UT_Vector2T< T > &v) |
template<typename T , typename S > | |
UT_Vector2T< T > | operator* (const UT_Vector2T< T > &v, const UT_Matrix2T< S > &mat) |
template<typename T > | |
constexpr auto | dot (const UT_Vector2T< T > &a, const UT_Vector2T< T > &b) noexcept |
The dot product. More... | |
template<typename T > | |
T | cross (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) |
Cross product, which for 2d vectors results in a fpreal. More... | |
template<typename T > | |
UT_Vector2T< T > | SYSmin (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) |
Componentwise min and maximum. More... | |
template<typename T > | |
UT_Vector2T< T > | SYSmax (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) |
template<typename T , typename S > | |
bool | SYSisEqual (const UT_Vector2T< T > &a, const UT_Vector2T< T > &b, S tol=SYS_FTOLERANCE) |
Componentwise equality. More... | |
template<typename T > | |
bool | SYSisInteger (const UT_Vector2T< T > &v1) |
Componentwise integer test. More... | |
template<typename T , typename S > | |
UT_Vector2T< T > | SYSlerp (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2, S t) |
Componentwise linear interpolation. More... | |
template<typename T > | |
UT_Vector2T< T > | SYSinvlerp (const UT_Vector2T< T > &a, const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) |
Componentwise inverse linear interpolation. More... | |
template<typename T , typename S > | |
UT_Vector2T< T > | SYSbilerp (const UT_Vector2T< T > &u0v0, const UT_Vector2T< T > &u1v0, const UT_Vector2T< T > &u0v1, const UT_Vector2T< T > &u1v1, S u, S v) |
Bilinear interpolation. More... | |
template<typename T , typename S > | |
UT_Vector2T< T > | SYSbarycentric (const UT_Vector2T< T > &v0, const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2, S u, S v) |
Barycentric interpolation. More... | |
template<typename T > | |
UT_Vector2T< T > | project (const UT_Vector2T< T > &u, const UT_Vector2T< T > &v) |
The orthogonal projection of a vector u onto a vector v. More... | |
template<typename T > | |
T | distance2d (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) |
template<typename T > | |
int | UTinverseBilerp (const UT_Vector2T< T > &input, const UT_Vector2T< T > &p0, const UT_Vector2T< T > &du, const UT_Vector2T< T > &dv, const UT_Vector2T< T > &duv, UT_Vector2T< T > outputs[2]) |
template<typename T > | |
UT_Vector2T< T > | operator* (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) |
template<typename T > | |
UT_Vector2T< T > | operator/ (const UT_Vector2T< T > &v1, const UT_Vector2T< T > &v2) |
template<typename T > | |
UT_Vector2T< T > | SYSabs (const UT_Vector2T< T > &v) |
template<> | |
UT_Vector2T< float > | rowVecMult (const UT_Vector2T< float > &v, const UT_Matrix2T< float > &m) |
template<> | |
UT_Vector2T< float > | colVecMult (const UT_Matrix2T< float > &m, const UT_Vector2T< float > &v) |
template<typename T > | |
size_t | hash_value (const UT_Vector2T< T > &val) |
template<typename T > | |
UT_API size_t | format (char *buffer, size_t buffer_size, const UT_Vector2T< T > &v) |
template<typename TS > | |
constexpr UT_Vector2T < SYS_FixedArrayElement_t< TS > > | UTmakeVector2T (const TS &as) noexcept |
template<typename T , typename S > | |
UT_Vector2T< T > | rowVecMult (const UT_Vector2T< T > &v, const UT_Matrix2T< S > &m) |
template<typename T , typename S > | |
UT_Vector2T< T > | colVecMult (const UT_Matrix2T< S > &m, const UT_Vector2T< T > &v) |
#define __UT_Vector2_h__ |
Definition at line 21 of file UT_Vector2.h.
|
inline |
Multiplication of a row or column vector by a matrix (ie. right vs. left multiplication respectively). The operator*() declared above is an alias for rowVecMult().
Definition at line 720 of file UT_Vector2.h.
|
inline |
Definition at line 726 of file UT_Vector2.h.
|
inline |
Cross product, which for 2d vectors results in a fpreal.
Definition at line 640 of file UT_Vector2.h.
|
inline |
Definition at line 739 of file UT_Vector2.h.
|
noexcept |
The dot product.
Definition at line 634 of file UT_Vector2.h.
UT_API size_t format | ( | char * | buffer, |
size_t | buffer_size, | ||
const UT_Vector2T< T > & | v | ||
) |
|
inline |
Definition at line 745 of file UT_Vector2.h.
|
inline |
Definition at line 613 of file UT_Vector2.h.
|
noexcept |
Definition at line 618 of file UT_Vector2.h.
|
inline |
Definition at line 734 of file UT_Vector2.h.
|
inline |
Definition at line 563 of file UT_Vector2.h.
|
noexcept |
Definition at line 553 of file UT_Vector2.h.
|
inline |
Definition at line 593 of file UT_Vector2.h.
|
inline |
Definition at line 598 of file UT_Vector2.h.
|
noexcept |
Definition at line 558 of file UT_Vector2.h.
|
inline |
Definition at line 603 of file UT_Vector2.h.
|
inline |
Definition at line 608 of file UT_Vector2.h.
|
inline |
Definition at line 623 of file UT_Vector2.h.
|
inline |
Definition at line 628 of file UT_Vector2.h.
|
inline |
Definition at line 568 of file UT_Vector2.h.
|
noexcept |
Lexicographic order comparison operators
Definition at line 573 of file UT_Vector2.h.
|
noexcept |
Definition at line 578 of file UT_Vector2.h.
|
noexcept |
Definition at line 583 of file UT_Vector2.h.
|
noexcept |
Definition at line 588 of file UT_Vector2.h.
|
inline |
The orthogonal projection of a vector u onto a vector v.
Definition at line 700 of file UT_Vector2.h.
|
inline |
Multiplication of a row or column vector by a matrix (ie. right vs. left multiplication respectively). The operator*() declared above is an alias for rowVecMult().
Definition at line 705 of file UT_Vector2.h.
|
inline |
Definition at line 711 of file UT_Vector2.h.
|
inline |
Definition at line 646 of file UT_Vector2.h.
|
inline |
Barycentric interpolation.
Definition at line 111 of file UT_Vector2.h.
|
inline |
Bilinear interpolation.
Definition at line 105 of file UT_Vector2.h.
|
inline |
Componentwise inverse linear interpolation.
Definition at line 690 of file UT_Vector2.h.
|
inline |
Componentwise equality.
Definition at line 674 of file UT_Vector2.h.
|
inline |
Componentwise integer test.
Definition at line 93 of file UT_Vector2.h.
|
inline |
Componentwise linear interpolation.
Definition at line 681 of file UT_Vector2.h.
|
inline |
Definition at line 664 of file UT_Vector2.h.
|
inline |
Componentwise min and maximum.
Definition at line 654 of file UT_Vector2.h.
int UTinverseBilerp | ( | const UT_Vector2T< T > & | input, |
const UT_Vector2T< T > & | p0, | ||
const UT_Vector2T< T > & | du, | ||
const UT_Vector2T< T > & | dv, | ||
const UT_Vector2T< T > & | duv, | ||
UT_Vector2T< T > | outputs[2] | ||
) |
Given a 2D position, input, and a 2D quad, (p0, p0+du, p0+du+dv+duv, p0+dv), finds the 0, 1, or 2 locations in the parameter space of that quad that correspond with the input position. Only parameter locations approximately between 0 and 1 are accepted. The return value is the number of accepted parameter locations.
|
noexcept |
Definition at line 824 of file UT_Vector2.h.