VTK/Examples/TriangulateTerrainMap
From KitwarePublic
< VTK | Examples(Redirected from Triangulate a Terrain Map)
This example generates heights (z value) on a 10x10 grid (a terrain map) and triangulates the points.
Fix: Remove use of drand48() Fix: Add CMakeLists.txt
TriangulateTerrainMap.cxx
#include <vtkCellArray.h> #include <vtkPoints.h> #include <vtkTriangle.h> #include <vtkPolyData.h> #include <vtkPointData.h> #include <vtkLine.h> #include <vtkCellLocator.h> #include <vtkOBBTree.h> #include <vtkSmartPointer.h> #include <vtkDelaunay2D.h> #include <vtkXMLPolyDataWriter.h> void TriangulateTerrain(); int main(int argc, char *argv[]) { TriangulateTerrain(); return 0; } void TriangulateTerrain() { vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New(); unsigned int gridSize = 10; for(unsigned int x = 0; x < gridSize; x++) { for(unsigned int y = 0; y < gridSize; y++) { points->InsertNextPoint(x, y, drand48()); } } //add the grid points to a polydata object vtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::New(); polydata->SetPoints(points); //triangulate the grid points vtkSmartPointer<vtkDelaunay2D> delaunay = vtkSmartPointer<vtkDelaunay2D>::New(); delaunay->SetInput(polydata); delaunay->Update(); vtkSmartPointer<vtkXMLPolyDataWriter> writer = vtkSmartPointer<vtkXMLPolyDataWriter>::New(); vtkstd::string outputFile = "Test.vtp"; writer->SetFileName(outputFile.c_str()); writer->SetInput(delaunay->GetOutput()); writer->Write(); }

