]> 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 d95b454c9f9d428345d1eb3f44f91be60c88c5f7..c29dace97f7f3ddbccc12d64f61bc51ba4331aa1 100644 (file)
 
 //Borrame
 #include "vtkPointData.h"
-
+#include "vtkArrayData.h"
+#include "vtkDataObject.h"
+#include <vtkPointData.h>
 
 //------------------------------------------------------------------------------
 vtkVectorsVisu::vtkVectorsVisu()
   :vtkVectorsTensorsVisuBase()
 {
-       _vtkarrowsource = vtkArrowSource::New();
-       _vtklinesource          = vtkLineSource::New();
-       _vtkglyph                       = vtkGlyph3D::New();
+       _vtkarrowsource         = vtkArrowSource::New();
+       _vtkglyph                       = NULL;
+       _vtklinesource          = vtkLineSource ::New();
+       _trans                          = vtkTransform  ::New();
+
+       double point1[3];
+       double point2[3];
+       point1[0]=1;
+       point1[1]=0;
+       point1[2]=0;
+       point2[0]=-1;
+       point2[1]=0;
+       point2[2]=0;
+       _vtklinesource->SetPoint1( point1 );
+       _vtklinesource->SetPoint2( point2 );
 }
 
-
 //------------------------------------------------------------------------------
 vtkVectorsVisu::~vtkVectorsVisu()
 {
 }
 
+
 //------------------------------------------------------------------------------
 void vtkVectorsVisu::Process()
 {
-printf("EED vtkVectorsVisu::Process()  start\n");
      if(_active==true)
      {
-         _vtkglyph->SetInput( GetDataObject() );  
+               if (_vtkglyph==NULL) 
+               {
+                       if (GetOrientation()==-1) 
+                       {
+                               _vtkglyph = vtkGlyph3D::New(); 
+                       } // _orientation                       
+                       if ((GetOrientation()>=0) && (GetOrientation()<=2))
+                       {
+                               _vtkglyph = vtkGlyph3D::New(); 
+//                             _vtkglyph = vtkGlyph2D::New(); 
+                       } // _orientation                       
+               } // _vtkglyph NULL
 
+
+#if VTK_MAJOR_VERSION <= 5
+         _vtkglyph->SetInput( GetDataObject() );  
+#else
+         _vtkglyph->SetInputData( GetDataObject() );  
+#endif
                        if(GetTypeForm()==1)                                                            // source Arrow
                        {
-                _vtkglyph->SetSource( _vtkarrowsource->GetOutput() );
+#if VTK_MAJOR_VERSION <= 5
+                       _vtkglyph->SetSource( _vtkarrowsource->GetOutput() );
+#else
+                               _vtkarrowsource->Update();
+                       _vtkglyph->SetSourceData( _vtkarrowsource->GetOutput() );
+#endif
                        } else {                                                                                                // source Line
+#if VTK_MAJOR_VERSION <= 5
                                _vtkglyph->SetSource( _vtklinesource->GetOutput() );    
+#else
+                               _vtklinesource->Update();
+                               _vtkglyph->SetSourceData( _vtklinesource->GetOutput() );        
+#endif
                        }
-
          _vtkglyph->SetScaleModeToScaleByVector();
-         _vtkglyph->SetColorModeToColorByVector();
+
+
+               if (_externalLut==NULL)
+               {
+               _vtkglyph->SetColorModeToColorByVector();   
+               } else {
+                       _vtkglyph->SetColorModeToColorByScalar();   
+               } // if _externalLut
+
          _vtkglyph->SetScaleFactor( GetScaleFactor() );
-         _vtkglyph->Update();
+               _vtkglyph->Update();
 
+#if VTK_MAJOR_VERSION <= 5
          _pdm->SetInput( _vtkglyph->GetOutput());
+#else
+         _pdm->SetInputData( _vtkglyph->GetOutput());
+#endif
 
 vtkPointData   *data   = _vtkglyph->GetOutput()->GetPointData();
 //printf("EED -------------------------------------------\n");
 //_vtkglyph->GetOutput()->Print(std::cout);
 //printf("EED -------------------------------------------\n");
 //data->Print(std::cout);
-printf("EED -------------------------------------------\n");                   
-int i,sizeDa = data->GetNumberOfArrays();
-printf("EED vtkVectorsVisu::Process  sizeDa %d \n", sizeDa );
-for (i=0;i<sizeDa;i++)
+//int i,sizeDa = data->GetNumberOfArrays();
+//for (i=0;i<sizeDa;i++)
+//{
+//     data->GetArray(i)->Print(std::cout);
+//}
+
+
+               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++)
 {
-       printf("EED vtkVectorsVisu::Process-name %d, %s \n", i, data->GetArrayName(i) );
-       data->GetArray(i)->Print(std::cout);
-       printf("EED -------------------------------------------\n");
+       vtkDataArray *array=pointdata->GetArray(i);
+       printf(" vtkVectorsVisu::Process array name %d:<%s>  size:%d\n", i, array->GetName(), array->GetSize() );
 }
+*/
 
-//EED         _pdm->SetScalarRange( range );
-//EED         vtkPolyData      *pd                     = vGlyphFlowPlane->GetOutput();
-//EED         vtkPointData     *pointdata              = pd->GetPointData();
-//EED         vtkDataArray     *da                     = pointdata->GetVectors();
-//EED         vtkDataArray *nda = vtkFloatArray::New();
-//EED         nda->DeepCopy(da);
-//       pointdata->RemoveArray( "GlyphVector" );
-//       bbGetInputIn()->GetPointData()->RemoveArray( "GlyphVector" );
-//EED         pointdata->AddArray( nda );
-//EED         bbGetInputIn()->GetPointData()->AddArray( nda );
-//EED2         _pdm->ScalarVisibilityOn();
-         _pdm->SetScalarModeToUsePointFieldData();
-         _pdm->SetLookupTable( _LutEED );
-         _pdm->SelectColorArray( "GlyphVector" );
 
 //       vSliceMapperVec->SetLookupTable( vGreenToRedLut );
 //       vSliceMapperVec->SetColorModeToMapScalars();
 
+#if VTK_MAJOR_VERSION <= 5
+               // ..
+#else
+         _pdm->Update();
+#endif
+
+               // Orientation -1 3D     OK
+               // Orientation 0 2D yz 
+               if (GetOrientation()==0) 
+               {
+                       _trans->Identity();
+                       _trans->Translate(900,0,0);
+                       _actor->SetUserTransform(_trans);
+               }
+
+
+               // 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->Translate(0,0,-900);
+                       _actor->SetUserTransform(_trans);
+               }
+
          _actor->SetMapper( _pdm );
          _actor->GetProperty()->SetOpacity( GetOpacity() );
     }// if _active
 
     VisibilityActor(); 
-printf("EED vtkVectorsVisu::Process()  end\n");
 }
-       
-
-
-
-