+/*# ---------------------------------------------------------------------
+#
+# 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
//----------------------------------------------------------------------------------------------------------------
_viewMaskImagePanel = NULL;
_viewThresholdImage = NULL;
_viewThresholdImagePanel = NULL;
- _viewColorLayerImage = NULL;
_viewColorLayerImagePanel = NULL;
+ _frameShowResultImages = NULL;
}
wxContourMainFrame :: wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector<vtkImageData*> images, long style,std::string datadir)
_contourGroup = 1;
_creatingContoursActive = false;
_theViewPanel = NULL;
-
_instantPanel = NULL;
_refLineControl = NULL;
_refLineModel = NULL;
_viewMaskImagePanel = NULL;
_viewThresholdImage = NULL;
_viewThresholdImagePanel = NULL;
- _viewColorLayerImage = NULL;
_viewColorLayerImagePanel = NULL;
-
// 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;
_pannew = interfMainPanel::getInstance(this,datadir+"/data/Icons");//, eventHandler);
_performingOperation = new PerformingOperation();
-
if(images.size() > 0)
{
this->setVectImages(images);
}
-
_contourextractdata = NULL;
}
nTypeView.push_back(2);
nTypeView.push_back(0);
- wxFrame *frame = new wxFrame(this, -1,_T("Result image extracted.."),wxDefaultPosition,wxSize(600,600), wxDEFAULT_FRAME_STYLE|wxSTAY_ON_TOP);
- wxAuiManager *m_mgr_noteBookViewerResult = new wxAuiManager();
- m_mgr_noteBookViewerResult->SetManagedWindow(frame);
+ if (_frameShowResultImages==NULL)
+ {
+// wxFrame *_frameShowResultImages = new wxFrame(this, -1,_T("Result image extracted.."),wxDefaultPosition,wxSize(600,600), wxDEFAULT_FRAME_STYLE|wxSTAY_ON_TOP);
+ _frameShowResultImages = new wxFrame(this, -1,_T("Result image extracted.."),wxDefaultPosition,wxSize(600,600),
+ wxFRAME_TOOL_WINDOW|wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN |wxFRAME_FLOAT_ON_PARENT | wxRESIZE_BORDER );
+
+ wxAuiManager *m_mgr_noteBookViewerResult = new wxAuiManager();
+ m_mgr_noteBookViewerResult->SetManagedWindow(_frameShowResultImages);
- 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));
+ wxAuiNotebook* noteBookViewerResult = new wxAuiNotebook(_frameShowResultImages, -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);
+ wxPanel *panelViewer1 = new wxMaracas_N_ViewersWidget(noteBookViewerResult, value,&nTypeView);
+ wxPanel *panelViewer2 = new wxMaracas_N_ViewersWidget(noteBookViewerResult, mask,&nTypeView);
- noteBookViewerResult->AddPage( panelViewer1, wxT("Image result") );
- noteBookViewerResult->AddPage( panelViewer2, wxT("Mask result") );
- m_mgr_noteBookViewerResult->Update();
- frame->Show();
+ noteBookViewerResult->AddPage( panelViewer1, wxT("Image result") );
+ noteBookViewerResult->AddPage( panelViewer2, wxT("Mask result") );
+ m_mgr_noteBookViewerResult->Update();
+ _frameShowResultImages->Show();
+ } // if _frameShowResultImages
}
}
}
- // Refresh Threshold image
- if(_viewColorLayerImage!=NULL){
- _viewColorLayerImage->SetZ(actualSlice);
- if (_viewColorLayerImagePanel->IsVisible()==true){
- _viewColorLayerImage->onThreshold();
- }
- }
updateInstantOutlines();
updateInstantImageData();
}
+void wxContourMainFrame::SetZForAllContours(int pz)
+{
+
+ //-- Normal Contours
+
+ std::vector< std::string > lstNameThings;
+ int i,sizeLstNameThings;
+ int ii,sizeLstPoints;
+
+ lstNameThings = kernelManager->GetLstNameThings();
+ sizeLstNameThings = lstNameThings.size();
+ for (i=0 ; i<sizeLstNameThings ; i++)
+ {
+printf("EED wxContourMainFrame::SetZForAllContours contour=%d \n", i );
+ manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(lstNameThings[i]);
+ sizeLstPoints = manualModel->GetSizeLstPoints();
+ for (ii=0 ; ii<sizeLstPoints ; ii++)
+ {
+ manualModel->GetManualPoint(ii)->SetPointZ(-900);
+ }// for ii list of points
+ }// for i list of Things
+
+ //-- Static Contours
+
+ lstNameThings = kernelManager->GetLstNameThingsStatic();
+ sizeLstNameThings = lstNameThings.size();
+ for (i=0 ; i<sizeLstNameThings ; i++)
+ {
+ manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(lstNameThings[i]);
+ sizeLstPoints = manualModel->GetSizeLstPoints();
+ for (ii=0 ; ii<sizeLstPoints ; ii++)
+ {
+ manualModel->GetManualPoint(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];
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")
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
}
_theViewPanel->getSceneManager()->removeSceneContours();
changeInstant();
-
}
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 ; i<sizeLstNameThings ; i++)
{
//CMRU 03-09-09-----------------------------------------------------------------------------------------------
manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(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);
//------------------------------------------------------------------------------------------------------------
//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);
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 =
//thresholder->SetInput( zeroCrossing->GetOutput() );
thresholder->SetInput( geodesicActiveContour->GetOutput() );
connector2->SetInput( thresholder->GetOutput() );
-
+
+< - < - < - < - < - < - < - < - < - < - < - < - < - < - < - < - < - < - < - < -
+*/
+
+
+
smoothing->SetTimeStep( 0.125 );
smoothing->SetNumberOfIterations( 5 );
{
vecXo.push_back(p[0]);
vecYo.push_back(p[1]);
- }
- else
- {
- vecX.push_back( p[0] );
- myfile <<p[0]<<","<<p[1]<<"\n";
- //std::cout<<" x Anterior "<<xAct<<" x actual "<<x<<std::endl;
- //std::cout<<" y Anterior "<<yAct<<" y actual "<<y<<std::endl;
- //std::cout<<" x "<<p[0]<<" y "<<p[1]<<std::endl;
- vecY.push_back( p[1] );
- vecZ.push_back( 900 );
- xAct=x;
- yAct=y;
- }
+ } else {
+ vecX.push_back( p[0] );
+ myfile <<p[0]<<","<<p[1]<<"\n";
+ //std::cout<<" x Anterior "<<xAct<<" x actual "<<x<<std::endl;
+ //std::cout<<" y Anterior "<<yAct<<" y actual "<<y<<std::endl;
+ //std::cout<<" x "<<p[0]<<" y "<<p[1]<<std::endl;
+ vecY.push_back( p[1] );
+//EED 2017-12-16
+ vecZ.push_back( -900 );
+ xAct = x;
+ yAct = y;
+ } // if xAct
}
vecX.push_back(vecXo.back());
//std::cout<<" x Siguiente "<<vecXo.back();
vecXo.pop_back();
- vecZ.push_back( 900 );
+//EED 2017-12-16
+ vecZ.push_back( -900 );
}
while(!vecYo.empty())
{
// double y=p[1];
vecX.push_back( p[0] );
vecY.push_back( p[1] );
- vecZ.push_back( 900 );
+//EED 2017-12-16
+ vecZ.push_back( -900 );
// vecZ.push_back( p[2] );
}
void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ,int grayRangeMin, int grayRangeMax)
{
-//EED01Juillet2009 GenerateContourExtractData();
wxString tempString;
int maxContourGroup = 0;
std::vector<int> tempVector;
_instantPanel->getInstant( tempVector );
-//EED01Juillet2009 vtkImageData *imagedata = _theViewPanel->getImageData();
-// int sizeZ = _theViewPanel->GetImageDataSizeZ();
int z;
int ii,sizeLstContourThings;
totalZ = maxZ-minZ+1;
-//EED01Juillet2009 _contourextractdata->SetImage( imagedata);
_contourextractdata->InitVolumeStatistics();
void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefile,int typeContourGroup)
{
wxBusyCursor wait;
-//EED01Juillet2009 GenerateContourExtractData();
//int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
_contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
std::vector<int> tempVector;
_instantPanel->getInstant( tempVector );
-//EED01Juillet2009 vtkImageData *imagedata = _theViewPanel->getSceneManager()->GetImageData();
int sizeZ = _theViewPanel->getSceneManager()->GetImageDataSizeZ();
int z;
int ii,sizeLstContourThings;
maxZ = sizeZ;//_mbarrange->GetEnd();
totalZ = maxZ-minZ+1;
-//EED01Juillet2009 _contourextractdata->SetImage( imagedata);
// For each slice..
for ( z=0 ; z<sizeZ ; z++)
void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value,int typeContourGroup, int selection, int minZ, int maxZ){
wxBusyCursor wait;
-//EED01Juillet2009 GenerateContourExtractData();
//int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
if (typeContourGroup==3)
int z;
int ii,sizeLstContourThings;
-
double totalZ;
double porcent;
totalZ = maxZ-minZ;
-//EED01Juillet2009 _contourextractdata->SetImage( imagedata);
// cleanning image before range
for (z=0; z<minZ; z++){
}
-void wxContourMainFrame::SaveImageResult(std::string directory,std::string namefile, vtkImageData* mask,vtkImageData* value)
+std::string wxContourMainFrame::GetStringTypeImage( vtkImageData* image)
{
+ std::string result="";
+ if ( image->GetScalarType()==VTK_CHAR )
+ {
+ result="CHAR";
+ } else if ( image->GetScalarType()==VTK_UNSIGNED_CHAR ){
+ result="UCHAR";
+ } else if ( image->GetScalarType()==VTK_FLOAT ){
+ result="FLOAT";
+ } else if ( image->GetScalarType()==VTK_DOUBLE ){
+ result="DOUBLE";
+ } else if ( image->GetScalarType()==VTK_INT ){
+ result="INT";
+ } else if ( image->GetScalarType()==VTK_UNSIGNED_INT ){
+ result="UINT";
+ } else if ( image->GetScalarType()==VTK_SHORT ){
+ result="SHORT";
+ } else if ( image->GetScalarType()==VTK_UNSIGNED_SHORT ){
+ result="USHORT";
+ } else if ( image->GetScalarType()==VTK_LONG ){
+ result="LONG";
+ } else if ( image->GetScalarType()==VTK_UNSIGNED_LONG ){
+ result="ULONG";
+ }
+ return result;
+}
+void wxContourMainFrame::SaveImageResult(std::string directory,std::string namefile, vtkImageData* mask,vtkImageData* value)
+{
+ std::string stringType;
double spc[3];
kernelManager->GetSpacing(spc,0); // returns the spacing of the first image
-
- std::string temp = directory + "/" + namefile + "-image-Value.mhd";
+ stringType = GetStringTypeImage(value);
+ std::string temp = directory + "/" + namefile + "-image-Value-"+stringType+".mhd";
wxString filename = crea::std2wx(temp);
writerValueImage->Write( );
// Image Mask
- temp = directory + "/" + namefile + "-image-Mask.mhd";
+ stringType = GetStringTypeImage(mask);
+ temp = directory + "/" + namefile + "-image-Mask-"+stringType+".mhd";
// LG 14/01/09 : using crea
filename = crea::std2wx(temp);
wxPanel *wxContourMainFrame::getMaskImageViewPanel(wxWindow *parent)
{
-
+
if (_viewMaskImagePanel==NULL)
{
_contourextractdata = new ContourExtractData(true);
// _theViewPanel->getImageData()->GetScalarRange(range);
//int min = (int)floor (range[0]);
//int max = (int)ceil (range[1]);
+
+//EED 2017-12-17
int min = 254;
int max = 256;
- _viewMaskImagePanel = new ThresholdImageViewPanel( parent, -1, -1 , 0);
+
+ _viewMaskImagePanel = new ThresholdImageViewPanel( parent, -1, -1 , -1,-1, 0);
_viewMaskImage = new ThresholdImageView();
- _viewMaskImage->SetImage(_contourextractdata->GetVtkImageMaskResult() );
+ _viewMaskImage->SetImage( _contourextractdata->GetVtkImageMaskResult() );
_viewMaskImage->SetminMaxValue( min, max);
_viewMaskImage->SetBaseColor( 0,0,1 );
+
+
+ std::vector<int> colorbarposition;
+ colorbarposition.push_back( -999 );
+ colorbarposition.push_back( -999 );
+ _viewMaskImage->SetColorBarPosition( colorbarposition );
+ double spc[3];
+ _viewMaskImage->SetSpcBase( _theViewPanel->getImageData()->GetSpacing() );
+ _viewMaskImage->SetNewSpacingLayer( _theViewPanel->getImageData()->GetSpacing() );
+
_viewMaskImagePanel->SetThresholdImageView( _viewMaskImage );
_viewMaskImage->SetwxVtkBaseView( _theViewPanel->getWxVtkBaseView() );
+ _viewMaskImage->onThresholdChangeOpacity( 25 );
}
return _viewMaskImagePanel;
}
_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() );
+ // std::vector<double> range = bbGetInputlstRangeForColorBar();
+ // clivp->GetColorLayerImageViewManager()->SetRangeForColorBar( range );
+ std::vector<int> colorbarposition;
+ colorbarposition.push_back( 50 );
+ colorbarposition.push_back( 105 );
+ _viewColorLayerImagePanel->GetColorLayerImageViewManager()->SetColorBarPosition( colorbarposition );
+ // std::vector<double> base_color;
+ // _viewColorLayerImagePanel->GetColorLayerImageViewManager()->SetBaseColors( base_color );
+ // std::vector<double> grey_level_boundaries;
+ // clivp->GetColorLayerImageViewManager()->SetGreyLevelBoundaries( grey_level_boundaries );
+ std::vector<double> transparence_level_boundaries;
+ transparence_level_boundaries.push_back(0);
+ _viewColorLayerImagePanel->GetColorLayerImageViewManager()->SetBaseTransparence( transparence_level_boundaries );
+ _viewColorLayerImagePanel->GetColorLayerImageViewManager()->SetPlainOrGradientColor( false );
+// _viewColorLayerImagePanel->SetFittingMode( 3 );
}
return _viewColorLayerImagePanel;
}
_theViewPanel->getImageData()->GetScalarRange(range);
int min = (int)floor (range[0]);
int max = (int)ceil (range[1]);
- _viewThresholdImagePanel = new ThresholdImageViewPanel( parent, min, max , 1);
+ int start= (max+min)/2 - (max-min)*0.25;
+ int end= (max+min)/2 + (max-min)*0.25;
+ _viewThresholdImagePanel = new ThresholdImageViewPanel( parent, min, max, start, end , 1);
_viewThresholdImage = new ThresholdImageView();
+ _viewThresholdImage->SetminMaxValue(start,end);
_viewThresholdImage->SetImage( _theViewPanel->getImageData() );
- _viewThresholdImage->SetminMaxValue( min, max);
+ std::vector<int> colorbarposition;
+ colorbarposition.push_back( 10 );
+ colorbarposition.push_back( 105 );
+ _viewThresholdImage->SetColorBarPosition( colorbarposition );
+ double spc[3];
+ _viewThresholdImage->SetSpcBase( _theViewPanel->getImageData()->GetSpacing() );
+ _viewThresholdImage->SetNewSpacingLayer( _theViewPanel->getImageData()->GetSpacing() );
+
_viewThresholdImage->SetBaseColor( 1,0,0 );
_viewThresholdImagePanel->SetThresholdImageView( _viewThresholdImage );
_viewThresholdImage->SetwxVtkBaseView( _theViewPanel->getWxVtkBaseView() );
+ _viewThresholdImage->onThresholdChangeOpacity( 25 );
+ RefreshInterface();
}
return _viewThresholdImagePanel;
}
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<std::string> currentSelection = _theViewPanel->getSelectedObjects();
}
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);
}
std::cout<<"GETFILELOCATION:"<<_fileLocation<<std::endl;
}
//------------------------------------------------------------------------------------------------------------
+
+
+
+
+
+
+
+
+void wxContourMainFrame::FlipSelectedContours(int flipDirection)
+{
+ printf("EED wxContourMainFrame::FlipSelectedContours flipDirection=%d \n", flipDirection );
+ FlipLstOfContours(
+ (std::vector<std::string>)_theViewPanel->getSceneManager()->getSelectedObjects() ,
+ flipDirection
+ );
+
+}
+
+void wxContourMainFrame::FlipActualSliceContours(int flipDirection)
+{
+ printf("EED wxContourMainFrame::FlipActualSliceContours flipDirection=%d \n", flipDirection );
+ FlipLstOfContours(
+ (std::vector<std::string>)_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<std::string> 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 ; i<sizeLstNameThings ; i++)
+ {
+ printf("EED wxContourMainFrame::FlipAllContours contour=%d \n", i );
+ manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(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 ; i<sizeLstNameThings ; i++)
+ {
+ manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(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();
+}
+
+
+
+
+