]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/sky.cpp
Support effects and subordinate sequences inside sequence templates
[libs/gl.git] / source / effects / sky.cpp
index 855509d15a3c1affb3dcc61dd41986f4decd3ae4..ab322f230e34365e6363c3ea9c867b2be251d79c 100644 (file)
@@ -1,6 +1,7 @@
 #include <msp/geometry/hypersphere.h>
 #include <msp/geometry/ray.h>
 #include "directionallight.h"
 #include <msp/geometry/hypersphere.h>
 #include <msp/geometry/ray.h>
 #include "directionallight.h"
+#include "error.h"
 #include "mesh.h"
 #include "renderer.h"
 #include "resources.h"
 #include "mesh.h"
 #include "renderer.h"
 #include "resources.h"
@@ -183,5 +184,29 @@ Sky::Planet Sky::Planet::earth()
        return planet;
 }
 
        return planet;
 }
 
+
+Sky *Sky::Template::create(const map<string, Renderable *> &renderables) const
+{
+       Renderable *content = get_item(renderables, content_name);
+       if(!content || !sun)
+               throw invalid_operation("Sky::Template::create");
+       return new Sky(*content, *sun);
+}
+
+
+DataFile::Loader::ActionMap Sky::Template::Loader::shared_actions;
+
+Sky::Template::Loader::Loader(Template &t, Collection &c):
+       DerivedObjectLoader<Template, Effect::Template::Loader>(t, c)
+{
+       set_actions(shared_actions);
+}
+
+void Sky::Template::Loader::init_actions()
+{
+       Effect::Template::Loader::init_actions();
+       add("sun", &Template::sun);
+}
+
 } // namespace GL
 } // namespace Msp
 } // namespace GL
 } // namespace Msp