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 MITKPointSetVtkMAPPER3D_H_HEADER_INCLUDED_C1907273 00020 #define MITKPointSetVtkMAPPER3D_H_HEADER_INCLUDED_C1907273 00021 00022 #include "mitkCommon.h" 00023 #include "mitkVtkMapper3D.h" 00024 #include "mitkBaseRenderer.h" 00025 00026 class vtkActor; 00027 class vtkPropAssembly; 00028 class vtkAppendPolyData; 00029 class vtkPolyData; 00030 class vtkTubeFilter; 00031 class vtkPolyDataMapper; 00032 00033 namespace mitk { 00034 00035 class PointSet; 00036 00093 class MITK_CORE_EXPORT PointSetVtkMapper3D : public VtkMapper3D 00094 { 00095 public: 00096 mitkClassMacro(PointSetVtkMapper3D, VtkMapper3D); 00097 00098 itkNewMacro(Self); 00099 00100 virtual const mitk::PointSet* GetInput(); 00101 00102 //overwritten from VtkMapper3D to be able to return a 00103 //m_PointsAssembly which is much faster than a vtkAssembly 00104 virtual vtkProp* GetVtkProp(mitk::BaseRenderer* renderer); 00105 virtual void UpdateVtkTransform(mitk::BaseRenderer* renderer); 00106 00107 00108 static void SetDefaultProperties(mitk::DataNode* node, mitk::BaseRenderer* renderer = NULL, bool overwrite = false); 00109 00110 void ReleaseGraphicsResources(vtkWindow *renWin); 00111 00112 protected: 00113 PointSetVtkMapper3D(); 00114 00115 virtual ~PointSetVtkMapper3D(); 00116 00117 virtual void GenerateData(); 00118 virtual void GenerateData(mitk::BaseRenderer* renderer); 00119 virtual void ResetMapper( BaseRenderer* renderer ); 00120 virtual void ApplyProperties(mitk::BaseRenderer* renderer); 00121 virtual void CreateContour(mitk::BaseRenderer* renderer); 00122 virtual void CreateVTKRenderObjects(); 00123 00124 00125 00126 vtkAppendPolyData *m_vtkSelectedPointList; 00127 vtkAppendPolyData *m_vtkUnselectedPointList; 00128 // vtkAppendPolyData *m_vtkContourPolyData; 00129 00130 vtkPolyDataMapper *m_VtkSelectedPolyDataMapper; 00131 vtkPolyDataMapper *m_VtkUnselectedPolyDataMapper; 00132 // vtkPolyDataMapper *m_vtkContourPolyDataMapper; 00133 00134 vtkActor *m_SelectedActor; 00135 vtkActor *m_UnselectedActor; 00136 vtkActor *m_ContourActor; 00137 00138 vtkPropAssembly *m_PointsAssembly; 00139 00140 //help for contour between points 00141 vtkAppendPolyData *m_vtkTextList; 00142 //vtkPolyData *m_Contour; 00143 //vtkTubeFilter *m_TubeFilter; 00144 00145 //variables to be able to log, how many inputs have been added to PolyDatas 00146 unsigned int m_NumberOfSelectedAdded; 00147 unsigned int m_NumberOfUnselectedAdded; 00148 00149 //variables to check if an update of the vtk objects is needed 00150 ScalarType m_PointSize; 00151 ScalarType m_ContourRadius; 00152 }; 00153 00154 00155 } // namespace mitk 00156 00157 #endif /* MITKPointSetVtkMAPPER3D_H_HEADER_INCLUDED_C1907273 */ 00158