<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2180" name=GENERATOR></HEAD>
<BODY style="MARGIN: 4px 4px 1px; FONT: 10pt Tahoma">
<DIV>Malcolm,</DIV>
<DIV> </DIV>
<DIV>Thanks for your help, once I figured out some basic vtk'isms your suggestion worked well, albeit roads are sometimes elevated, and/or disappear through my surface (see the below pipeline). Now I need to figure out how to split my road (line segments) into polylines that intersect with my 2D mesh so that the probing produces better results. Does anyone have some hints on how to do this? I was naively thinking of the following:</DIV>
<DIV> </DIV>
<DIV>create an empty 2d polydata set -> call this NEW</DIV>
<DIV>for each 2d line segment in my 2d polydata</DIV>
<DIV> for each line in 3d mesh</DIV>
<DIV> if intersection</DIV>
<DIV> create new line segment</DIV>
<DIV> add new line segment to NEW</DIV>
<DIV> </DIV>
<DIV>Then use NEW with the pipeline below insead of Shape2D:</DIV>
<DIV> </DIV>
<DIV>// get the evalation scalars</DIV>
<DIV> </DIV>
<DIV> float bounds[6];<BR> Mesh3D->GetBounds(bounds);</DIV>
<DIV> vtkElevationFilter *Elevation = vtkElevationFilter::New();<BR> Elevation->SetInput(Mesh3D);<BR> Elevation->SetLowPoint(0,0,bounds[4]);<BR> Elevation->SetHighPoint(0,0,bounds[5]);<BR> Elevation->SetScalarRange(bounds[4], bounds[5]);<BR> Elevation->Update();</DIV>
<DIV> </DIV>
<DIV> // convert our 3d mesh to 2d</DIV>
<DIV> <BR> vtkTransform *Transform = vtkTransform::New();<BR> Transform->Scale(1.0,1.0,0.0);</DIV>
<DIV> </DIV>
<DIV> vtkTransformPolyDataFilter *transFilter = vtkTransformPolyDataFilter::New();<BR> transFilter->SetInput((vtkPolyData *) Elevation->GetOutput());<BR> transFilter->SetTransform(Transform);<BR> transFilter->Update();<BR> <BR> // probe 2d mesh with shape data</DIV>
<DIV> </DIV>
<DIV> vtkProbeFilter *Probe = vtkProbeFilter::New();<BR> Probe->SetInput(Shape2D);<BR> Probe->SetSource(transFilter->GetOutput());<BR> Probe->Update();</DIV>
<DIV> </DIV>
<DIV> // apply the sampled elevation to the overlay</DIV>
<DIV> </DIV>
<DIV> vtkWarpScalar *Warp = vtkWarpScalar::New();<BR> Warp->SetInput(Probe->GetPolyDataOutput());<BR> Warp->SetScaleFactor(1.0);<BR> Warp->Update();<BR></DIV>
<DIV>Ron</DIV>
<DIV> </DIV></BODY></HTML>