]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Mesh.h
...
[cpPlugins.git] / lib / cpPlugins / Mesh.h
index 1c70abac75e1ab6786937ebfa28b239458c1c544..d0416f773c20cc9ea90e6c57743d7b9cd89c86f3 100644 (file)
@@ -3,8 +3,13 @@
 
 #include <cpPlugins/DataObject.h>
 
-// Some forward declarations
-class vtkObject;
+#include <vtkActor.h>
+#include <vtkPolyDataNormals.h>
+#include <vtkPolyData.h>
+#include <vtkPolyDataMapper.h>
+#include <vtkQuadricLODActor.h>
+#include <vtkStripper.h>
+#include <vtkSmartPointer.h>
 
 namespace cpPlugins
 {
@@ -19,6 +24,17 @@ namespace cpPlugins
     typedef itk::SmartPointer< Self >       Pointer;
     typedef itk::SmartPointer< const Self > ConstPointer;
 
+    struct MeshActor
+    {
+      vtkSmartPointer< vtkPolyDataNormals > Normals;
+      vtkSmartPointer< vtkStripper >        Stripper;
+      vtkSmartPointer< vtkPolyDataMapper >  Mapper;
+      vtkSmartPointer< vtkQuadricLODActor > LODActor;
+      vtkSmartPointer< vtkActor >           Actor;
+
+      void SetMesh( vtkPolyData* mesh );
+    };
+
   public:
     itkNewMacro( Self );
     itkTypeMacro( Mesh, DataObject );
@@ -41,6 +57,9 @@ namespace cpPlugins
     // Purposely not implemented
     Mesh( const Self& );
     Self& operator=( const Self& );
+
+  protected:
+    mutable MeshActor m_MeshActor;
   };
 
 } // ecapseman