/* * map.h * * Created on: 2 oct. 2011 * Author: laurent */ #ifndef MAPFRAG_H_ #define MAPFRAG_H_ #include #define GL3_PROTOTYPES 1 #include "GL3/gl3.h" #include "object.h" #include "obj_3d.h" typedef struct mapFragItemsList { object *objGL; obj3d *obj3ds; struct mapFragItemsList *next; } mapFragItemsList; mapFragItemsList * mapFragItemsListInit(obj3d *obj3ds); void mapFragItemsListCalcObject(mapFragItemsList *mfoj); void mapFragItemsListFree(mapFragItemsList *mfil); typedef struct { mapFragItemsList *collisionObjects; mapFragItemsList *mapsObjects; //FIXME: lights } mapfrag; void mapFragInit(mapfrag *m); void mapFragFree(mapfrag *m); void mapFragLoadCollisions(mapfrag *m, const char *file); void mapFragLoadCollisionsBin(mapfrag *m, const char *file); void mapFragLoadCollisionsXML(mapfrag *m, const char *file); pv3dIr * mapFragTestVectorCollisionPoint(mapfrag *m, v3d *pos, v3d *dir); pv3dIr * mapFragTestVectorCollisionSphere(mapfrag *m, v3d *pos, GLfloat r); pv3dIr * mapFragTestRayCollisionPoint(mapfrag *m, v3d *pos, v3d *dir); void mapFragOptimizedCollisions(mapfrag *m); void mapFragOptimizedMap(mapfrag *m); void mapFragCollisionGL3DTriangles(mapfrag *m); void mapFragMapGL3DTriangles(mapfrag *m); void mapFragPrint(mapfrag *m); #endif /* MAPFRAG_H_ */