Advertisement
Guest User

Untitled

a guest
Sep 26th, 2016
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.54 KB | None | 0 0
  1. #include <vtkImageData.h>
  2. #include <vtkJPEGReader.h>
  3. #include <vtkPolyDataMapper.h>
  4. #include <vtkPolyData.h>
  5. #include <vtkSmartPointer.h>
  6. #include <vtkTextureMapToPlane.h>
  7. #include <vtkPlaneSource.h>
  8. #include <vtkTexture.h>
  9. #include <vtkRenderer.h>
  10. #include <vtkRenderWindow.h>
  11. #include <vtkRenderWindowInteractor.h>
  12. #include <vtkTextureMapToCylinder.h>
  13. #include <vtkCylinderSource.h>
  14. #include <vtkProperty.h>
  15. #include <vtkLookupTable.h>
  16. #include <vtkBMPReader.h>
  17.  
  18. /// http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/TextureMapPlane
  19. int main ()
  20. {
  21.     // Create an image data
  22.     vtkSmartPointer<vtkImageData> imageData =
  23.             vtkSmartPointer<vtkImageData>::New();
  24.     // Specify the size of the image data
  25.     imageData->SetDimensions(300,400,1);
  26.     imageData->AllocateScalars(VTK_DOUBLE,1);
  27.  
  28.     int* dims = imageData->GetDimensions();
  29.     for (int z = 0; z < dims[2]; z++)
  30.         for (int y = 0; y < dims[1]; y++)
  31.             for (int x = 0; x < dims[0]; x++) {
  32.                 double* pixel = static_cast<double*>(imageData->GetScalarPointer(x,y,z));
  33.                 pixel[0] = x + y;
  34.             }
  35.  
  36.     // Apply the texture
  37.     vtkSmartPointer<vtkTexture> texture =
  38.             vtkSmartPointer<vtkTexture>::New();
  39.     texture->SetInputData(imageData);
  40.  
  41.     // Create a cylinder
  42.     vtkSmartPointer<vtkCylinderSource> cylinderSource =
  43.             vtkSmartPointer<vtkCylinderSource>::New();
  44.     cylinderSource->SetResolution(100);
  45.     cylinderSource->SetCapping(false);
  46.  
  47.     // mapper
  48.     vtkSmartPointer<vtkPolyDataMapper> mapper =
  49.             vtkSmartPointer<vtkPolyDataMapper>::New();
  50.     mapper->SetInputConnection(cylinderSource->GetOutputPort());
  51.  
  52.     // actor
  53.     vtkSmartPointer<vtkActor> cylinderActor =
  54.             vtkSmartPointer<vtkActor>::New();
  55.     cylinderActor->SetMapper(mapper);
  56.     cylinderActor->SetTexture(texture);
  57.  
  58.     vtkSmartPointer<vtkRenderer> renderer =
  59.             vtkSmartPointer<vtkRenderer>::New();
  60.     renderer->AddActor(cylinderActor);
  61.     renderer->SetBackground(.1, .2, .3); // Background color dark blue
  62.     renderer->ResetCamera();
  63.  
  64.     vtkSmartPointer<vtkRenderWindow> renderWindow =
  65.             vtkSmartPointer<vtkRenderWindow>::New();
  66.     renderWindow->AddRenderer(renderer);
  67.  
  68.     vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
  69.             vtkSmartPointer<vtkRenderWindowInteractor>::New();
  70.     renderWindowInteractor->SetRenderWindow(renderWindow);
  71.  
  72.     renderWindow->Render();
  73.  
  74.     renderWindowInteractor->Start();
  75.  
  76.     return EXIT_SUCCESS;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement