--- /dev/null
+
+/*
+ * CS5600 University of Utah
+ * Charles McGarvey
+ * mcgarvey@eng.utah.edu
+ */
+
+#ifndef _LIGHT_H_
+#define _LIGHT_H_
+
+#include "color.h"
+#include "vec.h"
+
+
+/*
+ * A light source.
+ */
+struct light
+{
+ color_t color;
+ vec_t position;
+};
+typedef struct light light_t;
+
+
+/*
+ * Initialize a light with a color and position.
+ */
+INLINE_MAYBE
+void light_init(light_t* l, color_t color, vec_t position)
+{
+ l->color = color;
+ l->position = position;
+}
+
+
+/*
+ * Create a new light with a color and position.
+ */
+INLINE_MAYBE
+light_t light_new(color_t color, vec_t position)
+{
+ light_t l;
+ light_init(&l, color, position);
+ return l;
+}
+
+
+#endif // _LIGHT_H_
+