wxMaracasSurfaceRenderingManager Class Reference

#include <wxMaracasSurfaceRenderingManager.h>

List of all members.

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*)
wxMaracasSurfaceRenderingManagerDatagetViewData (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

Detailed Description

Definition at line 31 of file wxMaracasSurfaceRenderingManager.h.


Constructor & Destructor Documentation

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.

00028                                                                    {
00029 }


Member Function Documentation

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

bool wxMaracasSurfaceRenderingManager::interactorSet (  ) 

Definition at line 269 of file wxMaracasSurfaceRenderingManager.cxx.

References _interactor.

Referenced by wxMaracasSurfaceRendering::interactorSet().

00269                                                     {
00270         return _interactor? true:false;
00271 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

void wxMaracasSurfaceRenderingManager::Transform ( vtkMatrix4x4 *  tmatrix  ) 

Definition at line 265 of file wxMaracasSurfaceRenderingManager.cxx.

00265                                                                      {
00266         
00267 }

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 }


Member Data Documentation

vtkRenderWindowInteractor* wxMaracasSurfaceRenderingManager::_interactor [private]
vtkImageData* wxMaracasSurfaceRenderingManager::image [private]

Definition at line 131 of file wxMaracasSurfaceRenderingManager.h.

Referenced by getImageData().

Definition at line 127 of file wxMaracasSurfaceRenderingManager.h.


The documentation for this class was generated from the following files:

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1