From bf5305ff6b9e5aa7832205700e8dcee548803cae Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Fri, 5 Nov 2010 18:25:10 +0000 Subject: [PATCH] install creaImageIO descriptor --- install/CMakeLists.txt | 4 +- .../wxContourMainFrame.cxx | 748 +++++++++--------- .../wxContourMainFrame.h | 129 +-- 3 files changed, 454 insertions(+), 427 deletions(-) diff --git a/install/CMakeLists.txt b/install/CMakeLists.txt index 3938c30..9e5aef9 100644 --- a/install/CMakeLists.txt +++ b/install/CMakeLists.txt @@ -55,9 +55,9 @@ ENDFOREACH(iLST) #-- data/gimmick -- IF (WIN32) - SET(INSTALL_DATA_DIR "bin/share/gimmick") + SET(INSTALL_DATA_DIR "bin/share/creaImageIO") ELSE (WIN32) - SET(INSTALL_DATA_DIR "share/gimmick/") + SET(INSTALL_DATA_DIR "share/creaImageIO/") ENDIF (WIN32) diff --git a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx index 26678b3..796d46c 100644 --- a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx +++ b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx @@ -29,7 +29,7 @@ using namespace std; wxContourMainFrame* wxContourMainFrame:: instance = NULL; char wxContourMainFrame::COPY = 'C'; - + wxContourMainFrame :: wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,long style) //: wxPanel(parent, id, title, pos, size, style) //: wxWindow(parent, id, pos, size, style) @@ -42,10 +42,10 @@ char wxContourMainFrame::COPY = 'C'; // _modelManager = NULL; _instantPanel = NULL; // _buttonsBar = NULL; -// _gridPanel = NULL; +// _gridPanel = NULL; // _drawToolsPanel = NULL; // _operationsToolsPanel = NULL; - //_autoFormsPanel = NULL; + //_autoFormsPanel = NULL; // _standardToolsPanel = NULL; // _editionToolsPanel = NULL; // _listViewPanel = NULL; @@ -60,9 +60,9 @@ char wxContourMainFrame::COPY = 'C'; // set up default notebook style // m_notebook_style =wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_EXTERNAL_MOVE | wxNO_BORDER; -// m_notebook_theme = 0; +// m_notebook_theme = 0; //wxContour_ActionCommandsID a; - + _contourextractdata = NULL; _viewMaskImage = NULL; _viewMaskImagePanel = NULL; @@ -72,7 +72,7 @@ char wxContourMainFrame::COPY = 'C'; _viewColorLayerImagePanel = NULL; } - wxContourMainFrame :: wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector images, long style,std::string datadir) + wxContourMainFrame :: wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector images, long style,std::string datadir) : wxPanel(parent, id, pos, size, style) { m_mgr.SetManagedWindow(this); @@ -94,13 +94,13 @@ char wxContourMainFrame::COPY = 'C'; // set up default notebook style m_notebook_style =wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_EXTERNAL_MOVE | wxNO_BORDER; - m_notebook_theme = 0; + m_notebook_theme = 0; //wxContour_ActionCommandsID a; _numberOfVariablesStatistics = 7; _datadir = datadir; - + inredo = 0; inundo = 0; @@ -111,7 +111,7 @@ char wxContourMainFrame::COPY = 'C'; { this->setVectImages(images); } - + _contourextractdata = NULL; } @@ -130,19 +130,19 @@ void wxContourMainFrame::setVectImages(std::vector imgs) std::vector conceptNameVect; std::vector conceptSizeVect; - notebook = this->createNotebook(); + notebook = this->createNotebook(); kernelManager = new KernelManagerContour( imgs , _datadir+"/data/" , strCreaContourDataTmp ); _instantPanel = new wxInstantChooserPanel( notebook, "Instant Chooser", true, false, "c" ); - _theViewPanel = new wxContourViewPanel( kernelManager->getSourceImage(), notebook ); - + _theViewPanel = new wxContourViewPanel( kernelManager->getSourceImage(), notebook ); + //------------------------------------------------------------- kernelManager->getConceptsInformation(conceptNameVect, conceptSizeVect); _instantPanel->addConcepts(conceptNameVect, conceptSizeVect); - + double val = _theViewPanel->getCurrentDeep(); _instantPanel->setConceptValue( "Axe Depth", (int)val ); @@ -171,7 +171,7 @@ void wxContourMainFrame::setVectImages(std::vector imgs) wxContourMainFrame* wxContourMainFrame :: getInstance() { - return instance; + return instance; } void wxContourMainFrame :: resetInstance() @@ -193,13 +193,13 @@ void wxContourMainFrame::setVectImages(std::vector imgs) m_mgr.UnInit(); //delete m_mgr; - //El problema al cerrar la aplicacion puede estar asociado - //a que wxAUINotebook esta en la aplicacion + //El problema al cerrar la aplicacion puede estar asociado + //a que wxAUINotebook esta en la aplicacion //principal (wxContourGUIExample)tambien - //EED???? delete _theViewPanel; + //EED???? delete _theViewPanel; //EED???? delete _instantPanel; //EED???? delete _buttonsBar; - //EED???? delete _actualInstant; + //EED???? delete _actualInstant; //EED???? delete _sceneManager; } @@ -215,19 +215,19 @@ void wxContourMainFrame::setVectImages(std::vector imgs) wxBitmap page_bmp = wxArtProvider::GetBitmap(wxART_NORMAL_FILE, wxART_OTHER, wxSize(16,16)); return noteBook; } - + //------------------------------------------------------------------------------------------------------------ - // Creational and initialization methods + // Creational and initialization methods //------------------------------------------------------------------------------------------------------------ bool wxContourMainFrame :: configurePanels( ) { bool configured = _theViewPanel!=NULL; - + configured &= _theViewPanel!=NULL; if( _theViewPanel!=NULL ) { - notebook->AddPage( _theViewPanel, wxT(" View ") ); + notebook->AddPage( _theViewPanel, wxT(" View ") ); m_mgr.Update(); } @@ -240,7 +240,7 @@ void wxContourMainFrame::setVectImages(std::vector imgs) m_mgr.AddPane(notebook, wxAuiPaneInfo().Name(wxT("notebook_content")).CenterPane().PaneBorder(false)); m_mgr.Update(); - + SetMinSize(wxSize(300,300)); m_mgr.Update(); return configured; @@ -251,7 +251,7 @@ void wxContourMainFrame::setVectImages(std::vector imgs) { bool configured = panel!=NULL; configured &= panel!=NULL; - + if( configured ) { notebook->AddPage( panel, wxT(" Viewer "), true ); @@ -263,12 +263,12 @@ void wxContourMainFrame::setVectImages(std::vector imgs) //------------------------------------------------------------------------------------------------------------ // Attributes getters and setters //------------------------------------------------------------------------------------------------------------ - - + + void wxContourMainFrame :: setInstantChooserPanel( wxInstantChooserPanel * theInstantChooserPanel ) { - _instantPanel = theInstantChooserPanel; + _instantPanel = theInstantChooserPanel; } // void wxContourMainFrame :: setButtonsBar( wxContour_ButtonsBar * theButtonsBar ) @@ -287,7 +287,7 @@ void wxContourMainFrame::setVectImages(std::vector imgs) // } // void wxContourMainFrame :: setOperationsToolsPanel( wxContour_OperationsToolsPanel * theOperationsToolsPanel ) -// { +// { // _operationsToolsPanel = theOperationsToolsPanel; // } @@ -314,30 +314,30 @@ void wxContourMainFrame::setVectImages(std::vector imgs) void wxContourMainFrame::onCreateContourSpline( ){ - + //JCP 20-10-08 Undo redo implementation saveState(); //JCP 20-10-08 Undo redo implementation createContour( 1 ); - + } void wxContourMainFrame::onCreateContourRectangle( ){ //JCP 20-10-08 Undo redo implementation saveState(); - //JCP 20-10-08 Undo redo implementation + //JCP 20-10-08 Undo redo implementation createContour( 2 ); } void wxContourMainFrame::onCreateContourCircle( ){ //JCP 20-10-08 Undo redo implementation saveState(); - //JCP 20-10-08 Undo redo implementation + //JCP 20-10-08 Undo redo implementation createContour( 3 ); } void wxContourMainFrame::onCreateContourLine( ){ //JCP 20-10-08 Undo redo implementation saveState(); - //JCP 20-10-08 Undo redo implementation + //JCP 20-10-08 Undo redo implementation createContour( 6 ); } @@ -345,7 +345,7 @@ void wxContourMainFrame::onCreateContourLine( ){ void wxContourMainFrame::onCreateContourPoints( ){ //JCP 20-10-08 Undo redo implementation saveState(); - //JCP 20-10-08 Undo redo implementation + //JCP 20-10-08 Undo redo implementation createContour( 7 ); } // RaC 09-09 -------------------------------------- @@ -354,7 +354,7 @@ void wxContourMainFrame::onCreateContourPoints( ){ void wxContourMainFrame::onCreateContourPolygon( ){ //JCP 20-10-08 Undo redo implementation saveState(); - //JCP 20-10-08 Undo redo implementation + //JCP 20-10-08 Undo redo implementation createContour( 10 ); } // RaC 10-09 -------------------------------------- @@ -369,7 +369,7 @@ void wxContourMainFrame :: onCreateContourBullEye(wxPanel* panel ) std::vector instantVector; _instantPanel->getInstant( instantVector ); std::string theName = kernelManager->createOutline(manModelContour, instantVector); - + /*std::vector instantVector; _instantPanel->getInstant( instantVector ); std::string theName; @@ -379,9 +379,9 @@ void wxContourMainFrame :: onCreateContourBullEye(wxPanel* panel ) if( addedModel ) { double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default - _theViewPanel->getSpacing(spc); + _theViewPanel->getSpacing(spc); //Adding the manualContourControler to interface objects structure - //Adding the manualViewContour to interface objects structure + //Adding the manualViewContour to interface objects structure //_theViewPanel->getSceneManager()->setControlActiveStateOfALL( false );//This call is being done here because if the ROI is created underneath the previously created ROIS will still be active. _theViewPanel->getSceneManager()->configureViewControlTo( theName, manModelContour,spc , 4) ; } @@ -394,7 +394,7 @@ void wxContourMainFrame :: createContour( int typeContour ) std::vector instantVector; _instantPanel->getInstant( instantVector ); std::string theName = kernelManager->createOutline(manModelContour, instantVector); - + /*std::vector instantVector; _instantPanel->getInstant( instantVector ); std::string theName; @@ -403,12 +403,12 @@ void wxContourMainFrame :: createContour( int typeContour ) if( addedModel ) { double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default - _theViewPanel->getSpacing(spc); + _theViewPanel->getSpacing(spc); //Adding the manualContourControler to interface objects structure - //Adding the manualViewContour to interface objects structure + //Adding the manualViewContour to interface objects structure //_sceneManager->setControlActiveStateOfALL( false );//This call is being done here because if the ROI is created underneath the previously created ROIS will still be active. _theViewPanel->getSceneManager()->configureViewControlTo( theName, manModelContour,spc , typeContour) ; - } + } } manualBaseModel * wxContourMainFrame::factoryManualContourModel(wxPanel* panel){ @@ -435,18 +435,18 @@ manualBaseModel * wxContourMainFrame::factoryManualContourModel(wxPanel* panel){ for ( iSector=0 ; iSectorGetAngOfCrownSection(iCrown,iSector); - angDelta= ((PanelBullEyeOptions*)panel)->GetAngDeltaOfCrownSection(iCrown); + angDelta= ((PanelBullEyeOptions*)panel)->GetAngDeltaOfCrownSection(iCrown); manModelContourBullEye->AddSector(radioA,radioB,ang,angDelta); } // for iSector } // for iCrown } // if _panelBullEyeOptions - + return manModelContour; } -void wxContourMainFrame :: saveState(){ - +void wxContourMainFrame :: saveState(){ + std::string temp = kernelManager->saveState(); - saveFileWithContours(temp); + saveFileWithContours(temp); } void wxContourMainFrame::onDeleteContour(){ @@ -487,7 +487,7 @@ void wxContourMainFrame::onDeleteContour(){ for (j=0;jremoveFromScene(theKeyName); kernelManager->deleteCModel(theKeyName); - //_theViewPanel->getSceneManager()->removeFromScene( theKeyName ); + //_theViewPanel->getSceneManager()->removeFromScene( theKeyName ); //cViewer = conwrapviewControl->getViewer(); //_theViewPanel->getSceneManager()->removeWrap( theKeyName ); - //cControler* conwrapviewControl->getControler(); + //cControler* conwrapviewControl->getControler(); // delete cModel; // delete cViewer; // delete cControler; @@ -564,15 +564,15 @@ void wxContourMainFrame::deleteAllContours(){ //int minZ = _mbarrangeDeleteAll->GetStart(); //int maxZ = _mbarrangeDeleteAll->GetEnd(); int minZ, maxZ; - + minZ = 0; maxZ = _theViewPanel->getSceneManager()->GetImageDataSizeZ(); - + //JCP --08-09-2008 - - _theViewPanel->getSceneManager()->removeSceneContours( ); + + _theViewPanel->getSceneManager()->removeSceneContours( ); _theViewPanel->getSceneManager()->removeAllOutlines(); - kernelManager->removeAllOutlines(); + kernelManager->removeAllOutlines(); //JCP --08-09-2008 /* if ( (minZ==0) && (maxZ==_mbarrangeDeleteAll->GetMax() )) @@ -595,7 +595,7 @@ void wxContourMainFrame::deleteAllContours(){ deleteContour( (*contourthing)->getName() ); } //for ii }// for z - } // if + } // if JCP --08-09-2008 */ } @@ -620,23 +620,23 @@ void wxContourMainFrame::ShowResultImages(int typeContourGroup, int selection, i vtkImageData * mask; vtkImageData * value; this->getMaskValue(&mask, &value, typeContourGroup, selection, minZ, maxZ); - + std::vector nTypeView; nTypeView.push_back(5); nTypeView.push_back(1); nTypeView.push_back(2); - nTypeView.push_back(0); - + 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") ); @@ -654,10 +654,10 @@ void wxContourMainFrame::changeInstant() int actualSlice = instantVect[1]; kernelManager->setInstant(instantVect); - + // Refresh Mask image if(_viewMaskImage!=NULL){ - _viewMaskImage->SetZ(actualSlice); + _viewMaskImage->SetZ(actualSlice); if (_viewMaskImagePanel->IsVisible()==true) { vtkImageData *mask, *value; @@ -665,10 +665,10 @@ void wxContourMainFrame::changeInstant() _viewMaskImage->onThreshold(); } } - + // Refresh Threshold image if(_viewThresholdImage!=NULL){ - _viewThresholdImage->SetZ(actualSlice); + _viewThresholdImage->SetZ(actualSlice); if (_viewThresholdImagePanel->IsVisible()==true){ _viewThresholdImage->onThreshold(); } @@ -676,7 +676,7 @@ void wxContourMainFrame::changeInstant() // Refresh Threshold image if(_viewColorLayerImage!=NULL){ - _viewColorLayerImage->SetZ(actualSlice); + _viewColorLayerImage->SetZ(actualSlice); if (_viewColorLayerImagePanel->IsVisible()==true){ _viewColorLayerImage->onThreshold(); } @@ -695,7 +695,7 @@ void wxContourMainFrame :: updateInstantOutlines() _theViewPanel->addNameWrapperToScene(); //for( int i=0; igetSceneManager()->addToScene(namesWrapping[i]->getKeyName(), true, true, true, false, false ); //} } @@ -728,7 +728,7 @@ void wxContourMainFrame::updateInstantAxes() void wxContourMainFrame::onChangeDeep(int val){ - _instantPanel->setConceptValue( "Axe Depth", (int)val ); + _instantPanel->setConceptValue( "Axe Depth", (int)val ); changeInstant(); } @@ -757,11 +757,11 @@ void wxContourMainFrame::onPaste(){ _instantPanel->getInstant( tempVector ); _performingOperation->setEndOperationInstantVector ( tempVector ); std::vector elems = _performingOperation->getKeyNamesOperationElems(); - int i,size = elems.size(); + int i,size = elems.size(); for( i=0; i0 ); - } + } } } void wxContourMainFrame::onUndo(){ @@ -778,7 +778,7 @@ void wxContourMainFrame::onRedo(){ if(kernelManager->onRedo(filename)){ loadState(filename); } - + } void wxContourMainFrame :: createCopyContourOf ( std::string anExistingKName, std::vector &instantNoTouchData, bool append ) { @@ -845,7 +845,7 @@ void wxContourMainFrame ::loadState(std::string filename){ deleteAllContours(); loadContours(pFile, false); - loadContours(pFile, true); + loadContours(pFile, true); fclose(pFile); } @@ -863,10 +863,10 @@ void wxContourMainFrame ::loadContours( FILE *pFile, bool staticContour ) fscanf(pFile,"%s",tmp); // X fscanf(pFile,"%s",tmp); // Y fscanf(pFile,"%s",tmp); // Z - - fscanf(pFile,"%s",tmp); // NumberOfContours + + fscanf(pFile,"%s",tmp); // NumberOfContours fscanf(pFile,"%s",tmp); // ## - int numberOfContours = atoi(tmp); + int numberOfContours = atoi(tmp); std::vector instantVector; int typeContourModel; @@ -900,7 +900,7 @@ void wxContourMainFrame ::loadContours( FILE *pFile, bool staticContour ) fscanf(pFile,"%s",tmp); // TypeView fscanf(pFile,"%s",tmp); // ## - typeView = atoi(tmp); + typeView = atoi(tmp); std::string theName; theName = kernelManager->createOutline( manModelContour, instantVector ); @@ -908,13 +908,13 @@ void wxContourMainFrame ::loadContours( FILE *pFile, bool staticContour ) if( addedModel ) { double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default - _theViewPanel->getSpacing(spc); + _theViewPanel->getSpacing(spc); //Adding the manualContourControler to interface objects structure - //Adding the manualViewContour to interface objects structure + //Adding the manualViewContour to interface objects structure //_theViewPanel->getSceneManager()->setControlActiveStateOfALL( false );//This call is being done here because if the ROI is created underneath the previously created ROIS will still be active. _theViewPanel->getSceneManager()->configureViewControlTo( theName, manModelContour,spc , typeView) ; - } - + } + if (staticContour==true) { Instant instant(&instantVector); @@ -924,7 +924,7 @@ void wxContourMainFrame ::loadContours( FILE *pFile, bool staticContour ) } void wxContourMainFrame::onLoad() -{ +{ std::string fileNameContourROI = GetFileLocation(); //CMRU 03-09-09----------------------------------------------------------------------------------------------- if(GetFileLocation().empty()) @@ -940,7 +940,11 @@ void wxContourMainFrame::onLoad() onLoadContours(fileNameContourROI); } -void wxContourMainFrame::onLoadContours(std::string fileNameContourROI){ + + +void wxContourMainFrame::onLoadContours(std::string fileNameContourROI) +{ +printf("EED2 wxContourMainFrame::onLoadContours 01 \n"); char tmp[255]; char tmpD[255]; @@ -951,18 +955,18 @@ void wxContourMainFrame::onLoadContours(std::string fileNameContourROI){ if(pFile != NULL) { //------------------------------------------------------------------------------------------------------------ - fileNameContourROI.append("data"); + fileNameContourROI.append("data"); FILE *pFileData=fopen(fileNameContourROI.c_str(),"r+"); if(pFileData != NULL) { fscanf(pFileData,"%s",tmpD); // --CreaContour-- fscanf(pFileData,"%s",tmpD); // Version fscanf(pFileData,"%s",tmpD); // 1.0.2 || 1.0.1 || 1.0.0 - + fscanf(pFileData,"%s",tmpD); // onePixelSize fscanf(pFileData,"%s",tmpD); // # - _onePixelSize = atof(tmpD); - fscanf(pFileData,"%s",tmpD); // NumberOfContours + _onePixelSize = atof(tmpD); + fscanf(pFileData,"%s",tmpD); // NumberOfContours fscanf(pFileData,"%s",tmpD); // # } @@ -971,25 +975,27 @@ void wxContourMainFrame::onLoadContours(std::string fileNameContourROI){ fscanf(pFile,"%s",tmp); // Version fscanf(pFile,"%s",tmp); // 1.0.2 || 1.0.1 || 1.0.0 std::string version(tmp); - + //AD:02-06-09 + _tmpReadFileTypeOfTransformation=-1; if (version=="1.0.2") { - openContours(pFile,pFileData,2,false); - openContours(pFile,pFileData,2,true); //Load StaticContours + readDimSpc(pFile); + openContours(pFile,pFileData,false); + openContours(pFile,pFileData,true); //Load StaticContours } - + //AD:02-06-09 else if (version=="1.0.1") { - openContours(pFile,pFileData,1,false); //Skips ImageDimensions and ImageSpacing - openContours(pFile,pFileData,1,true); //Load StaticContours, skips ImageDimensions and ImageSpacing + openContours(pFile,pFileData,false); //Skips ImageDimensions and ImageSpacing + openContours(pFile,pFileData,true); //Load StaticContours, skips ImageDimensions and ImageSpacing } - + //AD:02-06-09 else if (version=="1.0.0") { - openContours(pFile,pFileData,1,false); //Skips ImageDimensions and ImageSpacing + openContours(pFile,pFileData,false); //Skips ImageDimensions and ImageSpacing } fclose(pFile); @@ -1004,13 +1010,15 @@ void wxContourMainFrame::onLoadContours(std::string fileNameContourROI){ } + + void wxContourMainFrame::onImport(){ std::string filename, filenamecontours; wxFileDialog dialog(NULL, _T("Choose a XML Osirix File"), _T(""), _T(""), _T("*.xml"), wxOPEN ); if (dialog.ShowModal() == wxID_OK) { - filename = dialog.GetPath().mb_str(); + filename = dialog.GetPath().mb_str(); filenamecontours = kernelManager->parseOsirixFile(filename); if(filenamecontours.compare("") != 0){ @@ -1025,7 +1033,7 @@ void wxContourMainFrame::onTest(){ if (dialog.ShowModal() == wxID_OK) { - filename = dialog.GetPath().mb_str(); + filename = dialog.GetPath().mb_str(); std::cout << "This is the filename: " << filename << std::endl; } } @@ -1048,9 +1056,9 @@ void wxContourMainFrame::onSave(){ //CMRU 03-09-09----------------------------------------------------------------------------------------------- else { - std::cout<<"Nombre del archivo: "<setCurrentFileName(fileNameContourROI); saveFileWithContours( fileNameContourROI); } @@ -1065,12 +1073,12 @@ void wxContourMainFrame::saveFileWithContours( std::string filename ) //CMRU 03-09-09----------------------------------------------------------------------------------------------- filename.append("data"); - std::cout<<"Nombre del archivo: "< lstNameThings; - int i,sizeLstNameThings; + int i,sizeLstNameThings; fprintf(pFile,"--CreaContour--\n"); fprintf(pFile,"Version %s\n", "1.0.2" ); @@ -1079,9 +1087,9 @@ void wxContourMainFrame::saveFileWithContours( std::string filename ) fprintf(pFileData,"--CreaContour--\n"); fprintf(pFileData,"Version %s\n", "1.0.2" ); fprintf(pFileData,"OnePixelSize %f\n", _onePixelSize); - + //------------------------------------------------------------------------------------------------------------ - + vtkImageData *image = _images[0]; int dimRange[3]; @@ -1095,16 +1103,16 @@ void wxContourMainFrame::saveFileWithContours( std::string filename ) fprintf(pFile,"ImageSpacing %f %f %f\n", spaRange[0], spaRange[1], spaRange[2] ); // Normal Contours - + lstNameThings = kernelManager->GetLstNameThings(); - sizeLstNameThings = lstNameThings.size(); + sizeLstNameThings = lstNameThings.size(); fprintf(pFile,"NumberOfContours %d\n", sizeLstNameThings ); //CMRU 03-09-09----------------------------------------------------------------------------------------------- fprintf(pFileData,"NumberOfContours %d\n", sizeLstNameThings ); //------------------------------------------------------------------------------------------------------------ - for (i=0 ; igetOutlineByKeyName(lstNameThings[i]); @@ -1122,18 +1130,18 @@ void wxContourMainFrame::saveFileWithContours( std::string filename ) //-- Static Contours fprintf(pFile,"ImageDimensions %d %d %d\n", dimRange[0], dimRange[1], dimRange[2] ); - + fprintf(pFile,"ImageSpacing %f %f %f\n", spaRange[0], spaRange[1], spaRange[2] ); - + lstNameThings = kernelManager->GetLstNameThingsStatic(); - sizeLstNameThings = lstNameThings.size(); + sizeLstNameThings = lstNameThings.size(); fprintf(pFile,"NumberOfContoursStatic %d\n", sizeLstNameThings ); //CMRU 03-09-09----------------------------------------------------------------------------------------------- fprintf(pFileData,"NumberOfContoursStatic %d\n", sizeLstNameThings ); //------------------------------------------------------------------------------------------------------------ - for (i=0 ; iSaveThingName( pFile, pFileData, lstNameThings[i] ); _theViewPanel->getSceneManager()->SaveThingName( pFile, lstNameThings[i] ); @@ -1142,57 +1150,95 @@ void wxContourMainFrame::saveFileWithContours( std::string filename ) fclose(pFileData); } -//AD:04-06-09 -void wxContourMainFrame::openContours( FILE *pFile, FILE *pFileData, int version, bool staticContour ) + + +void wxContourMainFrame::readDimSpc(FILE *pFile) { char tmp[255]; - - vtkImageData *image = _images[0]; - int imageDim[3]; - double imageSpac[3]; - int tempDim[3]; - double tempSpac[3]; - - bool compatible = true; - - //Version==2 - if (version==2) - { - image->GetDimensions(imageDim); - image->GetSpacing(imageSpac); - - fscanf(pFile,"%s",tmp); // ImageDimensions - fscanf(pFile,"%s",tmp); // X - tempDim[0] = atoi(tmp); - fscanf(pFile,"%s",tmp); // Y - tempDim[1] = atoi(tmp); - fscanf(pFile,"%s",tmp); // Z - tempDim[2] = atoi(tmp); - - fscanf(pFile,"%s",tmp); // ImageSpacing - fscanf(pFile,"%s",tmp); // X - tempSpac[0] = atof(tmp); - fscanf(pFile,"%s",tmp); // Y - tempSpac[1] = atof(tmp); - fscanf(pFile,"%s",tmp); // Z - tempSpac[2] = atof(tmp); - - //Compare Spacing and Dims in X and Y (Necessary in Z?) - Just for Version 2 - if (imageDim[0]!=tempDim[0] || imageDim[1]!=tempDim[1] || imageSpac[0]!=tempSpac[0] || imageSpac[1]!=tempSpac[1]) + int imageDim[3]; + double imageSpac[3]; + vtkImageData *image = _images[0]; + image->GetDimensions(imageDim); + image->GetSpacing(imageSpac); + + fscanf(pFile,"%s",tmp); // ImageDimensions + fscanf(pFile,"%s",tmp); // X + _tmpReadFileImageDim[0] = atoi(tmp); + fscanf(pFile,"%s",tmp); // Y + _tmpReadFileImageDim[1] = atoi(tmp); + fscanf(pFile,"%s",tmp); // Z + _tmpReadFileImageDim[2] = atoi(tmp); + + fscanf(pFile,"%s",tmp); // ImageSpacing + fscanf(pFile,"%s",tmp); // X + _tmpReadFileImageSpac[0] = atof(tmp); + fscanf(pFile,"%s",tmp); // Y + _tmpReadFileImageSpac[1] = atof(tmp); + fscanf(pFile,"%s",tmp); // Z + _tmpReadFileImageSpac[2] = atof(tmp); + + + //Compare Spacing and Dims in X and Y (Necessary in Z?) - Just for Version 2 + if (imageDim[0]!=_tmpReadFileImageDim[0] || imageDim[1]!=_tmpReadFileImageDim[1] || imageSpac[0]!=_tmpReadFileImageSpac[0] || imageSpac[1]!=_tmpReadFileImageSpac[1]) + { + wxDialog* dial = new wxDialog (this,-1,_T("Tools"),wxDefaultPosition, wxSize(260,160)); + wxSizer* buttonsSizer = dial->CreateSeparatedButtonSizer(wxOK|wxCANCEL); + wxBoxSizer *dialSizer = new wxBoxSizer(wxVERTICAL); + + wxString lstOptOperation[2]; + lstOptOperation[0]=_T("By Dimension"); + lstOptOperation[1]=_T("By Spacing"); + wxRadioBox * radioOpts = new wxRadioBox(dial, -1, _T("Type of Transformation"), wxDefaultPosition, wxSize(270,45), 2 , lstOptOperation, 2, wxRA_SPECIFY_COLS); + + dialSizer->Add( new wxStaticText(dial,-1,_T("The image resolution is not compatible with the ")) , 0, wxGROW ); + dialSizer->Add( new wxStaticText(dial,-1,_T("selected Roi file. Do you want to tranform it?")) , 0, wxGROW ); + dialSizer->Add( new wxStaticText(dial,-1,_T(" ")) , 0, wxGROW ); + dialSizer->Add(radioOpts,0,wxGROW); + dialSizer->Add( new wxStaticText(dial,-1,_T(" ")) , 0, wxGROW ); + dialSizer->Add(buttonsSizer,0,wxGROW); + dial->SetSizer(dialSizer, true); + dial->Layout(); + dial->ShowModal(); + + int _tmpReadFileTypeOfTransformation = -1; + bool transform = false; + + if (dial->GetReturnCode() == wxID_OK) { - compatible = false; - } - } - - fscanf(pFile,"%s",tmp); // NumberOfContours + _tmpReadFileTypeOfTransformation = radioOpts->GetSelection(); + }// if wxOK + + } // if dim spc + +} + + + +//AD:04-06-09 +void wxContourMainFrame::openContours( FILE *pFile, FILE *pFileData, bool staticContour ) +{ + +printf("EED1 wxContourMainFrame::openContours 01 \n"); + char tmp[255]; + + vtkImageData *image = _images[0]; + + int imageDim[3]; + double imageSpac[3]; + image->GetDimensions(imageDim); + image->GetSpacing(imageSpac); + + + fscanf(pFile,"%s",tmp); // NumberOfContours fscanf(pFile,"%s",tmp); // ## - int numberOfContours = atoi(tmp); + int numberOfContours = atoi(tmp); std::vector instantVector; int typeContourModel; manualBaseModel *manModelContour; int typeView; +/* if (compatible==true) { int i; @@ -1228,7 +1274,7 @@ void wxContourMainFrame::openContours( FILE *pFile, FILE *pFileData, int version fscanf(pFile,"%s",tmp); // TypeView fscanf(pFile,"%s",tmp); // ## - typeView = atoi(tmp); + typeView = atoi(tmp); std::string theName; theName = kernelManager->createOutline( manModelContour, instantVector ); @@ -1236,12 +1282,12 @@ void wxContourMainFrame::openContours( FILE *pFile, FILE *pFileData, int version if( addedModel ) { double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default - _theViewPanel->getSpacing(spc); + _theViewPanel->getSpacing(spc); //Adding the manualContourControler to interface objects structure - //Adding the manualViewContour to interface objects structure + //Adding the manualViewContour to interface objects structure //_theViewPanel->getSceneManager()->setControlActiveStateOfALL( false );//This call is being done here because if the ROI is created underneath the previously created ROIS will still be active. _theViewPanel->getSceneManager()->configureViewControlTo( theName, manModelContour,spc , typeView) ; - } + } if (staticContour) //StaticContours (will appear in all slices) { @@ -1249,39 +1295,14 @@ void wxContourMainFrame::openContours( FILE *pFile, FILE *pFileData, int version kernelManager->changeContourOfManager( theName , &instant ); } - }// for numberOfContours + }// for numberOfContours } else if (compatible==false) { - wxDialog* dial = new wxDialog (this,-1,_T("Tools"),wxDefaultPosition, wxSize(260,160)); - wxSizer* buttonsSizer = dial->CreateSeparatedButtonSizer(wxOK|wxCANCEL); - wxBoxSizer *dialSizer = new wxBoxSizer(wxVERTICAL); - - wxString lstOptOperation[2]; - lstOptOperation[0]=_T("By Dimension"); - lstOptOperation[1]=_T("By Spacing"); - wxRadioBox * radioOpts = new wxRadioBox(dial, -1, _T("Type of Transformation"), wxDefaultPosition, wxSize(270,45), 2 , lstOptOperation, 2, wxRA_SPECIFY_COLS); - - dialSizer->Add( new wxStaticText(dial,-1,_T("The image resolution is not compatible with the ")) , 0, wxGROW ); - dialSizer->Add( new wxStaticText(dial,-1,_T("selected Roi file. Do you want to tranform it?")) , 0, wxGROW ); - dialSizer->Add( new wxStaticText(dial,-1,_T(" ")) , 0, wxGROW ); - dialSizer->Add(radioOpts,0,wxGROW); - dialSizer->Add( new wxStaticText(dial,-1,_T(" ")) , 0, wxGROW ); - dialSizer->Add(buttonsSizer,0,wxGROW); - dial->SetSizer(dialSizer, true); - dial->Layout(); - dial->ShowModal(); - - int typeOfTransformation = -1; - bool transform = false; +*/ +printf("EED wxContourMainFrame::openContours 02 \n"); - if (dial->GetReturnCode() == wxID_OK) - { - typeOfTransformation = radioOpts->GetSelection(); - transform = true; - } - int i; for (i=0;iOpenData(pFileData); } - if (transform==true) - { - if (typeOfTransformation==0) - { - double transX, transY; - transX = (double) imageDim[0]/tempDim[0]; - transY = (double) imageDim[1]/tempDim[1]; - manModelContour->Transform_Ax_Plus_B(transX,0,transY,0); - } - else if (typeOfTransformation==1) - { - double transX, transY; - transX = (double) tempSpac[0]/imageSpac[0]; - transY = (double) tempSpac[1]/imageSpac[1]; - manModelContour->Transform_Ax_Plus_B(transX,0,transY,0); - } - } + + if (_tmpReadFileTypeOfTransformation==-1){ + //nothing to do.. + } else if (_tmpReadFileTypeOfTransformation==0){ + double transX, transY; + transX = (double) imageDim[0]/_tmpReadFileImageDim[0]; + transY = (double) imageDim[1]/_tmpReadFileImageDim[1]; + manModelContour->Transform_Ax_Plus_B(transX,0,transY,0); + } else if (_tmpReadFileTypeOfTransformation==1) { + double transX, transY; + transX = (double) _tmpReadFileImageSpac[0]/imageDim[0]; + transY = (double) _tmpReadFileImageSpac[1]/imageDim[1]; + manModelContour->Transform_Ax_Plus_B(transX,0,transY,0); + } fscanf(pFile,"%s",tmp); // TypeView fscanf(pFile,"%s",tmp); // ## - typeView = atoi(tmp); + typeView = atoi(tmp); std::string theName; theName = kernelManager->createOutline( manModelContour, instantVector ); @@ -1339,20 +1357,22 @@ void wxContourMainFrame::openContours( FILE *pFile, FILE *pFileData, int version if( addedModel ) { double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default - _theViewPanel->getSpacing(spc); + _theViewPanel->getSpacing(spc); //Adding the manualContourControler to interface objects structure - //Adding the manualViewContour to interface objects structure + //Adding the manualViewContour to interface objects structure //_theViewPanel->getSceneManager()->setControlActiveStateOfALL( false );//This call is being done here because if the ROI is created underneath the previously created ROIS will still be active. _theViewPanel->getSceneManager()->configureViewControlTo( theName, manModelContour,spc , typeView) ; - } + } if (staticContour) //StaticContours (will appear in all slices) { Instant instant(&instantVector); kernelManager->changeContourOfManager( theName , &instant ); } - }// for numberOfContours - } + }// for numberOfContours + +/* } */ + } void wxContourMainFrame::RefreshInterface(){ @@ -1371,7 +1391,7 @@ void wxContourMainFrame::onSegmentationOneSliceITK(wxString distance, wxString s //JCP 20-10-08 Undo redo implementation saveState(); //JCP 20-10-08 Undo redo implementation - + wxBusyCursor wait; int x = _theViewPanel->GetX(); int y = _theViewPanel->GetY(); @@ -1385,7 +1405,7 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d int typeofcontour = 1; //Image Data vtkImageData *imagedata = getImageData(); - + //Tipo de pixeles a utilizar internamente en ITK typedef float InternalPixelType; const unsigned int Dimension = 2; @@ -1400,10 +1420,10 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d typedef itk::Image< OutputPixelType2, Dimension > OutputImageType2; //DefiniciÛn del thresholder - typedef itk::BinaryThresholdImageFilter< - InternalImageType, + typedef itk::BinaryThresholdImageFilter< + InternalImageType, OutputImageType > ThresholdingFilterType; - + //DefiniciÛn del primer filtro de conversiÛn de pixeles typedef itk::CastImageFilter< OutputImageType, OutputImageType2 > CastFilterType; @@ -1413,17 +1433,17 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d OutputImageType2, InternalImageType > CastFilterType2; //Tercer tipo de conversiÛn - typedef itk::RescaleIntensityImageFilter< - InternalImageType, + typedef itk::RescaleIntensityImageFilter< + InternalImageType, OutputImageType > CastFilterType3; //Cuarto tipo de conversiÛn - typedef itk::RescaleIntensityImageFilter< - OutputImageType, + typedef itk::RescaleIntensityImageFilter< + OutputImageType, OutputImageType > CastFilterType4; ThresholdingFilterType::Pointer thresholder = ThresholdingFilterType::New(); - + thresholder->SetLowerThreshold( 0.0 ); thresholder->SetUpperThreshold( 128 ); @@ -1437,7 +1457,7 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d ConnectorType::Pointer connector= ConnectorType::New(); ConnectorType2::Pointer connector2= ConnectorType2::New(); - + CastFilterType::Pointer filter=CastFilterType::New(); CastFilterType2::Pointer filter2=CastFilterType2::New(); @@ -1445,18 +1465,18 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d connector->SetInput( imagedata ); filter2->SetInput(connector->GetOutput()); - typedef itk::CurvatureAnisotropicDiffusionImageFilter< - InternalImageType, + typedef itk::CurvatureAnisotropicDiffusionImageFilter< + InternalImageType, InternalImageType > SmoothingFilterType; SmoothingFilterType::Pointer smoothing = SmoothingFilterType::New(); - typedef itk::GradientMagnitudeRecursiveGaussianImageFilter< - InternalImageType, + typedef itk::GradientMagnitudeRecursiveGaussianImageFilter< + InternalImageType, InternalImageType > GradientFilterType; - typedef itk::SigmoidImageFilter< - InternalImageType, + typedef itk::SigmoidImageFilter< + InternalImageType, InternalImageType > SigmoidFilterType; GradientFilterType::Pointer gradientMagnitude = GradientFilterType::New(); @@ -1467,20 +1487,20 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d sigmoid->SetOutputMaximum( 255.0 ); - typedef itk::FastMarchingImageFilter< - InternalImageType, + typedef itk::FastMarchingImageFilter< + InternalImageType, InternalImageType > FastMarchingFilterType; FastMarchingFilterType::Pointer fastMarching = FastMarchingFilterType::New(); - typedef itk::GeodesicActiveContourLevelSetImageFilter< InternalImageType, + typedef itk::GeodesicActiveContourLevelSetImageFilter< InternalImageType, InternalImageType > GeodesicActiveContourFilterType; - GeodesicActiveContourFilterType::Pointer geodesicActiveContour = + GeodesicActiveContourFilterType::Pointer geodesicActiveContour = GeodesicActiveContourFilterType::New(); - typedef itk::ZeroCrossingImageFilter< - InternalImageType, + typedef itk::ZeroCrossingImageFilter< + InternalImageType, InternalImageType > ZeroCrossingFilterType; ZeroCrossingFilterType::Pointer zeroCrossing = ZeroCrossingFilterType::New(); @@ -1501,12 +1521,12 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d fastMarching->SetInput( sigmoid->GetOutput() ); geodesicActiveContour->SetInput( fastMarching->GetOutput() ); geodesicActiveContour->SetFeatureImage( sigmoid->GetOutput() ); - + zeroCrossing->SetInput( geodesicActiveContour->GetOutput() ); //thresholder->SetInput( zeroCrossing->GetOutput() ); thresholder->SetInput( geodesicActiveContour->GetOutput() ); connector2->SetInput( thresholder->GetOutput() ); - + smoothing->SetTimeStep( 0.125 ); smoothing->SetNumberOfIterations( 5 ); @@ -1521,7 +1541,7 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d sigmoid->SetAlpha( alpha ); sigmoid->SetBeta( beta ); - + typedef FastMarchingFilterType::NodeContainer NodeContainer; typedef FastMarchingFilterType::NodeType NodeType; @@ -1539,33 +1559,33 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d node.SetValue( seedValue ); node.SetIndex( seedPosition ); - + seeds->Initialize(); seeds->InsertElement( 0, node ); fastMarching->SetTrialPoints( seeds ); fastMarching->SetSpeedConstant( 1.0 ); - - fastMarching->SetOutputSize( + + fastMarching->SetOutputSize( connector->GetOutput()->GetBufferedRegion().GetSize() ); - + fastMarching->SetStoppingValue( 800 ); try { - + connector2->Update(); vtkImageData *idata = connector2->GetOutput(); vtkMarchingContourFilter* cntVTK = vtkMarchingContourFilter::New( ); - + cntVTK->SetInput( idata ); - + cntVTK->SetNumberOfContours( 1 ); cntVTK->SetValue( 0, 255 ); cntVTK->Update( ); cntVTK->UpdateInformation(); - + vtkCleanPolyData* cpd = vtkCleanPolyData::New( ); cpd->SetInput( cntVTK->GetOutput( ) ); cpd->Update( ); @@ -1655,7 +1675,7 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d vecXo.push_back(p[0]); vecYo.push_back(p[1]); } - + } else*/ if(fabs(xAct-x)>11) { @@ -1674,8 +1694,8 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d xAct=x; yAct=y; } - - + + } while(!vecXo.empty()) @@ -1711,7 +1731,7 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d ExtractControlPoints2D *extractcontrolpoints2d = new ExtractControlPoints2D(); extractcontrolpoints2d->SetContour( &vecX , &vecY , &vecZ ); - + int method=2; if (method==0){ extractcontrolpoints2d->GetInitialControlPoints( &vecCtrlPointX , &vecCtrlPointY , &vecCtrlPointZ ); @@ -1730,7 +1750,7 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d actualInstantVector[1]=z; int j,sizeCtrPt = vecCtrlPointX.size(); - + manualBaseModel *manModelContour = kernelManager->factoryManualContourModel( typeofcontour ); manModelContour->SetNumberOfPointsSpline( ((sizeCtrPt/100)+1)*100 ); if (sizeCtrPt>=3){ @@ -1745,27 +1765,27 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d if( addedModel ) { double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default - _theViewPanel->getSpacing(spc); + _theViewPanel->getSpacing(spc); //Adding the manualContourControler to interface objects structure - //Adding the manualViewContour to interface objects structure + //Adding the manualViewContour to interface objects structure //_theViewPanel->getSceneManager()->setControlActiveStateOfALL( false );//This call is being done here because if the ROI is created underneath the previously created ROIS will still be active. _theViewPanel->configureViewControlTo(theName, manModelContour, spc, typeofcontour); //_theViewPanel->getSceneManager()->configureViewControlTo( theName, manModelContour,spc, typeofcontour ) ; } // if addedModel } // if sizeCtrPt - - + + WriterType::Pointer writer = WriterType::New(); CastFilterType3::Pointer caster = CastFilterType3::New(); - + caster->SetInput( gradientMagnitude->GetOutput() ); writer->SetInput( caster->GetOutput() ); writer->SetFileName("Gradient Magnitude.png"); caster->SetOutputMinimum( 0 ); caster->SetOutputMaximum( 255 ); writer->Update(); - + CastFilterType3::Pointer caster2 = CastFilterType3::New(); WriterType::Pointer writer2 = WriterType::New(); @@ -1814,11 +1834,11 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d } void wxContourMainFrame::onSegmentationOneSlice(int isovalue,int sampling,int method){ - + //JCP 20-10-08 Undo redo implementation saveState(); //JCP 20-10-08 Undo redo implementation - + wxBusyCursor wait; int x = _theViewPanel->GetX(); int y = _theViewPanel->GetY(); @@ -1829,12 +1849,12 @@ void wxContourMainFrame::onSegmentationOneSlice(int isovalue,int sampling,int me void wxContourMainFrame::SegmentationOneSlice( int x, int y, int z, int isovalue, int sampling, int method ) -{ +{ int typeofcontour = 1; //--Extracting Contour //vtkImageData *imagedata = _theViewPanel->getSceneManager()->GetImageData(); vtkImageData *imagedata = getImageData(); -// double *range = imagedata->GetScalarRange(); +// double *range = imagedata->GetScalarRange(); // double thr = 1; vtkImageReslice *imageReslice = vtkImageReslice::New(); @@ -1866,7 +1886,7 @@ void wxContourMainFrame::SegmentationOneSlice( int x, int y, int z, int isovalue // cntVTK->SetValue( 1, vmax ); cntVTK->Update( ); cntVTK->UpdateInformation(); - + vtkCleanPolyData* cpd = vtkCleanPolyData::New( ); cpd->SetInput( cntVTK->GetOutput( ) ); cpd->ConvertLinesToPointsOff( ); @@ -1876,13 +1896,13 @@ void wxContourMainFrame::SegmentationOneSlice( int x, int y, int z, int isovalue vtkPolyDataConnectivityFilter* conn = vtkPolyDataConnectivityFilter::New( ); conn->SetExtractionModeToClosestPointRegion( ); //conn->SetMaxRecursionDepth( 3000 ); - + conn->SetInput( cpd->GetOutput( ) ); - + conn->SetClosestPoint( x, y, 0 ); conn->Update( ); conn->UpdateInformation(); - + vtkCleanPolyData* cpd2 = vtkCleanPolyData::New( ); cpd2->SetInput( conn->GetOutput( ) ); cpd2->Update(); @@ -1989,9 +2009,9 @@ myfile.close(); if( addedModel ) { double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default - _theViewPanel->getSpacing(spc); + _theViewPanel->getSpacing(spc); //Adding the manualContourControler to interface objects structure - //Adding the manualViewContour to interface objects structure + //Adding the manualViewContour to interface objects structure //_theViewPanel->getSceneManager()->setControlActiveStateOfALL( false );//This call is being done here because if the ROI is created underneath the previously created ROIS will still be active. _theViewPanel->configureViewControlTo(theName, manModelContour, spc, typeofcontour); //_theViewPanel->getSceneManager()->configureViewControlTo( theName, manModelContour,spc, typeofcontour ) ; @@ -2010,13 +2030,13 @@ void wxContourMainFrame::onSegmentationAllSlice(int minZ,int maxZ,int isovalue,i //JCP 20-10-08 Undo redo implementation saveState(); //JCP 20-10-08 Undo redo implementation - + wxBusyCursor wait; int x = _theViewPanel->GetX(); int y = _theViewPanel->GetY(); int z; - double porcent; - wxString tmpString; + double porcent; + wxString tmpString; double totalZ = maxZ-minZ+1; for( z=minZ ; z<=maxZ ; z++ ) { @@ -2064,7 +2084,7 @@ void wxContourMainFrame::referenceLine() _refLineModel->SetCloseContour(false); _refLineControl->CreateNewManualContour(); -//AD: Inicializar el mirroring con una linea ya pintada +//AD: Inicializar el mirroring con una linea ya pintada /* double z = _refLineControl->GetZ(); @@ -2165,11 +2185,11 @@ void wxContourMainFrame::onMirror() _instantPanel->getInstant( tempVector ); _performingOperation->setEndOperationInstantVector ( tempVector ); std::vector elems = _performingOperation->getKeyNamesOperationElems(); - int i,size = elems.size(); + int i,size = elems.size(); for( i=0; i0 ); - } + } } //deleteContour( _refName ); @@ -2209,7 +2229,7 @@ void wxContourMainFrame::onWidthOfContour(double width){ _theViewPanel->removeSceneContours(); _theViewPanel->SetWidthContour(width); - + //_theViewPanel->getSceneManager()->SetWidthContour( width ); RefreshInterface(); @@ -2223,7 +2243,7 @@ int wxContourMainFrame::getColorWindow() img->GetScalarRange(range); std::cout<<"Val 1: "<getColorWindow(); @@ -2237,7 +2257,7 @@ int wxContourMainFrame::getWindowLevel() img->GetScalarRange(range); std::cout<<"Val 1: "<getWindowLevel(); @@ -2250,7 +2270,7 @@ void wxContourMainFrame::onBrigthnessColorWindowLevel(int colorwindow,int window } void wxContourMainFrame::onInterpolation(bool interpolate){ - _theViewPanel->onInterpolation(interpolate); + _theViewPanel->onInterpolation(interpolate); RefreshInterface(); } @@ -2260,22 +2280,22 @@ void wxContourMainFrame::onChangeInstant(std::string name,int actual){ void wxContourMainFrame::resetAppend(){ kernelManager->resetAppend(); - + } void wxContourMainFrame::onSpreadAdd(){ - std::vector vecX; - std::vector vecY; - std::vector vecZ; + std::vector vecX; + std::vector vecY; + std::vector vecZ; _theViewPanel->GetPointsOfActualContour(&vecX , &vecY , &vecZ ); - + std::vector tempVector; _instantPanel->getInstant( tempVector ); std::string val = kernelManager->onSpreadAdd(&vecX , &vecY , &vecZ, tempVector); interfMainPanel::getInstance()->appendStringSpread(val); - + } void wxContourMainFrame::onSpreadGo(int type){ @@ -2284,7 +2304,7 @@ void wxContourMainFrame::onSpreadGo(int type){ saveState(); //JCP 20-10-08 Undo redo implementation - wxBusyCursor wait; + wxBusyCursor wait; std::vector vecCtrlPointX; std::vector vecCtrlPointY; std::vector vecCtrlPointZ; @@ -2309,8 +2329,8 @@ void wxContourMainFrame::onSpreadGo(int type){ porcent = 100.0* (z-minZ)/totalZ; int numero = (int)(z-minZ+1)/(int)totalZ; std::string stringtemp = " "+kernelManager->intToString(porcent)+"% "+kernelManager->intToString(numero)+" "+kernelManager->intToString(z); - - interfMainPanel::getInstance()->setStringSpread(stringtemp); + + interfMainPanel::getInstance()->setStringSpread(stringtemp); int typeofcontour = 1; std::string theName; @@ -2318,25 +2338,25 @@ void wxContourMainFrame::onSpreadGo(int type){ if( manModelContour!=NULL ){ double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default - this->_theViewPanel->getSpacing(spc); + this->_theViewPanel->getSpacing(spc); //Adding the manualContourControler to interface objects structure - //Adding the manualViewContour to interface objects structure + //Adding the manualViewContour to interface objects structure //_theViewPanel->getSceneManager()->setControlActiveStateOfALL( false );//This call is being done here because if the ROI is created underneath the previously created ROIS will still be active. _theViewPanel->configureViewControlTo( theName, manModelContour,spc,typeofcontour ) ; } // if addedModel - } + } if(z > maxZ){ porcent = 100.0; int numero = (int)(z-minZ+1)/(int)totalZ; std::string stringtemp = " "+kernelManager->intToString(porcent)+"% "+kernelManager->intToString(numero)+" "+kernelManager->intToString(z); - + interfMainPanel::getInstance()->setStringSpread(stringtemp); }// for z //RefreshInterface(); } void wxContourMainFrame::getInstantVector(std::vector& tempVector){ - + } std::vector wxContourMainFrame::getOutlinesName(int slide){ @@ -2357,10 +2377,10 @@ void wxContourMainFrame::SetScalarRange(int grayRangeMin, int grayRangeMax) void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ,int grayRangeMin, int grayRangeMax) { //EED01Juillet2009 GenerateContourExtractData(); - + wxString tempString; int maxContourGroup = 0; - + _contourextractdata ->SetTypeOperation( typeContourGroup % 3 ); std::vector lstManConMod; @@ -2371,9 +2391,9 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel std::vector pLstValuePosY; std::vector pLstValuePosZ; - int resultSize; + int resultSize; int resultGrayRangeCount; - double resultMin; + double resultMin; double resultMax; double resultAverage; double resultStandardeviation; @@ -2389,7 +2409,7 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel int minZ,maxZ; double totalZ; - double porcent; + double porcent; wxString tmpString; @@ -2402,21 +2422,21 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel minZ = minimumZ; maxZ = maximumZ; } - + totalZ = maxZ-minZ+1; //EED01Juillet2009 _contourextractdata->SetImage( imagedata); _contourextractdata->InitVolumeStatistics(); - + // For each slice.. for ( z=minZ ; z<=maxZ ; z++ ) { - + porcent = 100.0* (z-minZ)/totalZ; tmpString.Printf(_T(" %d %c %d/%d %d"), (int)porcent , 37 , z-minZ+1, (int)totalZ ,z); - interfMainPanel::getInstance()->setStringInfoPanel(tmpString); + interfMainPanel::getInstance()->setStringInfoPanel(tmpString); //_staticTextInformation->SetLabel(tmpString); //Extraction data from contours of each slice @@ -2444,7 +2464,7 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel if (typeContourGroup==3) // contour separete { sizeContourGroup=lstManConModExp.size(); - if ( maxContourGroupGetValuesInsideCrown( &numberOfPixels, &pLstValue, @@ -2488,9 +2508,9 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel _contourextractdata->Statistics( &pLstValue, grayRangeMin, grayRangeMax, - &resultGrayRangeCount, - &resultSize, - &resultMin, + &resultGrayRangeCount, + &resultSize, + &resultMin, &resultMax, &resultAverage, &resultStandardeviation); @@ -2504,23 +2524,23 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel tempString.Printf(_T("%d"),numberOfPixels); - interfMainPanel::getInstance()->setCellValueInfoPanel(z, tmpIntA, tempString); + interfMainPanel::getInstance()->setCellValueInfoPanel(z, tmpIntA, tempString); tempString.Printf(_T("%d"),resultGrayRangeCount); interfMainPanel::getInstance()->setCellValueInfoPanel(z, tmpIntA+1, tempString); - + tempString.Printf(_T("%f"),resultMin); interfMainPanel::getInstance()->setCellValueInfoPanel(z, tmpIntA+2, tempString); - + tempString.Printf(_T("%f"),resultMax); interfMainPanel::getInstance()->setCellValueInfoPanel(z, tmpIntA+3, tempString); - + tempString.Printf(_T("%f"),resultAverage); interfMainPanel::getInstance()->setCellValueInfoPanel(z, tmpIntA+4, tempString); - + tempString.Printf(_T("%f"),resultStandardeviation); interfMainPanel::getInstance()->setCellValueInfoPanel(z, tmpIntA+5, tempString); - + } // for iContourGroup } // for z @@ -2528,13 +2548,13 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel // Print Volume Statistics - int vol_rCountRange; + int vol_rCountRange; int vol_rsize; double vol_minValue; double vol_maxValue; double vol_average; double vol_standardeviation; - + if (selection!=0 ) // actual slice { @@ -2543,27 +2563,27 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel &vol_average, &vol_standardeviation); interfMainPanel::getInstance()->setRowLabelInfoPanel(maxZ+2, _T("Total:")); - + tempString.Printf(_T("%d"),vol_rsize); - interfMainPanel::getInstance()->setCellValueInfoPanel(maxZ+2, 0, tempString); - + interfMainPanel::getInstance()->setCellValueInfoPanel(maxZ+2, 0, tempString); + tempString.Printf(_T("%d"),vol_rCountRange); interfMainPanel::getInstance()->setCellValueInfoPanel(maxZ+2, 1, tempString); - + tempString.Printf(_T("%f"),vol_minValue); interfMainPanel::getInstance()->setCellValueInfoPanel(maxZ+2, 2, tempString); - + tempString.Printf(_T("%f"),vol_maxValue); interfMainPanel::getInstance()->setCellValueInfoPanel(maxZ+2, 3, tempString); - + tempString.Printf(_T("%f"),vol_average); interfMainPanel::getInstance()->setCellValueInfoPanel(maxZ+2, 4, tempString); - + tempString.Printf(_T("%f"),vol_standardeviation); interfMainPanel::getInstance()->setCellValueInfoPanel(maxZ+2, 5, tempString); } //----------------------------------------- - + int iTitleGroup; wxString tmpTitleString; int tmpIntB; @@ -2585,7 +2605,7 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel } //AD: 29-05-09 -void wxContourMainFrame::onSaveResults(std::string directory,std::string namefile, std::string filename, +void wxContourMainFrame::onSaveResults(std::string directory,std::string namefile, std::string filename, int typeContourGroup, int selection, int minZ, int maxZ, bool XYZValues, bool contourImage, bool statistics) { if (XYZValues) @@ -2600,22 +2620,22 @@ void wxContourMainFrame::onSaveResults(std::string directory,std::string namefil this->getMaskValue(&mask, &value, typeContourGroup,selection,minZ,maxZ); this->SaveImageResult( directory , namefile, mask, value); } - + if (statistics) { std::ostringstream name; name << filename << ".xls"; - + FILE *pFile=fopen(name.str().c_str(),"w+"); wxString tmpString; int i,j,maxX; - + // int sizeZ = _theViewPanel->GetImageDataSizeZ(); // int maxY=sizeZ+2; - + maxX= interfMainPanel::getInstance()->getNumberColsInformationPanel();//this->_grid->GetNumberCols(); // -- Title -- @@ -2627,8 +2647,8 @@ void wxContourMainFrame::onSaveResults(std::string directory,std::string namefil } fprintf(pFile,"\n\n" ); - - + + if (selection==0 ) // actual slice { std::vector tempVector; @@ -2637,7 +2657,7 @@ void wxContourMainFrame::onSaveResults(std::string directory,std::string namefil minZ = actualSlice; maxZ = actualSlice; } - + // Stadistics... for ( j=minZ; j<=maxZ ; j++) { @@ -2649,7 +2669,7 @@ void wxContourMainFrame::onSaveResults(std::string directory,std::string namefil fprintf(pFile,"\n" ); } // for j - + // Total of stadistics..... if (selection!=0) { @@ -2660,7 +2680,7 @@ void wxContourMainFrame::onSaveResults(std::string directory,std::string namefil } // for i fprintf(pFile,"\n" ); } - + fclose(pFile); } } @@ -2670,7 +2690,7 @@ void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefil { wxBusyCursor wait; //EED01Juillet2009 GenerateContourExtractData(); - + //int typeContourGroup = this->_radiolstboxContourGroup->GetSelection(); _contourextractdata ->SetTypeOperation( typeContourGroup % 3 ); @@ -2693,7 +2713,7 @@ void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefil int minZ,maxZ; double totalZ; - double porcent; + double porcent; wxString tmpString; minZ = 0;// _mbarrange->GetStart(); maxZ = sizeZ;//_mbarrange->GetEnd(); @@ -2706,7 +2726,7 @@ void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefil { porcent = 100.0* (z-minZ)/totalZ; - + tmpString.Printf(_T("Saving Values")); tmpString.Printf(_T(" %d %c %d/%d %d"), (int)porcent , 37 , z-minZ+1, (int)totalZ ,z); interfMainPanel::getInstance()->setStringInfoPanel(tmpString); @@ -2778,7 +2798,7 @@ void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefil filename.append(_T(".txt"));*/ // filename.Printf(temp.c_str()); - + FILE *pFile=fopen((const char *)filename.mb_str(),"w+"); fprintf(pFile,"value \t x \t y \t z\n" ); @@ -2822,32 +2842,32 @@ void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value double totalZ; - double porcent; + double porcent; wxString tmpString; - - + + if (selection==0 ) // actual slice { int actualSlice = tempVector[1]; minZ = actualSlice; maxZ = actualSlice; - } - + } + totalZ = maxZ-minZ; //EED01Juillet2009 _contourextractdata->SetImage( imagedata); - // cleanning image before range + // cleanning image before range for (z=0; zResetImageResult(z); } - // cleanning image after range + // cleanning image after range for (z=maxZ+1; zResetImageResult(z); } - - + + // For each slice.. for ( z=minZ ; z<=maxZ ; z++) { @@ -2904,11 +2924,11 @@ void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value void wxContourMainFrame::SaveImageResult(std::string directory,std::string namefile, vtkImageData* mask,vtkImageData* value) { - + std::string temp = directory + "/" + namefile + "-Value.mhd"; wxString filename = crea::std2wx(temp); - // LG + // LG // filename.Printf(_T(temp.c_str())); //filename.Printf(_T("%s\\%s-Value.mhd",directory.c_str(),namefile.c_str(),z); /*filename.Printf(_T("%s"),directory.c_str()); @@ -2946,7 +2966,7 @@ void wxContourMainFrame::SaveImageResult(std::string directory,std::string namef writerMaskImage->Write( ); interfMainPanel::getInstance()->setStringInfoPanel( _T("") ); - + } @@ -2963,10 +2983,10 @@ void wxContourMainFrame::onChangeInstantInstantPanel(std::string name,int value, } void wxContourMainFrame::onSnakePressed(){ - std::vector vecX; - std::vector vecY; - std::vector vecZ; - _theViewPanel->GetPointsOfActualContour( &vecX , &vecY , &vecZ ); + std::vector vecX; + std::vector vecY; + std::vector vecZ; + _theViewPanel->GetPointsOfActualContour( &vecX , &vecY , &vecZ ); if (vecX.size()!=0){ std::vector tempVector; @@ -2979,11 +2999,11 @@ void wxContourMainFrame::onSnakePressed(){ } // for wxDialog* dialog = new wxDialog(this, -1, wxString(_T("Snake"))); - wxPanel* panel = new wxPanel(dialog,-1); + wxPanel* panel = new wxPanel(dialog,-1); // wxStaticText* sttext = new wxStaticText(panel, -1, wxString(_T("Panel para snake"))); new wxStaticText(panel, -1, wxString(_T("Panel para snake"))); dialog->ShowModal(); - } // if + } // if } @@ -3009,11 +3029,11 @@ void wxContourMainFrame::SetContourGroup(int contourGroup) wxPanel *wxContourMainFrame::getMaskImageViewPanel(wxWindow *parent) { - + if (_viewMaskImagePanel==NULL) { _contourextractdata = new ContourExtractData(true); - _contourextractdata->SetImage( _theViewPanel->getImageData() ); + _contourextractdata->SetImage( _theViewPanel->getImageData() ); // double range[2]; // _theViewPanel->getImageData()->GetScalarRange(range); //int min = (int)floor (range[0]); @@ -3039,7 +3059,7 @@ wxPanel *wxContourMainFrame::getColorLayerImageViewPanel(wxWindow *parent) double range[2]; _theViewPanel->getImageData()->GetScalarRange(range); int min = (int)floor (range[0]); - int max = (int)ceil (range[1]); + int max = (int)ceil (range[1]); _viewColorLayerImagePanel = new ColorLayerImageViewPanel( parent, min, max , 1); _viewColorLayerImage = new ColorLayerImageView(); // _viewColorLayerImage->SetImage( _theViewPanel->getImageData() ); @@ -3058,7 +3078,7 @@ wxPanel *wxContourMainFrame::getThresholdImageViewPanel(wxWindow *parent) double range[2]; _theViewPanel->getImageData()->GetScalarRange(range); int min = (int)floor (range[0]); - int max = (int)ceil (range[1]); + int max = (int)ceil (range[1]); _viewThresholdImagePanel = new ThresholdImageViewPanel( parent, min, max , 1); _viewThresholdImage = new ThresholdImageView(); _viewThresholdImage->SetImage( _theViewPanel->getImageData() ); @@ -3080,23 +3100,23 @@ int wxContourMainFrame::getType () { std::string cloneName = currentSelection [0]; manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(cloneName); - tipo = manualModel-> GetTypeModel(); + tipo = manualModel-> GetTypeModel(); } return tipo; } double wxContourMainFrame::getContourSizeInPixels() { - double contourSize = 0; + double contourSize = 0; std::vector currentSelection = _theViewPanel->getSelectedObjects(); if(!currentSelection.empty()) if(!currentSelection.empty()) { std::string cloneName = currentSelection [0]; - + manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(cloneName);//_modelManager->getOutlineByKeyName( cloneName )->getModel(); contourSize = manualModel-> GetPathSize(); - } + } return contourSize; } manualBaseModel * wxContourMainFrame::getContour () @@ -3107,36 +3127,36 @@ manualBaseModel * wxContourMainFrame::getContour () { std::string cloneName = currentSelection [0]; manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(cloneName);//_modelManager->getOutlineByKeyName( cloneName )->getModel(); - return manualModel; + return manualModel; } return NULL; } -void wxContourMainFrame::onPrintLabel (wxString label, manualBaseModel* manualModel) +void wxContourMainFrame::onPrintLabel (wxString label, manualBaseModel* manualModel) { std::string labelAscii(label.ToAscii()); int pos = labelAscii.find(" "); int j; - - for (j=0 ; pos != string::npos;j++) + + for (j=0 ; pos != string::npos;j++) { labelAscii.replace( pos, 1, "_" ); pos= labelAscii.find(" "); } - manualModel -> SetLabel(labelAscii); + manualModel -> SetLabel(labelAscii); } void wxContourMainFrame::onInsertCalculation(manualBaseModel* manualModel) { double sizeInPixel = manualModel ->GetPathSize(); double onePixelRealSize = interfMainPanel::getInstance()->GetPixelValue();; double realContourSize = sizeInPixel*onePixelRealSize; - manualModel ->SetRealSize(realContourSize); + manualModel ->SetRealSize(realContourSize); } double wxContourMainFrame::onePixelSize( double value) { - return _onePixelSize = value; + return _onePixelSize = value; } std::string wxContourMainFrame::GetFileLocation() diff --git a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h index 32adc0f..3e643b1 100644 --- a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h +++ b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h @@ -101,7 +101,7 @@ class wxContourMainFrame : public wxPanel { //------------------------------------------------------------------------------------------------------------ // Constructors & Destructors //------------------------------------------------------------------------------------------------------------ - + wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,long style = wxDEFAULT_FRAME_STYLE | wxSUNKEN_BORDER); wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector images, long style = wxDEFAULT_FRAME_STYLE | wxSUNKEN_BORDER,std::string datadir="C:/Creatis/creaContoursBin/RelWithDebInfo/"); @@ -123,7 +123,7 @@ class wxContourMainFrame : public wxPanel { void createInstantChooserPanel(wxAuiNotebook * parent); void createViewPanel(wxAuiNotebook * parent); - + void createInstantChooserPanel(wxWindow * parent); void createViewPanel(wxWindow * parent); @@ -140,13 +140,13 @@ class wxContourMainFrame : public wxPanel { ////------------------------------------------------------------------------------------------------------------ //// Methods for capturing events ////------------------------------------------------------------------------------------------------------------ - + ////------------------------------------------------------------------------------------------------------------ //// Model management methods ////------------------------------------------------------------------------------------------------------------ - + //------------------------------------------------------------------------------------------------------------ // Attributes getters and setters //------------------------------------------------------------------------------------------------------------ @@ -159,7 +159,7 @@ class wxContourMainFrame : public wxPanel { //------------------------------------------------------------------------------------------------------------ /* - ** This method returns the vector of images selected by the user + ** This method returns the vector of images selected by the user ** return value std::vector */ std::vector getVectImages(); @@ -209,7 +209,7 @@ class wxContourMainFrame : public wxPanel { void onSave(); void onImport(); void onTest(); - void openContours( FILE *pFile, FILE *pFileData, int version, bool staticContour ); + void openContours( FILE *pFile, FILE *pFileData, bool staticContour ); void RefreshInterface(); @@ -232,9 +232,9 @@ class wxContourMainFrame : public wxPanel { //AD void onMirror(); - - -//==================================================================================================== + + +//==================================================================================================== void showAxis(bool show); void onRigidPressed(); @@ -255,7 +255,7 @@ class wxContourMainFrame : public wxPanel { // @param typeContourGroup - int The operation id (AND,OR,XOR,ALL=3) // void onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ,int grayRangeMin, int grayRangeMax); - void onSaveResults(std::string directory,std::string namefile, std::string filename, + void onSaveResults(std::string directory,std::string namefile, std::string filename, int typeContourGroup, int selection, int minZ, int maxZ, bool XYZValues, bool contourImage, bool statistics); void SaveValuesXYZ(std::string directory,std::string namefile, int typeContourGroup); void onChangeInstantInstantPanel(std::string name,int value, int minshow, int maxshow); @@ -272,19 +272,19 @@ class wxContourMainFrame : public wxPanel { /** * Associates the String parameter with the contour - * @param label Label entered by the user - * @param manualBaseModel Currently selected contour + * @param label Label entered by the user + * @param manualBaseModel Currently selected contour */ void onPrintLabel (wxString label, manualBaseModel* manualModel); /** - * Calculates the size of the contour received as a parameter. Uses the measure of a pixel in millimeters. - * @param manualBaseModel Currently selected contour + * Calculates the size of the contour received as a parameter. Uses the measure of a pixel in millimeters. + * @param manualBaseModel Currently selected contour */ void onInsertCalculation(manualBaseModel* manualModel); /** - * Assigns and returns the value of a pixel in millimeters + * Assigns and returns the value of a pixel in millimeters @ param value Measure of the pixel in millimeters */ double onePixelSize(double value); @@ -293,25 +293,25 @@ class wxContourMainFrame : public wxPanel { * Returns the type of the currently selected contour */ int getType(); - + /** - * Returns the size in pixels of the currently selected contour + * Returns the size in pixels of the currently selected contour */ double getContourSizeInPixels(); - + /** - * Returns the currently selected contour. If no contour is selected returns NULL - */ + * Returns the currently selected contour. If no contour is selected returns NULL + */ manualBaseModel* getContour(); - + /** * Returns the Path of the data persistence file */ std::string GetFileLocation(); - + /** * Assign a new path to the data persistence file - @ param newFileLocation New path of the file + @ param newFileLocation New path of the file */ void SetFileLocation(std::string newFileLocation); //------------------------------------------------------------------------------------------------------------ @@ -319,60 +319,67 @@ class wxContourMainFrame : public wxPanel { void SetScalarRange(int grayRangeMin, int grayRangeMax); //------------------------------------------------------------------------------------------------------------ - + private: //------------------------------------------------------------------------------------------------------------ // Private methods //------------------------------------------------------------------------------------------------------------ - + //------------------------------------------------------------------------------------------------------------ // Attributtes //------------------------------------------------------------------------------------------------------------ - + int _contourGroup; - static wxContourMainFrame* instance; - KernelManagerContour* kernelManager; - interfMainPanel* _pannew; - PerformingOperation* _performingOperation; - std::string _datadir; - wxContourViewPanel* _theViewPanel; - wxInstantChooserPanel * _instantPanel; + static wxContourMainFrame *instance; + KernelManagerContour *kernelManager; + interfMainPanel *_pannew; + PerformingOperation *_performingOperation; + std::string _datadir; + wxContourViewPanel *_theViewPanel; + wxInstantChooserPanel *_instantPanel; //AD: 03-09: This attributes represents the reference line that is going to be used for the mirroring - manualLineControler * _refLineControl; - manualContourModelLine * _refLineModel; - manualViewLine * _refLineView; - - wxAuiManager m_mgr; - wxAuiNotebook * notebook; - long m_notebook_style; - long m_notebook_theme; - int _numberOfVariablesStatistics; - + manualLineControler *_refLineControl; + manualContourModelLine *_refLineModel; + manualViewLine *_refLineView; + + wxAuiManager m_mgr; + wxAuiNotebook *notebook; + long m_notebook_style; + long m_notebook_theme; + int _numberOfVariablesStatistics; + // Contour Image Mask ThresholdImageView *_viewMaskImage; ThresholdImageViewPanel *_viewMaskImagePanel; - - // Threshold Image + + // Threshold Image ThresholdImageView *_viewThresholdImage; ThresholdImageViewPanel *_viewThresholdImagePanel; - + // Color Layer Image ColorLayerImageView *_viewColorLayerImage; ColorLayerImageViewPanel *_viewColorLayerImagePanel; - std::vector _images; - bool _actorPresent; + std::vector _images; + bool _actorPresent; + + // temporary variables readding .roi file + int _tmpReadFileImageDim[3]; + double _tmpReadFileImageSpac[3]; + int _tmpReadFileTypeOfTransformation; + void readDimSpc(FILE *pFile); + /*DECLARE_CLASS(wxContourMainFrame) // any class wishing to process wxWindows events must use this macro DECLARE_EVENT_TABLE()*/ - bool _creatingContoursActive; + bool _creatingContoursActive; ////////JCP 21 - 11 - 08 void createContour( int typeContour ); //manualContourModel * factoryManualContourModel(int typeContour); manualBaseModel * factoryManualContourModel(wxPanel* panel); - ContourExtractData *_contourextractdata; + ContourExtractData *_contourextractdata; void saveState(); void loadState(std::string filename); @@ -380,20 +387,20 @@ private: void saveFileWithContours( std::string filename ); void onLoadContours(std::string fileNameContourROI); - int inredo; - int inundo; - std::string stundoredo; - static char COPY; + int inredo; + int inundo; + std::string stundoredo; + static char COPY; //CMRU 17-08-09----------------------------------------------------------------------------------------------- - wxWindow *infoWin2; - wxPanel *calibrationPanel; - wxPanel *calibrationPanelError; - double _onePixelSize; - std::string _imageLocation; - std::string _fileLocation; + wxWindow *infoWin2; + wxPanel *calibrationPanel; + wxPanel *calibrationPanelError; + double _onePixelSize; + std::string _imageLocation; + std::string _fileLocation; //------------------------------------------------------------------------------------------------------------ }; -#endif +#endif -- 2.45.0