]> Creatis software - creaContours.git/blobdiff - lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx
no message
[creaContours.git] / lib / Interface_ManagerContour_NDimensions / wxContourMainFrame.cxx
index 89f6c39f741d38bc0ee2f9cefcff02aec367c6c9..b6d2133f84b044328d314268bc7d81e88f567c84 100644 (file)
@@ -62,7 +62,8 @@ char wxContourMainFrame::COPY = 'C';
 //             m_notebook_style =wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_EXTERNAL_MOVE | wxNO_BORDER;
 //             m_notebook_theme = 0;   
                //wxContour_ActionCommandsID a;
-
+               
+               _contourextractdata                     = NULL;
        }
 
        wxContourMainFrame :: wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector<vtkImageData*> images, long style,std::string datadir)         
@@ -101,7 +102,8 @@ char wxContourMainFrame::COPY = 'C';
                {
                        this->setVectImages(images);
                }
-
+               
+               _contourextractdata                     = NULL;
 }
 
 void wxContourMainFrame::setVectImages(std::vector<vtkImageData*> imgs)
@@ -169,6 +171,7 @@ void wxContourMainFrame::setVectImages(std::vector<vtkImageData*> imgs)
 
        wxContourMainFrame :: ~wxContourMainFrame()
        {
+               delete _contourextractdata;
                deleteAllContours();
                _pannew->Close();
                interfMainPanel::resetInstance();
@@ -578,13 +581,50 @@ void wxContourMainFrame::setConceptValue( std::string name, int value ){
        _instantPanel->setConceptValue(name, value);
 }
 
+
 ConceptDataWrap* wxContourMainFrame::getLastConceptData(){
        return _instantPanel->getLastConceptData();
 }
+
+
 bool wxContourMainFrame::getIfConceptCheckedAt( std::string name, int pos ){
        return _instantPanel->getIfConceptCheckedAt( name, pos );
 }
 
+
+
+void wxContourMainFrame::ShowResultImages(int typeContourGroup)
+{
+       vtkImageData * mask;
+       vtkImageData * value;
+       this->getMaskValue(&mask, &value, typeContourGroup);
+       
+       std::vector<int> nTypeView;
+       nTypeView.push_back(5);
+       nTypeView.push_back(1);
+       nTypeView.push_back(2);
+       nTypeView.push_back(0); 
+       
+       wxFrame *frame = new wxFrame(this, -1,_T("Result image extracted.."),wxDefaultPosition,wxSize(600,600), wxDEFAULT_FRAME_STYLE|wxSTAY_ON_TOP);
+       wxAuiManager *m_mgr_noteBookViewerResult = new wxAuiManager();
+       m_mgr_noteBookViewerResult->SetManagedWindow(frame);
+       
+       wxAuiNotebook* noteBookViewerResult = new wxAuiNotebook(frame, -1, wxPoint(600, 600), wxSize(430,200), m_notebook_style);
+       m_mgr_noteBookViewerResult->AddPane(noteBookViewerResult, wxAuiPaneInfo().Name(wxT("notebook_content")).CenterPane().PaneBorder(false));
+
+       wxPanel *panelViewer1 = new wxMaracas_N_ViewersWidget(noteBookViewerResult, value,&nTypeView);
+       wxPanel *panelViewer2 = new wxMaracas_N_ViewersWidget(noteBookViewerResult, mask,&nTypeView);
+       
+
+       noteBookViewerResult->AddPage( panelViewer1, wxT("Image result") );
+       noteBookViewerResult->AddPage( panelViewer2, wxT("Mask result") );
+       m_mgr_noteBookViewerResult->Update();
+       frame->Show();
+}
+
+
+
+
 void wxContourMainFrame::changeInstant()
 {
                std::vector<int> instantVect;
@@ -604,6 +644,7 @@ void wxContourMainFrame::changeInstant()
 }
 
 
+
 void wxContourMainFrame :: updateInstantOutlines()
 {
        _theViewPanel->removeSceneContours();
@@ -2329,13 +2370,21 @@ std::vector<std::string> wxContourMainFrame::getOutlinesName(int slide){
        return kernelManager->getOutlinesNameAtInstant(tempVector);
 }
 
+
+void wxContourMainFrame::GenerateContourExtractData()
+{
+       if (_contourextractdata==NULL) { _contourextractdata = new ContourExtractData(true); }
+}
+
+
 void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ)
 {
+       GenerateContourExtractData();
+       
        int maxContourGroup     =       0;
 
-       ContourExtractData      *contourextractdata = new ContourExtractData();
        
-       contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
+       _contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
 
        std::vector<manualContourModel*> lstManConMod;
        std::vector<manualContourModel*> lstManConModTmp;
@@ -2389,7 +2438,7 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel
        
 
        totalZ  = maxZ-minZ+1;
-       contourextractdata->SetImage( imagedata);
+       _contourextractdata->SetImage( imagedata);
 
 // For each slice..
        for ( z=minZ ; z<=maxZ ; z++ )
@@ -2402,7 +2451,7 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel
                //_staticTextInformation->SetLabel(tmpString);
 
                //Extraction data from contours of each slice
-               contourextractdata->SetZtoBeAnalys(z);
+               _contourextractdata->SetZtoBeAnalys(z);
 
                tempVector[1]=z;
                Instant instant(&tempVector);
@@ -2449,18 +2498,18 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel
                                lstManConModTmp = lstManConModExp;
                        }
 
-                       contourextractdata->SetLstManualContourModel( lstManConModTmp );
+                       _contourextractdata->SetLstManualContourModel( lstManConModTmp );
 
                        pLstValue.clear();
                        pLstValuePosX.clear();
                        pLstValuePosY.clear();
                        pLstValuePosZ.clear();
-                       contourextractdata->GetValuesInsideCrown(       &pLstValue,
+                       _contourextractdata->GetValuesInsideCrown(      &pLstValue,
                                                                                                                &pLstValuePosX,
                                                                                                                &pLstValuePosY,
                                                                                                                &pLstValuePosZ);
                        // Statistics of each slice.
-                       contourextractdata->Statistics( &pLstValue,
+                       _contourextractdata->Statistics( &pLstValue,
                                                                                        minimumZ,
                                                                                        maximumZ,
                                                                                        &resultGrayRangeCount, 
@@ -2518,7 +2567,6 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel
        }
 
        interfMainPanel::getInstance()->setStringInfoPanel( _T("") );
-       delete contourextractdata;
 }
 
 //AD: 29-05-09
@@ -2580,9 +2628,10 @@ void wxContourMainFrame::onSaveResults(std::string directory,std::string namefil
 void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefile,int typeContourGroup)
 {
        wxBusyCursor wait;
-       ContourExtractData      *contourextractdata = new ContourExtractData();
+       GenerateContourExtractData();
+       
        //int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
-       contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
+       _contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
 
        std::vector<manualContourModel*> lstManConMod;
        std::vector<manualContourModel*> lstManConModTmp;
@@ -2609,7 +2658,7 @@ void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefil
        maxZ    = sizeZ;//_mbarrange->GetEnd();
        totalZ  = maxZ-minZ+1;
 
-       contourextractdata->SetImage( imagedata);
+       _contourextractdata->SetImage( imagedata);
 
 // For each slice..
        for ( z=0 ; z<sizeZ ; z++)
@@ -2624,7 +2673,7 @@ void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefil
 
 
                //Extraction data from contours of each slice
-               contourextractdata->SetZtoBeAnalys( z);
+               _contourextractdata->SetZtoBeAnalys( z);
 
                tempVector[1]=z;
                Instant instant(&tempVector);
@@ -2659,13 +2708,13 @@ void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefil
                                lstManConModTmp = lstManConModExp;
                        }
 
-                       contourextractdata->SetLstManualContourModel( lstManConModTmp );
+                       _contourextractdata->SetLstManualContourModel( lstManConModTmp );
 
                        pLstValue.clear();
                        pLstValuePosX.clear();
                        pLstValuePosY.clear();
                        pLstValuePosZ.clear();
-                       contourextractdata->GetValuesInsideCrown(       &pLstValue,
+                       _contourextractdata->GetValuesInsideCrown(      &pLstValue,
                                                                                                                &pLstValuePosX,
                                                                                                                &pLstValuePosY,
                                                                                                                &pLstValuePosZ);
@@ -2700,18 +2749,19 @@ void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefil
        } // for z
        interfMainPanel::getInstance()->setStringInfoPanel(_T(""));
        //_staticTextInformation->SetLabel( _T("") );
-       delete contourextractdata;
+
 }
 
 void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value,int typeContourGroup){
        wxBusyCursor wait;
-       ContourExtractData      *contourextractdata = new ContourExtractData( true );
+       GenerateContourExtractData();
+
        //int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
        if (typeContourGroup==3)
        {
                typeContourGroup=1;
        }
-       contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
+       _contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
 
        std::vector<manualContourModel*> lstManConMod;
        std::vector<manualContourModel*> lstManConModTmp;
@@ -2736,7 +2786,7 @@ void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value
        maxZ    = sizeZ;//_mbarrange->GetEnd();
        totalZ  = maxZ-minZ+1;
 
-       contourextractdata->SetImage( imagedata);
+       _contourextractdata->SetImage( imagedata);
 
 // For each slice..
        for ( z=0 ; z<sizeZ ; z++)
@@ -2748,7 +2798,7 @@ void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value
                interfMainPanel::getInstance()->setStringInfoPanel(tmpString);
 
                //Extraction data from contours of each slice
-               contourextractdata->SetZtoBeAnalys( z);
+               _contourextractdata->SetZtoBeAnalys( z);
 
                tempVector[1]=z;
                Instant instant(&tempVector);
@@ -2781,15 +2831,15 @@ void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value
                                lstManConModTmp = lstManConModExp;
                        }
 
-                       contourextractdata->SetLstManualContourModel( lstManConModTmp );
-                       contourextractdata->CalculateImageResult(); // with actual Z
+                       _contourextractdata->SetLstManualContourModel( lstManConModTmp );
+                       _contourextractdata->CalculateImageResult(); // with actual Z
 
                } // for  iContourGroup
        } // for z
 
-       (*value) = contourextractdata->GetVtkImageValueResult();
-       (*mask) contourextractdata->GetVtkImageMaskResult();
-       delete contourextractdata;
+       (*value) = _contourextractdata->GetVtkImageValueResult();
+       (*mask)  = _contourextractdata->GetVtkImageMaskResult();
+
 }
 
 void wxContourMainFrame::SaveImageResult(std::string directory,std::string namefile, vtkImageData* mask,vtkImageData* value)