+++ /dev/null
-#include <cmath>
-#include <cstdlib>
-#include <iostream>
-#include <string>
-
-#include <cpm/DataStructures/QuadEdgeMesh.h>
-#include <cpm/IO/MeshReader.h>
-#include <itkRegularSphereMeshSource.h>
-#include <vnl/vnl_math.h>
-
-#include <vtkActor.h>
-#include <vtkCallbackCommand.h>
-#include <vtkProperty.h>
-#include <vtkRenderer.h>
-#include <vtkRenderWindow.h>
-#include <vtkRenderWindowInteractor.h>
-#include <vtkSmartPointer.h>
-#include <cpm/VTK/MeshMapper.h>
-
-// -------------------------------------------------------------------------
-const unsigned int Dimension = 3;
-typedef float TScalar;
-typedef cpm::DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh;
-typedef cpm::VTK::MeshMapper< TMesh > TMeshMapper;
-
-// -------------------------------------------------------------------------
-static void CallbackFunction(
- vtkObject* caller, long unsigned int eventId,
- void* clientData, void* callData
- );
-
-// -------------------------------------------------------------------------
-int main( int argc, char* argv[] )
-{
- TMesh::Pointer mesh;
- if( argc > 1 )
- {
- typedef cpm::IO::MeshReader< TMesh > TReader;
- TReader::Pointer reader = TReader::New( );
- reader->SetFileName( argv[ 1 ] );
- reader->Update( );
- mesh = reader->GetOutput( );
- }
- else
- {
- typedef itk::RegularSphereMeshSource< TMesh > TSphereSource;
- TSphereSource::Pointer source = TSphereSource::New( );
- source->SetResolution( 0 );
- source->Update( );
- mesh = source->GetOutput( );
-
- } // fi
-
- // Map mesh
- vtkSmartPointer< TMeshMapper > mapper =
- vtkSmartPointer< TMeshMapper >::New( );
- mapper->SetInputData( mesh );
-
- // Create actor
- vtkSmartPointer< vtkActor > actor =
- vtkSmartPointer< vtkActor >::New( );
- actor->SetMapper( mapper );
- actor->GetProperty( )->SetColor( 1, 1, 0 );
- actor->GetProperty( )->SetOpacity( 1 );
-
- // Configure visualization objects
- vtkSmartPointer< vtkRenderer > renderer =
- vtkSmartPointer< vtkRenderer >::New( );
- renderer->SetBackground( 0.1, 0.3, 0.5 );
-
- vtkSmartPointer< vtkRenderWindow > window =
- vtkSmartPointer< vtkRenderWindow >::New( );
- window->AddRenderer( renderer );
- window->SetSize( 800, 800 );
-
- // Set up the interaction
- vtkSmartPointer< vtkRenderWindowInteractor > interactor =
- vtkSmartPointer< vtkRenderWindowInteractor >::New( );
- window->SetInteractor( interactor );
-
- // Associate actors
- renderer->AddActor( actor );
-
- // Some callbacks
- vtkSmartPointer< vtkCallbackCommand > callback =
- vtkSmartPointer< vtkCallbackCommand >::New( );
- callback->SetCallback( CallbackFunction );
- renderer->AddObserver( vtkCommand::EndEvent, callback );
-
- // Begin interaction
- window->Render( );
- interactor->Start( );
-
- return( 0 );
-}
-
-// -------------------------------------------------------------------------
-void CallbackFunction(
- vtkObject* caller, long unsigned int eventId,
- void* clientData, void* callData
- )
-{
- vtkRenderer* renderer = static_cast< vtkRenderer* >( caller );
- double timeInSeconds = renderer->GetLastRenderTimeInSeconds( );
- double fps = 1.0 / timeInSeconds;
- std::cout << "FPS: " << fps << std::endl;
-}
-
-// eof - $RCSfile$