]> Creatis software - cpPlugins.git/blob - appli/examples/example_RenderQuadEdgeMeshWithoutPlugins.cxx
...
[cpPlugins.git] / appli / examples / example_RenderQuadEdgeMeshWithoutPlugins.cxx
1 #include <cstdlib>
2 #include <iostream>
3 #include <string>
4
5 #include <cpPlugins/Extensions/DataStructures/QuadEdgeMesh.h>
6 #include <cpPlugins/Extensions/IO/MeshReader.h>
7 #include <cpPlugins/Extensions/Visualization/OpenGLMeshMapper.h>
8
9 #include <vtkActor.h>
10 #include <vtkCallbackCommand.h>
11 #include <vtkProperty.h>
12 #include <vtkRenderer.h>
13 #include <vtkRenderWindow.h>
14 #include <vtkRenderWindowInteractor.h>
15 #include <vtkSmartPointer.h>
16
17 // -------------------------------------------------------------------------
18 const unsigned int Dimension = 3;
19 typedef float TScalar;
20 using namespace cpPlugins::Extensions;
21 typedef DataStructures::QuadEdgeMesh< TScalar, Dimension > TMesh;
22 typedef Visualization::OpenGLMeshMapper< TMesh > TMeshMapper;
23
24 // -------------------------------------------------------------------------
25 int main( int argc, char* argv[] )
26 {
27   if( argc < 2 )
28   {
29     std::cerr
30       << "Usage: " << argv[ 0 ]
31       << " input_mesh"
32       << std::endl;
33     return( 1 );
34
35   } // fi
36
37   typedef IO::MeshReader< TMesh > TReader;
38   TReader::Pointer reader = TReader::New( );
39   reader->SetFileName( argv[ 1 ] );
40   reader->Update( );
41
42   // Map mesh
43   vtkSmartPointer< TMeshMapper > mapper =
44     vtkSmartPointer< TMeshMapper >::New( );
45   mapper->SetInputData( reader->GetOutput( ) );
46
47   // Create actor
48   vtkSmartPointer< vtkActor > actor =
49     vtkSmartPointer< vtkActor >::New( );
50   actor->SetMapper( mapper );
51   actor->GetProperty( )->SetColor( 1, 1, 0 );
52   actor->GetProperty( )->SetOpacity( 0.5 );
53
54   // Configure visualization objects
55   vtkSmartPointer< vtkRenderer > renderer =
56     vtkSmartPointer< vtkRenderer >::New( );
57   renderer->SetBackground( 0.1, 0.3, 0.5 );
58
59   vtkSmartPointer< vtkRenderWindow > window =
60     vtkSmartPointer< vtkRenderWindow >::New( );
61   window->AddRenderer( renderer );
62   window->SetSize( 800, 800 );
63
64   // Set up the interaction
65   vtkSmartPointer< vtkRenderWindowInteractor > interactor =
66     vtkSmartPointer< vtkRenderWindowInteractor >::New( );
67   window->SetInteractor( interactor );
68
69   // Associate actors
70   renderer->AddActor( actor );
71
72   // Begin interaction
73   window->Render( );
74   interactor->Start( );
75
76   return( 0 );
77 }
78
79 // eof - $RCSfile$