wxMaracasMultipleVolumeRendererManager Class Reference

#include <wxMaracasMultipleVolumeRendererManager.h>

List of all members.

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)
wxMaracasMultipleVolumeRendererManagerDatagetViewData (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


Detailed Description

Definition at line 30 of file wxMaracasMultipleVolumeRendererManager.h.


Constructor & Destructor Documentation

wxMaracasMultipleVolumeRendererManager::wxMaracasMultipleVolumeRendererManager (  ) 

Start of the manager class

Definition at line 24 of file wxMaracasMultipleVolumeRendererManager.cxx.

References _idCount, and _renderer.

00024                                                                               {
00025         _renderer = NULL;
00026         _idCount=0;
00027 }

wxMaracasMultipleVolumeRendererManager::~wxMaracasMultipleVolumeRendererManager (  ) 

Definition at line 28 of file wxMaracasMultipleVolumeRendererManager.cxx.

00028                                                                                {
00029 }


Member Function Documentation

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 }

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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().

00119                                                                          {
00120         if(this->_renderer==NULL){
00121                 throw "Renderer not set";
00122         }
00123 }

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:

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 }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

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().


The documentation for this class was generated from the following files:
Generated on Wed Jul 29 16:36:20 2009 for creaMaracasVisu_lib by  doxygen 1.5.3