wxMaracasRendererView* wxMaracasRendererView::instance=NULL;
/**
-**
+** Class constructor
**/
wxMaracasRendererView::wxMaracasRendererView(wxWindow* parent,std::string path)
: wxPanel(parent, -1, wxDefaultPosition, wxDefaultSize){
_path = path;
- volmanager = new wxMaracasMultipleVolumeRendererManager();
- surrendmanager1 = new wxMaracasSurfaceRenderingManager();
- surrendmanager2 = new wxMaracasSurfaceRenderingManager();
- surrendmanager3 = new wxMaracasSurfaceRenderingManager();
-
std::string iconsdir = path;
iconsdir+="/data/Icons";
this->_toolb = new ToolBarRenderer(this,iconsdir);
}
/**
-**
+** Class destructor
**/
wxMaracasRendererView::~wxMaracasRendererView( )
{
}
/**
-**
-**/
-std::string wxMaracasRendererView::getPath()
-{
- return _path;
-}
-
-/**
-**
+** Gets class instance correponding to given parameters
**/
wxMaracasRendererView* wxMaracasRendererView::getInstance(wxWindow* parent,std::string path)
{
}
/**
-**
+** Gets class intance
**/
wxMaracasRendererView* wxMaracasRendererView::getInstance()
{
}
/**
-**
+** Gets path for the given panel
**/
-void wxMaracasRendererView::setRenderer(vtkRenderer* renderer)
-{
- volmanager->setRenderer(renderer);
- surrendmanager1->setRenderer(renderer);
- surrendmanager2->setRenderer(renderer);
- surrendmanager3->setRenderer(renderer);
-}
-
-/**
-** Adds or removes a volume rendering actor
-**/
-void wxMaracasRendererView::addRemoveActorVol(int id, bool addremove)
+std::string wxMaracasRendererView::getPath()
{
- volmanager->addRemoveActor(id, addremove);
+ return _path;
}
/**
-** Adds or removes a surface rendering actor
+** Returns internal panel
**/
-void wxMaracasRendererView::addRemoveSurf1Actor(int id, bool addremove)
+wxMaracasRenderTabbedPanel* wxMaracasRendererView::getTabbedPanel(int id)throw(char*)
{
- surrendmanager1->addRemoveActor(id, addremove);
-}
+ int i;
+ for(i = 0; i < (tabsVector.size()); i++)
+ {
+ if(tabsVector[i]->getPropIdV() == id)
+ return tabsVector[i];
+ }
+ throw "id not found";
-/**
-** Adds or removes a surface rendering actor
-**/
-void wxMaracasRendererView::addRemoveSurf2Actor(int id, bool addremove)
-{
- surrendmanager2->addRemoveActor(id, addremove);
+ return NULL;
}
/**
-** Adds or removes a surface rendering actor
+**
**/
-void wxMaracasRendererView::addRemoveSurf3Actor(int id, bool addremove)
+void wxMaracasRendererView::setRenderer(vtkRenderer* renderer)
{
- surrendmanager3->addRemoveActor(id, addremove);
+ _renderer = renderer;
}
/**
-**
+** Called when an image file is opened
**/
void wxMaracasRendererView::onLoadImageFile()
{
if(fildial->ShowModal()==wxID_OK)
{
wxString filename = fildial->GetFilename();
+ files.push_back( std::string(filename.mb_str()) );
wxString pathfile(fildial->GetDirectory() + _T("/") + filename);
+
if(filename.EndsWith(mhd))
{
- loadVolume(pathfile,filename);
+ std::string sPath = std::string(pathfile.mb_str());
+ std::string sFileName = std::string(filename.mb_str());
+ addVolumes(NULL, sPath, sFileName);
}
}
delete fildial;
}
-
-/*
-*
-*/
-void wxMaracasRendererView::addPanels(wxString filename, wxString dataname)
+/**
+** Constructs and adds internal panel
+**/
+void wxMaracasRendererView::addPanels(wxMaracasRenderTabbedPanel* wxtabs, vtkImageData* img, std::string pathfile, std::string filename)
{
- wxString s(dataname.c_str(),wxConvUTF8 );
+ wxString s(filename.c_str(),wxConvUTF8);
- wxtabs = new wxMaracasRenderTabbedPanel(this, volmanager, surrendmanager1, surrendmanager2, surrendmanager3, filename, dataname);
+ wxtabs->createControls(img, pathfile, filename);
wxAuiPaneInfo paneinfo;
wxauimanager->AddPane(wxtabs, paneinfo.DefaultPane().Centre().DestroyOnClose().Caption(s));
wxauimanager->Update();
}
-/*
-*
-*/
-wxMaracasMultipleVolumeRendererPanel* wxMaracasRendererView::addVolume(vtkImageData* img, std::string dataname)
+/**
+** Returns internal panel
+**/
+void wxMaracasRendererView::addVolumes(vtkImageData* img, std::string pathfile, std::string filename)
{
+ wxMaracasRenderTabbedPanel* wxtabs = new wxMaracasRenderTabbedPanel(this);
+ wxtabs->setRenderer(_renderer);
- try
- {
- int id = volmanager->addVolume(img, dataname);
- if(id!=-1)
- {
- wxMaracasMultipleVolumeRendererPanel* controlpan = new wxMaracasMultipleVolumeRendererPanel(this, id,img);
- //controlpan->updateVolume();
-
- return controlpan;
- }
- }
- catch(char* str)
- {
- std::cout << "Exception : " << str << '\n';
- wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
- diag->ShowModal();
- }
+ tabsVector.push_back(wxtabs);
+ addPanels(wxtabs, img, pathfile, filename);
}
-
-wxMaracasSurfaceRenderingPanel* wxMaracasRendererView::addSurface1(vtkImageData* img, std::string dataname)
+/**
+** Deletes current volume
+**/
+void wxMaracasRendererView::deleteVolume(int volid)
{
- try
- {
- int id = surrendmanager1->addPropMHD(img, dataname);
-
- if(id!=-1)
- {
- wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(this, id);
- //int maxiso = surrendmanager1->getMaxIsoValue(id);
- //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
-
- return controlpan;
- }
- }
- catch(char* str)
- {
- std::cout << "Exception : " << str << '\n';
- wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
- diag->ShowModal();
- }
+
+ getTabbedPanel(volid)->deleteVolume(volid);
}
-wxMaracasSurfaceRenderingPanel* wxMaracasRendererView::addSurface2(vtkImageData* img, std::string dataname)
+/**
+** Adds or removes a volume rendering actor
+**/
+void wxMaracasRendererView::addRemoveActorVol(int id, bool addremove)
{
- try
- {
- int id = surrendmanager2->addPropMHD(img, dataname);
- if(id!=-1)
- {
- wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(this, id);
- //int maxiso = surrendmanager2->getMaxIsoValue(id);
- //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
-
- return controlpan;
- }
- }
- catch(char* str)
- {
- std::cout << "Exception : " << str << '\n';
- wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
- diag->ShowModal();
- }
+ //wxtabs->addRemoveActorV(id, addremove);
}
-wxMaracasSurfaceRenderingPanel* wxMaracasRendererView::addSurface3(vtkImageData* img, std::string dataname)
+/**
+** Adds or removes a surface rendering actor
+**/
+void wxMaracasRendererView::addRemoveSurf1Actor(int id, bool addremove)
{
- try
- {
- int id = surrendmanager3->addPropMHD(img, dataname);
- if(id!=-1)
- {
- wxMaracasSurfaceRenderingPanel* controlpan = new wxMaracasSurfaceRenderingProp3DMHD(this, id);
- //int maxiso = surrendmanager3->getMaxIsoValue(id);
- //((wxMaracasSurfaceRenderingProp3DMHD*)controlpan)->createControls(maxiso);
-
- return controlpan;
- }
- }
- catch(char* str)
- {
- std::cout << "Exception : " << str << '\n';
- wxMessageDialog* diag = new wxMessageDialog(this, wxString(str,wxConvUTF8 ), wxString(str,wxConvUTF8 ), wxICON_ERROR);
- diag->ShowModal();
- }
+ //wxtabs->addRemoveActorSA(id, addremove);
}
-void wxMaracasRendererView::loadVolume(wxString filename, wxString dataname)
+/**
+** Adds or removes a surface rendering actor
+**/
+void wxMaracasRendererView::addRemoveSurf2Actor(int id, bool addremove)
{
-
- addPanels(filename, dataname);
-
+ //wxtabs->addRemoveActorSB(id, addremove);
}
-void wxMaracasRendererView::deleteVolume(int volid)
+/**
+** Adds or removes a surface rendering actor
+**/
+void wxMaracasRendererView::addRemoveSurf3Actor(int id, bool addremove)
{
- volmanager->deleteActor(volid);
- surrendmanager1->deleteActor(volid);
- surrendmanager2->deleteActor(volid);
- surrendmanager3->deleteActor(volid);
-}
-
-void wxMaracasRendererView::SetValuesColorPointsFunction(int volid, std::vector<double> greylevelcolors,std::vector<double> red,std::vector<double> green,std::vector<double> blue){
- volmanager->setVolumeColor(volid, greylevelcolors, red, green, blue);
-}
-void wxMaracasRendererView::SetValuesPointsFunction(int volid, std::vector<double> greylevel, std::vector<double> values){
- volmanager->setVolumeOpacity(volid, greylevel, values);
+ //wxtabs->addRemoveActorSC(id, addremove);
}
-vtkPiecewiseFunction* wxMaracasRendererView::GetTransferFunction(int volumeid){
- return volmanager->GetTransferFunction(volumeid);
-}
-vtkColorTransferFunction* wxMaracasRendererView::GetColorFunction(int volumeid){
- return volmanager->GetColorFunction(volumeid);
+/**
+** Gets opened file names
+**/
+std::vector<std::string> wxMaracasRendererView::getFiles()
+{
+ return files;
}
/**