11 #ifndef vtk_m_filter_flow_internal_ParticleAdvector_h
12 #define vtk_m_filter_flow_internal_ParticleAdvector_h
28 template <
typename DSIType>
29 class ParticleAdvector
32 using ParticleType =
typename DSIType::PType;
34 ParticleAdvector(
const vtkm::filter::flow::internal::BoundsMap& bm,
35 const std::vector<DSIType>& blocks,
36 const bool& useThreaded)
39 , UseThreadedAlgorithm(useThreaded)
46 if (!this->UseThreadedAlgorithm)
48 using AlgorithmType = vtkm::filter::flow::internal::AdvectAlgorithm<DSIType>;
49 return this->RunAlgo<AlgorithmType>(seeds, stepSize);
53 using AlgorithmType = vtkm::filter::flow::internal::AdvectAlgorithmThreaded<DSIType>;
54 return this->RunAlgo<AlgorithmType>(seeds, stepSize);
59 template <
typename AlgorithmType>
63 AlgorithmType algo(this->BoundsMap, this->Blocks);
64 algo.Execute(seeds, stepSize);
65 return algo.GetOutput();
68 std::vector<DSIType> Blocks;
69 vtkm::filter::flow::internal::BoundsMap BoundsMap;
70 bool UseThreadedAlgorithm;
79 #endif //vtk_m_filter_flow_internal_ParticleAdvector_h