VTK/Examples/Cxx/Utilities/FilterProgress

From KitwarePublic

Jump to: navigation, search

FilterProgress.cxx

#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <vtkCallbackCommand.h>
#include <vtkCommand.h>
#include <vtkDelaunay3D.h>
 
void ProgressFunction(vtkObject* caller, long unsigned int eventId, void* clientData, void* callData);
 
int main(int, char *[])
{ 
  vtkSmartPointer<vtkSphereSource> sphereSource =
    vtkSmartPointer<vtkSphereSource>::New();
  sphereSource->Update();
 
 
  vtkSmartPointer<vtkCallbackCommand> progressCallback = 
    vtkSmartPointer<vtkCallbackCommand>::New();
  progressCallback->SetCallback(ProgressFunction);
 
 
  vtkSmartPointer<vtkDelaunay3D> delaunay = 
    vtkSmartPointer<vtkDelaunay3D>::New();
  delaunay->SetInputConnection(sphereSource->GetOutputPort());
  delaunay->AddObserver(vtkCommand::ProgressEvent, progressCallback);
  delaunay->Update();
 
  return EXIT_SUCCESS;
}
 
void ProgressFunction(vtkObject* caller, long unsigned int eventId, void* clientData, void* callData)
{
  vtkDelaunay3D* filter = static_cast<vtkDelaunay3D*>(caller);
  std::cout << "Progress: " << filter->GetProgress() << std::endl;
}

CMakeLists.txt

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