Difference between revisions of "VTK/Examples/Cxx"

From KitwarePublic
< VTK‎ | Examples
Jump to navigationJump to search
Line 1,056: Line 1,056:
| [[VTK/Examples/Cxx/DataStructures/vtkKdTree_BuildLocatorFromPoints_ClosestPoint|ClosestPoint]] || {{VTKDoxygenURL|vtkKdTree}} ||
| [[VTK/Examples/Cxx/DataStructures/vtkKdTree_BuildLocatorFromPoints_ClosestPoint|KdTree]] || {{VTKDoxygenURL|vtkKdTree}} ||
| [[VTK/Examples/Cxx/DataStructures/vtkKdTree_BuildLocatorFromPoints_ClosestKPoints|ClosestKPoints]] || {{VTKDoxygenURL|vtkKdTree}} ||
| [[VTK/Examples/Cxx/DataStructures/vtkKdTree_BuildLocatorFromPoints_ClosestKPoints|ClosestKPoints]] || {{VTKDoxygenURL|vtkKdTree}} ||

Revision as of 10:21, 16 April 2017

These are fully independent, compilable examples. There is significant overlap in the examples, but they are each intended to illustrate a different concept and be fully stand alone compilable.

Please add examples in your areas of expertise!

Hello World

Example Name VTK Classes Demonstrated Description
A hello world example vtkPolyDataMapper vtkActor vtkRenderer vtkRenderWindow vtkRenderWindowInteractor Cylinder example from the VTK Textbook and source code.

Simple Operations

Example Name VTK Classes Demonstrated Description
DistanceBetweenPoints vtkMath::Distance2BetweenPoints Distance between two points.
DistancePointToLine vtkLine Distance between a point and a line.
FloatingPointExceptions vtkFloatingPointExceptions Floating Point Exceptions
GaussianRandomNumber vtkMath Generates Gaussian random numbers.
UniformRandomNumber vtkMath Generates uniform random numbers.
RandomSequence vtkMinimalStandardRandomSequence This is the preferred way to generate random numbers.
ProjectPointPlane vtkPlane Project a point onto a plane.
PerspectiveTransform vtkPerspectiveTransform Apply a perspective transformation to a point.

Input and Output

Graph Formats

3D File Formats

Example Name VTK Classes Demonstrated Description
ConvertFile Convert a file from one type to another
XGMLReader vtkXGMLReader Read a .gml file

Standard Formats

Example Name VTK Classes Demonstrated Description
SimplePointsReader vtkSimplePointsReader Read a simple "xyz" file of points.
ParticleReader vtkParticleReader This example reads ascii files where each line consists of points with its position (x,y,z) and (optionally) one scalar or binary files in RAW 3d file format.
ReadPlainText vtkPolyData Read a plain text file into a polydata.
ReadPlainTextTriangles vtkPolyData vtkSmartPointer vtkPoints vtkCellArray vtkXMLPolyDataWriter Read a plain text file into a polydata.
ReadDelimitedFile vtkDelimitedTextReader Read a delimited file into a polydata.
ReadOBJ vtkOBJReader Read an OBJ (.obj) file.
VRML vtkVRMLImporter Read a VRML (WRL) file.
IndividualVRML vtkVRMLImporter This example is used to get each actor and object from a scene and verify axes correspondence
ReadDICOM vtkDICOMImageReader Read DICOM file
ReadDICOMSeries vtkDICOMImageReader This example demonstrates how to read a series of DICOM images and scroll through slices
DumpXMLFile vtkDataSetReader Report the contents of a VTK XML or legacy file
DEMReader vtkDEMReader Read DEM (elevation map) files
ReadSTL vtkSTLReader Read stereo lithography STL (.stl) files
ReadPLY vtkPLYReader Read PLY (.ply) files
ReadPLOT3D vtkPLOT3DReader Read CFD (computational fluid dynamics) data produced by PLOT3D.
ReadPDB vtkPDBReader Read Protein Data Bank Files.
Example Name VTK Classes Demonstrated Description
DelimitedTextWriter vtkDelimitedTextWriter Write data to a delimited file
SimplePointsWriter vtkSimplePointsWriter Write a simple ".xyz" file
WritePLY vtkPLYWriter Write PLY (.ply) files
WriteSTL vtkSTLWriter Write stereo lithography STL (.stl) files

VTK Formats

Example Name VTK Classes Demonstrated Description
ReadImageData vtkXMLImageDataReader Read a image data (.vti) file
ReadPolyData vtkXMLPolyDataReader Read a polygonal data (.vtp) file
ReadRectilinearGrid vtkXMLRectilinearGridReader Read a rectilinear grid (.vtr) file
ReadStructuredGrid vtkXMLStructuredGridReader Read a structured grid (.vts) file
ReadUnknownTypeXMLFile vtkXMLGenericDataObjectReader Read an XML file and later decide what kind it is
ReadUnstructuredGrid vtkXMLUnstructuredGridReader Read an unstructured grid (.vtu) file
Example Name VTK Classes Demonstrated Description
WriteVTU vtkXMLUnstructuredGridWriter Write a .vtu file. VTU is an "Unstructured Grid". This format allows for 3D data to be stored.
WriteVTP vtkXMLPolyDataWriter Write a .vtp file. VTP is a "PolyData". This format allows for the most complex geometric objects to be stored.
WriteVTI vtkXMLImageDataWriter Write a .vti file. VTI is an "ImageData".
ExportDICOMtoVTI vtkXMLImageDataWriter Write a .vti file from a DICOM image.
XMLStructuredGridWriter vtkXMLStructuredGridWriter Write a .vts file from a vtkStructuredGrid.

Legacy VTK Formats

Example Name VTK Classes Demonstrated Description
GenericDataObjectReader vtkGenericDataObjectReader Read any type of legacy .vtk file.
StructuredGridReader vtkStructuredGridReader Read a structured grid (.vtk) file.
StructuredPointsReader vtkStructuredPointsReader Read a structured points (.vtk) file.

Image Formats


Example Name VTK Classes Demonstrated Description
ReadBMP vtkBMPReader Read BMP (.bmp) files.
JPEGReader vtkJPEGReader Read a JPG image.
PNGReader vtkPNGReader Read a PNG image.
ReadPNM vtkPNMReader Read PNM (.pnm) files.
ReadTIFF vtkTIFFReader Read TIFF (.tif) files.
MetaImageReader vtkMetaImageReader Read .mha files.
ImageReader2Factory vtkImageReader2Factory This class tries to find an appropriate reader. It is very convenient to use this when you don't know what kind of file to expect.


Example Name VTK Classes Demonstrated Description
JPEGWriter vtkJPEGWriter Write a JPEG (.jpg) file.
MetaImageWriter vtkMetaImageWriter Write a .mha/.mhd + .raw file.
WriteBMP vtkBMPWriter Write a BMP (.bmp) file.
WritePNG vtkPNGWriter Write a PNG (.png) file.
WritePNM vtkPNMWriter Write a PNM (.pnm) file.
WriteTIFF vtkTIFFWriter Write a TIFF (.tif) file.

Geometric Objects

Example Name VTK Classes Demonstrated Description
Cell3DDemonstration vtkHexagonalPrism vtkHexahedron vtkPentagonalPrism vtkPolyhedron vtkPyramid vtkTetra vtkVoxel vtkWedge vtkUnstructuredGrid Demonstrate the use of vtkCell3D to construct geometric objects. Sample objects are generated from the classes derived from vtkCell3D and displayed.
PolygonIntersection vtkPolygon Compute the intersection of a line segment with a polygon.
GeometricObjectsDemo A demonstration of all geometric objects that work the same way.
Arrow vtkArrowSource
Axes vtkAxesActor
Colored Lines vtkCellData vtkLine
Cone vtkConeSource
Cube vtkCubeSource
Cylinder vtkCylinderSource
Disk vtkDiskSource A circle with a hole in it.
Dodecahedron vtkPolyhedron Create a dodecahedron using vtkPolyhedron
Frustum vtkFrustumSource
Line vtkLineSource
LongLine vtkLine Manually create a polyline
Hexahedron vtkHexahedron
Oriented Arrow vtkArrowSource Orient an arrow along an arbitrary vector
Oriented Cylinder vtkCylinderSource Orient a cylinder along an arbitrary vector
Plane vtkPlaneSource
Planes vtkPlanes
PlanesIntersection vtkPlanesIntersection
PlatonicSolid vtkPlatonicSolidSource
Point vtkPoints
Polyhedron vtkPolyhedron
Polygon vtkPolygon
Pyramid vtkPyramid
PolyLine vtkPolyLine
Quad vtkQuad
Regular Polygon vtkRegularPolygonSource
Sphere vtkSphereSource
Triangle vtkTriangle
Triangle strip vtkTriangleStrip
Tetrahedron vtkTetra
Vertex vtkVertex

Parametric Objects

These examples demonstrate how to create an display one of the many vtkParametric* objects. All of the classes listed can be used in an identical fashion.

Example Name VTK Classes Demonstrated Description
ParametricObjects Create and display a parametric object. Uncomment the object that you wish to be displayed.
ParametricObjectsDemo vtkParametricBoy, vtkParametricConicSpiral, vtkParametricCrossCap, vtkParametricDini, vtkParametricEllipsoid, vtkParametricEnneper, vtkParametricFigure8Klein, vtkParametricKlein, vtkParametricMobius, vtkParametricRandomHills, vtkParametricRoman, vtkParametricSpline, vtkParametricSuperEllipsoid, vtkParametricSuperToroid, vtkParametricTorus Demonstration of of the vtkParametric* classes added by Andrew Maclean. All the objects are displayed in a 4X4 array.
ParametricObjectsDemo2 vtkParametricBohemianDome, vtkParametricBour, vtkParametricCatalanMinimal, vtkParametricHenneberg, vtkParametricKuen, vtkParametricPluckerConoid, vtkParametricPseudosphere Demonstration of additional vtkParametric* classes added by Tim Meehan. All the objects are displayed in a 4X2 array.


Interactively change the parameters for a Kuen Surface.


Interactively change the parameters for a SuperEllipsoid Surface.


Interactively change the parameters for a SuperToroid Surface.

Implicit Functions and Iso-surfaces

Example Name VTK Classes Demonstrated Description
IsoContours vtkContourFunction Visualize different isocontours using a slider.
SampleFunction vtkSampleFunction Sample and visualize an implicit function.
ExtractLargestIsosurface vtkPolyDataConnectivityFilter Extract largest isosurface.
BandedPolyDataContourFilter vtkBandedPolyDataContourFilter Create filled contours.
FilledContours vtkContourFilter Create filled contours (using vtkClipPolyData).
CutWithCutFunction vtkCutter Cut a surface with an implicit plane using vtkCutter.
CutWithScalars vtkContourFilter Cut a surface with scalars.
ImplicitSphere vtkSphere An implicit representation of a sphere.
MarchingCubes vtkMarchingCubes Create a voxelized sphere.
MarchingSquares vtkMarchingSquares Create a contour from a structured point set (image)

Working with 3D Data

Example Name VTK Classes Demonstrated Description
SelectionSource vtkSelectionSource, vtkExtractSelection Specify a selection.
WarpTo vtkWarpTo Bend an object.
CenterOfMass CenterOfMass Compute the center of mass of the points.
BooleanOperationPolyDataFilter BooleanOperationPolyDataFilter Perform boolean operations on two vtkPolyData objects.
DistancePolyDataFilter DistancePolyDataFilter Compute the distance function from one vtkPolyData to another.
ImplicitPolyDataDistance ImplicitPolyDataDistance Compute the distance function in a space around a vtkPolyData.
IntersectionPolyDataFilter IntersectionPolyDataFilter Compute the intersection of two vtkPolyData objects.
ShrinkPolyData vtkShrinkPolyData Move all items in a PolyData towards their centroid.
VectorFieldNonZeroExtraction vtkExtractSelectedThresholds Extract non-zero vectors from a vtkImageData.
MultiBlockMergeFilter vtkMultiBlockMergeFilter, vtkMultiBlockDataSet Combine MultiBlockDataSets.
IterateOverLines vtkCellArray Iterate through the lines of a PolyData.
AlignFrames vtkLandmarkTransform Align coordinate frames.
WarpVector vtkWarpVector
FindAllArrayNames vtkPolyData Get the names of all of the data arrays.
PolyDataGetPoint vtkPolyData Get point locations/coordinates from a vtkPolyData.
NullPoint vtkPointData Set everything in PointData at a specified index to NULL
ContoursFromPolyData vtkCutter Create contours from PolyData.
ImplicitBoolean vtkImplicitBoolean Operations include intersection and union.
ConnectivityFilter vtkConnectivityFilter Color any dataset type based on connectivity.
AppendFilter vtkAppendFilter Append different types of data,
Perlin Noise vtkPerlinNoise
Circle vtkCutter Create a circle by cutting through a sphere.
ProgrammableFilter vtkProgrammableFilter Create a custom filter without subclassing.
TransformPolyData vtkTransformPolyDataFilter Apply a Transformation to a PolyData.
CombinePolydata vtkAppendPolyData Combine/Append PolyData.
RuledSurfaceFilter vtkRuledSurfaceFilter Create a surface between lines.
CleanPolyData vtkCleanPolyData Remove coincident points.
CellPointNeighbors vtkPolyData::GetCellNeighbors Determine which cells share a single point with a specific cell.
CellEdgeNeighbors vtkPolyData::GetCellNeighbors Determine which cells share an edge with a specific cell.
PolyDataIsoLines vtkBandedPolyDataContourFilter Iso lines on the surface of a polydata
KMeansClustering vtkKMeansStatistics KMeans Clustering
PKMeansClustering vtkPKMeansStatistics Parallel KMeans Clustering.
WarpScalar vtkWarpScalar Move vertices along normals.
VertexConnectivity vtkPolyData::GetCellPoints Get a list of vertices attached (through an edge) to a vertex.
DeletePoint vtkPoints, vtkPolyData
ThinPlateSplineTransform vtkThinPlateSplineTransform
PointCellIds vtkIdFilter Generate point and cell id arrays.
Reflection vtkReflectionFilter Mirror a DataSet.
CellCenters vtkCellCenters Compute points at the center of every cell.
ExtractSelection vtkExtractSelection Extract selection points.
ExtractSelectedIds vtkExtractSelectedIds Extract selected points.
ExtractSelectionOriginalId vtkExtractSelection Extract selection and find correspondence between new and original Id.
ExtractSelectionCells vtkExtractSelection Extract selection cells.
ExtractCellsUsingPoints vtkExtractSelection, vtkSelection, vtkSelectionNode Extract points but bring cells that are still complete with them.
QuantizePolyDataPoints vtkQuantizePolyDataPoints Snap (quantize) points to a grid.
ReverseSense vtkReverseSense Flip normals.
PointsProjectedHull vtkPointsProjectedHull Convex hull of points projected onto the coordinate planes.
SCurveSpline vtkSCurveSpline Create an SCurve spline on a set of points.
KochanekSpline vtkKochanekSpline Create an Kochanek spline on a set of points.
ParametricSpline vtkCardinalSpline, vtkParametricSpline, vtkParametricFunctionSource Create a Cardinal spline on a set of points.
SelectVisiblePoints vtkSelectVisiblePoints Select visible points.
ExtractVisibleCells vtkHardwareSelector Extract and highlight visible cells.
Stripper vtkStripper Convert triangles to triangle strips.
DataSetSurfaceFilter vtkDataSetSurfaceFilter Convert vtkUnstructuredGrid to vtkPolyData.
GeometryFilter vtkGeometryFilter Convert vtkUnstructuredGrid to vtkPolyData (another way).
ImplicitModeller vtkImplicitModeller Compute the distance from an object to every point on a uniform grid.
TransformFilter vtkTransformFilter Transform a data set.
InterpolateTerrain vtkProbeFilter Here is a good explanation of what is going on.Interpolate terrain.
InterpolateMeshOnGrid vtkProbeFilter Interpolate a mesh over a grid.
PolyDataPointSampler vtkPolyDataPointSampler Sample the edges or surfaces of a polydata.
MaskPoints vtkMaskPoints Select a subset (mask) of a point set.
LinearExtrusion vtkLinearExtrusionFilter Extrude a shape.
RotationAroundLine vtkTransform, vtkTransformPolyDataFilter Rotation around a line.
ExtractOutsideSurface vtkPolyDataConnectivityFilter Extract the outer surface of a multiple surface polydata.
ContoursToSurface vtkVoxelContoursToSurfaceFilter Convert contours to a surface.
TubeFilter vtkTubeFilter Give lines a thickness (produce a cylinder around lines.
RibbonFilter vtkRibbonFilter
ConvexHull_ShrinkWrap vtkSmoothPolyDataFilter Convex hull using shrink wrapping.
ConvexHull_vtkHull vtkHull Convex hull using vtkHull.
PointInsideObject vtkSelectEnclosedPoints Check if a point is inside an object.
PointInsideObject2 vtkDelaunay3D, vtkPolyData::FindCell This uses a Delaunay triangulation to compute a volume. This gives more of an "is inside convex hull" effect than an "is inside object".
Data Bounds vtkPolyData::GetBounds Get the minimum and maximum value in each dimension. (Axis aligned bounding box)
TransformOrder vtkTransformPolyDataFilter Demonstrate how the order of applying transforms affects the result.
Outline vtkOutlineFilter Draw the bounding box of the data
TriangleArea vtkTriangle::TriangleArea Compute the area of all triangles in a polydata.
Silhouette vtkPolyDataSilhouette
ThresholdingPoints vtkThresholdPoints Thresholding Points.
ThresholdingCells vtkThreshold Thresholding Cells.
ProcrustesAlignmentFilter vtkProcrustesAlignmentFilter Align point sets.
GradientFilter vtkGradientFilter Compute the gradient of a scalar field on a data set.
PolyDataToImageData vtkPolyDataToImageStencil Generate a binarized volume from a closed surface.
PolyDataContourToImageData vtkLinearExtrusionFilter,vtkPolyDataToImageStencil Generate a binarized image from a closed contour.
ExtractPolyLinesFromPolyData vtkPolyData Extract polylines from polydata.
FitSplineToCutterOutput vtkKochanekSpline, vtkSplineFilter, vtkSpline Fit a spline to cutter output.
MergePoints vtkMergePoints Remove duplicate (merge) points.
DecimatePolyline vtkDecimatePolylineFilter Decimate polyline.
FieldData vtkFieldData Add Global Miscellaneous Data (FieldData) to a Polydata.
PolyDataExtractNormals vtkPolyDataNormals Extract Normals from a Polydata.
DetermineArrayDataTypes vtkPolyData Determine data types of arrays.
EmbedPointsIntoVolume vtkGaussianSplatter Embed points into a volume.
CopyAllArrays vtkPolyData Copy all arrays from one vtkPolyData to another.
Colored Points vtkUnsignedCharArray Add three points to a polydata and associate a color with each of them.
TriangleColoredPoints vtkUnsignedCharArray Set the color of each point of a triangle. You will be able to interpolate the colors across the triangle.
TriangleSolidColor vtkUnsignedCharArray Create a solid colored triangle.
ColorCells vtkLookupTable Color individual cells of a polydata with scalar index.
ColorCellsWithRGB vtkCellData Color individual cells of a polydata with rgb colors.
PolyDataCellNormals vtkCellData Add/Get Normals to/from cells in a Polydata.
PolyDataPointNormals vtkPointData Add/Get Normals to/from points in a Polydata.
MiscPointData vtkPointData, vtkFloatArray Add Miscellaneous Data to Points in a Polydata.
GetMiscPointData vtkDoubleArray Get Miscellaneous Data from Points in a Polydata.
MiscCellData vtkCellData Add Miscellaneous Data to Cells in a Polydata.
GetMiscCellData vtkCellData Get Miscellaneous Data from Cells in a Polydata.
ExternalContour vtkWindowToImageFilter, vtkContourFilter Get the External Contour from Polydata.
TransformPipeline vtkTransform Combining the transformation, in order to manipulate a group of vtkActor. Shown in the example robot arm motion.
WarpSurface vtkWarpVector Warp a surface along its normal.
ProgrammableSource vtkProgrammableSource Create points using a programmable source. Generates points for a strange attractor.
ProjectSphere vtkProjectSphereFilter Unroll a sphere or spherical-like model.

Data Type Conversions

Example Name VTK Classes Demonstrated Description
PolyDataToUnstructuredGrid vtkAppendFilter Convert a vtkPolyData to a vtkUnstructuredGrid.

Point cloud operations

Example Name VTK Classes Demonstrated Description
ExtractSurface vtkExtractSurface,vtkPCANormalEstimation,vtkSignedDistance Create a surface from Unorganized Points using Point filters.
ExtractSurfaceDemo vtkExtractSurface,vtkPCANormalEstimation,vtkSignedDistance Create a surface from Unorganized Points using Point filters (DEMO).
PointSource vtkPointSource Generate a random point cloud.
DownsamplePointCloud vtkCleanPolyData Downsample a point cloud. Remove points so that there are no points within a tolerance of any point.
DensifyPoints vtkDensifyPointCloudFilter Add points to a point cloud.
ExtractCluster vtkEuclideanClusterExtraction From a set of randomly distributed spheres, extract connected clusters.
NormalEstimation vtkPCANormalEstimation Estimate the normals of a random points that lie on a sphere.
FitImplicitFunction vtkFitImplicitFunction Extract points within a distance to an implicit function.
SignedDistance vtkSignedDistance Compute signed distance to a point cloud.
UnsignedDistance vtkUnsignedDistance Compute unsigned distance to a point cloud.
PointOccupancy vtkPointOccupancy Show which voxels contain points.
RadiusOutlierRemoval vtkRadiusOutlierRemoval Remove outliers.
MaskPointsFilter vtkMaskPointsFilter Extract points within an image mask.
ExtractPointsDemo vtkExtractPoints Extract points inside an implicit function.

Working with Meshes

Example Name VTK Classes Demonstrated Description
AddCell vtkPolyData Add a cell to an existing mesh.
MatrixMathFilter vtkMatrixMathFilter Compute various quantities on cell and points in a mesh.
WeightedTransformFilter vtkWeightedTransformFilter
GreedyTerrainDecimation vtkGreedyTerrainDecimation Create a mesh from an ImageData
LargestRegion vtkPolyDataConnectivityFilter Extract the largest connected region in a polydata.
SpecifiedRegion vtkPolyDataConnectivityFilter Extract a specific (specified) connected region in a polydata.
ColorDisconnectedRegions vtkPolyDataConnectivityFilter Color each disconnected region of a vtkPolyData a different color.
Curvatures vtkCurvatures Compute Gaussian, Mean, Min, and Max Curvatures.
MeshQuality vtkMeshQuality
HighlightBadCells vtkMeshQuality
PolygonalSurfaceContourLineInterpolator vtkPolygonalSurfaceContourLineInterpolator Interactively find the shortest path between two points on a mesh.
DijkstraGraphGeodesicPath vtkDijkstraGraphGeodesicPath Find the shortest path between two points on a mesh.
SelectPolyData vtkSelectPolyData Select a region of a mesh.
SmoothPolyDataFilter vtkSmoothPolyDataFilter Laplacian smoothing.
ClosedSurface vtkFeatureEdges Check if a surface is closed.
Decimation vtkDecimatePro Reduce the number of triangles in a mesh.
Deform a point set vtkDeformPointSet Deform a point set with a control polyhedra.
Decimation (quadric decimation) vtkQuadricDecimation Reduce the number of triangles in a mesh.
Decimation (quadric clustering) vtkQuadricClustering Reduce the number of triangles in a mesh.
Subdivision vtkButterflySubdivisionFilter, vtkLoopSubdivisionFilter, vtkLinearSubdivisionFilter Increase the number of triangles in a mesh.
BoundaryEdges vtkFeatureEdges Find the edges that are used by only one face.
FillHoles vtkFillHolesFilter Close holes in a mesh.
WindowedSincPolyDataFilter vtkWindowedSincPolyDataFilter Smooth a mesh (windowed sinc filter).
ColoredElevationMap vtkLookupTable Color a mesh by height.
ElevationFilter vtkElevationFilter Color a mesh by height.
SimpleElevationFilter vtkSimpleElevationFilter Color a mesh by dotting a vector from the origin to each point with a specified vector.
Triangluate vtkTriangleFilter Convert all polygons in a mesh to triangles.
ExtractEdges vtkExtractEdges
CellEdges vtkCell Get edges of cells.
OBBDicer vtkOBBDicer Breakup a mesh into pieces.
SplitPolyData vtkOBBDicer Breakup a mesh into pieces sand save the pieces into files


Example Name VTK Classes Demonstrated Description
GenericClip vtkGenericClip,vtkBridgeDataSet, vtkGenericDataSet
SolidClip vtkClipPolyData Create a "solid" clip.
CapClip vtkClipPolyData Cap a clipped polydata with a polygon.
ClipClosedSurface vtkClipClosedSurface Clip a surface with multiple planes.
ImplicitDataSetClipping vtkImplicitDataSet Clip using an implicit data set.
ClipDataSetWithPolyData vtkClipDataSet, vtkImplicitPolyDataDistance, vtkRectilinearGrid Clip a vtkRectilinearGrid with arbitrary polydata. In this example, use a vtkConeSource to generate polydata to slice the grid, resulting in an unstructured grid. Contrast this with the next example.
TableBasedClipDataSetWithPolyData vtkTableBasedClipDataSet, vtkImplicitPolyDataDistance, vtkRectilinearGrid Clip a vtkRectilinearGrid with arbitrary polydata. In this example, use a vtkConeSource to generate polydata to slice the grid, resulting in an unstructured grid. Contrast this with the previous example.
BoxClipUnstructuredGrid vtkBoxClipDataSet, vtkUnstructuredGrid Clip a vtkUnstructuredGrid with a box. The results are unstructured grids with tetrahedra.
BoxClipStructuredPoints vtkBoxClipDataSet, vtkStructuredPoints Clip vtkStructuredPoints with a box. The results are unstructured grids with tetrahedra.

Working with Structured 3D Data

This section includes vtkImageData, vtkStructuredGrid, and vtkRectilinearGrid.

"ImageData" is not the traditional "flat, 2D image" you are used to. It is a special VTK data structure in the collection of 3D data structures provided by VTK. Here is an overview of these data structures: [1]. Image data can represent at typical 2D image, but also, a 3D volume.


Example Name VTK Classes Demonstrated Description
GetCellCenter vtkImageData Get the coordinates of the center of a cell.
CellIdFromGridCoordinates vtkStructuredData Get the id of a cell from its grid coordinates.
IterateImageData vtkImageData Iterating over a vtkImageData.
ImageNormalize vtkImageNormalize Normalize an image.
ExtractVOI vtkExtractVOI Extract a volume of interest (subvolume).
ImageWeightedSum vtkImageWeightedSum Add two or more images.
ImageReslice vtkImageReslice Resize a vtkImageData.
ImageTranslateExtent vtkImageTranslateExtent Change the extent of a vtkImageData.
IntersectLine vtkImageData Intersect a line with all cells of a vtkImageData.
ImageIterator vtkImageIterator


Example Name VTK Classes Demonstrated Description
ImageDataGeometryFilter vtkImageDataGeometryFilter Convert a vtkImageData to a vtkPolyData
ImageDataToPointSet vtkImageDataToPointSet Convert a vtkImageData to a vtkStructuredGrid.


Example Name VTK Classes Demonstrated Description
StructuredGrid vtkStructuredGrid Structured Grid.
VisualizeStructuredGrid vtkStructuredGridGeometryFilter Visualize the points of a structured grid.
OutlineStructuredGrid vtkStructuredGridOutlineFilter Visualize the outline of a structured grid.
VisualizeStructuredGridCells vtkShrinkFilter Visualize the cells of a structured grid.
BlankPoint vtkStructuredGrid Blank a point of a vtkStructuredGrid.


Example Name VTK Classes Demonstrated Description
StructuredPointsToUnstructuredGrid vtkStructuredPoints, vtkUnstructuredGrid Convert a vtkStructuredPoints to a vtkUnstructuredGrid.


Example Name VTK Classes Demonstrated Description
RectilinearGrid vtkRectilinearGrid Rectilinear grid
VisualizeRectilinearGridCells vtkRectilinearGrid, vtkShrinkFilter Visualize the cells of a rectilinear grid
RectilinearGridToTetrahedra vtkRectilinearGridToTetrahedra Convert a vtkRectilinearGrid to a vtkUnstructuredGrid mesh


Example Name VTK Classes Demonstrated Description
IterativeClosestPointsTransform vtkIterativeClosestPointTransform Iterative Closest Points (ICP) Transform.
LandmarkTransform vtkLandmarkTransform Landmark Transform.


Example Name VTK Classes Demonstrated Description
MedicalDemo1 vtkMarchingCubes Create a skin surface from volume data
MedicalDemo2 vtkMarchingCubes Create a skin and bone surface from volume data
MedicalDemo3 vtkMarchingCubes Create skin, bone and slices from volume data
MedicalDemo4 vtkFixedPointVolumeRayCastMapper Create a volume rendering
TissueLens vtkMarchingCubes vtkClipDataSet vtkProbeFilter Cut a volume with a sphere

Surface reconstruction

Example Name VTK Classes Demonstrated Description
GaussianSplat vtkGaussianSplatter Create a surface from Unorganized Points (Gaussian Splat).
TriangulateTerrainMap vtkDelaunay2D Generate heights (z values) on a 10x10 grid (a terrain map) and then triangulate the points to form a surface.
GenerateCubesFromLabels vtkMetaImageReader, vtkMaskFields Create cubes from labeled volume data.
GenerateModelsFromLabels vtkDiscreteMarchingCubes Create models from labeled volume data (Discrete MarchingCubes).
Delaunay3D vtkDelaunay3D Create a solid mesh from Unorganized Points (Delaunay3D).
SurfaceFromUnorganizedPointsWithPostProc vtkSurfaceReconstructionFilter Create a surface from Unorganized Points (with post processing).
SurfaceFromUnorganizedPoints vtkSurfaceReconstructionFilter Create a surface from Unorganized Points.
ExtractSurface vtkExtractSurface,vtkPCANormalEstimation,vtkSignedDistance Create a surface from Unorganized Points using Point filters.
ExtractSurfaceDemo vtkExtractSurface,vtkPCANormalEstimation,vtkSignedDistance Create a surface from Unorganized Points using Point filters (DEMO).


Example Name VTK Classes Demonstrated Description
Maximize/full screen a vtkRenderWindow vtkRenderWindow
Reorder array values based on an ordering (key) array
Shallow copy a VTK object
Deep copy a VTK object
Capture the Z-buffer/depth buffer vtkRenderer zbuffer
Share a camera between multiple renderers vtkRenderer, vtkCamera
Perform in-place operations on arrays vtkArrayCalculator
File Output Window vtkFileOutputWindow Write errors to a log file instead of the screen.
Write a DenseArray or SparseArray to a file
Update the screen from inside an algorithm Visual debugging
Get the frame rate of the rendering
Find the path of VTK_DATA_ROOT vtkTesting
Find the location of a value in a vtkDataArray vtkDataArray vtkDataArray::LookupValue
Point inside polygon test vtkPolygon vtkPolygon::PointInPolygon
Bounding Box construction vtkBoundingBox
Box intersection and Inside tests vtkBoundingBox
Monitor a filters progress
Multiple Viewports vtkRenderer::SetViewPort
Side by side viewports vtkRenderer::SetViewPort
MultipleRenderWindows vtkRenderWindow
Casting VTK objects vtkObject::SafeDownCast
Concatenate two arrays vtkConcatenateArray
Produce a random vector at each point in a dataset vtkBrownianPoints
Mathematical vector class vtkVector
Compute Principal Component Analysis (PCA) values vtkPCAStatistics
Project 2D points onto the best 1D subspace (PCA Demo) vtkPCAStatistics
Pass input along to output vtkPassThrough
Convert a vtkDenseArray to a vtkTable vtkArrayToTable
Cardinal spline Interpolation vtkCardinalSpline
Shepard method interpolation vtkShepardMethod
Timer log vtkTimerLog
Time stamp vtkTimeStamp
Subclass vtkCommand vtkCommand Instead of using a callback function, it is more powerful to subclass vtkCommand.
Interpolation using a piecewise function vtkPiecewiseFunction
Convert between data types vtkVariant
Coordinate system conversions vtkCoordinate
Check VTK Version vtkVersion
Catch errors and warnings vtkCommand
Check VTK Version Macro/#define's
Lookup Table Utilities vtkLookupTable vtkColorSeries A utility class for vtkLookupTable allowing you to output the table contents or to compare tables.
Color Lookup Table vtkLookupTable
Color Transfer Function vtkColorTransferFunction
Discretizable Color Transfer Function vtkDiscretizableColorTransferFunction
Construct a Table vtkTable A table is a 2D array of any type of elements. They do not all have to be the same type. This is achieved using vtkVariant.
Delaunay Triangulation (2D) vtkDelaunay2D Perform a 2D Delaunay triangulation on a point set.
Constrained Delaunay Triangulation (2D) vtkDelaunay2D Perform a 2D Delaunay triangulation on a point set respecting a specified boundary.
Known Length Array vtkFloatArray
Unknown Length Array vtkFloatArray
Array of Vectors (Known Length) vtkFloatArray
Array of Vectors (Unknown Length) vtkFloatArray
Get the bounds of a vtkDenseArray vtkDenseArray, vtkArrayRange
Get the bounds (min,max) of a vtk array vtkFloatArray::GetRange minimum, maximum
2D Array vtkDenseArray
3D Array vtkDenseArray
Sparse Array vtkSparseArray
Custom type Dense (2D) Array vtkDenseArray
Determine the type of a VTK variable GetClassName()
Determine the type of an actor vtkActor, vtkActorCollection
Screenshot vtkWindowToImageFilter
FilenameFunctions vtkDirectory, vtksys/SystemTools Do things like get the file extension, strip the file extension, etc.
Timer vtkRenderWindowInteractor::CreateRepeatingTimer
Off Screen Rendering vtkImagingFactory, vtkGraphicsFactory
String function parser vtkFunctionParser
Catch the camera modified event vtkCameraWindow
Catch the window modified event vtkRenderWindow
Extract a component of an array vtkArrayCalculator

CMake Techniques

Example Name VTK Classes Demonstrated Description
Check if a specific module is present
Check VTK Version in CMake

Math Operations

Example Name VTK Classes Demonstrated Description
LUFactorization vtkMath LU Factorization.
NormalizeVector vtkMath Normalize a vector.
VectorDot vtkVectorDot
PowerWeighting vtkPowerWeighting Raise all elements in an array to a power.
LeastSquares vtkMath::SolveLeastSquares Least Squares.
HomogeneousLeastSquares vtkMath::SolveHomogeneousLeastSquares Homogeneous Least Squares.
EigenSymmetric vtkMath::Jacobi Compute eigenvalues and eigenvectors of a symmetric matrix.
MatrixTranspose vtkMatrix3x3 Matrix transpose.
MatrixInverse vtkMatrix3x3 Matrix inverse.
PerpendicularVector vtkMath::Perpendiculars Get a vector perpendicular to another vector.
VectorNorm vtkVectorNorm Get the lengths of an array of vectors.
Interpolate1D vtkTupleInterpolator vtkCardinalSpline vtkKochanekSpline A simple example demonstrating how functions defined by sparsely distributed supporting points can be interpolated at arbitrary positions.


Example Name VTK Classes Demonstrated Description
Convert an adjacency matrix to an edge table vtkAdjacencyMatrixToEdgeTable
Find the shortest path on a graph vtkDijkstraGraphGeodesicPath
Set the color of vertex labels vtkGraphLayoutView, vtkRenderedGraphRepresentation
Set the size of vertices vtkGraphLayoutView, vtkRenderedGraphRepresentation Vertex size.
Size/scale vertices based on a data array vtkGraphLayoutView, vtkRenderedGraphRepresentation
Get a list of selected vertices and edges vtkAnnotationLink
Get a list of selected vertices and edges using an observer of AnnotationChangedEvent vtkAnnotationLink
Manually set coordinates of vertices in a graph vtkGraph::SetPoints, vtkPassThroughLayoutStrategy
Create either a vtkMutableDirectedGraph or vtkMutableUndirectedGraph vtkMutableGraphHelper
Display two graphs side by side vtkGraphLayoutView
Get all vertices connected to a specified vertex vtkAdjacentVertexIterator
Edge weights vtkGraph::GetEdgeData::AddArray
Iterate over edges vtkEdgeListIterator
Iterate over edges incoming to a vertex vtkInEdgeIterator
Iterate over edges outgoing from a vertex vtkOutEdgeIterator
Breadth first search tree vtkBoostBreadthFirstSearchTree Can also be used to convert a graph to a tree
Distance from origin vtkBoostBreadthFirstSearch
Color vertices vtkGraphLayoutView
Color edges vtkGraphLayoutView
Construct a graph vtkMutableUndirectedGraph
Construct a tree vtkTree, vtkMutableDirectedGraph
Minimum spanning tree of a graph vtkBoostPrimMinimumSpanningTree
Depth First Search iterator vtkTreeDFSIterator
Breadth First Search iterator vtkTreeBFSIterator
Visualize a graph vtkGraphLayoutView, vtkGraphLayoutStrategy, vtkSimple2DLayoutStrategy
Create a graph & visualize it in ParaView/VisIt vtkUnstructuredGrid, vtkXMLUnstructuredGridWriter, vtkPolyLine
Label vertices and edges vtkGraphLayoutView::SetEdgeLabelArrayName, vtkGraphLayoutView::SetVertexLabelArrayName
Find connected components of a graph vtkBoostConnectedComponents
Convert a graph to a PolyData vtkGraphToPolyData
Visualize a directed graph vtkGlyphSource2D
Create a random graph vtkRandomGraphSource
Depth First Search Animation vtkTreeDFSIterator
Remove vertices of degree 0 from a vtkGraph vtkRemoveIsolatedVertices

Graph Conversions

Example Name VTK Classes Demonstrated Description
MutableDirectedGraphToDirectedGraph vtkMutableDirectedGraph, vtkDirectedGraph vtkMutableDirectedGraph to vtkDirectedGraph.
DirectedGraphToMutableDirectedGraph vtkMutableDirectedGraph, vtkDirectedGraph vtkDirectedGraph to vtkMutableDirectedGraph.
TreeToMutableDirectedGraph vtkMutableDirectedGraph, vtkTree vtkTree to vtkMutableDirectedGraph

Graph Conversions That Don't Work

Example Name VTK Classes Demonstrated Description
vtkMutableDirectedGraph to vtkMutableUndirectedGraph vtkMutableDirectedGraph, vtkMutableUndirectedGraph
vtkMutableUndirectedGraph to vtkMutableDirectedGraph vtkMutableDirectedGraph, vtkMutableUndirectedGraph
vtkTree to vtkMutableUndirectedGraph vtkTree, vtkMutableUndirectedGraph

Data Structures

Example Name VTK Classes Demonstrated Description
AttachAttributes vtkInformation Attach attributes to a VTK array
Radius vtkPointLocator Find all points within a radius of a specified point.
CellLocatorVisualization vtkCellLocator Visualization of the tree of a vtkCellLocator.
PointLocatorVisualization vtkPointLocator Visualization of the tree of a vtkPointLocator.
PointLocator vtkPointLocator Efficient 3D point query.
CellLocator vtkCellLocator Project a point onto a mesh. Closest point on a mesh.Efficient 3D cell query.
CellTreeLocator vtkCellTreeLocator Points inside an object using vtkCellTreeLocator.

Timing Demonstrations

Example Name VTK Classes Demonstrated Description
OctreeTimingDemo vtkOctreePointLocator Plot the runtime vs MaxPointsPerRegionOctree timing demo.
KDTreeTimingDemo vtkKdTreePointLocator Plot the runtime vs MaxLevel (doesn't seem correct)
OBBTreeTimingDemo vtkOBBTree Plot the runtime vs MaxLevel
ModifiedBSPTreeTimingDemo vtkModifiedBSPTree Plot the runtime vs MaxLevel


Example Name VTK Classes Demonstrated Description
KdTree vtkKdTree
ClosestKPoints vtkKdTree
AccessPoints vtkKdTree Access the points of a KDTree.
ClosestPoint vtkKdTreePointLocator Find the closest point to a query point.
ClosestNPoints vtkKdTreePointLocator Find the closest N points to a query point.
VisualizeKDTree vtkKdTreePointLocator Visualize levels of the tree.
FindPointsWithinRadius vtkKdTreePointLocator Find points within a specified radius of a query point.
DataStructureComparison vtkKdTree, vtkOBBTree, vtkOctreePointLocator, vtkModifiedBSPTree Illustrates, side by side, the differences between several spatial data structures

Oriented Bounding Box (OBB) Tree

Example Name VTK Classes Demonstrated Description
IntersectWithLine vtkOBBTree Intersect a line with a vtkOBBTree.
OBBTreeExtractCells vtkOBBTree Intersect a line with an OBB Tree and display all intersected cells.
VisualizeOBBTree vtkOBBTree Visualize levels of the tree.


Example Name VTK Classes Demonstrated Description
BuildTree vtkOctreePointLocator Create an octree.
ClosestPoint vtkOctreePointLocator Find the closest point to a query point.
KClosestPoints vtkOctreePointLocator Find the K closest points to a query point.
FindPointsWithinRadius vtkOctreePointLocator Find the points within a sphere of specified radius to a query point.
OctreeVisualize vtkOctreePointLocator Visualize levels of the tree.
IncrementalOctreePointLocator vtkIncrementalOctreePointLocator Insert points into an octree without rebuilding it.

Modified BSP Tree

Example Name VTK Classes Demonstrated Description
ModifiedBSPTreeIntersectWithLine vtkModifiedBSPTree Intersect a line with a modified BSP Tree.
ModifiedBSPTreeExtractCells vtkModifiedBSPTree Intersect a line with a modified BSP Tree and display all intersected cells.
VisualizeModifiedBSPTree vtkModifiedBSPTree Visualize levels of the tree.

VTK Concepts

Example Name VTK Classes Demonstrated Description
Scalars Attach a scalar value to each point (PointData) or cell (CellData) in a data set.


Example Name VTK Classes Demonstrated Description
Create shadows vtkShadowMapPass
Add a directional light to a scene vtkLight
Display the location and direction of a light vtkLightActor


See this tutorial for a brief explanation of the VTK terminology of mappers, actors, etc.

Example Name VTK Classes Demonstrated Description
Assign colors to cells in a vtkPolyData structure using lookup tables. vtkNamedColors, vtkPlaneSource, vtkLookupTable, vtkColorTransferFunction Demonstrates how to assign colors to cells in a vtkPolyData structure using lookup tables.
Generate a surface and color by elevation bands using arrows for glyphing normals. vtkBandedPolyDataContourFilter, vtkLookupTable, vtkColorSeries, vtkGlyph3D Demonstrates the coloring of a surface by partitioning the elevation into bands and using arrows to display the normals on the surface.
Generate a surface and color by curvature bands using arrows for glyphing normals. vtkCurvatures, vtkBandedPolyDataContourFilter, vtkLookupTable, vtkColorSeries, vtkGlyph3D Demonstrates the coloring of a surface by partitioning the gaussian curvature of a surface into bands and using arrows to display the normals on the surface.
Layered renderers vtkRenderer
Switch between coloring the actor and coloring the data vtkDataSetMapper ScalarVisibility, color
Display an image in 2D vtkImageMapper
Use a texture for the background of a vtkRenderer vtkRenderer, vtkTexture Background texture, BackgroundTexture
Visualize a vector field vtkGlyph3D
Orientation of the view of an image vtkInteractorStyleImage
Draw a caption/bubble pointing to a particular point CaptionActor2D
Determine the display order of a stack of images vtkRenderer
Render into an existing OpenGL Context vtkRenderPass,vtkVolumetricPass
Set transparency of image pixels vtkImageData
Create oriented glyphs from vector data vtkGlyph3D
Create oriented lines (hedgehogs) from vector data vtkHedgeHog, vtkStructuredGrid
Change the width/thickness of lines in an actor vtkActor, vtkProperty
Change the shape of the cursor vtkRenderWindow
Get the bounds of the whole scene vtkRenderer
Convolve a splat image with every point in an input image vtkFastSplatter
Create tubes with varying radius and colors vtkTubeFilter
Create tubes from interpolated points and scalars vtkTubeFilter, vtkParametricFunctionSource vtkTupleInterpolator
vtkGlyph2D vtkGlyph2D
vtkGlyph3D vtkGlyph3D
Add a vertex to each point vtkVertexGlyphFilter
vtkCutter vtkCutter
Display a quadratic surface vtkQuadric
Backface culling vtkActor::GetProperty::BackfaceCullingOn
Background color vtkRenderer::SetBackground
Background gradient vtkRenderer::GradientBackgroundOn, vtkRenderer::Setbackground2
CameraActor vtkCameraActor Visualize a camera (frustum) in a scene.
Generate 3D clip art from an image vtkTextureMapToPlane
Close a render window vtkRenderWindowInteractor::TerminateApp, vtkRenderWindow::Finalize
Color an Actor vtkActor::GetProperty::SetColor
Color the edges of an Actor vtkActor::GetProperty::SetEdgeColor
Color glyphs vtkGlyph3D vtkGlyph3D::SetColorModeToColorByScalar
Corner annotation vtkCornerAnnotation Write text in the corners of a window.
Correctly Rendering Translucent Geometry vtkDepthSortPolyData
Display three orthogonal axes with labels vtkCubeAxesActor
Display three orthogonal axes with labels vtkCubeAxesActor2D This example uses the vtkCubeAxesActor2D to show your scene with axes to indicate the spatial extent of your data.
vtkCursor3D vtkCursor3D
Track a 3D cursor vtkPointWidget
Display coordinate axes vtkOrientationMarkerWidget
Display Text vtkTextActor, vtkTextProperty
A little bit easier rendering vtkRenderView
FlatShading vtkActor::GetProperty::SetInterpolationToFlat
Draw text that stays right side up vtkFollower
Hide an actor vtkPropCollection, vtkProp::VisibilityOff visible
Hide all actors vtkRenderer::RemoveAllViewProps
Level of detail rendering vtkLODProp3D
Label Contours vtkLabeledDataMapper
Label Mesh vtkLabeledDataMapper
Label points vtkPointSetToLabelHierarchy, vtkLabelPlacementMapper Display a non-overlapping text label at each point.
Display the point ID at each point vtkLabeledDataMapper
Legend vtkLegendBoxActor
Display the scale of a scene vtkLegendScaleActor
Movable axes vtkFollower, vtkAxesActor, vtkAssembly
Moving an Actor vtkInteractorStyleTrackballActor
Moving the Camera vtkInteractorStyleTrackballCamera
Multiple Actors vtkActor
Named colors vtkNamedColors Demonstrates how to use the vtkNamedColor class
Named color patches vtkNamedColors Creates a HTML file called VTKNamedColorPatches.html showing the available colors in vtkNamedColors.
NoShading vtkActor::GetProperty::SetAmbient, vtkActor::GetProperty::SetDiffuse, vtkActor::GetProperty::SetSpecular
Opacity vtkActor::GetProperty::SetOpacity Transparency, transparent.
PointSize vtkActor::GetProperty::SetPointSize
Poly Data Depth Sorting vtkDepthSortPolyData
Automatic level of detail adjustment vtkQuadricLODActor Level of detail adjustment.
Render a large image, larger than a window vtkRenderLargeImage
Rotate an Actor vtkActor::GetMatrix
ScalarBarActor vtkScalarBarActor Display a color bar.
Scale glyphs vtkGlyph3D vtkGlyph3D::SetScaleModeToScaleByScalar
Select a region of a window vtkInteractorStyleRubberBand2D
Stream Lines vtkStreamLine
Display text vtkTextSource
Texture map an ImageData vtkImageCanvasSource2D
Texture map a plane vtkTextureMapToPlane
Texture map a quad vtkPolygon, vtkPolyData::GetPointData::SetTCoords
Transform an Actor vtkActor::SetUserTransform
Transform an actor collection vtkActorCollection
Multiple Actors in a Vector vtkActor
Display high resolution text vtkVectorText
Visualize a 2D Set of Points vtkPolyDataMapper2D, vtkProperty2D
Visualize the points of an ImageData vtkDataSetMapper
Visualize a VTP File vtkXMLPolyDataReader, vtkPolyDataMapper
Change the size of a window vtkRenderWindow:SetSize
Change the title of a window vtkRenderWindow::SetWindowName
Wireframe vtkActor::GetProperty::SetRepresentationToWireframe
Positioning and aiming the camera vtkCamera
Display Quadratic Surfaces vtkQuadric, vtkSampleFunction, vtkContourFilter
Glyph3DMapper vtkGlyph3DMapper
DistanceToCamera vtkDistanceToCamera
Generate a custom glyph at each point vtkProgrammableGlyphFilter
Sample a volume with a curved surface vtkProbeFilter In medical imaging, this is often called curved multi planar reformation
Sample a volume with an isosurface vtkProbeFilter Demonstrates how to create point data on an isosurface.
Accessing the source of an actor reversely vtkActor Demonstrates how to access the source (e.g. vtkSphereSource) of an actor reversely
Probe a data set with random points vtkProbeFilter Demonstrates how to probe a dataset with random points and select points inside the data set
vtkTensorGlyph vtkTensorGlyph Draw a rotated/scaled glyph at each point.
KochSnowflake vtkPolyData, vtkPolyLine, vtkTriangle, vtkLookupTable, Use recursion to represent a Koch snowflake fractal.
FindCellIntersections vtkCellLocator Find the intersection of a line and the cells in an unstructured dataset
BillboardTextActor3D vtkBillboardTextActor3D Label points with billboards.

Volume Rendering

Example Name VTK Classes Demonstrated Description
HAVS vtkHAVSVolumeMapper
Smart volume mapper vtkSmartVolumeMapper
Min intensity rendering vtkFixedPointVolumeRayCastMapper
ITK->VTK conversion Conversion maintaining DICOM orientation and position

User Interaction

Example Name VTK Classes Demonstrated Description
Move a cube into a sphere vtkInteractorStyleTrackballActor Snap
Create, invoke, and handle a custom event Simple observer, emit
Handle events in class member functions Set observers to be class member functions.
Click and drag a vertex of a vtkPolyData vtkPointPicker
Click and drag a vertex of a vtkUnstructuredGrid vtkPointPicker
Give an observer access to an object (via ClientData) vtkCommand
Pass an observer a value (via CallData) vtkCommand
Drag a glyph around vtkGlyph3D
Picking vtkPropPicker Get the world coordinate of the mouse click (if you clicked an actor)
Disallow interaction with a specific actor vtkActor::PickableOff
Assembly vtkAssembly Combine/group actors into an assembly.
Catch a double click vtkInteractorStyleTrackballCamera
vtkImageClip vtkImageClip Demonstrates how to interactively select and display a region of an image.
Select a region of an image vtkCommand
Terrain mode vtkInteractorStyleTerrain
Handle keypress events vtkInteractorStyleTrackballCamera
Handle keypress events (lightweight) vtkCallbackCommand This uses a callback function rather than a derived interactor class.
InteractorStyleUser vtkInteractorStyleUser Create a completely custom interactor style (no default functionality is provided)
Handle mouse events vtkInteractorStyleTrackballCamera Subclass the interactor style.
Handle mouse events (light weight) vtkCallbackCommand Use an observer.
Get the coordinates of the closest point in the data set to the mouse click vtkPointPicker
RubberBand2D Observer vtkInteractorStyleRubberBand2D
RubberBand2D vtkInteractorStyleRubberBand2D
RubberBand3D vtkInteractorStyleRubberBand3D
RubberBandPick vtkInteractorStyleRubberBandPick
RubberBandZoom vtkInteractorStyleRubberBandZoom
Select an actor vtkPropPicker
Check if shift or control is being held vtkRenderWindowInteractor::GetControlKey() Hold/holding down a key
Choose between multiple interaction modes vtkInteractorStyleSwitch
Trackball actor mode vtkInteractorStyleTrackballActor
Trackball camera mode vtkInteractorStyleTrackballCamera
Get world coordinates of mouse click vtkWorldPointPicker
Cell Picking vtkCellPicker select cell, click cell
Area Picking vtkAreaPicker
Highlight Selected Points vtkExtractGeometry
Highlight selection vtkExtractPolyDataGeometry
Highlight a picked actor vtkPropPicker

Working with Images

Example Name VTK Classes Demonstrated Description
Export an image to a C array vtkImageExport c-style
Import an image from a C array vtkImageImport c-style
Median filter a 3d or 2d image vtkImageMedian3D Median filter
Inverse FFT vtkImageRFFT
High pass filter an image vtkImageIdealHighPass
Remove small patches from an image vtkImageIslandRemoval2D
Setup the camera to fill the window with an image vtkCamera Fit image
Shift and scale an image vtkImageShiftScale
Copy one image into another image vtkImageStencil, vtkImageToImageStencil
Display layers of images vtkImageStack
Set the size of border pixels vtkImageSliceMapper
Set the interpolation type for the display of an image vtkImageSlice, vtkImageProperty If pixels look blurry instead of sharp when zoomed in, change this.
Draw text in an image vtkFreeTypeUtilities, vtkImageBlend
Convolve a separable kernel with an image vtkImageSeparableConvolution
Median filter an image vtkImageHybridMedian2D
Dilate or erode an image vtkImageDilateErode3D
Open or close (morphologically) an image vtkImageOpenClose3D
Replace every pixel with the range of its neighbors according to a kernel vtkImageRange3D
Convert a vtkImageData to a vtkPolyData vtkImageToPolyDataFilter, vtkImageQuantizeRGBToIndex
Compute the Manhattan distance from every point to every black point in a binary image vtkImageCityBlockDistance
Perform Canny edge detection on an image
Convert a vtkImageData to a vtkStructuredPoints vtkImageToStructuredPoints
Find peaks in an image using non maximum suppression vtkImageNonMaximumSuppression
Make part of an image transparent vtkImageMapToColors, vtkLookupTable Transparency
RTAnalyticSource vtkRTAnalyticSource An image source that can be used for regression testing
Create a Mandelbrot image vtkImageMandelbrotSource
Stretch an image vtkImageMagnify Supersample and stretch an image.
Create a image of a grid vtkImageGridSource
Create a sinusoidal image vtkImageSinusoidSource
2D actor and mapper vtkActor2D vtkMapper2D
Cast an image to a different type vtkImageCast
Extract components of an image vtkImageExtractComponents This can be used to get, for example, the red channel of an image.
Display a greyscale histogram vtkImageAccumulate, vtkBarChartActor grayscale
Display an image as the background of a scene vtkImageCanvasSource2D
Display a static image vvtkImageViewer2 This will display the image, but not allow you to interact with it.
Image dot product vtkImageDotProduct Compute the pixel-wise dot product of two vector images.
Drawing on an image vtkImageCanvasSource2D
Drawing shapes in an image vtkImageCanvasSource2D
Mask a region of an image vtkImageMask
Perform mathematical operations on an image vtkImageMathematics
vtkImageMirrorPad vtkImageMirrorPad Pad the edges of an extended image by mirror existing pixels.
Visualize and interact with an image vtkImageActor, vtkInteractorStyleImage
Visualize and interact with an image vtkImageSlice, vtkImageSliceMapper This is the new way to do this. It is much more powerful.
Visualize and interact with an image vtkImageSlice, vtkImageResliceMapper This is even more powerful than vtkImageSliceMapper. It can also do oblique slices.
Rotate a 2D image vtkImageSlice, vtkImageResliceMapper This is even more powerful than vtkImageSliceMapper. It can also do oblique slices.
Negative Indices vtkImageData A very powerful feature of vtkImageData is that you can use negative indices.
Picking a pixel 2 - modified version for exact pixel values vtkPropPicker
Picking a pixel vtkPropPicker
Mark keypoints in an image vtkVectorText, vtkFollower
Visually Compare Two Images vtkImageCheckerboard
Threshold an image vtkImageThreshold

Image Processing

Example Name VTK Classes Demonstrated Description
RescaleAnImage vtkImageShiftScale Rescale an image
vtkImageAccumulate vtkImageAccumulate Histogram
Get the range of image pixel values (min/max) vtkImageData minimum, maximum
Anisotropic diffusion (2D) vtkImageAnisotropicDiffusion2D
Blending 2D images with different color maps vtkImageMapToColors
Center an image vtkImageChangeInformation
Combine two images vtkImageBlend
Combine layers into an RGB image vtkImageAppendComponents
Convert RGB image to greyscale vtkImageMagnitude grayscale
Compute the difference image of two images vtkImageDifference
Convert RGB image to greyscale (luminance) vtkImageLuminance grayscale
Convert greyscale image to RGB vtkImageMapToColors Use a lookup table to map scalar (grayscale) values to colors
Flip an image vtkImageFlip
Image gradient vtkImageGradient Compute the gradient vector at every pixel.
Dilate an image vtkImageContinuousDilate3D
Erode an image vtkImageContinuousErode3D
Convolve an image with a kernel vtkImageConvolve Convolution
Correlate two images vtkImageCorrelation
Divergence of a vector field vtkImageDivergence
Create an image of an ellipsoid vtkImageEllipsoidSource
Compute the FFT of an image vtkImageFFT
Smooth an image vtkImageGaussianSmooth
Compute the magnitude of the gradient at each pixel of an image vtkImageGradientMagnitude
Compute the Laplacian of an image vtkImageLaplacian
Create an image of noise vtkImageNoiseSource
Switch axes of an image vtkImagePermute
Resample an image vtkImageShrink3D
Sobel edge detection 2D vtkImageSobel2D
Variance of a 3D image vtkImageVariance3D Construct a new image consisting of the variance of the input image at each pixel.
Convert RGB to HSV vtkImageRGBToHSV
Resize an image vtkImageResize vtkImageSincInterpolator Resize an image using a sinc interpolator


Example Name VTK Classes Demonstrated Description
PointWidget vtkPointWidget
SeedWidgetImage vtkImageViewer2, vtkSeedWidget How to start the interaction?
Interact with a plane vtkPlaneWidget
Apply an affine transformation interactively vtkAffineWidget
vtkPolygonalSurfacePointPlacer vtkPolygonalSurfacePointPlacer Used in conjuntion with vtkContourWidget to draw curves on a surface.
Sphere widget events vtkSphereWidget
Draw movable text vtkTextWidget
Seed widget vtkSeedWidget
Sphere widget vtkSphereWidget
vtkSphereWidget2 vtkSphereWidget2
vtkSplineWidget vtkSplineWidget
vtkBorderWidget vtkBorderWidget 2D selection, 2D box.
vtkBorderWidget vtkBorderWidget 2D selection box in world coordinates.
vtkAngleWidget vtkAngleWidget
vtkAngleWidget + vtkAngleRepresentation2D vtkAngleWidget, vtkAngleRepresentation2D
vtkCaptionWidget vtkCaptionWidget
3D Slider vtkSliderWidget, vtkSliderRepresentation3D
2D Slider vtkSliderWidget, vtkSliderRepresentation2D
Balloon vtkBalloonWidget
Contour Widget vtkContourWidget Create a contour from a set of points and dynamically change the contour using the points as control points.
vtkDistanceWidget vtkDistanceWidget
vtkImplicitPlaneWidget2 vtkImplicitPlaneWidget2 Clip polydata with an implicit plane.
vtkBoxWidget vtkBoxWidget
vtkBoxWidget2 vtkBoxWidget2
vtkLineWidget2 vtkLineWidget2
vtkBiDimensionalWidget vtkBiDimensionalWidget When would you use this?
vtkImagePlaneWidget vtkImagePlaneWidget
vtkImageTracerWidget vtkImageTracerWidget Scribble on an image.
vtkImageTracerWidget vtkImageTracerWidget Highlight pixels inside a non-regular region scribbled on an image.
Draw on a non-planar surface vtkImageTracerWidget
vtkHoverWidget vtkHoverWidget How to detect a hover?
Logo widget vtkLogoWidget
Orientation Marker widget vtkOrientationMarkerWidget Display a polydata as an orientation icon.
Rectilinear Wipe widget vtkImageRectilinearWipe, vtkRectilinearWipeWidget, vtkRectilinearWipeRepresentation Compare two images.
Checkerboard widget vtkCheckerboardWidget, vtkCheckerboardRepresentation Compare two images using a checkerboard.
vtkCursor2D vtkCursor2D
ButtonWidget vtkButtonWidget,vtkTexturedButtonRepresentation2D Create a textured 2D button


Example Name VTK Classes Demonstrated Description
Box plot vtkChartBox
Line plot vtkChartXY
Scatter plot vtkPlotPoints
Bar chart vtkChartXY
Pie chart vtkChartPie, vtkPlotPie
Parallel coordinates vtkChartParallelCoordinates
Stacked bar vtkPlotBar
Stacked plot vtkPlotStacked


Example Name VTK Classes Demonstrated Description
Animate actors vtkAnimationScene, vtkAnimationCue
Animation vtkRenderWindowInteractor::CreateRepeatingTimer Move a sphere across a scene.
Animation (the right way) vtkAnimationScene, vtkAnimationCue Zoom in on a sphere.
Data Animation vtkCallbackCommand, vtkProgrammableFilter Update points in a dataset every specified interval.
Data Animation (subclass) vtkCommand, vtkProgrammableFilter Update points in a dataset every specified interval (using a vtkCommand subclass instead of a callback function.

Geographic Visualization (Geovis)

Example Name VTK Classes Demonstrated Description
Compass Widget vtkCompassWidget
Earth source vtkEarthSource Create the Earth.
Convert lat/long coordinates to world coordinates vtkGeoAssignCoordinates

Information Visualization (Infovis)

Example Name VTK Classes Demonstrated Description
Parallel coordinates vtkParallelCoordinatesView
Tree map vtkTreeMapView


Click here for a tutorial on how to setup Qt.

Example Name VTK Classes Demonstrated Description
Convert a QImage to a vtkImageData vtkQImageToImageSource
ShowEvent Use QMainWindow::showEvent event to do things that you might want to do in the constructor
Render window without a .ui file QVTKWidget This is a very basic example that shows how to create a Qt window. Typically, one would want to design a form in the QtDesigner (this is shown in RenderWindowUi)
Render window with a .ui (single inheritance) QMainWindow Using a QVTKWidget with the Qt Single Inheritance model
Render window with a .ui (multiple inheritance) QMainWindow Using a QVTKWidget with the Qt Multiple Inheritance model
Side by side render windows QApplication
vtkQtBarChart vtkQtBarChart
Border Widget vtkBorderWidget, QApplication
Connect a VTK event to a Qt slot vtkEventQtSlotConnect
Convert a vtkImageData to a QImage
Share the camera between QVTKWidgets


You must turn on VTK_USE_MATLAB_MEX to use these.

Example Name VTK Classes Demonstrated Description
vtkMatlabEngineFilter vtkMatlabEngineFilter



If you have any trouble or errors with the following examples, please troubleshoot using these instructions.

Example Name VTK Classes Demonstrated Description
Connect to and read a MySQL database vtkMySQLDatabase, vtkSQLQuery
Create a MySQL database vtkMySQLDatabase
Write to a MySQL database vtkSQLQuery, vtkMySQLDatabase


RenderMan is a high quality rendering system create by Pixar. VTK can export RenderMan RIB files for rendering by prman. In the spring of 2015, Pixar released a non-commercial version of its RenderMan products.

Example Name VTK Classes Demonstrated Description
Apply a RenderMan Shader to a PolyData vtkRIBExporter

Remote Modules

Remote modules are user contributed code that is not distributed with VTK. A description of a remote module and the location of its repository is listed in the VTK/Remote directory with the extension .remote.cmake. Once enabled, a remote module is treated like any other VTK module. Each of the remote module examples describes how to enable the example. More information about remote modules is here.

Example Name VTK Classes Demonstrated Description
Compute tangent and normal vectors to a polyline vtkFrenetSerretFrame
Interactively compute tangent and normal vectors to a polyline vtkFrenetSerretFrame Uses vtkSplineWidget to interact with a spline. Shows how to control a pipeline inside a callback.

Broken/Missing Examples (Please write/fix me!)

Some of these are simply shells waiting for a good example. Some of these have a specific problem that is noted. Please help improve them!

Testing Needed

Example Name VTK Classes Demonstrated Description
AVI (Windows only) vtkAVIWriter Someone please test this.
OggTheora vtkOggTheoraWriter Can't find lvtkoggtheora
MPEG2 vtkMPEG2Writer CMake won't find MPEG2 include?
FFMPEG vtkFFMPEGWriter CMake won't find FFMPEG include?
Display a histogram vtkImageAccumulate, vtkBarChartActor Testing images seem to vary slightly on different machines.

Small Problems

Example Name VTK Classes Demonstrated Description
Interact/move the vertices of a graph vtkGraph
Read an mdb Access database file vtkODBCDatabase Error: “Could not execute statement”
Sobel edge detection 3D vtkImageSobel3D
Anisotropic diffusion (3D) vtkImageAnisotropicDiffusion3D Need a suitable input.
Write an ExodusII file vtkExodusIIWriter Write a time varying file. Someone who is familiar with this format should make a reasonable example.
ImageReader2 vtkImageReader2 No errors, but no image is displayed. I think this is a superclass not intended to be used directly?
Low pass filter an image vtkImageIdealLowPass
Delete points vtkPolyData No longer crashes but doesn't seem to do anything. See example Delete cells.
Delete cells vtkPolyData Not sure if this has much utility?
Play/stop/fast forward etc buttons vtkPlaybackWidget Need to show user how to start recording? Playback a recording?
Vary the shape of vertices vtkGraphLayoutView
Vary the width of edges vtkGraphLayoutView
Write an unstructured grid to parallel files vtkXMLPUnstructuredGridWriter Even with SetNumberOfPieces(4), only 2 files are generated?
Convert a vtkTable to a vtkGraph vtkTableToGraph How to specify the columns?
Generate a diagonal matrix vtkDiagonalMatrixSource What type is output?
Generate different glyphs based on a table vtkGlyph3D How to specify which values get which glyphs?
Write an image file to parallel files vtkXMLPImageDataWriter Even with SetNumberOfPieces(4), only 2 files are generated?
Combine the points of multiple PolyData datasets vtkAppendPoints The data sets seem to have been combined (there are 10 points and 10 cells in the output), but nothing is displayed -- this is because the points and cells are copied but not the verts. See example vtkAppendPolyData instead (there's already an example for that).
Extract a subgraph vtkExtractSelectedGraph Waiting for dual vtkGraphView
Order cells from a viewing direction vtkKdTree
Merge selections vtkSelection
SpherePuzzle vtkSpherePuzzle Looks like a beach ball... what is the point?
Extract points based on a criterion function vtkExtractSelectedThresholds
Get connected cells vtkCellLinks How to use vtkCellLinks::Links class? How to know how many cells GetCells returns?
Convert data from an object into a vtkTable vtkDataObjectToTable How to get the point coordinates into the table?
vtkImageViewer2 vtkImageViewer2 How to start the interaction?
Convert a polydata to an implicit function vtkImplicitDataSet The error is: "Can't evaluate dataset!"
vtkCameraWidget vtkCameraWidget How to use this?
Compute occupancy of an object on a grid vtkVoxelModeller VTK_BIT is not supported - convert it?
Divide a point cloud into uniform cubic voxels vtkCellLocator We can determine which cell a point is in, but how to determine which points are in a particular cell?
Flight vtkInteractorStyleFlight linux keypresses not handled. I submitted a patch to the devel list - we'll see if they respond.
vtkPointHandleRepresentation2D vtkPointHandleRepresentation2D
RecordEvents vtkInteractorEventRecorder How to exit?
PlayBackEvents vtkInteractorEventRecorder How to slow down?
Quadric Surface Fitting vtkQuadric
Rectangular button source vtkRectangularButtonSource is this the intended usage?
ApplyColors vtkApplyColors How is this different from just adding a Colors array to a vtkDataSet?
vtkPCAAnalysisFilter vtkPCAAnalysisFilter What is the difference between this and vtkPCAStatistics? The eigenvalues vector doesn't seem to be valid. It seems like the eigenvector corresponding to the smallest value is stored as the normal of the cell in the output - how do you get the other two eigen vectors?

Wish List

Example Name VTK Classes Demonstrated Description
Plot data (Legacy method) vtkXYPlotActor The charts examples always seem to render slightly differently.
Display a histogram vtkImageAccumulate, XYPlotActor The charts examples always seem to render slightly differently.
vtkTableBasedClipDataSet vtkTableBasedClipDataSet Empty
vtkLSDynaReader vtkLSDynaReader Empty
vtkCompositeDataGeometryFilter vtkCompositeDataGeometryFilter Empty - combine multiple blocks into a single data set
vtkTryDowncast vtkTryDowncast Empty

Big Problems

Example Name VTK Classes Demonstrated Description
A comparison of some graph layout strategies vtkGraphLayoutView This crashes unless you build against the VTK-SideBySideGraphs branch from here: git@github.com:daviddoria/daviddoria-vtk.git
Extract iso-surfaces vtkMarchingContourFilter No output produced without a vtkVoxelModeller, strange output produced with a vtkVoxelModeller.
Set a value by manipulating something vtkContinuousValueWidget Can't instantiate this class? But nothing derives from it?
Delete a cell. vtkPolyData I tried this with lines and it doesn't work (crashes). The documentation says only works with polys - so wait for this functionality to be added?
Box intersection vtkBox This class doesn't have any non static functions! Need to create convenience functions.
vtkTensorProbeWidget vtkTensorProbeWidget How is this used?
GeoGlobeSource vtkGeoGlobeSource
GeoView vtkGeoView
vtkFrustumCoverageCuller vtkFrustumCoverageCuller Doesn't seem to have a property to specify a frustum? What is it for? How to use it?
vtkKdTreeSelector vtkKdTreeSelector Shell
vtkRungeKutta4 vtkRungeKutta4 Shell
vtkCoincidentPoints vtkCoincidentPoints What is this for?
Threaded/Parallel example Shell
Assign an array to a particular field vtkAssignAttribute Shell
vtkTransposeMatrix vtkTransposeMatrix What is this supposed to operate on? There is no vtkMatrix class.
vtkHyperOctree vtkHyperOctree What does this do?
vtkTextExtraction vtkTextExtraction Shell