EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
EBGeometry_Soup.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Robert Marskar <robert.marskar@sintef.no>
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
11#ifndef EBGEOMETRY_SOUP_HPP
12#define EBGEOMETRY_SOUP_HPP
13
14// Std includes
15#include <cstddef>
16#include <memory>
17#include <string>
18#include <vector>
19
20// Our includes
21#include "EBGeometry_DCEL.hpp"
22#include "EBGeometry_Vec.hpp"
23
24namespace EBGeometry {
25
29namespace Soup {
39template <typename T>
40[[nodiscard]] inline static bool
41containsDegeneratePolygons(const std::vector<EBGeometry::Vec3T<T>>& a_vertices,
42 const std::vector<std::vector<size_t>>& a_facets) noexcept;
43
52template <typename T>
53inline static void
54compress(std::vector<EBGeometry::Vec3T<T>>& a_vertices, std::vector<std::vector<size_t>>& a_facets) noexcept;
55
67template <typename T, typename Meta>
68inline static void
70 const std::vector<EBGeometry::Vec3T<T>>& a_vertices,
71 const std::vector<std::vector<size_t>>& a_facets,
72 const std::string& a_id) noexcept;
73
83template <typename T, typename Meta>
84inline static void
85reconcilePairEdgesDCEL(std::vector<std::shared_ptr<EBGeometry::DCEL::EdgeT<T, Meta>>>& a_edges) noexcept;
86
87} // namespace Soup
88
89} // namespace EBGeometry
90
91#include "EBGeometry_SoupImplem.hpp"
92
93#endif
Namespace documentation.
Declaration of 2D and 3D point/vector classes with templated precision. Used with DCEL tools.
Half-edge class for navigating a DCEL mesh.
Definition EBGeometry_DCEL_Edge.hpp:51
DCEL mesh class - stores a doubly-connected edge mesh.
Definition EBGeometry_DCEL_Mesh.hpp:50
Three-dimensional vector class with arithmetic operators.
Definition EBGeometry_Vec.hpp:225
Namespace containing all of EBGeometry's functionality.
Definition EBGeometry_AnalyticDistanceFunctions.hpp:31