]> Creatis software - bbtk.git/commitdiff
2111 Bug Colors Law in SphereListBox
authorEduardo DAVILA <eduardo.davila@creatis.insa-lyon.fr>
Mon, 19 Aug 2013 13:57:26 +0000 (15:57 +0200)
committerEduardo DAVILA <eduardo.davila@creatis.insa-lyon.fr>
Mon, 19 Aug 2013 13:57:26 +0000 (15:57 +0200)
packages/vtk/src/bbvtkSphereList.cxx
packages/vtk/src/bbvtkSphereList.h
packages/vtk/src/bbvtkTransform.cxx

index 24624139132c46c63f31b4217fa60e039438aec5..40fce8f425c2e9d2353c481491b8d0f272c77c62 100644 (file)
@@ -80,6 +80,25 @@ void SphereList::GetPoint(int i, double &px,double &py,double &pz)
 }  
 
                        
+void SphereList::GetColor(int i, double &cr,double &cg,double &cb)        
+ {
+       unsigned int j = 3*i +2;
+       if (j < bbGetInputColour().size() )
+       {
+               cr=bbGetInputColour()[3*i+0];
+               cg=bbGetInputColour()[3*i+1];
+               cb=bbGetInputColour()[3*i+2];
+               
+       } else {
+               int lastValidColorIndex = (bbGetInputColour().size()-1)/3;
+               lastValidColorIndex     = lastValidColorIndex*3;
+               cr=bbGetInputColour()[ lastValidColorIndex+0 ];
+               cg=bbGetInputColour()[ lastValidColorIndex+1 ];
+               cb=bbGetInputColour()[ lastValidColorIndex+2 ];
+       }
+}  
+
+
 
 void SphereList::Process()
 {
@@ -88,11 +107,11 @@ void SphereList::Process()
        double px = 0.0;
        double py = 0.0;
        double pz = 0.0;
-       
-       int last_valid_color_index = 0;
-
 
+       double cr = 0.0;
+       double cg = 0.0;
+       double cb = 0.0;
+       
        if (bbGetInputRenderer()!=NULL)
        {
                 // If it is not the first time Process is executed, the actors have already been created. The only thing to do is to update the opacity. 
@@ -101,8 +120,10 @@ void SphereList::Process()
                   for (int i = 0; i < sphereActor.size(); i++)
                   {
                        GetPoint(i, px,py,pz);
+                       GetColor(i, cr,cg,cb);
                        sphereActor[i] ->SetPosition( px,py,pz );
                        sphereActor[i] -> GetProperty() -> SetOpacity( bbGetInputOpacity() );
+                       sphereActor[i] -> GetProperty() -> SetColor( cr,cg,cb );
                        vtkspheresourceLst[i] -> SetRadius( GetRadio(i) ); 
                  } // for i
                } else {
@@ -124,7 +145,7 @@ void SphereList::Process()
                          
 
                         GetPoint(i, px,py,pz);
-
+                       GetColor(i, cr,cg,cb);
                        
 
                        // Sphere
@@ -141,17 +162,8 @@ void SphereList::Process()
                        vtkActor * newActor = vtkActor::New();
                        sphereActor.push_back(newActor);
                        newActor -> SetMapper(newMapper);
-                       newActor -> SetOrigin(0, 0, 0);
-                       
-                       unsigned int j = 3*i +2;
-                       if (j < bbGetInputColour().size() )
-                       {
-                           newActor -> GetProperty() -> SetColor( bbGetInputColour()[3*i] , bbGetInputColour()[3*i + 1] , bbGetInputColour()[3*i + 2] );
-                           last_valid_color_index = 3*i;
-                       }
-                       else
-                         newActor -> GetProperty() -> SetColor( bbGetInputColour()[last_valid_color_index] , bbGetInputColour()[last_valid_color_index + 1] , bbGetInputColour()[last_valid_color_index + 2] );
-
+                       newActor -> SetOrigin(0, 0, 0);                 
+                       newActor -> GetProperty() -> SetColor(cr,cg,cb);
                        newActor -> GetProperty() -> SetOpacity( bbGetInputOpacity() );
                        newActor -> SetPosition( px,py,pz );
        
index ddbc10d4bcf33ec345efc1ef40f087c20c3da16a..fdc775afc1868d6dff5a855c158d9ef56e858db8 100644 (file)
@@ -67,6 +67,7 @@ class bbvtk_EXPORT SphereList
 private:
    double GetRadio(int);
    void GetPoint(int i, double &px,double &py,double &pz);   
+   void GetColor(int i, double &cr,double &cg,double &cb);
 };
 
 BBTK_BEGIN_DESCRIBE_BLACK_BOX(SphereList,bbtk::AtomicBlackBox);
index 829cd7e60ec3b100f4eb00aa09d72f5237e7d468..7923cb586c8c7733e430ebdf0cc884ea89051e74 100644 (file)
@@ -82,18 +82,15 @@ namespace bbvtk
        // --------------------------------------------------------------       
   void Transform::Process()
   {
-         printf("EED %p Transform::Process() 1\n", this);
          bbUserInitializeProcessing();
          if (bbGetInputIn()!=NULL)
       {
                  result->Concatenate( bbGetInputIn()->GetMatrix() );
-                 printf("EED %p Transform::Process() 2\n", this);
       }
 
          if (bbGetInputScale().size()>=3)
       {
                  result->Scale(bbGetInputScale()[0], bbGetInputScale()[1], bbGetInputScale()[2]);
-                 printf("EED %p Transform::Process() 3\n", this);
       }
  
          if ((bbGetInputTranslate().size()>=3) && (bbGetInputSpacing().size()>=3))
@@ -102,17 +99,14 @@ namespace bbvtk
                  double ty = bbGetInputTranslate()[1] * bbGetInputSpacing()[1];
                  double tz = bbGetInputTranslate()[2] * bbGetInputSpacing()[2];
                  result->Translate(tx,ty,tz);
-                 printf("EED %p Transform::Process() 4\n", this);
       }
 
          if (bbGetInputRotateWXYZ().size()>=4)
       {
                  result->RotateWXYZ(bbGetInputRotateWXYZ()[0],bbGetInputRotateWXYZ()[1], bbGetInputRotateWXYZ()[2], bbGetInputRotateWXYZ()[3]);
-                 printf("EED %p Transform::Process() 5\n", this);
       }
 
          result->Update();
-         printf("EED %p Transform::Process() 6\n", this);
  
          bbSetOutputOut(result);
   }