bloboland

annotate src/level.h @ 4:9021a906c5d3

lots of stuff
author John Tsiombikas <nuclear@member.fsf.org>
date Tue, 18 Dec 2012 06:13:09 +0200
parents cfe68befb7cc
children
rev   line source
nuclear@1 1 #ifndef LEVEL_H_
nuclear@1 2 #define LEVEL_H_
nuclear@1 3
nuclear@1 4 #include <vector>
nuclear@1 5 #include "volume.h"
nuclear@1 6
nuclear@4 7 struct Blob {
nuclear@4 8 Vector3 pos;
nuclear@4 9 Vector3 velocity;
nuclear@4 10 };
nuclear@4 11
nuclear@1 12 class Level {
nuclear@1 13 public:
nuclear@1 14 Volume *terrain;
nuclear@4 15 std::vector<Blob> blobs;
nuclear@4 16
nuclear@4 17 Vector3 world_size;
nuclear@1 18
nuclear@1 19 Level();
nuclear@1 20 ~Level();
nuclear@1 21
nuclear@1 22 void generate();
nuclear@1 23
nuclear@1 24 bool load(const char *fname);
nuclear@1 25 bool save(const char *fname) const;
nuclear@4 26
nuclear@4 27 const Vector4 &get_voxel(const Vector3 &pos) const;
nuclear@4 28 Vector3 calc_normal(const Vector3 &pos) const;
nuclear@4 29
nuclear@4 30 bool collision(const Vector3 &pos0, const Vector3 &pos1, Vector3 *outpos, Vector3 *outnorm) const;
nuclear@1 31 };
nuclear@1 32
nuclear@1 33 #endif // LEVEL_H_