From a7ae5bee021fde4369521cc665daca551204ee5a Mon Sep 17 00:00:00 2001 From: korenkonder Date: Fri, 18 Apr 2025 19:21:22 +0300 Subject: [PATCH] Moved `axis_angle_from_vectors` to vec3 definition --- src/DivaGL/Glitter/glitter.cpp | 17 ----------------- src/DivaGL/Glitter/glitter.hpp | 2 -- src/DivaGL/Glitter/render_group.cpp | 12 ++++++------ src/DivaGL/data_test/rob_osage_test.cpp | 9 ++++----- src/DivaGL/data_test/rob_osage_test.hpp | 2 +- src/DivaGL/mdl/disp_manager.cpp | 4 ++-- src/KKdLib | 2 +- 7 files changed, 14 insertions(+), 34 deletions(-) diff --git a/src/DivaGL/Glitter/glitter.cpp b/src/DivaGL/Glitter/glitter.cpp index 42fed6e..d8091ad 100644 --- a/src/DivaGL/Glitter/glitter.cpp +++ b/src/DivaGL/Glitter/glitter.cpp @@ -11,23 +11,6 @@ namespace Glitter { const float_t min_emission = 0.01f; - void axis_angle_from_vectors(vec3& axis, float_t& angle, const vec3& vec1, const vec3& vec2) { - axis = vec3::cross(vec1, vec2); - angle = vec3::length(axis); - - if (angle >= 0.000001f) - angle = asinf(clamp_def(angle, -1.0f, 1.0f)); - else { - angle = 0.0f; - axis = vec3::cross(vec3(0.0f, 1.0f, 0.0f), vec1); - if (vec3::length(axis) < 0.000001f) - axis = vec3::cross(vec3(0.0f, 0.0f, 1.0f), vec1); - } - - if (vec3::dot(vec1, vec2) < 0.0f) - angle = (float_t)M_PI - angle; - } - void CreateBuffer(size_t max_count, bool is_quad, Buffer*& buffer, GLuint& vao, GL::ArrayBuffer& vbo, GL::ElementArrayBuffer& ebo) { if (buffer) { diff --git a/src/DivaGL/Glitter/glitter.hpp b/src/DivaGL/Glitter/glitter.hpp index 117bf6f..70e989e 100644 --- a/src/DivaGL/Glitter/glitter.hpp +++ b/src/DivaGL/Glitter/glitter.hpp @@ -1500,8 +1500,6 @@ namespace Glitter { extern RandomX random_x; extern Counter& counter; - extern void axis_angle_from_vectors(vec3& axis, float_t& angle, const vec3& vec0, const vec3& vec1); - extern void CreateBuffer(size_t max_count, bool is_quad, Buffer*& buffer, GLuint& vao, GL::ArrayBuffer& vbo, GL::ElementArrayBuffer& ebo); extern void DeleteBuffer(Buffer*& buffer, GLuint& vao, GL::ArrayBuffer& vbo, GL::ElementArrayBuffer& ebo); diff --git a/src/DivaGL/Glitter/render_group.cpp b/src/DivaGL/Glitter/render_group.cpp index c9546b2..62df6bd 100644 --- a/src/DivaGL/Glitter/render_group.cpp +++ b/src/DivaGL/Glitter/render_group.cpp @@ -24,7 +24,7 @@ namespace Glitter { vec3 axis; float_t angle; - axis_angle_from_vectors(axis, angle, vec1, vec2); + vec3::axis_angle_from_vectors(axis, angle, vec1, vec2); mat4_mul_rotation(&mat, &axis, angle, &mat); } else @@ -47,7 +47,7 @@ namespace Glitter { vec3 axis; float_t angle; - axis_angle_from_vectors(axis, angle, vec1, vec2); + vec3::axis_angle_from_vectors(axis, angle, vec1, vec2); mat4_mul_rotation(&mat, &axis, angle, &mat); } return mat; @@ -467,7 +467,7 @@ namespace Glitter { vec3 axis; float_t angle; - axis_angle_from_vectors(axis, angle, vec1, vec2); + vec3::axis_angle_from_vectors(axis, angle, vec1, vec2); mat4 mat = mat4_identity; mat4_mul_rotation(&mat, &axis, angle, &mat); @@ -487,7 +487,7 @@ namespace Glitter { vec3 axis; float_t angle; - axis_angle_from_vectors(axis, angle, vec1, vec2); + vec3::axis_angle_from_vectors(axis, angle, vec1, vec2); mat4 mat = mat4_identity; mat4_mul_rotation(&mat, &axis, angle, &mat); @@ -509,7 +509,7 @@ namespace Glitter { vec3 axis; float_t angle; - axis_angle_from_vectors(axis, angle, vec1, vec2); + vec3::axis_angle_from_vectors(axis, angle, vec1, vec2); mat4 mat = mat4_identity; mat4_mul_rotation(&mat, &axis, angle, &mat); @@ -529,7 +529,7 @@ namespace Glitter { vec3 axis; float_t angle; - axis_angle_from_vectors(axis, angle, vec1, vec2); + vec3::axis_angle_from_vectors(axis, angle, vec1, vec2); mat4 mat = mat4_identity; mat4_mul_rotation(&mat, &axis, angle, &mat); diff --git a/src/DivaGL/data_test/rob_osage_test.cpp b/src/DivaGL/data_test/rob_osage_test.cpp index 1bc81c7..7797259 100644 --- a/src/DivaGL/data_test/rob_osage_test.cpp +++ b/src/DivaGL/data_test/rob_osage_test.cpp @@ -12,9 +12,8 @@ #include "../../AFTModsShared/canonical_properties.hpp" #include "../../AFTModsShared/dw.hpp" #include "../../AFTModsShared/resolution_mode.hpp" -#include "../Glitter/glitter.hpp" -#include "../rob/rob.hpp" -#include "../render_context.hpp" +#include "../../AFTModsShared/file_handler.hpp" +#include "../mdl/disp_manager.hpp" #include class RobOsageTestDw : public dw::Shell { @@ -1105,7 +1104,7 @@ void RobOsageTest::disp_coli_cls_list(ExNodeBlock* ex_node, SkinParam::Collision const vec3 up = { 0.0f, 1.0f, 0.0f }; vec3 axis; float_t angle; - Glitter::axis_angle_from_vectors(axis, angle, up, dir); + vec3::axis_angle_from_vectors(axis, angle, up, dir); mat4 mat_rot = mat4_identity; mat4_mul_rotation(&mat_rot, &axis, angle, &mat_rot); @@ -1140,7 +1139,7 @@ void RobOsageTest::disp_coli_cls_list(ExNodeBlock* ex_node, SkinParam::Collision const vec3 up = { 0.0f, 1.0f, 0.0f }; vec3 axis; float_t angle; - Glitter::axis_angle_from_vectors(axis, angle, up, dir); + vec3::axis_angle_from_vectors(axis, angle, up, dir); mat4 m = mat4_identity; mat4_mul_rotation(&m, &axis, angle, &m); diff --git a/src/DivaGL/data_test/rob_osage_test.hpp b/src/DivaGL/data_test/rob_osage_test.hpp index c41a253..0f76094 100644 --- a/src/DivaGL/data_test/rob_osage_test.hpp +++ b/src/DivaGL/data_test/rob_osage_test.hpp @@ -7,9 +7,9 @@ #include "../../KKdLib/default.hpp" #include "../../KKdLib/prj/vector_pair.hpp" +#include "../../AFTModsShared/rob/rob.hpp" #include "../../AFTModsShared/task.hpp" #include "../../AFTModsShared/types.hpp" -#include "../rob/rob.hpp" class RobOsageTest : public app::Task { public: diff --git a/src/DivaGL/mdl/disp_manager.cpp b/src/DivaGL/mdl/disp_manager.cpp index c5f936d..4d405b5 100644 --- a/src/DivaGL/mdl/disp_manager.cpp +++ b/src/DivaGL/mdl/disp_manager.cpp @@ -1542,7 +1542,7 @@ namespace mdl { const vec3 up = { 0.0f, 1.0f, 0.0f }; vec3 axis; float_t angle; - Glitter::axis_angle_from_vectors(axis, angle, up, dir); + vec3::axis_angle_from_vectors(axis, angle, up, dir); mat4 m = mat4_identity; mat4_mul_rotation(&m, &axis, angle, &m); @@ -1563,7 +1563,7 @@ namespace mdl { const vec3 up = { 0.0f, 1.0f, 0.0f }; vec3 axis; float_t angle; - Glitter::axis_angle_from_vectors(axis, angle, up, dir); + vec3::axis_angle_from_vectors(axis, angle, up, dir); mat4 m = mat4_identity; mat4_mul_rotation(&m, &axis, angle, &m); diff --git a/src/KKdLib b/src/KKdLib index 9286c8d..c20034a 160000 --- a/src/KKdLib +++ b/src/KKdLib @@ -1 +1 @@ -Subproject commit 9286c8db0216205f7faad920540e15a77584c443 +Subproject commit c20034a315b167e4e867fc82d7001b3bbea6c1ff