VTK’s core data model is able to represent almost any real-world problem with which physical scientists are likely to work. The primary dataset classes are vtkImageData, vtkRectilinearGrid, vtkStructuredGrid (finite difference grids), vtkPolyData, and vtkUnstructuredGrid (finite element meshes). They present a data interface based on point locations in three-dimensional space and cells that cover the area between points. VTK’s pipeline adds the temporal dimension. Groups of datasets are organized inside Composite and Hierarchical collection classes. VTK’s tables, graphs, and generic adapters encompass data that is not naturally associated with three-dimensional spaces.
Besides the mesh, all of VTK’s data objects keep references to any number of vtkDataArrays. The values held in the arrays may be aligned on the points or cells, or they may be left unaligned. The values may be simple scalar numeric quantities, vector or tensor quantities, or more complicated types like strings and variants.
VTK has a large number of readers and writers (for individual data objects), as well as importers and exporters (for the entire visible scene), that convert data files to and from VTK’s in memory data structures. These include:
- VTK formats (including parallel XML formats) for all data types
- DICOM reader
- JPG, PNG and TIFF readers and writers
- PLY reader and writer
- Delimited Text
- HDF5 via XDMF
- Postscript, PDF and SVG exporters
- 3D Studio importer
- X3D and VRML importers and exporters
- Wavefront .OBJ reader and exporter
- RIB (RenderMan) exporter