]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/creaVtkStreamLine.cpp
#2446 creaVtk Feature New Normal - Stream Tracer, Stream Line (interface, widget)
[creaVtk.git] / lib / creaVtk / creaVtkStreamLine.cpp
index 31ea59b07471fb35f49cb1dafce52ff28e4c5930..fedfcb6e1f431184563a9e37301caa55f8f13673 100644 (file)
 #include "vtkProperty.h"
 #include "vtkPolyDataWriter.h"
 
+
 creaVtkStreamLine::creaVtkStreamLine()
 {
-       _source                 = vtkPointSource::New();
-       _vPointWidget   = vtkPointWidget::New();
+//     _source                 = vtkPointSource::New();
+//     _vPointWidget   = vtkPointWidget::New();
        _streamMapper2 = vtkPolyDataMapper::New();
-       _streamer               = vtkStreamTracer::New();
        _tubefilter             = vtkTubeFilter::New();
        _ribbonfilter   = vtkRibbonFilter::New();
 }
@@ -48,11 +48,6 @@ creaVtkStreamLine::~creaVtkStreamLine()
 {
 }
 
-//---------------------------------------------
-void creaVtkStreamLine::SetSourcePoints( vtkDataSet* sourcepoints)
-{
-       _sourcePoints = sourcepoints;
-}
 
 //---------------------------------------------
 void creaVtkStreamLine::SetPolyData( vtkPolyData* polydata)
@@ -65,13 +60,10 @@ void creaVtkStreamLine::Process()
 {
        printf("EED creaVtkStreamLine::Process Start \n");
 
-       if (_polydata!=NULL){
-
-               if (_active==false)
-               { //bbGetInputPlaneFieldShow
-                       _vPointWidget->Off();
-               } else {
-
+       if (_polydata!=NULL)
+       {
+               if (_active==true)
+               {
 /*
                        //---------------------------Stream Lines-----------------------
                        _vPointWidget->SetInput( (vtkDataSet*) GetDataObject() );
@@ -106,57 +98,85 @@ void creaVtkStreamLine::Process()
 //                     _streamer->Print(std::cout);
 //                     _streamer->GetOutput()->Print(std::cout);
 
-//EED
-//vtkPolyDataWriter *writer3 = vtkPolyDataWriter::New();
-//writer3->SetFileName( "/home/davila/Borrame/streamline-eed.vtk" );
-//writer3->SetInput( _streamer->GetOutput() );
-//writer3->Write();
 
 //EED 3aout2011
                        _tubefilter->SetInput( _streamer->GetOutput() );
                        _ribbonfilter->SetInput(_streamer->GetOutput());
 */
 
-                       _tubefilter->SetInput( _polydata );
-                       _ribbonfilter->SetInput( _polydata );
-
+                       _polydata->Modified();
 
-                       _tubefilter->SetRadius( GetScaleFactor() );
-                       _tubefilter->SetNumberOfSides(12);
-                       _tubefilter->SetVaryRadiusToVaryRadiusOff();
-                       
-                       _ribbonfilter->SetWidth( GetScaleFactor() );
-                       _ribbonfilter->SetWidthFactor( GetScaleFactor()*10 );
-                       _ribbonfilter->GlobalWarningDisplayOff ();  //EED this is to avoid the "BEVEL WARNING"
+       printf("EED creaVtkStreamLine::Process 0 %p \n", _polydata);
 
-                       _polydata->Modified();
-//BORRAME                      _streamer->GetOutput()->GetScalarRange( range );
                        if (GetTypeForm()==0) 
                        {
+       printf("EED creaVtkStreamLine::Process 1 \n");
+                               _tubefilter->SetInput( _polydata );
+                               _tubefilter->SetRadius( GetScaleFactor() );     
+                               _tubefilter->SetNumberOfSides(12);
+                               _tubefilter->SetVaryRadiusToVaryRadiusOff();            
+                               _tubefilter->Modified();
+                               _tubefilter->Update();
                                _streamMapper2->SetInput( _tubefilter->GetOutput() );
                        } 
                        if (GetTypeForm()==1) 
                        {
+       printf("EED creaVtkStreamLine::Process 2 \n");
+                               _ribbonfilter->SetInput( _polydata );
+                               _ribbonfilter->SetWidth( GetScaleFactor() );    
+                               _ribbonfilter->SetWidthFactor( GetScaleFactor()*10 );
+                               _ribbonfilter->GlobalWarningDisplayOff ();  //EED this is to avoid the "BEVEL WARNING"
+                               _ribbonfilter->Modified();
+                               _ribbonfilter->Update();
                                _streamMapper2->SetInput( _ribbonfilter->GetOutput() );
                        }                       
                        if (GetTypeForm()==2) 
                        {
+       printf("EED creaVtkStreamLine::Process 3 \n");
                                _streamMapper2->SetInput( _polydata );
                        }                       
+       printf("EED creaVtkStreamLine::Process 4 \n");
 //EED                  _streamMapper2->SetLookupTable(vGreenToRedLut);
-                       
-                       
-/*
-                       vtkPolyData     *pd             = _streamer->GetOutput();
-                       vtkPointData    *pointdata      = pd->GetPointData();
+
+/*                     
+vtkDoubleArray* _velocity = vtkDoubleArray::New();
+_velocity->SetName("velocity");  // ... fill the colors array                  
+for (int ivelocity=0; ivelocity<=4000; ivelocity++ )
+{
+       _velocity->InsertTuple3 (ivelocity, 1, 0, 0);
+}
+_polydata->GetPointData()->AddArray(_velocity);
+*/
+                       printf("EED creaVtkStreamLine::Process A \n" );
+
+                       vtkPointData    *data   = _polydata->GetPointData();
+
+printf("EED -------------------------------------------\n");
+                       _polydata->Print(std::cout);
+printf("EED -------------------------------------------\n");
+                       data->Print(std::cout);
+printf("EED -------------------------------------------\n");
+
+//                     vtkFieldData    *data   = _polydata->GetFieldData();
 //                     vtkDataArray    *da             = pointdata->GetArray("Normals");
                        
-                       int i,sizeDa = pointdata->GetNumberOfArrays();
+                       int i,sizeDa = data->GetNumberOfArrays();
                        printf("EED creaVtkStreamLine::Process  sizeDa %d \n", sizeDa );
                        for (i=0;i<sizeDa;i++)
                        {
-                               printf("EED creaVtkStreamLine::Process-name %d, %s \n", i, pointdata->GetArrayName(i) );
+                               printf("EED creaVtkStreamLine::Process-name %d, %s \n", i, data->GetArrayName(i) );
+                               data->GetArray(i)->Print(std::cout);
+printf("EED -------------------------------------------\n");
                        }
+
+
+
+/*
+//EED
+ vtkPolyDataWriter *writer3 = vtkPolyDataWriter::New();
+ writer3->SetFileName( "/home/davila/Borrame/streamline-eed-c.vtk" );
+ writer3->SetInput( _polydata );
+ writer3->Write();
 */
 
                        
@@ -175,15 +195,52 @@ void creaVtkStreamLine::Process()
 //Config 1   (Normals)
 //                     _streamMapper2->ScalarVisibilityOn();
 //                     _streamMapper2->SetScalarModeToUsePointFieldData();
-//                     _streamMapper2->SetLookupTable( vLutEED );
+//                     _streamMapper2->SetLookupTable( _LutEED );
 //                     _streamMapper2->SelectColorArray( "Normals" );
 
 
+
 //Config 2   Orientation vectors
                        _streamMapper2->ScalarVisibilityOn();
                        _streamMapper2->SetScalarModeToUsePointFieldData();
                        _streamMapper2->SetLookupTable( _LutEED );
-                       _streamMapper2->SelectColorArray( "velocity" );
+
+                       if (_colorlaw==0)
+                       {
+                               _LutEED->SetVectorModeToRGBColors();
+                               _streamMapper2->SelectColorArray( "creaColorDirection" );
+                       }
+                       if (_colorlaw==1)
+                       {
+//                             _LutEED->SetVectorModeToMagnitude();
+                               vtkLookupTable *lookuptable = vtkLookupTable::New();
+                               _streamMapper2->SetLookupTable( lookuptable );
+                               _streamMapper2->SelectColorArray( "creaMagnitud" );
+                       }
+                       if (_colorlaw==2)
+                       {
+
+                               _streamMapper2->SelectColorArray( "xx" );
+                               _actor->GetProperty()->SetColor(_colorR,_colorG,_colorB);
+                       }
+
+/*
+         _vtkglyph->SetInput( GetDataObject() );  
+         _vtkglyph->SetSource( _vtkarrowsource->GetOutput() );
+         _vtkglyph->SetScaleModeToScaleByVector();
+         _vtkglyph->SetColorModeToColorByVector();
+         _vtkglyph->SetScaleFactor( GetScaleFactor() );
+         _vtkglyph->Update();
+         _pdm->SetInput( _vtkglyph->GetOutput());
+         _pdm->SetScalarModeToUsePointFieldData();
+         _pdm->SetLookupTable( _LutEED );
+         _pdm->SelectColorArray( "GlyphVector" );
+*/
+
+
+
+
+
 
 //Config 3   Position
 //   ???????
@@ -194,6 +251,9 @@ void creaVtkStreamLine::Process()
        
        VisibilityActor(); 
    } // polydata
+
+       printf("EED creaVtkStreamLine::Process End \n");
+
 }