Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2007-07-03 04:58:38 +0400
committerJoshua Leung <aligorith@gmail.com>2007-07-03 04:58:38 +0400
commit2929e8f65abb7c2779df37d49a87e217d698144b (patch)
treec85bb1ca55e06985661f4d891483af8d8fe4e943 /source/blender/blenlib/BLI_arithb.h
parentd65816c49aa62c7ace14dbb7fd394a6a8ba1e4a9 (diff)
== Constraints/Arithb Code ==
* Formatting 'fixes' for more consistency with rest of code * Moved Mat4BlendMat4 from constraint.c to arithb.c/h
Diffstat (limited to 'source/blender/blenlib/BLI_arithb.h')
-rw-r--r--source/blender/blenlib/BLI_arithb.h979
1 files changed, 186 insertions, 793 deletions
diff --git a/source/blender/blenlib/BLI_arithb.h b/source/blender/blenlib/BLI_arithb.h
index cebeff5c3e1..1c476c08984 100644
--- a/source/blender/blenlib/BLI_arithb.h
+++ b/source/blender/blenlib/BLI_arithb.h
@@ -64,577 +64,203 @@ extern "C" {
{ 0.0, 0.0, 1.0}}
-/* matrix operations */
-/* void Mat4MulMat4(float m1[][4], float m2[][4], float m3[][4]); */
-/* void Mat3MulVecfl(float mat[][3], float *vec); */
-/* or **mat, but it's the same */
-/*void Mat3MulVecd(float mat[][3], double *vec); */
+void CalcCent3f(float *cent, float *v1, float *v2, float *v3);
+void CalcCent4f(float *cent, float *v1, float *v2, float *v3, float *v4);
-/* void Mat4MulVecfl(float mat[][4], float *vec); */
-/* void Mat4MulSerie(float answ[][4], float m1[][4], float m2[][4], */
-/* float m3[][4], float m4[][4], float m5[][4], */
-/* float m6[][4], float m7[][4], float m8[][4]); */
-/* int Mat4Invert(float inverse[][4], float mat[][4]); */
+void Crossf(float *c, float *a, float *b);
+void Projf(float *c, float *v1, float *v2);
-/* m2 to m1 */
-/* void Mat3CpyMat4(float m1p[][3], float m2p[][4]); */
-/* void Mat3CpyMat4(float *m1p, float *m2p); */
+float Inpf(float *v1, float *v2);
+float Inp2f(float *v1, float *v2);
-/* m1 to m2 */
-/* void Mat3CpyMat3(float m1p[][3], float m2p[][3]); */
-/* void Mat3CpyMat3(float *m1p, float *m2p); */
+float Normalize(float *n);
+float Normalize2(float *n);
-/* m2 to m1 */
-/* void Mat4CpyMat3(float m1p[][4], float m2p[][3]); */
+float Sqrt3f(float f);
+double Sqrt3d(double d);
-/* M1 = M3*M2 */
-/* void Mat3MulMat3(float m1[][3], float m2[][3], float m3[][3]); */
-/*void Mat3MulMat3(float *m1, float *m3, float *m2); */
+float saacos(float fac);
+float saasin(float fac);
+float sasqrt(float fac);
-/* m1 = m2 * m3, ignore the elements on the 4th row/column of m3 */
-/*void Mat3IsMat3MulMat4(float m1[][3], float m2[][3], float m3[][4]); */
+int FloatCompare(float *v1, float *v2, float limit);
+float FloatLerpf(float target, float origin, float fac);
-/* m1 to m2 */
-/* void Mat4CpyMat4(float m1[][4], float m2[][4]); */
-/* void Mat4CpyMat4(float *m1, float *m2); */
+float CalcNormFloat(float *v1, float *v2, float *v3, float *n);
+float CalcNormFloat4(float *v1, float *v2, float *v3, float *v4, float *n);
+void CalcNormLong(int *v1, int *v2, int *v3, float *n);
+/* CalcNormShort: is ook uitprodukt - (translates as 'is also out/cross product') */
+void CalcNormShort(short *v1, short *v2, short *v3, float *n);
-/* void Mat4Ortho(float mat[][4]); */
-/* void Mat4Mul3Vecfl(float mat[][4], float *vec); */
-/* void Mat4MulVec4fl(float mat[][4], float *vec); */
-/* void Mat4SwapMat4(float *m1, float *m2); */
-
-/* void Mat3Inv(float m1[][3], float m2[][3]); */
-/* void Mat4One(float m[][4]); */
-/* void Mat3One(float m[][3]); */
-
-
- void
-CalcCent3f(
- float *cent, float *v1, float *v2, float *v3
-);
-
- void
-CalcCent4f(
- float *cent, float *v1,
- float *v2, float *v3,
- float *v4
-);
-
- void
-Crossf(
- float *c, float *a, float *b
-);
-
- void
-Projf(
- float *c, float *v1, float *v2
-);
/**
- * Euler conversion routines
+ * @section Euler conversion routines
*/
- void
-EulToMat3(
- float *eul,
- float mat[][3]
-);
- void
-EulToMat4(
- float* eul,
- float mat[][4]
-);
+void EulToMat3(float *eul, float mat[][3]);
+void EulToMat4(float *eul, float mat[][4]);
- void
-Mat3ToEul(
- float tmat[][3],
- float *eul
-);
+void Mat3ToEul(float tmat[][3], float *eul);
+void Mat4ToEul(float tmat[][4],float *eul);
- void
-Mat4ToEul(
- float tmat[][4],
- float *eul
-);
+void EulToQuat(float *eul, float *quat);
void compatible_eul(float *eul, float *oldrot);
void Mat3ToCompatibleEul(float mat[][3], float *eul, float *oldrot);
+
/**
* @section Quaternion arithmetic routines
*/
- void
-QuatToEul(
- float *quat,
- float *eul
-);
- void
-QuatOne(
- float *
-);
- void
-QuatMul(
- float *,
- float *,
- float *
-);
- void
-QuatMulVecf(
- float *q,
- float *v
-);
- void
-NormalQuat(
- float *
-);
- void
-VecRotToQuat(
- float *vec,
- float phi,
- float *quat
-);
- void
-QuatSub(
- float *q,
- float *q1,
- float *q2
-);
- void
-QuatConj(
- float *q
-);
- void
-QuatInv(
- float *q
-);
- void
-QuatMulf(
- float *q,
- float f
-);
- float
-QuatDot(
- float *q1,
- float *q2
-);
- void
-printquat(
- char *str,
- float q[4]
-);
+void QuatToEul(float *quat, float *eul);
+void QuatOne(float *);
+void QuatMul(float *, float *, float *);
+void QuatMulVecf(float *q, float *v);
+
+void NormalQuat(float *);
+void VecRotToQuat(float *vec, float phi, float *quat);
+void QuatSub(float *q, float *q1, float *q2);
+void QuatConj(float *q);
+void QuatInv(float *q);
+void QuatMulf(float *q, float f);
+float QuatDot(float *q1, float *q2);
+
+void printquat(char *str, float q[4]);
void QuatInterpol(float *result, float *quat1, float *quat2, float t);
void QuatAdd(float *result, float *quat1, float *quat2, float t);
/**
- * @section matrix multiplication can copying routines
+ * @section matrix multiplication and copying routines
*/
- void
-Mat3MulFloat(
- float *m,
- float f
-);
- void
-Mat4MulFloat(
- float *m,
- float f
-);
- void
-Mat4MulFloat3(
- float *m,
- float f
-);
- void
-Mat3Transp(
- float mat[][3]
-);
- void
-Mat4Transp(
- float mat[][4]
-);
- int
-Mat4Invert(
- float inverse[][4],
- float mat[][4]
-);
- void
-Mat4InvertSimp(
- float inverse[][4],
- float mat[][4]
-);
- void
-Mat4Inv(
- float *m1,
- float *m2
-);
- void
-Mat4InvGG(
- float out[][4],
- float in[][4]
-);
- void
-Mat3CpyMat4(
- float m1[][3],
- float m2[][4]
-);
+void Mat3MulFloat(float *m, float f);
+void Mat4MulFloat(float *m, float f);
+void Mat4MulFloat3(float *m, float f);
- void
-Mat3Inv(
- float m1[][3],
- float m2[][3]
-);
+void Mat3Transp(float mat[][3]);
+void Mat4Transp(float mat[][4]);
- void
-Mat4CpyMat3(
- float m1[][4],
- float m2[][3]
-);
+int Mat4Invert(float inverse[][4], float mat[][4]);
+void Mat4InvertSimp(float inverse[][4], float mat[][4]);
+void Mat4Inv(float *m1, float *m2);
+void Mat4InvGG(float out[][4], float in[][4]);
+void Mat3Inv(float m1[][3], float m2[][3]);
- float
-Det2x2(
- float a,float b,float c,float d
-);
+void Mat3CpyMat4(float m1[][3],float m2[][4]);
+void Mat4CpyMat3(float m1[][4], float m2[][3]);
- float
-Det3x3(
+void Mat4BlendMat4(float out[][4], float dst[][4], float src[][4], float srcweight);
+
+float Det2x2(float a,float b,float c, float d);
+
+float Det3x3(
float a1, float a2, float a3,
float b1, float b2, float b3,
float c1, float c2, float c3
);
- float
-Det4x4(
- float m[][4]
-);
+float Det4x4(float m[][4]);
- void
-Mat4Adj(
- float out[][4],
- float in[][4]
-);
- void
-Mat3Adj(
- float m1[][3],
- float m[][3]
-);
- void
-Mat4MulMat4(
- float m1[][4],
- float m2[][4],
- float m3[][4]
-);
- void
-subMat4MulMat4(
- float *m1,
- float *m2,
- float *m3
-);
+void Mat3Adj(float m1[][3], float m[][3]);
+void Mat4Adj(float out[][4], float in[][4]);
+
+void Mat4MulMat4(float m1[][4], float m2[][4], float m3[][4]);
+void subMat4MulMat4(float *m1, float *m2, float *m3);
#ifndef TEST_ACTIVE
- void
-Mat3MulMat3(
- float m1[][3],
- float m3[][3],
- float m2[][3]
-);
+void Mat3MulMat3(float m1[][3], float m3[][3], float m2[][3]);
#else
- void
-Mat3MulMat3(
- float *m1,
- float *m3,
- float *m2
-);
+void Mat3MulMat3(float *m1, float *m3, float *m2);
#endif
- void
-Mat4MulMat34(
- float (*m1)[4],
- float (*m3)[3],
- float (*m2)[4]
-);
- void
-Mat4CpyMat4(
- float m1[][4],
- float m2[][4]
-);
- void
-Mat4SwapMat4(
- float *m1,
- float *m2
-);
- void
-Mat3CpyMat3(
- float m1[][3],
- float m2[][3]
-);
- void
-Mat3MulSerie(
- float answ[][3],
+void Mat4MulMat34(float (*m1)[4], float (*m3)[3], float (*m2)[4]);
+void Mat4CpyMat4(float m1[][4], float m2[][4]);
+void Mat4SwapMat4(float *m1, float *m2);
+void Mat3CpyMat3(float m1[][3], float m2[][3]);
+
+void Mat3MulSerie(float answ[][3],
float m1[][3], float m2[][3], float m3[][3],
float m4[][3], float m5[][3], float m6[][3],
float m7[][3], float m8[][3]
);
- void
-Mat4MulSerie(
- float answ[][4],
- float m1[][4],
+
+void Mat4MulSerie(float answ[][4], float m1[][4],
float m2[][4], float m3[][4], float m4[][4],
float m5[][4], float m6[][4], float m7[][4],
float m8[][4]
);
- void
-Mat4Clr(
- float *m
-);
- void
-Mat3Clr(
- float *m
-);
- void
-Mat3One(
- float m[][3]
-);
- void
-Mat4MulVec3Project(
- float mat[][4],
- float *vec
-);
- void
-Mat4MulVec(
- float mat[][4],
- int *vec
-);
- void
-VecMat4MulVecfl(
- float *in,
- float mat[][4],
- float *vec
-);
- void
-Mat4MulMat43(
- float (*m1)[4],
- float (*m3)[4],
- float (*m2)[3]
-);
-
- void
-Mat3IsMat3MulMat4(
- float m1[][3],
- float m2[][3],
- float m3[][4]
-);
- void
-Mat4One(
- float m[][4]
-);
- void
-Mat4Mul3Vecfl(
- float mat[][4],
- float *vec
-);
- void
-Mat4MulVec4fl(
- float mat[][4],
- float *vec
-);
- void
-Mat3MulVec(
- float mat[][3],
- int *vec
-);
- void
-Mat4MulVecfl(
- float mat[][4],
- float *vec
-);
- void
-Mat4ToQuat(
- float m[][4],
- float *q
-);
- void
-VecUpMat3old(
- float *vec,
- float mat[][3],
- short axis
-);
- int
-FloatCompare(
- float *v1,
- float *v2,
- float limit
-);
- float
-FloatLerpf(
- float target,
- float origin,
- float fac
-);
- float
-Normalize(
- float *n
-);
- float
-CalcNormFloat(
- float *v1,
- float *v2,
- float *v3,
- float *n
-);
-
- float
-CalcNormFloat4(
- float *v1,
- float *v2,
- float *v3,
- float *v4,
- float *n
-);
- float
-VecLenf(
- float *v1,
- float *v2
-);
- float
-VecLength(
- float *v
-);
- void
-VecMulf(
- float *v1,
- float f
-);
- int
-VecLenCompare(
- float *v1,
- float *v2,
- float limit
-);
- int
-VecCompare(
- float *v1,
- float *v2,
- float limit
-);
- int
-VecEqual(
- float *v1,
- float *v2
-);
- float
-Sqrt3f(
- float f
-);
- double
-Sqrt3d(
- double d
-);
+
+void Mat4Clr(float *m);
+void Mat3Clr(float *m);
+
+void Mat3One(float m[][3]);
+void Mat4One(float m[][4]);
+
+void Mat3Ortho(float mat[][3]);
+void Mat4Ortho(float mat[][4]);
+
+void VecMat4MulVecfl(float *in, float mat[][4], float *vec);
+void Mat4MulMat43(float (*m1)[4], float (*m3)[4], float (*m2)[3]);
+void Mat3IsMat3MulMat4(float m1[][3], float m2[][3], float m3[][4]);
+
+void Mat4MulVec(float mat[][4],int *vec);
+void Mat4MulVecfl(float mat[][4], float *vec);
+void Mat4Mul3Vecfl(float mat[][4], float *vec);
+void Mat4MulVec3Project(float mat[][4],float *vec);
+void Mat4MulVec4fl(float mat[][4], float *vec);
+void Mat3MulVec(float mat[][3],int *vec);
+void Mat3MulVecfl(float mat[][3], float *vec);
+void Mat3MulVecd(float mat[][3], double *vec);
+void Mat3TransMulVecfl(float mat[][3], float *vec);
+
+
+void VecUpMat3old(float *vec, float mat[][3], short axis);
+void VecUpMat3(float *vec, float mat[][3], short axis);
+void VecRotToMat3(float *vec, float phi, float mat[][3]);
+
+void VecCopyf(float *v1, float *v2);
+int VecLen(int *v1, int *v2);
+float VecLenf(float *v1, float *v2);
+float VecLength(float *v);
+void VecMulf(float *v1, float f);
+
+int VecLenCompare(float *v1, float *v2, float limit);
+int VecCompare(float *v1, float *v2, float limit);
+int VecEqual(float *v1, float *v2);
+
+void printvecf(char *str,float v[3]);
+void printvec4f(char *str, float v[4]);
+
+void VecAddf(float *v, float *v1, float *v2);
+void VecSubf(float *v, float *v1, float *v2);
+void VecLerpf(float *target, float *a, float *b, float t);
+void VecMidf(float *v, float *v1, float *v2);
+
+float Vec2Lenf(float *v1, float *v2);
+void Vec2Mulf(float *v1, float f);
+void Vec2Addf(float *v, float *v1, float *v2);
+void Vec2Subf(float *v, float *v1, float *v2);
+void Vec2Copyf(float *v1, float *v2);
+
+float *vectoquat(float *vec, short axis, short upflag);
+
+float VecAngle2(float *v1, float *v2);
+float VecAngle3(float *v1, float *v2, float *v3);
+float NormalizedVecAngle2(float *v1, float *v2);
+
+void euler_rot(float *beul, float ang, char axis);
+
- void
-euler_rot(
- float *beul,
- float ang,
- char axis
-);
- float
-saacos(
- float fac
-);
- float
-saasin(
- float fac
-);
- float
-sasqrt(
- float fac
-);
- void
-printvecf(
- char *str,
- float v[3]
-);
- void
-printvec4f(
- char *str,
- float v[4]
-);
- float
-Inpf(
- float *v1,
- float *v2
-);
- void
-VecSubf(
- float *v,
- float *v1,
- float *v2
-);
- void
-VecAddf(
- float *v,
- float *v1,
- float *v2
-);
- void
-VecLerpf(
- float *target,
- float *a,
- float *b,
- float t
-);
- void
-VecUpMat3(
- float *vec,
- float mat[][3],
- short axis
-);
- float
-DistVL2Dfl(
- float *v1,
- float *v2,
- float *v3
-);
- float
-PdistVL2Dfl(
- float *v1,
- float *v2,
- float *v3
-);
- float
-AreaF2Dfl(
- float *v1,
- float *v2,
- float *v3
-);
- float
-AreaQ3Dfl(
- float *v1,
- float *v2,
- float *v3,
- float *v4
-);
- float
-AreaT3Dfl(
- float *v1,
- float *v2,
- float *v3
-);
- float
-AreaPoly3Dfl(
- int nr,
- float *verts,
- float *normal
-);
- void
-VecRotToMat3(
- float *vec,
- float phi,
- float mat[][3]
-);
+float DistVL2Dfl(float *v1, float *v2, float *v3);
+float PdistVL2Dfl(float *v1, float *v2, float *v3);
+float AreaF2Dfl(float *v1, float *v2, float *v3);
+float AreaQ3Dfl(float *v1, float *v2, float *v3, float *v4);
+float AreaT3Dfl(float *v1, float *v2, float *v3);
+float AreaPoly3Dfl(int nr, float *verts, float *normal);
/* intersect Line-Line
return:
@@ -647,313 +273,80 @@ extern short IsectLL2Df(float *v1, float *v2, float *v3, float *v4);
extern short IsectLL2Ds(short *v1, short *v2, short *v3, short *v4);
/* interpolation weights of point in a triangle or quad, v4 may be NULL */
- void
-InterpWeightsQ3Dfl(
- float *v1, float *v2, float *v3, float *v4,
- float *co,
- float *w
-);
+void InterpWeightsQ3Dfl(float *v1, float *v2, float *v3, float *v4, float *co, float *w);
- float *
-vectoquat(
- float *vec,
- short axis,
- short upflag
-);
-
- float
-VecAngle3(
- float *v1,
- float *v2,
- float *v3
-);
-
- float
-VecAngle2(
- float *v1,
- float *v2
-);
- float
-NormalizedVecAngle2(
- float *v1,
- float *v2
-);
- void
-i_lookat(
+void i_lookat(
float vx, float vy,
float vz, float px,
float py, float pz,
float twist, float mat[][4]
);
- void
-i_window(
+
+void i_window(
float left, float right,
float bottom, float top,
float nearClip, float farClip,
float mat[][4]
);
- void
-hsv_to_rgb(
- float h, float s,
- float v, float *r,
- float *g, float *b
-);
+void hsv_to_rgb(float h, float s, float v, float *r, float *g, float *b);
+void hex_to_rgb(char *hexcol, float *r, float *g, float *b);
+void rgb_to_yuv(float r, float g, float b, float *ly, float *lu, float *lv);
+void yuv_to_rgb(float y, float u, float v, float *lr, float *lg, float *lb);
+void ycc_to_rgb(float y, float cb, float cr, float *lr, float *lg, float *lb);
+void rgb_to_ycc(float r, float g, float b, float *ly, float *lcb, float *lcr);
+void rgb_to_hsv(float r, float g, float b, float *lh, float *ls, float *lv);
+unsigned int hsv_to_cpack(float h, float s, float v);
+unsigned int rgb_to_cpack(float r, float g, float b);
+void cpack_to_rgb(unsigned int col, float *r, float *g, float *b);
+void MinMaxRGB(short c[]);
- void
-hex_to_rgb(
- char *hexcol,
- float *r,
- float *g,
- float *b
-);
- void
-rgb_to_yuv(
- float r, float g, float b,
- float *ly, float *lu, float *lv
-);
- void
-yuv_to_rgb(
- float y, float u, float v,
- float *lr, float *lg, float *lb
-);
+void VecStar(float mat[][3],float *vec);
- void
-ycc_to_rgb(
- float y, float cb, float cr,
- float *lr, float *lg, float *lb
-);
+short EenheidsMat(float mat[][3]);
- void
-rgb_to_ycc(
- float r, float g, float b,
- float *ly, float *lcb, float *lcr
-);
- void
-rgb_to_hsv(
- float r, float g, float b,
- float *lh, float *ls, float *lv
-);
- unsigned int
-hsv_to_cpack(
- float h, float s, float v
-);
- unsigned int
-rgb_to_cpack(
- float r, float g, float b
-);
- void
-cpack_to_rgb(
- unsigned int col,
- float *r, float *g, float *b
-);
+void QuatToMat3(float *q, float m[][3]);
+void QuatToMat4(float *q, float m[][4]);
- void
-EulToQuat(
- float *eul,
- float *quat
-);
+void Mat3ToQuat_is_ok(float wmat[][3], float *q);
- void
-Mat3MulVecfl(
- float mat[][3],
- float *vec
-);
- void
-Mat3MulVecd(
- float mat[][3],
- double *vec
-);
- void
-Mat3TransMulVecfl(
- float mat[][3],
- float *vec
-);
- void
-VecStar(
- float mat[][3],
- float *vec
-);
- short
-EenheidsMat(
- float mat[][3]
-);
- void
-printmatrix3(
- char *str, float m[][3]
-);
- void
-QuatToMat3(
- float *q,
- float m[][3]
-);
- void
-QuatToMat4(
- float *q,
- float m[][4]
-);
- void
-Mat3ToQuat_is_ok(
- float wmat[][3],
- float *q
-);
- void
-i_ortho(
- float left, float right,
- float bottom, float top,
- float nearClip, float farClip,
- float matrix[][4]
-);
- void
-i_polarview(
- float dist, float azimuth, float incidence, float twist,
- float Vm[][4]
-);
- void
-Mat3Ortho(
- float mat[][3]
-);
- void
-Mat4Ortho(
- float mat[][4]
-);
- void
-VecCopyf(
- float *v1,
- float *v2
-);
- int
-VecLen(
- int *v1,
- int *v2
-);
- void
-CalcNormShort(
- short *v1,
- short *v2,
- short *v3,
- float *n
-) /* is ook uitprodukt */;
-
- void
-CalcNormLong(
- int* v1,
- int*v2,
- int*v3,
- float *n
-);
- void
-MinMax3(
- float *min,
- float *max,
- float *vec
-);
+void i_ortho(float left, float right, float bottom, float top, float nearClip, float farClip, float matrix[][4]);
+void i_polarview(float dist, float azimuth, float incidence, float twist, float Vm[][4]);
+void i_translate(float Tx, float Ty, float Tz, float mat[][4]);
+void i_multmatrix(float icand[][4], float Vm[][4]);
+void i_rotate(float angle, char axis, float mat[][4]);
+
+
+
+
+
+void MinMax3(float *min, float *max, float *vec);
+void SizeToMat3(float *size, float mat[][3]);
+
+void printmatrix3(char *str, float m[][3]);
+void printmatrix4(char *str, float m[][4]);
- void
-SizeToMat3(
- float *size,
- float mat[][3]
-);
- void
-printmatrix4(
- char *str,
- float m[][4]
-);
/* uit Sig.Proc.85 pag 253 */
- void
-Mat3ToQuat(
- float wmat[][3],
- float *q
-);
- void
-i_translate(
- float Tx,
- float Ty,
- float Tz,
- float mat[][4]
-);
- void
-i_multmatrix(
- float icand[][4],
- float Vm[][4]
-);
- void
-i_rotate(
- float angle,
- char axis,
- float mat[][4]
-);
- void
-VecMidf(
- float *v, float *v1, float *v2
-);
- void
-Mat3ToSize(
- float mat[][3], float *size
-);
- void
-Mat4ToSize(
- float mat[][4], float *size
-);
- void
-triatoquat(
- float *v1,
- float *v2,
- float *v3, float *quat
-);
- void
-MinMaxRGB(
- short c[]
-);
- float
-Vec2Lenf(
- float *v1,
- float *v2
-);
- void
-Vec2Mulf(
- float *v1,
- float f
-);
- void
-Vec2Addf(
- float *v,
- float *v1,
- float *v2
-);
- void
-Vec2Subf(
- float *v,
- float *v1,
- float *v2
-);
- void
-Vec2Copyf(
- float *v1,
- float *v2
-);
- float
-Inp2f(
- float *v1,
- float *v2
-);
- float
-Normalize2(
- float *n
-);
+void Mat3ToQuat(float wmat[][3], float *q);
+void Mat4ToQuat(float m[][4], float *q);
+
+void Mat3ToSize(float mat[][3], float *size);
+void Mat4ToSize(float mat[][4], float *size);
+
+void triatoquat(float *v1, float *v2, float *v3, float *quat);
void LocEulSizeToMat4(float mat[][4], float loc[3], float eul[3], float size[3]);
void LocQuatSizeToMat4(float mat[][4], float loc[3], float quat[4], float size[3]);
void tubemap(float x, float y, float z, float *u, float *v);
void spheremap(float x, float y, float z, float *u, float *v);
-
+
int LineIntersectsTriangle(float p1[3], float p2[3], float v0[3], float v1[3], float v2[3], float *lambda);
int point_in_tri_prism(float p[3], float v1[3], float v2[3], float v3[3]);
-
+
#ifdef __cplusplus
}
#endif