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::ConfigureContour (  )  [private]
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:

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(), 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:

wxSegmentationFM3DWidget::DECLARE_EVENT_TABLE (  )  [private]
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:

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(), alphaValue, betaValue, btnUndo, convergenceValue, f_actor, f_gauss, f_laplace, filtroSegmentacion, vtkBaseData::GetImageData(), wxVtk3DBaseView::GetRenderer(), wxMPRWidget::GetVtkMPRBaseData(), wxVtkMPR3DView::GetWxvtk3Dbaseview(), vtkMPRBaseData::GetX(), vtkMPRBaseData::GetY(), vtkBaseData::GetZ(), iterationsValue, opacityValue, RefreshView(), itkFM3D::segment(), itkFM3D::SetAlpha(), itkFM3D::SetBeta(), sigmaValue, 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::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::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:

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::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:

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:


Member Data Documentation

Definition at line 82 of file wxSegmentationFM3DWidget.h.

Definition at line 81 of file wxSegmentationFM3DWidget.h.

Definition at line 117 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), and OnChangeAlpha().

Definition at line 118 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), and OnChangeBeta().

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().

Definition at line 121 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), and OnChangeLaplacianConvergence().

vtkActor* wxSegmentationFM3DWidget::f_actor [private]
vtkMarchingCubes* wxSegmentationFM3DWidget::f_cubes [private]

Definition at line 126 of file wxSegmentationFM3DWidget.h.

vtkImageGaussianSmooth* wxSegmentationFM3DWidget::f_gauss [private]

Definition at line 125 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), and OnChangeSigmaLevel().

vtkSmoothPolyDataFilter* wxSegmentationFM3DWidget::f_laplace [private]
vtkPolyDataMapper* wxSegmentationFM3DWidget::f_mapper [private]

Definition at line 128 of file wxSegmentationFM3DWidget.h.

Definition at line 116 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment().

Definition at line 122 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), and OnChangeLaplacianIteration().

Definition at line 119 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), and OnChangeOpacity().

Definition at line 120 of file wxSegmentationFM3DWidget.h.

Referenced by OnBtnSegment(), and OnChangeSigmaLevel().

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().

Definition at line 102 of file wxSegmentationFM3DWidget.h.

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

Definition at line 100 of file wxSegmentationFM3DWidget.h.

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

Definition at line 99 of file wxSegmentationFM3DWidget.h.

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


The documentation for this class was generated from the following files:

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1