19 #ifndef viskores_filter_flow_internal_ParticleAdvector_h
20 #define viskores_filter_flow_internal_ParticleAdvector_h
36 template <
typename DSIType>
37 class ParticleAdvector
40 using ParticleType =
typename DSIType::PType;
42 ParticleAdvector(
const viskores::filter::flow::internal::BoundsMap& bm,
43 const std::vector<DSIType>& blocks,
44 const bool& useThreaded)
47 , UseThreadedAlgorithm(useThreaded)
54 if (!this->UseThreadedAlgorithm)
56 using AlgorithmType = viskores::filter::flow::internal::AdvectAlgorithm<DSIType>;
57 return this->RunAlgo<AlgorithmType>(seeds, stepSize);
61 using AlgorithmType = viskores::filter::flow::internal::AdvectAlgorithmThreaded<DSIType>;
62 return this->RunAlgo<AlgorithmType>(seeds, stepSize);
67 template <
typename AlgorithmType>
71 AlgorithmType algo(this->BoundsMap, this->Blocks);
72 algo.Execute(seeds, stepSize);
73 return algo.GetOutput();
76 std::vector<DSIType> Blocks;
77 viskores::filter::flow::internal::BoundsMap BoundsMap;
78 bool UseThreadedAlgorithm;
87 #endif //viskores_filter_flow_internal_ParticleAdvector_h