Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2012-02-19 21:29:24 +0000
committerStijn Buys <ingar@osirion.org>2012-02-19 21:29:24 +0000
commit9e7fa49f168c4ae25d23e4858a895216e997d205 (patch)
tree330e927dd3d6a79559ad2800d1160c5c11e499b9 /src/properties.h
parent85500fcb7a8aae73da87af337e2984cc91425eb8 (diff)
Added a seperate class to hold entity properties.
Diffstat (limited to 'src/properties.h')
-rw-r--r--src/properties.h158
1 files changed, 158 insertions, 0 deletions
diff --git a/src/properties.h b/src/properties.h
new file mode 100644
index 0000000..472d4b4
--- /dev/null
+++ b/src/properties.h
@@ -0,0 +1,158 @@
+/*
+ properties.h
+ This file is part of the Project::OSiRiON world editor
+ and is distributed under the terms and conditions of
+ the GNU General Public License version 2
+*/
+
+#ifndef __INCLUDED_EDITOR_PROPERTIES__
+#define __INCLUDED_EDITOR_PROPERTIES__
+
+#include "vector3f.h"
+
+#include <QColor>
+#include <QString>
+
+namespace editor
+{
+
+/**
+ * @brief abstract base class to hold properties for game objects
+ * */
+class Properties
+{
+public:
+ Properties();
+
+ virtual ~Properties();
+
+ /* ---- inspectors ---- */
+
+ /**
+ * @brief returns the label of this object
+ * */
+ inline const QString &label() const {
+ return properties_label;
+ }
+
+ /**
+ * @brief returns the name of this object
+ * */
+ inline const QString &name() const {
+ return properties_name;
+ }
+
+ /**
+ * @brief returns the location of this object
+ * */
+ inline const Vector3f &location() const {
+ return properties_location;
+ }
+
+ /**
+ * @brief returns the color of this object
+ * */
+ inline const QColor &color() const {
+ return properties_color;
+ }
+
+
+ /**
+ * @brief returns the info string of this object
+ * */
+ inline const QString & info() const {
+ return properties_info;
+ }
+
+ /**
+ * @brief returns the values string of this object
+ * */
+ inline const QString & values() const {
+ return properties_values;
+ }
+
+ /* ---- mutators ---- */
+
+ /**
+ * @brief set the info string of this object
+ * */
+ void set_info(const QString &text);
+
+ /**
+ * @brief add a line of text to the info string of this object
+ * */
+ void add_info(const QString &text);
+
+ /**
+ * @brief add a value key pair to the values string
+ * */
+ void add_value(const QString &key, const QString &value);
+
+
+ /**
+ * @brief set the object label
+ * */
+ inline void set_label(const QString &label) {
+ properties_label = label;
+ }
+
+ /**
+ * @brief set the object name
+ * */
+ inline void set_name(const QString &name) {
+ properties_name = name;
+ }
+
+ /**
+ * @brief set the object location
+ * */
+ inline void set_location(const Vector3f &location) {
+ properties_location = location;
+ }
+
+ /**
+ * @brief set the object location
+ * */
+ inline void set_location(const float x, const float y, const float z) {
+ properties_location.assign(x, y, z);
+ }
+
+ /**
+ * @brief set the object color
+ * */
+ inline void set_color(const QColor &color) {
+ properties_color = color;
+ }
+
+ /**
+ * @brief set the object color
+ * */
+ inline void set_color(const float r, const float g, const float b) {
+ float cr = r;
+ float cg = g;
+ float cb = b;
+
+ // Qt RGB colors are in the 0-255 range
+ if ((r <= 1) && (g <= 1) && (b <= 1)) {
+ cr *= 255;
+ cg *= 255;
+ cg *= 255;
+ }
+
+ properties_color.setRgb(r, g, b);
+ }
+
+private:
+ QString properties_label;
+ QString properties_name;
+
+ Vector3f properties_location;
+ QColor properties_color;
+
+ QString properties_info;
+ QString properties_values;
+};
+
+} // namespace editor
+
+#endif // __INCLUDED_EDITOR_PROPERTIES__ \ No newline at end of file