#include <regex>
#include "scene.h"
#include "objmesh.h"
+#include "app.h"
static void destroy_node_tree(SceneNode *n);
-Scene::Scene(TextureSet *tset)
+Scene::Scene()
{
metascn = 0;
nodes = 0;
walk_mesh = 0;
-
- if(tset) {
- texset = tset;
- own_texset = false;
- } else {
- texset = new TextureSet;
- own_texset = true;
- }
}
Scene::~Scene()
delete objects[i];
}
objects.clear();
-
- if(own_texset) {
- delete texset;
- }
- texset = 0;
}
static void destroy_node_tree(SceneNode *n)
bool Scene::merge(Scene *scn)
{
- if(texset != scn->texset) {
- // TODO handle this properly
- error_log("for now only able to merge scenes using the same texture set\n");
- return false;
- }
-
if(walk_mesh) {
if(scn->walk_mesh) {
walk_mesh->append(*scn->walk_mesh);
return 0;
}
- Scene *res = new Scene(texset);
+ Scene *res = new Scene;
for(SceneNode *n : nodelist) {