supereight
Loading...
Searching...
No Matches
propagator.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2019 Emanuele Vespa
3 * SPDX-FileCopyrightText: 2019-2021 Smart Robotics Lab, Imperial College London, Technical University of Munich
4 * SPDX-FileCopyrightText: 2019-2021 Nils Funk
5 * SPDX-FileCopyrightText: 2021 Sotiris Papatheodorou
6 * SPDX-License-Identifier: BSD-3-Clause
7 */
8
9#ifndef SE_PROPAGATOR_HPP
10#define SE_PROPAGATOR_HPP
11
12#include <se/common/timings.hpp>
14#include <unordered_set>
15
16namespace se {
17
18
19
20// Forward decleration
21class OctantBase;
22
23namespace propagator {
24
25
26
37template<typename OctreeT, typename AggregateF>
38void propagateBlockUp(const OctreeT& /* octree */,
40 const int init_scale,
42
55template<typename OctreeT, typename ChildF, typename ParentF>
58 const int target_scale,
61
69template<typename PropagateF>
70void propagateBlocksToRoot(std::vector<se::OctantBase*>& octant_ptrs, PropagateF& propagate_funct);
71
78void propagateBlockTimeStampsToRoot(std::vector<se::OctantBase*>& octant_ptrs);
79
80
81
82} // namespace propagator
83} // namespace se
84
85#include "impl/propagator_impl.hpp"
86
87#endif // SE_PROPAGATOR_HPP
Definition image.hpp:19
The base class of all octants (se::Node and se::Block) in an se::Octree.
Definition octant.hpp:19
void propagateBlockTimeStampsToRoot(std::vector< se::OctantBase * > &octant_ptrs)
Propagate all node time stamps to the root.
void propagateBlocksToRoot(std::vector< se::OctantBase * > &octant_ptrs, PropagateF &propagate_funct)
Propagate all nodes to the root using a given up-propagation function.
void propagateBlockDown(const OctreeT &octree, se::OctantBase *octant_ptr, const int target_scale, ChildF child_funct, ParentF parent_funct)
Propagate the block values from the current scale to a lower target scale.
void propagateBlockUp(const OctreeT &, se::OctantBase *octant_ptr, const int init_scale, AggregateF aggregate_children_funct)
Propagate the block values from the current scale to a lower target scale.
Helper wrapper to allocate and de-allocate octants in the octree.
Definition bounded_vector.hpp:14