<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Greetings all,<br>
<br>
Pleaser refer to image at:<br>
<a class="moz-txt-link-freetext" href="http://i54.tinypic.com/qssjtv.jpg">http://i54.tinypic.com/qssjtv.jpg</a><br>
<br>
As seen in the image,I have my own Data structure to store cellborders
(contours).<br>
*One slice of MRC image has one RzTrunk.<br>
*RzTrunk has many RzCurve s.<br>
*RzCurve consists of RzNode s.<br>
<br>
I&nbsp; want to create VTK Polygon for a RzTrunk.<br>
I did sample implementation as follows,but it crash at the line<br>
"vtkCurve-&gt;GetPointIds()-&gt;SetId(ccount,ncount);"<br>
<br>
with the error message :<br>
<br>
<i>0x00007fc701928737 in vtkIdList::SetId (this=0x2c1e660, i=0,
vtkid=0) at /usr/local/include/vtk-5.6/vtkIdList.h:53<br>
53&nbsp;&nbsp; &nbsp;&nbsp; void SetId(const vtkIdType i, const vtkIdType vtkid)
{this-&gt;Ids[i] = vtkid;};<br>
(gdb) back<br>
#0&nbsp; 0x00007fc701928737 in vtkIdList::SetId (this=0x2c1e660, i=0,
vtkid=0) at /usr/local/include/vtk-5.6/vtkIdList.h:53</i><br>
<br>
Any assistance would be greatly appreciated.<br>
<br>
<br>
<br>
<br>
&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkCellArray&gt;
vtkCurves=vtkSmartPointer&lt;vtkCellArray&gt;::New();<br>
&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkPoints&gt;
vtkCrvPoints=vtkSmartPointer&lt;vtkPoints&gt;::New();<br>
<br>
&nbsp;&nbsp; &nbsp;//Get trunk<br>
&nbsp;&nbsp; &nbsp;<br>
&nbsp;&nbsp; &nbsp;RzTrunk *trnk=contourStack-&gt;getTrunk(i);<br>
<br>
<br>
&nbsp;&nbsp; &nbsp;//Each Curve in trunk<br>
&nbsp;&nbsp; &nbsp;int ncount=0;<br>
&nbsp;&nbsp; &nbsp;for(int c=0;c&lt;1;c++)<br>
&nbsp;&nbsp; &nbsp;{<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//vtk stuff<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkPolygon&gt;
vtkCurve=vtkSmartPointer&lt;vtkPolygon&gt;::New();<br>
<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;RzCurve *crv=trnk-&gt;getCurves().at(c);<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//Process RzNodes <br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;RzNode *tmp,*node=crv-&gt;getHeadNode();<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;tmp=node;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;int ccount=0;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//Process the Linked list<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;while(tmp-&gt;getNextNode()!=crv-&gt;getHeadNode()){<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//Process Node<br>
<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//VTK: to VTK points<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
&nbsp;vtkCrvPoints-&gt;InsertNextPoint(tmp-&gt;getX(),tmp-&gt;getY(),0.0);<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//VTK: add vertex to vtkCurve<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;vtkCurve-&gt;GetPointIds()-&gt;SetId(ccount,ncount);
//Crash Here!!!!!<br>
<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;tmp=tmp-&gt;getNextNode();<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ccount++;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ncount++;<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;//VTK : Add curve to Cell Array<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;vtkCurves-&gt;InsertNextCell(vtkCurve);<br>
&nbsp;&nbsp; &nbsp;}<br>
<br>
&nbsp;&nbsp; &nbsp;<br>
&nbsp;&nbsp; &nbsp;//vtk PolyData object<br>
&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkPolyData&gt;
polyData=vtkSmartPointer&lt;vtkPolyData&gt;::New();<br>
&nbsp;&nbsp; &nbsp;polyData-&gt;SetPoints(vtkCrvPoints);<br>
&nbsp;&nbsp; &nbsp;polyData-&gt;SetPolys(vtkCurves);<br>
<br>
&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkXMLPolyDataWriter&gt; writer =
vtkSmartPointer&lt;vtkXMLPolyDataWriter&gt;::New();<br>
&nbsp;&nbsp; &nbsp;writer-&gt;SetFileName ( "c:\\Triangle.vtp" );<br>
&nbsp;&nbsp; &nbsp;writer-&gt;SetInput ( polyData );<br>
&nbsp;&nbsp; &nbsp;writer-&gt;Write();<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>