charles/src/basics.h

56 lines
890 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 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);
Vector3 vector_sub_vector(Vector3 m, Vector3 s);
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);
typedef struct {
uint8_t red, green, blue, alpha;
} Color;
2013-09-05 22:54:45 -07:00
#endif