#ifndef __UTIL_H__
#define __UTIL_H__

#define RGB_RAD 8

#define SOUND_PLAYER "sfplay"

#include <gl.h>
#include "utility.h"
#include "states.h"

/* this function should generate a display
   list - bgntmesh(), v3f(), n3f(), t2f(), ... endtmesh() etc. */
typedef int (*DisplayList)();

void set_viewport(RenderState state);
void set_view(RenderState state);
void transformations(RenderState state);
void updatematrix(RenderState state);
float get_theta(float *v1, float *v2);
float get_phi(float *v1, float *v2, float t);
int load_cursor(char *file, int *hotspot, int *c_rgb, unsigned short *c_array);
float adjust_twist_angle(float old_theta, float new_theta, float twist_angle);
int make_display_list(Object obj, DisplayList display_list);

#endif /* __UTIL_H__ */