00001 /*========================================================================= 00002 00003 Program: wxMaracas 00004 Module: $RCSfile: wxMaracasMultipleVolumeRendererManager.h,v $ 00005 Language: C++ 00006 Date: $Date: 2009/07/20 10:06:12 $ 00007 Version: $Revision: 1.3 $ 00008 00009 Copyright: (c) 2002, 2003 00010 License: 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 notice for more information. 00015 00016 =========================================================================*/ 00017 00018 00019 00020 00021 #ifndef __wxMaracasMultipleVolumeRendererManagerH__ 00022 #define __wxMaracasMultipleVolumeRendererManagerH__ 00023 00024 #include <iostream> 00025 #include <vector> 00026 00027 #include "wxMaracasMultipleVolumeRendererManagerData.h" 00028 00029 00030 class wxMaracasMultipleVolumeRendererManager { 00031 00032 public: 00033 wxMaracasMultipleVolumeRendererManager(); 00034 ~wxMaracasMultipleVolumeRendererManager(); 00035 00039 void setRenderer(vtkRenderer* renderer); 00043 int addVolume(vtkImageData* img, std::string dataname) throw (char*); 00044 00048 vtkProp3D* getVolume(std::string filename); 00049 00053 vtkImageData* getImageData(std::string filename); 00054 00058 void addRemoveActor(int propid, bool addremove) throw(char*); 00062 void checkInvariant()throw(char*); 00063 00067 void setVolumeOpacity(int propid, std::vector<double> greylevel,std::vector<double> value) throw(char*); 00071 void setVolumeColor(int volid, std::vector<double> greylevel, 00072 std::vector<double> red, 00073 std::vector<double> green, 00074 std::vector<double> blue); 00075 00079 wxMaracasMultipleVolumeRendererManagerData* getViewData(int id)throw(char*); 00083 void deleteActor(int volumeid)throw (char *); 00084 00085 vtkPiecewiseFunction* GetTransferFunction(int volumeid); 00086 vtkColorTransferFunction* GetColorFunction(int volumeid); 00087 private: 00088 std::vector<wxMaracasMultipleVolumeRendererManagerData*> prop3Dvect; 00089 00090 vtkRenderer* _renderer; 00091 00092 int _idCount; 00093 00094 00095 00096 00097 }; 00098 00099 #endif