VTK/Examples/Cxx/Interaction/TrackballActor
From KitwarePublic
Jump to navigationJump to searchThis example shows how to visualize data in "trackball" mode. That is, click and drag actors is the way to interact.
Contrast this with Trackball Camera.
Contents
TrackballActor.cxx
#include <vtkSmartPointer.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkPolyData.h>
#include <vtkSphereSource.h>
#include <vtkConeSource.h>
#include <vtkInteractorStyleTrackballActor.h>
int main (int, char *[])
{
// Create a sphere
vtkSmartPointer<vtkSphereSource> sphereSource =
vtkSmartPointer<vtkSphereSource>::New();
sphereSource->SetCenter(1.0, 0.0, 0.0);
sphereSource->Update();
// Create a mapper and actor
vtkSmartPointer<vtkPolyDataMapper> sphereMapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
sphereMapper->SetInputConnection(sphereSource->GetOutputPort());
vtkSmartPointer<vtkActor> sphereActor =
vtkSmartPointer<vtkActor>::New();
sphereActor->SetMapper(sphereMapper);
// Create a cone
vtkSmartPointer<vtkConeSource> coneSource =
vtkSmartPointer<vtkConeSource>::New();
// Create a mapper and actor
vtkSmartPointer<vtkPolyDataMapper> coneMapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
coneMapper->SetInputConnection(coneSource->GetOutputPort());
vtkSmartPointer<vtkActor> coneActor =
vtkSmartPointer<vtkActor>::New();
coneActor->SetMapper(coneMapper);
// A renderer and render window
vtkSmartPointer<vtkRenderer> renderer =
vtkSmartPointer<vtkRenderer>::New();
vtkSmartPointer<vtkRenderWindow> renderWindow =
vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
// An interactor
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);
// Add the actors to the scene
renderer->AddActor(sphereActor);
renderer->AddActor(coneActor);
renderer->SetBackground(.1, .2, .3); // Background color dark blue
// Render
renderWindow->SetWindowName("Trackball Actor");
renderWindow->Render();
vtkSmartPointer<vtkInteractorStyleTrackballActor> style =
vtkSmartPointer<vtkInteractorStyleTrackballActor>::New();
renderWindowInteractor->SetInteractorStyle( style );
// Begin mouse interaction
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}
Please try the new VTKExamples website.
CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
PROJECT(TrackballActor)
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
add_executable(TrackballActor MACOSX_BUNDLE TrackballActor.cxx)
if(VTK_LIBRARIES)
target_link_libraries(TrackballActor ${VTK_LIBRARIES})
else()
target_link_libraries(TrackballActor vtkHybrid vtkWidgets)
endif()
Download and Build TrackballActor
Click here to download TrackballActor. and its CMakeLists.txt file.
Once the tarball TrackballActor.tar has been downloaded and extracted,
cd TrackballActor/build
- If VTK is installed:
cmake ..
- If VTK is not installed but compiled on your system, you will need to specify the path to your VTK build:
cmake -DVTK_DIR:PATH=/home/me/vtk_build ..
Build the project:
make
and run it:
./TrackballActor
WINDOWS USERS PLEASE NOTE: Be sure to add the VTK bin directory to your path. This will resolve the VTK dll's at run time.
Color.