Initial commit
This commit is contained in:
27
Misc.c
Normal file
27
Misc.c
Normal file
@@ -0,0 +1,27 @@
|
||||
#include "CgeMath.h"
|
||||
|
||||
float CgeLerpf(float a, float b, float t) {
|
||||
return a + (b - a) * t;
|
||||
}
|
||||
|
||||
void CgeTriangle3fBarycentric(const float a[3], const float b[3],
|
||||
const float c[3], const float point[3],
|
||||
float out[3]) {
|
||||
float tmp1[3], tmp2[3], tmp3[3];
|
||||
float t11, t12, t22, t31, t32, denom;
|
||||
|
||||
CgeVec3fSub(b, a, tmp1);
|
||||
CgeVec3fSub(c, a, tmp2);
|
||||
CgeVec3fSub(point, a, tmp3);
|
||||
|
||||
t11 = CgeVec3fDot(tmp1, tmp1);
|
||||
t12 = CgeVec3fDot(tmp1, tmp2);
|
||||
t22 = CgeVec3fDot(tmp2, tmp2);
|
||||
t31 = CgeVec3fDot(tmp3, tmp1);
|
||||
t32 = CgeVec3fDot(tmp3, tmp2);
|
||||
denom = 1.0f / (t11 * t22 - t12 * t12);
|
||||
|
||||
out[1] = (t22 * t31 - t12 * t32) * denom;
|
||||
out[2] = (t11 * t32 - t12 * t31) * denom;
|
||||
out[0] = 1.0f - out[1] - out[2];
|
||||
}
|
||||
Reference in New Issue
Block a user