iMSTK
Interactive Medical Simulation Toolkit
imstkVTKHexahedralMeshRenderDelegate.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 "imstkVTKPolyDataRenderDelegate.h"
10 
11 class vtkCellArray;
12 class vtkDataArray;
13 class vtkDoubleArray;
14 class vtkFloatArray;
15 class vtkUnstructuredGrid;
16 
17 namespace imstk
18 {
19 class HexahedralMesh;
20 template<typename T, int N> class VecDataArray;
21 
28 {
29 public:
31  ~VTKHexahedralMeshRenderDelegate() override = default;
32 
36  void processEvents() override;
37 
38  void geometryModified(Event* e);
39 
40  void vertexDataModified(Event* e);
41 
42 protected:
43  void init() override;
44 
45  std::shared_ptr<VecDataArray<double, 3>> m_vertices;
46  std::shared_ptr<VecDataArray<int, 8>> m_indices;
47 
48  vtkSmartPointer<vtkUnstructuredGrid> m_mesh;
49 
50  vtkSmartPointer<vtkDoubleArray> m_mappedVertexArray;
51  vtkSmartPointer<vtkDataArray> m_mappedVertexScalarArray;
52  vtkSmartPointer<vtkCellArray> m_cellArray;
53 };
54 } // namespace imstk
Base class for events which contain a type, priority, and data priority defaults to 0 and uses a grea...
vtkSmartPointer< vtkDoubleArray > m_mappedVertexArray
Mapped array of vertices.
vtkSmartPointer< vtkCellArray > m_cellArray
Array of cells.
Compound Geometry.
Abstract base class for PolyData-based RenderDelegates.
Delegates rendering of HexahedralMesh to VTK from VisualModel.
vtkSmartPointer< vtkDataArray > m_mappedVertexScalarArray
Mapped array of scalars.