VTK/Examples/TriangulateTerrainMap

From KitwarePublic

Jump to: navigation, search

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();	
}

CMakeLists.txt

 
Personal tools