// m_notebook_style =wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_EXTERNAL_MOVE | wxNO_BORDER;
// m_notebook_theme = 0;
//wxContour_ActionCommandsID a;
-
+
+ _contourextractdata = NULL;
}
wxContourMainFrame :: wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector<vtkImageData*> images, long style,std::string datadir)
if(images.size() > 0)
{
- _images = images;
- this->setVectImages();
+ this->setVectImages(images);
}
-
+
+ _contourextractdata = NULL;
}
-void wxContourMainFrame::setVectImages( )
+void wxContourMainFrame::setVectImages(std::vector<vtkImageData*> imgs)
{
+ _images = imgs;
+
#if defined(__GNUC__)
std::string str_home(getenv("HOME"));
#elif defined(_WIN32)
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()
{
+ delete _contourextractdata;
deleteAllContours();
_pannew->Close();
interfMainPanel::resetInstance();
_instantPanel->setConceptValue(name, value);
}
+
ConceptDataWrap* wxContourMainFrame::getLastConceptData(){
return _instantPanel->getLastConceptData();
}
+
+
bool wxContourMainFrame::getIfConceptCheckedAt( std::string name, int pos ){
return _instantPanel->getIfConceptCheckedAt( name, pos );
}
+
+
+void wxContourMainFrame::ShowResultImages(int typeContourGroup)
+{
+ vtkImageData * mask;
+ vtkImageData * value;
+ this->getMaskValue(&mask, &value, typeContourGroup);
+
+ std::vector<int> nTypeView;
+ nTypeView.push_back(5);
+ nTypeView.push_back(1);
+ nTypeView.push_back(2);
+ nTypeView.push_back(0);
+
+ wxFrame *frame = new wxFrame(this, -1,_T("Result image extracted.."),wxDefaultPosition,wxSize(600,600), wxDEFAULT_FRAME_STYLE|wxSTAY_ON_TOP);
+ wxAuiManager *m_mgr_noteBookViewerResult = new wxAuiManager();
+ m_mgr_noteBookViewerResult->SetManagedWindow(frame);
+
+ wxAuiNotebook* noteBookViewerResult = new wxAuiNotebook(frame, -1, wxPoint(600, 600), wxSize(430,200), m_notebook_style);
+ m_mgr_noteBookViewerResult->AddPane(noteBookViewerResult, wxAuiPaneInfo().Name(wxT("notebook_content")).CenterPane().PaneBorder(false));
+
+ wxPanel *panelViewer1 = new wxMaracas_N_ViewersWidget(noteBookViewerResult, value,&nTypeView);
+ wxPanel *panelViewer2 = new wxMaracas_N_ViewersWidget(noteBookViewerResult, mask,&nTypeView);
+
+
+ noteBookViewerResult->AddPage( panelViewer1, wxT("Image result") );
+ noteBookViewerResult->AddPage( panelViewer2, wxT("Mask result") );
+ m_mgr_noteBookViewerResult->Update();
+ frame->Show();
+}
+
+
+
+
void wxContourMainFrame::changeInstant()
{
std::vector<int> instantVect;
}
+
void wxContourMainFrame :: updateInstantOutlines()
{
_theViewPanel->removeSceneContours();
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];
+
+ 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 || 1.0.0
+ fscanf(pFile,"%s",tmp); // 1.0.2 || 1.0.1 || 1.0.0
std::string version(tmp);
-
- if (version=="1.0.1")
+
+ //AD:02-06-09
+ if (version=="1.0.2")
{
- openContours(pFile,false);
+ 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,true);
+ openContours(pFile,1,false); //Skips ImageDimensions and ImageSpacing
}
-// _theViewPanel->getSceneManager()->openFileWithContours(ff);
fclose(pFile);
}
int i,sizeLstNameThings;
fprintf(pFile,"--CreaContour--\n");
- fprintf(pFile,"Version %s\n", "1.0.1" );
-
- // Normal Contours
- lstNameThings = kernelManager->GetLstNameThings();
- sizeLstNameThings = lstNameThings.size();
- fprintf(pFile,"NumberOfContours %d\n", sizeLstNameThings );
-
+ fprintf(pFile,"Version %s\n", "1.0.2" );
+
vtkImageData *image = _images[0];
int dimRange[3];
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);
}
-//AD:02-06-09: TODO: Adjust spacing and dimensions to Rois comming from images with different specifications
-void wxContourMainFrame::openContours( FILE *pFile, bool staticContour ){
+//AD:04-06-09
+void wxContourMainFrame::openContours( FILE *pFile, int version, bool staticContour )
+{
char tmp[255];
- fscanf(pFile,"%s",tmp); // NumberOfContours
- fscanf(pFile,"%s",tmp); // ##
- int numberOfContours = atoi(tmp);
-
- std::vector<int> instantVector;
- int typeContourModel;
- manualContourModel *manModelContour;
- int typeView;
-
+
vtkImageData *image = _images[0];
int imageDim[3];
- image->GetDimensions(imageDim);
double imageSpac[3];
- image->GetSpacing(imageSpac);
-
int tempDim[3];
double tempSpac[3];
-
- 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);
-
+
bool compatible = true;
-
- //Compare Spacing and Dims in X and Y (Necessary in Z?)
- if (imageDim[0]!=tempDim[0] || imageDim[1]!=tempDim[1] ||
- imageSpac[0]!=tempSpac[0] || imageSpac[1]!=tempSpac[1])
+
+ //Version==2
+ if (version==2)
{
- compatible = false;
+ 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);
+
+ std::vector<int> instantVector;
+ int typeContourModel;
+ manualContourModel *manModelContour;
+ int typeView;
if (compatible==true)
{
fscanf(pFile,"%s",tmp); // ##
typeView = atoi(tmp);
-
- // if (typeView==1)
- // {
- // }
-
-
std::string theName;
theName = kernelManager->createOutline( manModelContour, instantVector );
bool addedModel = theName.compare("") != 0;
_theViewPanel->getSceneManager()->configureViewControlTo( theName, manModelContour,spc , typeView) ;
}
- if (staticContour==true)
+ if (staticContour) //StaticContours (will appear in all slices)
{
Instant instant(&instantVector);
kernelManager->changeContourOfManager( theName , &instant );
}
- }// for numberOfContours
+ }// for numberOfContours
}
else if (compatible==false)
{
- wxMessageBox(_T("The actual image is not compatible with the selected Roi file"), _T("Error"), wxICON_ERROR | wxOK);
+ 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 (dial->GetReturnCode() == wxID_OK)
+ {
+ 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);
+ }
+ }
+
+ 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
}
}
_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);
return kernelManager->getOutlinesNameAtInstant(tempVector);
}
+
+void wxContourMainFrame::GenerateContourExtractData()
+{
+ if (_contourextractdata==NULL) { _contourextractdata = new ContourExtractData(true); }
+}
+
+
void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ)
{
+ GenerateContourExtractData();
+
int maxContourGroup = 0;
- ContourExtractData *contourextractdata = new ContourExtractData();
- contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
+ _contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
std::vector<manualContourModel*> lstManConMod;
std::vector<manualContourModel*> lstManConModTmp;
totalZ = maxZ-minZ+1;
- contourextractdata->SetImage( imagedata);
+ _contourextractdata->SetImage( imagedata);
// For each slice..
for ( z=minZ ; z<=maxZ ; z++ )
//_staticTextInformation->SetLabel(tmpString);
//Extraction data from contours of each slice
- contourextractdata->SetZtoBeAnalys(z);
+ _contourextractdata->SetZtoBeAnalys(z);
tempVector[1]=z;
Instant instant(&tempVector);
lstManConModTmp = lstManConModExp;
}
- contourextractdata->SetLstManualContourModel( lstManConModTmp );
+ _contourextractdata->SetLstManualContourModel( lstManConModTmp );
pLstValue.clear();
pLstValuePosX.clear();
pLstValuePosY.clear();
pLstValuePosZ.clear();
- contourextractdata->GetValuesInsideCrown( &pLstValue,
+ _contourextractdata->GetValuesInsideCrown( &pLstValue,
&pLstValuePosX,
&pLstValuePosY,
&pLstValuePosZ);
// Statistics of each slice.
- contourextractdata->Statistics( &pLstValue,
+ _contourextractdata->Statistics( &pLstValue,
minimumZ,
maximumZ,
&resultGrayRangeCount,
}
interfMainPanel::getInstance()->setStringInfoPanel( _T("") );
- delete contourextractdata;
}
//AD: 29-05-09
void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefile,int typeContourGroup)
{
wxBusyCursor wait;
- ContourExtractData *contourextractdata = new ContourExtractData();
+ GenerateContourExtractData();
+
//int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
- contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
+ _contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
std::vector<manualContourModel*> lstManConMod;
std::vector<manualContourModel*> lstManConModTmp;
maxZ = sizeZ;//_mbarrange->GetEnd();
totalZ = maxZ-minZ+1;
- contourextractdata->SetImage( imagedata);
+ _contourextractdata->SetImage( imagedata);
// For each slice..
for ( z=0 ; z<sizeZ ; z++)
//Extraction data from contours of each slice
- contourextractdata->SetZtoBeAnalys( z);
+ _contourextractdata->SetZtoBeAnalys( z);
tempVector[1]=z;
Instant instant(&tempVector);
lstManConModTmp = lstManConModExp;
}
- contourextractdata->SetLstManualContourModel( lstManConModTmp );
+ _contourextractdata->SetLstManualContourModel( lstManConModTmp );
pLstValue.clear();
pLstValuePosX.clear();
pLstValuePosY.clear();
pLstValuePosZ.clear();
- contourextractdata->GetValuesInsideCrown( &pLstValue,
+ _contourextractdata->GetValuesInsideCrown( &pLstValue,
&pLstValuePosX,
&pLstValuePosY,
&pLstValuePosZ);
} // for z
interfMainPanel::getInstance()->setStringInfoPanel(_T(""));
//_staticTextInformation->SetLabel( _T("") );
- delete contourextractdata;
+
}
void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value,int typeContourGroup){
wxBusyCursor wait;
- ContourExtractData *contourextractdata = new ContourExtractData( true );
+ GenerateContourExtractData();
+
//int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
if (typeContourGroup==3)
{
typeContourGroup=1;
}
- contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
+ _contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
std::vector<manualContourModel*> lstManConMod;
std::vector<manualContourModel*> lstManConModTmp;
maxZ = sizeZ;//_mbarrange->GetEnd();
totalZ = maxZ-minZ+1;
- contourextractdata->SetImage( imagedata);
+ _contourextractdata->SetImage( imagedata);
// For each slice..
for ( z=0 ; z<sizeZ ; z++)
interfMainPanel::getInstance()->setStringInfoPanel(tmpString);
//Extraction data from contours of each slice
- contourextractdata->SetZtoBeAnalys( z);
+ _contourextractdata->SetZtoBeAnalys( z);
tempVector[1]=z;
Instant instant(&tempVector);
lstManConModTmp = lstManConModExp;
}
- contourextractdata->SetLstManualContourModel( lstManConModTmp );
- contourextractdata->CalculateImageResult(); // with actual Z
+ _contourextractdata->SetLstManualContourModel( lstManConModTmp );
+ _contourextractdata->CalculateImageResult(); // with actual Z
} // for iContourGroup
} // for z
- (*value) = contourextractdata->GetVtkImageValueResult();
- (*mask) = contourextractdata->GetVtkImageMaskResult();
- delete contourextractdata;
+ (*value) = _contourextractdata->GetVtkImageValueResult();
+ (*mask) = _contourextractdata->GetVtkImageMaskResult();
+
}
void wxContourMainFrame::SaveImageResult(std::string directory,std::string namefile, vtkImageData* mask,vtkImageData* value)