|
| | celltree (celltree const &)=default |
| |
| | celltree (celltree &&) noexcept=default |
| |
| auto | operator= (celltree const &) -> celltree &=default |
| |
| auto | operator= (celltree &&) noexcept -> celltree &=default |
| |
| | ~celltree ()=default |
| |
| | celltree (Mesh const &mesh) |
| |
| | celltree (Mesh const &mesh, vec< real_type, num_dimensions()> const &min, vec< real_type, num_dimensions()> const &max) |
| |
| constexpr auto | mesh () const -> auto const & |
| |
| constexpr auto | cell_handles () const -> auto const & |
| |
| constexpr auto | node (std::size_t const i) const -> auto const & |
| |
| constexpr auto | nodes () const -> auto const & |
| |
| constexpr auto | indices () const -> auto const & |
| |
| template<std::size_t... Seq> |
| constexpr auto | min_cell_boundary (std::size_t const cell_idx, std::uint8_t const dim, std::index_sequence< Seq... >) const |
| |
| template<std::size_t... Seq> |
| constexpr auto | max_cell_boundary (std::size_t const cell_idx, std::uint8_t const dim, std::index_sequence< Seq... >) const |
| |
| template<std::size_t... Seq> |
| constexpr auto | cell_center (std::size_t const cell_idx, std::uint8_t const dim, std::index_sequence< Seq... >) const |
| |
| constexpr auto | axis_aligned_bounding_box () const |
| |
| auto | cells_at (vec_t const &x) const |
| |
| auto | write_vtk (filesystem::path const &path) |
| |
|
| constexpr auto | mesh () -> auto & |
| |
| constexpr auto | cell_handles () -> auto & |
| |
| constexpr auto | node (std::size_t const i) -> auto & |
| |
| constexpr auto | nodes () -> auto & |
| |
| constexpr auto | indices () -> auto & |
| |
| template<std::size_t... Seq> |
| auto | cells_at (vec_t const &x, std::size_t const cur_node_idx, std::vector< std::size_t > &cells, std::index_sequence< Seq... > seq) const -> void |
| |
| template<std::size_t... Seq> |
| auto | split_dimension (std::size_t const ni, std::index_sequence< Seq... >) const |
| |
| auto | add_children (std::size_t const ni) |
| |
| template<std::size_t... Seq> |
| auto | split_if_necessary (std::size_t const ni, std::size_t const level, std::size_t const max_level) |
| |
| template<std::size_t... Seq> |
| auto | split (std::size_t const ni, std::size_t const level, std::size_t const max_level) |
| |
| template<std::size_t... Seq> |
| auto | split (std::size_t const ni, std::size_t const level, std::size_t const max_level, std::index_sequence< Seq... > seq) -> void |
| |
| template<std::size_t... Seq> |
| auto | split_with_median (std::size_t const ni, std::size_t const li, std::size_t const ri, std::uint8_t const split_dim, std::index_sequence< Seq... > seq) |
| |
| template<std::size_t... Seq> |
| auto | split_with_heuristic (std::size_t const ni, std::size_t const li, std::size_t const ri, std::uint8_t const split_dim, real_type const min, real_type const max, std::index_sequence< Seq... > seq) |
| | TODO heuristic not working correctly. More...
|
| |
| template<std::size_t... Seq> |
| auto | sort_indices (std::size_t const ni, std::uint8_t const dim, std::index_sequence< Seq... > seq) |
| |
| auto | write_vtk_collect_positions_and_indices (std::vector< vec< real_type, num_dimensions()> > &positions, std::vector< std::vector< std::size_t > > &indices, std::size_t cur_node_idx, tatooine::axis_aligned_bounding_box< real_type, num_dimensions()> const &aabb, std::size_t cur_level=0, std::size_t cur_idx=0) -> std::size_t |
| |