+ //------------------------------------------------------------------------
+ void WidgetShowNPoints::OnSavePoints(wxCommandEvent& event)
+ {
+ FILE *ff;
+ wxString filename="/Users/davila/Desktop/PDL_2/bbs/test.xls";
+ ff = fopen( (const char*) ( filename.mb_str() ) , "w+" );
+ if (ff!=NULL)
+ {
+ int i , size = (int) (lstActorsSphere.size());
+ fprintf(ff,"NumberOfPoints %d \n",size);
+ fprintf(ff," X\tY\tZ\tvalue\tLabel\n");
+ int x, y, z;
+ double value;
+ for (i=0; i<size; i++)
+ {
+ x=lstPointsX[i];
+ y=lstPointsY[i];
+ z=lstPointsZ[i];
+ value= mimage->GetScalarComponentAsDouble(x,y,z,0);
+ fprintf(ff,"%d\t %d\t %d\t %f\t %s\n", x , y , z , value , lstLabels[i].c_str());
+ } // for
+ fclose(ff);
+ } else { // else ff
+ printf("WidgetShowNPoints::OnSavePoints ...Error... creating file");
+ } //ff
+
+ }
+
+ //------------------------------------------------------------------------
+ void WidgetShowNPoints::OnLoadPoints(wxCommandEvent& event)
+ {
+ }
+
+ int WidgetShowNPoints::GetNearestPoint()
+ {
+ int id=-1;
+ int i, size=(int)(lstActorsSphere.size());
+ double spc[3];
+ mimage->GetSpacing(spc);
+
+ for ( i=0 ; i<size; i++ )
+ {
+ double rx = spc[0]*(mpoint[0] - lstPointsX [i]);
+ double ry = spc[1]*(mpoint[1] - lstPointsY [i]);
+ double rz = spc[2]*(mpoint[2] - lstPointsZ [i]);
+ if ( rx*rx + ry*ry + rz*rz <= mradio*mradio)
+ {
+ id=i;
+ } // if
+ } // for
+
+ return id;
+ }
+
+ //------------------------------------------------------------------------
+ void WidgetShowNPoints::OnRenamePoint(wxCommandEvent& event)
+ {
+ int id=GetNearestPoint();
+ if (id>=0)
+ {
+ std::string strLabel = CleanSpaces( (const char*) ( textCtrl->GetValue().mb_str() ) );
+ lstLabels[id] = CleanSpaces( (const char*) (textCtrl->GetValue().mb_str()) ) ;
+ lstActorsText[id]->SetInput( lstLabels[id].c_str() );
+ SetOutputBox();
+ }
+ }
+