X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FInterface_ManagerContour_NDimensions%2FwxContourMainFrame.cxx;h=2c37a7f5ec068f3181376cc97f5c5a4da3cbcab7;hb=393af49c04fb77e019068f0f184b3b65e894f2a3;hp=1ff0de0ff5334b65aaf3a85d891659b9c0f1a1b5;hpb=8ba77b9cce93770de811bdac8a8341bcb10f036a;p=creaContours.git diff --git a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx index 1ff0de0..2c37a7f 100644 --- a/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx +++ b/lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + //---------------------------------------------------------------------------------------------------------------- // Class definition include //---------------------------------------------------------------------------------------------------------------- @@ -35,6 +60,7 @@ char wxContourMainFrame::COPY = 'C'; //: wxWindow(parent, id, pos, size, style) : wxPanel(parent, id, pos, size, style) { +printf("EED wxContourMainFrame :: wxContourMainFrame Start 1\n"); m_mgr.SetManagedWindow(this); _contourGroup = 1; _creatingContoursActive = false; @@ -45,13 +71,13 @@ char wxContourMainFrame::COPY = 'C'; // _gridPanel = NULL; // _drawToolsPanel = NULL; // _operationsToolsPanel = NULL; - //_autoFormsPanel = NULL; + //_autoFormsPanel = NULL; // _standardToolsPanel = NULL; // _editionToolsPanel = NULL; // _listViewPanel = NULL; // _sceneManager = NULL; - //_actualInstant = NULL; - _numberOfVariablesStatistics = 6+1; + //_actualInstant = NULL; + _numberOfVariablesStatistics= 6+1; _refLineControl = NULL; _refLineModel = NULL; @@ -68,13 +94,14 @@ char wxContourMainFrame::COPY = 'C'; _viewMaskImagePanel = NULL; _viewThresholdImage = NULL; _viewThresholdImagePanel = NULL; - _viewColorLayerImage = NULL; _viewColorLayerImagePanel = NULL; +printf("EED wxContourMainFrame :: wxContourMainFrame End 1\n"); } 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) { +printf("EED wxContourMainFrame :: wxContourMainFrame Start 2\n"); m_mgr.SetManagedWindow(this); _contourGroup = 1; _creatingContoursActive = false; @@ -89,70 +116,65 @@ char wxContourMainFrame::COPY = 'C'; _viewMaskImagePanel = NULL; _viewThresholdImage = NULL; _viewThresholdImagePanel = NULL; - _viewColorLayerImage = NULL; _viewColorLayerImagePanel = NULL; - +printf("EED wxContourMainFrame :: wxContourMainFrame A\n"); // 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_style = wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_EXTERNAL_MOVE | wxNO_BORDER; + m_notebook_theme = 0; //wxContour_ActionCommandsID a; - _numberOfVariablesStatistics = 7; - - _datadir = datadir; - - - inredo = 0; - inundo = 0; - + _numberOfVariablesStatistics= 7; + _datadir = datadir; + inredo = 0; + inundo = 0; +printf("EED wxContourMainFrame :: wxContourMainFrame B\n"); _pannew = interfMainPanel::getInstance(this,datadir+"/data/Icons");//, eventHandler); - _performingOperation = new PerformingOperation(); - +printf("EED wxContourMainFrame :: wxContourMainFrame C\n"); + _performingOperation = new PerformingOperation(); +printf("EED wxContourMainFrame :: wxContourMainFrame C.1\n"); if(images.size() > 0) { +printf("EED wxContourMainFrame :: wxContourMainFrame C.2\n"); this->setVectImages(images); +printf("EED wxContourMainFrame :: wxContourMainFrame C.3\n"); } - _contourextractdata = NULL; +printf("EED wxContourMainFrame :: wxContourMainFrame End 2\n"); } void wxContourMainFrame::setVectImages(std::vector imgs) { - +printf("EED wxContourMainFrame::setVectImages Start\n"); _images = imgs; - #if defined(__GNUC__) std::string str_home(getenv("HOME")); #elif defined(_WIN32) - std::string str_home(getenv("USERPROFILE")); + std::string str_home(getenv("USERPROFILE")); #endif - std::string strCreaContourDataTmp = str_home + "/.creaContourDataTemp/"; - + std::string strCreaContourDataTmp = str_home + "/.creaContourDataTemp/"; std::vector conceptNameVect; std::vector conceptSizeVect; - +printf("EED wxContourMainFrame::setVectImages Start 01\n"); 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 ); - +printf("EED wxContourMainFrame::setVectImages Start 02\n"); + kernelManager = new KernelManagerContour( imgs , _datadir+"/data/" , strCreaContourDataTmp ); +printf("EED wxContourMainFrame::setVectImages Start 03\n"); + _instantPanel = new wxInstantChooserPanel( notebook, "Instant Chooser", true, false, "c" ); +printf("EED wxContourMainFrame::setVectImages Start 04\n"); + _theViewPanel = new wxContourViewPanel( kernelManager->getSourceImage(), notebook ); +printf("EED wxContourMainFrame::setVectImages Start 05\n"); //------------------------------------------------------------- kernelManager->getConceptsInformation(conceptNameVect, conceptSizeVect); +printf("EED wxContourMainFrame::setVectImages 1\n"); _instantPanel->addConcepts(conceptNameVect, conceptSizeVect); - - +printf("EED wxContourMainFrame::setVectImages 2\n"); double val = _theViewPanel->getCurrentDeep(); _instantPanel->setConceptValue( "Axe Depth", (int)val ); //JCP _instantPanel->setConceptValue("time", num de imagenes); ConceptDataWrap * data = _instantPanel->getConceptDataOf( "Axe Depth" ); //*******************changeInstant(); _theViewPanel->setVerticalConcept( "Axe Depth", data->getMinValue(), data->getMaxValue(), data->getMinShowedValue(), data->getMaxShowedValue(), data->getActualValue() ); - this->configurePanels( ); - +printf("EED wxContourMainFrame::setVectImages End\n"); } @@ -674,13 +696,6 @@ void wxContourMainFrame::changeInstant() } } - // Refresh Threshold image - if(_viewColorLayerImage!=NULL){ - _viewColorLayerImage->SetZ(actualSlice); - if (_viewColorLayerImagePanel->IsVisible()==true){ - _viewColorLayerImage->onThreshold(); - } - } updateInstantOutlines(); updateInstantImageData(); @@ -945,7 +960,12 @@ void wxContourMainFrame::onLoad() if(GetFileLocation().empty()) { //------------------------------------------------------------------------------------------------------------ +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 wxFileDialog dialog(NULL, _T("Choose a file"), _T(""), _T(""), _T("*.roi"), wxOPEN ); +#else + wxFileDialog dialog(NULL, _T("Choose a file"), _T(""), _T(""), _T("*.roi"), wxFD_OPEN ); +#endif if (dialog.ShowModal() == wxID_OK) { fileNameContourROI = (const char *)(dialog.GetPath().mb_str()); @@ -956,14 +976,49 @@ void wxContourMainFrame::onLoad() } +void wxContourMainFrame::SetZForAllContours(int pz) +{ + printf("EED wxContourMainFrame::SetZForAllContours\n"); + + //-- Normal Contours + + std::vector< std::string > lstNameThings; + int i,sizeLstNameThings; + int ii,sizeLstPoints; + + lstNameThings = kernelManager->GetLstNameThings(); + sizeLstNameThings = lstNameThings.size(); + for (i=0 ; igetOutlineByKeyName(lstNameThings[i]); + sizeLstPoints = manualModel->GetSizeLstPoints(); + for (ii=0 ; iiGetManualPoint(ii)->SetPointZ(-900); + }// for ii list of points + }// for i list of Things + + //-- Static Contours + + lstNameThings = kernelManager->GetLstNameThingsStatic(); + sizeLstNameThings = lstNameThings.size(); + for (i=0 ; igetOutlineByKeyName(lstNameThings[i]); + sizeLstPoints = manualModel->GetSizeLstPoints(); + for (ii=0 ; iiGetManualPoint(ii)->SetPointZ(-900); + }// for ii list of points + }// for i list of static things +} + void wxContourMainFrame::onLoadContours(std::string fileNameContourROI, bool interactiveInterface) { char tmp[255]; char tmpD[255]; - FILE *pFile =fopen(fileNameContourROI.c_str(),"r+"); - - //CMRU 03-09-09- ---------------------------------------------------------------------------------------------- if(pFile != NULL) { @@ -989,6 +1044,10 @@ void wxContourMainFrame::onLoadContours(std::string fileNameContourROI, bool int fscanf(pFile,"%s",tmp); // 1.0.3 || 1.0.2 || 1.0.1 || 1.0.0 std::string version(tmp); + +printf("EED wxContourMainFrame::onLoadContours version%s \n", version.c_str() ); + + //AD:02-06-09 _tmpReadFileTypeOfTransformation=-1; if (version=="1.0.3") @@ -996,15 +1055,16 @@ void wxContourMainFrame::onLoadContours(std::string fileNameContourROI, bool int readDimSpc(pFile,interactiveInterface); // DimSpc interactive ON openContours(pFile,pFileData,false); openContours(pFile,pFileData,true); //Load StaticContours - } + } if (version=="1.0.2") { //EED001 - readDimSpc(pFile,interactiveInterface); // DimSpc interactive ON + readDimSpc(pFile,interactiveInterface); // DimSpc interactive ON openContours(pFile,pFileData,false); - readDimSpc(pFile,false); // DimSpc interactive OFF - openContours(pFile,pFileData,true); //Load StaticContours + readDimSpc(pFile,false); // DimSpc interactive OFF + openContours(pFile,pFileData,true); // Load StaticContours + SetZForAllContours(-900); } //AD:02-06-09 @@ -1025,19 +1085,22 @@ void wxContourMainFrame::onLoadContours(std::string fileNameContourROI, bool int if(pFileData != NULL) { fclose(pFileData); - } + } // if } _theViewPanel->getSceneManager()->removeSceneContours(); changeInstant(); - } - -void wxContourMainFrame::onImport(){ +void wxContourMainFrame::onImport() +{ std::string filename, filenamecontours; +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 wxFileDialog dialog(NULL, _T("Choose a XML Osirix File"), _T(""), _T(""), _T("*.xml"), wxOPEN ); - +#else + wxFileDialog dialog(NULL, _T("Choose a XML Osirix File"), _T(""), _T(""), _T("*.xml"), wxFD_OPEN ); +#endif if (dialog.ShowModal() == wxID_OK) { filename = dialog.GetPath().mb_str(); @@ -1045,19 +1108,25 @@ void wxContourMainFrame::onImport(){ if(filenamecontours.compare("") != 0){ onLoadContours(filenamecontours,true); - } - - } + } // if + } // if } -void wxContourMainFrame::onTest(){ + +void wxContourMainFrame::onTest() +{ std::string filename, filenamecontours; +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 wxFileDialog dialog(NULL, _T("Choose a File"), _T(""), _T(""), _T("*.*"), wxOPEN ); +#else + wxFileDialog dialog(NULL, _T("Choose a File"), _T(""), _T(""), _T("*.*"), wxFD_OPEN ); +#endif if (dialog.ShowModal() == wxID_OK) { filename = dialog.GetPath().mb_str(); std::cout << "This is the filename: " << filename << std::endl; - } + } // if } @@ -1067,7 +1136,12 @@ void wxContourMainFrame::onSave(){ if(GetFileLocation().empty()) { //------------------------------------------------------------------------------------------------------------ +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 wxFileDialog dialog(NULL, _T("Choose a file"), _T(""), _T(""), _T("*.roi"), wxSAVE ); +#else + wxFileDialog dialog(NULL, _T("Choose a file"), _T(""), _T(""), _T("*.roi"), wxFD_SAVE ); +#endif if (dialog.ShowModal() == wxID_OK) { std::string fileNameContourROI = (const char *)(dialog.GetPath().mb_str()); @@ -1134,11 +1208,22 @@ void wxContourMainFrame::saveFileWithContours( std::string filename ) fprintf(pFileData,"NumberOfContours %d\n", sizeLstNameThings ); //------------------------------------------------------------------------------------------------------------ + +// EED 2017-05-30 + double spc[3]; + spc[0]=1; + spc[1]=1; + spc[2]=1; + for (i=0 ; igetOutlineByKeyName(lstNameThings[i]); - double sizeInPixel = manualModel ->GetPathSize(); + +// EED 2017-05-30 +// double sizeInPixel = manualModel ->GetPathSize( ); + double sizeInPixel = manualModel ->GetPathSize( spc ); + double realContourSize = sizeInPixel*_onePixelSize; manualModel ->SetRealSize(realContourSize); //------------------------------------------------------------------------------------------------------------ @@ -1204,7 +1289,7 @@ void wxContourMainFrame::readDimSpc(FILE *pFile, bool interactiveOption) //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)); + wxDialog* dial = new wxDialog (this,-1,_T("Tools"),wxDefaultPosition, wxSize(460,360)); wxSizer* buttonsSizer = dial->CreateSeparatedButtonSizer(wxOK|wxCANCEL); wxBoxSizer *dialSizer = new wxBoxSizer(wxVERTICAL); @@ -1475,7 +1560,7 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d //DefinciÛn de conexiÛnes entre VTK e ITK y el writer typedef itk::VTKImageToImageFilter ConnectorType; typedef itk::ImageToVTKImageFilter ConnectorType2; - typedef itk::ImageFileWriter< OutputImageType > WriterType; +//EED10JUIN2011 typedef itk::ImageFileWriter< OutputImageType > WriterType; ConnectorType::Pointer connector= ConnectorType::New(); ConnectorType2::Pointer connector2= ConnectorType2::New(); @@ -1515,7 +1600,12 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d FastMarchingFilterType::Pointer fastMarching = FastMarchingFilterType::New(); - + +printf("EED wxContourMainFrame::SegmentationOneSliceITK Skypping this code. Not compiling GeodesicActiveContourLevelSetImageFilter in fedora 17 with ITK 3.20.1 \n "); +/*EED 17 sept 2010 + > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > - Not compiling GeodesicActiveContourLevelSetImageFilter in fedora 17 with ITK 3.20.1 + + typedef itk::GeodesicActiveContourLevelSetImageFilter< InternalImageType, InternalImageType > GeodesicActiveContourFilterType; GeodesicActiveContourFilterType::Pointer geodesicActiveContour = @@ -1548,7 +1638,12 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d //thresholder->SetInput( zeroCrossing->GetOutput() ); thresholder->SetInput( geodesicActiveContour->GetOutput() ); connector2->SetInput( thresholder->GetOutput() ); - + +< - < - < - < - < - < - < - < - < - < - < - < - < - < - < - < - < - < - < - < - +*/ + + + smoothing->SetTimeStep( 0.125 ); smoothing->SetNumberOfIterations( 5 ); @@ -1601,34 +1696,63 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d vtkMarchingContourFilter* cntVTK = vtkMarchingContourFilter::New( ); - cntVTK->SetInput( idata ); - cntVTK->SetNumberOfContours( 1 ); cntVTK->SetValue( 0, 255 ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + cntVTK->SetInput( idata ); cntVTK->Update( ); cntVTK->UpdateInformation(); +#else + cntVTK->SetInputData( idata ); +#endif vtkCleanPolyData* cpd = vtkCleanPolyData::New( ); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 cpd->SetInput( cntVTK->GetOutput( ) ); cpd->Update( ); cpd->UpdateInformation(); +#else + cpd->SetInputData( cntVTK->GetOutput( ) ); +#endif + vtkPolyDataConnectivityFilter* conn = vtkPolyDataConnectivityFilter::New( ); conn->SetExtractionModeToLargestRegion( ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 conn->SetInput( cpd->GetOutput( ) ); conn->Update( ); conn->UpdateInformation(); +#else + conn->SetInputData( cpd->GetOutput( ) ); +#endif + vtkStripper* vtkstripper = vtkStripper::New( ); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 vtkstripper->SetInput( conn->GetOutput() ); vtkstripper->Update(); vtkstripper->UpdateInformation(); - +#else + vtkstripper->SetInputData( conn->GetOutput() ); + cntVTK->Update(); +#endif vtkPolyData* polyDataResult = cntVTK->GetOutput(); //std::cout<<"Points "<GetNumberOfPoints()<Update( ); polyDataResult->UpdateInformation(); +#else + // .. +#endif //EED /* @@ -1797,7 +1921,8 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d } // if sizeCtrPt - +/* +//EED10JUIN2011 WriterType::Pointer writer = WriterType::New(); CastFilterType3::Pointer caster = CastFilterType3::New(); @@ -1847,6 +1972,7 @@ void wxContourMainFrame::SegmentationOneSliceITK(int x, int y, int z, wxString d caster5->SetOutputMinimum( 0 ); caster5->SetOutputMaximum( 255 ); writer5->Update(); +*/ } catch( itk::ExceptionObject & excep ) { @@ -1887,19 +2013,41 @@ void wxContourMainFrame::SegmentationOneSlice( int x, int y, int z, int isovalue // y = y*spc[1]; // z = z*spc[3]; +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 imageReslice->SetInput( imagedata ); +#else + imageReslice->SetInputData( imagedata ); +#endif imageReslice->SetInformationInput(imagedata); imageReslice->SetResliceAxesDirectionCosines(1,0,0, 0,1,0 ,0,0,1); imageReslice->SetResliceAxesOrigin(0,0,z); imageReslice->SetOutputDimensionality(2); imageReslice->SetInterpolationModeToLinear(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + // .. +#else + imageReslice->Update(); +#endif + imagedata = imageReslice->GetOutput(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 imagedata->Update(); imagedata->UpdateInformation(); +#else + // .. +#endif vtkContourFilter* cntVTK = vtkContourFilter::New( ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 cntVTK->SetInput( imagedata ); +#else + cntVTK->SetInputData( imagedata ); +#endif cntVTK->SetNumberOfContours( 1 ); //cntVTK->SetValue( 0, vmin ); @@ -1910,7 +2058,12 @@ void wxContourMainFrame::SegmentationOneSlice( int x, int y, int z, int isovalue cntVTK->UpdateInformation(); vtkCleanPolyData* cpd = vtkCleanPolyData::New( ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 cpd->SetInput( cntVTK->GetOutput( ) ); +#else + cpd->SetInputData( cntVTK->GetOutput( ) ); +#endif cpd->ConvertLinesToPointsOff( ); cpd->Update( ); cpd->UpdateInformation(); @@ -1919,27 +2072,47 @@ void wxContourMainFrame::SegmentationOneSlice( int x, int y, int z, int isovalue conn->SetExtractionModeToClosestPointRegion( ); //conn->SetMaxRecursionDepth( 3000 ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 conn->SetInput( cpd->GetOutput( ) ); +#else + conn->SetInputData( cpd->GetOutput( ) ); +#endif conn->SetClosestPoint( x, y, 0 ); conn->Update( ); conn->UpdateInformation(); vtkCleanPolyData* cpd2 = vtkCleanPolyData::New( ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 cpd2->SetInput( conn->GetOutput( ) ); +#else + cpd2->SetInputData( conn->GetOutput( ) ); +#endif cpd2->Update(); cpd2->UpdateInformation(); vtkStripper* vtkstripper = vtkStripper::New( ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 vtkstripper->SetInput( cpd2->GetOutput() ); +#else + vtkstripper->SetInputData( cpd2->GetOutput() ); +#endif vtkstripper->Update(); vtkstripper->UpdateInformation(); vtkPolyData* polyDataResult = vtkstripper->GetOutput(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 polyDataResult->Update( ); polyDataResult->UpdateInformation(); +#else + //... +#endif /* EED ofstream myfile; @@ -2433,7 +2606,6 @@ 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; @@ -2458,8 +2630,6 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel std::vector tempVector; _instantPanel->getInstant( tempVector ); -//EED01Juillet2009 vtkImageData *imagedata = _theViewPanel->getImageData(); -// int sizeZ = _theViewPanel->GetImageDataSizeZ(); int z; int ii,sizeLstContourThings; @@ -2482,7 +2652,6 @@ void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int sel totalZ = maxZ-minZ+1; -//EED01Juillet2009 _contourextractdata->SetImage( imagedata); _contourextractdata->InitVolumeStatistics(); @@ -2746,7 +2915,6 @@ void wxContourMainFrame::onSaveResults(std::string directory,std::string namefil void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefile,int typeContourGroup) { wxBusyCursor wait; -//EED01Juillet2009 GenerateContourExtractData(); //int typeContourGroup = this->_radiolstboxContourGroup->GetSelection(); _contourextractdata ->SetTypeOperation( typeContourGroup % 3 ); @@ -2762,7 +2930,6 @@ void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefil std::vector tempVector; _instantPanel->getInstant( tempVector ); -//EED01Juillet2009 vtkImageData *imagedata = _theViewPanel->getSceneManager()->GetImageData(); int sizeZ = _theViewPanel->getSceneManager()->GetImageDataSizeZ(); int z; int ii,sizeLstContourThings; @@ -2776,7 +2943,6 @@ void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefil maxZ = sizeZ;//_mbarrange->GetEnd(); totalZ = maxZ-minZ+1; -//EED01Juillet2009 _contourextractdata->SetImage( imagedata); // For each slice.. for ( z=0 ; z_radiolstboxContourGroup->GetSelection(); if (typeContourGroup==3) @@ -2913,7 +3078,6 @@ void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value totalZ = maxZ-minZ; -//EED01Juillet2009 _contourextractdata->SetImage( imagedata); // cleanning image before range for (z=0; zGetSpacing(spc,0); // returns the spacing of the first image + + std::string temp = directory + "/" + namefile + "-image-Value.mhd"; wxString filename = crea::std2wx(temp); - // 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()); - filename.append(_T("\\")); - filename.append(_T("%s"),namefile.c_str()); - filename.append(_T("-Value.mhd"));*/ // Image Value + + vtkImageChangeInformation *valueChInfo = vtkImageChangeInformation::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + valueChInfo->SetInput(value); +#else + valueChInfo->SetInputData(value); +#endif + valueChInfo->SetSpacingScale(spc); vtkMetaImageWriter *writerValueImage = vtkMetaImageWriter::New( ); - writerValueImage->SetInput( value ); - writerValueImage->SetInput( value ); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + writerValueImage->SetInput( valueChInfo->GetOutput() ); +#else + writerValueImage->SetInputData( valueChInfo->GetOutput() ); +#endif writerValueImage->SetFileName( (const char *)filename.mb_str() ); writerValueImage->SetFileDimensionality( 3 ); writerValueImage->SetCompression(false); writerValueImage->Write( ); // Image Mask - // filename.Printf("%s\\%s-Mask.mhd",directory.c_str(),namefile.c_str(),z); - temp = directory + "/" + namefile + "-Mask.mhd"; + temp = directory + "/" + namefile + "-image-Mask.mhd"; // LG 14/01/09 : using crea filename = crea::std2wx(temp); // filename.Printf(_T(temp.c_str())); - /*filename.Printf(_T("%s"),directory.c_str()); - filename.append(_T("\\")); - filename.append(_T("%s"),namefile.c_str()); - filename.append(_T("-Mask.mhd"));*/ + vtkImageChangeInformation *maskChInfo = vtkImageChangeInformation::New(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + maskChInfo->SetInput(mask); +#else + maskChInfo->SetInputData(mask); +#endif + maskChInfo->SetSpacingScale(spc); vtkMetaImageWriter *writerMaskImage = vtkMetaImageWriter::New( ); - writerMaskImage->SetInput( mask ); + +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + writerMaskImage->SetInput( maskChInfo->GetOutput() ); +#else + writerMaskImage->SetInputData( maskChInfo->GetOutput() ); +#endif + writerMaskImage->SetFileName( (const char *)filename.mb_str() ); writerMaskImage->SetFileDimensionality( 3 ); - writerValueImage->SetCompression(false); + writerMaskImage->SetCompression(false); writerMaskImage->Write( ); interfMainPanel::getInstance()->setStringInfoPanel( _T("") ); @@ -3117,12 +3301,8 @@ wxPanel *wxContourMainFrame::getColorLayerImageViewPanel(wxWindow *parent) _theViewPanel->getImageData()->GetScalarRange(range); int min = (int)floor (range[0]); int max = (int)ceil (range[1]); - _viewColorLayerImagePanel = new ColorLayerImageViewPanel( parent, min, max , 1); - _viewColorLayerImage = new ColorLayerImageView(); -// _viewColorLayerImage->SetImage( _theViewPanel->getImageData() ); - _viewColorLayerImage->SetImage( NULL ); - _viewColorLayerImagePanel->SetColorLayerImageView( _viewColorLayerImage ); - _viewColorLayerImage->SetwxVtkBaseView( _theViewPanel->getWxVtkBaseView() ); + _viewColorLayerImagePanel = new ColorLayerImageViewPanel( parent, min, max, 100, 1); + _viewColorLayerImagePanel->GetColorLayerImageViewManager()->SetwxVtkBaseView( 0 , _theViewPanel->getWxVtkBaseView() ); } return _viewColorLayerImagePanel; } @@ -3172,10 +3352,18 @@ double wxContourMainFrame::getContourSizeInPixels() std::string cloneName = currentSelection [0]; manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(cloneName);//_modelManager->getOutlineByKeyName( cloneName )->getModel(); - contourSize = manualModel-> GetPathSize(); + +// EED 2017-05-30 +// contourSize = manualModel->GetPathSize(); + double spc[3]; + spc[0]=1; + spc[1]=1; + spc[2]=1; + contourSize = manualModel->GetPathSize( spc ); } return contourSize; } + manualBaseModel * wxContourMainFrame::getContour () { std::vector currentSelection = _theViewPanel->getSelectedObjects(); @@ -3205,9 +3393,16 @@ void wxContourMainFrame::onPrintLabel (wxString label, manualBaseModel* manualMo } void wxContourMainFrame::onInsertCalculation(manualBaseModel* manualModel) { - double sizeInPixel = manualModel ->GetPathSize(); +// EED 2017-05-30 +// double sizeInPixel = manualModel ->GetPathSize( ); + double spc[3]; + spc[0]=1; // ???? + spc[1]=1; // ???? + spc[2]=1; // ???? + double sizeInPixel = manualModel ->GetPathSize( spc ); + double onePixelRealSize = interfMainPanel::getInstance()->GetPixelValue();; - double realContourSize = sizeInPixel*onePixelRealSize; + double realContourSize = sizeInPixel*onePixelRealSize; manualModel ->SetRealSize(realContourSize); } @@ -3227,3 +3422,106 @@ void wxContourMainFrame::SetFileLocation(std::string newFileLocation) std::cout<<"GETFILELOCATION:"<<_fileLocation<)_theViewPanel->getSceneManager()->getSelectedObjects() , + flipDirection + ); + +} + +void wxContourMainFrame::FlipActualSliceContours(int flipDirection) +{ + printf("EED wxContourMainFrame::FlipActualSliceContours flipDirection=%d \n", flipDirection ); + FlipLstOfContours( + (std::vector)_theViewPanel->getSceneManager()->GetlstContoursNameActualSlice() , + flipDirection + ); +} + +void wxContourMainFrame::FlipAllContours(int flipDirection) +{ + printf("EED wxContourMainFrame::FlipAllContours flipDirection=%d \n", flipDirection ); + FlipLstOfContours( + kernelManager->GetLstNameThings() , + flipDirection + ); +} + +void wxContourMainFrame::FlipLstOfContours(std::vector lstNameThings, int flipDirection) +{ + int ext[6]; + getImageData()->GetExtent(ext); + int sizeX = ext[1]-ext[0]; + int sizeY = ext[3]-ext[2]; + + + int i,sizeLstNameThings; + int ii,sizeLstPoints; + + sizeLstNameThings = lstNameThings.size(); + for (i=0 ; igetOutlineByKeyName(lstNameThings[i]); + if (flipDirection==0) + { + manualModel->Transform_Ax_Plus_B(-1,sizeX,1,0 ); + } else { + manualModel->Transform_Ax_Plus_B(1,0,-1,sizeY ); + } + }// for i list of Things + + //-- Static Contours + + lstNameThings = kernelManager->GetLstNameThingsStatic(); + sizeLstNameThings = lstNameThings.size(); + for (i=0 ; igetOutlineByKeyName(lstNameThings[i]); + if (flipDirection==0) + { + manualModel->Transform_Ax_Plus_B(-1,sizeX,1,0 ); + } else { + manualModel->Transform_Ax_Plus_B(1,0,-1,sizeY ); + } + }// for i list of static things +} + +void wxContourMainFrame::FlipContours(int typeContourFlip, int flipDirection) +{ + printf("EED wxContourMainFrame::FlipContours( %d , %d ) \n",typeContourFlip, flipDirection ); + + saveState(); + + if (typeContourFlip==0) // + { + FlipSelectedContours(flipDirection); + } + + if (typeContourFlip==1) // + { + FlipActualSliceContours(flipDirection); + } + + if (typeContourFlip==2) // + { + FlipAllContours(flipDirection); + } + RefreshInterface(); +} + + + + +