]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/vtkVectorsTensorsVisuBase.cpp
#3266 creaMaracasVisu Feature New Normal - ManualContour_Box by segments
[creaVtk.git] / lib / creaVtk / vtkVectorsTensorsVisuBase.cpp
index 5f6eeed8da7e91a05495f821d73eea2abd913634..c591a5f9beceaf7413a0cab2d0f1242756f1865d 100644 (file)
 */
 
 #include "vtkVectorsTensorsVisuBase.h"
-
-
 #include "vtkObjectFactory.h"
 
-
-
-
 vtkStandardNewMacro(vtkLookupTableDirectionVector);
 
 // Construct with range=(0,1); and hsv ranges set up for rainbow color table 
@@ -48,14 +43,11 @@ vtkLookupTableDirectionVector::~vtkLookupTableDirectionVector()
 {
 }
 
-
-
 unsigned char *vtkLookupTableDirectionVector::MapValue(double v)
 {
        
        //int idx = this->GetIndex(v);
-       //return (this->Table->GetPointer(0) + 4*idx);
-       
+       //return (this->Table->GetPointer(0) + 4*idx);  
        return 0;
 }
 
@@ -113,45 +105,27 @@ void vtkLookupTableMapDirVectorEED(vtkLookupTableDirectionVector *self, T *input
                           int inIncr, int outFormat)
 {
        double tmp,sum;
-//     double *mag;
        int i, j;
        double dirx,diry,dirz;
-       
-       
-inIncr=3;
-       printf("EED length %d  %p\n", length,input);
-//     mag = new double[length];
+       double angle;
        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);
-    }
-       
-//     vtkLookupTableMapData(self, mag, output, length, 1, outFormat);
-       
-//     delete [] mag;
+                       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 );
+                       *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);
+
+       } // for
 }
 
 
-
 //----------------------------------------------------------------------------
 void vtkLookupTableDirectionVector::MapScalarsThroughTable2(void *input, 
                                              unsigned char *output,
@@ -160,7 +134,6 @@ void vtkLookupTableDirectionVector::MapScalarsThroughTable2(void *input,
                                              int inputIncrement,
                                              int outputFormat)
 {
-  printf("vtkLookupTableEED::MapScalarsThroughTable2 inputIncrement=%d   inputDataType=%d\n",inputIncrement,inputDataType);
 // if (this->UseMagnitude && inputIncrement > 1)
 // {
      switch (inputDataType)
@@ -196,15 +169,17 @@ void vtkLookupTableDirectionVector::PrintSelf(ostream& os, vtkIndent indent)
 
 vtkVectorsTensorsVisuBase::vtkVectorsTensorsVisuBase()
 {
-       _firsttime      = true;
-       _active         = false;
-       _scalefactor= 1;
-       _opacity        = 1;
-       _dataobject     = NULL;
-       _renderer       = NULL;
-       _typeForm       = 0;
-
-       _LutEED         = vtkLookupTableDirectionVector::New();
+     _firsttime                = true;
+       _active                 = false;
+       _scalefactor    = 1;
+       _opacity                = 1;
+       _dataobject             = NULL;
+       _renderer               = NULL;
+       _typeForm               = 0;
+       _orientation    = 0;
+
+       _LutEED                 = vtkLookupTableDirectionVector::New();
+       _externalLut    = NULL;
        //_LutEED->SetVectorMode(0);
        //_LutEED->SetVectorModeToMagnitude();
        //_LutEED->SetVectorModeToComponent();
@@ -305,8 +280,6 @@ void vtkVectorsTensorsVisuBase::Process()    // virtual
 {
 }
 
-
-
 //------------------------------------------------------------------------------
 void vtkVectorsTensorsVisuBase::VisibilityActor()
 {
@@ -328,7 +301,6 @@ void vtkVectorsTensorsVisuBase::VisibilityActor()
        } // if _active==false  
 }
 
-
 //------------------------------------------------------------------------------
 void vtkVectorsTensorsVisuBase::SetColorLaw(int colorlaw)
 {
@@ -350,4 +322,21 @@ void vtkVectorsTensorsVisuBase::SetColor(std::vector<double> rgb)
        }
 }
 
+//------------------------------------------------------------------------------
+void vtkVectorsTensorsVisuBase::SetOrientation(int orientation)
+{
+       _orientation = orientation;
+}
+
+//------------------------------------------------------------------------------
+int vtkVectorsTensorsVisuBase::GetOrientation()
+{
+       return _orientation;
+}
+
+//------------------------------------------------------------------------------
+void vtkVectorsTensorsVisuBase::SetExternalLut(vtkScalarsToColors* lut)
+{
+       _externalLut=lut;
+}