Difference between revisions of "VTK/Examples/Cxx"
Line 1,116: | Line 1,116: | ||
{{VTKExamplesTable}} | {{VTKExamplesTable}} | ||
|- | |- | ||
− | | [[VTK/Examples/Cxx/VTKConcepts/Scalars|Attach a scalar value to each point (PointData) or cell (CellData) in a data set | + | | [[VTK/Examples/Cxx/VTKConcepts/Scalars|Scalars]] || ||Attach a scalar value to each point (PointData) or cell (CellData) in a data set. |
|} | |} | ||
Revision as of 10:19, 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!
Contents
- 1 Hello World
- 2 Simple Operations
- 3 Input and Output
- 4 Geometric Objects
- 5 Implicit Functions and Iso-surfaces
- 6 Working with 3D Data
- 7 Utilities
- 8 CMake Techniques
- 9 Math Operations
- 10 Graphs
- 11 Data Structures
- 12 VTK Concepts
- 13 Lighting
- 14 Visualization
- 15 Volume Rendering
- 16 User Interaction
- 17 Working with Images
- 18 Image Processing
- 19 Widgets
- 20 Plotting
- 21 Animation
- 22 Geographic Visualization (Geovis)
- 23 Information Visualization (Infovis)
- 24 Qt
- 25 Matlab
- 26 Databases
- 27 RenderMan
- 28 Remote Modules
- 29 Broken/Missing Examples (Please write/fix me!)
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
Input
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. |
Output
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
Input
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 |
Output
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
Input
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. |
Output
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
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. |
ParametricKuenDemo | Interactively change the parameters for a Kuen Surface. | |
ParametricSuperEllipsoidDemo | Interactively change the parameters for a SuperEllipsoid Surface. | |
ParametricSuperToroidDemo | 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 |
Clipping
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.
vtkImageData
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 |
Conversions
Example Name | VTK Classes Demonstrated | Description |
---|---|---|
ImageDataGeometryFilter | vtkImageDataGeometryFilter | Convert a vtkImageData to a vtkPolyData |
ImageDataToPointSet | vtkImageDataToPointSet | Convert a vtkImageData to a vtkStructuredGrid. |
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. |
vtkStructuredPoints
Example Name | VTK Classes Demonstrated | Description |
---|---|---|
StructuredPointsToUnstructuredGrid | vtkStructuredPoints, vtkUnstructuredGrid | Convert a vtkStructuredPoints to a vtkUnstructuredGrid. |
vtkRectilinearGrid
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 |
Registration
Example Name | VTK Classes Demonstrated | Description |
---|---|---|
IterativeClosestPointsTransform | vtkIterativeClosestPointTransform | Iterative Closest Points (ICP) Transform. |
LandmarkTransform | vtkLandmarkTransform | Landmark Transform. |
Medical
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). |
Utilities
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. |
Graphs
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
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 |
KD-Tree
Example Name | VTK Classes Demonstrated | Description |
---|---|---|
ClosestPoint | 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. |
Octree
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. |
Lighting
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 |
Visualization
See this tutorial for a brief explanation of the VTK terminology of mappers, actors, etc.
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
Working with Images
Image Processing
Widgets
Plotting
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 | |
Diagram |
Animation
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 |
Qt
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 |
Matlab
You must turn on VTK_USE_MATLAB_MEX to use these.
Example Name | VTK Classes Demonstrated | Description |
---|---|---|
vtkMatlabEngineFilter | vtkMatlabEngineFilter |
Databases
SQL
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
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 |