#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();
}
_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)
}
//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");
{
printf("EED creaVtkStreamLine::Process-name %d, %s \n", i, pointdata->GetArrayName(i) );
}
+*/
+
// vtkDataArray *nda = vtkDoubleArray::New();
// nda->DeepCopy(da);
_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
}
+
+
+