GCC Code Coverage Report


Directory: src/oiseau/
File: src/oiseau/mesh/topology.hpp
Date: 2025-05-24 01:28:39
Exec Total Coverage
Lines: 1 2 50.0%
Functions: 1 2 50.0%
Branches: 0 8 0.0%

Line Branch Exec Source
1 // Copyright (C) 2025 Tiago V. L. Amorim (@tiagovla)
2 //
3 // This file is part of oiseau (https://github.com/tiagovla/oiseau)
4 //
5 // SPDX-License-Identifier: GPL-3.0-or-later
6
7 #pragma once
8 #include <cstddef>
9 #include <span>
10 #include <vector>
11
12 #include "oiseau/mesh/cell.hpp"
13
14 namespace oiseau::mesh {
15
16 class Topology {
17 public:
18 Topology();
19 Topology(std::vector<std::vector<std::size_t>> &&conn, std::vector<CellType> &&cell_types);
20 2 Topology(Topology &&) = default;
21 Topology(const Topology &) = default;
22 Topology &operator=(Topology &&) = default;
23 Topology &operator=(const Topology &) = default;
24 ~Topology();
25 std::span<CellType> cell_types();
26 std::span<std::vector<std::size_t>> conn();
27 std::span<std::vector<std::size_t>> e_to_e();
28 std::span<std::vector<std::size_t>> e_to_f();
29 std::size_t n_cells() const;
30 void calculate_connectivity();
31
32 private:
33 std::vector<std::vector<std::size_t>> m_conn;
34 std::vector<std::vector<std::size_t>> m_e_to_v;
35 std::vector<std::vector<std::size_t>> m_e_to_e;
36 std::vector<std::vector<std::size_t>> m_e_to_f;
37 std::vector<CellType> m_cell_types;
38 };
39
40 } // namespace oiseau::mesh
41