_theViewPanel->getSceneManager()->createCopyContourOf( anExistingKName, cloneName, manualModel , append );
}
+//EED04
void wxContourMainFrame ::loadState(std::string filename){
+
+ deleteAllContours();
+ onLoadContours(filename,false);
+
+ /* EED Borrame
char tmp[255];
FILE *pFile=fopen(filename.c_str(),"r+");
fscanf(pFile,"%s",tmp); // --CreaContour--
fscanf(pFile,"%s",tmp); // Version
- fscanf(pFile,"%s",tmp); // 1.0.2 || 1.0.1 || 1.0.0
+ fscanf(pFile,"%s",tmp); // 1.0.3 || 1.0.2 || 1.0.1 || 1.0.0
deleteAllContours();
loadContours(pFile, true);
fclose(pFile);
+ */
}
-void wxContourMainFrame ::loadContours( FILE *pFile, bool staticContour )
+
+//EED03
+/*EED Borrame
+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
+ 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
+ fscanf(pFile,"%s",tmp); // ImageSpacing
+ fscanf(pFile,"%s",tmp); // X
+ fscanf(pFile,"%s",tmp); // Y
+ fscanf(pFile,"%s",tmp); // Z
+ }
fscanf(pFile,"%s",tmp); // NumberOfContours
fscanf(pFile,"%s",tmp); // ##
}
}// for numberOfContours
}
+*/
+
void wxContourMainFrame::onLoad()
{
}
}
- onLoadContours(fileNameContourROI);
+ onLoadContours(fileNameContourROI,true);
}
-
-void wxContourMainFrame::onLoadContours(std::string fileNameContourROI)
+void wxContourMainFrame::onLoadContours(std::string fileNameContourROI, bool interactiveInterface)
{
-printf("EED2 wxContourMainFrame::onLoadContours 01 \n");
char tmp[255];
char tmpD[255];
{
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); // 1.0.3 || 1.0.2 || 1.0.1 || 1.0.0
fscanf(pFileData,"%s",tmpD); // onePixelSize
fscanf(pFileData,"%s",tmpD); // #
fscanf(pFile,"%s",tmp); // --CreaContour--
fscanf(pFile,"%s",tmp); // Version
- fscanf(pFile,"%s",tmp); // 1.0.2 || 1.0.1 || 1.0.0
+ fscanf(pFile,"%s",tmp); // 1.0.3 || 1.0.2 || 1.0.1 || 1.0.0
std::string version(tmp);
//AD:02-06-09
_tmpReadFileTypeOfTransformation=-1;
- if (version=="1.0.2")
+ if (version=="1.0.3")
{
- readDimSpc(pFile);
+ 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
+ openContours(pFile,pFileData,false);
+ readDimSpc(pFile,false); // DimSpc interactive OFF
+ openContours(pFile,pFileData,true); //Load StaticContours
+ }
+
//AD:02-06-09
else if (version=="1.0.1")
{
filenamecontours = kernelManager->parseOsirixFile(filename);
if(filenamecontours.compare("") != 0){
- onLoadContours(filenamecontours);
+ onLoadContours(filenamecontours,true);
}
}
int i,sizeLstNameThings;
fprintf(pFile,"--CreaContour--\n");
- fprintf(pFile,"Version %s\n", "1.0.2" );
+ fprintf(pFile,"Version %s\n", "1.0.3" );
//CMRU 03-09-09-----------------------------------------------------------------------------------------------
fprintf(pFileData,"--CreaContour--\n");
- fprintf(pFileData,"Version %s\n", "1.0.2" );
+ fprintf(pFileData,"Version %s\n", "1.0.3" );
fprintf(pFileData,"OnePixelSize %f\n", _onePixelSize);
//------------------------------------------------------------------------------------------------------------
//-- 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] );
+// 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();
}
-
-void wxContourMainFrame::readDimSpc(FILE *pFile)
+//EED02
+void wxContourMainFrame::readDimSpc(FILE *pFile, bool interactiveOption)
{
char tmp[255];
int imageDim[3];
_tmpReadFileImageSpac[2] = atof(tmp);
- //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])
+ if (interactiveOption==true)
{
- 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 _tmpReadFileTypeOfTransformation = -1;
- bool transform = false;
-
- if (dial->GetReturnCode() == wxID_OK)
+ //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])
{
- _tmpReadFileTypeOfTransformation = radioOpts->GetSelection();
- }// if wxOK
-
- } // if dim spc
+ 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 _tmpReadFileTypeOfTransformation = -1;
+//EED bool transform = false;
+
+ if (dial->GetReturnCode() == wxID_OK)
+ {
+ _tmpReadFileTypeOfTransformation = radioOpts->GetSelection();
+ }// if wxOK
+ } // if dim spc
+ } // if interactiveOption
}
+
//AD:04-06-09
void wxContourMainFrame::openContours( FILE *pFile, FILE *pFileData, bool staticContour )
{
-printf("EED1 wxContourMainFrame::openContours 01 \n");
char tmp[255];
- vtkImageData *image = _images[0];
+ vtkImageData *image = _images[0];
int imageDim[3];
double imageSpac[3];
else if (compatible==false)
{
*/
-printf("EED wxContourMainFrame::openContours 02 \n");
int i;
for (i=0;i<numberOfContours;i++)
_instantPanel->setConceptValue( name, actual );
}
+
void wxContourMainFrame::resetAppend(){
kernelManager->resetAppend();
}
+
void wxContourMainFrame::onSpreadAdd(){
std::vector<double> vecX;
std::vector<double> vecY;
std::vector<double> vecZ;
_theViewPanel->GetPointsOfActualContour(&vecX , &vecY , &vecZ );
-
std::vector<int> tempVector;
_instantPanel->getInstant( tempVector );
-
std::string val = kernelManager->onSpreadAdd(&vecX , &vecY , &vecZ, tempVector);
-
interfMainPanel::getInstance()->appendStringSpread(val);
+}
+
+void wxContourMainFrame::onSpreadAddAll(){
+//EED02
+ std::vector<int> tempVector;
+ _instantPanel->getInstant( tempVector );
+ int minZ,maxZ;
+ minZ = 0;
+ maxZ = interfMainPanel::getInstance()->GetImageDataSizeZ();
+ int z;
+ int sizeLstContourThings;
+ for ( z=minZ ; z<=maxZ ; z++ )
+ {
+ tempVector[1]=z;
+ Instant instant(&tempVector);
+ std::vector<ContourThing**> lstContourThings = kernelManager->getOutlinesAtInstant( &instant );
+ sizeLstContourThings = lstContourThings.size();
+ if (sizeLstContourThings>=1)
+ {
+ std::vector<double> vecX;
+ std::vector<double> vecY;
+ std::vector<double> vecZ;
+ ContourThing **contourthing = lstContourThings[0];
+ manualBaseModel *cModel = (*contourthing)->getModel();
+ int i,size = cModel->GetNumberOfPointsSpline();
+ double x,y,z;
+ for (i=0; i<size; i++)
+ {
+ cModel->GetSpline_i_Point(i, &x, &y, &z);
+ vecX.push_back(x);
+ vecY.push_back(y);
+ vecZ.push_back(z);
+ } // for i
+ std::string val = kernelManager->onSpreadAdd(&vecX , &vecY , &vecZ, tempVector);
+ interfMainPanel::getInstance()->appendStringSpread(val);
+ }// if sizeLstContourThings
+ } // for z
}
-void wxContourMainFrame::onSpreadGo(int type){
+void wxContourMainFrame::onSpreadGo(int type){
//JCP 20-10-08 Undo redo implementation
saveState();
//JCP 20-10-08 Undo redo implementation
-
wxBusyCursor wait;
std::vector<double> vecCtrlPointX;
std::vector<double> vecCtrlPointY;