00001 #ifndef wxMaracasMultipleVolumeRendererManagerData_H_ 00002 #define wxMaracasMultipleVolumeRendererManagerData_H_ 00003 00004 #include <vtkVolumeRayCastCompositeFunction.h> 00005 #include <vtkPlanes.h> 00006 #include <vtkVolumeRayCastMapper.h> 00007 #include <vtkVolumeProperty.h> 00008 #include <vtkVolume.h> 00009 #include <vtkPiecewiseFunction.h> 00010 #include <vtkColorTransferFunction.h> 00011 #include <vtkImageData.h> 00012 #include <vtkProp3D.h> 00013 #include <vtkRenderer.h> 00014 00015 #include <vector> 00016 00017 00018 class wxMaracasMultipleVolumeRendererManagerData { 00019 00020 public: 00021 wxMaracasMultipleVolumeRendererManagerData(vtkImageData* vol, std::string dataname=""); 00022 ~wxMaracasMultipleVolumeRendererManagerData(); 00023 00027 void checkInvariant(); 00031 vtkProp3D* getProp3D(); 00035 int getId(); 00039 void setId(int propid); 00043 std::string getDataname(); 00047 void setDataname(std::string dataname); 00048 00049 00053 void setVolumeColor(std::vector<double>& greylevel, 00054 std::vector<double>& red, 00055 std::vector<double>& green, 00056 std::vector<double>& blue); 00057 00061 void setVolumeOpacity(std::vector<double> greylevel,std::vector<double> value); 00062 00063 vtkPiecewiseFunction* GetTransferFunction(){ 00064 return _tfun; 00065 } 00066 vtkColorTransferFunction* GetColorFunction(){ 00067 return _ctfun; 00068 } 00069 00070 protected: 00074 vtkImageData* _vol; 00078 std::string _dataname; 00079 00080 00081 private: 00082 00083 /* 00084 * id of the data 00085 */ 00086 int _id; 00087 00088 vtkVolumeRayCastCompositeFunction *_compositeFunction; 00089 vtkPlanes *_volumePlanes; 00090 vtkVolumeRayCastMapper *_volumeMapper; 00091 vtkVolumeProperty *_volumeProperty; 00092 vtkVolume *_newvol; 00093 vtkPiecewiseFunction* _tfun; 00094 vtkColorTransferFunction* _ctfun; 00095 00096 00097 }; 00098 00099 #endif /*wxMaracasMultipleVolumeRendererManagerData_H_*/