Hello, <br><br>I have a code that was suppose to create a set of points, to render them and then compute the elevation-colored points as in the following example <a href="http://www.vtk.org/Wiki/VTK/Examples/Elevation_Filter">http://www.vtk.org/Wiki/VTK/Examples/Elevation_Filter</a>.<br>
Unfortunately, I get a seg fault. I am relatively new to VTK and I am sure that I miss something related to pointers and dynamic allocation...<br><br>my code is:<br><br>#include &lt;vtkPoints.h&gt;<br>#include &lt;vtkCellArray.h&gt;<br>
#include &lt;vtkPointData.h&gt;<br>#include &lt;vtkPolyData.h&gt;<br>#include &lt;vtkPolyDataMapper.h&gt;<br>#include &lt;vtkActor.h&gt;<br>#include &lt;vtkRenderWindow.h&gt;<br>#include &lt;vtkRenderer.h&gt;<br>#include &lt;vtkRenderWindowInteractor.h&gt;<br>
#include &lt;vtkProperty.h&gt;<br>#include &lt;vtkMath.h&gt;<br>#include &lt;vtkDelaunay2D.h&gt;<br>#include &lt;vtkXMLPolyDataWriter.h&gt;<br>#include &lt;vtkLookupTable.h&gt;<br>#include &lt;vtkFloatArray.h&gt;<br>#include &lt;vtkElevationFilter.h&gt;<br>
<br>using namespace std;<br><br>int main(int argc, char *argv[])<br>{<br>  //Create the geometry of a point (the coordinate)<br>  vtkPoints *points = vtkPoints::New();<br>  <br>  //Create the topology of the point (a vertex)<br>
  vtkCellArray *vertices = vtkCellArray::New();<br>  <br>  int i = 0;<br>  int gridSize = 10;<br>  vtkIdType point_id[111];<br>  <br>  for(int x = 0; x &lt; gridSize; x++)<br>  {<br>    for(int y = 0; y &lt; gridSize; y++)<br>
    {<br>      i++;<br>      point_id[i] = points-&gt;InsertNextPoint(x, y, vtkMath::Random(-0.5, 0.5));<br>      vertices-&gt;InsertNextCell ( i, point_id );<br>    }<br>  }<br>  <br>  //Create a polydata object<br>  vtkPolyData *p = vtkPolyData::New();<br>
  p-&gt;SetPoints ( points );<br>  p-&gt;SetVerts ( vertices );<br> <br>  //Create an actor and mapper<br>  vtkPolyDataMapper *mapper = vtkPolyDataMapper::New();<br>  mapper-&gt;SetInput(p);<br> <br>  vtkActor *actor = vtkActor::New();<br>
  actor-&gt;SetMapper(mapper);<br>  actor-&gt;GetProperty()-&gt;SetPointSize(3);<br>  <br>   //Create a renderer, render window, and interactor<br>  vtkRenderer *renderer = vtkRenderer::New();<br>  vtkRenderWindow *renderWindow = vtkRenderWindow::New();<br>
  renderWindow-&gt;AddRenderer(renderer);<br>  vtkRenderWindowInteractor *renderWindowInteractor = vtkRenderWindowInteractor::New();<br>  renderWindowInteractor-&gt;SetRenderWindow(renderWindow);<br> <br>  //Add the actors to the scene<br>
  renderer-&gt;AddActor(actor);<br> <br>  //Render and interact<br>  renderWindow-&gt;Render();<br>  renderWindowInteractor-&gt;Start();<br> <br>  /// /// /// /// /// /// <br>  <br>  //triangulate the grid points<br>  vtkDelaunay2D *delaunay = vtkDelaunay2D::New();<br>
  delaunay-&gt;SetInput(p);<br>  delaunay-&gt;Update();<br>  <br>  vtkElevationFilter *elevationFilter = vtkElevationFilter::New();<br>  elevationFilter-&gt;SetInput(p);<br>  //you could set these z values to the min and max z values of your data to have a more sensibly scaled output<br>
  elevationFilter-&gt;SetLowPoint(0.0, 0.0, -1.0);<br>  elevationFilter-&gt;SetHighPoint(0.0, 0.0, 1.0);<br>  elevationFilter-&gt;Update();<br>  <br>  vtkPolyData* outputPolyData = vtkPolyData::SafeDownCast(elevationFilter-&gt;GetOutput());<br>
 <br>  vtkFloatArray *elevation = vtkFloatArray::SafeDownCast(outputPolyData-&gt;GetPointData()-&gt;GetArray(&quot;Elevation&quot;));<br> <br>  //create the color map<br>  vtkLookupTable *colorLookupTable = vtkLookupTable::New();<br>
  colorLookupTable-&gt;SetTableRange(0, 1);<br>  colorLookupTable-&gt;Build();<br> <br>  //generate the colors for each point based on the color map<br>  vtkUnsignedCharArray *colors = vtkUnsignedCharArray::New();<br>  colors-&gt;SetNumberOfComponents ( 3 );<br>
  colors-&gt;SetName ( &quot;Colors&quot; );<br>  <br>  cout &lt;&lt; &quot;There are &quot; &lt;&lt; outputPolyData-&gt;GetNumberOfPoints() &lt;&lt; &quot; points.&quot; &lt;&lt; vtkstd::endl;<br> <br>  for(int i = 0; i &lt; outputPolyData-&gt;GetNumberOfPoints(); i++)<br>
  {<br>    double val = elevation-&gt;GetValue(i);<br>    cout &lt;&lt; &quot;val: &quot; &lt;&lt; val &lt;&lt; vtkstd::endl;<br> <br>    double dcolor[3];<br>    colorLookupTable-&gt;GetColor(val, dcolor);<br>    cout &lt;&lt; &quot;dcolor: &quot; &lt;&lt; dcolor[0] &lt;&lt; &quot; &quot; &lt;&lt; dcolor[1] &lt;&lt; &quot; &quot; &lt;&lt; dcolor[2] &lt;&lt; vtkstd::endl;<br>
    unsigned char color[3];<br>    for(unsigned int j = 0; j &lt; 3; j++)<br>    {<br>      color[j] = 255 * dcolor[j]/1.0;<br>    }<br>    cout &lt;&lt; &quot;color: &quot; &lt;&lt; (int)color[0] &lt;&lt; &quot; &quot; &lt;&lt; (int)color[1] &lt;&lt; &quot; &quot; &lt;&lt; (int)color[2] &lt;&lt; vtkstd::endl;  <br>
 <br>    colors-&gt;InsertNextTupleValue(color);<br>  }<br> <br>  outputPolyData-&gt;GetPointData()-&gt;AddArray(colors);<br> <br>  //write the output file<br>  vtkXMLPolyDataWriter *writer = vtkXMLPolyDataWriter::New();<br>
  string outputFile = &quot;ef.vtp&quot;;<br>  writer-&gt;SetFileName(outputFile.c_str());<br>  writer-&gt;SetInput(outputPolyData);<br>  writer-&gt;Write();    <br>  <br>  return 0;<br>}<br><br>my gdbrun is:<br><br>#0  0xb7dca274 in vtkDataArrayTemplate&lt;float&gt;::GetTuple () from /usr/local/lib/vtk-5.3/libvtkCommon.so.5.3<br>
#1  0xb7d6cc5a in vtkPoints::GetPoint () from /usr/local/lib/vtk-5.3/libvtkCommon.so.5.3<br>#2  0xb56b260a in vtkPolyData::ComputeBounds () from /usr/local/lib/vtk-5.3/libvtkFiltering.so.5.3<br>#3  0xb55d356e in vtkDataSet::GetBounds () from /usr/local/lib/vtk-5.3/libvtkFiltering.so.5.3<br>
#4  0xb7a448ab in vtkPainterPolyDataMapper::GetBounds () from /usr/local/lib/vtk-5.3/libvtkRendering.so.5.3<br>#5  0xb79921f3 in vtkActor::GetBounds () from /usr/local/lib/vtk-5.3/libvtkRendering.so.5.3<br>#6  0xb7a7413f in vtkRenderer::ComputeVisiblePropBounds () from /usr/local/lib/vtk-5.3/libvtkRendering.so.5.3<br>
#7  0xb7a773dc in vtkRenderer::ResetCamera () from /usr/local/lib/vtk-5.3/libvtkRendering.so.5.3<br>#8  0xb7a87f9e in vtkRenderWindow::DoStereoRender () from /usr/local/lib/vtk-5.3/libvtkRendering.so.5.3<br>#9  0xb7a88505 in vtkRenderWindow::DoFDRender () from /usr/local/lib/vtk-5.3/libvtkRendering.so.5.3<br>
#10 0xb7a88aea in vtkRenderWindow::DoAARender () from /usr/local/lib/vtk-5.3/libvtkRendering.so.5.3<br>#11 0xb7a891fb in vtkRenderWindow::Render () from /usr/local/lib/vtk-5.3/libvtkRendering.so.5.3<br>#12 0xb7b4d02a in vtkXOpenGLRenderWindow::Render () from /usr/local/lib/vtk-5.3/libvtkRendering.so.5.3<br>
#13 0x0806cb75 in main ()<br><br>Can somebody help me ?<br>Thanks.<br><br><br>