#include <wxMaracasSurfaceRenderingManager.h>
Public Member Functions | |
wxMaracasSurfaceRenderingManager () | |
~wxMaracasSurfaceRenderingManager () | |
void | setRenderer (vtkRenderer *renderer) |
vtkRenderer * | getRenderer () |
void | Update (int pid) throw (char*) |
int | addProp3D (int idTP, vtkProp3D *prop3D, std::string dataname) throw (char*) |
int | addPropMHD (int idTP, vtkImageData *imagedata, std::string dataname) throw (char*) |
void | changeOpacity (int propid, int value) throw (char*) |
void | changeIsoValue (int propid, double value) throw (char*) |
vtkProp3D * | getProp3D (std::string filename) |
vtkImageData * | getImageData (std::string filename) |
vtkImageData * | getImageData () |
void | addRemoveActor (int propid, bool addremove) throw (char*) |
void | addRemoveSurfaceBox (int propid, bool addremove) throw (char*) |
void | checkInvariant () throw (char*) |
wxMaracasSurfaceRenderingManagerData * | getViewData (int id) throw (char*) |
void | setInteractor (vtkRenderWindowInteractor *interactor) |
int | getMaxIsoValue (int propid) throw (char*) |
void | changeColor (int propid, double red, double green, double blue) throw (char*) |
void | deleteActor (int propid) throw (char *) |
void | Transform (vtkMatrix4x4 *tmatrix) |
bool | interactorSet () |
Private Attributes | |
std::vector < wxMaracasSurfaceRenderingManagerData * > | prop3Dvect |
vtkRenderer * | _renderer |
vtkRenderWindowInteractor * | _interactor |
vtkImageData * | image |
int | _idCount |
Definition at line 31 of file wxMaracasSurfaceRenderingManager.h.
wxMaracasSurfaceRenderingManager::wxMaracasSurfaceRenderingManager | ( | ) |
Start of the manager class
Definition at line 23 of file wxMaracasSurfaceRenderingManager.cxx.
References _idCount, _interactor, and _renderer.
00023 { 00024 _renderer = NULL; 00025 _interactor = NULL; 00026 _idCount=0; 00027 }
wxMaracasSurfaceRenderingManager::~wxMaracasSurfaceRenderingManager | ( | ) |
Definition at line 28 of file wxMaracasSurfaceRenderingManager.cxx.
int wxMaracasSurfaceRenderingManager::addProp3D | ( | int | idTP, | |
vtkProp3D * | prop3D, | |||
std::string | dataname | |||
) | throw (char*) |
Adds a prop3D to the manager and returns the identifier
Definition at line 65 of file wxMaracasSurfaceRenderingManager.cxx.
References wxMaracasSurfaceRenderingManagerData::getId(), wxMaracasSurfaceRenderingManagerData::getProp3D(), and wxMaracasSurfaceRenderingManagerData::setId().
Referenced by wxMaracasSurfaceRendering::addProp3D().
00065 { 00066 checkInvariant(); 00067 if(prop3D != NULL){ 00068 wxMaracasSurfaceRenderingManagerData* data = new wxMaracasSurfaceRenderingManagerData(prop3D, dataname, _interactor); 00069 prop3Dvect.push_back(data); 00070 _renderer->AddActor(data->getProp3D()); 00071 if(idTP == -1) 00072 { 00073 data->setId(_idCount); 00074 _idCount++; 00075 } 00076 else 00077 { 00078 data->setId(idTP); 00079 } 00080 return data->getId(); 00081 }else{ 00082 throw "Check vtkProp3D file or input"; 00083 } 00084 return -1; 00085 }
int wxMaracasSurfaceRenderingManager::addPropMHD | ( | int | idTP, | |
vtkImageData * | imagedata, | |||
std::string | dataname | |||
) | throw (char*) |
Adds a prop3D to the manager and returns the identifier
Definition at line 86 of file wxMaracasSurfaceRenderingManager.cxx.
References wxMaracasSurfaceRenderingManagerData::getId(), wxMaracasSurfaceRenderingManagerData::getProp3D(), and wxMaracasSurfaceRenderingManagerData::setId().
Referenced by wxMaracasSurfaceRendering::addPropMHD(), wxMaracasRenderTabbedPanel::addSurface1(), wxMaracasRenderTabbedPanel::addSurface2(), and wxMaracasRenderTabbedPanel::addSurface3().
00086 { 00087 checkInvariant(); 00088 if(imagedata != NULL){ 00089 image = imagedata; 00090 wxMaracasSurfaceRenderingManagerData* data = new wxMaracasSurfaceRenderingManagerDataMhd(imagedata, dataname, _interactor); 00091 prop3Dvect.push_back(data); 00092 _renderer->AddActor(data->getProp3D()); 00093 if(idTP == -1) 00094 { 00095 data->setId(_idCount); 00096 _idCount++; 00097 } 00098 else 00099 { 00100 data->setId(idTP); 00101 } 00102 printf("wxMaracasSurfaceRenderingManager::addPropMHD->idSurfaceRender: %i\n", data->getId()); 00103 return data->getId(); 00104 }else{ 00105 throw "Check ImageData file or input"; 00106 } 00107 return -1; 00108 }
void wxMaracasSurfaceRenderingManager::addRemoveActor | ( | int | propid, | |
bool | addremove | |||
) | throw (char*) |
adds or removes an actor depending of the bool value
Definition at line 112 of file wxMaracasSurfaceRenderingManager.cxx.
References wxMaracasSurfaceRenderingManagerData::getProp3D().
Referenced by wxMaracasSurfaceRendering::addRemoveActor(), wxMaracasRenderTabbedPanel::addRemoveActorSA(), wxMaracasRenderTabbedPanel::addRemoveActorSB(), wxMaracasRenderTabbedPanel::addRemoveActorSC(), wxMaracasRenderTabbedPanel::addSurface1(), wxMaracasRenderTabbedPanel::addSurface2(), wxMaracasRenderTabbedPanel::addSurface3(), wxMaracasRenderTabbedPanel::onCheckBoxSAChange(), wxMaracasRenderTabbedPanel::onCheckBoxSBChange(), and wxMaracasRenderTabbedPanel::onCheckBoxSCChange().
00112 { 00113 checkInvariant(); 00114 00115 wxMaracasSurfaceRenderingManagerData* data = this->getViewData(propid); 00116 if(data->getProp3D()!=NULL){ 00117 if(addremove){ 00118 _renderer->AddViewProp(data->getProp3D()); 00119 }else{ 00120 _renderer->RemoveViewProp(data->getProp3D()); 00121 } 00122 _renderer->Render(); 00123 } 00124 }
void wxMaracasSurfaceRenderingManager::addRemoveSurfaceBox | ( | int | propid, | |
bool | addremove | |||
) | throw (char*) |
adds or removes the surface box depending of the bool value
Definition at line 128 of file wxMaracasSurfaceRenderingManager.cxx.
References wxMaracasSurfaceRenderingManagerData::addRemoveSurfaceBox(), and wxMaracasSurfaceRenderingManagerData::getProp3D().
Referenced by wxMaracasSurfaceRendering::addRemoveSurfaceBox().
00128 { 00129 checkInvariant(); 00130 00131 wxMaracasSurfaceRenderingManagerData* data = this->getViewData(propid); 00132 if(data->getProp3D()!=NULL){ 00133 data->addRemoveSurfaceBox(addremove); 00134 /*if(addremove){ 00135 data-> 00136 _renderer->AddViewProp(data->getProp3D()); 00137 }else{ 00138 _renderer->RemoveViewProp(data->getProp3D()); 00139 } 00140 _renderer->Render();*/ 00141 } 00142 00143 }
void wxMaracasSurfaceRenderingManager::changeColor | ( | int | propid, | |
double | red, | |||
double | green, | |||
double | blue | |||
) | throw (char*) |
Changes the color of the actor
Definition at line 231 of file wxMaracasSurfaceRenderingManager.cxx.
Referenced by wxMaracasSurfaceRendering::changeColor(), wxMaracasRenderTabbedPanel::changeColorA(), wxMaracasRenderTabbedPanel::changeColorB(), and wxMaracasRenderTabbedPanel::changeColorC().
00231 { 00232 checkInvariant(); 00233 this->getViewData(propid)->changeColor(red, green, blue); 00234 00235 _renderer->Render(); 00236 }
void wxMaracasSurfaceRenderingManager::changeIsoValue | ( | int | propid, | |
double | value | |||
) | throw (char*) |
changes the isovalue in a prop3D
Definition at line 161 of file wxMaracasSurfaceRenderingManager.cxx.
Referenced by wxMaracasSurfaceRendering::changeIsoValue(), wxMaracasRenderTabbedPanel::changeIsoValueA(), wxMaracasRenderTabbedPanel::changeIsoValueB(), and wxMaracasRenderTabbedPanel::changeIsoValueC().
00161 { 00162 checkInvariant(); 00163 00164 wxMaracasSurfaceRenderingManagerData* data = this->getViewData(propid); 00165 00166 //_renderer->RemoveActor(data->getProp3D()); 00167 ((wxMaracasSurfaceRenderingManagerDataMhd*)data)->changeIsoValue(value); 00168 //_renderer->AddActor(data->getProp3D()); 00169 00170 _renderer->Render(); 00171 }
void wxMaracasSurfaceRenderingManager::changeOpacity | ( | int | propid, | |
int | value | |||
) | throw (char*) |
Changes the opacity in a prop3D
Definition at line 148 of file wxMaracasSurfaceRenderingManager.cxx.
Referenced by wxMaracasSurfaceRendering::changeOpacity(), wxMaracasRenderTabbedPanel::changeOpacityA(), wxMaracasRenderTabbedPanel::changeOpacityB(), and wxMaracasRenderTabbedPanel::changeOpacityC().
00148 { 00149 checkInvariant(); 00150 00151 00152 this->getViewData(propid)->changeOpacity(value); 00153 00154 _renderer->Render(); 00155 00156 }
void wxMaracasSurfaceRenderingManager::checkInvariant | ( | ) | throw (char*) |
Check if the variables are setted correctly
Definition at line 207 of file wxMaracasSurfaceRenderingManager.cxx.
References _renderer.
00207 { 00208 if(this->_renderer==NULL){ 00209 throw "Renderer not set"; 00210 } 00211 }
void wxMaracasSurfaceRenderingManager::deleteActor | ( | int | propid | ) | throw (char *) |
Definition at line 238 of file wxMaracasSurfaceRenderingManager.cxx.
Referenced by wxMaracasSurfaceRendering::deleteActor(), and wxMaracasRenderTabbedPanel::deleteVolume().
00238 { 00239 checkInvariant(); 00240 00241 this->addRemoveActor(propid, false); 00242 00243 int i,n; 00244 bool exit = false; 00245 for(i = 0; i < (int)(prop3Dvect.size())&&!exit;i++){ 00246 if(prop3Dvect[i]->getId() == propid){ 00247 n=i; 00248 exit = true; 00249 } 00250 } 00251 if(exit){ 00252 wxMaracasSurfaceRenderingManagerData* data = prop3Dvect[n]; 00253 int j; 00254 for(j = i; j < (int)(prop3Dvect.size())-1;j++){ 00255 prop3Dvect[j] = prop3Dvect[j+1]; 00256 } 00257 delete data; 00258 prop3Dvect.pop_back(); 00259 }else{ 00260 00261 throw "id not found in the data"; 00262 } 00263 }
vtkImageData * wxMaracasSurfaceRenderingManager::getImageData | ( | ) |
Gets image data asotiated with the rendering manager
Definition at line 203 of file wxMaracasSurfaceRenderingManager.cxx.
References image.
00203 { 00204 return image; 00205 }
vtkImageData * wxMaracasSurfaceRenderingManager::getImageData | ( | std::string | filename | ) |
loads a MHD file to convert it into an actor
Definition at line 190 of file wxMaracasSurfaceRenderingManager.cxx.
Referenced by wxMaracasRenderTabbedPanel::getSurfAImage(), wxMaracasRenderTabbedPanel::getSurfBImage(), wxMaracasRenderTabbedPanel::getSurfCImage(), wxMaracasSurfaceRendering::loadPropMHD(), and wxMaracasRenderImageTransformation::Translate().
00190 { 00191 if(filename.compare("")!= 0){ 00192 00193 vtkMetaImageReader* reader = vtkMetaImageReader::New(); 00194 reader->SetFileName(filename.c_str()); 00195 reader->Update(); 00196 vtkImageData* img = reader->GetOutput(); 00197 //reader->Delete(); 00198 return img; 00199 } 00200 return NULL; 00201 }
int wxMaracasSurfaceRenderingManager::getMaxIsoValue | ( | int | propid | ) | throw (char*) |
Given the id, return the max iso value from the imagedata
Definition at line 225 of file wxMaracasSurfaceRenderingManager.cxx.
Referenced by wxMaracasSurfaceRendering::addPropMHD(), wxMaracasRenderTabbedPanel::addSurface1(), wxMaracasRenderTabbedPanel::addSurface2(), and wxMaracasRenderTabbedPanel::addSurface3().
00225 { 00226 00227 return ((wxMaracasSurfaceRenderingManagerDataMhd*)this->getViewData(propid))->getMaxGreyLevel(); 00228 00229 }
vtkProp3D * wxMaracasSurfaceRenderingManager::getProp3D | ( | std::string | filename | ) |
loads a prop3D from a nSTL file
Definition at line 173 of file wxMaracasSurfaceRenderingManager.cxx.
Referenced by wxMaracasSurfaceRendering::loadProp3D().
00173 { 00174 if(filename.compare("")!= 0){ 00175 vtkSTLReader *STLReader=vtkSTLReader::New(); 00176 STLReader->SetFileName(filename.c_str()); 00177 STLReader->Update(); 00178 vtkPolyDataMapper* dataMapper = vtkPolyDataMapper::New(); 00179 dataMapper->SetInput(STLReader->GetOutput()); 00180 00181 vtkActor* dataActor = vtkActor::New(); 00182 dataActor->SetMapper(dataMapper); 00183 dataActor->GetProperty()->SetOpacity(1); 00184 00185 return dataActor; 00186 } 00187 return NULL; 00188 }
vtkRenderer * wxMaracasSurfaceRenderingManager::getRenderer | ( | ) |
Gets the renderer which manages the prop3D from the surface render
Gets the renderer to manage the prop3D from the surface render
Definition at line 49 of file wxMaracasSurfaceRenderingManager.cxx.
References _renderer.
00049 { 00050 return _renderer; 00051 }
wxMaracasSurfaceRenderingManagerData * wxMaracasSurfaceRenderingManager::getViewData | ( | int | id | ) | throw (char*) |
Given an id search the data in the vector
Definition at line 213 of file wxMaracasSurfaceRenderingManager.cxx.
Referenced by wxMaracasRenderImageTransformation::Refresh().
00213 { 00214 int i; 00215 for(i = 0; i < (int)(prop3Dvect.size());i++){ 00216 if(prop3Dvect[i]->getId() == id){ 00217 return prop3Dvect[i]; 00218 } 00219 } 00220 throw "id not found in the data"; 00221 00222 return NULL; 00223 }
bool wxMaracasSurfaceRenderingManager::interactorSet | ( | ) |
Definition at line 269 of file wxMaracasSurfaceRenderingManager.cxx.
References _interactor.
Referenced by wxMaracasSurfaceRendering::interactorSet().
00269 { 00270 return _interactor? true:false; 00271 }
void wxMaracasSurfaceRenderingManager::setInteractor | ( | vtkRenderWindowInteractor * | interactor | ) |
Sets the renderer to manage the prop3D from the surface render
Definition at line 41 of file wxMaracasSurfaceRenderingManager.cxx.
References _interactor.
Referenced by wxMaracasSurfaceRendering::setInteractor().
00041 { 00042 _interactor = interactor; 00043 }
void wxMaracasSurfaceRenderingManager::setRenderer | ( | vtkRenderer * | renderer | ) |
Sets the renderer to manage the prop3D from the surface render
Definition at line 34 of file wxMaracasSurfaceRenderingManager.cxx.
References _renderer.
Referenced by wxMaracasSurfaceRendering::setRenderer(), and wxMaracasRenderTabbedPanel::setRenderer().
00034 { 00035 _renderer = renderer; 00036 }
void wxMaracasSurfaceRenderingManager::Transform | ( | vtkMatrix4x4 * | tmatrix | ) |
Definition at line 265 of file wxMaracasSurfaceRenderingManager.cxx.
void wxMaracasSurfaceRenderingManager::Update | ( | int | pid | ) | throw (char*) |
Updates surface
Updates volume
Definition at line 56 of file wxMaracasSurfaceRenderingManager.cxx.
00056 { 00057 wxMaracasSurfaceRenderingManagerData* data = this->getViewData(pid); 00058 ((wxMaracasSurfaceRenderingManagerDataMhd*)data)->UpdateSurface(); 00059 _renderer->Render(); 00060 }
int wxMaracasSurfaceRenderingManager::_idCount [private] |
Definition at line 133 of file wxMaracasSurfaceRenderingManager.h.
Referenced by wxMaracasSurfaceRenderingManager().
vtkRenderWindowInteractor* wxMaracasSurfaceRenderingManager::_interactor [private] |
Definition at line 130 of file wxMaracasSurfaceRenderingManager.h.
Referenced by interactorSet(), setInteractor(), and wxMaracasSurfaceRenderingManager().
vtkRenderer* wxMaracasSurfaceRenderingManager::_renderer [private] |
Definition at line 129 of file wxMaracasSurfaceRenderingManager.h.
Referenced by checkInvariant(), getRenderer(), setRenderer(), and wxMaracasSurfaceRenderingManager().
vtkImageData* wxMaracasSurfaceRenderingManager::image [private] |
Definition at line 131 of file wxMaracasSurfaceRenderingManager.h.
Referenced by getImageData().
std::vector<wxMaracasSurfaceRenderingManagerData*> wxMaracasSurfaceRenderingManager::prop3Dvect [private] |
Definition at line 127 of file wxMaracasSurfaceRenderingManager.h.