diff --git a/Math.cpp b/Math.cpp index fc48a7b..8d5ad9e 100755 --- a/Math.cpp +++ b/Math.cpp @@ -513,7 +513,7 @@ namespace ZL { mat.m[8] * mat.m[1] * mat.m[6] - mat.m[8] * mat.m[2] * mat.m[5]; - // Вычисляем детерминант + // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ det = mat.m[0] * inv.m[0] + mat.m[1] * inv.m[4] + mat.m[2] * inv.m[8] + mat.m[3] * inv.m[12]; if (std::fabs(det) < 0.01f) @@ -521,7 +521,7 @@ namespace ZL { throw std::runtime_error("Error: matrix cannot be inversed!"); } - // Делим все элементы на детерминант + // пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ det = 1.0f / det; for (int i = 0; i < 16; i++) { @@ -683,10 +683,10 @@ namespace ZL { Vector4f slerp(const Vector4f& q1, const Vector4f& q2, double t) { - // Вычисляем косинус угла между кватернионами + // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ double cosTheta = q1.dot(q2); - // Если cosTheta < 0, меняем знак второго кватерниона, чтобы выбрать кратчайший путь + // пїЅпїЅпїЅпїЅ cosTheta < 0, пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ, пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ Vector4f q2Adjusted = q2; if (cosTheta < 0.0) { //q2Adjusted = { -q2.w, -q2.x, -q2.y, -q2.z }; @@ -697,7 +697,7 @@ namespace ZL { cosTheta = -cosTheta; } - // Если кватернионы близки, используем линейную интерполяцию + // пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ, пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ const double epsilon = 1e-6; if (cosTheta > 1.0 - epsilon) { @@ -717,15 +717,15 @@ namespace ZL { return result.normalized(); } - // Вычисляем угол theta + // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ theta double theta = std::acos(cosTheta); double sinTheta = std::sin(theta); - // Вычисляем коэффициенты для интерполяции + // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ double coeff1 = std::sin((1.0 - t) * theta) / sinTheta; double coeff2 = std::sin(t * theta) / sinTheta; - // Интерполируем + // пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ /* Quaternion result = { coeff1 * q1.w + coeff2 * q2Adjusted.w, diff --git a/OpenGlExtensions.h b/OpenGlExtensions.h index 6d5cf5e..a2347b2 100755 --- a/OpenGlExtensions.h +++ b/OpenGlExtensions.h @@ -10,6 +10,12 @@ #include "emscripten.h" #endif +#ifdef __linux__ +#include +#include +#include + +#endif #include #include diff --git a/Physics.cpp b/Physics.cpp index 03ea362..83a38e3 100755 --- a/Physics.cpp +++ b/Physics.cpp @@ -1,4 +1,5 @@ #include "Physics.h" +#include namespace ZL { diff --git a/Readme.md b/Readme.md index 28a4c09..93e770c 100644 --- a/Readme.md +++ b/Readme.md @@ -34,3 +34,10 @@ https://github.com/Bly7/OBJ-Loader/blob/master/Source/OBJ_Loader.h https://github.com/gametutorials/tutorials/blob/master/OpenGL/MD3%20Animation/Main.cpp + + +linux: +``` +g++ Game.cpp main.cpp Math.cpp OpenGlExtensions.cpp Physics.cpp Renderer.cpp ShaderManager.cpp TextureManager.cpp Utils.cpp -o sdl_app -O2 -std=c++14 $(pkg-config --cflags --libs sdl2 gl) + +``` \ No newline at end of file diff --git a/Renderer.cpp b/Renderer.cpp index bb7e04a..11b8281 100755 --- a/Renderer.cpp +++ b/Renderer.cpp @@ -29,7 +29,8 @@ namespace ZL { VAOHolder::~VAOHolder() { #ifndef EMSCRIPTEN - glDeleteVertexArray(1, &vao); + glDeleteVertexArrays(1, &vao); + #endif } diff --git a/Utils.cpp b/Utils.cpp index 81fac7c..5b80a8b 100755 --- a/Utils.cpp +++ b/Utils.cpp @@ -1,5 +1,5 @@ #include "Utils.h" - +#include #include #include #include diff --git a/Utils.h b/Utils.h index 97df7aa..fb4eaed 100755 --- a/Utils.h +++ b/Utils.h @@ -5,7 +5,8 @@ #include #include #include - +#include +#include namespace ZL { std::string readTextFile(const std::string& filename);