#ifndef MADUTILITY
#define MADUTILITY 1
#include <il/il.h>
#include <il/ilu.h>
#include <il/ilut.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>
#include <math.h>
#include <vcg/xml/xml.h>
#include <stdio.h>
#include <assert.h>
#include <vector>
#include <algorithm>
#include <vcg/Point3.h>
#define MAXMAP 50
#define TILE 0
#define WALL 1
#define GOAL 2
#define START 5
#define UP 8
#define ZERO 9
#define FLAT 4
#define INCLINE 3
#define PYRAMID 6
#define LEVEL 1
#define SLIDE 2
#define ENEMY 10
#define MAXENEMY 4
#define MAX_Y 100 // massima dimensione verticale definita nella glortho
#define MAX_X 100
#define MAX_Z 100
#define DEFAULT_Y 0 // dimensione della mappa di default
#define DEFAULT_X 50
#define DEFAULT_Z 50
#define MIN_Y 0 // dimensione minima della mappa
#define MIN_X 10
#define MIN_Z 10
#define NOMAP -1
#define NOGOAL -1 //indica spazi vuoti nel vettore dei tile goal
#define WIREFRAME 1
#define SOLID 2
#define TEXTURED 3
#define ROBOT 55
#define NOROBOT 0
#define NORTH 13
#define SOUTH -13
#define EAST 80
#define WEST -80
#define NTH 0
#define STH 1
#define WST 2
#define EST 3
#define XX 0
#define YY 1
#define ZZ 2
//=======================MadTile========================================
//struttura che contiene le 5 altezze(NO,NE,SO,SE) di una singola
//piastrella. <br>
//le infomazioni significative per ogni piastrella sono 5 valori
//che rappresentano le altezze di 5 punti <br>
//
//<!--TABELLA PER DOCUMENTAZIONE IN HTML-->
// <table border="1" cellpadding="0" cellspacing="0"
// style="border-collapse: collapse" bordercolor="#111111" width="12%"
// id="AutoNumber1" bgcolor="#000000">
// <tr><td width="6%"><p align="left"><font color="#FFFFFF">NE</font>
// </td><td width="75%"> </td><td width="23%">
// <p align="right"><font color="#FFFFFF">NW</font></td></tr>
// <tr> <td width="6%"> </td> <td width="75%"> <p align="center">
// <font color="#FFFFFF">C</font></td> <td width="23%"> </td>
// </tr><tr> <td width="6%"><font color="#FFFFFF">SE</font></td>
// <td width="75%"> </td> <td width="23%"><p align="right">
// <font color="#FFFFFF">SW</font></td></tr></table>
//======================================================================
struct MadTile
{
/**Altezza NordOvest*/
double NW;
/**Altezza NordEst*/
double NE;
/**Altezza SudOvest*/
double SW;
/**Altezza SudEst*/
double SE;
/**Altezza Centrale*/
double C;
/**Id Texture Tile*/
int typet;
/**Id Texture Wall*/
int typew;
/**tag goal*/
int goal;
/**informazione gravità*/
double grav;
/**informazione attrito*/
double attr;
};
//=======================coord==========================================
//struttura per le coordinate di una tile nella mappa (X,Z)
//======================================================================
struct coord
{ /**coordinata Tile X*/
int X;
/**coordinata Tile Z*/
int Z;
};
#endif