37
37
(elements[row1][col1] * elements[row2][col2] - elements[row1][col2] * elements[row2][col1])
38
38
39
39
void Basis::from_z (const Vector3 &p_z) {
40
- if (Math::abs (p_z.z ) > Math_SQRT12) {
40
+ if (Math::abs (p_z.z ) > ( real_t ) Math_SQRT12) {
41
41
// choose p in y-z plane
42
42
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 / Math::sqrt (a);
44
44
elements[0 ] = Vector3 (0 , -p_z[2 ] * k, p_z[1 ] * k);
45
45
elements[1 ] = Vector3 (a * k, -p_z[0 ] * elements[0 ][2 ], p_z[0 ] * elements[0 ][1 ]);
46
46
} else {
47
47
// choose p in x-y plane
48
48
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 / Math::sqrt (a);
50
50
elements[0 ] = Vector3 (-p_z.y * k, p_z.x * k, 0 );
51
51
elements[1 ] = Vector3 (-p_z.z * elements[0 ].y , p_z.z * elements[0 ].x , a * k);
52
52
}
@@ -63,7 +63,7 @@ void Basis::invert() {
63
63
#ifdef MATH_CHECKS
64
64
ERR_FAIL_COND (det == 0 );
65
65
#endif
66
- real_t s = 1.0 / det;
66
+ real_t s = 1 / det;
67
67
68
68
set (co[0 ] * s, cofac (0 , 2 , 2 , 1 ) * s, cofac (0 , 1 , 1 , 2 ) * s,
69
69
co[1 ] * s, cofac (0 , 0 , 2 , 2 ) * s, cofac (0 , 2 , 1 , 0 ) * s,
@@ -113,13 +113,13 @@ bool Basis::is_rotation() const {
113
113
}
114
114
115
115
bool Basis::is_symmetric () const {
116
- if (!Math::is_equal_approx_ratio (elements[0 ][1 ], elements[1 ][0 ], UNIT_EPSILON)) {
116
+ if (!Math::is_equal_approx_ratio (elements[0 ][1 ], elements[1 ][0 ], ( real_t ) UNIT_EPSILON)) {
117
117
return false ;
118
118
}
119
- if (!Math::is_equal_approx_ratio (elements[0 ][2 ], elements[2 ][0 ], UNIT_EPSILON)) {
119
+ if (!Math::is_equal_approx_ratio (elements[0 ][2 ], elements[2 ][0 ], ( real_t ) UNIT_EPSILON)) {
120
120
return false ;
121
121
}
122
- if (!Math::is_equal_approx_ratio (elements[1 ][2 ], elements[2 ][1 ], UNIT_EPSILON)) {
122
+ if (!Math::is_equal_approx_ratio (elements[1 ][2 ], elements[2 ][1 ], ( real_t ) UNIT_EPSILON)) {
123
123
return false ;
124
124
}
125
125
@@ -138,7 +138,7 @@ Basis Basis::diagonalize() {
138
138
139
139
int ite = 0 ;
140
140
Basis acc_rot;
141
- while (off_matrix_norm_2 > CMP_EPSILON2 && ite++ < ite_max) {
141
+ while (off_matrix_norm_2 > ( real_t ) CMP_EPSILON2 && ite++ < ite_max) {
142
142
real_t el01_2 = elements[0 ][1 ] * elements[0 ][1 ];
143
143
real_t el02_2 = elements[0 ][2 ] * elements[0 ][2 ];
144
144
real_t el12_2 = elements[1 ][2 ] * elements[1 ][2 ];
@@ -167,7 +167,7 @@ Basis Basis::diagonalize() {
167
167
if (Math::is_equal_approx (elements[j][j], elements[i][i])) {
168
168
angle = Math_PI / 4 ;
169
169
} else {
170
- angle = 0.5 * Math::atan (2 * elements[i][j] / (elements[j][j] - elements[i][i]));
170
+ angle = 0 .5f * Math::atan (2 * elements[i][j] / (elements[j][j] - elements[i][i]));
171
171
}
172
172
173
173
// Compute the rotation matrix
@@ -412,10 +412,10 @@ Vector3 Basis::get_euler_xyz() const {
412
412
413
413
Vector3 euler;
414
414
real_t sy = elements[0 ][2 ];
415
- if (sy < (1.0 - CMP_EPSILON)) {
416
- if (sy > -(1.0 - CMP_EPSILON)) {
415
+ if (sy < (1 - ( real_t ) CMP_EPSILON)) {
416
+ if (sy > -(1 - ( real_t ) CMP_EPSILON)) {
417
417
// is this a pure Y rotation?
418
- if (elements[1 ][0 ] == 0.0 && elements[0 ][1 ] == 0. 0 && elements[1 ][2 ] == 0 && elements[2 ][1 ] == 0 && elements[1 ][1 ] == 1 ) {
418
+ if (elements[1 ][0 ] == 0 && elements[0 ][1 ] == 0 && elements[1 ][2 ] == 0 && elements[2 ][1 ] == 0 && elements[1 ][1 ] == 1 ) {
419
419
// return the simplest form (human friendlier in editor and scripts)
420
420
euler.x = 0 ;
421
421
euler.y = atan2 (elements[0 ][2 ], elements[0 ][0 ]);
@@ -447,15 +447,15 @@ void Basis::set_euler_xyz(const Vector3 &p_euler) {
447
447
448
448
c = Math::cos (p_euler.x );
449
449
s = Math::sin (p_euler.x );
450
- Basis xmat (1.0 , 0.0 , 0.0 , 0.0 , c, -s, 0. 0 , s, c);
450
+ Basis xmat (1 , 0 , 0 , 0 , c, -s, 0 , s, c);
451
451
452
452
c = Math::cos (p_euler.y );
453
453
s = Math::sin (p_euler.y );
454
- Basis ymat (c, 0.0 , s, 0.0 , 1.0 , 0.0 , -s, 0. 0 , c);
454
+ Basis ymat (c, 0 , s, 0 , 1 , 0 , -s, 0 , c);
455
455
456
456
c = Math::cos (p_euler.z );
457
457
s = Math::sin (p_euler.z );
458
- Basis zmat (c, -s, 0.0 , s, c, 0.0 , 0.0 , 0.0 , 1.0 );
458
+ Basis zmat (c, -s, 0 , s, c, 0 , 0 , 0 , 1 );
459
459
460
460
// optimizer will optimize away all this anyway
461
461
*this = xmat * (ymat * zmat);
@@ -471,8 +471,8 @@ Vector3 Basis::get_euler_xzy() const {
471
471
472
472
Vector3 euler;
473
473
real_t sz = elements[0 ][1 ];
474
- if (sz < (1.0 - CMP_EPSILON)) {
475
- if (sz > -(1.0 - CMP_EPSILON)) {
474
+ if (sz < (1 - ( real_t ) CMP_EPSILON)) {
475
+ if (sz > -(1 - ( real_t ) CMP_EPSILON)) {
476
476
euler.x = Math::atan2 (elements[2 ][1 ], elements[1 ][1 ]);
477
477
euler.y = Math::atan2 (elements[0 ][2 ], elements[0 ][0 ]);
478
478
euler.z = Math::asin (-sz);
@@ -496,15 +496,15 @@ void Basis::set_euler_xzy(const Vector3 &p_euler) {
496
496
497
497
c = Math::cos (p_euler.x );
498
498
s = Math::sin (p_euler.x );
499
- Basis xmat (1.0 , 0.0 , 0.0 , 0.0 , c, -s, 0. 0 , s, c);
499
+ Basis xmat (1 , 0 , 0 , 0 , c, -s, 0 , s, c);
500
500
501
501
c = Math::cos (p_euler.y );
502
502
s = Math::sin (p_euler.y );
503
- Basis ymat (c, 0.0 , s, 0.0 , 1.0 , 0.0 , -s, 0. 0 , c);
503
+ Basis ymat (c, 0 , s, 0 , 1 , 0 , -s, 0 , c);
504
504
505
505
c = Math::cos (p_euler.z );
506
506
s = Math::sin (p_euler.z );
507
- Basis zmat (c, -s, 0.0 , s, c, 0.0 , 0.0 , 0.0 , 1.0 );
507
+ Basis zmat (c, -s, 0 , s, c, 0 , 0 , 0 , 1 );
508
508
509
509
*this = xmat * zmat * ymat;
510
510
}
@@ -519,8 +519,8 @@ Vector3 Basis::get_euler_yzx() const {
519
519
520
520
Vector3 euler;
521
521
real_t sz = elements[1 ][0 ];
522
- if (sz < (1.0 - CMP_EPSILON)) {
523
- if (sz > -(1.0 - CMP_EPSILON)) {
522
+ if (sz < (1 - ( real_t ) CMP_EPSILON)) {
523
+ if (sz > -(1 - ( real_t ) CMP_EPSILON)) {
524
524
euler.x = Math::atan2 (-elements[1 ][2 ], elements[1 ][1 ]);
525
525
euler.y = Math::atan2 (-elements[2 ][0 ], elements[0 ][0 ]);
526
526
euler.z = Math::asin (sz);
@@ -544,15 +544,15 @@ void Basis::set_euler_yzx(const Vector3 &p_euler) {
544
544
545
545
c = Math::cos (p_euler.x );
546
546
s = Math::sin (p_euler.x );
547
- Basis xmat (1.0 , 0.0 , 0.0 , 0.0 , c, -s, 0. 0 , s, c);
547
+ Basis xmat (1 , 0 , 0 , 0 , c, -s, 0 , s, c);
548
548
549
549
c = Math::cos (p_euler.y );
550
550
s = Math::sin (p_euler.y );
551
- Basis ymat (c, 0.0 , s, 0.0 , 1.0 , 0.0 , -s, 0. 0 , c);
551
+ Basis ymat (c, 0 , s, 0 , 1 , 0 , -s, 0 , c);
552
552
553
553
c = Math::cos (p_euler.z );
554
554
s = Math::sin (p_euler.z );
555
- Basis zmat (c, -s, 0.0 , s, c, 0.0 , 0.0 , 0.0 , 1.0 );
555
+ Basis zmat (c, -s, 0 , s, c, 0 , 0 , 0 , 1 );
556
556
557
557
*this = ymat * zmat * xmat;
558
558
}
@@ -572,8 +572,8 @@ Vector3 Basis::get_euler_yxz() const {
572
572
573
573
real_t m12 = elements[1 ][2 ];
574
574
575
- if (m12 < (1 - CMP_EPSILON)) {
576
- if (m12 > -(1 - CMP_EPSILON)) {
575
+ if (m12 < (1 - ( real_t ) CMP_EPSILON)) {
576
+ if (m12 > -(1 - ( real_t ) CMP_EPSILON)) {
577
577
// is this a pure X rotation?
578
578
if (elements[1 ][0 ] == 0 && elements[0 ][1 ] == 0 && elements[0 ][2 ] == 0 && elements[2 ][0 ] == 0 && elements[0 ][0 ] == 1 ) {
579
579
// return the simplest form (human friendlier in editor and scripts)
@@ -608,15 +608,15 @@ void Basis::set_euler_yxz(const Vector3 &p_euler) {
608
608
609
609
c = Math::cos (p_euler.x );
610
610
s = Math::sin (p_euler.x );
611
- Basis xmat (1.0 , 0.0 , 0.0 , 0.0 , c, -s, 0. 0 , s, c);
611
+ Basis xmat (1 , 0 , 0 , 0 , c, -s, 0 , s, c);
612
612
613
613
c = Math::cos (p_euler.y );
614
614
s = Math::sin (p_euler.y );
615
- Basis ymat (c, 0.0 , s, 0.0 , 1.0 , 0.0 , -s, 0. 0 , c);
615
+ Basis ymat (c, 0 , s, 0 , 1 , 0 , -s, 0 , c);
616
616
617
617
c = Math::cos (p_euler.z );
618
618
s = Math::sin (p_euler.z );
619
- Basis zmat (c, -s, 0.0 , s, c, 0.0 , 0.0 , 0.0 , 1.0 );
619
+ Basis zmat (c, -s, 0 , s, c, 0 , 0 , 0 , 1 );
620
620
621
621
// optimizer will optimize away all this anyway
622
622
*this = ymat * xmat * zmat;
@@ -631,8 +631,8 @@ Vector3 Basis::get_euler_zxy() const {
631
631
// -cx*sy sx cx*cy
632
632
Vector3 euler;
633
633
real_t sx = elements[2 ][1 ];
634
- if (sx < (1.0 - CMP_EPSILON)) {
635
- if (sx > -(1.0 - CMP_EPSILON)) {
634
+ if (sx < (1 - ( real_t ) CMP_EPSILON)) {
635
+ if (sx > -(1 - ( real_t ) CMP_EPSILON)) {
636
636
euler.x = Math::asin (sx);
637
637
euler.y = Math::atan2 (-elements[2 ][0 ], elements[2 ][2 ]);
638
638
euler.z = Math::atan2 (-elements[0 ][1 ], elements[1 ][1 ]);
@@ -656,15 +656,15 @@ void Basis::set_euler_zxy(const Vector3 &p_euler) {
656
656
657
657
c = Math::cos (p_euler.x );
658
658
s = Math::sin (p_euler.x );
659
- Basis xmat (1.0 , 0.0 , 0.0 , 0.0 , c, -s, 0. 0 , s, c);
659
+ Basis xmat (1 , 0 , 0 , 0 , c, -s, 0 , s, c);
660
660
661
661
c = Math::cos (p_euler.y );
662
662
s = Math::sin (p_euler.y );
663
- Basis ymat (c, 0.0 , s, 0.0 , 1.0 , 0.0 , -s, 0. 0 , c);
663
+ Basis ymat (c, 0 , s, 0 , 1 , 0 , -s, 0 , c);
664
664
665
665
c = Math::cos (p_euler.z );
666
666
s = Math::sin (p_euler.z );
667
- Basis zmat (c, -s, 0.0 , s, c, 0.0 , 0.0 , 0.0 , 1.0 );
667
+ Basis zmat (c, -s, 0 , s, c, 0 , 0 , 0 , 1 );
668
668
669
669
*this = zmat * xmat * ymat;
670
670
}
@@ -678,8 +678,8 @@ Vector3 Basis::get_euler_zyx() const {
678
678
// -sy cy*sx cy*cx
679
679
Vector3 euler;
680
680
real_t sy = elements[2 ][0 ];
681
- if (sy < (1.0 - CMP_EPSILON)) {
682
- if (sy > -(1.0 - CMP_EPSILON)) {
681
+ if (sy < (1 - ( real_t ) CMP_EPSILON)) {
682
+ if (sy > -(1 - ( real_t ) CMP_EPSILON)) {
683
683
euler.x = Math::atan2 (elements[2 ][1 ], elements[2 ][2 ]);
684
684
euler.y = Math::asin (-sy);
685
685
euler.z = Math::atan2 (elements[1 ][0 ], elements[0 ][0 ]);
@@ -703,15 +703,15 @@ void Basis::set_euler_zyx(const Vector3 &p_euler) {
703
703
704
704
c = Math::cos (p_euler.x );
705
705
s = Math::sin (p_euler.x );
706
- Basis xmat (1.0 , 0.0 , 0.0 , 0.0 , c, -s, 0. 0 , s, c);
706
+ Basis xmat (1 , 0 , 0 , 0 , c, -s, 0 , s, c);
707
707
708
708
c = Math::cos (p_euler.y );
709
709
s = Math::sin (p_euler.y );
710
- Basis ymat (c, 0.0 , s, 0.0 , 1.0 , 0.0 , -s, 0. 0 , c);
710
+ Basis ymat (c, 0 , s, 0 , 1 , 0 , -s, 0 , c);
711
711
712
712
c = Math::cos (p_euler.z );
713
713
s = Math::sin (p_euler.z );
714
- Basis zmat (c, -s, 0.0 , s, c, 0.0 , 0.0 , 0.0 , 1.0 );
714
+ Basis zmat (c, -s, 0 , s, c, 0 , 0 , 0 , 1 );
715
715
716
716
*this = zmat * ymat * xmat;
717
717
}
@@ -772,10 +772,10 @@ Quat Basis::get_quat() const {
772
772
real_t trace = m.elements [0 ][0 ] + m.elements [1 ][1 ] + m.elements [2 ][2 ];
773
773
real_t temp[4 ];
774
774
775
- if (trace > 0.0 ) {
776
- real_t s = Math::sqrt (trace + 1.0 );
777
- temp[3 ] = (s * 0.5 );
778
- s = 0.5 / s;
775
+ if (trace > 0 ) {
776
+ real_t s = Math::sqrt (trace + 1 );
777
+ temp[3 ] = (s * 0 .5f );
778
+ s = 0 .5f / s;
779
779
780
780
temp[0 ] = ((m.elements [2 ][1 ] - m.elements [1 ][2 ]) * s);
781
781
temp[1 ] = ((m.elements [0 ][2 ] - m.elements [2 ][0 ]) * s);
@@ -787,9 +787,9 @@ Quat Basis::get_quat() const {
787
787
int j = (i + 1 ) % 3 ;
788
788
int k = (i + 2 ) % 3 ;
789
789
790
- real_t s = Math::sqrt (m.elements [i][i] - m.elements [j][j] - m.elements [k][k] + 1.0 );
791
- temp[i] = s * 0.5 ;
792
- s = 0.5 / s;
790
+ real_t s = Math::sqrt (m.elements [i][i] - m.elements [j][j] - m.elements [k][k] + 1 );
791
+ temp[i] = s * 0 .5f ;
792
+ s = 0 .5f / s;
793
793
794
794
temp[3 ] = (m.elements [k][j] - m.elements [j][k]) * s;
795
795
temp[j] = (m.elements [j][i] + m.elements [i][j]) * s;
@@ -832,10 +832,10 @@ int Basis::get_orthogonal_index() const {
832
832
for (int i = 0 ; i < 3 ; i++) {
833
833
for (int j = 0 ; j < 3 ; j++) {
834
834
real_t v = orth[i][j];
835
- if (v > 0.5 ) {
836
- v = 1.0 ;
837
- } else if (v < -0.5 ) {
838
- v = -1.0 ;
835
+ if (v > 0 .5f ) {
836
+ v = 1 ;
837
+ } else if (v < -0 .5f ) {
838
+ v = -1 ;
839
839
} else {
840
840
v = 0 ;
841
841
}
@@ -940,14 +940,14 @@ void Basis::get_axis_angle(Vector3 &r_axis, real_t &r_angle) const {
940
940
941
941
void Basis::set_quat (const Quat &p_quat) {
942
942
real_t d = p_quat.length_squared ();
943
- real_t s = 2.0 / d;
943
+ real_t s = 2 / d;
944
944
real_t xs = p_quat.x * s, ys = p_quat.y * s, zs = p_quat.z * s;
945
945
real_t wx = p_quat.w * xs, wy = p_quat.w * ys, wz = p_quat.w * zs;
946
946
real_t xx = p_quat.x * xs, xy = p_quat.x * ys, xz = p_quat.x * zs;
947
947
real_t yy = p_quat.y * ys, yz = p_quat.y * zs, zz = p_quat.z * zs;
948
- set (1.0 - (yy + zz), xy - wz, xz + wy,
949
- xy + wz, 1.0 - (xx + zz), yz - wx,
950
- xz - wy, yz + wx, 1.0 - (xx + yy));
948
+ set (1 - (yy + zz), xy - wz, xz + wy,
949
+ xy + wz, 1 - (xx + zz), yz - wx,
950
+ xz - wy, yz + wx, 1 - (xx + yy));
951
951
}
952
952
953
953
void Basis::set_axis_angle (const Vector3 &p_axis, real_t p_phi) {
@@ -957,9 +957,9 @@ void Basis::set_axis_angle(const Vector3 &p_axis, real_t p_phi) {
957
957
#endif
958
958
Vector3 axis_sq (p_axis.x * p_axis.x , p_axis.y * p_axis.y , p_axis.z * p_axis.z );
959
959
real_t cosine = Math::cos (p_phi);
960
- elements[0 ][0 ] = axis_sq.x + cosine * (1.0 - axis_sq.x );
961
- elements[1 ][1 ] = axis_sq.y + cosine * (1.0 - axis_sq.y );
962
- elements[2 ][2 ] = axis_sq.z + cosine * (1.0 - axis_sq.z );
960
+ elements[0 ][0 ] = axis_sq.x + cosine * (1 - axis_sq.x );
961
+ elements[1 ][1 ] = axis_sq.y + cosine * (1 - axis_sq.y );
962
+ elements[2 ][2 ] = axis_sq.z + cosine * (1 - axis_sq.z );
963
963
964
964
real_t sine = Math::sin (p_phi);
965
965
real_t t = 1 - cosine;
0 commit comments