I am trying to take a set of points and insert it into a voxelized 3d grid. That is, the input is an unstructured point set (vtkPoints or similar) and the output would be a structure that you can do something like the following after voxelizing the points into a 10x10x10 grid:<br>
<br>for(int x = 0; x < 10; x++)<br> for(int y = 0; y < 10; y++)<br> for(int z = 0; z < 10; z++)<br> cout << "Grid cell " << x << " " << y << " " << z << " has " << Grid->GetNumberOfPointsInVoxel(x,y,z) << " points.";<br>
<br>I saw vtkVoxelModeller, but I tried this: (compilable example here: <a href="http://rpi.edu/~doriad/VTK_List/vtkVoxelModeller/">http://rpi.edu/~doriad/VTK_List/vtkVoxelModeller/</a>)<br> <br> vtkSmartPointer<vtkXMLPolyDataReader> Reader = vtkSmartPointer<vtkXMLPolyDataReader>::New();<br>
Reader->SetFileName(InputFilename.c_str());<br> Reader->Update();<br> <br> vtkSmartPointer<vtkVoxelModeller> voxelModel = vtkSmartPointer<vtkVoxelModeller>::New();<br> voxelModel->SetInput(Reader->GetOutput());<br>
voxelModel->SetSampleDimensions(10, 10, 10);<br> voxelModel->SetModelBounds(-1.5, 1.5, -1.5, 1.5, -1.5, 1.5);<br><br> vtkSmartPointer<vtkXMLImageDataWriter> Writer = vtkSmartPointer<vtkXMLImageDataWriter>::New();<br>
Writer->SetFileName(OutputFilename.c_str());<br> Writer->SetInput(voxelModel->GetOutput());<br> Writer->Write();<br><br>but I get a whole bunch of unsupported data type errors: <br><br>vtkXMLImageDataWriter (0x86a53d8): Unsupported data type: 1<br>
vtkXMLImageDataWriter (0x86a53d8): Data type size 0 not supported by VTK XML format.<br><br>Am I expecting the correct thing from this filter? Where have I messed up the data types?<br><br clear="all">Thanks,<br><br>David<br>