+void TransformWidgetPanel::OnSave(wxCommandEvent& event)
+{
+ wxFileDialog* FD = new wxFileDialog( 0,
+ _T("Save free plane configuratin"),
+ _T(""),
+ _T(""),
+ _T("(*.fpConf)|*.fpConf"),
+ wxFD_SAVE | wxFD_OVERWRITE_PROMPT,
+ wxDefaultPosition);
+
+ int result_FD = FD->ShowModal();
+ // This line is need it by windows //EED
+ FD->SetReturnCode( result_FD );
+ if (FD->GetReturnCode()==wxID_OK)
+ {
+ std::string filename= (const char*) ( FD->GetPath().mb_str() );
+ FILE *ff;
+ ff = fopen( filename.c_str() , "w+" );
+ if (ff!=NULL)
+ {
+ fprintf(ff,"ActualPoint:\n");
+ fprintf(ff,"%f %f %f\n",mActualPoint[0], mActualPoint[1], mActualPoint[2] );
+ vtkMatrix4x4 *m = t->GetMatrix();
+ fprintf(ff,"Transform:\n");
+ fprintf(ff,"%f %f %f %f \n",m->GetElement(0,0), m->GetElement(1,0), m->GetElement(2,0), m->GetElement(3,0) );
+ fprintf(ff,"%f %f %f %f \n",m->GetElement(0,1), m->GetElement(1,1), m->GetElement(2,1), m->GetElement(3,1) );
+ fprintf(ff,"%f %f %f %f \n",m->GetElement(0,2), m->GetElement(1,2), m->GetElement(2,2), m->GetElement(3,2) );
+ fprintf(ff,"%f %f %f %f\n\n",m->GetElement(0,3), m->GetElement(1,3), m->GetElement(2,3), m->GetElement(3,3) );
+ fclose(ff);
+ } else { // else ff
+ printf("TransformWidgetPanel::OnSave ...Error... creating file \n");
+ } //ff
+ } // dialog box
+}
+
+void TransformWidgetPanel::OnLoad(wxCommandEvent& event)
+{
+ wxFileDialog* FD = new wxFileDialog( 0,
+ _T("Load groups of points .."),
+ _T(""),
+ _T(""),
+ _T("(*.fpConf)|*.fpConf"),
+ wxFD_OPEN | wxFD_FILE_MUST_EXIST,
+ wxDefaultPosition);
+
+ int result_FD = FD->ShowModal();
+ // This line is need it by windows //EED
+ FD->SetReturnCode( result_FD );
+ if (FD->GetReturnCode()==wxID_OK)
+ {
+ std::string filename= (const char*) ( FD->GetPath().mb_str() );
+ FILE *ff;
+ ff = fopen( filename.c_str() , "r" );
+ if (ff!=NULL)
+ {
+ char tmpStr[128];
+ float t0,t1,t2,t3;
+ fscanf(ff,"%s\n",tmpStr); // ActualPoint:
+ fscanf(ff,"%f %f %f\n",&t0,&t1,&t2);
+ mActualPoint[0]=t0;
+ mActualPoint[1]=t1;
+ mActualPoint[2]=t2;
+
+ vtkMatrix4x4 *m = t->GetMatrix();
+ fscanf(ff,"%s\n",tmpStr); // Transform:
+ fscanf(ff,"%f %f %f %f\n",&t0,&t1,&t2,&t3);
+ m->SetElement(0,0,t0);
+ m->SetElement(1,0,t1);
+ m->SetElement(2,0,t2);
+ m->SetElement(3,0,t3);
+ fscanf(ff,"%f %f %f %f\n",&t0,&t1,&t2,&t3);
+ m->SetElement(0,1,t0);
+ m->SetElement(1,1,t1);
+ m->SetElement(2,1,t2);
+ m->SetElement(3,1,t3);
+ fscanf(ff,"%f %f %f %f\n",&t0,&t1,&t2,&t3);
+ m->SetElement(0,2,t0);
+ m->SetElement(1,2,t1);
+ m->SetElement(2,2,t2);
+ m->SetElement(3,2,t3);
+ fscanf(ff,"%f %f %f %f\n",&t0,&t1,&t2,&t3);
+ m->SetElement(0,3,t0);
+ m->SetElement(1,3,t1);
+ m->SetElement(2,3,t2);
+ m->SetElement(3,3,t3);
+ t->Update();
+
+ mBox->bbSetOutputActualPoint( mActualPoint );
+ mBox->bbSignalOutputModification(std::string("ActualPoint"));
+ mBox->bbSetOutputOut( t );
+ mBox->bbSignalOutputModification(std::string("Out"));
+
+ fclose(ff);
+ } else { // else ff
+ printf("TransformWidgetPanel::OnLoad ...Error... reading file \n");
+ } //ff
+ } // dialog box
+
+}
+
+