|
@@ -0,0 +1,141 @@
|
|
|
|
|
+#include "ScriptSystem.h"
|
|
|
|
|
+
|
|
|
|
|
+namespace crown
|
|
|
|
|
+{
|
|
|
|
|
+
|
|
|
|
|
+extern "C"
|
|
|
|
|
+{
|
|
|
|
|
+
|
|
|
|
|
+ Vec2& vec2(float nx, float ny);
|
|
|
|
|
+
|
|
|
|
|
+ Vec2& vec2_add(Vec2& self, const Vec2& a);
|
|
|
|
|
+
|
|
|
|
|
+ Vec2& vec2_subtract(Vec2& self, const Vec2& a);
|
|
|
|
|
+
|
|
|
|
|
+ Vec2& vec2_multiply(Vec2& self, float k);
|
|
|
|
|
+
|
|
|
|
|
+ Vec2& vec2_divide(Vec2& self, float k);
|
|
|
|
|
+
|
|
|
|
|
+ float vec2_dot(Vec2& self, const Vec2& a);
|
|
|
|
|
+
|
|
|
|
|
+ bool vec2_equals(Vec2& self, const Vec2& other);
|
|
|
|
|
+
|
|
|
|
|
+ bool vec2_lower(Vec2& self, const Vec2& other);
|
|
|
|
|
+
|
|
|
|
|
+ bool vec2_greater(Vec2& self, const Vec2& other);
|
|
|
|
|
+
|
|
|
|
|
+ float vec2_length(Vec2& self);
|
|
|
|
|
+
|
|
|
|
|
+ float vec2_squared_length(Vec2& self);
|
|
|
|
|
+
|
|
|
|
|
+ void vec2_set_length(Vec2& self, float len);
|
|
|
|
|
+
|
|
|
|
|
+ Vec2& vec2_normalize(Vec2& self);
|
|
|
|
|
+
|
|
|
|
|
+ Vec2& vec2_negate(Vec2& self);
|
|
|
|
|
+
|
|
|
|
|
+ float vec2_get_distance_to(Vec2& self, const Vec2& a);
|
|
|
|
|
+
|
|
|
|
|
+ float vec2_get_angle_between(Vec2& self, const Vec2& a);
|
|
|
|
|
+
|
|
|
|
|
+ void vec2_zero(Vec2& self);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+Vec2& vec2(float nx, float ny)
|
|
|
|
|
+{
|
|
|
|
|
+ return scripter()->next_vec2(nx, ny);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+Vec2& vec2_add(Vec2& self, const Vec2& a)
|
|
|
|
|
+{
|
|
|
|
|
+ self += a;
|
|
|
|
|
+
|
|
|
|
|
+ return self;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+Vec2& vec2_subtract(Vec2& self, const Vec2& a)
|
|
|
|
|
+{
|
|
|
|
|
+ self -= a;
|
|
|
|
|
+
|
|
|
|
|
+ return self;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+Vec2& vec2_multiply(Vec2& self, float k)
|
|
|
|
|
+{
|
|
|
|
|
+ self *= k;
|
|
|
|
|
+
|
|
|
|
|
+ return self;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+Vec2& vec2_divide(Vec2& self, float k)
|
|
|
|
|
+{
|
|
|
|
|
+ self /= k;
|
|
|
|
|
+
|
|
|
|
|
+ return self;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+float vec2_dot(Vec2& self, const Vec2& a)
|
|
|
|
|
+{
|
|
|
|
|
+ return self.dot(a);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+bool vec2_equals(Vec2& self, const Vec2& other)
|
|
|
|
|
+{
|
|
|
|
|
+ return self == other;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+bool vec2_lower(Vec2& self, const Vec2& other)
|
|
|
|
|
+{
|
|
|
|
|
+ return self < other;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+bool vec2_greater(Vec2& self, const Vec2& other)
|
|
|
|
|
+{
|
|
|
|
|
+ return self > other;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+float vec2_length(Vec2& self)
|
|
|
|
|
+{
|
|
|
|
|
+ self.length();
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+float vec2_squared_length(Vec2& self)
|
|
|
|
|
+{
|
|
|
|
|
+ return self.squared_length();
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void vec2_set_length(Vec2& self, float len)
|
|
|
|
|
+{
|
|
|
|
|
+ self.set_length(len);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+Vec2& vec2_normalize(Vec2& self)
|
|
|
|
|
+{
|
|
|
|
|
+ self.normalize();
|
|
|
|
|
+
|
|
|
|
|
+ return self;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+Vec2& vec2_negate(Vec2& self)
|
|
|
|
|
+{
|
|
|
|
|
+ self.negate();
|
|
|
|
|
+
|
|
|
|
|
+ return self;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+float vec2_get_distance_to(Vec2& self, const Vec2& a)
|
|
|
|
|
+{
|
|
|
|
|
+ return self.get_distance_to(a);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+float vec2_get_angle_between(Vec2& self, const Vec2& a)
|
|
|
|
|
+{
|
|
|
|
|
+ return self.get_angle_between(a);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void vec2_zero(Vec2& self)
|
|
|
|
|
+{
|
|
|
|
|
+ self.zero();
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+} // namespace crown
|