mesh improvement

This commit is contained in:
2026-01-27 01:25:07 +03:00
parent acc24f8438
commit f67ad8ef42
2 changed files with 15 additions and 7 deletions

View File

@@ -101,7 +101,6 @@ namespace omath::primitives
[[nodiscard]] [[nodiscard]]
VectorType vertex_position_to_world_space(const Vector3<float>& vertex_position) const VectorType vertex_position_to_world_space(const Vector3<float>& vertex_position) const
requires HasPosition<VertexType>
{ {
auto abs_vec = get_to_world_matrix() auto abs_vec = get_to_world_matrix()
* mat_column_from_vector<typename Mat4X4::ContainedType, Mat4X4::get_store_ordering()>( * mat_column_from_vector<typename Mat4X4::ContainedType, Mat4X4::get_store_ordering()>(
@@ -112,12 +111,17 @@ namespace omath::primitives
[[nodiscard]] [[nodiscard]]
Triangle<VectorType> make_face_in_world_space(const Ebo::const_iterator vao_iterator) const Triangle<VectorType> make_face_in_world_space(const Ebo::const_iterator vao_iterator) const
requires HasPosition<VertexType> {
if constexpr (HasPosition<VertexType>)
{ {
return {vertex_position_to_world_space(m_vertex_buffer.at(vao_iterator->x).position), return {vertex_position_to_world_space(m_vertex_buffer.at(vao_iterator->x).position),
vertex_position_to_world_space(m_vertex_buffer.at(vao_iterator->y).position), vertex_position_to_world_space(m_vertex_buffer.at(vao_iterator->y).position),
vertex_position_to_world_space(m_vertex_buffer.at(vao_iterator->z).position)}; vertex_position_to_world_space(m_vertex_buffer.at(vao_iterator->z).position)};
} }
return {vertex_position_to_world_space(m_vertex_buffer.at(vao_iterator->x)),
vertex_position_to_world_space(m_vertex_buffer.at(vao_iterator->y)),
vertex_position_to_world_space(m_vertex_buffer.at(vao_iterator->z))};
}
private: private:
VectorType m_origin; VectorType m_origin;

View File

@@ -2,11 +2,15 @@
// Created by Vladislav on 11.01.2026. // Created by Vladislav on 11.01.2026.
// //
#include "omath/3d_primitives/box.hpp" #include "omath/3d_primitives/box.hpp"
#include "omath/collision/line_tracer.hpp"
#include "omath/engines/opengl_engine/primitives.hpp" #include "omath/engines/opengl_engine/primitives.hpp"
#include <gtest/gtest.h> #include <gtest/gtest.h>
TEST(test, test) TEST(test, test)
{ {
auto result = omath::primitives::create_box<omath::opengl_engine::BoxMesh>({0.f, 30.f, 0.f}, {}, omath::opengl_engine::k_abs_forward, auto result = omath::primitives::create_box<omath::opengl_engine::BoxMesh>(
omath::opengl_engine::k_abs_right); {0.f, 30.f, 0.f}, {}, omath::opengl_engine::k_abs_forward, omath::opengl_engine::k_abs_right);
omath::collision::Ray ray{.start = {0, 0, 0}, .end = {-100, 0, 0}};
std::ignore = omath::collision::LineTracer::get_ray_hit_point(ray, result);
} }