wxSegmentationFM3DWidget Class Reference

#include <wxSegmentationFM3DWidget.h>

Collaboration diagram for wxSegmentationFM3DWidget:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 wxSegmentationFM3DWidget (wxWindow *parent, marImageData *marimageData, double voxelSize)
 ~wxSegmentationFM3DWidget ()
void ConfigureVTK ()
void RefreshView ()
void OnRefreshView (wxCommandEvent &event)
vtkMPRBaseDataGetVtkMPRBaseData ()
vtkPlane2DViewGetVtkPlane2DView ()

Private Member Functions

wxPanel * Create3DViewContour (wxWindow *parent, vtkMPRBaseData *vtkmprbasedata)
void ConfigureContour ()
void OnChangeAlpha (wxScrollEvent &event)
void OnChangeBeta (wxScrollEvent &event)
void OnBtnSegment (wxCommandEvent &event)
void OnBtnUndo (wxCommandEvent &event)
void OnChangeOpacity (wxScrollEvent &event)
void OnChangeSigmaLevel (wxScrollEvent &event)
void OnChangeLaplacianConvergence (wxScrollEvent &event)
void OnChangeLaplacianIteration (wxScrollEvent &event)
 DECLARE_EVENT_TABLE ()

Private Attributes

double _voxelSize
marImageData_marimageData
wxMPRWidget2_MPRWidget2
wxVtk3DBaseView_wxvtk3Dbaseview_Clipping3D_C
wxVtkMPR3DView_wxvtkmpr3Dview_C
wxVtkClipping3DView_wxvtkclipping3Dview_C
wxSlider * slAlpha
wxSlider * slBeta
wxButton * btnSegment
wxButton * btnUndo
wxSlider * slVolumeOpacity
wxSlider * slSigmaLevel
wxSlider * slLaplacianConvergence
wxSlider * slLaplacianIterations
itkFM3DfiltroSegmentacion
double alphaValue
double betaValue
double opacityValue
double sigmaValue
float convergenceValue
int iterationsValue
vtkImageGaussianSmooth * f_gauss
vtkMarchingCubes * f_cubes
vtkSmoothPolyDataFilter * f_laplace
vtkPolyDataMapper * f_mapper
vtkActor * f_actor


Detailed Description

Definition at line 63 of file wxSegmentationFM3DWidget.h.


Constructor & Destructor Documentation

wxSegmentationFM3DWidget::wxSegmentationFM3DWidget ( wxWindow *  parent,
marImageData marimageData,
double  voxelSize 
)

Definition at line 43 of file wxSegmentationFM3DWidget.cxx.

References OnBtnSegment(), OnBtnUndo(), OnChangeAlpha(), OnChangeBeta(), OnChangeLaplacianConvergence(), OnChangeLaplacianIteration(), OnChangeOpacity(), and OnChangeSigmaLevel().

00045 : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
00046 {
00047 
00048         _voxelSize                                                      = voxelSize;
00049         _marimageData                                                   = marimageData;
00050 
00051         _wxvtk3Dbaseview_Clipping3D_C           = NULL;
00052         _wxvtkmpr3Dview_C                                       = NULL;
00053         _wxvtkclipping3Dview_C                          = NULL;
00054 
00055         wxSplitterWindow* mainSplitter = new wxSplitterWindow(this,-1);
00056     wxSplitterWindow    *pnlSplitter    = new wxSplitterWindow( mainSplitter , -1);
00057         
00058         int ww,hh;
00059         _MPRWidget2                                     = new wxMPRWidget2(pnlSplitter,_marimageData,voxelSize);
00060         wxPanel *       contour3DView   = Create3DViewContour( pnlSplitter , _MPRWidget2->GetVtkMPRBaseData());
00061         this->GetSize(&ww,&hh);
00062 
00063     pnlSplitter -> SplitVertically( _MPRWidget2, contour3DView , 600);
00064 
00065 
00066 
00067 
00068 
00069         //PANEL DE OPERACIONES
00070         //------------------------------------------------------------------
00071         
00072         wxPanel* panelOperaciones          = new wxPanel(mainSplitter, -1);
00073 
00074         wxFlexGridSizer *fgs = new wxFlexGridSizer(2);
00075 
00076         fgs->Add( new wxStaticText(panelOperaciones, -1, _T("Fast Marching Controls")));
00077         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("")));
00078         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("")));
00079         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("")));
00080 
00081         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("Alpha")));
00082         slAlpha = new wxSlider(panelOperaciones, -1, 50, 1, 400, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
00083         fgs->Add(slAlpha);
00084         
00085         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("Beta")));
00086         slBeta = new wxSlider(panelOperaciones, -1, 128, 0, 800, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
00087         fgs->Add(slBeta);
00088                 
00089         btnSegment = new wxButton(panelOperaciones, -1, _T("Segment"));
00090         fgs->Add(btnSegment);
00091         btnUndo = new wxButton(panelOperaciones, -1, _T("Undo"));
00092         fgs->Add(btnUndo);
00093         
00094         
00095 
00096         
00097         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("")));
00098         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("")));
00099 
00100 
00101         
00102         fgs->Add( new wxStaticText(panelOperaciones, -1, _T("Mesh Controls")));
00103         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("")));
00104         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("")));
00105         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("")));
00106 
00107         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("Opacity")));
00108         slVolumeOpacity = new wxSlider(panelOperaciones, -1,50,1,100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
00109         fgs->Add(slVolumeOpacity);
00110 
00111         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("Sigma")));
00112         slSigmaLevel = new wxSlider(panelOperaciones, -1,100,1,300, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
00113         fgs->Add(slSigmaLevel);
00114 
00115         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("Convergence")));
00116         slLaplacianConvergence = new wxSlider(panelOperaciones, -1,3000,1,3000, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
00117         fgs->Add(slLaplacianConvergence);
00118 
00119         fgs->Add(new wxStaticText(panelOperaciones, -1, _T("Iterations")));
00120         slLaplacianIterations = new wxSlider(panelOperaciones, -1,100,1,2000, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL | wxSL_LABELS);
00121         fgs->Add(slLaplacianIterations);
00122         
00123         panelOperaciones->SetSizer(fgs);
00124 
00125         btnUndo->Disable();
00126         slSigmaLevel->Disable();
00127         slVolumeOpacity->Disable();
00128         slLaplacianConvergence->Disable();
00129         slLaplacianIterations->Disable();
00130 
00131         Connect(slAlpha->GetId(),                               wxEVT_SCROLL_THUMBRELEASE,              (wxObjectEventFunction) &wxSegmentationFM3DWidget::OnChangeAlpha);
00132         Connect(slBeta->GetId(),                                wxEVT_SCROLL_THUMBRELEASE,              (wxObjectEventFunction) &wxSegmentationFM3DWidget::OnChangeBeta);
00133         Connect(btnSegment->GetId(),                    wxEVT_COMMAND_BUTTON_CLICKED,   (wxObjectEventFunction) &wxSegmentationFM3DWidget::OnBtnSegment);
00134         Connect(btnUndo->GetId(),                               wxEVT_COMMAND_BUTTON_CLICKED,   (wxObjectEventFunction) &wxSegmentationFM3DWidget::OnBtnUndo);
00135         Connect(slVolumeOpacity->GetId(),               wxEVT_SCROLL_THUMBRELEASE,              (wxObjectEventFunction) &wxSegmentationFM3DWidget::OnChangeOpacity);
00136         Connect(slSigmaLevel->GetId(),                  wxEVT_SCROLL_THUMBRELEASE,              (wxObjectEventFunction) &wxSegmentationFM3DWidget::OnChangeSigmaLevel);
00137         Connect(slLaplacianConvergence->GetId(),wxEVT_SCROLL_THUMBRELEASE,              (wxObjectEventFunction) &wxSegmentationFM3DWidget::OnChangeLaplacianConvergence);
00138         Connect(slLaplacianIterations->GetId(), wxEVT_SCROLL_THUMBRELEASE,              (wxObjectEventFunction) &wxSegmentationFM3DWidget::OnChangeLaplacianIteration);
00139         //-------------------------------------------------------------------
00140 
00141         mainSplitter->SplitVertically(pnlSplitter, panelOperaciones, 600);
00142 
00143         wxBoxSizer      *sizer  = new wxBoxSizer(wxVERTICAL  );
00144         sizer->Add(mainSplitter,1, wxGROW,0);
00145         pnlSplitter     -> SetMinimumPaneSize( 50 );
00146         this            -> SetSizer(sizer);
00147 
00148 
00149         // MODELO
00150         //------------------------------------------------------------------
00151         alphaValue = 0.5;
00152         betaValue = 128;
00153         opacityValue = 0.5;
00154         convergenceValue = 1;
00155         iterationsValue = 100;
00156         filtroSegmentacion = new itkFM3D();
00157         //------------------------------------------------------------------
00158 
00159 
00160         // RENDERIZACION VTK
00161         //------------------------------------------------------------------
00162         f_gauss = vtkImageGaussianSmooth::New();
00163         f_laplace = vtkSmoothPolyDataFilter::New();
00164         f_cubes = vtkMarchingCubes::New();
00165         f_mapper = vtkPolyDataMapper::New();
00166         f_cubes->SetInput(f_gauss->GetOutput());
00167         f_cubes->SetValue(0,128);
00168         f_laplace->SetInput(f_cubes->GetOutput());
00169         f_mapper->SetInput(f_laplace->GetOutput());
00170         f_mapper->ScalarVisibilityOff();
00171         f_actor = vtkActor::New();
00172         f_actor->SetMapper(f_mapper);
00173         f_actor->GetProperty()->SetColor(0.9,0.5,0.5);
00174         //------------------------------------------------------------------
00175 
00176         
00177 }

Here is the call graph for this function:

wxSegmentationFM3DWidget::~wxSegmentationFM3DWidget (  ) 

Definition at line 181 of file wxSegmentationFM3DWidget.cxx.

References _wxvtk3Dbaseview_Clipping3D_C, _wxvtkclipping3Dview_C, and _wxvtkmpr3Dview_C.

00182 {
00183         if (_wxvtk3Dbaseview_Clipping3D_C       != NULL) { delete       _wxvtk3Dbaseview_Clipping3D_C;  }
00184         if (_wxvtkmpr3Dview_C                           != NULL) { delete       _wxvtkmpr3Dview_C;                              }
00185         if (_wxvtkclipping3Dview_C                      != NULL) { delete       _wxvtkclipping3Dview_C;                 }
00186 }


Member Function Documentation

void wxSegmentationFM3DWidget::ConfigureVTK (  ) 

Definition at line 252 of file wxSegmentationFM3DWidget.cxx.

References _MPRWidget2, _wxvtk3Dbaseview_Clipping3D_C, _wxvtkclipping3Dview_C, _wxvtkmpr3Dview_C, wxMPRWidget::ConfigureVTK(), wxVtkBaseView::GetInteractorStyleBaseView(), vtkInteractorStyle3DView::SetWxVtkClipping3DView(), and vtkInteractorStyle3DView::SetWxVtkMPR3DView().

Referenced by wxMaracas_SegmentationFM3D::ConfigureVTK().

00252                                            {
00253         _MPRWidget2->ConfigureVTK();
00254         _wxvtk3Dbaseview_Clipping3D_C   ->  Configure();
00255         _wxvtkmpr3Dview_C                               ->      Configure();
00256         _wxvtkclipping3Dview_C                  ->      Configure();
00257 
00258         vtkInteractorStyle3DView *vtkinteractorstyle3Dview      = new vtkInteractorStyle3DView();
00259         vtkinteractorstyle3Dview->SetWxVtkMPR3DView(_wxvtkmpr3Dview_C);
00260         vtkinteractorstyle3Dview->SetWxVtkClipping3DView(_wxvtkclipping3Dview_C);
00261         _wxvtk3Dbaseview_Clipping3D_C->GetInteractorStyleBaseView()->AddInteractorStyleMaracas( vtkinteractorstyle3Dview );
00262 
00263 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxSegmentationFM3DWidget::RefreshView (  ) 

Definition at line 280 of file wxSegmentationFM3DWidget.cxx.

References _MPRWidget2, _wxvtk3Dbaseview_Clipping3D_C, _wxvtkclipping3Dview_C, _wxvtkmpr3Dview_C, and wxMPRWidget::RefreshView().

Referenced by OnBtnSegment(), OnBtnUndo(), OnChangeLaplacianConvergence(), OnChangeLaplacianIteration(), OnChangeOpacity(), OnChangeSigmaLevel(), and OnRefreshView().

00281 {
00282         this->_MPRWidget2->RefreshView();
00283         _wxvtkmpr3Dview_C                               -> RefreshView();
00284         _wxvtkclipping3Dview_C                  -> Refresh();
00285         _wxvtk3Dbaseview_Clipping3D_C   -> Refresh();
00286 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxSegmentationFM3DWidget::OnRefreshView ( wxCommandEvent &  event  ) 

Definition at line 275 of file wxSegmentationFM3DWidget.cxx.

References RefreshView().

00276 {
00277         RefreshView();
00278 }

Here is the call graph for this function:

vtkMPRBaseData * wxSegmentationFM3DWidget::GetVtkMPRBaseData (  ) 

Definition at line 266 of file wxSegmentationFM3DWidget.cxx.

References _MPRWidget2, and wxMPRWidget::GetVtkMPRBaseData().

Referenced by wxMaracas_SegmentationFM3D::GetVtkMPRBaseData().

00266                                                             {
00267         return _MPRWidget2->GetVtkMPRBaseData();
00268 }

Here is the call graph for this function:

Here is the caller graph for this function:

vtkPlane2DView * wxSegmentationFM3DWidget::GetVtkPlane2DView (  ) 

Definition at line 270 of file wxSegmentationFM3DWidget.cxx.

References _MPRWidget2, and wxMPRWidget::GetVtkPlane2DView().

Referenced by wxMaracas_SegmentationFM3D::GetVtkPlane2DView().

00271 {
00272         return _MPRWidget2->GetVtkPlane2DView();
00273 }

Here is the call graph for this function:

Here is the caller graph for this function:

wxPanel * wxSegmentationFM3DWidget::Create3DViewContour ( wxWindow *  parent,
vtkMPRBaseData vtkmprbasedata 
) [private]

Definition at line 190 of file wxSegmentationFM3DWidget.cxx.

References _wxvtk3Dbaseview_Clipping3D_C, _wxvtkclipping3Dview_C, _wxvtkmpr3Dview_C, vtkMPR3DDataViewer::Configure(), vtkClipping3DDataViewer::Configure(), wxVtkClipping3DView::CreateControlPanel(), wxVtkMPR3DView::CreateControlPanel(), wxVtkBaseView::GetWxVTKRenderWindowInteractor(), wxVtkClipping3DView::SetVtkClipping3DDataViewer(), wxVtkMPR3DView::SetVtkMPR3DDataViewer(), vtkMPR3DDataViewer::SetVtkMPRBaseData(), and vtkClipping3DDataViewer::SetVtkMPRBaseData().

00191 {
00192         wxWindow *wxwindow;
00193         wxPanel *panel=new wxPanel(parent,-1);
00194 
00195         wxSplitterWindow        *panelClipping3D        = new wxSplitterWindow( panel , -1);
00196         _wxvtk3Dbaseview_Clipping3D_C = new wxVtk3DBaseView( panelClipping3D );
00197 
00198         _wxvtkclipping3Dview_C = new wxVtkClipping3DView(_wxvtk3Dbaseview_Clipping3D_C);
00199         vtkClipping3DDataViewer *vtkclipping3Ddataviewer = new vtkClipping3DDataViewer(); 
00200         vtkclipping3Ddataviewer->SetVtkMPRBaseData(vtkmprbasedata);
00201         vtkclipping3Ddataviewer->Configure();
00202         _wxvtkclipping3Dview_C->SetVtkClipping3DDataViewer(vtkclipping3Ddataviewer);
00203 
00204         _wxvtkmpr3Dview_C = new wxVtkMPR3DView( _wxvtk3Dbaseview_Clipping3D_C );
00205         vtkMPR3DDataViewer *vtkmpr3Ddataviewer = new vtkMPR3DDataViewer(); 
00206         vtkmpr3Ddataviewer->SetVtkMPRBaseData(vtkmprbasedata);
00207         vtkmpr3Ddataviewer->Configure();
00208         _wxvtkmpr3Dview_C->SetVtkMPR3DDataViewer(vtkmpr3Ddataviewer);
00209 
00210         wxWindow        *window3D                               = _wxvtk3Dbaseview_Clipping3D_C->GetWxVTKRenderWindowInteractor();
00211 
00212         wxPanel         *panelControl                   = new wxPanel(panelClipping3D,-1);      
00213         wxPanel         *controlPanelMPR3D              = _wxvtkmpr3Dview_C->CreateControlPanel(panelControl);
00214         wxPanel         *controlPanelClipping3D = _wxvtkclipping3Dview_C->CreateControlPanel(panelControl);
00215 
00216 //      wxBoxSizer  *sizerCtrol             = new wxBoxSizer(wxVERTICAL);
00217         wxFlexGridSizer  *sizerCtrol        = new wxFlexGridSizer(1);
00218 
00219         sizerCtrol->Add(controlPanelMPR3D , 1, wxALL|wxEXPAND, 2);
00220         sizerCtrol->Add(controlPanelClipping3D , 1, wxALL|wxEXPAND, 2);
00221         panelControl->SetAutoLayout(true);
00222         panelControl->SetSizer(sizerCtrol);
00223         panelControl->SetSize(400,350);
00224         panelControl->Layout();
00225 
00226         int ww,hh;
00227         wxWindow *pp=this;
00228         while (pp->GetParent()!=NULL) pp=pp->GetParent();
00229         pp->GetSize(&ww,&hh);
00230 
00231 //EEDxx2.4
00232 //              panelClipping3D -> SetMinimumPaneSize( -50 );
00233         panelClipping3D -> SplitHorizontally( panelControl,window3D, (int)(hh*0.20) );
00234         wxwindow=panelClipping3D;
00235 
00236     wxBoxSizer *sizerH1 = new wxBoxSizer(wxHORIZONTAL);
00237         sizerH1->Add(wxwindow , 1, wxALL|wxEXPAND, 0);
00238         panel->SetAutoLayout(true);
00239         panel->SetSizer(sizerH1);
00240         panel->SetSize(400,400);
00241         panel->Layout();
00242 
00243 //EEDxx2.4
00244 //      panel->FitInside();
00245 //      FitInside();
00246 
00247         return panel;
00248 }

Here is the call graph for this function:

void wxSegmentationFM3DWidget::ConfigureContour (  )  [private]

void wxSegmentationFM3DWidget::OnChangeAlpha ( wxScrollEvent &  event  )  [private]

This method is invoked when the slAlpha scroll change its value

Definition at line 338 of file wxSegmentationFM3DWidget.cxx.

References alphaValue, and slAlpha.

Referenced by wxSegmentationFM3DWidget().

00338                                                                 {
00339         alphaValue = ((double)slAlpha->GetValue());
00340         alphaValue = alphaValue / 100;
00341 }

Here is the caller graph for this function:

void wxSegmentationFM3DWidget::OnChangeBeta ( wxScrollEvent &  event  )  [private]

This method is invoked when the slBeta scroll change its value

Definition at line 347 of file wxSegmentationFM3DWidget.cxx.

References betaValue, and slBeta.

Referenced by wxSegmentationFM3DWidget().

00347                                                                {
00348         betaValue = ((double)slBeta->GetValue());
00349 }

Here is the caller graph for this function:

void wxSegmentationFM3DWidget::OnBtnSegment ( wxCommandEvent &  event  )  [private]

This method is invoked when the segmentation button is pressed

Definition at line 296 of file wxSegmentationFM3DWidget.cxx.

References _MPRWidget2, _wxvtkmpr3Dview_C, itkFM3D::AddSeed(), btnUndo, f_actor, f_gauss, f_laplace, filtroSegmentacion, vtkBaseData::GetImageData(), wxVtk3DBaseView::GetRenderer(), wxMPRWidget::GetVtkMPRBaseData(), wxVtkMPR3DView::GetWxvtk3Dbaseview(), vtkMPRBaseData::GetX(), vtkMPRBaseData::GetY(), vtkBaseData::GetZ(), RefreshView(), itkFM3D::segment(), itkFM3D::SetAlpha(), itkFM3D::SetBeta(), slLaplacianConvergence, slLaplacianIterations, slSigmaLevel, and slVolumeOpacity.

Referenced by wxSegmentationFM3DWidget().

00296                                                                 {
00297 
00298         wxBusyCursor wait;
00299         
00300 
00301         double x =_MPRWidget2->GetVtkMPRBaseData()->GetX();
00302         double y =_MPRWidget2->GetVtkMPRBaseData()->GetY();
00303         double z = _MPRWidget2->GetVtkMPRBaseData()->GetZ();
00304 
00305         filtroSegmentacion->AddSeed(x,y,z);
00306         filtroSegmentacion->SetAlpha(this->alphaValue);
00307         filtroSegmentacion->SetBeta(this->betaValue);
00308 
00309         vtkImageData* resultado = filtroSegmentacion->segment(_MPRWidget2->GetVtkMPRBaseData()->GetImageData() );
00310 
00311                 
00312         f_gauss->SetInput(resultado);
00313         f_gauss->SetStandardDeviation(this->sigmaValue);
00314         
00315     f_laplace->SetNumberOfIterations(this->iterationsValue);
00316         f_laplace->SetConvergence(this->convergenceValue);
00317         f_laplace->Update();
00318 
00319         f_actor->GetProperty()->SetOpacity(this->opacityValue);
00320         
00321         vtkRenderer *ren = _wxvtkmpr3Dview_C->GetWxvtk3Dbaseview()->GetRenderer();
00322         
00323         ren->AddActor(f_actor);
00324         RefreshView();
00325         
00326         btnUndo->Enable();
00327         slVolumeOpacity->Enable();
00328         slSigmaLevel->Enable();
00329         slLaplacianConvergence->Enable();
00330         slLaplacianIterations->Enable();
00331 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxSegmentationFM3DWidget::OnBtnUndo ( wxCommandEvent &  event  )  [private]

Carga la imagen resultado de la segmentacion FM ITK

Definition at line 355 of file wxSegmentationFM3DWidget.cxx.

References _wxvtkmpr3Dview_C, btnUndo, f_actor, wxVtk3DBaseView::GetRenderer(), wxVtkMPR3DView::GetWxvtk3Dbaseview(), RefreshView(), slLaplacianConvergence, slLaplacianIterations, slSigmaLevel, and slVolumeOpacity.

Referenced by wxSegmentationFM3DWidget().

00355                                                              {
00356 
00357         if (f_actor != NULL){
00358                 vtkRenderer *ren = _wxvtkmpr3Dview_C->GetWxvtk3Dbaseview()->GetRenderer();
00359                 ren->RemoveActor(f_actor);
00360                 RefreshView();
00361                 btnUndo->Disable();
00362                 slSigmaLevel->Disable();
00363                 slVolumeOpacity->Disable();
00364                 slLaplacianConvergence->Disable();
00365                 slLaplacianIterations->Disable();
00366         }
00367 
00368 
00369 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxSegmentationFM3DWidget::OnChangeOpacity ( wxScrollEvent &  event  )  [private]

Este metodo cambia la opacidad del actor que representa la segmentacion realizada

Definition at line 375 of file wxSegmentationFM3DWidget.cxx.

References f_actor, opacityValue, RefreshView(), and slVolumeOpacity.

Referenced by wxSegmentationFM3DWidget().

00375                                                                   {
00376         if (f_actor != NULL){
00377                 opacityValue = ((double)slVolumeOpacity->GetValue())/100.0;
00378                 f_actor->GetProperty()->SetOpacity(opacityValue);
00379                 RefreshView();
00380         }
00381 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxSegmentationFM3DWidget::OnChangeSigmaLevel ( wxScrollEvent &  event  )  [private]

Cambia el valor de la desviacion estandar del filtro gaussiano aplicado al volumen resultado de la segmentacion

Definition at line 387 of file wxSegmentationFM3DWidget.cxx.

References f_actor, f_gauss, f_laplace, RefreshView(), sigmaValue, and slSigmaLevel.

Referenced by wxSegmentationFM3DWidget().

00387                                                                      {
00388         if(f_actor != NULL){
00389                 this->sigmaValue = ((double)slSigmaLevel->GetValue())/300.0;
00390                 f_gauss->SetStandardDeviation(this->sigmaValue);
00391                 f_laplace->Update();
00392                 RefreshView();
00393         }
00394 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxSegmentationFM3DWidget::OnChangeLaplacianConvergence ( wxScrollEvent &  event  )  [private]

Cambia el valor de la convergencia del filtro de suavizado laplaciano aplicado a la superficie que representa el volumen resultado de la segmentacion

Definition at line 400 of file wxSegmentationFM3DWidget.cxx.

References convergenceValue, f_actor, f_laplace, RefreshView(), and slLaplacianConvergence.

Referenced by wxSegmentationFM3DWidget().

00400                                                                                {
00401         if(f_actor != NULL){
00402                 this->convergenceValue = ((double)slLaplacianConvergence->GetValue())/3000.0;
00403                 f_laplace->SetConvergence(this->convergenceValue);
00404                 f_laplace->Update();
00405                 RefreshView();
00406         }
00407 }

Here is the call graph for this function:

Here is the caller graph for this function:

void wxSegmentationFM3DWidget::OnChangeLaplacianIteration ( wxScrollEvent &  event  )  [private]

Cambia el numero de iteraciones del filtro de suavizado laplaciano aplicado a la superficie que representa el volumen resultado de la segmentacion

Definition at line 413 of file wxSegmentationFM3DWidget.cxx.

References f_actor, f_laplace, iterationsValue, RefreshView(), and slLaplacianIterations.

Referenced by wxSegmentationFM3DWidget().

00413                                                                              {
00414         if(f_actor != NULL){
00415                 this->iterationsValue = slLaplacianIterations->GetValue();
00416                 f_laplace->SetNumberOfIterations(this->iterationsValue);
00417                 f_laplace->Update();
00418                 RefreshView();
00419         }
00420 }

Here is the call graph for this function:

Here is the caller graph for this function:

wxSegmentationFM3DWidget::DECLARE_EVENT_TABLE (  )  [private]


Member Data Documentation

double wxSegmentationFM3DWidget::_voxelSize [private]

Definition at line 81 of file wxSegmentationFM3DWidget.h.

marImageData* wxSegmentationFM3DWidget::_marimageData [private]

Definition at line 82 of file wxSegmentationFM3DWidget.h.

wxMPRWidget2* wxSegmentationFM3DWidget::_MPRWidget2 [private]

Definition at line 83 of file wxSegmentationFM3DWidget.h.

Referenced by ConfigureVTK(), GetVtkMPRBaseData(), GetVtkPlane2DView(), OnBtnSegment(), and RefreshView().

wxVtk3DBaseView* wxSegmentationFM3DWidget::_wxvtk3Dbaseview_Clipping3D_C [private]

Definition at line 86 of file wxSegmentationFM3DWidget.h.

Referenced by ConfigureVTK(), Create3DViewContour(), RefreshView(), and ~wxSegmentationFM3DWidget().

wxVtkMPR3DView* wxSegmentationFM3DWidget::_wxvtkmpr3Dview_C [private]

Definition at line 87 of file wxSegmentationFM3DWidget.h.

Referenced by ConfigureVTK(), Create3DViewContour(), OnBtnSegment(), OnBtnUndo(), RefreshView(), and ~wxSegmentationFM3DWidget().

wxVtkClipping3DView* wxSegmentationFM3DWidget::_wxvtkclipping3Dview_C [private]

Definition at line 88 of file wxSegmentationFM3DWidget.h.

Referenced by ConfigureVTK(), Create3DViewContour(), RefreshView(), and ~wxSegmentationFM3DWidget().

wxSlider* wxSegmentationFM3DWidget::slAlpha [private]

Definition at line 95 of file wxSegmentationFM3DWidget.h.

Referenced by OnChangeAlpha().

wxSlider* wxSegmentationFM3DWidget::slBeta [private]

Definition at line 96 of file wxSegmentationFM3DWidget.h.

Referenced by OnChangeBeta().

wxButton* wxSegmentationFM3DWidget::btnSegment [private]

Definition at line 97 of file wxSegmentationFM3DWidget.h.

wxButton* wxSegmentationFM3DWidget::btnUndo [private]

Definition at line 98 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), and OnBtnUndo().

wxSlider* wxSegmentationFM3DWidget::slVolumeOpacity [private]

Definition at line 99 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), OnBtnUndo(), and OnChangeOpacity().

wxSlider* wxSegmentationFM3DWidget::slSigmaLevel [private]

Definition at line 100 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), OnBtnUndo(), and OnChangeSigmaLevel().

wxSlider* wxSegmentationFM3DWidget::slLaplacianConvergence [private]

Definition at line 101 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), OnBtnUndo(), and OnChangeLaplacianConvergence().

wxSlider* wxSegmentationFM3DWidget::slLaplacianIterations [private]

Definition at line 102 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), OnBtnUndo(), and OnChangeLaplacianIteration().

itkFM3D* wxSegmentationFM3DWidget::filtroSegmentacion [private]

Definition at line 116 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment().

double wxSegmentationFM3DWidget::alphaValue [private]

Definition at line 117 of file wxSegmentationFM3DWidget.h.

Referenced by OnChangeAlpha().

double wxSegmentationFM3DWidget::betaValue [private]

Definition at line 118 of file wxSegmentationFM3DWidget.h.

Referenced by OnChangeBeta().

double wxSegmentationFM3DWidget::opacityValue [private]

Definition at line 119 of file wxSegmentationFM3DWidget.h.

Referenced by OnChangeOpacity().

double wxSegmentationFM3DWidget::sigmaValue [private]

Definition at line 120 of file wxSegmentationFM3DWidget.h.

Referenced by OnChangeSigmaLevel().

float wxSegmentationFM3DWidget::convergenceValue [private]

Definition at line 121 of file wxSegmentationFM3DWidget.h.

Referenced by OnChangeLaplacianConvergence().

int wxSegmentationFM3DWidget::iterationsValue [private]

Definition at line 122 of file wxSegmentationFM3DWidget.h.

Referenced by OnChangeLaplacianIteration().

vtkImageGaussianSmooth* wxSegmentationFM3DWidget::f_gauss [private]

Definition at line 125 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), and OnChangeSigmaLevel().

vtkMarchingCubes* wxSegmentationFM3DWidget::f_cubes [private]

Definition at line 126 of file wxSegmentationFM3DWidget.h.

vtkSmoothPolyDataFilter* wxSegmentationFM3DWidget::f_laplace [private]

Definition at line 127 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), OnChangeLaplacianConvergence(), OnChangeLaplacianIteration(), and OnChangeSigmaLevel().

vtkPolyDataMapper* wxSegmentationFM3DWidget::f_mapper [private]

Definition at line 128 of file wxSegmentationFM3DWidget.h.

vtkActor* wxSegmentationFM3DWidget::f_actor [private]

Definition at line 129 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), OnBtnUndo(), OnChangeLaplacianConvergence(), OnChangeLaplacianIteration(), OnChangeOpacity(), and OnChangeSigmaLevel().


The documentation for this class was generated from the following files:
Generated on Wed Jul 29 16:36:26 2009 for creaMaracasVisu_lib by  doxygen 1.5.3