#include <wxMaracasMultipleVolumeRendererManager.h>
Public Member Functions | |
wxMaracasMultipleVolumeRendererManager () | |
~wxMaracasMultipleVolumeRendererManager () | |
void | setRenderer (vtkRenderer *renderer) |
vtkRenderer * | getRenderer () |
int | addVolume (int idTP, vtkImageData *img, std::string dataname) throw (char*) |
vtkProp3D * | getVolume (std::string filename) |
vtkImageData * | getImageData (std::string filename) |
vtkImageData * | getImageData () |
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) throw (char*) |
wxMaracasMultipleVolumeRendererManagerData * | getViewData (int id) throw (char*) |
void | changeCompositeMIPFunction (int id, int function) throw (char *) |
void | deleteActor (int volumeid) throw (char *) |
void | Update (int propid) |
vtkPiecewiseFunction * | GetTransferFunction (int volumeid) |
vtkColorTransferFunction * | GetColorFunction (int volumeid) |
Private Attributes | |
std::vector < wxMaracasMultipleVolumeRendererManagerData * > | prop3Dvect |
vtkRenderer * | _renderer |
vtkImageData * | image |
int | _idCount |
Definition at line 31 of file wxMaracasMultipleVolumeRendererManager.h.
wxMaracasMultipleVolumeRendererManager::wxMaracasMultipleVolumeRendererManager | ( | ) |
wxMaracasMultipleVolumeRendererManager::~wxMaracasMultipleVolumeRendererManager | ( | ) |
Definition at line 28 of file wxMaracasMultipleVolumeRendererManager.cxx.
void wxMaracasMultipleVolumeRendererManager::addRemoveActor | ( | int | propid, | |
bool | addremove | |||
) | throw (char*) |
adds or removes an actor depending of the bool value
Definition at line 84 of file wxMaracasMultipleVolumeRendererManager.cxx.
References wxMaracasMultipleVolumeRendererManagerData::getProp3D().
Referenced by wxMaracasMultipleVolumeRendererView::addRemoveActor(), wxMaracasRenderTabbedPanel::addRemoveActorV(), wxMaracasRenderTabbedPanel::addVolume(), and wxMaracasRenderTabbedPanel::onCheckBoxVChange().
00084 { 00085 checkInvariant(); 00086 00087 wxMaracasMultipleVolumeRendererManagerData* data = this->getViewData(propid); 00088 if(data->getProp3D()!=NULL){ 00089 if(addremove){ 00090 _renderer->AddViewProp(data->getProp3D()); 00091 }else{ 00092 _renderer->RemoveViewProp(data->getProp3D()); 00093 } 00094 _renderer->Render(); 00095 } 00096 00097 }
int wxMaracasMultipleVolumeRendererManager::addVolume | ( | int | idTP, | |
vtkImageData * | vol, | |||
std::string | dataname | |||
) | throw (char*) |
Adds a volume
Adds a prop3D to the manager and returns the identifier
Definition at line 57 of file wxMaracasMultipleVolumeRendererManager.cxx.
References wxMaracasMultipleVolumeRendererManagerData::getId(), wxMaracasMultipleVolumeRendererManagerData::getProp3D(), and wxMaracasMultipleVolumeRendererManagerData::setId().
Referenced by wxMaracasRenderTabbedPanel::addVolume(), and wxMaracasMultipleVolumeRendererView::addVolume().
00057 { 00058 checkInvariant(); 00059 image = vol; 00060 if(vol != NULL){ 00061 wxMaracasMultipleVolumeRendererManagerData* data = new wxMaracasMultipleVolumeRendererManagerData(vol, dataname); 00062 prop3Dvect.push_back(data); 00063 _renderer->AddActor(data->getProp3D()); 00064 if(idTP == -1) 00065 { 00066 data->setId(_idCount); 00067 _idCount++; 00068 } 00069 else 00070 { 00071 data->setId(idTP); 00072 } 00073 printf("wxMaracasMultipleVolumeRendererManager::addVolume->idVolumeRenderer: %i\n", data->getId()); 00074 return data->getId(); 00075 }else{ 00076 throw "Check mhd imagefile file or input"; 00077 } 00078 return -1; 00079 }
void wxMaracasMultipleVolumeRendererManager::changeCompositeMIPFunction | ( | int | id, | |
int | function | |||
) | throw (char *) |
Definition at line 201 of file wxMaracasMultipleVolumeRendererManager.cxx.
Referenced by wxMaracasMultipleVolumeRendererView::changeCompositeMIPFunction().
00201 { 00202 getViewData(id)->changeCompositeMIPFunction(function); 00203 }
void wxMaracasMultipleVolumeRendererManager::checkInvariant | ( | ) | throw (char*) |
Check if the variables are setted correctly
Definition at line 148 of file wxMaracasMultipleVolumeRendererManager.cxx.
References _renderer.
00148 { 00149 if(this->_renderer==NULL){ 00150 throw "Renderer not set"; 00151 } 00152 }
void wxMaracasMultipleVolumeRendererManager::deleteActor | ( | int | volumeid | ) | throw (char *) |
Deletes given actor
Definition at line 166 of file wxMaracasMultipleVolumeRendererManager.cxx.
Referenced by wxMaracasRenderTabbedPanel::deleteVolume(), and wxMaracasMultipleVolumeRendererView::deleteVolume().
00166 { 00167 checkInvariant(); 00168 00169 this->addRemoveActor(propid, false); 00170 00171 int i,n; 00172 bool exit = false; 00173 for(i = 0; i < (int)(prop3Dvect.size())&&!exit;i++){ 00174 if(prop3Dvect[i]->getId() == propid){ 00175 n=i; 00176 exit = true; 00177 } 00178 } 00179 if(exit){ 00180 wxMaracasMultipleVolumeRendererManagerData* data = prop3Dvect[n]; 00181 int j; 00182 for(j = i; j < (int)(prop3Dvect.size())-1;j++){ 00183 prop3Dvect[j] = prop3Dvect[j+1]; 00184 } 00185 delete data; 00186 prop3Dvect.pop_back(); 00187 }else{ 00188 throw "id not found in the data"; 00189 } 00190 00191 }
vtkColorTransferFunction * wxMaracasMultipleVolumeRendererManager::GetColorFunction | ( | int | volumeid | ) |
Definition at line 196 of file wxMaracasMultipleVolumeRendererManager.cxx.
References wxMaracasMultipleVolumeRendererManagerData::GetColorFunction(), and getViewData().
Referenced by wxMaracasRenderTabbedPanel::GetColorFunction(), and wxMaracasMultipleVolumeRendererView::GetColorFunction().
00196 { 00197 00198 return getViewData(volumeid)->GetColorFunction(); 00199 }
vtkImageData * wxMaracasMultipleVolumeRendererManager::getImageData | ( | ) |
Gets image data asotiated with the rendering manager
Definition at line 144 of file wxMaracasMultipleVolumeRendererManager.cxx.
References image.
00144 { 00145 return image; 00146 }
vtkImageData * wxMaracasMultipleVolumeRendererManager::getImageData | ( | std::string | filename | ) |
loads a MHD file to convert it into an actor
Definition at line 124 of file wxMaracasMultipleVolumeRendererManager.cxx.
Referenced by wxMaracasRenderTabbedPanel::createControls(), wxMaracasRenderTabbedPanel::getVolImage(), wxMaracasMultipleVolumeRendererView::loadVolume(), wxMaracasMultipleVolumeRendererPanel::onViewImage(), and wxMaracasRenderImageTransformation::Translate().
00124 { 00125 if(filename.compare("")!= 0){ 00126 00127 vtkMetaImageReader* reader = vtkMetaImageReader::New(); 00128 reader->SetFileName(filename.c_str()); 00129 reader->Update(); 00130 vtkImageData* img = reader->GetOutput(); 00131 00132 vtkImageCast* cast = vtkImageCast::New(); 00133 cast->SetInput(img); 00134 cast->SetOutputScalarTypeToUnsignedShort(); 00135 cast->Update(); 00136 //reader->Delete(); 00137 //img->Delete(); 00138 return cast->GetOutput(); 00139 //return img; 00140 } 00141 return NULL; 00142 }
vtkRenderer * wxMaracasMultipleVolumeRendererManager::getRenderer | ( | ) |
Gets the renderer to manage the prop3D from the view
Gets the renderer which manage the prop3D from the view
Definition at line 41 of file wxMaracasMultipleVolumeRendererManager.cxx.
References _renderer.
00041 { 00042 return _renderer; 00043 }
vtkPiecewiseFunction * wxMaracasMultipleVolumeRendererManager::GetTransferFunction | ( | int | volumeid | ) |
Definition at line 193 of file wxMaracasMultipleVolumeRendererManager.cxx.
References wxMaracasMultipleVolumeRendererManagerData::GetTransferFunction(), and getViewData().
Referenced by wxMaracasRenderTabbedPanel::GetTransferFunction(), and wxMaracasMultipleVolumeRendererView::GetTransferFunction().
00193 { 00194 return getViewData(volumeid)->GetTransferFunction(); 00195 }
wxMaracasMultipleVolumeRendererManagerData * wxMaracasMultipleVolumeRendererManager::getViewData | ( | int | id | ) | throw (char*) |
Given an id search the data in the vector
Definition at line 154 of file wxMaracasMultipleVolumeRendererManager.cxx.
Referenced by GetColorFunction(), GetTransferFunction(), wxMaracasRenderImageTransformation::Refresh(), and Update().
00154 { 00155 int i; 00156 for(i = 0; i < (int)(prop3Dvect.size());i++){ 00157 if(prop3Dvect[i]->getId() == id){ 00158 return prop3Dvect[i]; 00159 } 00160 } 00161 throw "id not found in the data"; 00162 00163 return NULL; 00164 }
vtkProp3D* wxMaracasMultipleVolumeRendererManager::getVolume | ( | std::string | filename | ) |
loads a prop3D from a nSTL file
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 wxMaracasRenderTabbedPanel::setRenderer(), and wxMaracasMultipleVolumeRendererView::setRenderer().
00034 { 00035 _renderer = renderer; 00036 }
void wxMaracasMultipleVolumeRendererManager::setVolumeColor | ( | int | volid, | |
std::vector< double > | greylevel, | |||
std::vector< double > | red, | |||
std::vector< double > | green, | |||
std::vector< double > | blue | |||
) | throw (char*) |
Set Volume Color
Definition at line 113 of file wxMaracasMultipleVolumeRendererManager.cxx.
Referenced by wxMaracasRenderTabbedPanel::SetValuesColorPointsFunction(), and wxMaracasMultipleVolumeRendererView::SetValuesColorPointsFunction().
00116 { 00117 checkInvariant(); 00118 00119 this->getViewData(volid)->setVolumeColor(greylevel, red, green, blue); 00120 00121 _renderer->Render(); 00122 }
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 101 of file wxMaracasMultipleVolumeRendererManager.cxx.
Referenced by wxMaracasRenderTabbedPanel::SetValuesPointsFunction(), and wxMaracasMultipleVolumeRendererView::SetValuesPointsFunction().
00101 { 00102 checkInvariant(); 00103 00104 this->getViewData(propid)->setVolumeOpacity(greylevel, value); 00105 00106 _renderer->Render(); 00107 00108 }
void wxMaracasMultipleVolumeRendererManager::Update | ( | int | ppid | ) |
Updates given volume
Updates Volume
Definition at line 48 of file wxMaracasMultipleVolumeRendererManager.cxx.
References _renderer, getViewData(), and wxMaracasMultipleVolumeRendererManagerData::Update().
00048 { 00049 wxMaracasMultipleVolumeRendererManagerData* data = this->getViewData(ppid); 00050 data->Update(); 00051 _renderer->Render(); 00052 }
int wxMaracasMultipleVolumeRendererManager::_idCount [private] |
Definition at line 114 of file wxMaracasMultipleVolumeRendererManager.h.
Referenced by wxMaracasMultipleVolumeRendererManager().
vtkRenderer* wxMaracasMultipleVolumeRendererManager::_renderer [private] |
Definition at line 111 of file wxMaracasMultipleVolumeRendererManager.h.
Referenced by checkInvariant(), getRenderer(), setRenderer(), Update(), and wxMaracasMultipleVolumeRendererManager().
vtkImageData* wxMaracasMultipleVolumeRendererManager::image [private] |
Definition at line 112 of file wxMaracasMultipleVolumeRendererManager.h.
Referenced by getImageData().
std::vector<wxMaracasMultipleVolumeRendererManagerData*> wxMaracasMultipleVolumeRendererManager::prop3Dvect [private] |
Definition at line 109 of file wxMaracasMultipleVolumeRendererManager.h.