Skip to content

Commit daf9729

Browse files
authored
Merge pull request #57703 from lawnjelly/float_literals_math_funcs
2 parents 7a7fabe + 5298e16 commit daf9729

21 files changed

+222
-222
lines changed

core/math/aabb.h

+11-11
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ struct _NO_DISCARD_ AABB {
119119
}
120120

121121
_FORCE_INLINE_ Vector3 get_center() const {
122-
return position + (size * 0.5);
122+
return position + (size * 0.5f);
123123
}
124124

125125
operator String() const;
@@ -208,7 +208,7 @@ inline bool AABB::encloses(const AABB &p_aabb) const {
208208
}
209209

210210
Vector3 AABB::get_support(const Vector3 &p_normal) const {
211-
Vector3 half_extents = size * 0.5;
211+
Vector3 half_extents = size * 0.5f;
212212
Vector3 ofs = position + half_extents;
213213

214214
return Vector3(
@@ -242,7 +242,7 @@ Vector3 AABB::get_endpoint(int p_point) const {
242242
}
243243

244244
bool AABB::intersects_convex_shape(const Plane *p_planes, int p_plane_count, const Vector3 *p_points, int p_point_count) const {
245-
Vector3 half_extents = size * 0.5;
245+
Vector3 half_extents = size * 0.5f;
246246
Vector3 ofs = position + half_extents;
247247

248248
for (int i = 0; i < p_plane_count; i++) {
@@ -284,7 +284,7 @@ bool AABB::intersects_convex_shape(const Plane *p_planes, int p_plane_count, con
284284
}
285285

286286
bool AABB::inside_convex_shape(const Plane *p_planes, int p_plane_count) const {
287-
Vector3 half_extents = size * 0.5;
287+
Vector3 half_extents = size * 0.5f;
288288
Vector3 ofs = position + half_extents;
289289

290290
for (int i = 0; i < p_plane_count; i++) {
@@ -364,7 +364,7 @@ inline void AABB::expand_to(const Vector3 &p_vector) {
364364
}
365365

366366
void AABB::project_range_in_plane(const Plane &p_plane, real_t &r_min, real_t &r_max) const {
367-
Vector3 half_extents(size.x * 0.5, size.y * 0.5, size.z * 0.5);
367+
Vector3 half_extents(size.x * 0.5f, size.y * 0.5f, size.z * 0.5f);
368368
Vector3 center(position.x + half_extents.x, position.y + half_extents.y, position.z + half_extents.z);
369369

370370
real_t length = p_plane.normal.abs().dot(half_extents);
@@ -407,9 +407,9 @@ bool AABB::smits_intersect_ray(const Vector3 &p_from, const Vector3 &p_dir, real
407407
ERR_PRINT("AABB size is negative, this is not supported. Use AABB.abs() to get an AABB with a positive size.");
408408
}
409409
#endif
410-
real_t divx = 1.0 / p_dir.x;
411-
real_t divy = 1.0 / p_dir.y;
412-
real_t divz = 1.0 / p_dir.z;
410+
real_t divx = 1.0f / p_dir.x;
411+
real_t divy = 1.0f / p_dir.y;
412+
real_t divz = 1.0f / p_dir.z;
413413

414414
Vector3 upbound = position + size;
415415
real_t tmin, tmax, tymin, tymax, tzmin, tzmax;
@@ -459,9 +459,9 @@ void AABB::grow_by(real_t p_amount) {
459459
position.x -= p_amount;
460460
position.y -= p_amount;
461461
position.z -= p_amount;
462-
size.x += 2.0 * p_amount;
463-
size.y += 2.0 * p_amount;
464-
size.z += 2.0 * p_amount;
462+
size.x += 2.0f * p_amount;
463+
size.y += 2.0f * p_amount;
464+
size.z += 2.0f * p_amount;
465465
}
466466

467467
void AABB::quantize(real_t p_unit) {

core/math/basis.cpp

+57-57
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ void Basis::from_z(const Vector3 &p_z) {
4040
if (Math::abs(p_z.z) > Math_SQRT12) {
4141
// choose p in y-z plane
4242
real_t a = p_z[1] * p_z[1] + p_z[2] * p_z[2];
43-
real_t k = 1.0 / Math::sqrt(a);
43+
real_t k = 1.0f / Math::sqrt(a);
4444
elements[0] = Vector3(0, -p_z[2] * k, p_z[1] * k);
4545
elements[1] = Vector3(a * k, -p_z[0] * elements[0][2], p_z[0] * elements[0][1]);
4646
} else {
4747
// choose p in x-y plane
4848
real_t a = p_z.x * p_z.x + p_z.y * p_z.y;
49-
real_t k = 1.0 / Math::sqrt(a);
49+
real_t k = 1.0f / Math::sqrt(a);
5050
elements[0] = Vector3(-p_z.y * k, p_z.x * k, 0);
5151
elements[1] = Vector3(-p_z.z * elements[0].y, p_z.z * elements[0].x, a * k);
5252
}
@@ -63,7 +63,7 @@ void Basis::invert() {
6363
#ifdef MATH_CHECKS
6464
ERR_FAIL_COND(det == 0);
6565
#endif
66-
real_t s = 1.0 / det;
66+
real_t s = 1.0f / det;
6767

6868
set(co[0] * s, cofac(0, 2, 2, 1) * s, cofac(0, 1, 1, 2) * s,
6969
co[1] * s, cofac(0, 0, 2, 2) * s, cofac(0, 2, 1, 0) * s,
@@ -182,7 +182,7 @@ Basis Basis::diagonalize() {
182182
if (Math::is_equal_approx(elements[j][j], elements[i][i])) {
183183
angle = Math_PI / 4;
184184
} else {
185-
angle = 0.5 * Math::atan(2 * elements[i][j] / (elements[j][j] - elements[i][i]));
185+
angle = 0.5f * Math::atan(2 * elements[i][j] / (elements[j][j] - elements[i][i]));
186186
}
187187

188188
// Compute the rotation matrix
@@ -268,11 +268,11 @@ Basis Basis::scaled_orthogonal(const Vector3 &p_scale) const {
268268
}
269269

270270
float Basis::get_uniform_scale() const {
271-
return (elements[0].length() + elements[1].length() + elements[2].length()) / 3.0;
271+
return (elements[0].length() + elements[1].length() + elements[2].length()) / 3.0f;
272272
}
273273

274274
void Basis::make_scale_uniform() {
275-
float l = (elements[0].length() + elements[1].length() + elements[2].length()) / 3.0;
275+
float l = (elements[0].length() + elements[1].length() + elements[2].length()) / 3.0f;
276276
for (int i = 0; i < 3; i++) {
277277
elements[i].normalize();
278278
elements[i] *= l;
@@ -415,7 +415,7 @@ void Basis::rotate_to_align(Vector3 p_start_direction, Vector3 p_end_direction)
415415
const Vector3 axis = p_start_direction.cross(p_end_direction).normalized();
416416
if (axis.length_squared() != 0) {
417417
real_t dot = p_start_direction.dot(p_end_direction);
418-
dot = CLAMP(dot, -1.0, 1.0);
418+
dot = CLAMP(dot, -1.0f, 1.0f);
419419
const real_t angle_rads = Math::acos(dot);
420420
set_axis_angle(axis, angle_rads);
421421
}
@@ -463,10 +463,10 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {
463463

464464
Vector3 euler;
465465
real_t sy = elements[0][2];
466-
if (sy < (1.0 - CMP_EPSILON)) {
467-
if (sy > -(1.0 - CMP_EPSILON)) {
466+
if (sy < (1.0f - CMP_EPSILON)) {
467+
if (sy > -(1.0f - CMP_EPSILON)) {
468468
// is this a pure Y rotation?
469-
if (elements[1][0] == 0.0 && elements[0][1] == 0.0 && elements[1][2] == 0 && elements[2][1] == 0 && elements[1][1] == 1) {
469+
if (elements[1][0] == 0 && elements[0][1] == 0 && elements[1][2] == 0 && elements[2][1] == 0 && elements[1][1] == 1) {
470470
// return the simplest form (human friendlier in editor and scripts)
471471
euler.x = 0;
472472
euler.y = atan2(elements[0][2], elements[0][0]);
@@ -478,13 +478,13 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {
478478
}
479479
} else {
480480
euler.x = Math::atan2(elements[2][1], elements[1][1]);
481-
euler.y = -Math_PI / 2.0;
482-
euler.z = 0.0;
481+
euler.y = -Math_PI / 2.0f;
482+
euler.z = 0.0f;
483483
}
484484
} else {
485485
euler.x = Math::atan2(elements[2][1], elements[1][1]);
486-
euler.y = Math_PI / 2.0;
487-
euler.z = 0.0;
486+
euler.y = Math_PI / 2.0f;
487+
euler.z = 0.0f;
488488
}
489489
return euler;
490490
} break;
@@ -498,22 +498,22 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {
498498

499499
Vector3 euler;
500500
real_t sz = elements[0][1];
501-
if (sz < (1.0 - CMP_EPSILON)) {
502-
if (sz > -(1.0 - CMP_EPSILON)) {
501+
if (sz < (1.0f - CMP_EPSILON)) {
502+
if (sz > -(1.0f - CMP_EPSILON)) {
503503
euler.x = Math::atan2(elements[2][1], elements[1][1]);
504504
euler.y = Math::atan2(elements[0][2], elements[0][0]);
505505
euler.z = Math::asin(-sz);
506506
} else {
507507
// It's -1
508508
euler.x = -Math::atan2(elements[1][2], elements[2][2]);
509-
euler.y = 0.0;
510-
euler.z = Math_PI / 2.0;
509+
euler.y = 0.0f;
510+
euler.z = Math_PI / 2.0f;
511511
}
512512
} else {
513513
// It's 1
514514
euler.x = -Math::atan2(elements[1][2], elements[2][2]);
515-
euler.y = 0.0;
516-
euler.z = -Math_PI / 2.0;
515+
euler.y = 0.0f;
516+
euler.z = -Math_PI / 2.0f;
517517
}
518518
return euler;
519519
} break;
@@ -543,12 +543,12 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {
543543
euler.z = atan2(elements[1][0], elements[1][1]);
544544
}
545545
} else { // m12 == -1
546-
euler.x = Math_PI * 0.5;
546+
euler.x = Math_PI * 0.5f;
547547
euler.y = atan2(elements[0][1], elements[0][0]);
548548
euler.z = 0;
549549
}
550550
} else { // m12 == 1
551-
euler.x = -Math_PI * 0.5;
551+
euler.x = -Math_PI * 0.5f;
552552
euler.y = -atan2(elements[0][1], elements[0][0]);
553553
euler.z = 0;
554554
}
@@ -565,22 +565,22 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {
565565

566566
Vector3 euler;
567567
real_t sz = elements[1][0];
568-
if (sz < (1.0 - CMP_EPSILON)) {
569-
if (sz > -(1.0 - CMP_EPSILON)) {
568+
if (sz < (1.0f - CMP_EPSILON)) {
569+
if (sz > -(1.0f - CMP_EPSILON)) {
570570
euler.x = Math::atan2(-elements[1][2], elements[1][1]);
571571
euler.y = Math::atan2(-elements[2][0], elements[0][0]);
572572
euler.z = Math::asin(sz);
573573
} else {
574574
// It's -1
575575
euler.x = Math::atan2(elements[2][1], elements[2][2]);
576-
euler.y = 0.0;
577-
euler.z = -Math_PI / 2.0;
576+
euler.y = 0.0f;
577+
euler.z = -Math_PI / 2.0f;
578578
}
579579
} else {
580580
// It's 1
581581
euler.x = Math::atan2(elements[2][1], elements[2][2]);
582-
euler.y = 0.0;
583-
euler.z = Math_PI / 2.0;
582+
euler.y = 0.0f;
583+
euler.z = Math_PI / 2.0f;
584584
}
585585
return euler;
586586
} break;
@@ -593,20 +593,20 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {
593593
// -cx*sy sx cx*cy
594594
Vector3 euler;
595595
real_t sx = elements[2][1];
596-
if (sx < (1.0 - CMP_EPSILON)) {
597-
if (sx > -(1.0 - CMP_EPSILON)) {
596+
if (sx < (1.0f - CMP_EPSILON)) {
597+
if (sx > -(1.0f - CMP_EPSILON)) {
598598
euler.x = Math::asin(sx);
599599
euler.y = Math::atan2(-elements[2][0], elements[2][2]);
600600
euler.z = Math::atan2(-elements[0][1], elements[1][1]);
601601
} else {
602602
// It's -1
603-
euler.x = -Math_PI / 2.0;
603+
euler.x = -Math_PI / 2.0f;
604604
euler.y = Math::atan2(elements[0][2], elements[0][0]);
605605
euler.z = 0;
606606
}
607607
} else {
608608
// It's 1
609-
euler.x = Math_PI / 2.0;
609+
euler.x = Math_PI / 2.0f;
610610
euler.y = Math::atan2(elements[0][2], elements[0][0]);
611611
euler.z = 0;
612612
}
@@ -621,21 +621,21 @@ Vector3 Basis::get_euler(EulerOrder p_order) const {
621621
// -sy cy*sx cy*cx
622622
Vector3 euler;
623623
real_t sy = elements[2][0];
624-
if (sy < (1.0 - CMP_EPSILON)) {
625-
if (sy > -(1.0 - CMP_EPSILON)) {
624+
if (sy < (1.0f - CMP_EPSILON)) {
625+
if (sy > -(1.0f - CMP_EPSILON)) {
626626
euler.x = Math::atan2(elements[2][1], elements[2][2]);
627627
euler.y = Math::asin(-sy);
628628
euler.z = Math::atan2(elements[1][0], elements[0][0]);
629629
} else {
630630
// It's -1
631631
euler.x = 0;
632-
euler.y = Math_PI / 2.0;
632+
euler.y = Math_PI / 2.0f;
633633
euler.z = -Math::atan2(elements[0][1], elements[1][1]);
634634
}
635635
} else {
636636
// It's 1
637637
euler.x = 0;
638-
euler.y = -Math_PI / 2.0;
638+
euler.y = -Math_PI / 2.0f;
639639
euler.z = -Math::atan2(elements[0][1], elements[1][1]);
640640
}
641641
return euler;
@@ -652,15 +652,15 @@ void Basis::set_euler(const Vector3 &p_euler, EulerOrder p_order) {
652652

653653
c = Math::cos(p_euler.x);
654654
s = Math::sin(p_euler.x);
655-
Basis xmat(1.0, 0.0, 0.0, 0.0, c, -s, 0.0, s, c);
655+
Basis xmat(1, 0, 0, 0, c, -s, 0, s, c);
656656

657657
c = Math::cos(p_euler.y);
658658
s = Math::sin(p_euler.y);
659-
Basis ymat(c, 0.0, s, 0.0, 1.0, 0.0, -s, 0.0, c);
659+
Basis ymat(c, 0, s, 0, 1, 0, -s, 0, c);
660660

661661
c = Math::cos(p_euler.z);
662662
s = Math::sin(p_euler.z);
663-
Basis zmat(c, -s, 0.0, s, c, 0.0, 0.0, 0.0, 1.0);
663+
Basis zmat(c, -s, 0, s, c, 0, 0, 0, 1);
664664

665665
switch (p_order) {
666666
case EULER_ORDER_XYZ: {
@@ -722,10 +722,10 @@ Quaternion Basis::get_quaternion() const {
722722
real_t trace = m.elements[0][0] + m.elements[1][1] + m.elements[2][2];
723723
real_t temp[4];
724724

725-
if (trace > 0.0) {
726-
real_t s = Math::sqrt(trace + 1.0);
727-
temp[3] = (s * 0.5);
728-
s = 0.5 / s;
725+
if (trace > 0.0f) {
726+
real_t s = Math::sqrt(trace + 1.0f);
727+
temp[3] = (s * 0.5f);
728+
s = 0.5f / s;
729729

730730
temp[0] = ((m.elements[2][1] - m.elements[1][2]) * s);
731731
temp[1] = ((m.elements[0][2] - m.elements[2][0]) * s);
@@ -737,9 +737,9 @@ Quaternion Basis::get_quaternion() const {
737737
int j = (i + 1) % 3;
738738
int k = (i + 2) % 3;
739739

740-
real_t s = Math::sqrt(m.elements[i][i] - m.elements[j][j] - m.elements[k][k] + 1.0);
741-
temp[i] = s * 0.5;
742-
s = 0.5 / s;
740+
real_t s = Math::sqrt(m.elements[i][i] - m.elements[j][j] - m.elements[k][k] + 1.0f);
741+
temp[i] = s * 0.5f;
742+
s = 0.5f / s;
743743

744744
temp[3] = (m.elements[k][j] - m.elements[j][k]) * s;
745745
temp[j] = (m.elements[j][i] + m.elements[i][j]) * s;
@@ -782,10 +782,10 @@ int Basis::get_orthogonal_index() const {
782782
for (int i = 0; i < 3; i++) {
783783
for (int j = 0; j < 3; j++) {
784784
real_t v = orth[i][j];
785-
if (v > 0.5) {
786-
v = 1.0;
787-
} else if (v < -0.5) {
788-
v = -1.0;
785+
if (v > 0.5f) {
786+
v = 1.0f;
787+
} else if (v < -0.5f) {
788+
v = -1.0f;
789789
} else {
790790
v = 0;
791791
}
@@ -890,14 +890,14 @@ void Basis::get_axis_angle(Vector3 &r_axis, real_t &r_angle) const {
890890

891891
void Basis::set_quaternion(const Quaternion &p_quaternion) {
892892
real_t d = p_quaternion.length_squared();
893-
real_t s = 2.0 / d;
893+
real_t s = 2.0f / d;
894894
real_t xs = p_quaternion.x * s, ys = p_quaternion.y * s, zs = p_quaternion.z * s;
895895
real_t wx = p_quaternion.w * xs, wy = p_quaternion.w * ys, wz = p_quaternion.w * zs;
896896
real_t xx = p_quaternion.x * xs, xy = p_quaternion.x * ys, xz = p_quaternion.x * zs;
897897
real_t yy = p_quaternion.y * ys, yz = p_quaternion.y * zs, zz = p_quaternion.z * zs;
898-
set(1.0 - (yy + zz), xy - wz, xz + wy,
899-
xy + wz, 1.0 - (xx + zz), yz - wx,
900-
xz - wy, yz + wx, 1.0 - (xx + yy));
898+
set(1.0f - (yy + zz), xy - wz, xz + wy,
899+
xy + wz, 1.0f - (xx + zz), yz - wx,
900+
xz - wy, yz + wx, 1.0f - (xx + yy));
901901
}
902902

903903
void Basis::set_axis_angle(const Vector3 &p_axis, real_t p_phi) {
@@ -907,9 +907,9 @@ void Basis::set_axis_angle(const Vector3 &p_axis, real_t p_phi) {
907907
#endif
908908
Vector3 axis_sq(p_axis.x * p_axis.x, p_axis.y * p_axis.y, p_axis.z * p_axis.z);
909909
real_t cosine = Math::cos(p_phi);
910-
elements[0][0] = axis_sq.x + cosine * (1.0 - axis_sq.x);
911-
elements[1][1] = axis_sq.y + cosine * (1.0 - axis_sq.y);
912-
elements[2][2] = axis_sq.z + cosine * (1.0 - axis_sq.z);
910+
elements[0][0] = axis_sq.x + cosine * (1.0f - axis_sq.x);
911+
elements[1][1] = axis_sq.y + cosine * (1.0f - axis_sq.y);
912+
elements[2][2] = axis_sq.z + cosine * (1.0f - axis_sq.z);
913913

914914
real_t sine = Math::sin(p_phi);
915915
real_t t = 1 - cosine;

0 commit comments

Comments
 (0)