annotate prototype/src/tile.h @ 46:f3030df27110
debugging the particles
author |
John Tsiombikas <nuclear@mutantstargoat.com> |
date |
Thu, 13 Sep 2012 06:33:51 +0300 |
parents |
dfd3a413ef9e |
children |
aa9e28670ae2 |
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@46
|
26 std::vector<unsigned int> mesh_side, light_side, psys_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@46
|
32 long last_upd;
|
nuclear@2
|
33
|
nuclear@4
|
34 int load_lights(const aiScene *scn);
|
nuclear@7
|
35 int load_meshes(const aiScene *scn, const std::map<aiMesh*, aiNode*> &nmap);
|
nuclear@4
|
36
|
nuclear@1
|
37 public:
|
nuclear@11
|
38 Tile(TileSet *tileset = 0);
|
nuclear@38
|
39 ~Tile();
|
nuclear@11
|
40
|
nuclear@46
|
41 const struct psys_attributes * const *get_unique_psys() const;
|
nuclear@45
|
42 int get_unique_psys_count() const;
|
nuclear@45
|
43
|
nuclear@1
|
44 bool load(const char *fname);
|
nuclear@1
|
45
|
nuclear@38
|
46 void update(unsigned long msec, float dt);
|
nuclear@38
|
47
|
nuclear@3
|
48 void draw(unsigned int drawmask) const;
|
nuclear@23
|
49 void draw_lights(unsigned int drawmask) const;
|
nuclear@46
|
50 void draw_post(unsigned int drawmask) const;
|
nuclear@1
|
51 };
|
nuclear@1
|
52
|
nuclear@5
|
53
|
nuclear@1
|
54 #endif // TILE_H_
|