]> Creatis software - cpPlugins.git/blobdiff - appli/examples/example_RenderQuadEdgeMeshWithoutPlugins.cxx
Examples with meshes (read and render, with and without plugins) added.
[cpPlugins.git] / appli / examples / example_RenderQuadEdgeMeshWithoutPlugins.cxx
diff --git a/appli/examples/example_RenderQuadEdgeMeshWithoutPlugins.cxx b/appli/examples/example_RenderQuadEdgeMeshWithoutPlugins.cxx
new file mode 100644 (file)
index 0000000..35d9ab6
--- /dev/null
@@ -0,0 +1,78 @@
+#include <cstdlib>
+#include <iostream>
+#include <string>
+
+#include <cpPlugins/Extensions/QuadEdgeMesh.h>
+#include <cpPlugins/Extensions/MeshReader.h>
+#include <cpPlugins/Extensions/OpenGLMeshMapper.h>
+
+#include <vtkActor.h>
+#include <vtkCallbackCommand.h>
+#include <vtkProperty.h>
+#include <vtkRenderer.h>
+#include <vtkRenderWindow.h>
+#include <vtkRenderWindowInteractor.h>
+#include <vtkSmartPointer.h>
+
+// -------------------------------------------------------------------------
+const unsigned int Dimension = 3;
+typedef float TScalar;
+typedef cpPlugins::Extensions::QuadEdgeMesh< TScalar, Dimension > TMesh;
+typedef cpPlugins::Extensions::OpenGLMeshMapper< TMesh > TMeshMapper;
+
+// -------------------------------------------------------------------------
+int main( int argc, char* argv[] )
+{
+  if( argc < 2 )
+  {
+    std::cerr
+      << "Usage: " << argv[ 0 ]
+      << " input_mesh"
+      << std::endl;
+    return( 1 );
+
+  } // fi
+
+  typedef cpPlugins::Extensions::MeshReader< TMesh > TReader;
+  TReader::Pointer reader = TReader::New( );
+  reader->SetFileName( argv[ 1 ] );
+  reader->Update( );
+
+  // Map mesh
+  vtkSmartPointer< TMeshMapper > mapper =
+    vtkSmartPointer< TMeshMapper >::New( );
+  mapper->SetInputData( reader->GetOutput( ) );
+
+  // Create actor
+  vtkSmartPointer< vtkActor > actor =
+    vtkSmartPointer< vtkActor >::New( );
+  actor->SetMapper( mapper );
+  actor->GetProperty( )->SetColor( 1, 1, 0 );
+  actor->GetProperty( )->SetOpacity( 0.5 );
+
+  // 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 );
+
+  // Begin interaction
+  window->Render( );
+  interactor->Start( );
+
+  return( 0 );
+}
+
+// eof - $RCSfile$