]> Creatis software - creaMaracasVisu.git/commitdiff
.
authorEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Wed, 27 May 2009 16:53:12 +0000 (16:53 +0000)
committerEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Wed, 27 May 2009 16:53:12 +0000 (16:53 +0000)
bbtk/src/bbmaracasvisuShowNPoints.cxx
bbtk/src/bbmaracasvisuShowNPoints.h

index 573627f50a936f9ce2fdb3a49925162390746356..ca5a850d93111118d8ac661efabff5074466d41f 100644 (file)
@@ -11,11 +11,11 @@ namespace bbcreaMaracasVisu
 
 
 //----------------------------------------------------------------------
-       WidgetShowNPoints::WidgetShowNPoints(wxWindow *parent, vtkRenderer *renderer, ShowNPoints *box)
+       WidgetShowNPoints::WidgetShowNPoints(wxWindow *parent,  bbcreaMaracasVisu::ShowNPoints *box)
     : wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL)
   {
     mbbShowNPoints                             = box;
-    this->renderer                             = renderer;
+    this->renderer                             = NULL;
        wxPanel *panel                          = this;
     wxSizer *sizer                             = NULL;
        
@@ -100,77 +100,91 @@ void WidgetShowNPoints::SetImage(vtkImageData *image)
        this->mimage=image;
 }
 
-
-
 //------------------------------------------------------------------------
-void WidgetShowNPoints::OnAddPoint (wxCommandEvent& event)
+void  WidgetShowNPoints::SetRenderer(vtkRenderer *renderer)
 {
-//     printf("EED %p WidgetShowNPoints::OnAddPoint %d,%d,%d \n", this,mpoint[0],mpoint[1],mpoint[2] );
-
-       if (mpoint.size()==3){
-               lstPointsX.push_back( mpoint[0] );
-               lstPointsY.push_back( mpoint[1] );
-               lstPointsZ.push_back( mpoint[2] );
-
-               // Sphere
-               vtkSphereSource *vtksphere              = vtkSphereSource::New();
-               vtksphere->SetThetaResolution (20);
-               vtksphere->SetPhiResolution (20);
-               vtksphere->SetRadius( mradio  ); 
-               vtkPolyDataMapper *sphereMapper = vtkPolyDataMapper::New();
-               sphereMapper->SetInput( vtksphere->GetOutput() );
-               vtkActor *sphereActor   = vtkActor::New();
-               sphereActor->SetMapper(sphereMapper);
-               sphereActor->SetOrigin(0, 0, 0);
-               double spc[3];
-               mimage->GetSpacing(spc);
-               sphereActor->SetPosition( spc[0]*mpoint[0] , spc[1]*mpoint[1] , spc[2]*mpoint[2] );
-               sphereActor->GetProperty()->SetColor( mcolour[0] , mcolour[1] , mcolour[2] );
-               sphereActor->GetProperty()->SetOpacity( mopacity );
-
-               lstActors.push_back(sphereActor);
-               renderer->AddActor( sphereActor );
+       this->renderer  = renderer;
+}
 
-               renderer->GetRenderWindow()->Render();
 
-               //--BBTK
-               mbbShowNPoints->bbSignalOutputModification(std::string("Point"));    
 
-       }
+//------------------------------------------------------------------------
+void WidgetShowNPoints::OnAddPoint (wxCommandEvent& event)
+{
+printf("EED %p WidgetShowNPoints::OnAddPoint 01\n", this);
+       if (this->renderer!=NULL){ 
+printf("EED %p WidgetShowNPoints::OnAddPoint 02\n", this);
+               if (mpoint.size()==3){
+printf("EED %p WidgetShowNPoints::OnAddPoint 03\n", this);
+                       lstPointsX.push_back( mpoint[0] );
+                       lstPointsY.push_back( mpoint[1] );
+                       lstPointsZ.push_back( mpoint[2] );
+
+                       // Sphere
+                       vtkSphereSource *vtksphere              = vtkSphereSource::New();
+                       vtksphere->SetThetaResolution (20);
+                       vtksphere->SetPhiResolution (20);
+                       vtksphere->SetRadius( mradio  ); 
+                       vtkPolyDataMapper *sphereMapper = vtkPolyDataMapper::New();
+                       sphereMapper->SetInput( vtksphere->GetOutput() );
+                       vtkActor *sphereActor   = vtkActor::New();
+                       sphereActor->SetMapper(sphereMapper);
+                       sphereActor->SetOrigin(0, 0, 0);
+                       double spc[3];
+                       mimage->GetSpacing(spc);
+                       sphereActor->SetPosition( spc[0]*mpoint[0] , spc[1]*mpoint[1] , spc[2]*mpoint[2] );
+                       sphereActor->GetProperty()->SetColor( mcolour[0] , mcolour[1] , mcolour[2] );
+                       sphereActor->GetProperty()->SetOpacity( mopacity );
+
+                       lstActors.push_back(sphereActor);
+                       renderer->AddActor( sphereActor );
+
+                       renderer->GetRenderWindow()->Render();
+
+                       //--BBTK
+//EED???                       mbbShowNPoints->bbSignalOutputModification(std::string("Point"));    
+
+               } else {//mpoint.size
+                       printf("creaMaracasVisu::ShowNPoints (not match point)");
+               }
+       } // renderer
 }
 
 //------------------------------------------------------------------------
 void WidgetShowNPoints::OnErasePoint(wxCommandEvent& event)
 {
        int id = lstActors.size()-1;
-       if (id>=0){
-               renderer->RemoveActor( lstActors[id] );
-               lstActors.erase( lstActors.begin()+id );
-               lstPointsX.erase( lstPointsX.begin()+id );
-               lstPointsY.erase( lstPointsY.begin()+id );
-               lstPointsZ.erase( lstPointsZ.begin()+id );
-               renderer->GetRenderWindow()->Render();
-       //--BBTK
-               mbbShowNPoints->bbSignalOutputModification(std::string("Point"));    
-       }
-
+       if (this->renderer!=NULL){ 
+               if (id>=0){
+                       renderer->RemoveActor( lstActors[id] );
+                       lstActors.erase( lstActors.begin()+id );
+                       lstPointsX.erase( lstPointsX.begin()+id );
+                       lstPointsY.erase( lstPointsY.begin()+id );
+                       lstPointsZ.erase( lstPointsZ.begin()+id );
+                       renderer->GetRenderWindow()->Render();
+               //--BBTK
+//EED???                       mbbShowNPoints->bbSignalOutputModification(std::string("Point"));    
+               } // if id
+       } // if renderer
 }
 
 //------------------------------------------------------------------------
 void WidgetShowNPoints::OnDeleteAllPoints(wxCommandEvent& event)
 {
        int i,size=lstActors.size();
-       for (i=0;i<size;i++)
-       {
-               renderer->RemoveActor( lstActors[i] );
-       }
-       lstActors.clear();
-       lstPointsX.clear();
-       lstPointsY.clear();
-       lstPointsZ.clear();
-       renderer->GetRenderWindow()->Render();
-       //--BBTK
-       mbbShowNPoints->bbSignalOutputModification(std::string("Point"));    
+       if (this->renderer!=NULL){ 
+               for (i=0;i<size;i++)
+               {
+                       renderer->RemoveActor( lstActors[i] );
+               }
+               lstActors.clear();
+               lstPointsX.clear();
+               lstPointsY.clear();
+               lstPointsZ.clear();
+               renderer->GetRenderWindow()->Render();
+               //--BBTK
+//EED???               mbbShowNPoints->bbSignalOutputModification(std::string("Point"));    
+       } // renderer
 }
 
 
@@ -182,7 +196,10 @@ BBTK_BLACK_BOX_IMPLEMENTATION(ShowNPoints,bbtk::WxBlackBox);
 
 void ShowNPoints::Process()
 {
+printf("EED %p ShowNPoints::Process 01\n", this);
        if (mwxwidget!=NULL){
+printf("EED %p ShowNPoints::Process 02\n", this);
+               mwxwidget->SetRenderer( bbGetInputRenderer() );   
                mwxwidget->SetPoint( bbGetInputIn() );   
                mwxwidget->SetImage( bbGetInputImage() );   
                mwxwidget->SetColour( bbGetInputColour() );   
@@ -198,7 +215,7 @@ void ShowNPoints::Process()
 
 void ShowNPoints::CreateWidget(wxWindow* parent)
 {
-       mwxwidget = new WidgetShowNPoints( parent , bbGetInputRenderer(), this);
+       mwxwidget = new WidgetShowNPoints( parent ,  this);
        mwxwidget->SetPoint( bbGetInputIn() );
 
        if (bbGetInputImage()==NULL)
@@ -207,20 +224,23 @@ void ShowNPoints::CreateWidget(wxWindow* parent)
        }
 
    bbSetOutputWidget( mwxwidget ); 
-   Process();  
 }
 
 void ShowNPoints::bbUserSetDefaultValues()
 {
        mwxwidget = NULL;
+
+       bbSetInputRadio(0.5);
+       bbSetInputOpacity(1);
+       
        std::vector<double> colour;
        colour.push_back(1.0);
        colour.push_back(0.0);
        colour.push_back(0.0);
        bbSetInputColour(colour);
-       bbSetInputOpacity(1);
+
        bbSetInputImage(NULL);
-       bbSetInputRadio(0.5);
+       bbSetInputRenderer(NULL);
 }
        
        //-----------------------------------------------------------------     
index 2aeacdf18da50b061a842388a020598d9f831c0e..d32401cd5122a690ded9742a1a3968b7dd10269c 100644 (file)
@@ -17,7 +17,7 @@ namespace bbcreaMaracasVisu
   class WidgetShowNPoints : public wxPanel
   {
   public:
-       WidgetShowNPoints( wxWindow *parent, vtkRenderer *renderer, ShowNPoints *box);
+       WidgetShowNPoints( wxWindow *parent,  ShowNPoints *box);
     ~WidgetShowNPoints(); 
        void OnAddPoint(wxCommandEvent &event);   
        void OnErasePoint(wxCommandEvent &event);   
@@ -27,6 +27,7 @@ namespace bbcreaMaracasVisu
        void SetOpacity(double opacity);
        void SetRadio(double radio);
        void SetImage(vtkImageData *image);
+       void SetRenderer(vtkRenderer *renderer);
        std::vector<int> GetLstPointsX();
        std::vector<int> GetLstPointsY();
        std::vector<int> GetLstPointsZ();