surface streamline plot

Hi all,
i want to plot streamline on surface
I have tried with this method

void CGLModelViewCtrl::CreateSurfaceStreamlinesPlot()
{

if (m_pUnstructuredGridModel == NULL)
{
	return;
}

// convert from unstructuredGrid to PolyData
vtkSmartPointer<vtkGeometryFilter> extract = vtkSmartPointer<vtkGeometryFilter>::New();
extract->SetInputConnection(m_pUnstructuredGridModel->GetOutputPort());

vtkSmartPointer<vtkDepthSortPolyData> depthSort = CreateDepthSortVTkForPolyData(extract);

// ========================   create gray model
CreateGrayModelActor(depthSort);
if (m_pFillGrayModelActor != NULL)
	m_pFillGrayModelActor->GetProperty()->SetOpacity(0.1);

#if VTK_MAJOR_VERSION >= 7
m_pUnstructuredGridModel->GetOutput()->SetGlobalReleaseDataFlag(1);
#else
m_pUnstructuredGridModel->GetOutput()->ReleaseDataFlagOn();
#endif

m_bShowWireframe = TRUE;
//================================================working streamtracer ==============================================
vtkUnstructuredGrid * pGlobalUGrid = (vtkUnstructuredGrid*)m_pUnstructuredGridModel->GetOutput();
vtkSmartPointer<vtkPolyData> pPolydata = vtkSmartPointer<vtkPolyData>::New();

if (pGlobalUGrid != NULL)
	pPolydata->SetPoints(pGlobalUGrid->GetPoints());

m_seeds = vtkSmartPointer<vtkPointSource>::New();


m_seeds->SetRadius(m_iNbrOfStreamLineSeedsRaduis);
m_seeds->SetInput(pPolydata);
m_seeds->SetCenter(pPolydata->GetCenter());
m_seeds->SetNumberOfPoints(m_iNbrOfStreamPoints);


vtkSmartPointer<vtkRungeKutta4> sph_rk4 = vtkSmartPointer<vtkRungeKutta4>::New();

m_streamer = vtkSmartPointer<vtkStreamTracer>::New();
m_streamer->SetInputConnection(m_pUnstructuredGridModel->GetOutputPort());
m_streamer->SetSourceConnection(m_seeds->GetOutputPort());
m_streamer->SetMaximumPropagation(500);
m_streamer->SetIntegrator(sph_rk4);

m_streamer->SetIntegrationDirectionToBoth();//SetIntegrationDirectionToBoth
m_streamer->SetComputeVorticity(false);
m_streamer->Modified();


vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();

mapper->SetInputConnection(m_streamer->GetOutputPort());

mapper->SetScalarRange(m_CurrentMinValue, m_CurrentMaxValue);
mapper->SetLookupTable(m_pColours);
mapper->SetColorModeToMapScalars();
mapper->ImmediateModeRenderingOn();
mapper->InterpolateScalarsBeforeMappingOn();
mapper->SetResolveCoincidentTopologyPolygonOffsetParameters(1, 1);
mapper->ReleaseDataFlagOn();

//vtkSmartPointer<vtkActor> streamLineActor = vtkSmartPointer<vtkActor>::New();
m_streamLineActor = vtkSmartPointer<vtkActor>::New();
m_streamLineActor->SetMapper(mapper);
m_streamLineActor->VisibilityOn();



vtkSmartPointer<vtkRuledSurfaceFilter> asurface = vtkSmartPointer<vtkRuledSurfaceFilter>::New();
asurface->SetInput(m_streamer->GetOutput());
asurface->SetOffset(0);
asurface->SetOnRatio(4);
//asurface->PassLinesOn();
asurface->SetRuledModeToPointWalk();
asurface->SetDistanceFactor(0);


AddActorToViewProp(m_streamLineActor);

}

but it give me wrong results

I would be grateful if anyone can help me

Thanks!