#include <wxMaracasMultipleVolumeRendererManager.h>
Public Member Functions | |
wxMaracasMultipleVolumeRendererManager () | |
~wxMaracasMultipleVolumeRendererManager () | |
void | setRenderer (vtkRenderer *renderer) |
int | addVolume (vtkImageData *img, std::string dataname) throw (char*) |
vtkProp3D * | getVolume (std::string filename) |
vtkImageData * | getImageData (std::string filename) |
void | addRemoveActor (int propid, bool addremove) throw (char*) |
void | checkInvariant () throw (char*) |
void | setVolumeOpacity (int propid, std::vector< double > greylevel, std::vector< double > value) throw (char*) |
void | setVolumeColor (int volid, std::vector< double > greylevel, std::vector< double > red, std::vector< double > green, std::vector< double > blue) |
wxMaracasMultipleVolumeRendererManagerData * | getViewData (int id) throw (char*) |
void | deleteActor (int volumeid) throw (char *) |
vtkPiecewiseFunction * | GetTransferFunction (int volumeid) |
vtkColorTransferFunction * | GetColorFunction (int volumeid) |
Private Attributes | |
std::vector < wxMaracasMultipleVolumeRendererManagerData * > | prop3Dvect |
vtkRenderer * | _renderer |
int | _idCount |
Definition at line 30 of file wxMaracasMultipleVolumeRendererManager.h.
wxMaracasMultipleVolumeRendererManager::wxMaracasMultipleVolumeRendererManager | ( | ) |
wxMaracasMultipleVolumeRendererManager::~wxMaracasMultipleVolumeRendererManager | ( | ) |
void wxMaracasMultipleVolumeRendererManager::setRenderer | ( | vtkRenderer * | renderer | ) |
Sets the renderer to manage the prop3D from the view
Definition at line 34 of file wxMaracasMultipleVolumeRendererManager.cxx.
References _renderer.
Referenced by wxMaracasMultipleVolumeRendererView::setRenderer().
00034 { 00035 _renderer = renderer; 00036 }
int wxMaracasMultipleVolumeRendererManager::addVolume | ( | vtkImageData * | vol, | |
std::string | dataname | |||
) | throw (char*) |
Adds a volume
Adds a prop3D to the manager and returns the identifier
Definition at line 40 of file wxMaracasMultipleVolumeRendererManager.cxx.
References _idCount, _renderer, checkInvariant(), wxMaracasMultipleVolumeRendererManagerData::getId(), wxMaracasMultipleVolumeRendererManagerData::getProp3D(), prop3Dvect, and wxMaracasMultipleVolumeRendererManagerData::setId().
Referenced by wxMaracasMultipleVolumeRendererView::addVolume().
00040 { 00041 checkInvariant(); 00042 if(vol != NULL){ 00043 wxMaracasMultipleVolumeRendererManagerData* data = new wxMaracasMultipleVolumeRendererManagerData(vol, dataname); 00044 prop3Dvect.push_back(data); 00045 _renderer->AddActor(data->getProp3D()); 00046 data->setId(_idCount); 00047 _idCount++; 00048 return data->getId(); 00049 }else{ 00050 throw "Check mhd imagefile file or input"; 00051 } 00052 return -1; 00053 }
vtkProp3D* wxMaracasMultipleVolumeRendererManager::getVolume | ( | std::string | filename | ) |
loads a prop3D from a nSTL file
vtkImageData * wxMaracasMultipleVolumeRendererManager::getImageData | ( | std::string | filename | ) |
loads a MHD file to convert it into an actor
Definition at line 99 of file wxMaracasMultipleVolumeRendererManager.cxx.
Referenced by wxMaracasMultipleVolumeRendererView::loadVolume().
00099 { 00100 if(filename.compare("")!= 0){ 00101 00102 vtkMetaImageReader* reader = vtkMetaImageReader::New(); 00103 reader->SetFileName(filename.c_str()); 00104 reader->Update(); 00105 vtkImageData* img = reader->GetOutput(); 00106 00107 vtkImageCast* cast = vtkImageCast::New(); 00108 cast->SetInput(img); 00109 cast->SetOutputScalarTypeToUnsignedShort(); 00110 cast->Update(); 00111 //reader->Delete(); 00112 //img->Delete(); 00113 return cast->GetOutput(); 00114 //return img; 00115 } 00116 return NULL; 00117 }
void wxMaracasMultipleVolumeRendererManager::addRemoveActor | ( | int | propid, | |
bool | addremove | |||
) | throw (char*) |
adds or removes an actor depending of the bool value
Definition at line 58 of file wxMaracasMultipleVolumeRendererManager.cxx.
References _renderer, checkInvariant(), wxMaracasMultipleVolumeRendererManagerData::getProp3D(), and getViewData().
Referenced by wxMaracasMultipleVolumeRendererView::addRemoveActor(), and deleteActor().
00058 { 00059 checkInvariant(); 00060 00061 wxMaracasMultipleVolumeRendererManagerData* data = this->getViewData(propid); 00062 if(data->getProp3D()!=NULL){ 00063 if(addremove){ 00064 _renderer->AddViewProp(data->getProp3D()); 00065 }else{ 00066 _renderer->RemoveViewProp(data->getProp3D()); 00067 } 00068 _renderer->Render(); 00069 } 00070 00071 }
void wxMaracasMultipleVolumeRendererManager::checkInvariant | ( | ) | throw (char*) |
Check if the variables are setted correctly
Definition at line 119 of file wxMaracasMultipleVolumeRendererManager.cxx.
Referenced by addRemoveActor(), addVolume(), deleteActor(), setVolumeColor(), and setVolumeOpacity().
void wxMaracasMultipleVolumeRendererManager::setVolumeOpacity | ( | int | propid, | |
std::vector< double > | greylevel, | |||
std::vector< double > | value | |||
) | throw (char*) |
Set Volume Opacity
Changes the opacity in a prop3D
Definition at line 75 of file wxMaracasMultipleVolumeRendererManager.cxx.
References _renderer, checkInvariant(), getViewData(), and wxMaracasMultipleVolumeRendererManagerData::setVolumeOpacity().
Referenced by wxMaracasMultipleVolumeRendererView::SetValuesPointsFunction().
00075 { 00076 checkInvariant(); 00077 00078 this->getViewData(propid)->setVolumeOpacity(greylevel, value); 00079 00080 _renderer->Render(); 00081 00082 }
void wxMaracasMultipleVolumeRendererManager::setVolumeColor | ( | int | volid, | |
std::vector< double > | greylevel, | |||
std::vector< double > | red, | |||
std::vector< double > | green, | |||
std::vector< double > | blue | |||
) |
Set Volume Color
Definition at line 87 of file wxMaracasMultipleVolumeRendererManager.cxx.
References _renderer, checkInvariant(), getViewData(), and wxMaracasMultipleVolumeRendererManagerData::setVolumeColor().
Referenced by wxMaracasMultipleVolumeRendererView::SetValuesColorPointsFunction().
00091 { 00092 checkInvariant(); 00093 00094 this->getViewData(volid)->setVolumeColor(greylevel, red, green, blue); 00095 00096 _renderer->Render(); 00097 }
wxMaracasMultipleVolumeRendererManagerData * wxMaracasMultipleVolumeRendererManager::getViewData | ( | int | id | ) | throw (char*) |
Given an id search the data in the vector
Definition at line 125 of file wxMaracasMultipleVolumeRendererManager.cxx.
References prop3Dvect.
Referenced by addRemoveActor(), GetColorFunction(), GetTransferFunction(), setVolumeColor(), and setVolumeOpacity().
00125 { 00126 int i; 00127 for(i = 0; i < (int)(prop3Dvect.size());i++){ 00128 if(prop3Dvect[i]->getId() == id){ 00129 return prop3Dvect[i]; 00130 } 00131 } 00132 throw "id not found in the data"; 00133 00134 return NULL; 00135 }
void wxMaracasMultipleVolumeRendererManager::deleteActor | ( | int | volumeid | ) | throw (char *) |
Definition at line 137 of file wxMaracasMultipleVolumeRendererManager.cxx.
References addRemoveActor(), checkInvariant(), and prop3Dvect.
Referenced by wxMaracasMultipleVolumeRendererView::deleteVolume().
00137 { 00138 checkInvariant(); 00139 00140 this->addRemoveActor(propid, false); 00141 00142 int i,n; 00143 bool exit = false; 00144 for(i = 0; i < (int)(prop3Dvect.size())&&!exit;i++){ 00145 if(prop3Dvect[i]->getId() == propid){ 00146 n=i; 00147 exit = true; 00148 } 00149 } 00150 if(exit){ 00151 wxMaracasMultipleVolumeRendererManagerData* data = prop3Dvect[n]; 00152 int j; 00153 for(j = i; j < (int)(prop3Dvect.size())-1;j++){ 00154 prop3Dvect[j] = prop3Dvect[j+1]; 00155 } 00156 delete data; 00157 prop3Dvect.pop_back(); 00158 }else{ 00159 throw "id not found in the data"; 00160 } 00161 00162 }
vtkPiecewiseFunction * wxMaracasMultipleVolumeRendererManager::GetTransferFunction | ( | int | volumeid | ) |
Definition at line 164 of file wxMaracasMultipleVolumeRendererManager.cxx.
References wxMaracasMultipleVolumeRendererManagerData::GetTransferFunction(), and getViewData().
Referenced by wxMaracasMultipleVolumeRendererView::GetTransferFunction().
00164 { 00165 return getViewData(volumeid)->GetTransferFunction(); 00166 }
vtkColorTransferFunction * wxMaracasMultipleVolumeRendererManager::GetColorFunction | ( | int | volumeid | ) |
Definition at line 167 of file wxMaracasMultipleVolumeRendererManager.cxx.
References wxMaracasMultipleVolumeRendererManagerData::GetColorFunction(), and getViewData().
Referenced by wxMaracasMultipleVolumeRendererView::GetColorFunction().
00167 { 00168 00169 return getViewData(volumeid)->GetColorFunction(); 00170 }
std::vector<wxMaracasMultipleVolumeRendererManagerData*> wxMaracasMultipleVolumeRendererManager::prop3Dvect [private] |
Definition at line 88 of file wxMaracasMultipleVolumeRendererManager.h.
Referenced by addVolume(), deleteActor(), and getViewData().
vtkRenderer* wxMaracasMultipleVolumeRendererManager::_renderer [private] |
Definition at line 90 of file wxMaracasMultipleVolumeRendererManager.h.
Referenced by addRemoveActor(), addVolume(), setRenderer(), setVolumeColor(), setVolumeOpacity(), and wxMaracasMultipleVolumeRendererManager().
int wxMaracasMultipleVolumeRendererManager::_idCount [private] |
Definition at line 92 of file wxMaracasMultipleVolumeRendererManager.h.
Referenced by addVolume(), and wxMaracasMultipleVolumeRendererManager().