From 257b06c552b632e73f627599152814037629539c Mon Sep 17 00:00:00 2001 From: Orange Date: Sun, 14 Dec 2025 10:42:23 +0300 Subject: [PATCH] extracted to methdod --- include/omath/collision/epa_algorithm.hpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/include/omath/collision/epa_algorithm.hpp b/include/omath/collision/epa_algorithm.hpp index 599b4d8..baaaa6d 100644 --- a/include/omath/collision/epa_algorithm.hpp +++ b/include/omath/collision/epa_algorithm.hpp @@ -52,10 +52,7 @@ namespace omath::collision std::pmr::memory_resource& mem_resource = *std::pmr::get_default_resource()) { // --- Build initial polytope from simplex (4 points) --- - std::pmr::vector vertexes{&mem_resource}; - vertexes.reserve(simplex.size()); - for (std::size_t i = 0; i < simplex.size(); ++i) - vertexes.emplace_back(simplex[i]); + std::pmr::vector vertexes = build_initial_polytope_from_simplex(simplex, mem_resource); // Initial tetra faces (windings corrected in make_face) std::pmr::vector faces = create_initial_tetra_faces(mem_resource, vertexes); @@ -279,5 +276,18 @@ namespace omath::collision faces.emplace_back(make_face(vertexes, 1, 3, 2)); return faces; } + + [[nodiscard]] + static std::pmr::vector build_initial_polytope_from_simplex(const Simplex& simplex, + std::pmr::memory_resource& mem_resource) + { + std::pmr::vector vertexes{&mem_resource}; + vertexes.reserve(simplex.size()); + + for (std::size_t i = 0; i < simplex.size(); ++i) + vertexes.emplace_back(simplex[i]); + + return vertexes; + } }; } // namespace omath::collision