Merge pull request #66962 from aaronfranke/core-struct-includes
Enhancements to includes in core data structures
This commit is contained in:
commit
e727606f7b
|
@ -403,6 +403,7 @@ Variant AABB::intersects_segment_bind(const Vector3 &p_from, const Vector3 &p_to
|
||||||
}
|
}
|
||||||
return Variant();
|
return Variant();
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant AABB::intersects_ray_bind(const Vector3 &p_from, const Vector3 &p_dir) const {
|
Variant AABB::intersects_ray_bind(const Vector3 &p_from, const Vector3 &p_dir) const {
|
||||||
Vector3 inters;
|
Vector3 inters;
|
||||||
if (intersects_ray(p_from, p_dir, &inters)) {
|
if (intersects_ray(p_from, p_dir, &inters)) {
|
||||||
|
|
|
@ -101,7 +101,7 @@ struct _NO_DISCARD_ AABB {
|
||||||
_FORCE_INLINE_ void expand_to(const Vector3 &p_vector); /** expand to contain a point if necessary */
|
_FORCE_INLINE_ void expand_to(const Vector3 &p_vector); /** expand to contain a point if necessary */
|
||||||
|
|
||||||
_FORCE_INLINE_ AABB abs() const {
|
_FORCE_INLINE_ AABB abs() const {
|
||||||
return AABB(Vector3(position.x + MIN(size.x, 0), position.y + MIN(size.y, 0), position.z + MIN(size.z, 0)), size.abs());
|
return AABB(Vector3(position.x + MIN(size.x, (real_t)0), position.y + MIN(size.y, (real_t)0), position.z + MIN(size.z, (real_t)0)), size.abs());
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant intersects_segment_bind(const Vector3 &p_from, const Vector3 &p_to) const;
|
Variant intersects_segment_bind(const Vector3 &p_from, const Vector3 &p_to) const;
|
||||||
|
|
|
@ -142,8 +142,8 @@ bool Basis::is_symmetric() const {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Basis Basis::diagonalize() {
|
Basis Basis::diagonalize() {
|
||||||
//NOTE: only implemented for symmetric matrices
|
// NOTE: only implemented for symmetric matrices
|
||||||
//with the Jacobi iterative method
|
// with the Jacobi iterative method
|
||||||
#ifdef MATH_CHECKS
|
#ifdef MATH_CHECKS
|
||||||
ERR_FAIL_COND_V(!is_symmetric(), Basis());
|
ERR_FAIL_COND_V(!is_symmetric(), Basis());
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -32,7 +32,8 @@
|
||||||
#define COLOR_H
|
#define COLOR_H
|
||||||
|
|
||||||
#include "core/math/math_funcs.h"
|
#include "core/math/math_funcs.h"
|
||||||
#include "core/string/ustring.h"
|
|
||||||
|
class String;
|
||||||
|
|
||||||
struct _NO_DISCARD_ Color {
|
struct _NO_DISCARD_ Color {
|
||||||
union {
|
union {
|
||||||
|
|
|
@ -147,6 +147,7 @@ Variant Plane::intersect_3_bind(const Plane &p_plane1, const Plane &p_plane2) co
|
||||||
return Variant();
|
return Variant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant Plane::intersects_ray_bind(const Vector3 &p_from, const Vector3 &p_dir) const {
|
Variant Plane::intersects_ray_bind(const Vector3 &p_from, const Vector3 &p_dir) const {
|
||||||
Vector3 inters;
|
Vector3 inters;
|
||||||
if (intersects_ray(p_from, p_dir, &inters)) {
|
if (intersects_ray(p_from, p_dir, &inters)) {
|
||||||
|
@ -155,6 +156,7 @@ Variant Plane::intersects_ray_bind(const Vector3 &p_from, const Vector3 &p_dir)
|
||||||
return Variant();
|
return Variant();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Variant Plane::intersects_segment_bind(const Vector3 &p_begin, const Vector3 &p_end) const {
|
Variant Plane::intersects_segment_bind(const Vector3 &p_begin, const Vector3 &p_end) const {
|
||||||
Vector3 inters;
|
Vector3 inters;
|
||||||
if (intersects_segment(p_begin, p_end, &inters)) {
|
if (intersects_segment(p_begin, p_end, &inters)) {
|
||||||
|
|
|
@ -838,8 +838,9 @@ float Projection::get_lod_multiplier() const {
|
||||||
return 1.0 / (zn / width);
|
return 1.0 / (zn / width);
|
||||||
}
|
}
|
||||||
|
|
||||||
//usage is lod_size / (lod_distance * multiplier) < threshold
|
// Usage is lod_size / (lod_distance * multiplier) < threshold
|
||||||
}
|
}
|
||||||
|
|
||||||
void Projection::make_scale(const Vector3 &p_scale) {
|
void Projection::make_scale(const Vector3 &p_scale) {
|
||||||
set_identity();
|
set_identity();
|
||||||
columns[0][0] = p_scale.x;
|
columns[0][0] = p_scale.x;
|
||||||
|
|
|
@ -31,10 +31,11 @@
|
||||||
#ifndef PROJECTION_H
|
#ifndef PROJECTION_H
|
||||||
#define PROJECTION_H
|
#define PROJECTION_H
|
||||||
|
|
||||||
#include "core/math/math_defs.h"
|
|
||||||
#include "core/math/vector3.h"
|
#include "core/math/vector3.h"
|
||||||
#include "core/math/vector4.h"
|
#include "core/math/vector4.h"
|
||||||
#include "core/templates/vector.h"
|
|
||||||
|
template <class T>
|
||||||
|
class Vector;
|
||||||
|
|
||||||
struct AABB;
|
struct AABB;
|
||||||
struct Plane;
|
struct Plane;
|
||||||
|
@ -42,7 +43,7 @@ struct Rect2;
|
||||||
struct Transform3D;
|
struct Transform3D;
|
||||||
struct Vector2;
|
struct Vector2;
|
||||||
|
|
||||||
struct Projection {
|
struct _NO_DISCARD_ Projection {
|
||||||
enum Planes {
|
enum Planes {
|
||||||
PLANE_NEAR,
|
PLANE_NEAR,
|
||||||
PLANE_FAR,
|
PLANE_FAR,
|
||||||
|
|
|
@ -31,10 +31,10 @@
|
||||||
#ifndef QUATERNION_H
|
#ifndef QUATERNION_H
|
||||||
#define QUATERNION_H
|
#define QUATERNION_H
|
||||||
|
|
||||||
#include "core/math/math_defs.h"
|
|
||||||
#include "core/math/math_funcs.h"
|
#include "core/math/math_funcs.h"
|
||||||
#include "core/math/vector3.h"
|
#include "core/math/vector3.h"
|
||||||
#include "core/string/ustring.h"
|
|
||||||
|
class String;
|
||||||
|
|
||||||
struct _NO_DISCARD_ Quaternion {
|
struct _NO_DISCARD_ Quaternion {
|
||||||
union {
|
union {
|
||||||
|
|
|
@ -281,7 +281,7 @@ struct _NO_DISCARD_ Rect2 {
|
||||||
}
|
}
|
||||||
|
|
||||||
_FORCE_INLINE_ Rect2 abs() const {
|
_FORCE_INLINE_ Rect2 abs() const {
|
||||||
return Rect2(Point2(position.x + MIN(size.x, 0), position.y + MIN(size.y, 0)), size.abs());
|
return Rect2(Point2(position.x + MIN(size.x, (real_t)0), position.y + MIN(size.y, (real_t)0)), size.abs());
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector2 get_support(const Vector2 &p_normal) const {
|
Vector2 get_support(const Vector2 &p_normal) const {
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#include "core/math/aabb.h"
|
#include "core/math/aabb.h"
|
||||||
#include "core/math/basis.h"
|
#include "core/math/basis.h"
|
||||||
#include "core/math/plane.h"
|
#include "core/math/plane.h"
|
||||||
|
#include "core/templates/vector.h"
|
||||||
|
|
||||||
struct _NO_DISCARD_ Transform3D {
|
struct _NO_DISCARD_ Transform3D {
|
||||||
Basis basis;
|
Basis basis;
|
||||||
|
|
|
@ -31,10 +31,10 @@
|
||||||
#ifndef VECTOR4_H
|
#ifndef VECTOR4_H
|
||||||
#define VECTOR4_H
|
#define VECTOR4_H
|
||||||
|
|
||||||
#include "core/math/math_defs.h"
|
#include "core/error/error_macros.h"
|
||||||
#include "core/math/math_funcs.h"
|
#include "core/math/math_funcs.h"
|
||||||
#include "core/math/vector3.h"
|
|
||||||
#include "core/string/ustring.h"
|
class String;
|
||||||
|
|
||||||
struct _NO_DISCARD_ Vector4 {
|
struct _NO_DISCARD_ Vector4 {
|
||||||
static const int AXIS_COUNT = 4;
|
static const int AXIS_COUNT = 4;
|
||||||
|
|
Loading…
Reference in New Issue