<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>You should know the type of your cells, for example, the vertex
type in your example. Then you can use GetVerts() to access the cell array. you
will be able to traverse the cell array to access each point associated with
the cells. You can access other types of cells using GetLines(), GetPolys(),
etc. Please read the document.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>-Jinzhong<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> da xu
[mailto:remywendy@gmail.com] <br>
<b>Sent:</b> Thursday, August 13, 2009 10:38 AM<br>
<b>To:</b> Yang, Jinzhong; vtkusers@vtk.org<br>
<b>Subject:</b> Re: [vtkusers] vtkPolyData RemoveDeletedCells() reorders
vtkIdType cellid, so my indexes to them are no longer correct.<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-bottom:12.0pt'>Thanks Jinzhong.<br>
<br>
Do you know of any way to have a pointer to these cells so that I can access
them after a call to RemoveDeleteCells(), instead of remembering them by their
indices, since they get rearranged.<br>
<br>
-Will<o:p></o:p></p>

<div>

<p class=MsoNormal>On Thu, Aug 13, 2009 at 7:33 AM, Yang, Jinzhong &lt;<a
href="mailto:jinzhong76@gmail.com">jinzhong76@gmail.com</a>&gt; wrote:<o:p></o:p></p>

<div>

<div>

<p><span style='font-size:11.0pt;color:#1F497D'>The cells in vtkPolyData is
stored as an array of int. Once you call RemoveDeleteCells(), the array will be
rearranged and compacted to release unused memory. If you want to keep the
original indices, the easiest way is &nbsp;not to call RemoveDeleteCells() and
just mark those cells as deleted.</span><o:p></o:p></p>

<p><span style='font-size:11.0pt;color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<p><span style='font-size:11.0pt;color:#1F497D'>-Jinzhong</span><o:p></o:p></p>

<p><span style='font-size:11.0pt;color:#1F497D'>&nbsp;</span><o:p></o:p></p>

<div style='border:none;border-top:solid windowtext 1.0pt;padding:3.0pt 0in 0in 0in;
border-color:-moz-use-text-color -moz-use-text-color'>

<p><b><span style='font-size:10.0pt'>From:</span></b><span style='font-size:
10.0pt'> <a href="mailto:vtkusers-bounces@vtk.org" target="_blank">vtkusers-bounces@vtk.org</a>
[mailto:<a href="mailto:vtkusers-bounces@vtk.org" target="_blank">vtkusers-bounces@vtk.org</a>]
<b>On Behalf Of </b>da xu<br>
<b>Sent:</b> Wednesday, August 12, 2009 8:04 PM<br>
<b>To:</b> <a href="mailto:vtkusers@vtk.org" target="_blank">vtkusers@vtk.org</a><br>
<b>Subject:</b> [vtkusers] vtkPolyData RemoveDeletedCells() reorders vtkIdType
cellid, so my indexes to them are no longer correct.</span><o:p></o:p></p>

</div>

<div>

<div>

<p>&nbsp;<o:p></o:p></p>

<p style='margin-bottom:12.0pt'>Hi all,<br>
I have some cells in a vtkPolyData where I also have a std::list of their index
in my program. Sometimes, I want to delete some of these cells, but when I call
RemoveDeletedCells the cells in my vtkPolyData get re-ordered, so my std::list
index to them are no longer correct. <br>
<br>
My question is there another way to keep track of which cell is which cell if I
do call RemoveDeletedCells and get rid of some of them? Such as a pointer to
each cell within my vtkPolyData...<br>
<br>
Relevant code below:<br>
<br>
pointArray is of vtkPoints<br>
cellArray is of vtkCellArray<br>
<br>
I keep a list of actorIndex to refer to each cell. (each cell is basically just
the point i want to display on the render window). So when I delete actorIndex
10, the old actorIndex 11 becomes 10, and when I try to delete 11 I get an
error....<br>
<br>
AddPoint(double pt[3]) {<br>
<br>
&nbsp;&nbsp;&nbsp; int actorIndex = pointArray-&gt;InsertNextPoint(pt);<br>
&nbsp;&nbsp;&nbsp; polyData-&gt;SetPoints(pointArray);<br>
<br>
&nbsp;&nbsp;&nbsp; int n = pointArray-&gt;GetNumberOfPoints() - 1; // Subtract
one for the correct array index<br>
&nbsp;&nbsp;&nbsp; cellArray-&gt;InsertNextCell(1, &amp;n);<br>
<br>
&nbsp;&nbsp;&nbsp; polyData-&gt;SetVerts(cellArray);<br>
&nbsp;&nbsp;&nbsp; if (n==0) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; polyMapper-&gt;SetInput(polyData);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; actor-&gt;SetMapper(polyMapper);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
actor-&gt;GetProperty()-&gt;SetRepresentationToPoints();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; renderer-&gt;AddActor(actor);<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; polyData-&gt;Modified();<br>
...<br>
<br>
Any help/clue/pointer is appreciated! <br>
<br>
-Will<o:p></o:p></p>

</div>

</div>

</div>

</div>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>