diff --git a/include/matrix4.h b/include/matrix4.h index b58f097..5c787f8 100644 --- a/include/matrix4.h +++ b/include/matrix4.h @@ -107,6 +107,7 @@ public: static Matrix4 Translation(const Vector3 &v); static Matrix4 Rotation(const Vector3 &v); static Matrix4 Scaling(const Vector3 &v); + static Matrix4 Identity(); }; static_assert(std::is_pod::value, "kraken::Matrix4 must be a POD type."); diff --git a/include/scalar.h b/include/scalar.h index 5dd0423..dc74a55 100644 --- a/include/scalar.h +++ b/include/scalar.h @@ -35,6 +35,7 @@ namespace kraken { float SmoothStep(float a, float b, float t); + float Lerp(float a, float b, float t); }; // namespace kraken diff --git a/src/matrix4.cpp b/src/matrix4.cpp index e0be521..eec7cea 100644 --- a/src/matrix4.cpp +++ b/src/matrix4.cpp @@ -441,5 +441,12 @@ Matrix4 Matrix4::Scaling(const Vector3 &v) return m; } +Matrix4 Matrix4::Identity() +{ + Matrix4 m; + m.init(); + return m; +} + } // namespace kraken diff --git a/src/scalar.cpp b/src/scalar.cpp index 5f6d374..aadf574 100644 --- a/src/scalar.cpp +++ b/src/scalar.cpp @@ -39,4 +39,9 @@ float SmoothStep(float a, float b, float t) return a * (1.0f - d) + b * d; } +float Lerp(float a, float b, float t) +{ + return (a + (b - a) * t); +} + } // namespace kraken