00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date$ 00006 Version: $Revision$ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 00019 #ifndef MITKMESHVTKMAPPER3D_H_HEADER_INCLUDED 00020 #define MITKMESHVTKMAPPER3D_H_HEADER_INCLUDED 00021 00022 #include "mitkCommon.h" 00023 #include "MitkExtExports.h" 00024 #include "mitkVtkMapper3D.h" 00025 #include "mitkMesh.h" 00026 #include "mitkBaseRenderer.h" 00027 00028 #include <vtkSphereSource.h> 00029 #include <vtkAppendPolyData.h> 00030 #include <vtkPolyData.h> 00031 #include <vtkPoints.h> 00032 #include <vtkPointData.h> 00033 #include <vtkCellArray.h> 00034 #include <vtkFloatArray.h> 00035 #include <vtkTubeFilter.h> 00036 #include <vtkVectorText.h> 00037 #include <vtkTextSource.h> 00038 #include <vtkLinearTransform.h> 00039 #include <vtkTransformPolyDataFilter.h> 00040 00041 00042 class vtkActor; 00043 class vtkAssembly; 00044 class vtkFollower; 00045 class vtkPolyDataMapper; 00046 class vtkPropAssembly; 00047 00048 namespace mitk { 00049 00054 class MitkExt_EXPORT MeshVtkMapper3D : public VtkMapper3D 00055 { 00056 public: 00057 00058 mitkClassMacro(MeshVtkMapper3D, VtkMapper3D); 00059 00060 itkNewMacro(Self); 00061 00062 virtual const mitk::Mesh* GetInput(); 00063 00064 virtual vtkProp* GetVtkProp(mitk::BaseRenderer *renderer); 00065 virtual void UpdateVtkTransform(mitk::BaseRenderer *renderer); 00066 00067 protected: 00068 MeshVtkMapper3D(); 00069 00070 virtual ~MeshVtkMapper3D(); 00071 00072 virtual void GenerateData(); 00073 00074 virtual void GenerateData(mitk::BaseRenderer* renderer); 00075 00076 virtual void ResetMapper( BaseRenderer* renderer ); 00077 00078 vtkPropAssembly* m_PropAssembly; 00079 00080 vtkActor *m_SpheresActor; 00081 vtkActor *m_ContourActor; 00082 vtkPolyDataMapper* m_ContourMapper; 00083 vtkPolyDataMapper* m_SpheresMapper; 00084 00085 vtkPolyDataMapper* m_TextVtkPolyDataMapper; 00086 00087 vtkAppendPolyData *m_Spheres; 00088 vtkPolyData *m_Contour; 00089 }; 00090 00091 } // namespace mitk 00092 00093 #endif /* MITKMESHVTKMAPPER3D_H_HEADER_INCLUDED*/