27#ifndef OPENVDB_TOOLS_FASTSWEEPING_HAS_BEEN_INCLUDED
28#define OPENVDB_TOOLS_FASTSWEEPING_HAS_BEEN_INCLUDED
43#ifdef BENCHMARK_FAST_SWEEPING
47#include <tbb/parallel_for.h>
48#include <tbb/enumerable_thread_specific.h>
49#include <tbb/task_group.h>
55#include <unordered_map>
103template<
typename Gr
idT>
105fogToSdf(
const GridT &fogGrid,
106 typename GridT::ValueType isoValue,
136template<
typename Gr
idT>
138sdfToSdf(
const GridT &sdfGrid,
139 typename GridT::ValueType isoValue = 0,
192template<
typename FogGr
idT,
typename ExtOpT,
typename ExtValueT>
193typename FogGridT::template ValueConverter<ExtValueT>::Type::Ptr
194fogToExt(
const FogGridT &fogGrid,
196 const ExtValueT& background,
197 typename FogGridT::ValueType isoValue,
199 FastSweepingDomain mode = FastSweepingDomain::SWEEP_ALL,
200 const typename FogGridT::template ValueConverter<ExtValueT>::Type::ConstPtr extGrid =
nullptr);
250template<
typename SdfGr
idT,
typename ExtOpT,
typename ExtValueT>
251typename SdfGridT::template ValueConverter<ExtValueT>::Type::Ptr
254 const ExtValueT &background,
255 typename SdfGridT::ValueType isoValue = 0,
258 const typename SdfGridT::template ValueConverter<ExtValueT>::Type::ConstPtr extGrid =
nullptr);
313template<
typename FogGr
idT,
typename ExtOpT,
typename ExtValueT>
314std::pair<typename FogGridT::Ptr, typename FogGridT::template ValueConverter<ExtValueT>::Type::Ptr>
317 const ExtValueT &background,
318 typename FogGridT::ValueType isoValue,
321 const typename FogGridT::template ValueConverter<ExtValueT>::Type::ConstPtr extGrid =
nullptr);
376template<
typename SdfGr
idT,
typename ExtOpT,
typename ExtValueT>
377std::pair<typename SdfGridT::Ptr, typename SdfGridT::template ValueConverter<ExtValueT>::Type::Ptr>
380 const ExtValueT &background,
381 typename SdfGridT::ValueType isoValue = 0,
384 const typename SdfGridT::template ValueConverter<ExtValueT>::Type::ConstPtr extGrid =
nullptr);
414template<
typename Gr
idT>
440template<
typename Gr
idT,
typename MaskTreeT>
444 bool ignoreActiveTiles =
false,