Add basics module

This commit is contained in:
Eryn Wells 2013-09-05 22:54:45 -07:00
parent 31fefc9235
commit 296605f364
3 changed files with 75 additions and 0 deletions

View file

@ -1,6 +1,7 @@
Import('env')
files = Split("""
basics.c
charles.c
scene.c
""")

48
src/basics.c Normal file
View file

@ -0,0 +1,48 @@
/* basics.c
*
* Definition of basic types: Vector.
*
* Eryn Wells <eryn@erynwells.me>
*/
#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);
}

26
src/basics.h Normal file
View file

@ -0,0 +1,26 @@
/* basics.h
*
* Declaration of basic types: Vector.
*
* Eryn Wells <eryn@erynwells.me>
*/
#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