/*# --------------------------------------------------------------------- # # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image # pour la Sant�) # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton # Previous Authors : Laurent Guigues, Jean-Pierre Roux # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil # # This software is governed by the CeCILL-B license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL-B # license as circulated by CEA, CNRS and INRIA at the following URL # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html # or in the file LICENSE.txt. # # As a counterpart to the access to the source code and rights to copy, # modify and redistribute granted by the license, users are provided only # with a limited warranty and the software's author, the holder of the # economic rights, and the successive licensors have only limited # liability. # # The fact that you are presently reading this means that you have had # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ */ #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