diff --git a/vtkm/rendering/raytracing/VolumeRendererStructured.cxx b/vtkm/rendering/raytracing/VolumeRendererStructured.cxx index 268a6753a..d4f95e04c 100644 --- a/vtkm/rendering/raytracing/VolumeRendererStructured.cxx +++ b/vtkm/rendering/raytracing/VolumeRendererStructured.cxx @@ -11,7 +11,6 @@ #include #include -#include #include #include #include @@ -20,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -33,6 +31,9 @@ namespace rendering { namespace raytracing { +using DefaultHandle = vtkm::cont::ArrayHandle; +using CartesianArrayHandle = + vtkm::cont::ArrayHandleCartesianProduct; namespace { @@ -41,9 +42,6 @@ template class RectilinearLocator { protected: - using DefaultHandle = vtkm::cont::ArrayHandle; - using CartesianArrayHandle = - vtkm::cont::ArrayHandleCartesianProduct; using DefaultConstHandle = typename DefaultHandle::ReadPortalType; using CartesianConstPortal = typename CartesianArrayHandle::ReadPortalType; @@ -728,13 +726,6 @@ public: } }; //class CalcRayStart -VolumeRendererStructured::VolumeRendererStructured() -{ - IsSceneDirty = false; - IsUniformDataSet = true; - SampleDistance = -1.f; -} - void VolumeRendererStructured::SetColorMap(const vtkm::cont::ArrayHandle& colorMap) { ColorMap = colorMap; @@ -754,35 +745,15 @@ void VolumeRendererStructured::SetData(const vtkm::cont::CoordinateSystem& coord ScalarRange = scalarRange; } -template -struct VolumeRendererStructured::RenderFunctor -{ -protected: - vtkm::rendering::raytracing::VolumeRendererStructured* Self; - vtkm::rendering::raytracing::Ray& Rays; - -public: - VTKM_CONT - RenderFunctor(vtkm::rendering::raytracing::VolumeRendererStructured* self, - vtkm::rendering::raytracing::Ray& rays) - : Self(self) - , Rays(rays) - { - } - - template - VTKM_CONT bool operator()(Device) - { - VTKM_IS_DEVICE_ADAPTER_TAG(Device); - - this->Self->RenderOnDevice(this->Rays, Device()); - return true; - } -}; - void VolumeRendererStructured::Render(vtkm::rendering::raytracing::Ray& rays) { - RenderFunctor functor(this, rays); + auto functor = [&](auto device) { + using Device = typename std::decay_t; + VTKM_IS_DEVICE_ADAPTER_TAG(Device); + + this->RenderOnDevice(rays, device); + return true; + }; vtkm::cont::TryExecute(functor); } diff --git a/vtkm/rendering/raytracing/VolumeRendererStructured.h b/vtkm/rendering/raytracing/VolumeRendererStructured.h index b203604f8..3df4bf13e 100644 --- a/vtkm/rendering/raytracing/VolumeRendererStructured.h +++ b/vtkm/rendering/raytracing/VolumeRendererStructured.h @@ -25,19 +25,6 @@ namespace raytracing class VTKM_RENDERING_EXPORT VolumeRendererStructured { public: - using DefaultHandle = vtkm::cont::ArrayHandle; - using CartesianArrayHandle = - vtkm::cont::ArrayHandleCartesianProduct; - - VTKM_CONT - VolumeRendererStructured(); - - VTKM_CONT - void EnableCompositeBackground(); - - VTKM_CONT - void DisableCompositeBackground(); - VTKM_CONT void SetColorMap(const vtkm::cont::ArrayHandle& colorMap); @@ -60,17 +47,15 @@ public: protected: template VTKM_CONT void RenderOnDevice(vtkm::rendering::raytracing::Ray& rays, Device); - template - struct RenderFunctor; - bool IsSceneDirty; - bool IsUniformDataSet; + bool IsSceneDirty = false; + bool IsUniformDataSet = true; vtkm::Bounds SpatialExtent; vtkm::cont::CoordinateSystem Coordinates; vtkm::cont::CellSetStructured<3> Cellset; const vtkm::cont::Field* ScalarField; vtkm::cont::ArrayHandle ColorMap; - vtkm::Float32 SampleDistance; + vtkm::Float32 SampleDistance = -1.f; vtkm::Range ScalarRange; }; }