/* illum.h */

#pragma once

#include "geo.h"

typedef struct {
	unsigned int width;
	unsigned int height;
	uint32_t* pixels;
} texture;

typedef struct {
	num   intensity;
	tuple dir;
} lighting_t;

typedef struct {
	texture*	texture;
	tuple 		diffuse_colour;
	tuple 		specular_colour;
	num			shininess;
	num			reflectivity;
	num			refractive_index;
	num			refractivity;
} material_t;

/* Functions in illum.c */

texture texture_alloc(const char* filename);
void    texture_free(texture* tex);
