VTK/Examples/ColoredPoints

From KitwarePublic

Jump to: navigation, search

ColoredPoints.cxx

#include <vtkSmartPointer.h>
#include <vtkPoints.h>
#include <vtkXMLPolyDataWriter.h>
#include <vtkPolyData.h>
#include <vtkPointData.h>
#include <vtkCellArray.h>
 
int main(int argc, char *argv[])
{
  //setup points
  double X[3] = {1.0, 0.0, 0.0};
  double Y[3] = {0.0, 0.0, 1.0};
  double Z[3] = {0.0, 0.0, 0.0};
 
  vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkPoints>::New();
  vtkSmartPointer<vtkCellArray> vertices = vtkSmartPointer<vtkCellArray>::New();
 
  for ( unsigned int i = 0; i < 3; ++i )
    {
    vtkIdType pid[1];
    pid[0] = points->InsertNextPoint ( X[i], Y[i], Z[i] );
    vertices->InsertNextCell ( 1,pid );
    }
 
  //setup colors
  unsigned char red[3] = {255, 0, 0};
  unsigned char green[3] = {0, 255, 0};
  unsigned char blue[3] = {0, 0, 255};
 
  vtkSmartPointer<vtkUnsignedCharArray> colors = vtkSmartPointer<vtkUnsignedCharArray>::New();
  colors->SetNumberOfComponents ( 3 );
  colors->SetName ( "Colors" );
  colors->InsertNextTupleValue ( red );
  colors->InsertNextTupleValue ( green );
  colors->InsertNextTupleValue ( blue );
 
  vtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::New();
 
  polydata->SetPoints ( points );
  polydata->SetVerts ( vertices );
  polydata->GetPointData()->SetVectors ( colors );
 
  vtkSmartPointer<vtkXMLPolyDataWriter> writer = vtkSmartPointer<vtkXMLPolyDataWriter>::New();
  writer->SetFileName ( "TriangleColoredPoints.vtp" );
  writer->SetInput ( polydata );
  writer->Write();
 
  return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.6)
 
PROJECT(ColoredPoints)
 
FIND_PACKAGE(VTK REQUIRED)
INCLUDE(${VTK_USE_FILE})
 
ADD_EXECUTABLE(ColoredPoints ColoredPoints.cxx)
TARGET_LINK_LIBRARIES(ColoredPoints vtkHybrid)
Personal tools