VTK/Tutorials/VtkIdType

From KitwarePublic
< VTK‎ | Tutorials
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Confused why you can't use ints or unsigned ints in some places?

Here is an example: <source lang="cpp"> vtkSmartPointer<vtkCellArray> vertices = vtkSmartPointer<vtkCellArray>::New();

for ( unsigned int i = 0; i < polydata->GetNumberOfPoints(); ++i )

 { 
 vertices->InsertNextCell(1,i);
 }

</source>

The error generated is: <source lang="text"> error: invalid conversion from 'unsigned int' to 'const vtkIdType*' </source>

To fix this, you need to put the value into a vtkIdType object, as follows: <source lang="cpp"> vtkSmartPointer<vtkCellArray> vertices = vtkSmartPointer<vtkCellArray>::New();

for ( unsigned int i = 0; i < polydata->GetNumberOfPoints(); ++i )

 { 
 vtkIdType id[1];
 id[0] = i;
 vertices->InsertNextCell(1,id);
 }

</source>