X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbmaracasvisuContourVOI.cxx;h=dfb620215e184217e8afe8316abda565e10ecfb4;hb=664e4e099f2b90efe6e9cfeaa4b880238460f6b2;hp=649cf0cffe20d56573b5b123d0c7cd8a1e319d88;hpb=3e9c68ee7f4cf675d205d937442f40971953d017;p=creaMaracasVisu.git diff --git a/bbtk/src/bbmaracasvisuContourVOI.cxx b/bbtk/src/bbmaracasvisuContourVOI.cxx index 649cf0c..dfb6202 100644 --- a/bbtk/src/bbmaracasvisuContourVOI.cxx +++ b/bbtk/src/bbmaracasvisuContourVOI.cxx @@ -20,20 +20,54 @@ END_EVENT_TABLE( ); wxWidgetVOI::wxWidgetVOI(wxWindow* parent, wxVtkBaseView *wxvtkbaseview, vtkImageData *imagedata) : wxPanel( parent, -1 ) { - wxPanel *panel = this; +// wxPanel *panel = this; - mcontourvoiwidget = new ContourVOIWidget( panel, wxvtkbaseview, imagedata ); + wxFlexGridSizer *sizer=new wxFlexGridSizer(1); + sizer -> AddGrowableCol(0); + this -> SetSizer(sizer); + this -> SetAutoLayout(true); + this->wxvtkbaseview = NULL; + mcontourvoiwidget=NULL; + + + if(wxvtkbaseview!=NULL&&imagedata!=NULL){ + + setBaseView(wxvtkbaseview); + setImageData(imagedata); + initializeVOIWidget(); + + } + + + } + void wxWidgetVOI::initializeVOIWidget(){ + wxSizer* sizer = this->GetSizer(); + + + if(mcontourvoiwidget!=NULL){ + sizer->Remove( mcontourvoiwidget ); + mcontourvoiwidget->Destroy(); + } + + mcontourvoiwidget = new ContourVOIWidget( this, wxvtkbaseview, imagedata ); mcontourvoiwidget->ConfigureVTK(); -// wxwidget = new wxMPRWidget2( panel, marimagedata , 1 ); -// wxwidget->ConfigureVTK(); - wxFlexGridSizer *sizer=new wxFlexGridSizer(1); + sizer -> Add( mcontourvoiwidget,1,wxGROW ); - sizer -> AddGrowableCol(0); - panel -> SetSizer(sizer); - panel -> SetAutoLayout(true); - panel -> Layout(); +// wxwidget = new wxMPRWidget2( panel, marimagedata , 1 ); +// wxwidget->ConfigureVTK(); + + this->Refresh(); } + + void wxWidgetVOI::setBaseView(wxVtkBaseView * wxvtkbaseview){ + this->wxvtkbaseview = wxvtkbaseview; + } + void wxWidgetVOI::setImageData(vtkImageData * imagedata){ + this->imagedata = imagedata; + } + + //-------------------------------------------------------------------------- wxWidgetVOI::~wxWidgetVOI() { @@ -42,7 +76,6 @@ END_EVENT_TABLE( ); //-------------------------------------------------------------------------- void wxWidgetVOI::Refresh() { - printf("EED wxWidgetVOI::Refresh \n"); // wxwidget->RefreshView(); } @@ -52,7 +85,6 @@ END_EVENT_TABLE( ); //--------------- void wxWidgetVOI::OnRefreshView(wxCommandEvent &event) { - printf("EED wxWidgetVOI::OnRefreshView \n"); /* if((wxwidget!=NULL) && (mbbViewerMPR!=NULL)) { @@ -70,7 +102,6 @@ END_EVENT_TABLE( ); //-------------------------------------------------------------------------- void wxWidgetVOI::OnDClickLeft(wxCommandEvent & event) { - printf("EED wxWidgetVOI::OnDClickLeft \n"); // wxwidget->RefreshView(); } @@ -93,10 +124,36 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ContourVOI,bbtk::WxBlackBox); //------------------------------------------------------ void ContourVOI::Process() { + + /*if (bbGetInputwxVtkBaseView()==NULL) + { + wxMessageDialog(NULL, bbtk::std2wx("(ContourVOI) Input 'wxVtkBaseView' is not set"), bbtk::std2wx(bbGetFullName()) ).ShowModal(); + } + if (bbGetInputIn()==NULL) + { + wxMessageDialog(NULL, bbtk::std2wx("(ContourVOI) Input 'In' is not set"), bbtk::std2wx(bbGetFullName()) ).ShowModal(); + }*/ + + + vtkImageData* img = bbGetInputIn(); + wxVtkBaseView* base = bbGetInputwxVtkBaseView(); + wxWidgetVOI* wxwidgetvoi = (wxWidgetVOI*)bbGetOutputWidget(); - if (wxwidgetvoi!=NULL){ + + if(base !=NULL && img != NULL && _img != img){ + + _img = img; + _base = base; + + wxwidgetvoi->setBaseView(base); + wxwidgetvoi->setImageData(img); + wxwidgetvoi->initializeVOIWidget(); + } + + + if (wxwidgetvoi!=NULL && _img!=NULL && _base != NULL){ ContourVOIWidget* contourvoiwidget = wxwidgetvoi->GetContourVOIWidget(); - + int voi[6]; contourvoiwidget->GetVOI(voi); char buffer[40]; @@ -105,46 +162,70 @@ void ContourVOI::Process() sprintf(buffer,"%d %d %d ", voi[1]-voi[0]+1, voi[3]-voi[2]+1, voi[5]-voi[4]+1 ); std::string Size(buffer); + std::cout<<"ContourVOI index "<Delete(); + } + _extract = vtkExtractVOI::New(); + _extract->RemoveAllInputs(); + _extract->SetInput(img); + _extract->SetVOI(voi); + _extract->UpdateWholeExtent(); + _extract->Update(); + bbSetOutputVOI(_extract->GetOutput()); + //JCP + + + bbSetOutputIndex( Index ); bbSetOutputSize( Size ); - } //wxwidgetvoi + } + } //------------------------------------------------------ void ContourVOI::CreateWidget(wxWindow* parent) { bbtkDebugMessageInc("Core",9,"ContourVOI::CreateWidget()"<bbSignalOutputModification(); -//------------------------------------------------------ -void ContourVOI::bbUserConstructor() -{ + //Process(); } //------------------------------------------------------ -void ContourVOI::bbUserCopyConstructor(bbtk::BlackBox::Pointer) +void ContourVOI::bbUserSetDefaultValues() { -} -//------------------------------------------------------ -void ContourVOI::bbUserDestructor() -{ + _img = NULL; + _base = NULL; + _extract =NULL; + bbSetInputwxVtkBaseView(NULL); + bbSetInputIn(NULL); + bbSetOutputWidget(NULL); + bbSetOutputVOI(NULL); + + bbSetInputIn(NULL); + bbSetInputwxVtkBaseView(NULL); + } + //----------------------------------------------------------------- + void ContourVOI::bbUserInitializeProcessing() + { + } + + //----------------------------------------------------------------- + void ContourVOI::bbUserFinalizeProcessing() + { + } + + //----------------------------------------------------------------- + } // EO namespace bbcreaMaracasVisu