diff options
| author | raysan5 <raysan5@gmail.com> | 2014-03-25 12:40:35 +0100 |
|---|---|---|
| committer | raysan5 <raysan5@gmail.com> | 2014-03-25 12:40:35 +0100 |
| commit | 96f520ff6d085536205feb1f943974e354577df4 (patch) | |
| tree | c839c999b38d8f1f07933a2b6a1bb1e45d786532 /src/vector3.c | |
| parent | 1c8dce429ee5a58d535fcca0e29fe3711aa3fcb5 (diff) | |
| download | raylib-96f520ff6d085536205feb1f943974e354577df4.tar.gz raylib-96f520ff6d085536205feb1f943974e354577df4.zip | |
Road to raylib 1.1 - Testing rlgl
Diffstat (limited to 'src/vector3.c')
| -rw-r--r-- | src/vector3.c | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/src/vector3.c b/src/vector3.c deleted file mode 100644 index 6b0e1573..00000000 --- a/src/vector3.c +++ /dev/null @@ -1,140 +0,0 @@ -/********************************************************************************************* -* -* raylib.vector3 -* -* Vector3 Functions Definition -* -* Copyright (c) 2013 Ramon Santamaria (Ray San - raysan@raysanweb.com) -* -* This software is provided "as-is", without any express or implied warranty. In no event -* will the authors be held liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, including commercial -* applications, and to alter it and redistribute it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that you -* wrote the original software. If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but is not required. -* -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* -* 3. This notice may not be removed or altered from any source distribution. -* -**********************************************************************************************/ - -#include "vector3.h" - -#include <math.h> // Used for fabs(), sqrt() - -// Add two vectors -Vector3 VectorAdd(Vector3 v1, Vector3 v2) -{ - Vector3 out; - - out.x = v1.x + v2.x; - out.y = v1.y + v2.y; - out.z = v1.z + v2.z; - - return out; -} - -// Substract two vectors -Vector3 VectorSubtract(Vector3 v1, Vector3 v2) -{ - Vector3 out; - - out.x = v1.x - v2.x; - out.y = v1.y - v2.y; - out.z = v1.z - v2.z; - - return out; -} - -// Calculate two vectors cross product -Vector3 VectorCrossProduct(Vector3 v1, Vector3 v2) -{ - Vector3 cross; - - cross.x = v1.y*v2.z - v1.z*v2.y; - cross.y = v1.z*v2.x - v1.x*v2.z; - cross.z = v1.x*v2.y - v1.y*v2.x; - - return cross; -} - -// Calculate one vector perpendicular vector -Vector3 VectorPerpendicular(Vector3 v) -{ - Vector3 out; - - float min = fabs(v.x); - Vector3 cardinalAxis = {1.0, 0.0, 0.0}; - - if (fabs(v.y) < min) - { - min = fabs(v.y); - cardinalAxis = (Vector3){0.0, 1.0, 0.0}; - } - - if(fabs(v.z) < min) - { - cardinalAxis = (Vector3){0.0, 0.0, 1.0}; - } - - out = VectorCrossProduct(v, cardinalAxis); - - return out; -} - -// Calculate two vectors dot product -float VectorDotProduct(Vector3 v1, Vector3 v2) -{ - float dot; - - dot = v1.x*v2.x + v1.y*v2.y + v1.z*v2.z; - - return dot; -} - -// Calculate vector lenght -float VectorLength(const Vector3 v) -{ - float length; - - length = sqrt(v.x*v.x + v.y*v.y + v.z*v.z); - - return length; -} - -// Scale provided vector -void VectorScale(Vector3 *v, float scale) -{ - v->x *= scale; - v->y *= scale; - v->z *= scale; -} - -// Invert provided vector (direction) -void VectorInverse(Vector3 *v) -{ - v->x = -v->x; - v->y = -v->y; - v->z = -v->z; -} - -// Normalize provided vector -void VectorNormalize(Vector3 *v) -{ - float length, ilength; - - length = VectorLength(*v); - - if (length == 0) length = 1; - - ilength = 1.0/length; - - v->x *= ilength; - v->y *= ilength; - v->z *= ilength; -} |
