#include <wxMaracasIRMViewManager.h>
Public Member Functions | |
wxMaracasIRMViewManager () | |
~wxMaracasIRMViewManager () | |
void | setRenderer (vtkRenderer *renderer) |
int | addProp3D (vtkProp3D *prop3D, std::string dataname) throw (char*) |
int | addPropMHD (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) |
void | addRemoveActor (int propid, bool addremove) throw (char*) |
void | checkInvariant () throw (char*) |
wxMaracasIRMViewManagerData * | getViewData (int id) throw (char*) |
int | getMaxIsoValue (int propid) throw (char*) |
void | changeColor (int propid, double red, double green, double blue) throw (char*) |
void | deleteActor (int propid) throw (char *) |
Private Attributes | |
std::vector < wxMaracasIRMViewManagerData * > | prop3Dvect |
vtkRenderer * | _renderer |
int | _idCount |
Definition at line 30 of file wxMaracasIRMViewManager.h.
wxMaracasIRMViewManager::wxMaracasIRMViewManager | ( | ) |
wxMaracasIRMViewManager::~wxMaracasIRMViewManager | ( | ) |
void wxMaracasIRMViewManager::setRenderer | ( | vtkRenderer * | renderer | ) |
Sets the renderer to manage the prop3D from the view
Definition at line 34 of file wxMaracasIRMViewManager.cxx.
References _renderer.
Referenced by wxMaracasIRMView::setRenderer().
00034 { 00035 _renderer = renderer; 00036 }
int wxMaracasIRMViewManager::addProp3D | ( | vtkProp3D * | prop3D, | |
std::string | dataname | |||
) | throw (char*) |
Adds a prop3D to the manager and returns the identifier
Definition at line 40 of file wxMaracasIRMViewManager.cxx.
References _idCount, _renderer, checkInvariant(), wxMaracasIRMViewManagerData::getId(), wxMaracasIRMViewManagerData::getProp3D(), prop3Dvect, and wxMaracasIRMViewManagerData::setId().
Referenced by wxMaracasIRMView::addProp3D().
00040 { 00041 checkInvariant(); 00042 if(prop3D != NULL){ 00043 wxMaracasIRMViewManagerData* data = new wxMaracasIRMViewManagerData(prop3D, 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 vtkProp3D file or input"; 00051 } 00052 return -1; 00053 }
int wxMaracasIRMViewManager::addPropMHD | ( | vtkImageData * | imagedata, | |
std::string | dataname | |||
) | throw (char*) |
Adds a prop3D to the manager and returns the identifier
Definition at line 54 of file wxMaracasIRMViewManager.cxx.
References _idCount, _renderer, checkInvariant(), wxMaracasIRMViewManagerData::getId(), wxMaracasIRMViewManagerData::getProp3D(), prop3Dvect, and wxMaracasIRMViewManagerData::setId().
Referenced by wxMaracasIRMView::addPropMHD().
00054 { 00055 00056 checkInvariant(); 00057 if(imagedata != NULL){ 00058 wxMaracasIRMViewManagerData* data = new wxMaracasIRMViewManagerDataMhd(imagedata, dataname); 00059 prop3Dvect.push_back(data); 00060 _renderer->AddActor(data->getProp3D()); 00061 data->setId(_idCount); 00062 _idCount++; 00063 return data->getId(); 00064 }else{ 00065 throw "Check ImageData file or input"; 00066 } 00067 return -1; 00068 00069 }
void wxMaracasIRMViewManager::changeOpacity | ( | int | propid, | |
int | value | |||
) | throw (char*) |
Changes the opacity in a prop3D
Definition at line 90 of file wxMaracasIRMViewManager.cxx.
References _renderer, wxMaracasIRMViewManagerData::changeOpacity(), checkInvariant(), and getViewData().
Referenced by wxMaracasIRMView::changeOpacity().
00090 { 00091 checkInvariant(); 00092 00093 00094 this->getViewData(propid)->changeOpacity(value); 00095 00096 _renderer->Render(); 00097 00098 }
void wxMaracasIRMViewManager::changeIsoValue | ( | int | propid, | |
double | value | |||
) | throw (char*) |
changes the isovalue in a prop3D
Definition at line 103 of file wxMaracasIRMViewManager.cxx.
References _renderer, checkInvariant(), and getViewData().
Referenced by wxMaracasIRMView::changeIsoValue().
00103 { 00104 checkInvariant(); 00105 00106 wxMaracasIRMViewManagerData* data = this->getViewData(propid); 00107 00108 //_renderer->RemoveActor(data->getProp3D()); 00109 ((wxMaracasIRMViewManagerDataMhd*)data)->changeIsoValue(value); 00110 //_renderer->AddActor(data->getProp3D()); 00111 00112 _renderer->Render(); 00113 }
vtkProp3D * wxMaracasIRMViewManager::getProp3D | ( | std::string | filename | ) |
loads a prop3D from a nSTL file
Definition at line 115 of file wxMaracasIRMViewManager.cxx.
Referenced by wxMaracasIRMView::loadProp3D().
00115 { 00116 if(filename.compare("")!= 0){ 00117 vtkSTLReader *STLReader=vtkSTLReader::New(); 00118 STLReader->SetFileName(filename.c_str()); 00119 STLReader->Update(); 00120 vtkPolyDataMapper* dataMapper = vtkPolyDataMapper::New(); 00121 dataMapper->SetInput(STLReader->GetOutput()); 00122 00123 vtkActor* dataActor = vtkActor::New(); 00124 dataActor->SetMapper(dataMapper); 00125 dataActor->GetProperty()->SetOpacity(1); 00126 00127 return dataActor; 00128 } 00129 return NULL; 00130 }
vtkImageData * wxMaracasIRMViewManager::getImageData | ( | std::string | filename | ) |
loads a MHD file to convert it into an actor
Definition at line 132 of file wxMaracasIRMViewManager.cxx.
Referenced by wxMaracasIRMView::loadPropMHD().
00132 { 00133 if(filename.compare("")!= 0){ 00134 00135 00136 vtkMetaImageReader* reader = vtkMetaImageReader::New(); 00137 reader->SetFileName(filename.c_str()); 00138 reader->Update(); 00139 vtkImageData* img = reader->GetOutput(); 00140 //reader->Delete(); 00141 return img; 00142 } 00143 return NULL; 00144 }
void wxMaracasIRMViewManager::addRemoveActor | ( | int | propid, | |
bool | addremove | |||
) | throw (char*) |
adds or removes an actor depending of the bool value
Definition at line 73 of file wxMaracasIRMViewManager.cxx.
References _renderer, checkInvariant(), wxMaracasIRMViewManagerData::getProp3D(), and getViewData().
Referenced by wxMaracasIRMView::addRemoveActor(), and deleteActor().
00073 { 00074 checkInvariant(); 00075 00076 wxMaracasIRMViewManagerData* data = this->getViewData(propid); 00077 if(data->getProp3D()!=NULL){ 00078 if(addremove){ 00079 _renderer->AddViewProp(data->getProp3D()); 00080 }else{ 00081 _renderer->RemoveViewProp(data->getProp3D()); 00082 } 00083 _renderer->Render(); 00084 } 00085 00086 }
void wxMaracasIRMViewManager::checkInvariant | ( | ) | throw (char*) |
Check if the variables are setted correctly
Definition at line 146 of file wxMaracasIRMViewManager.cxx.
Referenced by addProp3D(), addPropMHD(), addRemoveActor(), changeColor(), changeIsoValue(), changeOpacity(), and deleteActor().
wxMaracasIRMViewManagerData * wxMaracasIRMViewManager::getViewData | ( | int | id | ) | throw (char*) |
Given an id search the data in the vector
Definition at line 152 of file wxMaracasIRMViewManager.cxx.
References prop3Dvect.
Referenced by addRemoveActor(), changeColor(), changeIsoValue(), and changeOpacity().
00152 { 00153 int i; 00154 for(i = 0; i < (int)(prop3Dvect.size());i++){ 00155 if(prop3Dvect[i]->getId() == id){ 00156 return prop3Dvect[i]; 00157 } 00158 } 00159 throw "id not found in the data"; 00160 00161 return NULL; 00162 }
int wxMaracasIRMViewManager::getMaxIsoValue | ( | int | propid | ) | throw (char*) |
Given the id, return the max iso value from the imagedata
Definition at line 164 of file wxMaracasIRMViewManager.cxx.
Referenced by wxMaracasIRMView::addPropMHD().
00164 { 00165 00166 return ((wxMaracasIRMViewManagerDataMhd*)this->getViewData(propid))->getMaxGreyLevel(); 00167 00168 }
void wxMaracasIRMViewManager::changeColor | ( | int | propid, | |
double | red, | |||
double | green, | |||
double | blue | |||
) | throw (char*) |
Changes the color of the actor
Definition at line 170 of file wxMaracasIRMViewManager.cxx.
References _renderer, wxMaracasIRMViewManagerData::changeColor(), checkInvariant(), and getViewData().
Referenced by wxMaracasIRMView::changeColor().
00170 { 00171 checkInvariant(); 00172 this->getViewData(propid)->changeColor(red, green, blue); 00173 00174 _renderer->Render(); 00175 }
void wxMaracasIRMViewManager::deleteActor | ( | int | propid | ) | throw (char *) |
Definition at line 177 of file wxMaracasIRMViewManager.cxx.
References addRemoveActor(), checkInvariant(), and prop3Dvect.
Referenced by wxMaracasIRMView::deleteActor().
00177 { 00178 checkInvariant(); 00179 00180 this->addRemoveActor(propid, false); 00181 00182 int i,n; 00183 bool exit = false; 00184 for(i = 0; i < (int)(prop3Dvect.size())&&!exit;i++){ 00185 if(prop3Dvect[i]->getId() == propid){ 00186 n=i; 00187 exit = true; 00188 } 00189 } 00190 if(exit){ 00191 wxMaracasIRMViewManagerData* data = prop3Dvect[n]; 00192 int j; 00193 for(j = i; j < (int)(prop3Dvect.size())-1;j++){ 00194 prop3Dvect[j] = prop3Dvect[j+1]; 00195 } 00196 delete data; 00197 prop3Dvect.pop_back(); 00198 }else{ 00199 throw "id not found in the data"; 00200 } 00201 00202 00203 00204 00205 }
std::vector<wxMaracasIRMViewManagerData*> wxMaracasIRMViewManager::prop3Dvect [private] |
Definition at line 96 of file wxMaracasIRMViewManager.h.
Referenced by addProp3D(), addPropMHD(), deleteActor(), and getViewData().
vtkRenderer* wxMaracasIRMViewManager::_renderer [private] |
Definition at line 98 of file wxMaracasIRMViewManager.h.
Referenced by addProp3D(), addPropMHD(), addRemoveActor(), changeColor(), changeIsoValue(), changeOpacity(), setRenderer(), and wxMaracasIRMViewManager().
int wxMaracasIRMViewManager::_idCount [private] |
Definition at line 100 of file wxMaracasIRMViewManager.h.
Referenced by addProp3D(), addPropMHD(), and wxMaracasIRMViewManager().