#include "bbmaracasvisuImageBrowserReader.h" #include "bbmaracasvisuPackage.h" #include #include namespace bbmaracasvisu { //------------------------------------------------------------------------------------------------------------------------------------ // Event handling auxiliar class //------------------------------------------------------------------------------------------------------------------------------------ //-------------------------------------------------------------------------------------------------------------------------------- // Constructors ans destructors //-------------------------------------------------------------------------------------------------------------------------------- wxMaracasImageBrowser02_EvtHandler::wxMaracasImageBrowser02_EvtHandler( ImageBrowserReader *bbParent, wxMaracasImageBrowser02 * wxmaracasimagebrowser02 ) :wxEvtHandler() { mbbtkImageBrowserReader = bbParent; mmaracasimagebrowser02 = wxmaracasimagebrowser02; wxmaracasimagebrowser02->PushEventHandler(this); Connect(mmaracasimagebrowser02->GetId(),wxEVT_MARACASIMAGEBROWSERCUTIMAGE,(wxObjectEventFunction) (wxCommandEventFunction) &wxMaracasImageBrowser02_EvtHandler::OnCutImage ); } //-------------------------------------------------------------------------------------------------------------------------------- wxMaracasImageBrowser02_EvtHandler :: ~wxMaracasImageBrowser02_EvtHandler() { } //-------------------------------------------------------------------------------------------------------------------------------- void wxMaracasImageBrowser02_EvtHandler :: OnCutImage(wxCommandEvent& event) { mbbtkImageBrowserReader->DefineImageOutput(); } //-------------------------------------------------------------------- //-------------------------------------------------------------------- //-------------------------------------------------------------------- BBTK_ADD_BLACK_BOX_TO_PACKAGE(maracasvisu,ImageBrowserReader) BBTK_BLACK_BOX_IMPLEMENTATION(ImageBrowserReader,bbtk::WxBlackBox); //-------------------------------------------------------------------- void ImageBrowserReader::Process() { if (marparameters!=NULL){ delete marparameters; marparameters = NULL; } marparameters = new marParameters(); if (wxmaracasimagebrowser02!=NULL){ delete wxmaracasimagebrowser02; delete wxmaracasimagebrowser02_eventHandler; wxmaracasimagebrowser02 = NULL; wxmaracasimagebrowser02_eventHandler = NULL; } if (marfilesbase!=NULL){ marfilesbase->CleanListImages(); delete marfilesbase; marfilesbase = NULL; } if (bbGetInputType()==-1 ) marfilesbase = new marGdcmDicomILPD(marparameters); if (bbGetInputType()== 0 ) marfilesbase = new marRAWFiles(marparameters); if (bbGetInputType()== 100) marfilesbase = new marGdcmDicomILPD(marparameters); if (bbGetInputType()== 200) marfilesbase = new marRAW2Files(marparameters); if (bbGetInputType()== 300) marfilesbase = new marRAW2AsciiFiles(marparameters); if (marfilesbase!=NULL){ // marfilesbase->CleanListImages(); std::vector *lstStringFileName; lstStringFileName = marfilesbase->GetListImages( ); int i,size = bbGetInputLstFileName().size(); for ( i=0 ; ipush_back( new std::string(bbGetInputLstFileName()[i]) ); } // for wxmaracasimagebrowser02 = new wxMaracasImageBrowser02( bbGetOutputWidget() , marfilesbase , marfilesbase->getParameters() ); wxmaracasimagebrowser02_eventHandler = new wxMaracasImageBrowser02_EvtHandler(this, wxmaracasimagebrowser02 ); wxBoxSizer *sizer= new wxBoxSizer(wxHORIZONTAL); sizer->Add( wxmaracasimagebrowser02 , 1, wxALL|wxGROW, 0); bbGetOutputWidget()->SetSizer(sizer); bbGetOutputWidget()->Layout(); marfilesbase->loadActualSerie( NULL/*this->_progressGauge*/ ); vtkImageData *dummy = marfilesbase->getVolume( )->castVtk(); wxmaracasimagebrowser02->LoadData( new marImageData(dummy) ); wxmaracasimagebrowser02->Start(); } // if marfilesbase!=NULL } //-------------------------------------------------------------------- void ImageBrowserReader::CreateWidget() { bbSetOutputWidget( new wxPanel( bbGetWxParent() , -1 ) ); } //-------------------------------------------------------------------- void ImageBrowserReader::bbUserConstructor() { bbSetInputType(-999); marparameters = NULL; marfilesbase = NULL; wxmaracasimagebrowser02 = NULL; wxmaracasimagebrowser02_eventHandler = NULL; } //-------------------------------------------------------------------- void ImageBrowserReader::bbUserCopyConstructor() { } //-------------------------------------------------------------------- void ImageBrowserReader::bbUserDestructor() { } void ImageBrowserReader::DefineImageOutput() { int voi[ 6 ]; wxmaracasimagebrowser02->ForceToFinisReadActiveImages( ); wxmaracasimagebrowser02->GetROI( voi ); vtkImageData *imagedata; marDynData *dyndata = new marDynData( marfilesbase->getParameters() ); dyndata->loadData( marfilesbase->getVolume( ) , voi ); imagedata = dyndata->getVolume( )->castVtk(); imagedata->Update(); bbSetOutputOut( imagedata ); } } // EO namespace bbmaracasvisu