Math::float4 Class Reference
#include <xna_float4.h>
Inheritance diagram for Math::float4:
Detailed Description
A 4-component float vector class. This is the basis class for points and vectors.(C) 2007 RadonLabs GmbH
Public Member Functions | |
float4 () | |
default constructor, NOTE: does NOT setup components! | |
float4 (scalar x, scalar y, scalar z, scalar w) | |
construct from values | |
float4 (XMVECTOR rhs) | |
construct from XMVECTOR | |
void | operator= (const float4 &rhs) |
assignment operator | |
void | operator= (XMVECTOR rhs) |
assign an XMVECTOR | |
float4 | operator- () const |
flip sign | |
void | operator+= (const float4 &rhs) |
inplace add | |
void | operator-= (const float4 &rhs) |
inplace sub | |
void | operator *= (scalar s) |
inplace scalar multiply | |
void | operator *= (const float4 &rhs) |
muliply by a vector component-wise | |
float4 | operator+ (const float4 &rhs) const |
add 2 vectors | |
float4 | operator- (const float4 &rhs) const |
subtract 2 vectors | |
float4 | operator * (scalar s) const |
multiply with scalar | |
bool | operator== (const float4 &rhs) const |
equality operator | |
bool | operator!= (const float4 &rhs) const |
inequality operator | |
void | load (const scalar *ptr) |
load content from 16-byte-aligned memory | |
void | loadu (const scalar *ptr) |
load content from unaligned memory | |
void | store (scalar *ptr) const |
write content to 16-byte-aligned memory through the write cache | |
void | storeu (scalar *ptr) const |
write content to unaligned memory through the write cache | |
void | stream (scalar *ptr) const |
stream content to 16-byte-aligned memory circumventing the write-cache | |
void | load_float3 (const void *ptr, float w) |
load 3 floats into x,y,z from unaligned memory | |
void | load_ubyte4n_signed (const void *ptr, float w) |
load from UByte4N packed vector, move range to -1..+1 | |
void | set (scalar x, scalar y, scalar z, scalar w) |
set content | |
void | set_x (scalar x) |
set the x component | |
void | set_y (scalar y) |
set the y component | |
void | set_z (scalar z) |
set the z component | |
void | set_w (scalar w) |
set the w component | |
scalar & | x () |
read/write access to x component | |
scalar & | y () |
read/write access to y component | |
scalar & | z () |
read/write access to z component | |
scalar & | w () |
read/write access to w component | |
scalar | x () const |
read-only access to x component | |
scalar | y () const |
read-only access to y component | |
scalar | z () const |
read-only access to z component | |
scalar | w () const |
read-only access to w component | |
scalar | length () const |
return length of vector | |
scalar | lengthsq () const |
return squared length of vector | |
float4 | abs () const |
return compononent-wise absolute | |
Static Public Member Functions | |
static float4 | reciprocal (const float4 &v) |
return 1.0 / vec | |
static float4 | multiply (const float4 &v0, const float4 &v1) |
component-wise multiplication | |
static float4 | cross3 (const float4 &v0, const float4 &v1) |
return 3-dimensional cross product | |
static scalar | dot3 (const float4 &v0, const float4 &v1) |
return 3d dot product of vectors | |
static float4 | barycentric (const float4 &v0, const float4 &v1, const float4 &v2, scalar f, scalar g) |
return point in barycentric coordinates | |
static float4 | catmullrom (const float4 &v0, const float4 &v1, const float4 &v2, const float4 &v3, scalar s) |
perform Catmull-Rom interpolation | |
static float4 | hermite (const float4 &v1, const float4 &t1, const float4 &v2, const float4 &t2, scalar s) |
perform Hermite spline interpolation | |
static float4 | lerp (const float4 &v0, const float4 &v1, scalar s) |
perform linear interpolation between 2 4d vectors | |
static float4 | maximize (const float4 &v0, const float4 &v1) |
return 4d vector made up of largest components of 2 vectors | |
static float4 | minimize (const float4 &v0, const float4 &v1) |
return 4d vector made up of smallest components of 2 vectors | |
static float4 | normalize (const float4 &v) |
return normalized version of 4d vector | |
static | __declspec (deprecated) float4 transform(__Float4Arg v |
transform 4d vector by matrix44 | |
static float4 | reflect (const float4 &normal, const float4 &incident) |
reflect a vector v | |
static float4 | clamp (__Float4Arg Clamp, __Float4Arg vMin, __Float4Arg vMax) |
clamp to min/max vector | |
static scalar | angle (__Float4Arg v0, __Float4Arg v1) |
angle between two vectors | |
static bool | less3_any (const float4 &v0, const float4 &v1) |
return true if any XYZ component is less-then | |
static bool | less3_all (const float4 &v0, const float4 &v1) |
return true if all XYZ components are less-then | |
static bool | lessequal3_any (const float4 &v0, const float4 &v1) |
return true if any XYZ component is less-or-equal | |
static bool | lessequal3_all (const float4 &v0, const float4 &v1) |
return true if all XYZ components are less-or-equal | |
static bool | greater3_any (const float4 &v0, const float4 &v1) |
return true if any XYZ component is greater | |
static bool | greater3_all (const float4 &v0, const float4 &v1) |
return true if all XYZ components are greater | |
static bool | greaterequal3_any (const float4 &v0, const float4 &v1) |
return true if any XYZ component is greater-or-equal | |
static bool | greaterequal3_all (const float4 &v0, const float4 &v1) |
return true if all XYZ components are greater-or-equal | |
static bool | equal3_any (const float4 &v0, const float4 &v1) |
return true if any XYZ component is equal | |
static bool | equal3_all (const float4 &v0, const float4 &v1) |
return true if all XYZ components are equal | |
static bool | nearequal3 (const float4 &v0, const float4 &v1, const float4 &epsilon) |
perform near equal comparison with given epsilon (3 components) | |
static bool | less4_any (const float4 &v0, const float4 &v1) |
return true if any XYZW component is less-then | |
static bool | less4_all (const float4 &v0, const float4 &v1) |
return true if all XYZW components are less-then | |
static bool | lessequal4_any (const float4 &v0, const float4 &v1) |
return true if any XYZW component is less-or-equal | |
static bool | lessequal4_all (const float4 &v0, const float4 &v1) |
return true if all XYZW components are less-or-equal | |
static bool | greater4_any (const float4 &v0, const float4 &v1) |
return true if any XYZW component is greater | |
static bool | greater4_all (const float4 &v0, const float4 &v1) |
return true if all XYZW components are greater | |
static bool | greaterequal4_any (const float4 &v0, const float4 &v1) |
return true if any XYZW component is greater-or-equal | |
static bool | greaterequal4_all (const float4 &v0, const float4 &v1) |
return true if all XYZW components are greater-or-equal | |
static bool | equal4_any (const float4 &v0, const float4 &v1) |
return true if any XYZW component is equal | |
static bool | equal4_all (const float4 &v0, const float4 &v1) |
return true if all XYZW components are equal | |
static bool | nearequal4 (const float4 &v0, const float4 &v1, const float4 &epsilon) |
perform near equal comparison with given epsilon (4 components) | |
static float | unpack_x (XMVECTOR v) |
unpack the first element from a XMVECTOR | |
static float | unpack_y (XMVECTOR v) |
unpack the second element from a XMVECTOR | |
static float | unpack_z (XMVECTOR v) |
unpack the third element from a XMVECTOR | |
static float | unpack_w (XMVECTOR v) |
unpack the fourth element from a XMVECTOR | |
static float4 | splat (scalar s) |
splat scalar into each component of a vector | |
static float4 | splat (const float4 &v, uint element) |
return a vector with all elements set to element n of v. 0 <= element <= 3 | |
static float4 | splat_x (const float4 &v) |
return a vector with all elements set to v.x | |
static float4 | splat_y (const float4 &v) |
return a vector with all elements set to v.y | |
static float4 | splat_z (const float4 &v) |
return a vector with all elements set to v.z | |
static float4 | splat_w (const float4 &v) |
return a vector with all elements set to v.w | |
static float4 | permute_control (unsigned int i0, unsigned int i1, unsigned int i2, unsigned int i3) |
return control vector for permute (see XMVectorPermuteControl for details) | |
static float4 | permute (const float4 &v0, const float4 &v1, const float4 &control) |
merge components of 2 vectors into 1 (see XMVectorPermute for details) |
Constructor & Destructor Documentation
__forceinline Math::float4::float4 | ( | XMVECTOR | rhs | ) |
construct from XMVECTOR
!!!! copy constructor forbidden, otherwise passing float4's to a function !!!! via Registers doesnt work
Member Function Documentation
__forceinline void Math::float4::load | ( | const scalar * | ptr | ) |
load content from 16-byte-aligned memory
Load 4 floats from 16-byte-aligned memory.
__forceinline void Math::float4::loadu | ( | const scalar * | ptr | ) |
load content from unaligned memory
Load 4 floats from unaligned memory.
__forceinline void Math::float4::store | ( | scalar * | ptr | ) | const |
write content to 16-byte-aligned memory through the write cache
Store to 16-byte-aligned float pointer.
__forceinline void Math::float4::storeu | ( | scalar * | ptr | ) | const |
write content to unaligned memory through the write cache
Store to non-aligned float pointer.