summaryrefslogtreecommitdiffstats
path: root/include/core/Variant.hpp
diff options
context:
space:
mode:
authorKarroffel <therzog@mail.de>2017-05-12 21:53:07 +0200
committerKarroffel <therzog@mail.de>2017-05-12 21:53:07 +0200
commitcf30b0f39ddb2c6acad5d22655c4bca9015d7502 (patch)
tree45a4df6ff16450b334d6c8856a74f4f47f3e9336 /include/core/Variant.hpp
parent3969bcf07857b1a4af391bbddb924388cc7f44bb (diff)
downloadredot-cpp-cf30b0f39ddb2c6acad5d22655c4bca9015d7502.tar.gz
rewrote binding generator in python
Diffstat (limited to 'include/core/Variant.hpp')
-rw-r--r--include/core/Variant.hpp251
1 files changed, 251 insertions, 0 deletions
diff --git a/include/core/Variant.hpp b/include/core/Variant.hpp
new file mode 100644
index 0000000..baa1498
--- /dev/null
+++ b/include/core/Variant.hpp
@@ -0,0 +1,251 @@
+#ifndef VARIANT_H
+#define VARIANT_H
+
+#if defined(_WIN32)
+# ifdef _GD_CPP_CORE_API_IMPL
+# define GD_CPP_CORE_API __declspec(dllexport)
+# else
+# define GD_CPP_CORE_API __declspec(dllimport)
+# endif
+#else
+# define GD_CPP_CORE_API
+#endif
+
+#include <godot/godot_variant.h>
+
+#include "Defs.hpp"
+
+#include "Basis.hpp"
+#include "Color.hpp"
+#include "Image.hpp"
+#include "InputEvent.hpp"
+#include "NodePath.hpp"
+#include "Plane.hpp"
+#include "PoolArrays.hpp"
+#include "Quat.hpp"
+#include "Rect2.hpp"
+#include "Rect3.hpp"
+#include "RID.hpp"
+#include "String.hpp"
+#include "Transform.hpp"
+#include "Transform2D.hpp"
+#include "Vector2.hpp"
+#include "Vector3.hpp"
+
+#include <iostream>
+
+namespace godot {
+
+class Dictionary;
+
+class Array;
+
+class GD_CPP_CORE_API Variant {
+ godot_variant _godot_variant;
+public:
+ enum Type {
+
+ NIL,
+
+ // atomic types
+ BOOL,
+ INT,
+ REAL,
+ STRING,
+
+ // math types
+
+ VECTOR2, // 5
+ RECT2,
+ VECTOR3,
+ TRANSFORM2D,
+ PLANE,
+ QUAT, // 10
+ RECT3, //sorry naming convention fail :( not like it's used often
+ BASIS,
+ TRANSFORM,
+
+ // misc types
+ COLOR,
+ IMAGE, // 15
+ NODE_PATH,
+ _RID,
+ OBJECT,
+ INPUT_EVENT,
+ DICTIONARY, // 20
+ ARRAY,
+
+ // arrays
+ POOL_BYTE_ARRAY,
+ POOL_INT_ARRAY,
+ POOL_REAL_ARRAY,
+ POOL_STRING_ARRAY, // 25
+ POOL_VECTOR2_ARRAY,
+ POOL_VECTOR3_ARRAY,
+ POOL_COLOR_ARRAY,
+
+ VARIANT_MAX
+
+ };
+
+ Variant();
+
+ Variant(const Variant& v);
+
+ Variant(bool p_bool);
+
+ Variant(signed int p_int);
+
+ Variant(unsigned int p_int);
+
+ Variant(signed short p_short);
+
+ inline Variant(unsigned short p_short) : Variant((unsigned int) p_short) {}
+
+ inline Variant(signed char p_char) : Variant((signed int) p_char) {}
+
+ inline Variant(unsigned char p_char) : Variant((unsigned int) p_char) {}
+ Variant(int64_t p_char);
+
+ Variant(uint64_t p_char);
+
+ Variant(float p_float);
+
+ Variant(double p_double);
+
+ Variant(const String& p_string);
+
+ Variant(const char * const p_cstring);
+
+ Variant(const wchar_t * p_wstring);
+
+ Variant(const Vector2& p_vector2);
+
+ Variant(const Rect2& p_rect2);
+
+ Variant(const Vector3& p_vector3);
+
+ Variant(const Plane& p_plane);
+
+
+ Variant(const Rect3& p_aabb);
+
+ Variant(const Quat& p_quat);
+
+ Variant(const Basis& p_transform);
+
+ Variant(const Transform2D& p_transform);
+
+ Variant(const Transform& p_transform);
+
+ Variant(const Color& p_color);
+
+ Variant(const Image& p_image);
+
+ Variant(const NodePath& p_path);
+
+ Variant(const RID& p_rid);
+
+ Variant(const Object* p_object);
+
+ Variant(const InputEvent& p_input_event);
+
+ Variant(const Dictionary& p_dictionary);
+
+ Variant(const Array& p_array);
+
+ Variant(const PoolByteArray& p_raw_array);
+
+ Variant(const PoolIntArray& p_int_array);
+
+ Variant(const PoolRealArray& p_real_array);
+
+ Variant(const PoolStringArray& p_string_array);
+
+ Variant(const PoolVector2Array& p_vector2_array);
+
+ Variant(const PoolVector3Array& p_vector3_array);
+
+ Variant(const PoolColorArray& p_color_array);
+
+
+ Variant &operator =(const Variant& v);
+
+
+ operator bool() const;
+ operator signed int() const;
+ operator unsigned int() const ;
+ operator signed short() const;
+ operator unsigned short() const;
+ operator signed char() const;
+ operator unsigned char() const;
+ operator int64_t() const;
+ operator uint64_t() const;
+
+
+ operator wchar_t() const;
+
+ operator float() const;
+
+ operator double() const;
+ operator String() const;
+ operator Vector2() const;
+ operator Rect2() const;
+ operator Vector3() const;
+ operator Plane() const;
+ operator Rect3() const;
+ operator Quat() const;
+ operator Basis() const;
+ operator Transform() const;
+ operator Transform2D() const;
+
+ operator Color() const;
+
+ operator Image() const;
+ operator NodePath() const;
+ operator RID() const;
+ operator InputEvent() const;
+ operator Object*() const;
+
+ operator Dictionary() const;
+ operator Array() const;
+
+ operator PoolByteArray() const;
+ operator PoolIntArray() const;
+ operator PoolRealArray() const;
+ operator PoolStringArray() const;
+ operator PoolVector2Array() const;
+ operator PoolVector3Array() const;
+ operator PoolColorArray() const;
+
+ Type get_type() const;
+
+
+ Variant call(const String& method, const Variant **args, const int arg_count);
+
+ bool has_method(const String& method);
+
+ bool operator ==(const Variant& b) const;
+
+ bool operator !=(const Variant& b) const;
+
+ bool operator <(const Variant& b) const;
+
+ bool operator <=(const Variant& b) const;
+
+ bool operator >(const Variant& b) const;
+
+ bool operator >=(const Variant& b) const;
+
+ bool hash_compare(const Variant& b) const;
+
+ bool booleanize(bool &valid) const;
+
+ ~Variant();
+
+
+};
+
+}
+
+#endif // VARIANT_H