/*========================================================================= Program: Visualization Toolkit Module: TestFocalPlaneContour.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. =========================================================================*/ // // This example tests the vtkHandleWidget with a 2D representation // First include the required header files for the VTK classes we are using. #include "vtkSmartPointer.h" #include "vtkActor2D.h" #include "vtkCamera.h" #include "vtkCommand.h" #include "vtkContourWidget.h" #include "vtkCoordinate.h" #include "vtkImageActor.h" #include "vtkImageData.h" #include "vtkImageMapper3D.h" #include "vtkImageShiftScale.h" #include "vtkInteractorEventRecorder.h" #include "vtkOrientedGlyphContourRepresentation.h" #include "vtkProperty2D.h" #include "vtkRenderWindow.h" #include "vtkRenderWindowInteractor.h" #include "vtkRenderer.h" #include "vtkTestUtilities.h" #include "vtkVolume16Reader.h" int TestFocalPlaneContour(int argc, char* argv[]) { char* fname = vtkTestUtilities::ExpandDataFileName(argc, argv, "Data/headsq/quarter"); vtkSmartPointer v16 = vtkSmartPointer::New(); v16->SetDataDimensions(64, 64); v16->SetDataByteOrderToLittleEndian(); v16->SetImageRange(1, 93); v16->SetDataSpacing(3.2, 3.2, 1.5); v16->SetFilePrefix(fname); v16->ReleaseDataFlagOn(); v16->SetDataMask(0x7fff); v16->Update(); delete[] fname; double range[2]; v16->GetOutput()->GetScalarRange(range); vtkSmartPointer shifter = vtkSmartPointer::New(); shifter->SetShift(-1.0 * range[0]); shifter->SetScale(255.0 / (range[1] - range[0])); shifter->SetOutputScalarTypeToUnsignedChar(); shifter->SetInputConnection(v16->GetOutputPort()); shifter->ReleaseDataFlagOff(); shifter->Update(); vtkSmartPointer imageActor = vtkSmartPointer::New(); imageActor->GetMapper()->SetInputConnection(shifter->GetOutputPort()); imageActor->VisibilityOn(); imageActor->SetDisplayExtent(0, 63, 0, 63, 46, 46); imageActor->InterpolateOn(); // Create the RenderWindow, Renderer and both Actors // vtkSmartPointer ren1 = vtkSmartPointer::New(); vtkSmartPointer renWin = vtkSmartPointer::New(); renWin->AddRenderer(ren1); vtkSmartPointer iren = vtkSmartPointer::New(); iren->SetRenderWindow(renWin); // Add the actors to the renderer, set the background and size // ren1->SetBackground(0.1, 0.2, 0.4); ren1->AddActor(imageActor); renWin->SetSize(600, 600); // render the image // ren1->GetActiveCamera()->SetPosition(0, 0, 0); ren1->GetActiveCamera()->SetFocalPoint(0, 0, 1); ren1->GetActiveCamera()->SetViewUp(0, 1, 0); ren1->ResetCamera(); renWin->Render(); vtkSmartPointer contourWidget = vtkSmartPointer::New(); contourWidget->SetInteractor(iren); contourWidget->On(); iren->Initialize(); iren->Start(); return EXIT_SUCCESS; }