From 296605f3641496efeba427f91a465d036fdb7422 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Thu, 5 Sep 2013 22:54:45 -0700 Subject: [PATCH] Add basics module --- src/SConscript | 1 + src/basics.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/basics.h | 26 ++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 src/basics.c create mode 100644 src/basics.h diff --git a/src/SConscript b/src/SConscript index 8815e7f..3619e44 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,6 +1,7 @@ Import('env') files = Split(""" + basics.c charles.c scene.c """) diff --git a/src/basics.c b/src/basics.c new file mode 100644 index 0000000..50c3cb4 --- /dev/null +++ b/src/basics.c @@ -0,0 +1,48 @@ +/* basics.c + * + * Definition of basic types: Vector. + * + * Eryn Wells + */ + +#include "basics.h" + + +/* + * vector_init -- + * + * Create a new vector given x, y, and z coordinates. + */ +Vector3 +vector_init(float x, float y, float z) +{ + Vector3 v; + v.x = x; + v.y = y; + v.z = z; + return v; +} + + +/* + * vector_mult_scalar -- + * + * Multiply a vector by a scalar. Return a new vector. + */ +Vector3 +vector_mult_scalar(Vector3 v, float f) +{ + return vector_init(f * v.x, f * v.y, f * v.z); +} + + +/* + * vector_mult_vector -- + * + * Multiply a vector by another vector. Return a new vector. + */ +Vector3 +vector_mult_vector(Vector3 v, Vector3 f) +{ + return vector_init(v.x * f.x, v.y * f.y, v.z * f.z); +} diff --git a/src/basics.h b/src/basics.h new file mode 100644 index 0000000..d73c2fa --- /dev/null +++ b/src/basics.h @@ -0,0 +1,26 @@ +/* basics.h + * + * Declaration of basic types: Vector. + * + * Eryn Wells + */ + + +#ifndef __BASICS_H +#define __BASICS_H + + +typedef struct { + float x, y, z; +} Vector3; + + +extern const Vector3 ZeroVector3; + + +Vector3 vector_init(float x, float y, float z); +Vector3 vector_mult_scalar(Vector3 v, float f); +Vector3 vector_mult_vector(Vector3 v, Vector3 f); + + +#endif