//============================================================================ // Copyright (c) Kitware, Inc. // All rights reserved. // See LICENSE.txt for details. // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notice for more information. //============================================================================ #ifndef vtkm_cont_CellLocatorUniformGrid_h #define vtkm_cont_CellLocatorUniformGrid_h #include #include namespace vtkm { namespace cont { class VTKM_CONT_EXPORT CellLocatorUniformGrid : public vtkm::cont::CellLocator { public: VTKM_CONT CellLocatorUniformGrid(); VTKM_CONT ~CellLocatorUniformGrid() override; VTKM_CONT const vtkm::exec::CellLocator* PrepareForExecution( vtkm::cont::DeviceAdapterId device, vtkm::cont::Token& token) const override; protected: VTKM_CONT void Build() override; private: vtkm::Id3 CellDims; vtkm::Id3 PointDims; vtkm::Vec3f Origin; vtkm::Vec3f InvSpacing; vtkm::Vec3f MaxPoint; bool Is3D = true; mutable vtkm::cont::VirtualObjectHandle ExecutionObjectHandle; }; } } // vtkm::cont #endif //vtkm_cont_CellLocatorUniformGrid_h