X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fmetascene.h;h=0417c00d0b97041e18b072a7f8983410721f3c50;hp=8d0f5c250d0547b71228484d85dc216f850682f5;hb=0d27f859021b4af5dbb5404ef5af012546abf335;hpb=26c1717925471539b9745cce6275b218a47147cd diff --git a/src/metascene.h b/src/metascene.h index 8d0f5c2..0417c00 100644 --- a/src/metascene.h +++ b/src/metascene.h @@ -1,11 +1,24 @@ #ifndef METASCENE_H_ #define METASCENE_H_ +#include #include #include "scene.h" #include "mesh.h" +#include "geom.h" +#include "audio/ovstream.h" #include "datamap.h" + +struct FlatMirror { + Plane plane; + float reflect; + //std::vector objects; + + FlatMirror *next; +}; + + class MetaScene { public: DataMap datamap; @@ -18,6 +31,11 @@ public: std::map scndata; + FlatMirror *mirrors; + int num_mirrors; + std::map objmirror; + + AudioStream *music; MetaScene(); ~MetaScene(); @@ -27,6 +45,17 @@ public: void update(float dt); void draw() const; + + /* helper functions which end up calling the corresponding Scene functions + * for every scene + */ + SceneNode *find_node(const char *name) const; + SceneNode *match_node(const char *qstr) const; + std::list match_nodes(const char *qstr) const; + + Scene *extract_nodes(const char *qstr); + + int calc_mirror_planes(); }; #endif // METASCENE_H_