#ifndef HELPERFUNCTIONS_H_
#define HELPERFUNCTIONS_H_

#include "../config.h"
#include "../typedefs.h"

//color constants to use with drawing functions
static const float RED[3] = {1,0,0};
static const float GREEN[3] = {0,1,0};
static const float BLUE[3] = {0,0,1};
static const float VIOLET[3] = {1,0,1};
static const float YELLOW[3] = {1,1,0};
static const float LIGHTBLUE[3] = {0,1,1};
static const float WHITE[3] = {1,1,1};
static const float LIGHTGREY[3] = {0.6, 0.6, 0.6};
static const float DARKGREY[3] = {0.3, 0.3, 0.3};
static const float BLACK[3] = {0,0,0};

/** Draws a polygon */
void dsDrawPolygon(const Polygon &p, const float* aColor = NULL);
/** Draws a vector of length direction starting on set position */
void dsDrawVector(const dReal* position, const dReal* direction, const float* aColor = NULL);
/** Draws a vector of length direction starting on set position */
void dsDrawVector(const Vector3r &position, const Vector3r &direction, const float* aColor = NULL);
/** Draws a vector of length direction starting on set position */
void dsDrawVector(const PVector3r &pv, const float* aColor = NULL);
/** Draws a line */
void dsDrawLine(const Line &l, const float* aColor = NULL);
/** Draws a point (small box of given color) */
void dsDrawPoint(const dReal* position, const float* aColor = NULL);
/** Draws a point (small box of given color) */
void dsDrawPoint(const Vector3r &position, const float* aColor = NULL);

#endif /*HELPERFUNCTIONS_H_*/
