#include "NameWrapper.h"
#include "wx/artprov.h"
#include "ConceptDataWrap.h"
-
-#include <manualContour.h>
-//#include "ImageSourceThing.h"
-//#include "wxContour_ActionCommandsID.h"
-//#include "OutlineModelBuilder.h"
-//#include "wxContourEventHandler.h"
#include <creaWx.h>
//----------------------------------------------------------------------------------------------------------------
}
-void wxContourMainFrame::setVectImages( std::vector<vtkImageData*> images ){
+void wxContourMainFrame::setVectImages(std::vector<vtkImageData*> imgs)
+{
+
+ _images = imgs;
#if defined(__GNUC__)
std::string str_home(getenv("HOME"));
notebook = this->createNotebook();
- kernelManager = new KernelManagerContour( images , _datadir+"/data/" , strCreaContourDataTmp );
+ kernelManager = new KernelManagerContour( imgs , _datadir+"/data/" , strCreaContourDataTmp );
_instantPanel = new wxInstantChooserPanel( notebook, "Instant Chooser", true, false, "c" );
wxContourMainFrame :: ~wxContourMainFrame()
{
-
+ deleteAllContours();
_pannew->Close();
interfMainPanel::resetInstance();
delete kernelManager;
fscanf(pFile,"%s",tmp); // --CreaContour--
fscanf(pFile,"%s",tmp); // Version
- fscanf(pFile,"%s",tmp); // 1.0.1
- std::string version(tmp);
+ fscanf(pFile,"%s",tmp); // 1.0.2 || 1.0.1 || 1.0.0
deleteAllContours();
- openContours(pFile,false);
- if (version!="1.0.0"){
- openContours(pFile,true);
- }
+ loadContours(pFile, false);
+ loadContours(pFile, true);
fclose(pFile);
+}
+
+void wxContourMainFrame ::loadContours( FILE *pFile, bool staticContour )
+{
+ char tmp[255];
+
+ if (staticContour==false)
+ {
+ fscanf(pFile,"%s",tmp); // ImageDimensions
+ fscanf(pFile,"%s",tmp); // X
+ fscanf(pFile,"%s",tmp); // Y
+ fscanf(pFile,"%s",tmp); // Z
+
+ fscanf(pFile,"%s",tmp); // ImageSpacing
+ fscanf(pFile,"%s",tmp); // X
+ fscanf(pFile,"%s",tmp); // Y
+ fscanf(pFile,"%s",tmp); // Z
+ }
- //_theViewPanel->getSceneManager()->removeSceneContours();
- //changeInstant();
+ fscanf(pFile,"%s",tmp); // NumberOfContours
+ fscanf(pFile,"%s",tmp); // ##
+ int numberOfContours = atoi(tmp);
+ std::vector<int> instantVector;
+ int typeContourModel;
+ manualContourModel *manModelContour;
+ int typeView;
+
+ int i;
+ for (i=0;i<numberOfContours;i++)
+ {
+ instantVector.clear();
+ fscanf(pFile,"%s",tmp); // Instant
+ fscanf(pFile,"%s",tmp); // 1
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 2
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 3
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 4
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 5
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 6
+ instantVector.push_back( atoi(tmp) );
+
+ fscanf(pFile,"%s",tmp); // TypeContourModel
+ fscanf(pFile,"%s",tmp); // ##
+ typeContourModel = atoi(tmp);
+
+ manModelContour = kernelManager->factoryManualContourModel(typeContourModel);
+ manModelContour->Open(pFile);
+
+ fscanf(pFile,"%s",tmp); // TypeView
+ fscanf(pFile,"%s",tmp); // ##
+ typeView = atoi(tmp);
+
+ std::string theName;
+ theName = kernelManager->createOutline( manModelContour, instantVector );
+ bool addedModel = theName.compare("") != 0;
+ if( addedModel )
+ {
+ double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default
+ _theViewPanel->getSpacing(spc);
+ //Adding the manualContourControler 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);
+ kernelManager->changeContourOfManager( theName , &instant );
+ }
+ }// for numberOfContours
}
-void wxContourMainFrame::onLoad(){
+void wxContourMainFrame::onLoad()
+{
char tmp[255];
wxFileDialog dialog(NULL, _T("Choose a file"), _T(""), _T(""), _T("*.roi"), wxOPEN );
if (dialog.ShowModal() == wxID_OK)
fscanf(pFile,"%s",tmp); // --CreaContour--
fscanf(pFile,"%s",tmp); // Version
- fscanf(pFile,"%s",tmp); // 1.0.1
+ fscanf(pFile,"%s",tmp); // 1.0.2 || 1.0.1 || 1.0.0
std::string version(tmp);
-
- openContours(pFile,false);
- if (version!="1.0.0"){
- openContours(pFile,true);
+
+ //AD:02-06-09
+ if (version=="1.0.2")
+ {
+ openContours(pFile,2,false);
+ openContours(pFile,2,true); //Load StaticContours
+ }
+
+ //AD:02-06-09
+ else if (version=="1.0.1")
+ {
+ openContours(pFile,1,false); //Skips ImageDimensions and ImageSpacing
+ openContours(pFile,1,true); //Load StaticContours, skips ImageDimensions and ImageSpacing
+ }
+
+ //AD:02-06-09
+ else if (version=="1.0.0")
+ {
+ openContours(pFile,1,false); //Skips ImageDimensions and ImageSpacing
}
-// _theViewPanel->getSceneManager()->openFileWithContours(ff);
fclose(pFile);
}
_theViewPanel->getSceneManager()->removeSceneContours();
changeInstant();
}
+
+//AD: 29-05-09
void wxContourMainFrame::onSave(){
wxFileDialog dialog(NULL, _T("Choose a file"), _T(""), _T(""), _T("*.roi"), wxSAVE );
if (dialog.ShowModal() == wxID_OK)
saveFileWithContours( fileNameContourROI );
}
}
+
+//AD: 29-05-09
void wxContourMainFrame::saveFileWithContours( std::string filename )
{
int i,sizeLstNameThings;
fprintf(pFile,"--CreaContour--\n");
- fprintf(pFile,"Version %s\n", "1.0.1" );
+ fprintf(pFile,"Version %s\n", "1.0.2" );
+
+ vtkImageData *image = _images[0];
+
+ int dimRange[3];
+ image->GetDimensions(dimRange);
+
+ fprintf(pFile,"ImageDimensions %d %d %d\n", dimRange[0], dimRange[1], dimRange[2] );
+
+ double spaRange[3];
+ image->GetSpacing(spaRange);
+
+ fprintf(pFile,"ImageSpacing %f %f %f\n", spaRange[0], spaRange[1], spaRange[2] );
// Normal Contours
+
lstNameThings = kernelManager->GetLstNameThings();
sizeLstNameThings = lstNameThings.size();
fprintf(pFile,"NumberOfContours %d\n", sizeLstNameThings );
+
for (i=0 ; i<sizeLstNameThings ; i++)
{
kernelManager->SaveThingName( pFile, lstNameThings[i] );
_theViewPanel->getSceneManager()->SaveThingName( pFile, lstNameThings[i] );
}// for i
- //-- Contours Statics
+ //-- 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();
fprintf(pFile,"NumberOfContoursStatic %d\n", sizeLstNameThings );
fclose(pFile);
}
-void wxContourMainFrame::openContours( FILE *pFile, bool staticContour ){
+//AD:04-06-09
+void wxContourMainFrame::openContours( FILE *pFile, int version, bool staticContour )
+{
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])
+ {
+ compatible = false;
+ }
+ }
+
fscanf(pFile,"%s",tmp); // NumberOfContours
fscanf(pFile,"%s",tmp); // ##
int numberOfContours = atoi(tmp);
manualContourModel *manModelContour;
int typeView;
- int i;
- for (i=0;i<numberOfContours;i++)
+ if (compatible==true)
{
- instantVector.clear();
- fscanf(pFile,"%s",tmp); // Instant
-
- fscanf(pFile,"%s",tmp); // 1
- instantVector.push_back( atoi(tmp) );
- fscanf(pFile,"%s",tmp); // 2
- instantVector.push_back( atoi(tmp) );
- fscanf(pFile,"%s",tmp); // 3
- instantVector.push_back( atoi(tmp) );
- fscanf(pFile,"%s",tmp); // 4
- instantVector.push_back( atoi(tmp) );
- fscanf(pFile,"%s",tmp); // 5
- instantVector.push_back( atoi(tmp) );
- fscanf(pFile,"%s",tmp); // 6
- instantVector.push_back( atoi(tmp) );
-
-
- fscanf(pFile,"%s",tmp); // TypeContourModel
- fscanf(pFile,"%s",tmp); // ##
- typeContourModel = atoi(tmp);
-
- manModelContour = kernelManager->factoryManualContourModel(typeContourModel);
- manModelContour->Open(pFile);
-
- fscanf(pFile,"%s",tmp); // TypeView
- fscanf(pFile,"%s",tmp); // ##
- typeView = atoi(tmp);
-
-
-// if (typeView==1)
-// {
-// }
+ int i;
+ for (i=0;i<numberOfContours;i++)
+ {
+ instantVector.clear();
+ fscanf(pFile,"%s",tmp); // Instant
+
+ fscanf(pFile,"%s",tmp); // 1
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 2
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 3
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 4
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 5
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 6
+ instantVector.push_back( atoi(tmp) );
+
+
+ fscanf(pFile,"%s",tmp); // TypeContourModel
+ fscanf(pFile,"%s",tmp); // ##
+ typeContourModel = atoi(tmp);
+
+ manModelContour = kernelManager->factoryManualContourModel(typeContourModel);
+ manModelContour->Open(pFile);
+
+ fscanf(pFile,"%s",tmp); // TypeView
+ fscanf(pFile,"%s",tmp); // ##
+ typeView = atoi(tmp);
+
+ std::string theName;
+ theName = kernelManager->createOutline( manModelContour, instantVector );
+ bool addedModel = theName.compare("") != 0;
+ if( addedModel )
+ {
+ double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default
+ _theViewPanel->getSpacing(spc);
+ //Adding the manualContourControler 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
+ }
- std::string theName;
- theName = kernelManager->createOutline( manModelContour, instantVector );
- bool addedModel = theName.compare("") != 0;
- if( addedModel )
- {
- double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default
- _theViewPanel->getSpacing(spc);
- //Adding the manualContourControler 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) ;
- }
+ 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;
- if (staticContour==true)
+ if (dial->GetReturnCode() == wxID_OK)
{
- Instant instant(&instantVector);
- kernelManager->changeContourOfManager( theName , &instant );
+ typeOfTransformation = radioOpts->GetSelection();
+ transform = true;
}
+
+ int i;
+ for (i=0;i<numberOfContours;i++)
+ {
+ instantVector.clear();
+ fscanf(pFile,"%s",tmp); // Instant
+
+ fscanf(pFile,"%s",tmp); // 1
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 2
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 3
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 4
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 5
+ instantVector.push_back( atoi(tmp) );
+ fscanf(pFile,"%s",tmp); // 6
+ instantVector.push_back( atoi(tmp) );
+
+ fscanf(pFile,"%s",tmp); // TypeContourModel
+ fscanf(pFile,"%s",tmp); // ##
+ typeContourModel = atoi(tmp);
+
+ manModelContour = kernelManager->factoryManualContourModel(typeContourModel);
+ manModelContour->Open(pFile);
+
+ 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);
+ }
+ }
- }// for numberOfContours
+ fscanf(pFile,"%s",tmp); // TypeView
+ fscanf(pFile,"%s",tmp); // ##
+ typeView = atoi(tmp);
+ std::string theName;
+ theName = kernelManager->createOutline( manModelContour, instantVector );
+ bool addedModel = theName.compare("") != 0;
+ if( addedModel )
+ {
+ double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default
+ _theViewPanel->getSpacing(spc);
+ //Adding the manualContourControler 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
+ }
}
void wxContourMainFrame::RefreshInterface(){
_refLineView->SetWidthLine(4);
_refLineControl->SetModelView( _refLineModel , _refLineView );
- viewer2D->GetInteractorStyleBaseView()->AddInteractorStyleMaracas( _refLineControl );
+ vtkInteractorStyleBaseView* style = (vtkInteractorStyleBaseView*)viewer2D->GetInteractorStyleBaseView();
+ style->AddInteractorStyleMaracas( _refLineControl );
_refLineModel->SetCloseContour(false);
_refLineControl->CreateNewManualContour();
-//EED?? double z = _refLineControl->GetZ();
+//AD: Inicializar el mirroring con una linea ya pintada
/*
- _refLineControl->AddPoint(50,100,z);
- _refLineControl->AddPoint(80,40,z);
+ double z = _refLineControl->GetZ();
+
+ int imageDim[3];
+ image->GetDimensions(imageDim);
+ double x = (double) imageDim[0]/2;
+ double y1 = (double) (imageDim[1]/2)+15;
+ double y2 = (double) (imageDim[1]/2)-15;
+
+ _refLineControl->AddPoint(x,y1,z);
+ _refLineControl->AddPoint(x,y2,z);
_refLineControl->SetCompleteCreation(true);
- _refLineModel->AddPoint(50,100,z);
- _refLineModel->AddPoint(80,40,z);
+ _refLineModel->AddPoint(x,y1,z);
+ _refLineModel->AddPoint(x,y2,z);
_refLineModel->UpdateSpline();
_refLineView->UpdateViewPoint(0);
_refLineView->SetZ( 1200 );
_refLineControl->SetModelView( _refLineModel , _refLineView );
- viewer2D->GetInteractorStyleBaseView()->AddInteractorStyleMaracas( _refLineControl );
+ vtkInteractorStyleBaseView* style = (vtkInteractorStyleBaseView*)viewer2D->GetInteractorStyleBaseView();
+ style->AddInteractorStyleMaracas( _refLineControl );
_refLineControl->CreateNewManualContour();
_refLineControl->SetActive(true);
_refLineView->RefreshContour();
RefreshInterface();
}
-int wxContourMainFrame::getColorWindow(){
+
+int wxContourMainFrame::getColorWindow()
+{
+ /*
+ double range[2];
+ vtkImageData * img = getImageData();
+ img->GetScalarRange(range);
+
+ std::cout<<"Val 1: "<<range[0]<<" Val 2: "<<range[1]<<std::endl;
+
+ return (int)range[1];
+ */
return _theViewPanel->getColorWindow();
}
-int wxContourMainFrame::getWindowLevel(){
+
+int wxContourMainFrame::getWindowLevel()
+{
+ /*
+ double range[2];
+ vtkImageData * img = getImageData();
+ img->GetScalarRange(range);
+
+ std::cout<<"Val 1: "<<range[0]<<" Val 2: "<<range[1]<<std::endl;
+
+ return (int)range[1];
+ */
return _theViewPanel->getWindowLevel();
}
return kernelManager->getOutlinesNameAtInstant(tempVector);
}
-void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ){
+void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ)
+{
int maxContourGroup = 0;
ContourExtractData *contourextractdata = new ContourExtractData();
//_staticTextInformation->SetLabel(tmpString);
//Extraction data from contours of each slice
- contourextractdata->SetZtoBeAnalys( z);
+ contourextractdata->SetZtoBeAnalys(z);
tempVector[1]=z;
Instant instant(&tempVector);
delete contourextractdata;
}
-void wxContourMainFrame::onSaveResults(std::string directory,std::string namefile, std::string filename, int typeContourGroup){
- SaveValuesXYZ( directory , namefile, typeContourGroup );
-
- vtkImageData* mask, *value;
- this->getMaskValue(mask, value, typeContourGroup);
- this->SaveImageResult( directory , namefile, mask, value);
+//AD: 29-05-09
+void wxContourMainFrame::onSaveResults(std::string directory,std::string namefile, std::string filename,
+ int typeContourGroup, bool XYZValues, bool contourImage, bool statistics)
+{
+ if (XYZValues)
+ {
+ SaveValuesXYZ( directory , namefile, typeContourGroup );
+ }
+ if (contourImage)
+ {
+ vtkImageData * mask;
+ vtkImageData * value;
+ this->getMaskValue(&mask, &value, typeContourGroup);
+ this->SaveImageResult( directory , namefile, mask, value);
+ }
- FILE *pFile=fopen(filename.c_str(),"w+");
+ if (statistics)
+ {
+ std::ostringstream name;
+ name << filename << ".xls";
+
- int sizeZ = _theViewPanel->GetImageDataSizeZ();
+ FILE *pFile=fopen(name.str().c_str(),"w+");
- wxString tmpString;
- int i,j,maxX,maxY=sizeZ;
- maxX= interfMainPanel::getInstance()->getNumberColsInformationPanel();//this->_grid->GetNumberCols();
+ int sizeZ = _theViewPanel->GetImageDataSizeZ();
- int iTitle,sizeTitle = (maxX / _numberOfVariablesStatistics);
- for ( iTitle=0; iTitle<sizeTitle ; iTitle++)
- {
- // fprintf(pFile,"-- \t %d-Size \t SizeRange \t Min \t Max \t Ave \t StDv \t" , iTitle,tmpString.c_str() );
- fprintf(pFile,"-- \t %d-Size \t SizeRange \t Min \t Max \t Ave \t StDv \t" , iTitle );
- }
- fprintf(pFile,"\n" );
+ wxString tmpString;
+ int i,j,maxX,maxY=sizeZ;
+ maxX= interfMainPanel::getInstance()->getNumberColsInformationPanel();//this->_grid->GetNumberCols();
+ int iTitle,sizeTitle = (maxX / _numberOfVariablesStatistics);
+ for ( iTitle=0; iTitle<sizeTitle ; iTitle++)
+ {
+ // fprintf(pFile,"-- \t %d-Size \t SizeRange \t Min \t Max \t Ave \t StDv \t" , iTitle,tmpString.c_str() );
+ fprintf(pFile,"-- \t %d-Size \t SizeRange \t Min \t Max \t Ave \t StDv \t" , iTitle );
+ }
+ fprintf(pFile,"\n" );
- for ( j=0; j<maxY ; j++)
- {
- fprintf(pFile,"%d\t" , j );
- for (i=0 ; i<maxX ; i++){
- tmpString = interfMainPanel::getInstance()->getCellValue(j, i);//_grid->GetCellValue( j , i );
- fprintf(pFile,"%s\t" , (const char *)(tmpString.mb_str()) );
- } // for i
- fprintf(pFile,"\n" );
- } // for j
- fclose(pFile);
+ for ( j=0; j<maxY ; j++)
+ {
+ fprintf(pFile,"%d\t" , j );
+ for (i=0 ; i<maxX ; i++){
+ tmpString = interfMainPanel::getInstance()->getCellValue(j, i);//_grid->GetCellValue( j , i );
+ fprintf(pFile,"%s\t" , (const char *)(tmpString.mb_str()) );
+ } // for i
+ fprintf(pFile,"\n" );
+ } // for j
+
+ fclose(pFile);
+ }
}
+//AD: 29-05-09
void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefile,int typeContourGroup)
{
wxBusyCursor wait;
delete contourextractdata;
}
-void wxContourMainFrame::getMaskValue(vtkImageData* mask,vtkImageData* value,int typeContourGroup){
+void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value,int typeContourGroup){
wxBusyCursor wait;
ContourExtractData *contourextractdata = new ContourExtractData( true );
//int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
} // for iContourGroup
} // for z
- value = contourextractdata->GetVtkImageValueResult();
- mask = contourextractdata->GetVtkImageMaskResult();
+ (*value) = contourextractdata->GetVtkImageValueResult();
+ (*mask) = contourextractdata->GetVtkImageMaskResult();
delete contourextractdata;
}