]> git.tdb.fi Git - libs/gl.git/blobdiff - source/resources/resources.cpp
Split the Light class into subclasses by light type
[libs/gl.git] / source / resources / resources.cpp
index 32f59d93d6e5a85f0bea998fd6bc446deb3fe88f..fa20a0bf2e38d5cc072908480ce0bf3a62008257 100644 (file)
@@ -4,10 +4,10 @@
 #include "armature.h"
 #include "basicmaterial.h"
 #include "camera.h"
+#include "directionallight.h"
 #include "error.h"
 #include "font.h"
 #include "keyframe.h"
-#include "light.h"
 #include "lighting.h"
 #include "mesh.h"
 #include "module.h"
@@ -16,6 +16,7 @@
 #include "orderedscene.h"
 #include "pbrmaterial.h"
 #include "sequencetemplate.h"
+#include "pointlight.h"
 #include "pose.h"
 #include "program.h"
 #include "resourcemanager.h"
@@ -52,9 +53,10 @@ Resources::Resources(bool set_as_global):
                .notify(&set_debug_name<Material>);
        add_type<Camera>().keyword("camera")
                .notify(&set_debug_name<Camera>);
+       add_type<DirectionalLight>().base<Light>().suffix(".light")
+               .creator([this](const string &n) -> DirectionalLight * { create_generic<Light>(n); return 0; });
        add_type<Font>().keyword("font");
        add_type<KeyFrame>().suffix(".kframe").keyword("keyframe");
-       add_type<Light>().keyword("light");
        add_type<Lighting>().suffix(".lightn").keyword("lighting")
                .notify(&set_debug_name<Lighting>);
        add_type<Mesh>().keyword("mesh")
@@ -70,6 +72,8 @@ Resources::Resources(bool set_as_global):
        add_type<PbrMaterial>().base<Material>().suffix(".mat")
                .creator([this](const string &n) -> PbrMaterial * { create_generic<Material>(n); return 0; })
                .notify(&set_debug_name<Material>);
+       add_type<PointLight>().base<Light>().suffix(".light")
+               .creator([this](const string &n) -> PointLight * { create_generic<Light>(n); return 0; });
        add_type<SequenceTemplate>().suffix(".seq").keyword("sequence");
        add_type<Pose>().keyword("pose");
        add_type<Program>().keyword("shader")