]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/vtkVectorsVisu.cpp
#3266 creaMaracasVisu Feature New Normal - ManualContour_Box by segments
[creaVtk.git] / lib / creaVtk / vtkVectorsVisu.cpp
index 7c8a6bc1776e0d0d29ffa25e3e81e88ce74e9f8f..c29dace97f7f3ddbccc12d64f61bc51ba4331aa1 100644 (file)
@@ -31,7 +31,9 @@
 
 //Borrame
 #include "vtkPointData.h"
-
+#include "vtkArrayData.h"
+#include "vtkDataObject.h"
+#include <vtkPointData.h>
 
 //------------------------------------------------------------------------------
 vtkVectorsVisu::vtkVectorsVisu()
@@ -67,13 +69,14 @@ void vtkVectorsVisu::Process()
      {
                if (_vtkglyph==NULL) 
                {
-                       if (GetOrientation()==0)
+                       if (GetOrientation()==-1) 
                        {
                                _vtkglyph = vtkGlyph3D::New(); 
                        } // _orientation                       
-                       if ((GetOrientation()>=1) && (GetOrientation()<=3))
+                       if ((GetOrientation()>=0) && (GetOrientation()<=2))
                        {
-                               _vtkglyph = vtkGlyph2D::New(); 
+                               _vtkglyph = vtkGlyph3D::New(); 
+//                             _vtkglyph = vtkGlyph2D::New(); 
                        } // _orientation                       
                } // _vtkglyph NULL
 
@@ -100,7 +103,15 @@ void vtkVectorsVisu::Process()
 #endif
                        }
          _vtkglyph->SetScaleModeToScaleByVector();
-         _vtkglyph->SetColorModeToColorByVector();
+
+
+               if (_externalLut==NULL)
+               {
+               _vtkglyph->SetColorModeToColorByVector();   
+               } else {
+                       _vtkglyph->SetColorModeToColorByScalar();   
+               } // if _externalLut
+
          _vtkglyph->SetScaleFactor( GetScaleFactor() );
                _vtkglyph->Update();
 
@@ -121,20 +132,60 @@ vtkPointData      *data   = _vtkglyph->GetOutput()->GetPointData();
 //     data->GetArray(i)->Print(std::cout);
 //}
 
-       _pdm->ScalarVisibilityOn();
-       _pdm->SetColorModeToMapScalars();
-       //_pdm->SetColorModeToDefault();
-       // _pdm->SetColorModeToDirectScalars();  // NOT compile
-       _pdm->SetScalarModeToUsePointFieldData();
-       _pdm->ImmediateModeRenderingOn();
 
-       _LutEED->SetVectorModeToComponent();
-       //_LutEED->SetVectorModeToRGBColors();
-       //_LutEED->SetVectorModeToMagnitud();
-
-//         _pdm->SetScalarModeToUsePointFieldData();
+               if (_externalLut==NULL)
+               {
+                       _pdm->ScalarVisibilityOn();
+                       _pdm->SetColorModeToMapScalars();
+               //      _pdm->SetColorModeToDefault();
+                       // _pdm->SetColorModeToDirectScalars();  // NOT compile
+                       _pdm->SetScalarModeToUsePointFieldData();
+               //      _pdm->ImmediateModeRenderingOn();   // obsolete
+                       _LutEED->SetVectorModeToComponent();
+                       //_LutEED->SetVectorModeToRGBColors();
+                       //_LutEED->SetVectorModeToMagnitud();
+               //         _pdm->SetScalarModeToUsePointFieldData();
          _pdm->SetLookupTable( _LutEED );
          _pdm->SelectColorArray( "GlyphVector" );
+               } else {
+                       data->SetActiveScalars("angle");
+
+                       _pdm->ScalarVisibilityOn(); 
+                       double scalarRange[2];
+                       scalarRange[0]=0;
+                       scalarRange[1]=40;
+printf("EED warnnning  .....  vtkVectorsVisu::Process   clean scalar Range ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   clean scalar Range ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   clean scalar Range ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   clean scalar Range ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   clean scalar Range ......\n");
+                   _pdm->SetScalarRange(scalarRange);
+                       _pdm->SetColorModeToMapScalars();
+//                     _pdm->SetColorModeToDefault();
+//                      _pdm->SetColorModeToDirectScalars();  // NOT compile
+//                     _pdm->SetScalarModeToUsePointFieldData();
+                       _pdm->ImmediateModeRenderingOn();   // obsolete
+                _pdm->SetLookupTable( _externalLut );
+                _pdm->SelectColorArray( "angle" );
+               }  // if _externalLut
+
+printf("EED warnnning  .....  vtkVectorsVisu::Process   Clean angle ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   Clean angle ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   Clean angle ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   Clean angle ......\n");
+printf("EED warnnning  .....  vtkVectorsVisu::Process   Clean angle ......\n");
+
+/*
+_vtkglyph->Update();
+vtkPointData *pointdata=_vtkglyph->GetOutput()->GetPointData();
+int i,size=pointdata->GetNumberOfArrays();
+for (i=0;i<size;i++)
+{
+       vtkDataArray *array=pointdata->GetArray(i);
+       printf(" vtkVectorsVisu::Process array name %d:<%s>  size:%d\n", i, array->GetName(), array->GetSize() );
+}
+*/
+
 
 //       vSliceMapperVec->SetLookupTable( vGreenToRedLut );
 //       vSliceMapperVec->SetColorModeToMapScalars();
@@ -145,23 +196,30 @@ vtkPointData      *data   = _vtkglyph->GetOutput()->GetPointData();
          _pdm->Update();
 #endif
 
-               // Orientation 0 3D     OK
-               // Orientation 1 2D xy  OK
-
-               // Orientation 2 2D yz  
-               if (GetOrientation()==2) 
+               // Orientation -1 3D     OK
+               // Orientation 0 2D yz 
+               if (GetOrientation()==0) 
                {
                        _trans->Identity();
                        _trans->Translate(900,0,0);
-                       _trans->RotateWXYZ(-90,0,1,0);
                        _actor->SetUserTransform(_trans);
                }
 
-               // Orientation 3 2D xz  
-               if (GetOrientation()==3) 
+
+               // Orientation 1 2D xz  
+               if (GetOrientation()==1) 
+               {
+                       _trans->Identity();
+                       _trans->Translate(0,-900,0);
+                       _actor->SetUserTransform(_trans);
+               }
+
+               // Orientation 2 2D xy  
+               if (GetOrientation()==2) 
                {
                        _trans->Identity();
-                       _trans->RotateWXYZ(90,1,0,0);
+                       _trans->Translate(0,0,-900);
                        _actor->SetUserTransform(_trans);
                }