projects
/
laserbrain_demo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mirror planes detection needs work
[laserbrain_demo]
/
src
/
metascene.h
diff --git
a/src/metascene.h
b/src/metascene.h
index
c363901
..
6987f00
100644
(file)
--- a/
src/metascene.h
+++ b/
src/metascene.h
@@
-1,12
+1,25
@@
#ifndef METASCENE_H_
#define METASCENE_H_
#ifndef METASCENE_H_
#define METASCENE_H_
+#include <vector>
#include <map>
#include "scene.h"
#include "mesh.h"
#include <map>
#include "scene.h"
#include "mesh.h"
+#include "geom.h"
#include "audio/ovstream.h"
#include "datamap.h"
#include "audio/ovstream.h"
#include "datamap.h"
+
+struct FlatMirror {
+ Plane plane;
+ float reflect;
+ std::vector<Object*> objects;
+ SceneNode *node;
+
+ FlatMirror *next;
+};
+
+
class MetaScene {
public:
DataMap datamap;
class MetaScene {
public:
DataMap datamap;
@@
-19,6
+32,9
@@
public:
std::map<Scene*, void*> scndata;
std::map<Scene*, void*> scndata;
+ FlatMirror *mirrors;
+ std::map<Object*, FlatMirror*> objmirror;
+
AudioStream *music;
MetaScene();
AudioStream *music;
MetaScene();
@@
-38,6
+54,8
@@
public:
std::list<SceneNode*> match_nodes(const char *qstr) const;
Scene *extract_nodes(const char *qstr);
std::list<SceneNode*> match_nodes(const char *qstr) const;
Scene *extract_nodes(const char *qstr);
+
+ int calc_mirror_planes();
};
#endif // METASCENE_H_
};
#endif // METASCENE_H_