X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fmetascene.h;h=0565f3d901b2d783420a83532fdb78b1cd2c958e;hp=9ac90924ebb14395a89f5259600a05b41e2612af;hb=9480e20f4de41693ebd1f22e63d3bcecde878f70;hpb=35c329e4b66fc60622080be1b9ff30148a7e74e4 diff --git a/src/metascene.h b/src/metascene.h index 9ac9092..0565f3d 100644 --- a/src/metascene.h +++ b/src/metascene.h @@ -1,11 +1,26 @@ #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; // plane in local coordinates (original) + Plane wplane; // world coords plane (derived, identical to plane if node == 0) + float reflect; + std::vector objects; + SceneNode *node; + + FlatMirror *next; +}; + + class MetaScene { public: DataMap datamap; @@ -18,6 +33,10 @@ public: std::map scndata; + FlatMirror *mirrors; + std::map objmirror; + + AudioStream *music; MetaScene(); ~MetaScene(); @@ -36,6 +55,8 @@ public: std::list match_nodes(const char *qstr) const; Scene *extract_nodes(const char *qstr); + + int calc_mirror_planes(); }; #endif // METASCENE_H_