aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Math
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Math')
-rw-r--r--src/libjin/Math/je_bezier_curve.cpp0
-rw-r--r--src/libjin/Math/je_bezier_curve.h17
-rw-r--r--src/libjin/Math/je_constant.h4
-rw-r--r--src/libjin/Math/je_ellipse.cpp0
-rw-r--r--src/libjin/Math/je_ellipse.h0
-rw-r--r--src/libjin/Math/je_math.h12
-rw-r--r--src/libjin/Math/je_matrix.h6
-rw-r--r--src/libjin/Math/je_quad.h6
-rw-r--r--src/libjin/Math/je_random.cpp13
-rw-r--r--src/libjin/Math/je_random.h22
-rw-r--r--src/libjin/Math/je_vector2.hpp16
-rw-r--r--src/libjin/Math/je_vector3.hpp4
-rw-r--r--src/libjin/Math/je_vector4.hpp4
13 files changed, 83 insertions, 21 deletions
diff --git a/src/libjin/Math/je_bezier_curve.cpp b/src/libjin/Math/je_bezier_curve.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/libjin/Math/je_bezier_curve.cpp
diff --git a/src/libjin/Math/je_bezier_curve.h b/src/libjin/Math/je_bezier_curve.h
new file mode 100644
index 0000000..6925baf
--- /dev/null
+++ b/src/libjin/Math/je_bezier_curve.h
@@ -0,0 +1,17 @@
+#ifndef __JIN_BEZIER_CURVE_H__
+#define __JIN_BEZIER_CURVE_H__
+
+namespace JinEngine
+{
+ namespace Math
+ {
+
+ class BezierCurve
+ {
+
+ };
+
+ } // namespace Math
+} // namespace JinEngine
+
+#endif \ No newline at end of file
diff --git a/src/libjin/Math/je_constant.h b/src/libjin/Math/je_constant.h
index 5ab126c..45577e7 100644
--- a/src/libjin/Math/je_constant.h
+++ b/src/libjin/Math/je_constant.h
@@ -1,5 +1,5 @@
-#ifndef __JE_MATH_CONSTANT_H
-#define __JE_MATH_CONSTANT_H
+#ifndef __JE_MATH_CONSTANT_H__
+#define __JE_MATH_CONSTANT_H__
#define PI 3.1415926f
diff --git a/src/libjin/Math/je_ellipse.cpp b/src/libjin/Math/je_ellipse.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/libjin/Math/je_ellipse.cpp
diff --git a/src/libjin/Math/je_ellipse.h b/src/libjin/Math/je_ellipse.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/libjin/Math/je_ellipse.h
diff --git a/src/libjin/Math/je_math.h b/src/libjin/Math/je_math.h
index 1f8e0b3..de57e36 100644
--- a/src/libjin/Math/je_math.h
+++ b/src/libjin/Math/je_math.h
@@ -1,5 +1,5 @@
-#ifndef __JE_UTILS_MATH_H
-#define __JE_UTILS_MATH_H
+#ifndef __JE_UTILS_MATH_H__
+#define __JE_UTILS_MATH_H__
#include "je_constant.h"
#include "je_matrix.h"
@@ -71,7 +71,13 @@ namespace JinEngine
return a + t * (b - a);
}
+ inline float lerp(float a, float b, float f)
+ {
+ f = clamp<float>(f, 0, 1);
+ return a + f * (b - a);
+ }
+
} // namespace Math
} // namespace JinEngine
-#endif // __JE_UTILS_MATH_H \ No newline at end of file
+#endif // __JE_UTILS_MATH_H__
diff --git a/src/libjin/Math/je_matrix.h b/src/libjin/Math/je_matrix.h
index 3592d18..bbc831d 100644
--- a/src/libjin/Math/je_matrix.h
+++ b/src/libjin/Math/je_matrix.h
@@ -1,5 +1,5 @@
-#ifndef __JE_MATRIX_H
-#define __JE_MATRIX_H
+#ifndef __JE_MATRIX_H__
+#define __JE_MATRIX_H__
namespace JinEngine
{
@@ -156,4 +156,4 @@ namespace JinEngine
} // namespace Math
} // namespace JinEngine
-#endif // __JE_MATRIX_H \ No newline at end of file
+#endif // __JE_MATRIX_H__
diff --git a/src/libjin/Math/je_quad.h b/src/libjin/Math/je_quad.h
index 2a66fa1..8a7bd64 100644
--- a/src/libjin/Math/je_quad.h
+++ b/src/libjin/Math/je_quad.h
@@ -1,5 +1,5 @@
-#ifndef __JE_QUAD_H
-#define __JE_QUAD_H
+#ifndef __JE_QUAD_H__
+#define __JE_QUAD_H__
namespace JinEngine
{
@@ -20,4 +20,4 @@ namespace JinEngine
} // namespace Math
} // namespace JinEngine
-#endif // __JE_QUAD_H \ No newline at end of file
+#endif // __JE_QUAD_H__
diff --git a/src/libjin/Math/je_random.cpp b/src/libjin/Math/je_random.cpp
new file mode 100644
index 0000000..983fa36
--- /dev/null
+++ b/src/libjin/Math/je_random.cpp
@@ -0,0 +1,13 @@
+#include "je_random.h"
+
+namespace JinEngine
+{
+ namespace Math
+ {
+
+ RandomGenerator::RandomGenerator()
+ {
+ }
+
+ }
+} \ No newline at end of file
diff --git a/src/libjin/Math/je_random.h b/src/libjin/Math/je_random.h
index eb59341..0bcdec7 100644
--- a/src/libjin/Math/je_random.h
+++ b/src/libjin/Math/je_random.h
@@ -1,14 +1,28 @@
-#ifndef __JE_RANDOM_H
-#define __JE_RANDOM_H
+#ifndef __JE_RANDOM_H__
+#define __JE_RANDOM_H__
+
+#include "../common/je_types.h"
namespace JinEngine
{
namespace Math
{
+ ///
+ /// A random number generator.
+ ///
+ class RandomGenerator
+ {
+ public:
+ RandomGenerator();
+ explicit RandomGenerator(uint32 seed);
+
+ uint32 rand(uint32 min, uint32 max);
+ float rand(float min, float max);
+ };
- }
-}
+ } // namespace Math
+} // namespace JinEngine
#endif \ No newline at end of file
diff --git a/src/libjin/Math/je_vector2.hpp b/src/libjin/Math/je_vector2.hpp
index a2b3371..e9599e1 100644
--- a/src/libjin/Math/je_vector2.hpp
+++ b/src/libjin/Math/je_vector2.hpp
@@ -1,5 +1,5 @@
-#ifndef __JE_VECTOR_H
-#define __JE_VECTOR_H
+#ifndef __JE_VECTOR_H__
+#define __JE_VECTOR_H__
namespace JinEngine
{
@@ -25,6 +25,18 @@ namespace JinEngine
data[1] = v.data[1];
}
+ void operator = (const Vector2<T>& v)
+ {
+ data[0] = v.data[0];
+ data[1] = v.data[1];
+ }
+
+ void set(T _x, T _y)
+ {
+ data[0] = _x;
+ data[1] = _y;
+ }
+
T &x = data[0], &y = data[1]; // xy
T &w = data[0], &h = data[1]; // wh
T &colum = data[0], &row = data[1]; // colum row
diff --git a/src/libjin/Math/je_vector3.hpp b/src/libjin/Math/je_vector3.hpp
index 0f9448d..fdab2d0 100644
--- a/src/libjin/Math/je_vector3.hpp
+++ b/src/libjin/Math/je_vector3.hpp
@@ -1,5 +1,5 @@
-#ifndef __JE_VECTOR3_H
-#define __JE_VECTOR3_H
+#ifndef __JE_VECTOR3_H__
+#define __JE_VECTOR3_H__
namespace JinEngine
{
diff --git a/src/libjin/Math/je_vector4.hpp b/src/libjin/Math/je_vector4.hpp
index 20353eb..5cd5b35 100644
--- a/src/libjin/Math/je_vector4.hpp
+++ b/src/libjin/Math/je_vector4.hpp
@@ -1,5 +1,5 @@
-#ifndef __JE_VECTOR4_H
-#define __JE_VECTOR4_H
+#ifndef __JE_VECTOR4_H__
+#define __JE_VECTOR4_H__
namespace JinEngine
{