dungeon_crawler
annotate prototype/src/tile.h @ 45:dfd3a413ef9e
particle system 1
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 12 Sep 2012 06:04:20 +0300 |
parents | 862461b686f4 |
children | f3030df27110 |
rev | line source |
---|---|
nuclear@1 | 1 #ifndef TILE_H_ |
nuclear@1 | 2 #define TILE_H_ |
nuclear@1 | 3 |
nuclear@2 | 4 #include <vector> |
nuclear@7 | 5 #include <map> |
nuclear@7 | 6 #include <assimp/scene.h> |
nuclear@38 | 7 #include <psys/psys.h> |
nuclear@2 | 8 #include "mesh.h" |
nuclear@4 | 9 #include "light.h" |
nuclear@2 | 10 |
nuclear@3 | 11 enum { |
nuclear@3 | 12 TILE_NORTH = 1, |
nuclear@3 | 13 TILE_SOUTH = 2, |
nuclear@3 | 14 TILE_EAST = 4, |
nuclear@3 | 15 TILE_WEST = 8, |
nuclear@7 | 16 TILE_ALL = 0xffff |
nuclear@3 | 17 }; |
nuclear@3 | 18 |
nuclear@11 | 19 class TileSet; |
nuclear@11 | 20 |
nuclear@1 | 21 class Tile { |
nuclear@2 | 22 private: |
nuclear@11 | 23 TileSet *tset; |
nuclear@11 | 24 |
nuclear@2 | 25 std::vector<Mesh*> meshes; |
nuclear@21 | 26 std::vector<unsigned int> mesh_side, light_side; |
nuclear@3 | 27 std::vector<Light*> lights; |
nuclear@45 | 28 // attributes for gridcell-unique particle systems |
nuclear@38 | 29 std::vector<struct psys_attributes*> psattr; |
nuclear@45 | 30 // global particle systems (simulated once, drawn for each tile instance). |
nuclear@45 | 31 std::vector<struct psys_emitter*> psys_global; |
nuclear@2 | 32 |
nuclear@4 | 33 int load_lights(const aiScene *scn); |
nuclear@7 | 34 int load_meshes(const aiScene *scn, const std::map<aiMesh*, aiNode*> &nmap); |
nuclear@4 | 35 |
nuclear@1 | 36 public: |
nuclear@11 | 37 Tile(TileSet *tileset = 0); |
nuclear@38 | 38 ~Tile(); |
nuclear@11 | 39 |
nuclear@45 | 40 const struct psys_attributes **get_unique_psys() const; |
nuclear@45 | 41 int get_unique_psys_count() const; |
nuclear@45 | 42 |
nuclear@1 | 43 bool load(const char *fname); |
nuclear@1 | 44 |
nuclear@38 | 45 void update(unsigned long msec, float dt); |
nuclear@38 | 46 |
nuclear@3 | 47 void draw(unsigned int drawmask) const; |
nuclear@23 | 48 void draw_lights(unsigned int drawmask) const; |
nuclear@45 | 49 void draw_psys(unsigned int drawmask) const; |
nuclear@1 | 50 }; |
nuclear@1 | 51 |
nuclear@5 | 52 |
nuclear@1 | 53 #endif // TILE_H_ |