Daniele Bartolini 10 lat temu
rodzic
commit
09a4faa14d

+ 25 - 0
src/core/math/math_types.h

@@ -91,4 +91,29 @@ struct Sphere
 	float r;
 };
 
+const Vector2 VECTOR2_ZERO = { 0.0f, 0.0f };
+
+const Vector3 VECTOR3_ZERO     = {  0.0f,  0.0f,  0.0f };
+const Vector3 VECTOR3_XAXIS    = {  1.0f,  0.0f,  0.0f };
+const Vector3 VECTOR3_YAXIS    = {  0.0f,  1.0f,  0.0f };
+const Vector3 VECTOR3_ZAXIS    = {  0.0f,  0.0f,  1.0f };
+const Vector3 VECTOR3_FORWARD  = {  0.0f,  0.0f,  1.0f };
+const Vector3 VECTOR3_BACKWARD = {  0.0f,  0.0f, -1.0f };
+const Vector3 VECTOR3_LEFT     = { -1.0f,  0.0f,  0.0f };
+const Vector3 VECTOR3_RIGHT    = {  1.0f,  0.0f,  0.0f };
+const Vector3 VECTOR3_UP       = {  0.0f,  1.0f,  0.0f };
+const Vector3 VECTOR3_DOWN     = {  0.0f, -1.0f,  0.0f };
+
+const Vector4 VECTOR4_ZERO  = { 0.0f, 0.0f, 0.0f, 0.0f };
+const Vector4 VECTOR4_XAXIS = { 1.0f, 0.0f, 0.0f, 0.0f };
+const Vector4 VECTOR4_YAXIS = { 0.0f, 1.0f, 0.0f, 0.0f };
+const Vector4 VECTOR4_ZAXIS = { 0.0f, 0.0f, 1.0f, 0.0f };
+const Vector4 VECTOR4_WAXIS = { 0.0f, 0.0f, 0.0f, 1.0f };
+
+const Quaternion QUATERNION_IDENTITY = { 0.0f, 0.0f, 0.0f, 1.0f };
+
+const Matrix3x3 MATRIX3X3_IDENTITY = { VECTOR3_XAXIS, VECTOR3_YAXIS, VECTOR3_ZAXIS };
+
+const Matrix4x4 MATRIX4X4_IDENTITY = { VECTOR4_XAXIS, VECTOR4_YAXIS, VECTOR4_ZAXIS, VECTOR4_WAXIS };
+
 } // namespace crown

+ 1 - 2
src/core/math/matrix3x3.h

@@ -6,14 +6,13 @@
 #pragma once
 
 #include "math_types.h"
+#include "vector3.h"
 
 namespace crown
 {
 /// @addtogroup Math
 /// @{
 
-const Matrix3x3 MATRIX3X3_IDENTITY = { VECTOR3_XAXIS, VECTOR3_YAXIS, VECTOR3_ZAXIS };
-
 inline Matrix3x3 matrix3x3(const Vector3& x, const Vector3& y, const Vector3& z)
 {
 	Matrix3x3 m;

+ 0 - 2
src/core/math/matrix4x4.h

@@ -15,8 +15,6 @@ namespace crown
 /// @addtogroup Math
 /// @{
 
-const Matrix4x4 MATRIX4X4_IDENTITY = { VECTOR4_XAXIS, VECTOR4_YAXIS, VECTOR4_ZAXIS, VECTOR4_WAXIS };
-
 inline Matrix4x4 matrix4x4(float r1c1, float r2c1, float r3c1, float r4c1,
 	float r1c2, float r2c2, float r3c2, float r4c2,
 	float r1c3, float r2c3, float r3c3, float r4c3,

+ 4 - 5
src/core/math/quaternion.h

@@ -14,8 +14,6 @@ namespace crown
 /// @addtogroup Math
 /// @{
 
-const Quaternion QUATERNION_IDENTITY = { 0.0f, 0.0f, 0.0f, 1.0f };
-
 inline Quaternion quaternion(float x, float y, float z, float w)
 {
 	Quaternion q;
@@ -125,9 +123,10 @@ inline Quaternion power(const Quaternion& q, float exp)
 {
 	if (fabs(q.w) < 0.9999)
 	{
-		float alpha = acos(q.w); // alpha = theta/2
-		float new_alpha = alpha * exp;
-		float mult = sinf(new_alpha) / sinf(alpha);
+		const float alpha = acos(q.w); // alpha = theta/2
+		const float new_alpha = alpha * exp;
+		const float mult = sinf(new_alpha) / sinf(alpha);
+
 		Quaternion tmp;
 		tmp.w = cosf(new_alpha);
 		tmp.x = q.x * mult;

+ 0 - 2
src/core/math/vector2.h

@@ -14,8 +14,6 @@ namespace crown
 /// @addtogroup Math
 /// @{
 
-const Vector2 VECTOR2_ZERO = { 0.0f, 0.0f };
-
 inline Vector2 vector2(float x, float y)
 {
 	Vector2 v;

+ 0 - 11
src/core/math/vector3.h

@@ -15,17 +15,6 @@ namespace crown
 /// @addtogroup Math
 /// @{
 
-const Vector3 VECTOR3_ZERO     = { 0.0f, 0.0f, 0.0f };
-const Vector3 VECTOR3_XAXIS    = { 1.0f, 0.0f, 0.0f };
-const Vector3 VECTOR3_YAXIS    = { 0.0f, 1.0f, 0.0f };
-const Vector3 VECTOR3_ZAXIS    = { 0.0f, 0.0f, 1.0f };
-const Vector3 VECTOR3_FORWARD  = { 0.0f, 0.0f, 1.0f };
-const Vector3 VECTOR3_BACKWARD = { 0.0f, 0.0f, -1.0f };
-const Vector3 VECTOR3_LEFT     = { -1.0f, 0.0f, 0.0f };
-const Vector3 VECTOR3_RIGHT    = { 1.0f, 0.0f, 0.0f };
-const Vector3 VECTOR3_UP       = { 0.0f, 1.0f, 0.0f };
-const Vector3 VECTOR3_DOWN     = { 0.0f, -1.0f, 0.0f };
-
 inline Vector3 vector3(float x, float y, float z)
 {
 	Vector3 v;

+ 0 - 6
src/core/math/vector4.h

@@ -15,12 +15,6 @@ namespace crown
 /// @addtogroup Math
 /// @{
 
-const Vector4 VECTOR4_ZERO  = { 0.0f, 0.0f, 0.0f, 0.0f };
-const Vector4 VECTOR4_XAXIS = { 1.0f, 0.0f, 0.0f, 0.0f };
-const Vector4 VECTOR4_YAXIS = { 0.0f, 1.0f, 0.0f, 0.0f };
-const Vector4 VECTOR4_ZAXIS = { 0.0f, 0.0f, 1.0f, 0.0f };
-const Vector4 VECTOR4_WAXIS = { 0.0f, 0.0f, 0.0f, 1.0f };
-
 /// Returns the Vector3 portion of @a a. (i.e. truncates w)
 Vector3 to_vector3(const Vector4& a);