ContourVOIWidget.cxx

Go to the documentation of this file.
00001 
00002 #include "ContourVOIWidget.h"
00003 
00004 //-------------------------------------------------------------------
00005 //-------------------------------------------------------------------
00006 //-------------------------------------------------------------------
00007 
00008   wxWidgetSliderMinMaxVOI :: wxWidgetSliderMinMaxVOI(ContourVOIWidget *contourtool,
00009                                                                                                          mBarRange *modelBarRange )
00010                 :wxEvtHandler()
00011                 {                       
00012                         modBarRange = modelBarRange;
00013                         mcontourtool = contourtool;
00014                         modBarRange->PushEventHandler(this);
00015                         Connect(modBarRange->GetId(),wxEVT_TSBAR,(wxObjectEventFunction) (wxCommandEventFunction) &wxWidgetSliderMinMaxVOI::onBarrange );
00016                         Connect(modBarRange->GetId(),wxEVT_TSBAR_ACTUAL,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMaxVOI::onActualChange_Bar );
00017                         Connect(modBarRange->GetId(),wxEVT_TSBAR_START,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMaxVOI::onStartChange_Bar );
00018                         Connect(modBarRange->GetId(),wxEVT_TSBAR_END,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMaxVOI::onEndChange_Bar );
00019                         Connect(modBarRange->GetId(),wxEVT_SELECTION_END,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMaxVOI::onSelectionEnd );
00020                         Connect(modBarRange->GetId(),wxEVT_TSBAR_MOVED,(wxObjectEventFunction) (wxCommandEventFunction)  &wxWidgetSliderMinMaxVOI::onMovedBar );                
00021                 }
00022 
00023                 wxWidgetSliderMinMaxVOI ::  ~wxWidgetSliderMinMaxVOI()
00024                 {
00025                         
00026                 }
00027                 
00028 
00029           //--------------------------------------------------------------------------------------------------------------------------------
00030           // Min-Max Barrange received events
00031           //--------------------------------------------------------------------------------------------------------------------------------
00032                 void wxWidgetSliderMinMaxVOI :: onBarrange(wxCommandEvent& event)
00033                 {
00034 
00035                 }
00036                 void wxWidgetSliderMinMaxVOI :: onActualChange_Bar(wxCommandEvent& event)
00037                 {
00038 std::cout << "wxWidgetSliderMinMaxVOI ::onActualChange_Bar" << std::endl;
00039                         wxVtk2DBaseView *wxvtk2dbaseview = (wxVtk2DBaseView*)mcontourtool->GetWxVtkBaseView();
00040                         wxvtk2dbaseview->GetVtkBaseData()->SetZ(modBarRange->GetActual());
00041                         wxvtk2dbaseview->Refresh();
00042                 }
00043                 void wxWidgetSliderMinMaxVOI :: onStartChange_Bar(wxCommandEvent& event)
00044                 {
00045 std::cout << "wxWidgetSliderMinMaxVOI ::onStartChange_Bar" << std::endl;
00046                         wxVtk2DBaseView *wxvtk2dbaseview = (wxVtk2DBaseView*)mcontourtool->GetWxVtkBaseView();
00047                         wxvtk2dbaseview->GetVtkBaseData()->SetZ(modBarRange->GetStart());
00048                         wxvtk2dbaseview->Refresh();
00049 //EED                   mcontourtool->ProcessOutputs();
00050                 }
00051                 void wxWidgetSliderMinMaxVOI :: onEndChange_Bar(wxCommandEvent& event)
00052                 {
00053 std::cout << "wxWidgetSliderMinMaxVOI ::onEndChange_Bar" << std::endl;
00054                         wxVtk2DBaseView *wxvtk2dbaseview = (wxVtk2DBaseView*)mcontourtool->GetWxVtkBaseView();
00055                         wxvtk2dbaseview->GetVtkBaseData()->SetZ(modBarRange->GetEnd());
00056                         wxvtk2dbaseview->Refresh();
00057 //EED                   mcontourtool->ProcessOutputs();
00058                 }
00059                 void wxWidgetSliderMinMaxVOI :: onSelectionEnd(wxCommandEvent& event)
00060                 {
00061                 }
00062                 void wxWidgetSliderMinMaxVOI :: onMovedBar(wxCommandEvent& event)
00063                 {
00064 //EED                   mcontourtool->ProcessOutputs();
00065                 }
00066 //----------------------------------------------------------------------
00067 //----------------------------------------------------------------------
00068 //----------------------------------------------------------------------
00069 
00070 
00071   ContourVOIWidget::ContourVOIWidget(wxWindow *parent, wxVtkBaseView *wxvtkbaseview, vtkImageData* imagedata)
00072     : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
00073   {
00074 //EED    this->mbbtkContourCrown        = contourcrown;
00075     this->imagedata                                     = imagedata;
00076         this->wxvtkbaseview                             = wxvtkbaseview;
00077         wxPanel *panel                                  = this;
00078     wxSizer *sizer                                      = NULL;
00079         
00080         mbarrange = new mBarRange(panel,200, 65); 
00081         mbarrange -> SetOrientation( true );
00082         mbarrange -> setActiveStateTo(true);
00083         mbarrange -> setVisibleLabels( true );
00084         mbarrange -> setDeviceEndMargin(10);
00085         mbarrange -> setRepresentedValues( 0 , 100 );
00086         mbarrange -> setDeviceBlitStart(10,10); 
00087         mbarrange -> setIfWithActualDrawed( true );
00088         mbarrange -> SetStart( 10 );
00089         mbarrange -> SetEnd( 90 );  
00090 
00091         //wxWidgetSliderMinMaxVOI * eventHandler = new wxWidgetSliderMinMaxVOI(this, mbarrange); // JPRx
00092 
00093         wxFlexGridSizer *sizer1 = new wxFlexGridSizer(10);
00094         sizer1->AddGrowableCol(0);
00095         sizer1->Add(mbarrange,1,wxGROW);
00096         sizer = sizer1;
00097         panel -> SetSizer(sizer);
00098 
00099     panel       ->      SetAutoLayout(true);
00100     panel       ->      Layout();  
00101   }
00102 
00103   // ------------------------------------------------------------------------
00104 
00105   ContourVOIWidget::~ContourVOIWidget()
00106   {
00107   }
00108 
00109   // ------------------------------------------------------------------------
00110   wxVtkBaseView *ContourVOIWidget::GetWxVtkBaseView()
00111         {
00112                 return this->wxvtkbaseview;
00113         }
00114 
00115 
00116   // ------------------------------------------------------------------------
00117 
00118 
00119   void ContourVOIWidget::ConfigureVTK()
00120   {
00121           double spc[3];
00122           this->imagedata->GetSpacing(spc);
00123 
00124           // LG 14 dec 2007
00125           int dim[3];
00126           this->imagedata->GetDimensions(dim);
00127           mbarrange -> setRepresentedValues( 0 , dim[2] );
00128         
00129         // Rectangulo
00130         _manRoiControl  = new manualRoiControler();
00131         _mContourModel  = new manualContourModelRoi();
00132         _mViewRoi               = new manualViewRoi();
00133         _mViewRoi->SetModel( _mContourModel );
00134         _mViewRoi->SetWxVtkBaseView( this->wxvtkbaseview );
00135         _mViewRoi->SetRange( 2 );
00136         _mViewRoi->SetZ( 1000 );
00137 
00138 //EED 3 oct 2006
00139         _mViewRoi->SetSpacing(spc);
00140 
00141         _manRoiControl->SetModelView( _mContourModel , _mViewRoi );
00142         ((vtkInteractorStyleBaseView*)this->wxvtkbaseview->GetInteractorStyleBaseView())->AddInteractorStyleMaracas( _manRoiControl );
00143         _manRoiControl->CreateNewManualContour();
00144         _manRoiControl->SetActive(true);
00145         _mViewRoi->RefreshContour();
00146 
00147 
00148   }
00149 
00150 //--------------------------------------------------------------------------------------------------------------------------------
00151 void ContourVOIWidget::GetVOI( int voi[6] )
00152 {
00153         double minX,minY,maxX,maxY;
00154         _mViewRoi->GetMinMax(minX,minY,maxX,maxY);
00155         voi[0]=(int)minX;
00156         voi[1]=(int)maxX;
00157         voi[2]=(int)minY;
00158         voi[3]=(int)maxY;
00159 
00160         voi[4] =  mbarrange->GetStart();
00161         voi[5] =  mbarrange->GetEnd();
00162 
00163         int border[6];
00164         wxVtk2DBaseView *wxvtk2dbaseview = (wxVtk2DBaseView*)wxvtkbaseview;
00165         wxvtk2dbaseview->GetVtkBaseData()->GetImageData()->GetExtent( border );
00166 
00167         if ( (voi[0]==voi[1]) || (voi[2]==voi[3]) || (voi[4]==voi[5]) )
00168         {
00169                         voi[0] = border[0];
00170                         voi[1] = border[1];
00171                         voi[2] = border[2];
00172                         voi[3] = border[3];
00173                         voi[4] = border[4];
00174                         voi[5] = border[5];
00175         }
00176 
00177         // border min
00178         if (voi[0]<border[0]) { voi[0]=border[0]; }
00179         if (voi[2]<border[2]) { voi[2]=border[2]; }
00180         if (voi[4]<border[4]) { voi[4]=border[4]; }
00181 
00182         // border max
00183         if (voi[1]>border[1]) { voi[1]=border[1]; }
00184         if (voi[3]>border[3]) { voi[3]=border[3]; }
00185         if (voi[5]>border[5]) { voi[5]=border[5]; }
00186 }
00187 
00188 //--------------------------------------------------------------------------------------------------------------------------------
00189 /*EED
00190 void wxMaracasCoutourTool::ProcessOutputs()
00191 {
00192         int voi[6];
00193         GetVOI(voi);
00194         char buffer[40];
00195         sprintf(buffer,"%d %d %d ", voi[0], voi[2], voi[4] );
00196         std::string Index(buffer);
00197         sprintf(buffer,"%d %d %d ", voi[1]-voi[0]+1, voi[3]-voi[2]+1, voi[5]-voi[4]+1 );
00198         std::string Size(buffer);
00199         mbbtkContourCrown->bbSetOutputIndex( Index );
00200         mbbtkContourCrown->bbSetOutputSize( Size );
00201         std::vector<std::string> mod;
00202         mod.push_back("Index");
00203         mod.push_back("Size");
00204         mbbtkContourCrown->bbSignalOutputModification(mod);
00205 }
00206 */
00207 
00208 
00209 

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1