iMSTK
Interactive Medical Simulation Toolkit
imstkVTKFluidRenderDelegate.h
1 /*
2 ** This file is part of the Interactive Medical Simulation Toolkit (iMSTK)
3 ** iMSTK is distributed under the Apache License, Version 2.0.
4 ** See accompanying NOTICE for details.
5 */
6 
7 #pragma once
8 
9 #include "imstkVTKVolumeRenderDelegate.h"
10 
11 class vtkDoubleArray;
12 class vtkPolyData;
13 
14 namespace imstk
15 {
16 template<typename T, int N> class VecDataArray;
17 
24 {
25 public:
27  ~VTKFluidRenderDelegate() override = default;
28 
32  void processEvents() override;
33 
34 protected:
35  void init() override;
36 
40  void geometryModified(Event* e);
41 
45  void vertexDataModified(Event* e);
46 
47  void updateRenderProperties() override;
48 
49  std::shared_ptr<VecDataArray<double, 3>> m_vertices;
50 
51  vtkSmartPointer<vtkPolyData> m_polydata;
52 
53  vtkSmartPointer<vtkDoubleArray> m_mappedVertexArray;
54 };
55 } // namespace imstk
Delegates rendering of Fluid to VTK from VisualModel.
Base class for events which contain a type, priority, and data priority defaults to 0 and uses a grea...
void processEvents() override
Update polydata source based on the mesh geometry.
Compound Geometry.
vtkSmartPointer< vtkDoubleArray > m_mappedVertexArray
Mapped array of vertices.
void geometryModified(Event *e)
Callback for when geometry changes.
void updateRenderProperties() override
Updates the actor and mapper properties from the currently set VisualModel.
void vertexDataModified(Event *e)
Callback for when vertices change.
Abstract base class for volume-based RenderDelegates.