00001 #ifndef VTKCLIPPING3DDATAVIEWER_H_ 00002 #define VTKCLIPPING3DDATAVIEWER_H_ 00003 00004 #include "wxMPRBaseData.h" 00005 00006 #include "vtkClipPolyData.h" 00007 #include "vtkStripper.h" 00008 #include "vtkLODActor.h" 00009 #include "vtkMarchingCubes.h" 00010 #include "vtkVolumeRayCastMapper.h" 00011 #include "boxSurfaceObserver.h" 00012 #include "vtkVolumeRayCastCompositeFunction.h" 00013 #include <vtkPiecewiseFunction.h> 00014 #include "vtkVolumeProperty.h" 00015 #include "vtkPolyDataMapper.h" 00016 #include "vtkColorTransferFunction.h" 00017 #include "vtkVolume.h" 00018 #include "vtkActor.h" 00019 #include "vtkOutlineFilter.h" 00020 00021 00022 00023 class vtkClipping3DDataViewer { 00024 public: 00025 //---------------------- 00026 //Constructo-Destructor 00027 //---------------------- 00028 vtkClipping3DDataViewer(); 00029 virtual ~vtkClipping3DDataViewer(); 00030 00031 // vtkImageActor* GetImageActor(int id); 00032 vtkActor* GetOutlineActor(); 00033 vtkClipPolyData* GetTissueClipper(int id); 00034 vtkPolyDataMapper* GetTissueMapper(int id); 00035 vtkPlanes* GetTissuePlanes(int id); 00036 vtkStripper* GetTissueStripper(int id); 00037 // vtkGlyph3D* GetGlyph(int id); 00038 vtkLODActor* GetMaceActor(int id); 00039 00040 vtkMarchingCubes *GetMCubes(int idTissue); 00041 00042 virtual void Refresh(); 00043 void RefreshSurface(); 00044 00045 virtual void Configure(); 00046 void Configure_Tissue(); 00047 void Configure_Volume(); 00048 00049 void SetIsovalue(int idTissue, int isoValue); 00050 double GetIsovalue(int idTissue); 00051 00052 vtkVolume *GetVolumeActor(); 00053 vtkVolumeRayCastMapper *GetVolumeMapper(); 00054 vtkPlanes *GetVolumePlanes(); 00055 00056 void SetVtkMPRBaseData(vtkMPRBaseData *vtkmprbasedata); 00057 vtkMPRBaseData* GetVtkMPRBaseData(); 00058 00059 vtkActor *GetTissueActor(int id); 00060 void SetVisibleTissue(int idTissue, bool visible); 00061 bool GetVisibleTissue(int idTissue); 00062 bool GetVisibleVolume(); 00063 void SetVisibleVolume(bool visibleVolume); 00064 00065 void SetRepresentationType(int idTissue, bool representationType); 00066 bool GetRepresentationType(int idTissue); 00067 00068 boxSurfaceObserver *GetObserverS(int idObserverS); 00069 boxSurfaceObserver *GetObserverV(); 00070 00071 //void ReadVolumeFunctions(char *namefile); 00072 void ReadVolumeFunctions(); 00073 void ReadMeshVTK(char *namefile); 00074 00075 00076 //------------------- 00077 //Getters Vectors 00078 //------------------- 00079 00080 std::vector<double>* GetGreyValuesTransferenceFVector(); 00081 std::vector<double>* GetIntensityValuesTransferenceFVector(); 00082 std::vector<double>* GetRedColorsOfColorTransferenceFVector(); 00083 std::vector<double>* GetGreenColorsOfColorTransferenceFVector(); 00084 std::vector<double>* GetBlueColorsOfColorTransferenceFVector(); 00085 std::vector<double>* GetGreyValueColorsOfColorTransferenceFVector(); 00086 00087 void setColorTransferFunction(vtkColorTransferFunction* colortable); 00088 00089 //-------------------------------------- 00090 //Getters transference function 00091 //and color of the transference function 00092 //--------------------------------------- 00093 vtkPiecewiseFunction *GetTransferencefunction(); 00094 vtkColorTransferFunction *GetColorTransferenceFunction(); 00095 00096 00097 00098 private: 00099 00100 vtkMarchingCubes *_mCubes[ VTKMPRDATA_MAXTISSUE ]; 00101 vtkStripper *_tissueStripper[ VTKMPRDATA_MAXTISSUE ]; 00102 vtkPolyDataMapper *_tissueMapper[ VTKMPRDATA_MAXTISSUE ]; 00103 vtkPlanes *_tissuePlanes[ VTKMPRDATA_MAXTISSUE ]; 00104 vtkClipPolyData *_tissueClipper[ VTKMPRDATA_MAXTISSUE ]; 00105 00106 // outline 00107 vtkOutlineFilter *_outlineData; 00108 vtkPolyDataMapper *_mapOutline; 00109 vtkActor *_outline; 00110 00112 vtkPiecewiseFunction *_tfun; 00113 vtkColorTransferFunction *_ctfun; 00114 vtkVolumeRayCastCompositeFunction *_compositeFunction; 00115 vtkPlanes *_volumePlanes; 00116 vtkVolumeRayCastMapper *_volumeMapper; 00117 vtkVolumeProperty *_volumeProperty; 00118 vtkVolume *_newvol; 00119 00120 vtkMPRBaseData *_vtkmprbasedata; 00121 00122 bool _visibleVolume; 00123 bool _representationType[VTKMPRDATA_MAXTISSUE]; 00124 bool _visibleTissue[VTKMPRDATA_MAXTISSUE]; 00125 vtkActor *_tissue[VTKMPRDATA_MAXTISSUE]; 00126 boxSurfaceObserver *_observerV; 00127 boxSurfaceObserver *_observerS[VTKMPRDATA_MAXTISSUE]; 00128 00129 std::vector<double> greyValuesTransferenceFVector; 00130 std::vector<double> intensityValuesTransferenceFVector; 00131 std::vector<double> redColorsOfColorTransferenceFVector; 00132 std::vector<double> greenColorsOfColorTransferenceFVector; 00133 std::vector<double> blueColorsOfColorTransferenceFVector; 00134 std::vector<double> greyValueColorsOfColorTransferenceFVector; 00135 }; 00136 00137 #endif /*VTKCLIPPING3DDATAVIEWER_H_*/