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 _MITK_UNSTRUCTURED_GRID_VTK_MAPPER_3D_H_ 00020 #define _MITK_UNSTRUCTURED_GRID_VTK_MAPPER_3D_H_ 00021 00022 #include "mitkCommon.h" 00023 #include "MitkExtExports.h" 00024 #include "mitkVtkMapper3D.h" 00025 #include "mitkUnstructuredGrid.h" 00026 #include "mitkBaseRenderer.h" 00027 00028 #include <vtkAssembly.h> 00029 #include <vtkActor.h> 00030 #include <vtkVolume.h> 00031 #include <vtkDataSetTriangleFilter.h> 00032 00033 #include "vtkUnstructuredGridMapper.h" 00034 #include <vtkUnstructuredGridVolumeRayCastMapper.h> 00035 00036 #if (VTK_MAJOR_VERSION >= 5) 00037 #include <vtkProjectedTetrahedraMapper.h> 00038 #include <vtkUnstructuredGridVolumeZSweepMapper.h> 00039 #endif 00040 00041 00042 namespace mitk { 00043 00044 //##Documentation 00045 //## @brief Vtk-based mapper for UnstructuredGrid 00046 //## 00047 //## @ingroup Mapper 00048 class MitkExt_EXPORT UnstructuredGridVtkMapper3D : public VtkMapper3D 00049 { 00050 public: 00051 00052 mitkClassMacro(UnstructuredGridVtkMapper3D, VtkMapper3D); 00053 00054 itkNewMacro(Self); 00055 00056 virtual const mitk::UnstructuredGrid* GetInput(); 00057 00058 virtual vtkProp* GetVtkProp(mitk::BaseRenderer* renderer); 00059 00060 static void SetDefaultProperties(mitk::DataNode* node, mitk::BaseRenderer* renderer = NULL, bool overwrite = false); 00061 00062 void ApplyProperties(vtkActor* /*actor*/, mitk::BaseRenderer* renderer); 00063 00064 protected: 00065 00066 UnstructuredGridVtkMapper3D(); 00067 00068 virtual ~UnstructuredGridVtkMapper3D(); 00069 00070 virtual void GenerateData(); 00071 virtual void GenerateData(mitk::BaseRenderer* renderer); 00072 virtual void ResetMapper( BaseRenderer* /*renderer*/ ); 00073 00074 void SetProperties(mitk::BaseRenderer* renderer); 00075 00076 vtkAssembly* m_Assembly; 00077 vtkActor* m_Actor; 00078 vtkActor* m_ActorWireframe; 00079 vtkVolume* m_Volume; 00080 00081 vtkDataSetTriangleFilter* m_VtkTriangleFilter; 00082 00083 vtkUnstructuredGridMapper* m_VtkDataSetMapper; 00084 vtkUnstructuredGridMapper* m_VtkDataSetMapper2; 00085 00086 vtkUnstructuredGridVolumeRayCastMapper* m_VtkVolumeRayCastMapper; 00087 00088 #if (VTK_MAJOR_VERSION >= 5) 00089 vtkProjectedTetrahedraMapper* m_VtkPTMapper; 00090 vtkUnstructuredGridVolumeZSweepMapper* m_VtkVolumeZSweepMapper; 00091 #endif 00092 }; 00093 00094 } // namespace mitk 00095 00096 #endif /* _MITK_UNSTRUCTURED_GRID_VTK_MAPPER_3D_H_ */