aboutsummaryrefslogtreecommitdiff
path: root/src/raymath.c
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2014-09-16 22:51:31 +0200
committerraysan5 <raysan5@gmail.com>2014-09-16 22:51:31 +0200
commitfc6081fe70ab7c3b037c0ab9f38478904d3cdde2 (patch)
tree6635fd800fa673ef3fb568c6f47ebc76a2b8ad6e /src/raymath.c
parent01651af08a494b1ac08c897695891ad7cf44ad47 (diff)
downloadraylib-fc6081fe70ab7c3b037c0ab9f38478904d3cdde2.tar.gz
raylib-fc6081fe70ab7c3b037c0ab9f38478904d3cdde2.zip
raylib 1.2
This is a huge update. Check CHANGELOG for details
Diffstat (limited to 'src/raymath.c')
-rw-r--r--src/raymath.c41
1 files changed, 23 insertions, 18 deletions
diff --git a/src/raymath.c b/src/raymath.c
index b3706b25..e598b381 100644
--- a/src/raymath.c
+++ b/src/raymath.c
@@ -1,4 +1,4 @@
-/*********************************************************************************************
+/**********************************************************************************************
*
* raymath
*
@@ -85,17 +85,17 @@ Vector3 VectorPerpendicular(Vector3 v)
Vector3 result;
float min = fabs(v.x);
- Vector3 cardinalAxis = {1.0, 0.0, 0.0};
+ Vector3 cardinalAxis = {1.0f, 0.0f, 0.0f};
if (fabs(v.y) < min)
{
min = fabs(v.y);
- cardinalAxis = (Vector3){0.0, 1.0, 0.0};
+ cardinalAxis = (Vector3){0.0f, 1.0f, 0.0f};
}
if(fabs(v.z) < min)
{
- cardinalAxis = (Vector3){0.0, 0.0, 1.0};
+ cardinalAxis = (Vector3){0.0f, 0.0f, 1.0f};
}
result = VectorCrossProduct(v, cardinalAxis);
@@ -216,7 +216,7 @@ void VectorTransform(Vector3 *v, Matrix mat)
// Return a Vector3 init to zero
Vector3 VectorZero(void)
{
- Vector3 zero = { 0.0, 0.0, 0.0 };
+ Vector3 zero = { 0.0f, 0.0f, 0.0f };
return zero;
}
@@ -377,7 +377,7 @@ void MatrixNormalize(Matrix *mat)
}
// Returns identity matrix
-Matrix MatrixIdentity()
+Matrix MatrixIdentity(void)
{
Matrix result = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 };
@@ -494,6 +494,7 @@ Matrix MatrixRotate(float angleX, float angleY, float angleZ)
// Create rotation matrix from axis and angle
// TODO: Test this function
+// NOTE: NO prototype defined!
Matrix MatrixFromAxisAngle(Vector3 axis, float angle)
{
Matrix result;
@@ -549,6 +550,7 @@ Matrix MatrixFromAxisAngle(Vector3 axis, float angle)
// Create rotation matrix from axis and angle (version 2)
// TODO: Test this function
+// NOTE: NO prototype defined!
Matrix MatrixFromAxisAngle2(Vector3 axis, float angle)
{
Matrix result;
@@ -725,21 +727,24 @@ Matrix MatrixFrustum(double left, double right, double bottom, double top, doubl
float tb = (top - bottom);
float fn = (far - near);
- result.m0 = (near*2) / rl;
+ result.m0 = (near*2.0f) / rl;
result.m1 = 0;
result.m2 = 0;
result.m3 = 0;
+
result.m4 = 0;
- result.m5 = (near*2) / tb;
+ result.m5 = (near*2.0f) / tb;
result.m6 = 0;
result.m7 = 0;
+
result.m8 = (right + left) / rl;
result.m9 = (top + bottom) / tb;
result.m10 = -(far + near) / fn;
- result.m11 = -1;
+ result.m11 = -1.0f;
+
result.m12 = 0;
result.m13 = 0;
- result.m14 = -(far*near*2) / fn;
+ result.m14 = -(far*near*2.0f) / fn;
result.m15 = 0;
return result;
@@ -748,7 +753,7 @@ Matrix MatrixFrustum(double left, double right, double bottom, double top, doubl
// Returns perspective projection matrix
Matrix MatrixPerspective(double fovy, double aspect, double near, double far)
{
- double top = near*tan(fovy*PI / 360.0);
+ double top = near*tanf(fovy*PI / 360.0f);
double right = top*aspect;
return MatrixFrustum(-right, right, -top, top, near, far);
@@ -876,18 +881,18 @@ Quaternion QuaternionSlerp(Quaternion q1, Quaternion q2, float amount)
float cosHalfTheta = q1.x*q2.x + q1.y*q2.y + q1.z*q2.z + q1.w*q2.w;
- if (abs(cosHalfTheta) >= 1.0) result = q1;
+ if (abs(cosHalfTheta) >= 1.0f) result = q1;
else
{
float halfTheta = acos(cosHalfTheta);
- float sinHalfTheta = sqrt(1.0 - cosHalfTheta*cosHalfTheta);
+ float sinHalfTheta = sqrt(1.0f - cosHalfTheta*cosHalfTheta);
- if (abs(sinHalfTheta) < 0.001)
+ if (abs(sinHalfTheta) < 0.001f)
{
- result.x = (q1.x*0.5 + q2.x*0.5);
- result.y = (q1.y*0.5 + q2.y*0.5);
- result.z = (q1.z*0.5 + q2.z*0.5);
- result.w = (q1.w*0.5 + q2.w*0.5);
+ result.x = (q1.x*0.5f + q2.x*0.5f);
+ result.y = (q1.y*0.5f + q2.y*0.5f);
+ result.z = (q1.z*0.5f + q2.z*0.5f);
+ result.w = (q1.w*0.5f + q2.w*0.5f);
}
else
{