//============================================================================ // 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 vtk_m_rendering_raytracing_ScalarRenderer_h #define vtk_m_rendering_raytracing_ScalarRenderer_h #include #include #include #include #include namespace vtkm { namespace rendering { namespace raytracing { class VTKM_RENDERING_EXPORT ScalarRenderer { protected: std::shared_ptr Intersector; std::vector Fields; bool IntersectorValid; template void RenderOnDevice(Ray& rays, Precision missScalar); template void AddBuffer(Ray& rays, Precision missScalar, const std::string name); template void AddDepthBuffer(Ray& rays); public: VTKM_CONT ScalarRenderer(); VTKM_CONT ~ScalarRenderer(); VTKM_CONT void SetShapeIntersector(std::shared_ptr intersector); VTKM_CONT void AddField(const vtkm::cont::Field& scalarField); VTKM_CONT void Render(vtkm::rendering::raytracing::Ray& rays, vtkm::Float32 missScalar); VTKM_CONT void Render(vtkm::rendering::raytracing::Ray& rays, vtkm::Float64 missScalar); }; //class RayTracer } } } // namespace vtkm::rendering::raytracing #endif //vtk_m_rendering_raytracing_RayTracer_h