Merge pull request #707 from akien-mga/vec2-vec3-forward-declares

pull/708/head
Rémi Verschelde 2022-02-20 13:28:57 +01:00 committed by GitHub
commit 4d9fe6dfaa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 75 additions and 38 deletions

View File

@ -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) :

View File

@ -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)) {

View File

@ -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 {

View File

@ -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;

View File

@ -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 {

View File

@ -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) {

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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