From 831e814ce9bdb84e86c06c4a52008f6bdaaa00d6 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 16 Nov 2018 00:24:51 +0800 Subject: =?UTF-8?q?*=E5=90=88=E5=B9=B6master=E5=88=B0minimal=E5=88=86?= =?UTF-8?q?=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/Math/je_bezier_curve.cpp | 0 src/libjin/Math/je_bezier_curve.h | 17 +++++++++++++++++ src/libjin/Math/je_constant.h | 4 ++-- src/libjin/Math/je_ellipse.cpp | 0 src/libjin/Math/je_ellipse.h | 0 src/libjin/Math/je_math.h | 12 +++++++++--- src/libjin/Math/je_matrix.h | 6 +++--- src/libjin/Math/je_quad.h | 6 +++--- src/libjin/Math/je_random.cpp | 13 +++++++++++++ src/libjin/Math/je_random.h | 22 ++++++++++++++++++---- src/libjin/Math/je_vector2.hpp | 16 ++++++++++++++-- src/libjin/Math/je_vector3.hpp | 4 ++-- src/libjin/Math/je_vector4.hpp | 4 ++-- 13 files changed, 83 insertions(+), 21 deletions(-) create mode 100644 src/libjin/Math/je_bezier_curve.cpp create mode 100644 src/libjin/Math/je_bezier_curve.h create mode 100644 src/libjin/Math/je_ellipse.cpp create mode 100644 src/libjin/Math/je_ellipse.h create mode 100644 src/libjin/Math/je_random.cpp (limited to 'src/libjin/Math') 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 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 diff --git a/src/libjin/Math/je_ellipse.h b/src/libjin/Math/je_ellipse.h new file mode 100644 index 0000000..e69de29 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(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& 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 { -- cgit v1.1-26-g67d0