<!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 want to create VTK Polygon for a RzTrunk.<br>
I did sample implementation as follows,but it crash at the line<br>
"vtkCurve->GetPointIds()->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 void SetId(const vtkIdType i, const vtkIdType vtkid)
{this->Ids[i] = vtkid;};<br>
(gdb) back<br>
#0 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>
vtkSmartPointer<vtkCellArray>
vtkCurves=vtkSmartPointer<vtkCellArray>::New();<br>
vtkSmartPointer<vtkPoints>
vtkCrvPoints=vtkSmartPointer<vtkPoints>::New();<br>
<br>
//Get trunk<br>
<br>
RzTrunk *trnk=contourStack->getTrunk(i);<br>
<br>
<br>
//Each Curve in trunk<br>
int ncount=0;<br>
for(int c=0;c<1;c++)<br>
{<br>
//vtk stuff<br>
vtkSmartPointer<vtkPolygon>
vtkCurve=vtkSmartPointer<vtkPolygon>::New();<br>
<br>
RzCurve *crv=trnk->getCurves().at(c);<br>
//Process RzNodes <br>
RzNode *tmp,*node=crv->getHeadNode();<br>
tmp=node;<br>
int ccount=0;<br>
//Process the Linked list<br>
while(tmp->getNextNode()!=crv->getHeadNode()){<br>
//Process Node<br>
<br>
//VTK: to VTK points<br>
vtkCrvPoints->InsertNextPoint(tmp->getX(),tmp->getY(),0.0);<br>
//VTK: add vertex to vtkCurve<br>
vtkCurve->GetPointIds()->SetId(ccount,ncount);
//Crash Here!!!!!<br>
<br>
tmp=tmp->getNextNode();<br>
ccount++;<br>
ncount++;<br>
}<br>
//VTK : Add curve to Cell Array<br>
vtkCurves->InsertNextCell(vtkCurve);<br>
}<br>
<br>
<br>
//vtk PolyData object<br>
vtkSmartPointer<vtkPolyData>
polyData=vtkSmartPointer<vtkPolyData>::New();<br>
polyData->SetPoints(vtkCrvPoints);<br>
polyData->SetPolys(vtkCurves);<br>
<br>
vtkSmartPointer<vtkXMLPolyDataWriter> writer =
vtkSmartPointer<vtkXMLPolyDataWriter>::New();<br>
writer->SetFileName ( "c:\\Triangle.vtp" );<br>
writer->SetInput ( polyData );<br>
writer->Write();<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>