charles/src/basics.h

60 lines
998 B
C
Raw Normal View History

2013-09-05 22:54:45 -07:00
/* basics.h
*
* Declaration of basic types: Vector.
*
* Eryn Wells <eryn@erynwells.me>
*/
#ifndef __BASICS_H
#define __BASICS_H
#include <stdint.h>
2013-09-05 22:54:45 -07:00
typedef struct {
float x, y, z;
} Vector3;
extern const Vector3 Vector3Zero;
2013-09-05 22:54:45 -07:00
Vector3 vector_init(float x, float y, float z);
Vector3 vector_add_vector(Vector3 v, Vector3 a);
Vector3 vector_mul_scalar(Vector3 v, float f);
Vector3 vector_sub_vector(Vector3 m, Vector3 s);
Vector3 vector_negate(Vector3 v);
float vector_length2(Vector3 v);
float vector_length(Vector3 v);
float vector_dot(Vector3 v, Vector3 f);
Vector3 vector_normalize(Vector3 v);
2013-09-05 22:54:45 -07:00
2013-09-06 19:01:02 -07:00
typedef struct {
float x, y;
float w, h;
} Rect;
Rect rect_init(float x, float y, float h, float w);
typedef struct {
Vector3 location;
Vector3 direction;
} Ray;
Ray ray_init(Vector3 location, Vector3 direction);
Vector3 ray_parameterize(Ray ray, float t);
typedef struct {
uint8_t red, green, blue, alpha;
} Color;
2013-09-07 22:12:35 -07:00
extern const Color ColorBlack;
2013-09-05 22:54:45 -07:00
#endif