nuclear@1: #ifndef LEVEL_H_ nuclear@1: #define LEVEL_H_ nuclear@1: nuclear@1: #include nuclear@1: #include "volume.h" nuclear@1: nuclear@4: struct Blob { nuclear@4: Vector3 pos; nuclear@4: Vector3 velocity; nuclear@4: }; nuclear@4: nuclear@1: class Level { nuclear@1: public: nuclear@1: Volume *terrain; nuclear@4: std::vector blobs; nuclear@4: nuclear@4: Vector3 world_size; nuclear@1: nuclear@1: Level(); nuclear@1: ~Level(); nuclear@1: nuclear@1: void generate(); nuclear@1: nuclear@1: bool load(const char *fname); nuclear@1: bool save(const char *fname) const; nuclear@4: nuclear@4: const Vector4 &get_voxel(const Vector3 &pos) const; nuclear@4: Vector3 calc_normal(const Vector3 &pos) const; nuclear@4: nuclear@4: bool collision(const Vector3 &pos0, const Vector3 &pos1, Vector3 *outpos, Vector3 *outnorm) const; nuclear@1: }; nuclear@1: nuclear@1: #endif // LEVEL_H_