Use forward declares for vector math types
Adds operators to convert from int vector types to float vector types as done in the upstream engine implementations.pull/707/head
parent
917b0c2ca3
commit
7e3321d1b2
|
@ -37,6 +37,8 @@
|
||||||
|
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
|
||||||
|
class Rect2i;
|
||||||
|
class String;
|
||||||
class Transform2D;
|
class Transform2D;
|
||||||
|
|
||||||
class Rect2 {
|
class Rect2 {
|
||||||
|
@ -326,6 +328,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
operator String() const;
|
operator String() const;
|
||||||
|
operator Rect2i() const;
|
||||||
|
|
||||||
Rect2() {}
|
Rect2() {}
|
||||||
Rect2(real_t p_x, real_t p_y, real_t p_width, real_t p_height) :
|
Rect2(real_t p_x, real_t p_y, real_t p_width, real_t p_height) :
|
||||||
|
|
|
@ -31,11 +31,15 @@
|
||||||
#ifndef GODOT_RECT2I_HPP
|
#ifndef GODOT_RECT2I_HPP
|
||||||
#define GODOT_RECT2I_HPP
|
#define GODOT_RECT2I_HPP
|
||||||
|
|
||||||
#include <godot_cpp/variant/rect2.hpp>
|
#include <godot_cpp/classes/global_constants.hpp>
|
||||||
|
#include <godot_cpp/core/math.hpp>
|
||||||
#include <godot_cpp/variant/vector2i.hpp>
|
#include <godot_cpp/variant/vector2i.hpp>
|
||||||
|
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
|
||||||
|
class Rect2;
|
||||||
|
class String;
|
||||||
|
|
||||||
class Rect2i {
|
class Rect2i {
|
||||||
_FORCE_INLINE_ GDNativeTypePtr _native_ptr() const { return (void *)this; }
|
_FORCE_INLINE_ GDNativeTypePtr _native_ptr() const { return (void *)this; }
|
||||||
|
|
||||||
|
@ -206,15 +210,10 @@ public:
|
||||||
return position + size;
|
return position + size;
|
||||||
}
|
}
|
||||||
|
|
||||||
operator String() const { return String(position) + ", " + String(size); }
|
operator String() const;
|
||||||
|
operator Rect2() const;
|
||||||
operator Rect2() const { return Rect2(position, size); }
|
|
||||||
|
|
||||||
Rect2i() {}
|
Rect2i() {}
|
||||||
Rect2i(const Rect2 &p_r2) :
|
|
||||||
position(p_r2.position),
|
|
||||||
size(p_r2.size) {
|
|
||||||
}
|
|
||||||
Rect2i(int p_x, int p_y, int p_width, int p_height) :
|
Rect2i(int p_x, int p_y, int p_width, int p_height) :
|
||||||
position(Point2i(p_x, p_y)),
|
position(Point2i(p_x, p_y)),
|
||||||
size(Size2i(p_width, p_height)) {
|
size(Size2i(p_width, p_height)) {
|
||||||
|
|
|
@ -32,10 +32,10 @@
|
||||||
#define GODOT_VECTOR2_HPP
|
#define GODOT_VECTOR2_HPP
|
||||||
|
|
||||||
#include <godot_cpp/core/math.hpp>
|
#include <godot_cpp/core/math.hpp>
|
||||||
#include <godot_cpp/variant/string.hpp>
|
|
||||||
|
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
|
||||||
|
class String;
|
||||||
class Vector2i;
|
class Vector2i;
|
||||||
|
|
||||||
class Vector2 {
|
class Vector2 {
|
||||||
|
|
|
@ -32,11 +32,12 @@
|
||||||
#define GODOT_VECTOR2I_HPP
|
#define GODOT_VECTOR2I_HPP
|
||||||
|
|
||||||
#include <godot_cpp/core/math.hpp>
|
#include <godot_cpp/core/math.hpp>
|
||||||
#include <godot_cpp/variant/string.hpp>
|
|
||||||
#include <godot_cpp/variant/vector2.hpp>
|
|
||||||
|
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
|
||||||
|
class String;
|
||||||
|
class Vector2;
|
||||||
|
|
||||||
class Vector2i {
|
class Vector2i {
|
||||||
_FORCE_INLINE_ GDNativeTypePtr _native_ptr() const { return (void *)this; }
|
_FORCE_INLINE_ GDNativeTypePtr _native_ptr() const { return (void *)this; }
|
||||||
|
|
||||||
|
@ -96,14 +97,9 @@ public:
|
||||||
Vector2i abs() const { return Vector2i(Math::abs(x), Math::abs(y)); }
|
Vector2i abs() const { return Vector2i(Math::abs(x), Math::abs(y)); }
|
||||||
|
|
||||||
operator String() const;
|
operator String() const;
|
||||||
|
operator Vector2() const;
|
||||||
operator Vector2() const { return Vector2((real_t)x, (real_t)y); }
|
|
||||||
|
|
||||||
inline Vector2i() {}
|
inline Vector2i() {}
|
||||||
inline Vector2i(const Vector2 &p_vec2) {
|
|
||||||
x = (int32_t)p_vec2.x;
|
|
||||||
y = (int32_t)p_vec2.y;
|
|
||||||
}
|
|
||||||
inline Vector2i(int32_t p_x, int32_t p_y) {
|
inline Vector2i(int32_t p_x, int32_t p_y) {
|
||||||
x = p_x;
|
x = p_x;
|
||||||
y = p_y;
|
y = p_y;
|
||||||
|
|
|
@ -32,11 +32,11 @@
|
||||||
#define GODOT_VECTOR3_HPP
|
#define GODOT_VECTOR3_HPP
|
||||||
|
|
||||||
#include <godot_cpp/core/math.hpp>
|
#include <godot_cpp/core/math.hpp>
|
||||||
#include <godot_cpp/variant/string.hpp>
|
|
||||||
|
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
|
||||||
class Basis;
|
class Basis;
|
||||||
|
class String;
|
||||||
class Vector3i;
|
class Vector3i;
|
||||||
|
|
||||||
class Vector3 {
|
class Vector3 {
|
||||||
|
@ -159,7 +159,6 @@ public:
|
||||||
y = p_y;
|
y = p_y;
|
||||||
z = p_z;
|
z = p_z;
|
||||||
}
|
}
|
||||||
Vector3(const Vector3i &p_ivec);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Vector3 Vector3::cross(const Vector3 &p_b) const {
|
Vector3 Vector3::cross(const Vector3 &p_b) const {
|
||||||
|
|
|
@ -32,10 +32,12 @@
|
||||||
#define GODOT_VECTOR3I_HPP
|
#define GODOT_VECTOR3I_HPP
|
||||||
|
|
||||||
#include <godot_cpp/core/math.hpp>
|
#include <godot_cpp/core/math.hpp>
|
||||||
#include <godot_cpp/variant/string.hpp>
|
|
||||||
|
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
|
||||||
|
class String;
|
||||||
|
class Vector3;
|
||||||
|
|
||||||
class Vector3i {
|
class Vector3i {
|
||||||
_FORCE_INLINE_ GDNativeTypePtr _native_ptr() const { return (void *)this; }
|
_FORCE_INLINE_ GDNativeTypePtr _native_ptr() const { return (void *)this; }
|
||||||
|
|
||||||
|
@ -107,6 +109,7 @@ public:
|
||||||
inline bool operator>=(const Vector3i &p_v) const;
|
inline bool operator>=(const Vector3i &p_v) const;
|
||||||
|
|
||||||
operator String() const;
|
operator String() const;
|
||||||
|
operator Vector3() const;
|
||||||
|
|
||||||
inline Vector3i() {}
|
inline Vector3i() {}
|
||||||
inline Vector3i(int32_t p_x, int32_t p_y, int32_t p_z) {
|
inline Vector3i(int32_t p_x, int32_t p_y, int32_t p_z) {
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
|
|
||||||
#include <godot_cpp/variant/rect2.hpp>
|
#include <godot_cpp/variant/rect2.hpp>
|
||||||
|
|
||||||
|
#include <godot_cpp/variant/rect2i.hpp>
|
||||||
|
#include <godot_cpp/variant/string.hpp>
|
||||||
#include <godot_cpp/variant/transform2d.hpp>
|
#include <godot_cpp/variant/transform2d.hpp>
|
||||||
|
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
@ -268,4 +270,12 @@ next4:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rect2::operator String() const {
|
||||||
|
return String(position) + ", " + String(size);
|
||||||
|
}
|
||||||
|
|
||||||
|
Rect2::operator Rect2i() const {
|
||||||
|
return Rect2i(position, size);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace godot
|
} // namespace godot
|
||||||
|
|
|
@ -30,4 +30,17 @@
|
||||||
|
|
||||||
#include <godot_cpp/variant/rect2i.hpp>
|
#include <godot_cpp/variant/rect2i.hpp>
|
||||||
|
|
||||||
// No implementation left. This is here to add the header as a compiled unit.
|
#include <godot_cpp/variant/rect2.hpp>
|
||||||
|
#include <godot_cpp/variant/string.hpp>
|
||||||
|
|
||||||
|
namespace godot {
|
||||||
|
|
||||||
|
Rect2i::operator String() const {
|
||||||
|
return String(position) + ", " + String(size);
|
||||||
|
}
|
||||||
|
|
||||||
|
Rect2i::operator Rect2() const {
|
||||||
|
return Rect2(position, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace godot
|
||||||
|
|
|
@ -28,21 +28,14 @@
|
||||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
|
#include <godot_cpp/variant/vector2.hpp>
|
||||||
|
|
||||||
#include <godot_cpp/core/error_macros.hpp>
|
#include <godot_cpp/core/error_macros.hpp>
|
||||||
#include <godot_cpp/variant/string.hpp>
|
#include <godot_cpp/variant/string.hpp>
|
||||||
#include <godot_cpp/variant/vector2.hpp>
|
|
||||||
#include <godot_cpp/variant/vector2i.hpp>
|
#include <godot_cpp/variant/vector2i.hpp>
|
||||||
|
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
|
||||||
Vector2::operator String() const {
|
|
||||||
return String::num(x, 5) + ", " + String::num(y, 5);
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector2::operator Vector2i() const {
|
|
||||||
return Vector2i(x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
real_t Vector2::angle() const {
|
real_t Vector2::angle() const {
|
||||||
return Math::atan2(y, x);
|
return Math::atan2(y, x);
|
||||||
}
|
}
|
||||||
|
@ -200,4 +193,12 @@ bool Vector2::is_equal_approx(const Vector2 &p_v) const {
|
||||||
return Math::is_equal_approx(x, p_v.x) && Math::is_equal_approx(y, p_v.y);
|
return Math::is_equal_approx(x, p_v.x) && Math::is_equal_approx(y, p_v.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Vector2::operator String() const {
|
||||||
|
return String::num(x, 5) + ", " + String::num(y, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector2::operator Vector2i() const {
|
||||||
|
return Vector2i(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace godot
|
} // namespace godot
|
||||||
|
|
|
@ -28,15 +28,13 @@
|
||||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
#include <godot_cpp/core/error_macros.hpp>
|
|
||||||
#include <godot_cpp/variant/string.hpp>
|
|
||||||
#include <godot_cpp/variant/vector2i.hpp>
|
#include <godot_cpp/variant/vector2i.hpp>
|
||||||
|
|
||||||
namespace godot {
|
#include <godot_cpp/core/error_macros.hpp>
|
||||||
|
#include <godot_cpp/variant/string.hpp>
|
||||||
|
#include <godot_cpp/variant/vector2.hpp>
|
||||||
|
|
||||||
Vector2i::operator String() const {
|
namespace godot {
|
||||||
return String::num(x, 0) + ", " + String::num(y, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector2i Vector2i::operator+(const Vector2i &p_v) const {
|
Vector2i Vector2i::operator+(const Vector2i &p_v) const {
|
||||||
return Vector2i(x + p_v.x, y + p_v.y);
|
return Vector2i(x + p_v.x, y + p_v.y);
|
||||||
|
@ -107,4 +105,12 @@ bool Vector2i::operator!=(const Vector2i &p_vec2) const {
|
||||||
return x != p_vec2.x || y != p_vec2.y;
|
return x != p_vec2.x || y != p_vec2.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Vector2i::operator String() const {
|
||||||
|
return String::num(x, 0) + ", " + String::num(y, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector2i::operator Vector2() const {
|
||||||
|
return Vector2((real_t)x, (real_t)y);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace godot
|
} // namespace godot
|
||||||
|
|
|
@ -28,9 +28,10 @@
|
||||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
|
#include <godot_cpp/variant/vector3.hpp>
|
||||||
|
|
||||||
#include <godot_cpp/core/error_macros.hpp>
|
#include <godot_cpp/core/error_macros.hpp>
|
||||||
#include <godot_cpp/variant/basis.hpp>
|
#include <godot_cpp/variant/basis.hpp>
|
||||||
#include <godot_cpp/variant/vector3.hpp>
|
|
||||||
#include <godot_cpp/variant/vector3i.hpp>
|
#include <godot_cpp/variant/vector3i.hpp>
|
||||||
|
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
|
|
@ -28,9 +28,11 @@
|
||||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
/*************************************************************************/
|
/*************************************************************************/
|
||||||
|
|
||||||
|
#include <godot_cpp/variant/vector3i.hpp>
|
||||||
|
|
||||||
#include <godot_cpp/core/error_macros.hpp>
|
#include <godot_cpp/core/error_macros.hpp>
|
||||||
#include <godot_cpp/variant/string.hpp>
|
#include <godot_cpp/variant/string.hpp>
|
||||||
#include <godot_cpp/variant/vector3i.hpp>
|
#include <godot_cpp/variant/vector3.hpp>
|
||||||
|
|
||||||
namespace godot {
|
namespace godot {
|
||||||
|
|
||||||
|
@ -56,4 +58,8 @@ Vector3i::operator String() const {
|
||||||
return (String::num(x, 0) + ", " + String::num(y, 0) + ", " + String::num(z, 5));
|
return (String::num(x, 0) + ", " + String::num(y, 0) + ", " + String::num(z, 5));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Vector3i::operator Vector3() const {
|
||||||
|
return Vector3((real_t)x, (real_t)y, (real_t)z);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace godot
|
} // namespace godot
|
||||||
|
|
Loading…
Reference in New Issue