#include "ConceptDataWrap.h"
#include <creaWx.h>
+#include <string>
+using namespace std;
+
//----------------------------------------------------------------------------------------------------------------
// Class implementation
//----------------------------------------------------------------------------------------------------------------
: wxPanel(parent, id, pos, size, style)
{
m_mgr.SetManagedWindow(this);
+ _contourGroup = 1;
_creatingContoursActive = false;
_theViewPanel = NULL;
// _modelManager = NULL;
_refLineControl = NULL;
_refLineModel = NULL;
_refLineView = NULL;
- _imageReslicer = NULL;
- _thresholdTable = NULL;
- _thresholdMapper = NULL;
- _thresholdActor = NULL;
- _actorPresent = false;
+// _actorPresent = false;
// set up default notebook style
// m_notebook_style =wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_EXTERNAL_MOVE | wxNO_BORDER;
//wxContour_ActionCommandsID a;
_contourextractdata = NULL;
+ _viewMaskImage = NULL;
+ _viewMaskImagePanel = NULL;
+ _viewThresholdImage = NULL;
+ _viewThresholdImagePanel = 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)
: wxPanel(parent, id, pos, size, style)
{
m_mgr.SetManagedWindow(this);
+ _contourGroup = 1;
_creatingContoursActive = false;
_theViewPanel = NULL;
_refLineControl = NULL;
_refLineModel = NULL;
_refLineView = NULL;
- _imageReslicer = NULL;
- _thresholdTable = NULL;
- _thresholdMapper = NULL;
- _thresholdActor = NULL;
- _actorPresent = false;
+// _actorPresent = false;
+ _viewMaskImage = NULL;
+ _viewMaskImagePanel = NULL;
+ _viewThresholdImage = NULL;
+ _viewThresholdImagePanel = NULL;
// set up default notebook style
m_notebook_style =wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_EXTERNAL_MOVE | wxNO_BORDER;
createContour( 6 );
}
+// RaC 09-09 --------------------------------------
+void wxContourMainFrame::onCreateContourPoints( ){
+ //JCP 20-10-08 Undo redo implementation
+ saveState();
+ //JCP 20-10-08 Undo redo implementation
+ createContour( 7 );
+}
+// RaC 09-09 --------------------------------------
+
//------------------------------------------------------------------------------------------------------------
void wxContourMainFrame :: onCreateContourBullEye(wxPanel* panel )
{
- //Creating the manualContourModel and including in the model
- manualContourModel * manModelContour = factoryManualContourModel(panel );
+ //Creating the manualBaseModel and including in the model
+ manualBaseModel * manModelContour = factoryManualContourModel(panel );
std::vector<int> instantVector;
_instantPanel->getInstant( instantVector );
void wxContourMainFrame :: createContour( int typeContour )
{
//Creating the manualContourModel and including in the model
- manualContourModel * manModelContour = kernelManager->factoryManualContourModel(typeContour);
-
+ manualBaseModel * manModelContour = kernelManager->factoryManualContourModel(typeContour);
std::vector<int> instantVector;
_instantPanel->getInstant( instantVector );
}
}
-manualContourModel * wxContourMainFrame::factoryManualContourModel(wxPanel* panel){
+manualBaseModel * wxContourMainFrame::factoryManualContourModel(wxPanel* panel){
manualContourModelBullEye *manModelContourBullEye = new manualContourModelBullEye();
- manualContourModel *manModelContour=NULL;
+ manualBaseModel *manModelContour=NULL;
manModelContour = manModelContourBullEye;
if (panel!=NULL){
int iCrown,sizeCrowns,iSector,sizeSectors;
//cViewer = conwrapviewControl->getViewer();
//_theViewPanel->getSceneManager()->removeWrap( theKeyName );
//cControler* conwrapviewControl->getControler();
-//EED Borrame
-//FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
-//fprintf(ff,"EED wxContourEventHandler::deleteContours() \n" );
-//fprintf(ff," %s %p\n",keyNamesVector[i].c_str(), cControler );
-//fclose(ff);
// delete cModel;
// delete cViewer;
// delete cControler;
{
std::vector<int> instantVect;
_instantPanel->getInstant( instantVect );
-// Instant * theInstant = new Instant ( &instantVect );
-
- //Setting the actual instant
- //_actualInstant = theInstant;
+ int actualSlice = instantVect[1];
kernelManager->setInstant(instantVect);
- //_modelManager->setInstant( _actualInstant );
-
- onThresholdChange();
+
+ // Refresh Mask image
+ if(_viewMaskImage!=NULL){
+ _viewMaskImage->SetZ(actualSlice);
+ if (_viewMaskImagePanel->IsVisible()==true)
+ {
+ vtkImageData *mask, *value;
+ getMaskValue(&mask,&value, _contourGroup , 0, -1, -1);
+ _viewMaskImage->onThreshold();
+ }
+ }
+
+ // Refresh Threshold image
+ if(_viewThresholdImage!=NULL){
+ _viewThresholdImage->SetZ(actualSlice);
+ if (_viewThresholdImagePanel->IsVisible()==true){
+ _viewThresholdImage->onThreshold();
+ }
+ }
+
updateInstantOutlines();
updateInstantImageData();
updateInstantAxes();
void wxContourMainFrame :: createCopyContourOf ( std::string anExistingKName, std::vector<int> &instantNoTouchData, bool append )
{
std::string cloneName = kernelManager->createCopyContourOf( anExistingKName, instantNoTouchData );
- manualContourModel * manualModel = kernelManager->getOutlineByKeyName(cloneName);//_modelManager->getOutlineByKeyName( cloneName )->getModel();
+ manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(cloneName);//_modelManager->getOutlineByKeyName( cloneName )->getModel();
_theViewPanel->getSceneManager()->createCopyContourOf( anExistingKName, cloneName, manualModel , append );
}
void wxContourMainFrame :: createMirrorContourOf ( std::string anExistingKName, std::vector<int> &instantNoTouchData, bool append )
{
std::string cloneName = kernelManager->createCopyContourOf( anExistingKName, instantNoTouchData );
- manualContourModel * manualModel = kernelManager->getOutlineByKeyName(cloneName);
+ manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(cloneName);
manualPoint * refPoint1 = _refLineModel->GetManualPoint(0);
manualPoint * refPoint2 = _refLineModel->GetManualPoint(1);
std::vector<int> instantVector;
int typeContourModel;
- manualContourModel *manModelContour;
+ manualBaseModel *manModelContour;
int typeView;
int i;
void wxContourMainFrame::onLoad()
{
char tmp[255];
- wxFileDialog dialog(NULL, _T("Choose a file"), _T(""), _T(""), _T("*.roi"), wxOPEN );
- if (dialog.ShowModal() == wxID_OK)
+ char tmpD[255];
+ std::string fileNameContourROI = GetFileLocation();
+
+//CMRU 03-09-09-----------------------------------------------------------------------------------------------
+ if(GetFileLocation().empty())
+ {
+//------------------------------------------------------------------------------------------------------------
+ wxFileDialog dialog(NULL, _T("Choose a file"), _T(""), _T(""), _T("*.roi"), wxOPEN );
+ if (dialog.ShowModal() == wxID_OK)
+ {
+ fileNameContourROI = (const char *)(dialog.GetPath().mb_str());
+ }
+ }
+
+ FILE *pFile =fopen(fileNameContourROI.c_str(),"r+");
+
+
+//CMRU 03-09-09- ----------------------------------------------------------------------------------------------
+ if(pFile != NULL)
{
- std::string fileNameContourROI = (const char *)(dialog.GetPath().mb_str());
- FILE *pFile=fopen(fileNameContourROI.c_str(),"r+");
+//------------------------------------------------------------------------------------------------------------
+ fileNameContourROI.append("data");
+ FILE *pFileData=fopen(fileNameContourROI.c_str(),"r+");
+ if(pFileData != NULL)
+ {
+ fscanf(pFileData,"%s",tmpD); // --CreaContour--
+ fscanf(pFileData,"%s",tmpD); // Version
+ fscanf(pFileData,"%s",tmpD); // 1.0.2 || 1.0.1 || 1.0.0
+
+ fscanf(pFileData,"%s",tmpD); // onePixelSize
+ fscanf(pFileData,"%s",tmpD); // #
+ _onePixelSize = atof(tmpD);
+ fscanf(pFileData,"%s",tmpD); // NumberOfContours
+ fscanf(pFileData,"%s",tmpD); // #
+ }
fscanf(pFile,"%s",tmp); // --CreaContour--
//AD:02-06-09
if (version=="1.0.2")
{
- openContours(pFile,2,false);
- openContours(pFile,2,true); //Load StaticContours
+ openContours(pFile,pFileData,2,false);
+ openContours(pFile,pFileData,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
+ openContours(pFile,pFileData,1,false); //Skips ImageDimensions and ImageSpacing
+ openContours(pFile,pFileData,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
+ openContours(pFile,pFileData,1,false); //Skips ImageDimensions and ImageSpacing
}
fclose(pFile);
+
+ if(pFileData != NULL)
+ {
+ fclose(pFileData);
+ }
}
_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)
+//CMRU 03-09-09-----------------------------------------------------------------------------------------------
+ if(GetFileLocation().empty())
{
- std::string fileNameContourROI = (const char *)(dialog.GetPath().mb_str());
+//------------------------------------------------------------------------------------------------------------
+ wxFileDialog dialog(NULL, _T("Choose a file"), _T(""), _T(""), _T("*.roi"), wxSAVE );
+ if (dialog.ShowModal() == wxID_OK)
+ {
+ std::string fileNameContourROI = (const char *)(dialog.GetPath().mb_str());
+ kernelManager->setCurrentFileName(fileNameContourROI);
+ saveFileWithContours( fileNameContourROI );
+ }
+ }
+//CMRU 03-09-09-----------------------------------------------------------------------------------------------
+ else
+ {
+ std::cout<<"Nombre del archivo: "<<GetFileLocation()<<std::endl;
+ std::string fileNameContourROI = GetFileLocation();
+ std::cout<<"Nombre del archivo: "<<fileNameContourROI<<std::endl;
kernelManager->setCurrentFileName(fileNameContourROI);
- saveFileWithContours( fileNameContourROI );
+ saveFileWithContours( fileNameContourROI);
}
+//------------------------------------------------------------------------------------------------------------
}
//AD: 29-05-09
{
FILE *pFile=fopen(filename.c_str(),"w+");
+
+//CMRU 03-09-09-----------------------------------------------------------------------------------------------
+ filename.append("data");
+ std::cout<<"Nombre del archivo: "<<filename<<std::endl;
+ FILE *pFileData=fopen(filename.c_str(),"w+");
+//------------------------------------------------------------------------------------------------------------
+
std::vector< std::string > lstNameThings;
int i,sizeLstNameThings;
fprintf(pFile,"--CreaContour--\n");
fprintf(pFile,"Version %s\n", "1.0.2" );
+
+//CMRU 03-09-09-----------------------------------------------------------------------------------------------
+ fprintf(pFileData,"--CreaContour--\n");
+ fprintf(pFileData,"Version %s\n", "1.0.2" );
+ fprintf(pFileData,"OnePixelSize %f\n", _onePixelSize);
+ std::cout<<"Valor de un pixel: "<<_onePixelSize<<std::endl;
+
+//------------------------------------------------------------------------------------------------------------
vtkImageData *image = _images[0];
sizeLstNameThings = lstNameThings.size();
fprintf(pFile,"NumberOfContours %d\n", sizeLstNameThings );
+//CMRU 03-09-09-----------------------------------------------------------------------------------------------
+ fprintf(pFileData,"NumberOfContours %d\n", sizeLstNameThings );
+//------------------------------------------------------------------------------------------------------------
+
for (i=0 ; i<sizeLstNameThings ; i++)
{
- kernelManager->SaveThingName( pFile, lstNameThings[i] );
+//CMRU 03-09-09-----------------------------------------------------------------------------------------------
+ manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(lstNameThings[i]);
+ double sizeInPixel = manualModel ->GetPathSize();
+ double realContourSize = sizeInPixel*_onePixelSize;
+ manualModel ->SetRealSize(realContourSize);
+//------------------------------------------------------------------------------------------------------------
+
+ //int size= kernelManager->GetLstNameThings().size();
+
+ kernelManager->SaveThingName( pFile, pFileData, lstNameThings[i] );
_theViewPanel->getSceneManager()->SaveThingName( pFile, lstNameThings[i] );
}// for i
lstNameThings = kernelManager->GetLstNameThingsStatic();
sizeLstNameThings = lstNameThings.size();
fprintf(pFile,"NumberOfContoursStatic %d\n", sizeLstNameThings );
+
+//CMRU 03-09-09-----------------------------------------------------------------------------------------------
+ fprintf(pFileData,"NumberOfContoursStatic %d\n", sizeLstNameThings );
+//------------------------------------------------------------------------------------------------------------
+
for (i=0 ; i<sizeLstNameThings ; i++)
{
- kernelManager->SaveThingName( pFile, lstNameThings[i] );
+ kernelManager->SaveThingName( pFile, pFileData, lstNameThings[i] );
_theViewPanel->getSceneManager()->SaveThingName( pFile, lstNameThings[i] );
}// for i
fclose(pFile);
+ fclose(pFileData);
}
//AD:04-06-09
-void wxContourMainFrame::openContours( FILE *pFile, int version, bool staticContour )
+void wxContourMainFrame::openContours( FILE *pFile, FILE *pFileData, int version, bool staticContour )
{
char tmp[255];
std::vector<int> instantVector;
int typeContourModel;
- manualContourModel *manModelContour;
+ manualBaseModel *manModelContour;
int typeView;
if (compatible==true)
manModelContour = kernelManager->factoryManualContourModel(typeContourModel);
manModelContour->Open(pFile);
+ if(pFileData != NULL)
+ {
+ manModelContour->OpenData(pFileData);
+ }
fscanf(pFile,"%s",tmp); // TypeView
fscanf(pFile,"%s",tmp); // ##
manModelContour = kernelManager->factoryManualContourModel(typeContourModel);
manModelContour->Open(pFile);
-
+ if(pFileData != NULL)
+ {
+ manModelContour->OpenData(pFileData);
+ }
if (transform==true)
{
if (typeOfTransformation==0)
int j,sizeCtrPt = vecCtrlPointX.size();
- manualContourModel *manModelContour = kernelManager->factoryManualContourModel( typeofcontour );
+ manualBaseModel *manModelContour = kernelManager->factoryManualContourModel( typeofcontour );
manModelContour->SetNumberOfPointsSpline( ((sizeCtrPt/100)+1)*100 );
if (sizeCtrPt>=3){
for (j=0 ; j<sizeCtrPt ; j++)
actualInstantVector[1]=z;
int j,sizeCtrPt = vecCtrlPointX.size();
- manualContourModel *manModelContour = kernelManager->factoryManualContourModel( typeofcontour );
+ manualBaseModel *manModelContour = kernelManager->factoryManualContourModel( typeofcontour );
manModelContour->SetNumberOfPointsSpline( ((sizeCtrPt/100)+1)*100 );
if (sizeCtrPt>=3){
for (j=0 ; j<sizeCtrPt ; j++)
//_refName = "";
}
-void wxContourMainFrame::onThreshold()
-{
- int z = _theViewPanel->GetZ();
- double range[2];
-
- vtkImageData * img = getImageData();
- img->GetScalarRange(range);
-
- int minTot = floor (range[0]);
- int maxTot = ceil (range[1]);
-
- double minMax[2];
- _pannew->onThresholdInstantChange(minMax);
- int minVal = floor (minMax[0]);
- int maxVal = floor (minMax[1]);
-
- if (!_actorPresent)
- {
- if (_imageReslicer==NULL)
- {
- _imageReslicer = vtkImageReslice::New();
- _imageReslicer->SetInput( img );
- _imageReslicer->SetInformationInput(img);
- _imageReslicer->SetResliceAxesDirectionCosines(1,0,0, 0,1,0 ,0,0,1);
- _imageReslicer->SetOutputDimensionality(2);
- _imageReslicer->SetInterpolationModeToLinear();
- }
-
- _imageReslicer->SetResliceAxesOrigin(0,0,z);
-
- img = _imageReslicer->GetOutput();
- img->Update();
- img->UpdateInformation();
-
- wxVtkBaseView * baseView = _theViewPanel->getWxVtkBaseView();
-
- if (_thresholdTable==NULL)
- {
- //Lookup Table
- _thresholdTable = vtkLookupTable::New();
- _thresholdTable->SetNumberOfTableValues(maxTot+1);
- _thresholdTable->SetTableRange(range);
- _thresholdTable->SetAlphaRange(0, 1);
- _thresholdTable->SetValueRange(0, 1);
- _thresholdTable->SetSaturationRange(0, 0);
- _thresholdTable->SetRampToLinear( );
- }
-
- //Assign a fake color for the upper image, and set the white as transparent
- int i;
- for(i = minTot; i <= maxTot; i++)
- {
- if( i >= minVal && i <= maxVal )
- {
- _thresholdTable->SetTableValue(i, 1.0, 0.0, 0.0, 1);
- }
- else if( i >= minTot && i < minVal )
- {
- _thresholdTable->SetTableValue(i, 1.0, 1.0, 1.0, 0); //transparent
- }
- else if( i > maxVal && i < maxTot )
- {
- _thresholdTable->SetTableValue(i, 1.0, 1.0, 1.0, 0); //transparent
- }
- else
- {
- _thresholdTable->SetTableValue(i, 1.0, 1.0, 1.0, 0); //transparent
- }
- }
- _thresholdTable->Build( );
-
- if (_thresholdMapper==NULL)
- {
- _thresholdMapper = vtkImageMapToColors::New( );
- }
-
- _thresholdMapper->SetLookupTable( _thresholdTable );
- _thresholdMapper->SetInput( img );
-
- if (_thresholdActor==NULL)
- {
- _thresholdActor = vtkImageActor::New( );
- _thresholdActor->SetOpacity( 0.6 );
- _thresholdActor->InterpolateOn( );
- _thresholdActor->SetPosition( 0,0, 900-1 );
- }
-
- _thresholdActor->SetInput( _thresholdMapper->GetOutput() );
-
- baseView->GetRenderer()->AddActor( _thresholdActor );
- _actorPresent = true;
- }
-
- else
- {
- _imageReslicer->SetResliceAxesOrigin(0,0,z);
- img = _imageReslicer->GetOutput();
- img->Update();
- img->UpdateInformation();
-
- //Assign a fake color for the upper image, and set the white as transparent
- int i;
- for(i = minTot; i <= maxTot; i++)
- {
- if( i >= minVal && i <= maxVal )
- {
- _thresholdTable->SetTableValue(i, 1.0, 0.0, 0.0, 1);
- }
- else if( i >= minTot && i < minVal )
- {
- _thresholdTable->SetTableValue(i, 1.0, 1.0, 1.0, 0); //transparent
- }
- else if( i > maxVal && i < maxTot )
- {
- _thresholdTable->SetTableValue(i, 1.0, 1.0, 1.0, 0); //transparent
- }
- else
- {
- _thresholdTable->SetTableValue(i, 1.0, 1.0, 1.0, 0); //transparent
- }
- }
-
- _thresholdTable->Build( );
- _thresholdMapper->SetLookupTable( _thresholdTable );
- _thresholdMapper->SetInput( img );
- _thresholdActor->SetInput( _thresholdMapper->GetOutput() );
- }
- /*
- vtkImageViewer2* viewer = vtkImageViewer2::New();
- viewer->SetInput( upperImageActor->GetInput() );
- viewer->SetColorLevel((range[1]-range[0])/2);
- viewer->SetColorWindow(range[1]);
- viewer->GetRenderer()->AddActor( upperImageActor );
- viewer->Render();
- */
- _theViewPanel->RefreshInterface();
-}
-
-
-void wxContourMainFrame::onThresholdChange()
-{
- if (_actorPresent)
- {
- onThreshold();
- }
-}
-
-void wxContourMainFrame::onThresholdInterpolation(bool interpolate)
-{
- if (_thresholdActor!=NULL)
- {
- if (interpolate)
- {
- _thresholdActor->InterpolateOn( );
- }
-
- else
- {
- _thresholdActor->InterpolateOff( );
- }
-
- _theViewPanel->RefreshInterface();
- }
-}
-
-void wxContourMainFrame::onThresholdChangeOpacity (int opacity)
-{
- if (_actorPresent)
- {
- _thresholdActor->SetOpacity(opacity*0.1);
- }
-
- _theViewPanel->RefreshInterface();
-}
-
-void wxContourMainFrame::onThresholdRemove()
-{
- if (_actorPresent)
- {
- wxVtkBaseView * baseView = _theViewPanel->getWxVtkBaseView();
- baseView->GetRenderer()->RemoveActor( _thresholdActor );
- _actorPresent = false;
- }
-
- _theViewPanel->RefreshInterface();
-}
void wxContourMainFrame::showAxis(bool show)
{
int typeofcontour = 1;
std::string theName;
- manualContourModel* manModelContour = kernelManager->GetPoints(z, type, &vecCtrlPointX,&vecCtrlPointY,&vecCtrlPointZ, theName,typeofcontour, tempVector);
+ manualBaseModel* manModelContour = kernelManager->GetPoints(z, type, &vecCtrlPointX,&vecCtrlPointY,&vecCtrlPointZ, theName,typeofcontour, tempVector);
if( manModelContour!=NULL ){
double spc[3];//Si no hay imagen pero hay contornos que spacing se pone por default
}
-void wxContourMainFrame::GenerateContourExtractData()
-{
- if (_contourextractdata==NULL) { _contourextractdata = new ContourExtractData(true); }
-}
-
void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ,int grayRangeMin, int grayRangeMax)
{
- GenerateContourExtractData();
+//EED01Juillet2009 GenerateContourExtractData();
wxString tempString;
int maxContourGroup = 0;
_contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
- std::vector<manualContourModel*> lstManConMod;
- std::vector<manualContourModel*> lstManConModTmp;
- std::vector<manualContourModel*> lstManConModExp;
+ std::vector<manualBaseModel*> lstManConMod;
+ std::vector<manualBaseModel*> lstManConModTmp;
+ std::vector<manualBaseModel*> lstManConModExp;
std::vector<double> pLstValue;
std::vector<double> pLstValuePosX;
std::vector<double> pLstValuePosY;
std::vector<int> tempVector;
_instantPanel->getInstant( tempVector );
- vtkImageData *imagedata = _theViewPanel->getImageData();
+//EED01Juillet2009 vtkImageData *imagedata = _theViewPanel->getImageData();
// int sizeZ = _theViewPanel->GetImageDataSizeZ();
int z;
int ii,sizeLstContourThings;
double porcent;
wxString tmpString;
-//?????
if (selection==0 ) // actual slice
{
totalZ = maxZ-minZ+1;
- _contourextractdata->SetImage( imagedata);
+//EED01Juillet2009 _contourextractdata->SetImage( imagedata);
_contourextractdata->InitVolumeStatistics();
ContourThing **contourthing = lstContourThings[ii];
lstManConMod.push_back( (*contourthing)->getModel() );
}
- lstManConModExp = kernelManager->ExploseEachModel( lstManConMod );
+ lstManConModExp = kernelManager->ExploseEachModel( lstManConMod );
tempString.Printf(_T("%d - %d"),z, sizeLstContourThings);
interfMainPanel::getInstance()->setRowLabelInfoPanel(z, tempString);
int tmpIntA;
-
-
for( iContourGroup=0 ; iContourGroup<sizeContourGroup ; iContourGroup++ ){
lstManConModTmp.clear();
+
+
+
if (typeContourGroup==3) // contour separete
{
lstManConModTmp.push_back( lstManConModExp[iContourGroup]);
&pLstValuePosX,
&pLstValuePosY,
&pLstValuePosZ);
+
// Statistics of each slice.
_contourextractdata->Statistics( &pLstValue,
grayRangeMin,
fprintf(pFile,"\n\n" );
-// ??????
if (selection==0 ) // actual slice
{
void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefile,int typeContourGroup)
{
wxBusyCursor wait;
- GenerateContourExtractData();
+//EED01Juillet2009 GenerateContourExtractData();
//int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
_contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
- std::vector<manualContourModel*> lstManConMod;
- std::vector<manualContourModel*> lstManConModTmp;
- std::vector<manualContourModel*> lstManConModExp;
+ std::vector<manualBaseModel*> lstManConMod;
+ std::vector<manualBaseModel*> lstManConModTmp;
+ std::vector<manualBaseModel*> lstManConModExp;
std::vector<double> pLstValue;
std::vector<double> pLstValuePosX;
std::vector<double> pLstValuePosY;
std::vector<int> tempVector;
_instantPanel->getInstant( tempVector );
- vtkImageData *imagedata = _theViewPanel->getSceneManager()->GetImageData();
+//EED01Juillet2009 vtkImageData *imagedata = _theViewPanel->getSceneManager()->GetImageData();
int sizeZ = _theViewPanel->getSceneManager()->GetImageDataSizeZ();
int z;
int ii,sizeLstContourThings;
maxZ = sizeZ;//_mbarrange->GetEnd();
totalZ = maxZ-minZ+1;
- _contourextractdata->SetImage( imagedata);
+//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;
- GenerateContourExtractData();
+//EED01Juillet2009 GenerateContourExtractData();
//int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
if (typeContourGroup==3)
}
_contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
- std::vector<manualContourModel*> lstManConMod;
- std::vector<manualContourModel*> lstManConModTmp;
- std::vector<manualContourModel*> lstManConModExp;
+ std::vector<manualBaseModel*> lstManConMod;
+ std::vector<manualBaseModel*> lstManConModTmp;
+ std::vector<manualBaseModel*> lstManConModExp;
std::vector<int> tempVector;
_instantPanel->getInstant( tempVector );
- vtkImageData *imagedata = _theViewPanel->getImageData();
+ vtkImageData *imagedata = _theViewPanel->getImageData();
+ int ext[6];
+ imagedata->GetExtent(ext);
+ int sizeZimage = ext[5]-ext[4]+1;
int z;
int ii,sizeLstContourThings;
totalZ = maxZ-minZ;
- _contourextractdata->SetImage( imagedata);
+//EED01Juillet2009 _contourextractdata->SetImage( imagedata);
+ // cleanning image before range
+ for (z=0; z<minZ; z++){
+ _contourextractdata->ResetImageResult(z);
+ }
+ // cleanning image after range
+ for (z=maxZ+1; z<sizeZimage; z++){
+ _contourextractdata->ResetImageResult(z);
+ }
+
+
// For each slice..
for ( z=minZ ; z<=maxZ ; z++)
{
_pannew->Show(show);
}
+
+
+void wxContourMainFrame::SetContourGroup(int contourGroup)
+{
+ _contourGroup = contourGroup;
+}
+
+
+wxPanel *wxContourMainFrame::getMaskImageViewPanel(wxWindow *parent)
+{
+
+ if (_viewMaskImagePanel==NULL)
+ {
+ _contourextractdata = new ContourExtractData(true);
+ _contourextractdata->SetImage( _theViewPanel->getImageData() );
+
+// double range[2];
+// _theViewPanel->getImageData()->GetScalarRange(range);
+ //int min = (int)floor (range[0]);
+ //int max = (int)ceil (range[1]);
+ int min = 254;
+ int max = 256;
+
+ _viewMaskImagePanel = new ThresholdImageViewPanel( parent, -1, -1 , 0);
+ _viewMaskImage = new ThresholdImageView();
+ _viewMaskImage->SetImage(_contourextractdata->GetVtkImageMaskResult() );
+ _viewMaskImage->SetminMaxValue( min, max);
+ _viewMaskImage->SetBaseColor( 0,0,1 );
+ _viewMaskImagePanel->SetThresholdImageView( _viewMaskImage );
+ _viewMaskImage->SetwxVtkBaseView( _theViewPanel->getWxVtkBaseView() );
+
+ }
+ return _viewMaskImagePanel;
+}
+
+wxPanel *wxContourMainFrame::getThresholdImageViewPanel(wxWindow *parent)
+{
+ if (_viewThresholdImagePanel==NULL)
+ {
+ double range[2];
+ _theViewPanel->getImageData()->GetScalarRange(range);
+ int min = (int)floor (range[0]);
+ int max = (int)ceil (range[1]);
+ _viewThresholdImagePanel = new ThresholdImageViewPanel( parent, min, max , 1);
+ _viewThresholdImage = new ThresholdImageView();
+ _viewThresholdImage->SetImage( _theViewPanel->getImageData() );
+ _viewThresholdImage->SetminMaxValue( min, max);
+ _viewThresholdImage->SetBaseColor( 1,0,0 );
+ _viewThresholdImagePanel->SetThresholdImageView( _viewThresholdImage );
+ _viewThresholdImage->SetwxVtkBaseView( _theViewPanel->getWxVtkBaseView() );
+ }
+ return _viewThresholdImagePanel;
+}
+
+//CMRU 17-08-09-----------------------------------------------------------------------------------------------
+int wxContourMainFrame::getType ()
+{
+ int tipo = 0;
+ std::vector<std::string> currentSelection = _theViewPanel->getSelectedObjects();
+
+ if(!currentSelection.empty())
+ {
+ std::string cloneName = currentSelection [0];
+ manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(cloneName);
+ tipo = manualModel-> GetTypeModel();
+ return tipo;
+ }
+}
+double wxContourMainFrame::getContourSizeInPixels()
+{
+ double contourSize = 0;
+
+ std::vector<std::string> currentSelection = _theViewPanel->getSelectedObjects(); if(!currentSelection.empty())
+ if(!currentSelection.empty())
+ {
+ std::string cloneName = currentSelection [0];
+
+ manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(cloneName);//_modelManager->getOutlineByKeyName( cloneName )->getModel();
+ contourSize = manualModel-> GetPathSize();
+ }
+ return contourSize;
+}
+manualBaseModel * wxContourMainFrame::getContour ()
+{
+ std::vector<std::string> currentSelection = _theViewPanel->getSelectedObjects();
+
+ if(!currentSelection.empty())
+ {
+ std::string cloneName = currentSelection [0];
+ manualBaseModel * manualModel = kernelManager->getOutlineByKeyName(cloneName);//_modelManager->getOutlineByKeyName( cloneName )->getModel();
+ return manualModel;
+ }
+ return NULL;
+}
+void wxContourMainFrame::onPrintLabel (wxString label, manualBaseModel* manualModel)
+{
+ std::string labelAscii(label.ToAscii());
+ int pos = labelAscii.find(" ");
+
+ int j;
+
+ for (j=0 ; pos != string::npos;j++)
+ {
+ labelAscii.replace( pos, 1, "_" );
+ pos= labelAscii.find(" ");
+ }
+
+ manualModel -> SetLabel(labelAscii);
+}
+void wxContourMainFrame::onInsertCalculation(manualBaseModel* manualModel)
+{
+ double sizeInPixel = manualModel ->GetPathSize();
+ double onePixelRealSize = interfMainPanel::getInstance()->GetPixelValue();;
+ double realContourSize = sizeInPixel*onePixelRealSize;
+ manualModel ->SetRealSize(realContourSize);
+}
+
+double wxContourMainFrame::onePixelSize( double value)
+{
+ return _onePixelSize = value;
+}
+
+std::string wxContourMainFrame::GetFileLocation()
+{
+ return _fileLocation;
+}
+
+void wxContourMainFrame::SetFileLocation(std::string newFileLocation)
+{
+ _fileLocation = newFileLocation;
+ std::cout<<"GETFILELOCATION:"<<_fileLocation<<std::endl;
+}
+//------------------------------------------------------------------------------------------------------------
\ No newline at end of file