Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vtkImageData.h>
- #include <vtkJPEGReader.h>
- #include <vtkPolyDataMapper.h>
- #include <vtkPolyData.h>
- #include <vtkSmartPointer.h>
- #include <vtkTextureMapToPlane.h>
- #include <vtkPlaneSource.h>
- #include <vtkTexture.h>
- #include <vtkRenderer.h>
- #include <vtkRenderWindow.h>
- #include <vtkRenderWindowInteractor.h>
- #include <vtkTextureMapToCylinder.h>
- #include <vtkCylinderSource.h>
- #include <vtkProperty.h>
- #include <vtkLookupTable.h>
- #include <vtkBMPReader.h>
- /// http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/TextureMapPlane
- int main ()
- {
- // Create an image data
- vtkSmartPointer<vtkImageData> imageData =
- vtkSmartPointer<vtkImageData>::New();
- // Specify the size of the image data
- imageData->SetDimensions(300,400,1);
- imageData->AllocateScalars(VTK_DOUBLE,1);
- int* dims = imageData->GetDimensions();
- for (int z = 0; z < dims[2]; z++)
- for (int y = 0; y < dims[1]; y++)
- for (int x = 0; x < dims[0]; x++) {
- double* pixel = static_cast<double*>(imageData->GetScalarPointer(x,y,z));
- pixel[0] = x + y;
- }
- // Apply the texture
- vtkSmartPointer<vtkTexture> texture =
- vtkSmartPointer<vtkTexture>::New();
- texture->SetInputData(imageData);
- // Create a cylinder
- vtkSmartPointer<vtkCylinderSource> cylinderSource =
- vtkSmartPointer<vtkCylinderSource>::New();
- cylinderSource->SetResolution(100);
- cylinderSource->SetCapping(false);
- // mapper
- vtkSmartPointer<vtkPolyDataMapper> mapper =
- vtkSmartPointer<vtkPolyDataMapper>::New();
- mapper->SetInputConnection(cylinderSource->GetOutputPort());
- // actor
- vtkSmartPointer<vtkActor> cylinderActor =
- vtkSmartPointer<vtkActor>::New();
- cylinderActor->SetMapper(mapper);
- cylinderActor->SetTexture(texture);
- vtkSmartPointer<vtkRenderer> renderer =
- vtkSmartPointer<vtkRenderer>::New();
- renderer->AddActor(cylinderActor);
- renderer->SetBackground(.1, .2, .3); // Background color dark blue
- renderer->ResetCamera();
- vtkSmartPointer<vtkRenderWindow> renderWindow =
- vtkSmartPointer<vtkRenderWindow>::New();
- renderWindow->AddRenderer(renderer);
- vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
- vtkSmartPointer<vtkRenderWindowInteractor>::New();
- renderWindowInteractor->SetRenderWindow(renderWindow);
- renderWindow->Render();
- renderWindowInteractor->Start();
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement