]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/vtkVectorsTensorsVisuBase.cpp
#2506 creaVtk Bug New Normal - Color Tensors
[creaVtk.git] / lib / creaVtk / vtkVectorsTensorsVisuBase.cpp
index f582efe2851e0e412815a4e9615c2ba77cae9c4f..ee7fc4999d6066a96640c5bedb001e17b4286343 100644 (file)
@@ -118,6 +118,7 @@ void vtkLookupTableMapDirVectorEED(vtkLookupTableDirectionVector *self, T *input
        double dirx,diry,dirz;
        
        
+inIncr=3;
        printf("EED length %d  %p\n", length,input);
 //     mag = new double[length];
        for (i = 0; i < length; ++i)
@@ -125,13 +126,13 @@ void vtkLookupTableMapDirVectorEED(vtkLookupTableDirectionVector *self, T *input
                dirx    = 0;
                diry    = 0;
                dirz    = 0;
-               sum             = 0;
+               sum     = 0;
                for (j = 0; j < inIncr; ++j)
                {
-                       if (j==0) dirx= static_cast<double>(*input);  
-                       if (j==1) diry= static_cast<double>(*input);  
-                       if (j==2) dirz= static_cast<double>(*input);  
-                       tmp = static_cast<double>(*input);  
+                       if (j==0) dirx= static_cast<T>(*input);  
+                       if (j==1) diry= static_cast<T>(*input);  
+                       if (j==2) dirz= static_cast<T>(*input);  
+                       tmp = static_cast<T>(*input);  
                        sum += (tmp * tmp);
                        ++input;
                }
@@ -141,6 +142,7 @@ void vtkLookupTableMapDirVectorEED(vtkLookupTableDirectionVector *self, T *input
                *output++ = (unsigned char) abs( (255*dirz/sum) );
                *output++ = 255;
 //             printf("%d %d %d   ",(int)(255*dirx/sum),(int)(255*diry/sum),(int)(255*dirz/sum));
+//             printf(" C     %d        %f %f %f   \n",inIncr,dirx,diry,dirz);
     }
        
 //     vtkLookupTableMapData(self, mag, output, length, 1, outFormat);
@@ -192,29 +194,25 @@ void vtkLookupTableDirectionVector::PrintSelf(ostream& os, vtkIndent indent)
 //----------------------------------
 //----------------------------------
 
-
-
-
-
-
-
-
 vtkVectorsTensorsVisuBase::vtkVectorsTensorsVisuBase()
 {
-        _firsttime     = true;
+      _firsttime       = true;
        _active         = false;
-       _scalefactor    = 1;
-       _opacity        = 1;
+       _scalefactor= 1;
+       _opacity                = 1;
        _dataobject     = NULL;
        _renderer       = NULL;
-       _typeForm       = 0;
+               _typeForm       = 0;
 
        _LutEED         = vtkLookupTableDirectionVector::New();
-       _LutEED->SetVectorMode(0);
-
-       _pdm            = vtkPolyDataMapper::New();
-       _actor          = vtkActor::New();
-       _actorAdded     = false;
+//     _LutEED->SetVectorMode(0);
+//_LutEED->SetVectorModeToMagnitude();
+//_LutEED->SetVectorModeToComponent();
+_LutEED->SetVectorModeToRGBColors();
+
+       _pdm                            = vtkPolyDataMapper::New();
+       _actor                  = vtkActor::New();
+       _actorAdded             = false;
 }
 
 vtkVectorsTensorsVisuBase::~vtkVectorsTensorsVisuBase()
@@ -316,20 +314,40 @@ void vtkVectorsTensorsVisuBase::VisibilityActor()
        if ( (_active==true) && (_actorAdded==false) ){
                if (GetRenderer()!=NULL)
                {
-                  GetRenderer()->AddActor(_actor);
+             GetRenderer()->AddActor(_actor);
                   _actorAdded=true;
-                        } // if Renderer
+       } // if Renderer
        } // if _active==true 
 
        if ( (_active==false) && (_actorAdded==true) ){
                if (GetRenderer()!=NULL)
                {
-                  GetRenderer()->RemoveActor(_actor);
+             GetRenderer()->RemoveActor(_actor);
                   _actorAdded=false;
-                        } // if Renderer
+      } // if Renderer
        } // if _active==false  
 }
 
 
+//------------------------------------------------------------------------------
+void vtkVectorsTensorsVisuBase::SetColorLaw(int colorlaw)
+{
+       _colorlaw = colorlaw;
+}
+
+//------------------------------------------------------------------------------
+void vtkVectorsTensorsVisuBase::SetColor(std::vector<double> rgb)
+{
+       if (rgb.size()==3)
+       {
+               _colorR=rgb[0];
+               _colorG=rgb[1];
+               _colorB=rgb[2];
+       } else {
+               _colorR=1;
+               _colorG=1;
+               _colorB=1;
+       }
+}