VTK/Examples/Cxx/Broken/Widgets/PlaybackWidget

From KitwarePublic

Jump to: navigation, search

PlaybackWidget.cxx

#include "vtkSmartPointer.h"
#include "vtkPlaybackWidget.h"
#include "vtkPlaybackRepresentation.h"
#include "vtkSphereSource.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkCommand.h"
#include "vtkInteractorEventRecorder.h"
 
class vtkSubclassPlaybackRepresentation : public vtkPlaybackRepresentation
{
public:
  static vtkSubclassPlaybackRepresentation *New() {return new vtkSubclassPlaybackRepresentation;}
  virtual void Play() {std::cout << "play\n";}
  virtual void Stop() {std::cout << "stop\n";}
  virtual void ForwardOneFrame() {std::cout << "forward one frame\n";}
  virtual void BackwardOneFrame() {std::cout << "backward one frame\n";}
  virtual void JumpToBeginning() {std::cout << "jump to beginning\n";}
  virtual void JumpToEnd() {std::cout << "jump to end\n";}
};
 
 
int main(int vtkNotUsed(argc), char *vtkNotUsed(argv)[])
{
  // Create the RenderWindow, Renderer and both Actors
  //
  vtkSmartPointer<vtkRenderer> ren1 =
    vtkSmartPointer<vtkRenderer>::New();
  vtkSmartPointer<vtkRenderWindow> renWin =
    vtkSmartPointer<vtkRenderWindow>::New();
  renWin->AddRenderer(ren1);
 
  vtkSmartPointer<vtkRenderWindowInteractor> iren =
    vtkSmartPointer<vtkRenderWindowInteractor>::New();
  iren->SetRenderWindow(renWin);
 
  // Create a test pipeline
  //
  vtkSmartPointer<vtkSphereSource> ss =
    vtkSmartPointer<vtkSphereSource>::New();
  vtkSmartPointer<vtkPolyDataMapper> mapper =
    vtkSmartPointer<vtkPolyDataMapper>::New();
  mapper->SetInput(ss->GetOutput());
  vtkSmartPointer<vtkActor> actor =
    vtkSmartPointer<vtkActor>::New();
  actor->SetMapper(mapper);
 
  // Create the widget
  vtkSmartPointer<vtkSubclassPlaybackRepresentation> rep =
    vtkSmartPointer<vtkSubclassPlaybackRepresentation>::New();
 
  vtkSmartPointer<vtkPlaybackWidget> widget =
    vtkSmartPointer<vtkPlaybackWidget>::New();
  widget->SetInteractor(iren);
  widget->SetRepresentation(rep);
 
  // Add the actors to the renderer, set the background and size
  ren1->AddActor(actor);
  ren1->SetBackground(0.1, 0.2, 0.4);
  renWin->SetSize(300, 300);
 
  // record events
  vtkSmartPointer<vtkInteractorEventRecorder> recorder =
    vtkSmartPointer<vtkInteractorEventRecorder>::New();
  recorder->SetInteractor(iren);
  recorder->SetFileName("record.log");
  recorder->Record();
//  recorder->ReadFromInputStringOn();
//  recorder->SetInputString(eventLog);
 
  iren->Initialize();
  renWin->Render();
  widget->On();
//  recorder->Play();
 
  // Remove the observers so we can go interactive. Without this the "-I"
  // testing option fails.
  recorder->Off();
 
  iren->Start();
 
  return EXIT_SUCCESS;
 
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.6)
 
PROJECT(PlaybackWidget)
 
FIND_PACKAGE(VTK REQUIRED)
INCLUDE(${VTK_USE_FILE})
 
ADD_EXECUTABLE(PlaybackWidget PlaybackWidget.cxx)
TARGET_LINK_LIBRARIES(PlaybackWidget vtkHybrid vtkWidgets)
Personal tools