#ifndef H_ECP

#include "../../tools/vector/vector.h"
#include "../../tools/ppm/ppm.h"
#include "types.h"

/*             *
 *  Constants  *
 *             */

/* Amount of zoom */
#define ZOOM 900.0

#define CENTRX WIDTH/2
#define CENTRY HEIGHT/2

/* Standard min function */
#define min(x, y) (((x)<(y))?(x):(y))

/* Boolean values */
#define FALSE 0
#define TRUE 1

/* The zero vector */
#define ZERO { 0.0, 0.0, 0.0 }

/* "A very small number" */
#define EPS 0.0000001

/* Used for the .side element of struct intersection */
#define NOINTERSECTION -1

/*                   *
 *    Prototypes     *
 *                   */

void drawline(int px, int py, int qx, int qy);
scalar sqr(scalar x);
intersection sphintersect(line li, sphere sph);
intersection wallintersect(line li, wall wa);
intersection tubeintersect(line li, tube tu);
intersection pipeintersect(line li, pipe pi);
intersection coneintersect(line li, cone co);
color pixel(vector v, bool shadowsoff);
void render_the_whole_picture(bool antialias, bool preview, bool shadowsoff);

#define H_ECP
#endif

