/*========================================================================= Program: Visualization Toolkit Module: TestOptiXWindow.cxx Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #include "vtkSmartPointer.h" #include "vtkActor.h" #include "vtkCamera.h" #include "vtkLight.h" #include "vtkPolyDataMapper.h" #include "vtkProperty2D.h" #include "vtkRegressionTestImage.h" #include "vtkRenderer.h" #include "vtkRenderWindow.h" #include "vtkRenderWindowInteractor.h" #include "vtkTextProperty.h" #include "vtkSphereSource.h" #include "vtkNew.h" #include "vtkElevationFilter.h" #include "vtkOptiXWindowNode.h" #include "vtkImageActor.h" #include "vtkImageData.h" #include "vtkPointData.h" #include "vtkImageMapper3D.h" #include "vtkTestUtilities.h" int TestOptiXWindow( int argc, char *argv[] ) { vtkNew sphere; sphere->SetThetaResolution(8); sphere->SetPhiResolution(8); vtkNew elev; elev->SetInputConnection(sphere->GetOutputPort(0)); vtkNew sphereMapper; sphereMapper->SetInputConnection(elev->GetOutputPort(0)); vtkNew sphereActor; sphereActor->SetMapper(sphereMapper); vtkSmartPointer light1 = vtkSmartPointer::New(); // Create the RenderWindow, Renderer and all Actors vtkSmartPointer ren1 = vtkSmartPointer::New(); ren1->AddLight(light1); vtkSmartPointer renWin = vtkSmartPointer::New(); renWin->AddRenderer( ren1 ); // Add the actors to the renderer, set the background and size // ren1->AddActor( sphereActor ); ren1->SetBackground( .2,.3,.4 ); // render the image renWin->SetWindowName( "VTK - Scalar Bar options" ); renWin->SetSize( 600, 500 ); vtkNew owindow; owindow->SetRenderable(renWin); owindow->TraverseAllPasses(); // now get the result and display it int *size = owindow->GetSize(); vtkNew image; image->SetDimensions(size[0], size[1], 1); image->GetPointData()->SetScalars(owindow->GetColorBuffer()); // Create a new image actor and remove the geometry one vtkNew imageActor; imageActor->GetMapper()->SetInputData(image); vtkNew renderer; renderer->AddActor(imageActor); // Background color white to distinguish image boundary renderer->SetBackground(1, 1, 1); vtkNew renderWindow; renderWindow->AddRenderer(renderer); vtkNew renderWindowInteractor; renderWindowInteractor->SetRenderWindow(renderWindow); renderWindow->Render(); renderer->ResetCamera(); renderWindow->Render(); int retVal = vtkRegressionTestImage(renderWindow); if (retVal == vtkRegressionTester::DO_INTERACTOR) { renderWindowInteractor->Start(); } return !retVal; }