]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/vtkVectorsTensorsVisuBase.cpp
#3100 creaVtk Feature New Normal - Vectors Visu refresh
[creaVtk.git] / lib / creaVtk / vtkVectorsTensorsVisuBase.cpp
index 8da1d1a0cf5854268dc2b5e91ceb2d84de7b2200..3c1addcac10148cd08e6da020b6edbf1186a8922 100644 (file)
@@ -108,38 +108,71 @@ void vtkLookupTableMapDirVectorEED(vtkLookupTableDirectionVector *self, T *input
 //     double *mag;
        int i, j;
        double dirx,diry,dirz;
-       
-       
-inIncr=3;
-//     printf("EED length %d  %p\n", length,input);
+       double angle;
+
+       printf("EED vtkLookupTableMapDirVectorEED inIncr=%d  \n", inIncr);
+
+
 //     mag = new double[length];
        for (i = 0; i < length; ++i)
     {
-               dirx    = 0;
-               diry    = 0;
-               dirz    = 0;
-               sum     = 0;
-               for (j = 0; j < inIncr; ++j)
-               {
-                       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;
-               }
-               sum=sqrt(sum);
-               *output++ = (unsigned char) abs( (255*dirx/sum) );
-               *output++ = (unsigned char) abs( (255*diry/sum) );
-               *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);
-    }
+
+
+       if (1==1){
+                       dirx    = static_cast<T>(input[0]);
+                       diry    = static_cast<T>(input[1]);
+                       dirz    = static_cast<T>(input[2]);
+                       input   = input+inIncr;
+                       sum             = sqrt( dirx*dirx + diry*diry + dirz*dirz );
+
+       /*
+                       dirx    = 0;
+                       diry    = 0;
+                       dirz    = 0;
+                       sum             = 0;
+                       for (j = 0; j < inIncr; ++j)
+                       {
+                               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;
+                       }
+                       sum=sqrt(sum);
+       */
+
+                       *output++ = (unsigned char) abs( (255*dirx/sum) );
+                       *output++ = (unsigned char) abs( (255*diry/sum) );
+                       *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);
+
+               } // type 1 color vector by direction
+
+
+               if (2==0){
+                               angle   = static_cast<T>(input[0]);
+                               input   = input+inIncr;
+
+                               *output++ = (unsigned char) abs( 255*angle/90 );
+                               *output++ = (unsigned char) abs( 0 );
+                               *output++ = (unsigned char) abs( 0 );
+                               *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);
+
+               }// type 2 color vector by scalar
        
+
+       } // for
+
 //     vtkLookupTableMapData(self, mag, output, length, 1, outFormat);
        
 //     delete [] mag;
+
+
 }
 
 
@@ -151,7 +184,7 @@ void vtkLookupTableDirectionVector::MapScalarsThroughTable2(void *input,
                                              int inputIncrement,
                                              int outputFormat)
 {
-//  printf("vtkLookupTableEED::MapScalarsThroughTable2 inputIncrement=%d   inputDataType=%d\n",inputIncrement,inputDataType);
+  printf("vtkLookupTableEED::MapScalarsThroughTable2 \n");
 // if (this->UseMagnitude && inputIncrement > 1)
 // {
      switch (inputDataType)
@@ -196,7 +229,8 @@ vtkVectorsTensorsVisuBase::vtkVectorsTensorsVisuBase()
        _typeForm               = 0;
        _orientation    = 0;
 
-       _LutEED         = vtkLookupTableDirectionVector::New();
+       _LutEED                 = vtkLookupTableDirectionVector::New();
+       _externalLut    = NULL;
        //_LutEED->SetVectorMode(0);
        //_LutEED->SetVectorModeToMagnitude();
        //_LutEED->SetVectorModeToComponent();
@@ -351,4 +385,11 @@ int vtkVectorsTensorsVisuBase::GetOrientation()
        return _orientation;
 }
 
+//------------------------------------------------------------------------------
+void vtkVectorsTensorsVisuBase::SetExternalLut(vtkScalarsToColors* lut)
+{
+printf("EED vtkVectorsTensorsVisuBase::SetExternalLut C ptrlut %p  this:%p\n",lut, this);
+       _externalLut=lut;
+printf("EED vtkVectorsTensorsVisuBase::SetExternalLut D ptrlut %p \n",_externalLut);
+}