summaryrefslogtreecommitdiff
path: root/assetFactory
diff options
context:
space:
mode:
Diffstat (limited to 'assetFactory')
-rw-r--r--assetFactory/lights.cpp14
-rw-r--r--assetFactory/lights.h18
2 files changed, 32 insertions, 0 deletions
diff --git a/assetFactory/lights.cpp b/assetFactory/lights.cpp
new file mode 100644
index 0000000..ec8e17e
--- /dev/null
+++ b/assetFactory/lights.cpp
@@ -0,0 +1,14 @@
+#include "lights.h"
+
+bool
+SpotLight::persist(Persistence::PersistenceStore & store)
+{
+ return STORE_TYPE && STORE_MEMBER(position) && STORE_MEMBER(direction) && STORE_MEMBER(colour) && STORE_MEMBER(kq)
+ && STORE_MEMBER(arc);
+}
+
+bool
+PointLight::persist(Persistence::PersistenceStore & store)
+{
+ return STORE_TYPE && STORE_MEMBER(position) && STORE_MEMBER(colour) && STORE_MEMBER(kq);
+}
diff --git a/assetFactory/lights.h b/assetFactory/lights.h
new file mode 100644
index 0000000..8657d85
--- /dev/null
+++ b/assetFactory/lights.h
@@ -0,0 +1,18 @@
+#pragma once
+
+#include "gfx/models/lights.h"
+#include "persistence.h"
+#include "stdTypeDefs.h"
+
+struct SpotLight : Persistence::Persistable, SpotLightDef, StdTypeDefs<SpotLight> {
+private:
+ friend Persistence::SelectionPtrBase<std::shared_ptr<SpotLight>>;
+ bool persist(Persistence::PersistenceStore & store) override;
+};
+
+struct PointLight : Persistence::Persistable, PointLightDef, StdTypeDefs<PointLight> {
+private:
+ friend Persistence::SelectionPtrBase<std::shared_ptr<PointLight>>;
+ bool persist(Persistence::PersistenceStore & store) override;
+};
+