Add Global Information to a VTP file

From KitwarePublic
Revision as of 14:48, 17 April 2009 by Daviddoria (talk | contribs) (New page: <source lang="cpp"> //add random points (and vertices) to the file vtkSmartPointer<vtkPoints> Points = vtkSmartPointer<vtkPoints>::New(); vtkSmartPointer<vtkCellArray> Vertices = vtkSmar...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
//add random points (and vertices) to the file
	vtkSmartPointer<vtkPoints> Points = vtkSmartPointer<vtkPoints>::New();
	vtkSmartPointer<vtkCellArray> Vertices = vtkSmartPointer<vtkCellArray>::New();
	for ( unsigned int i = 0; i < 4; ++i )
	{
		vtkIdType pid[1];
		pid[0] = Points->InsertNextPoint(drand48(), drand48(), drand48());
		Vertices->InsertNextCell(1,pid);
	}
	
	vtkSmartPointer<vtkPolyData> pdata = vtkSmartPointer<vtkPolyData>::New();

	//add the points to the dataset
	pdata->SetPoints(Points);
	pdata->SetVerts(Vertices);

//add a FileIndex of "4" to the file
	vtkSmartPointer<vtkIntArray> MyArray = vtkSmartPointer<vtkIntArray>::New();
	MyArray->SetNumberOfComponents(1);
	MyArray->InsertNextValue(4);
	MyArray->SetName("FileIndex");

	pdata->GetFieldData()->AddArray(MyArray);

//add a Location of (10, 20, 30) to the file
	vtkSmartPointer<vtkDoubleArray> Location = vtkSmartPointer<vtkDoubleArray>::New();
	double loc[3] = {10.0, 20.0, 30.0};
	Location->SetNumberOfComponents(3);
	Location->SetName("Location");
	Location->InsertNextTuple(loc);
	
	pdata->GetFieldData()->AddArray(Location);
	
	//write the file
	vtkSmartPointer<vtkXMLPolyDataWriter> writer = vtkSmartPointer<vtkXMLPolyDataWriter>::New();
	writer->SetInput(pdata);

string OutputFilename = "TestGlobalInfo.vtp";
	writer->SetFileName(OutputFilename.c_str());
	writer->Write();
	cout << "Wrote " << OutputFilename.c_str() << endl;