]> 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 5085b1da5cb2bc992b18cc48f91b477853de141b..31ea59b07471fb35f49cb1dafce52ff28e4c5930 100644 (file)
 #include "vtkPointData.h"
 #include "vtkRenderWindow.h"
 #include "vtkProperty.h"
+#include "vtkPolyDataWriter.h"
 
 creaVtkStreamLine::creaVtkStreamLine()
 {
-       _source                 = vtkPointSource::New();
-       _vPointWidget           = vtkPointWidget::New();
-       _streamMapper2          = vtkPolyDataMapper::New();
+       _source                 = vtkPointSource::New();
+       _vPointWidget   = vtkPointWidget::New();
+       _streamMapper2 = vtkPolyDataMapper::New();
        _streamer               = vtkStreamTracer::New();
-
        _tubefilter             = vtkTubeFilter::New();
-       _ribbonfilter           = vtkRibbonFilter::New();
+       _ribbonfilter   = vtkRibbonFilter::New();
 }
 
 
@@ -54,15 +54,25 @@ void creaVtkStreamLine::SetSourcePoints( vtkDataSet* sourcepoints)
        _sourcePoints = sourcepoints;
 }
 
+//---------------------------------------------
+void creaVtkStreamLine::SetPolyData( vtkPolyData* polydata)
+{
+       _polydata = polydata;
+}
+
 //---------------------------------------------
 void creaVtkStreamLine::Process()
 {
-       
-printf("creaVtkStreamLine::Process Start \n");
+       printf("EED creaVtkStreamLine::Process Start \n");
+
+       if (_polydata!=NULL){
+
                if (_active==false)
                { //bbGetInputPlaneFieldShow
                        _vPointWidget->Off();
                } else {
+
+/*
                        //---------------------------Stream Lines-----------------------
                        _vPointWidget->SetInput( (vtkDataSet*) GetDataObject() );
                        if (_firsttime==true)
@@ -76,56 +86,67 @@ printf("creaVtkStreamLine::Process Start \n");
                        }
 //EED1                 _vPointWidget->On();
                                
-                       
                        double c[3];
                        _vPointWidget->GetPosition(c);
                        _source->SetCenter( c );
                        _source->Update();
                        
                        _streamer->SetInput( GetDataObject() );
-
-//EED1                 _streamer->SetSource( _source->GetOutput() );
+//EED1 _streamer->SetSource( _source->GetOutput() );
                        _streamer->SetSource( _sourcePoints );
-
                        _streamer->SetIntegratorTypeToRungeKutta45();
-
 //EED                  _streamer->SetMaximumPropagation(500000);
                        _streamer->SetMaximumPropagation(500);
-//EED                  _streamer->SetMaximumPropagationUnitToTimeUnit();
-
+//EED          _streamer->SetMaximumPropagationUnitToTimeUnit();
                        _streamer->SetInitialIntegrationStep (0.001);
 //EED                  _streamer->SetInitialIntegrationStepUnitToCellLengthUnit();
-
                        _streamer->SetIntegrationDirectionToBoth();
                        //EED   streamer->ComputeVorticityOn ();
                        _streamer->Update();
-printf("EED creaVtkStreamLine::Process StreamLine PrintSelf\n");
-                       _streamer->Print(std::cout);
-
-printf("EED creaVtkStreamLine::Process StreamLine->GetOutput() PrintSelf\n");
-                       _streamer->GetOutput()->Print(std::cout);
+//                     _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());
+                       _tubefilter->SetInput( _streamer->GetOutput() );
+                       _ribbonfilter->SetInput(_streamer->GetOutput());
+*/
+
+                       _tubefilter->SetInput( _polydata );
+                       _ribbonfilter->SetInput( _polydata );
+
+
                        _tubefilter->SetRadius( GetScaleFactor() );
                        _tubefilter->SetNumberOfSides(12);
                        _tubefilter->SetVaryRadiusToVaryRadiusOff();
                        
-                       _ribbonfilter->SetInput(_streamer->GetOutput());
                        _ribbonfilter->SetWidth( GetScaleFactor() );
                        _ribbonfilter->SetWidthFactor( GetScaleFactor()*10 );
                        _ribbonfilter->GlobalWarningDisplayOff ();  //EED this is to avoid the "BEVEL WARNING"
 
+                       _polydata->Modified();
 //BORRAME                      _streamer->GetOutput()->GetScalarRange( range );
-                       if (GetTypeForm()==0) {
+                       if (GetTypeForm()==0) 
+                       {
                                _streamMapper2->SetInput( _tubefilter->GetOutput() );
-                       } else {
+                       } 
+                       if (GetTypeForm()==1) 
+                       {
                                _streamMapper2->SetInput( _ribbonfilter->GetOutput() );
                        }                       
+                       if (GetTypeForm()==2) 
+                       {
+                               _streamMapper2->SetInput( _polydata );
+                       }                       
 //EED                  _streamMapper2->SetLookupTable(vGreenToRedLut);
                        
                        
+/*
                        vtkPolyData     *pd             = _streamer->GetOutput();
                        vtkPointData    *pointdata      = pd->GetPointData();
 //                     vtkDataArray    *da             = pointdata->GetArray("Normals");
@@ -136,6 +157,8 @@ printf("EED creaVtkStreamLine::Process StreamLine->GetOutput() PrintSelf\n");
                        {
                                printf("EED creaVtkStreamLine::Process-name %d, %s \n", i, pointdata->GetArrayName(i) );
                        }
+*/
+
                        
 //                     vtkDataArray *nda = vtkDoubleArray::New();
 //                     nda->DeepCopy(da);
@@ -162,19 +185,16 @@ printf("EED creaVtkStreamLine::Process StreamLine->GetOutput() PrintSelf\n");
                        _streamMapper2->SetLookupTable( _LutEED );
                        _streamMapper2->SelectColorArray( "velocity" );
 
-
-
 //Config 3   Position
 //   ???????
-
                        
                        _actor->SetMapper( _streamMapper2 );
-
-printf("EED lib creaVTK creaVtkStreamLine::Process  opacity %f\n", GetOpacity() );
                        _actor->GetProperty()->SetOpacity( GetOpacity() );
                }// _active
        
        VisibilityActor(); 
-
-       
+   } // polydata
 } 
+
+
+