iMSTK
Interactive Medical Simulation Toolkit
imstkVTKTetrahedralMeshRenderDelegate.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 vtkDataArray;
12 class vtkDoubleArray;
13 class vtkUnstructuredGrid;
14 class vtkCellArray;
15 
16 namespace imstk
17 {
18 class TetrahedralMesh;
19 template<typename T, int N> class VecDataArray;
20 
27 {
28 public:
30  ~VTKTetrahedralMeshRenderDelegate() override = default;
31 
35  void processEvents() override;
36 
37 protected:
38  void init() override;
39 
43  void vertexDataModified(Event* e);
44  void indexDataModified(Event* e);
45 
49  void geometryModified(Event* e);
50 
51  void setVertexBuffer(std::shared_ptr<VecDataArray<double, 3>> vertices);
52  void setIndexBuffer(std::shared_ptr<VecDataArray<int, 4>> indices);
53 
54  std::shared_ptr<VecDataArray<double, 3>> m_vertices;
55  std::shared_ptr<VecDataArray<int, 4>> m_indices;
56 
57  vtkSmartPointer<vtkUnstructuredGrid> m_mesh;
58 
59  vtkSmartPointer<vtkDoubleArray> m_mappedVertexArray;
60  vtkSmartPointer<vtkDataArray> m_mappedVertexScalarArray;
61  vtkSmartPointer<vtkCellArray> m_cellArray;
62 };
63 } // namespace imstk
vtkSmartPointer< vtkUnstructuredGrid > m_mesh
Mapped tetrahedral mesh.
vtkSmartPointer< vtkCellArray > m_cellArray
Array of cells.
Base class for events which contain a type, priority, and data priority defaults to 0 and uses a grea...
Compound Geometry.
void processEvents() override
Process handling of messages recieved.
void geometryModified(Event *e)
Callback for when geometry is modified.
vtkSmartPointer< vtkDataArray > m_mappedVertexScalarArray
Mapped array of scalars.
vtkSmartPointer< vtkDoubleArray > m_mappedVertexArray
Mapped array of vertices.
Abstract base class for PolyData-based RenderDelegates.
void vertexDataModified(Event *e)
Callback for when vertex values are modified.
Delegates rendering of TetrahedralMesh to VTK from VisualModel.