]> Creatis software - creaMaracasVisu.git/blobdiff - bbtk/src/bbcreaMaracasVisuTransformWidget2.cxx
#3558 ShowNPoints_Tools::LoadCollection
[creaMaracasVisu.git] / bbtk / src / bbcreaMaracasVisuTransformWidget2.cxx
index 2bb4f19f95aac03c2fbe00c7ee3c06316fd4ebf8..f35942cd1b635d59484e907cfba91c3a827ba274 100644 (file)
@@ -39,7 +39,9 @@ public:
     void OnRadioButtonZ(wxEvent& event);
     void OnRadioButtonN(wxEvent& event);
     void OnSave(wxCommandEvent& event);
+    void Save(std::string filename);
     void OnLoad(wxCommandEvent& event);
+    void Load(std::string filename);
     void OnReset(wxCommandEvent& event);
     void OnMoveDown(wxCommandEvent& event);
     void OnMoveUp(wxCommandEvent& event);
@@ -405,6 +407,26 @@ void TransformWidgetPanel::OnMemory(wxCommandEvent& event)
     mMemoryMatrix->DeepCopy( t->GetMatrix() );
 }
 
+void TransformWidgetPanel::Save(std::string filename)
+{
+    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
+}
+
 void TransformWidgetPanel::OnSave(wxCommandEvent& event)
 {
     wxFileDialog* FD = new wxFileDialog( 0,
@@ -421,29 +443,63 @@ void TransformWidgetPanel::OnSave(wxCommandEvent& event)
     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
+        Save( filename );
     }     // dialog box
 }
 
+void TransformWidgetPanel::Load(std::string filename)
+{
+    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
+}
+
 void TransformWidgetPanel::OnLoad(wxCommandEvent& event)
 {
     wxFileDialog* FD = new wxFileDialog( 0,
-                                         _T("Load groups of points .."),
+                                         _T("Load configuration.."),
                                          _T(""),
                                          _T(""),
                                          _T("(*.fpConf)|*.fpConf"),
@@ -456,53 +512,8 @@ void TransformWidgetPanel::OnLoad(wxCommandEvent& event)
     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
+        Load( filename );
     }     // dialog box
-
 }
 
 
@@ -555,6 +566,22 @@ BBTK_BLACK_BOX_IMPLEMENTATION(TransformWidget2,bbtk::WxBlackBox);
 //===== 
 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
 //===== 
+
+//------------------------------------------------------
+void TransformWidget2::Save(std::string filename)
+{
+    TransformWidgetPanel *w = (TransformWidgetPanel*) bbGetOutputWidget( );
+    w->Save(filename);
+}
+
+//------------------------------------------------------
+void TransformWidget2::Load(std::string filename)
+{
+    TransformWidgetPanel *w = (TransformWidgetPanel*) bbGetOutputWidget( );
+    w->Load(filename);
+}
+
+//------------------------------------------------------
 void TransformWidget2::Process()
 {
     TransformWidgetPanel *w = (TransformWidgetPanel*) bbGetOutputWidget( );
@@ -563,6 +590,7 @@ void TransformWidget2::Process()
     {
         firsttime=false;
         w->_OnSetPoint();
+        bbSetOutputBox_TransformWidget2(this);
     }// if
 }
 
@@ -582,6 +610,7 @@ void TransformWidget2::bbUserSetDefaultValues()
 {
     firsttime=true;
     bbSetInputType(1);
+    bbSetOutputBox_TransformWidget2(NULL);
 }
 
 //=====