26#ifndef __TRIVMATH_VFPU_H__
27#define __TRIVMATH_VFPU_H__
38triVec2f* triVec2Set( triVec2f* a,
const triFloat x,
const triFloat y );
39triVec2i* triVec2Ceil( triVec2i* a,
const triVec2f* b );
40triVec2i* triVec2Trunc( triVec2i* a,
const triVec2f* b );
41triVec2i* triVec2Round( triVec2i* a,
const triVec2f* b );
42triVec2i* triVec2Floor( triVec2i* a,
const triVec2f* b );
43triVec2f* triVec2i2f( triVec2f* a,
const triVec2i* b );
44triVec2f* triVec2Add( triVec2f* a,
const triVec2f* b,
const triVec2f* c );
45triVec2f* triVec2Sub( triVec2f* a,
const triVec2f* b,
const triVec2f* c );
46triVec2f* triVec2Mul( triVec2f* a,
const triVec2f* b,
const triVec2f* c );
47triVec2f* triVec2Div( triVec2f* a,
const triVec2f* b,
const triVec2f* c );
48triVec2f* triVec2Neg( triVec2f* a,
const triVec2f* b );
49triVec2f* triVec2Abs( triVec2f* a,
const triVec2f* b );
50triVec2f* triVec2Rndn( triVec2f* a );
51triVec2f* triVec2Rnd( triVec2f* a );
52triVec2f* triVec2Rnd2( triVec2f* a );
53triVec2f* triVec2Clamp( triVec2f* a,
const triVec2f* b, triFloat min, triFloat max );
54triVec2f* triVec2Min( triVec2f* a,
const triVec2f* b,
const triVec2f* c );
55triVec2f* triVec2Max( triVec2f* a,
const triVec2f* b,
const triVec2f* c );
56triFloat triVec2Sum(
const triVec2f* a );
57triFloat triVec2Avg(
const triVec2f* a );
58triVec2f* triVec2Sgn( triVec2f* a,
const triVec2f* b );
59triVec2f* triVec2Normalize( triVec2f* a,
const triVec2f* b );
60triFloat triVec2Length(
const triVec2f* a );
61triFloat triVec2SquareLength(
const triVec2f* a );
62triFloat triVec2Dist(
const triVec2f* a,
const triVec2f* b );
63triFloat triVec2SquareDist(
const triVec2f* a,
const triVec2f* b );
64triVec2f* triVec2Lerp( triVec2f* a,
const triVec2f* b,
const triVec2f* c, triFloat t );
65triVec2f* triVec2Scale( triVec2f* a,
const triVec2f* b, triFloat t );
66triFloat triVec2Dot(
const triVec2f* a,
const triVec2f* b );
67triVec2f* triVec2Reflect( triVec2f* a,
const triVec2f* b,
const triVec2f* c );
68triVec2f* triVec2Refract( triVec2f* a,
const triVec2f* b,
const triVec2f* c,
const triFloat eta );
77triVec3f* triVec3Set( triVec3f* a,
const triFloat x,
const triFloat y,
const triFloat z );
78triVec3i* triVec3Ceil( triVec3i* a,
const triVec3f* b );
79triVec3i* triVec3Trunc( triVec3i* a,
const triVec3f* b );
80triVec3i* triVec3Round( triVec3i* a,
const triVec3f* b );
81triVec3i* triVec3Floor( triVec3i* a,
const triVec3f* b );
82triVec3f* triVec3i2f( triVec3f* a,
const triVec3i* b );
83triVec3f* triVec3Add( triVec3f* a,
const triVec3f* b,
const triVec3f* c );
84triVec3f* triVec3Sub( triVec3f* a,
const triVec3f* b,
const triVec3f* c );
85triVec3f* triVec3Mul( triVec3f* a,
const triVec3f* b,
const triVec3f* c );
86triVec3f* triVec3Div( triVec3f* a,
const triVec3f* b,
const triVec3f* c );
87triVec3f* triVec3Neg( triVec3f* a,
const triVec3f* b );
88triVec3f* triVec3Abs( triVec3f* a,
const triVec3f* b );
89triVec3f* triVec3Rndn( triVec3f* a );
90triVec3f* triVec3Rnd( triVec3f* a );
91triVec3f* triVec3Rnd2( triVec3f* a );
92triVec3f* triVec3Clamp( triVec3f* a,
const triVec3f* b, triFloat min, triFloat max );
93triVec3f* triVec3Min( triVec3f* a,
const triVec3f* b,
const triVec3f* c );
94triVec3f* triVec3Max( triVec3f* a,
const triVec3f* b,
const triVec3f* c );
95triFloat triVec3Sum(
const triVec3f* a );
96triFloat triVec3Avg(
const triVec3f* a );
97triVec3f* triVec3Sgn( triVec3f* a,
const triVec3f* b );
98triVec3f* triVec3Normalize( triVec3f* a,
const triVec3f* b );
99triFloat triVec3Length(
const triVec3f* a );
100triFloat triVec3SquareLength(
const triVec3f* a );
101triFloat triVec3Dist(
const triVec3f* a,
const triVec3f* b );
102triFloat triVec3SquareDist(
const triVec3f* a,
const triVec3f* b );
103triVec3f* triVec3Lerp( triVec3f* a,
const triVec3f* b,
const triVec3f* c, triFloat t );
104triVec3f* triVec3Scale( triVec3f* a,
const triVec3f* b, triFloat t );
105triFloat triVec3Dot(
const triVec3f* a,
const triVec3f* b );
106triVec3f* triVec3Cross( triVec3f* a,
const triVec3f* b,
const triVec3f* c );
107triVec3f* triVec3Reflect( triVec3f* a,
const triVec3f* b,
const triVec3f* c );
108triVec3f* triVec3Refract( triVec3f* a,
const triVec3f* b,
const triVec3f* c,
const triFloat eta );
119triVec4f* triVec4Set( triVec4f* a,
const triFloat x,
const triFloat y,
const triFloat z,
const triFloat w );
120triVec4f* triVec4Set3( triVec4f* a,
const triFloat x,
const triFloat y,
const triFloat z );
121triVec4i* triVec4Ceil( triVec4i* a,
const triVec4f* b );
122triVec4i* triVec4Trunc( triVec4i* a,
const triVec4f* b );
123triVec4i* triVec4Round( triVec4i* a,
const triVec4f* b );
124triVec4i* triVec4Floor( triVec4i* a,
const triVec4f* b );
125triVec4f* triVec4i2f( triVec4f* a,
const triVec4i* b );
164triVec4f*
triVec4Add( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
174triVec4f*
triVec4Add3( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
183triVec4f*
triVec4Sub( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
193triVec4f*
triVec4Sub3( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
202triVec4f*
triVec4Mul( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
212triVec4f*
triVec4Mul3( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
221triVec4f*
triVec4Div( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
231triVec4f*
triVec4Div3( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
266triVec4f*
triVec4Clamp( triVec4f* a,
const triVec4f* b, triFloat min, triFloat max );
276triVec4f*
triVec4Clamp3( triVec4f* a,
const triVec4f* b, triFloat min, triFloat max );
285triVec4f*
triVec4Min( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
294triVec4f*
triVec4Max( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
423triVec4f*
triVec4Lerp( triVec4f* a,
const triVec4f* b,
const triVec4f* c, triFloat t );
434triVec4f*
triVec4Lerp3( triVec4f* a,
const triVec4f* b,
const triVec4f* c, triFloat t );
480triVec4f*
triVec4Cross( triVec4f* a,
const triVec4f* b,
const triVec4f* c );
502triVec4f*
triVec4Refract( triVec4f* a,
const triVec4f* b,
const triVec4f* c,
const triFloat eta );
547triMat4f*
triMat4Mul( triMat4f* a,
const triMat4f* b,
const triMat4f* c );
582triVec4f*
triMat4Apply( triVec4f* a,
const triMat4f* b,
const triVec4f* c );
592triVec4f*
triMat4Apply3( triVec4f* a,
const triMat4f* b,
const triVec4f* c );
629triVec4f*
triQuatApply(triVec4f* a,
const triQuat* b,
const triVec4f* c);
637triQuat*
triQuatAdd(triQuat* a,
const triQuat* b,
const triQuat* c);
645triQuat*
triQuatSub(triQuat* a,
const triQuat* b,
const triQuat* c);
653triQuat*
triQuatMul(triQuat* a,
const triQuat* b,
const triQuat* c);
669triQuat*
triQuatNLerp(triQuat* a,
const triQuat* b,
const triQuat* c, triFloat t);
678triQuat*
triQuatSLerp(triQuat* a,
const triQuat* b,
const triQuat* c, triFloat t);
691 const triQuat* d,
const triQuat* e, triFloat t);
726triColor4f* triColor4Set( triColor4f* c,
const triFloat r,
const triFloat g,
const triFloat b,
const triFloat a );
727triColor4f* triColor4Set3( triColor4f* c,
const triFloat r,
const triFloat g,
const triFloat b );
728triColor4f* triColor4From4i( triColor4f* a,
triColor4i* b );
729triColor4f* triColor4From8888( triColor4f* a,
triColor8888* b );
730triU32 triColor4f2RGBA8888( triColor4f* a );
triMat4f * triMat4Zero(triMat4f *a)
Make a matrix zero.
triMat4f * triMat4Inv(triMat4f *a, const triMat4f *b)
Invert a matrix.
triVec4f * triMat4Apply(triVec4f *a, const triMat4f *b, const triVec4f *c)
4x4 Matrix-Vector multiply (a = b*c).
triMat4f * triMat4Mul(triMat4f *a, const triMat4f *b, const triMat4f *c)
Matrix multiply (a = b*c).
triFloat triMat4Trace(const triMat4f *a)
Calculate matrix trace.
triVec4f * triMat4Apply3(triVec4f *a, const triMat4f *b, const triVec4f *c)
3x3 Matrix-Vector multiply (a = b*c).
triMat4f * triMat4Trans(triMat4f *a, const triMat4f *b)
Transpose a matrix.
triFloat triMat4Det(const triMat4f *a)
Calculate matrix determinant.
triMat4f * triMat4Copy(triMat4f *a, const triMat4f *b)
Copy a matrix.
triMat4f * triMat4Identity(triMat4f *a)
Make a matrix identity.
triQuat * triQuatSLerp(triQuat *a, const triQuat *b, const triQuat *c, triFloat t)
Spherical interpolation of quaternions.
triVec4f * triQuatApply(triVec4f *a, const triQuat *b, const triVec4f *c)
Apply quaternion to vector.
triQuat * triQuatMul(triQuat *a, const triQuat *b, const triQuat *c)
Multiply quaternions.
triQuat * triQuatSquad(triQuat *a, const triQuat *b, const triQuat *c, const triQuat *d, const triQuat *e, triFloat t)
Cubical interpolation of quaternions.
triQuat * triQuatAdd(triQuat *a, const triQuat *b, const triQuat *c)
Add quaternions.
triMat4f * triQuatToMatrix(triMat4f *a, const triQuat *b)
Convert quaternion to matrix.
triQuat * triQuatFromRotate(triQuat *a, triFloat angle, const triVec4f *b)
Make quaternion from axis rotation.
triFloat triQuatInnerProduct(const triQuat *a, const triQuat *b)
Quaternion innerproduct (dotproduct).
triQuat * triQuatNormalize(triQuat *a, const triQuat *b)
Normalize quaternion.
triQuat * triQuatSub(triQuat *a, const triQuat *b, const triQuat *c)
Subtract quaternions.
triQuat * triQuatNLerp(triQuat *a, const triQuat *b, const triQuat *c, triFloat t)
Normal (linear) interpolation of quaternions.
triQuat * triQuatCopy(triQuat *a, const triQuat *b)
Copy quaternion.
triQuat * triQuatInverse(triQuat *a, const triQuat *b)
Inverse quaternion (normalize(-x,-y,-z,w)).
triQuat * triQuatConj(triQuat *a, const triQuat *b)
Conjugate quaternion (-x,-y,-z,-w).
triQuat * triQuatUnit(triQuat *a)
Make unit quaternion (0,0,0,1).
triFloat triVec4Avg(const triVec4f *a)
Average of components.
triVec4f * triVec4Reflect(triVec4f *a, const triVec4f *b, const triVec4f *c)
Reflect Vector.
triFloat triVec4SquareLength3(const triVec4f *a)
Square length of Vector.
triVec4f * triVec4Neg(triVec4f *a, const triVec4f *b)
Negate Vector.
triVec4f * triVec4Max(triVec4f *a, const triVec4f *b, const triVec4f *c)
Maximum of Vectors.
triFloat triVec4Length(const triVec4f *a)
Length of Vector.
triVec4f * triVec4Mul(triVec4f *a, const triVec4f *b, const triVec4f *c)
Multiply Vectors.
triVec4f * triVec4Sgn(triVec4f *a, const triVec4f *b)
Vector sign.
triFloat triVec4Dot3(const triVec4f *a, const triVec4f *b)
Calculate Vector dotproduct.
triVec4f * triVec4Add3(triVec4f *a, const triVec4f *b, const triVec4f *c)
Add Vectors.
triFloat triVec4Sum3(const triVec4f *a)
Sum of components.
triVec4f * triVec4Add(triVec4f *a, const triVec4f *b, const triVec4f *c)
Add Vectors.
triFloat triVec4Dist(const triVec4f *a, const triVec4f *b)
Distance between Vectors.
triVec4f * triVec4Normalize(triVec4f *a, const triVec4f *b)
Normalize Vector.
triFloat triVec4SquareLength(const triVec4f *a)
Square length of Vector.
triVec4f * triVec4Rndn(triVec4f *a)
Random normal vector.
triVec4f * triVec4Abs(triVec4f *a, const triVec4f *b)
Absolute of Vector.
triVec4f * triVec4Div3(triVec4f *a, const triVec4f *b, const triVec4f *c)
Divide Vectors.
triVec4f * triVec4Neg3(triVec4f *a, const triVec4f *b)
Negate Vector.
triVec4f * triVec4Sub(triVec4f *a, const triVec4f *b, const triVec4f *c)
Subtract Vectors.
triVec4f * triVec4Rnd(triVec4f *a)
Random vector.
triVec4f * triVec4Div(triVec4f *a, const triVec4f *b, const triVec4f *c)
Divide Vectors.
triFloat triVec4SquareDist3(const triVec4f *a, const triVec4f *b)
Square distance between Vectors.
triFloat triVec4Dot(const triVec4f *a, const triVec4f *b)
Calculate Vector dotproduct.
triVec4f * triVec4Refract(triVec4f *a, const triVec4f *b, const triVec4f *c, const triFloat eta)
Refract Vector.
triVec4f * triVec4Sub3(triVec4f *a, const triVec4f *b, const triVec4f *c)
Subtract Vectors.
triFloat triVec4Length3(const triVec4f *a)
Length of Vector.
triVec4f * triVec4Mul3(triVec4f *a, const triVec4f *b, const triVec4f *c)
Multiply Vectors.
triVec4f * triVec4Rnd2(triVec4f *a)
Random vector.
triVec4f * triVec4Lerp(triVec4f *a, const triVec4f *b, const triVec4f *c, triFloat t)
Linear interpolate between Vectors.
triVec4f * triVec4Clamp(triVec4f *a, const triVec4f *b, triFloat min, triFloat max)
Clamp Vector.
triVec4f * triVec4Clamp3(triVec4f *a, const triVec4f *b, triFloat min, triFloat max)
Clamp Vector.
triFloat triVec4Sum(const triVec4f *a)
Sum of components.
triVec4f * triVec4Scale3(triVec4f *a, const triVec4f *b, triFloat t)
Scale Vector.
triVec4f * triVec4Normalize3(triVec4f *a, const triVec4f *b)
Normalize Vector.
triVec4f * triVec4Cross(triVec4f *a, const triVec4f *b, const triVec4f *c)
Calculate Vector crossproduct.
triFloat triVec4Dist3(const triVec4f *a, const triVec4f *b)
Distance between Vectors.
triFloat triVec4SquareDist(const triVec4f *a, const triVec4f *b)
Square distance between Vectors.
triVec4f * triVec4Min(triVec4f *a, const triVec4f *b, const triVec4f *c)
Minimum of Vectors.
triVec4f * triVec4Lerp3(triVec4f *a, const triVec4f *b, const triVec4f *c, triFloat t)
Linear interpolate between Vectors.
triFloat triVec4Avg3(const triVec4f *a)
Average of components.
triVec4f * triVec4Rndn3(triVec4f *a)
Random normal vector.
triVec4f * triVec4Scale(triVec4f *a, const triVec4f *b, triFloat t)
Scale Vector.
RGBA int color (128bit)
Definition triTypes.h:328
RGBA8888 color (32bit)
Definition triTypes.h:348