<div dir="ltr">Hi David,<br><br>I am still not able to fix this issue.<br><br>This is how I create the polydata and other pipeline.<br><br><span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkPoints</span><span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">points</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkPoints</span><span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkCellArray</span><span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">cells</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkCellArray</span><span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">points</span><span style="color:#000000">-></span>SetNumberOfPoints<span style="color:#000000">(</span><span style="color:#000000">npts</span><span style="color:#000000">+</span><span style="color:#000080">1</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">cells</span><span style="color:#000000">-></span>InsertNextCell<span style="color:#000000">(</span><span style="color:#000000">npts</span><span style="color:#000000">+</span><span style="color:#000080">1</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#808000">for</span><span style="color:#000000">(</span><span style="color:#808000">int</span><span style="color:#c0c0c0"> </span><span style="color:#000000">p</span><span style="color:#000000">=</span><span style="color:#000080">0</span><span style="color:#000000">;</span><span style="color:#000000">p</span><span style="color:#000000"><</span><span style="color:#000000">npts</span><span style="color:#000000">;</span><span style="color:#000000">p</span><span style="color:#000000">++)</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">{</span><span style="color:#c0c0c0"> </span><span style="color:#808000"></span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#008000"></span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">points</span><span style="color:#000000">-></span>SetPoint<span style="color:#000000">(</span><span style="color:#c0c0c0"> </span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Xp</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">Yp</span><span style="color:#000000">,</span><span style="color:#000000">Zp</span><span style="color:#c0c0c0"> </span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">cells</span><span style="color:#000000">-></span>InsertCellPoint<span style="color:#000000">(</span><span style="color:#c0c0c0"> </span><span style="color:#000000">p</span><span style="color:#c0c0c0"> </span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">}</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">cells</span><span style="color:#000000">-></span>InsertCellPoint<span style="color:#000000">(</span><span style="color:#000000">npts</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">points</span><span style="color:#000000">-></span>SetPoint<span style="color:#000000">(</span><span style="color:#000000">npts</span><span style="color:#000000">,</span><span style="color:#000000">pts</span><span style="color:#000000">[</span><span style="color:#000080">0</span><span style="color:#000000">],</span><span style="color:#000000">pts</span><span style="color:#000000">[</span><span style="color:#000080">1</span><span style="color:#000000">],</span><span style="color:#000000">pts</span><span style="color:#000000">[</span><span style="color:#000080">2</span><span style="color:#000000">]);//close contour<br>
<br></span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkPolyData</span><span style="color:#000000">></span><span style="color:#000000">polydataContour</span><span style="color:#000000">=</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkPolyData</span><span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">polydataContour</span><span style="color:#000000">-></span><span style="font-style:italic;color:#000000">Initialize</span><span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">polydataContour</span><span style="color:#000000">-></span>SetLines<span style="color:#000000">(</span><span style="color:#000000">cells</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">polydataContour</span><span style="color:#000000">-></span><span style="font-style:italic;color:#000000">SetPoints</span><span style="color:#000000">(</span><span style="color:#000000">points</span><span style="color:rgb(0,0,0)">);<br>
<br>//Here all contours are appended to vtkAppendPolydataFilter<br><br></span><span style="color:#800080"> vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkPolyDataToImageStencil</span><span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">sts</span><span style="color:#000000">=</span>
<span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkPolyDataToImageStencil</span><span style="color:#000000">>::</span>New<span style="color:#000000">();</span>
<span style="color:#c0c0c0"> </span><span style="color:#000000">sts</span><span style="color:#000000">-></span><span style="font-style:italic;color:#000000">SetTolerance</span><span style="color:#000000">(</span><span style="color:#000080">1e-6</span><span style="color:#000000">);</span><span style="color:#008000">//very</span><span style="color:#c0c0c0"> </span><span style="color:#008000">important</span>
<span style="color:#c0c0c0"> </span><span style="color:#000000">sts</span><span style="color:#000000">-></span><span style="font-style:italic;color:#000000">SetInformationInput</span><span style="color:#000000">(</span><span style="color:#000000">binary_image</span><span style="color:#000000">);</span>
<span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkLinearExtrusionFilter</span><span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">extrude</span><span style="color:#000000">=</span>
<span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkLinearExtrusionFilter</span><span style="color:#000000">>::</span>New<span style="color:#000000">();</span><span style="color:#c0c0c0"> </span>
<span style="color:#c0c0c0"> </span><span style="color:#000000">extrude</span><span style="color:#000000">-></span>SetInput<span style="color:#000000">(appender</span><span style="color:#000000">-></span>GetOutput<span style="color:#000000">());</span>
<span style="color:#c0c0c0"> </span><span style="color:#000000">extrude</span><span style="color:#000000">-></span><span style="font-style:italic;color:#000000">CappingOff</span><span style="color:#000000">();</span>//also tried ON
<span style="color:#c0c0c0"> </span><span style="color:#000000">extrude</span><span style="color:#000000">-></span><span style="font-style:italic;color:#000000">SetVector</span><span style="color:#000000">(</span><span style="color:#000080">0</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000080">0</span><span style="color:#000000">,-</span><span style="color:#000000">zSpacing</span><span style="color:#000000">);</span><span style="color:#008000">//Correct</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Z</span><span style="color:#c0c0c0"> </span><span style="color:#008000">spacing</span><span style="color:#c0c0c0"> </span><span style="color:#008000">is</span><span style="color:#c0c0c0"> </span><span style="color:#008000">important</span>
<span style="color:#c0c0c0"> </span><span style="color:#008000">//qDebug()<<-zSpacing<<"-ve</span><span style="color:#c0c0c0"> </span><span style="color:#008000">zSpacing";</span>
<span style="color:#c0c0c0"> </span><span style="color:#000000">sts</span><span style="color:#000000">-></span><span style="font-style:italic;color:#000000">SetInput</span><span style="color:#000000">(</span><span style="color:#000000">extrude</span><span style="color:#000000">-></span>GetOutput<span style="color:#000000">());</span>
<span style="color:#c0c0c0"> </span><span style="color:#008000">//qDebug()<<t->currentTime()<<"Stencil</span><span style="color:#c0c0c0"> </span><span style="color:#008000">start";</span>
<span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkImageStencil</span><span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">stencil</span><span style="color:#000000">=</span>
<span style="color:#c0c0c0"> </span><span style="color:#800080">vtkSmartPointer</span><span style="color:#000000"><</span><span style="color:#800080">vtkImageStencil</span><span style="color:#000000">>::</span>New<span style="color:#000000">();</span>
<span style="color:#c0c0c0"> </span><span style="color:#000000">stencil</span><span style="color:#000000">-></span><span style="font-style:italic;color:#000000">SetStencil</span><span style="color:#000000">(</span><span style="color:#000000">sts</span><span style="color:#000000">-></span>GetOutput<span style="color:#000000">());</span>
<span style="color:#c0c0c0"> </span><span style="color:#000000">stencil</span><span style="color:#000000">-></span>SetInput<span style="color:#000000">(</span><span style="color:#000000">binary_image</span><span style="color:#000000">);</span>
<span style="color:#c0c0c0"> </span><span style="color:#000000">stencil</span><span style="color:#000000">-></span><span style="font-style:italic;color:#000000">ReverseStencilOn</span><span style="color:#000000">();</span>
<span style="color:#c0c0c0"> </span><span style="color:#000000">stencil</span><span style="color:#000000">-></span><span style="font-style:italic;color:#000000">Update</span><span style="color:#000000">();</span><br>
</pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><br></pre>I am able to visualize the contour by setting appendFilter->GetOutput() to a vtkPolyDataMapper.<br><br>Is there any thing wrong.<br>
<br>Thanks very much!<br><br>Jothy<br><br><br><br><div class="gmail_quote">On Tue, Mar 6, 2012 at 3:48 PM, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">You'd have to use SetLines() instead of SetPolys(). And for<br>
polylines, the final point in the polyline has to connect to the first<br>
line to create a closed loop, so polylines cell arrays need an extra<br>
entry as compared to polygon cell arrays.<br>
<div><div></div><div class="h5"><br>
On Tue, Mar 6, 2012 at 8:36 AM, Jothybasu Selvaraj <<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>> wrote:<br>
> I ma creating the polydat per conoutr like this<br>
><br>
> vtkSmartPointer<vtkPolyData>polydataContour=<br>
><br>
> vtkSmartPointer<vtkPolyData>::New();<br>
><br>
> polydataContour->Initialize();<br>
><br>
> polydataContour->SetPolys( cells );//vtkCellArray<br>
><br>
> polydataContour->SetPoints( points);//vtkPoints<br>
><br>
><br>
> How should I do that?<br>
><br>
> Thanks very much<br>
><br>
> Jothy<br>
><br>
><br>
> On Tue, Mar 6, 2012 at 3:31 PM, David Gobbi <<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>> wrote:<br>
>><br>
>> The contours must be polylines, not polygons, or it won't work.<br>
>><br>
>> On Tue, Mar 6, 2012 at 6:29 AM, Jothybasu Selvaraj <<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>><br>
>> wrote:<br>
>> > Yes, I have one contour for each z slice as a vtkPolyData. I will try<br>
>> > removing that.<br>
>> ><br>
>> > Thanks<br>
>> ><br>
>> ><br>
>> > On Tue, Mar 6, 2012 at 1:26 PM, David Gobbi <<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>><br>
>> > wrote:<br>
>> >><br>
>> >> Do you have one contour for each Z slice? If so, then try removing<br>
>> >> the Extrude filter from your pipeline.<br>
>> >><br>
>> >><br>
>> >> On Tue, Mar 6, 2012 at 2:51 AM, Jothybasu Selvaraj<br>
>> >> <<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>><br>
>> >> wrote:<br>
>> >> > Another point here,<br>
>> >> ><br>
>> >> > I am creating a vtkPolyData for each contour and then adding it to<br>
>> >> > the<br>
>> >> > vtkAppendPolydataFilter, then the output of vtkAppenPolydataFilter is<br>
>> >> > set as<br>
>> >> > input to vtkPolydataToImageStencil.<br>
>> >> ><br>
>> >> > Could this make any difference?<br>
>> >> ><br>
>> >> > Thanks<br>
>> >> ><br>
>> >> > Jothy<br>
>> >> ><br>
>> >> ><br>
>> >> > On Mon, Mar 5, 2012 at 7:49 PM, Jothybasu Selvaraj<br>
>> >> > <<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>><br>
>> >> > wrote:<br>
>> >> >><br>
>> >> >> No, it doesn't fix the problem.<br>
>> >> >><br>
>> >> >> But it seems to work fine for contours with z-spacing in steps of<br>
>> >> >> 1mm.<br>
>> >> >><br>
>> >> >> It is working well for a dataset with 3mm spacing but fails for 2.5<br>
>> >> >> mm.<br>
>> >> >><br>
>> >> >> Maybe I need to test it thoroughly. Can I use those cxx and .h from<br>
>> >> >> 5.6<br>
>> >> >> in<br>
>> >> >> 5.8, that would be a easy workaround.<br>
>> >> >><br>
>> >> >> Thanks<br>
>> >> >><br>
>> >> >> Jothy<br>
>> >> >><br>
>> >> >><br>
>> >> >> On Mon, Mar 5, 2012 at 4:01 PM, David Gobbi <<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>><br>
>> >> >> wrote:<br>
>> >> >>><br>
>> >> >>> Hi Jothy,<br>
>> >> >>><br>
>> >> >>> It underwent significant changes, but the only change I can think<br>
>> >> >>> of that might have affected your pipeline is the way that it does<br>
>> >> >>> rounding, it used to use a Floor() method that provided a small<br>
>> >> >>> tolerance even if you did SetTolerance(0). Try calling<br>
>> >> >>> SetTolerance(1e-6) on your PolyDataToImageStencil object, it<br>
>> >> >>> might help.<br>
>> >> >>><br>
>> >> >>> - David<br>
>> >> >>><br>
>> >> >>> On Mon, Mar 5, 2012 at 3:17 AM, Jothybasu Selvaraj<br>
>> >> >>> <<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>><br>
>> >> >>> wrote:<br>
>> >> >>> > Hi all,<br>
>> >> >>> ><br>
>> >> >>> > I was able to create a mesh using the following pipeline in 5.6<br>
>> >> >>> > and<br>
>> >> >>> > it<br>
>> >> >>> > worked well<br>
>> >> >>> ><br>
>> >> >>> ><br>
>> >> >>> ><br>
>> >> >>> ><br>
>> >> >>> > vtkPolyDataToImageStencil->vtkLinearExtrusionFilter->vtkImageStencil->vtkDiscreteMarchingCubes<br>
>> >> >>> ><br>
>> >> >>> > Now, I have updated vtk to 5.8 and I am getting gaps in the mesh<br>
>> >> >>> > along<br>
>> >> >>> > the z<br>
>> >> >>> > axis. I am really puzzled, I have tried with different data sets<br>
>> >> >>> > as<br>
>> >> >>> > well.<br>
>> >> >>> ><br>
>> >> >>> > I have read somewhere that vtkPolyDataToImageStencil had some<br>
>> >> >>> > changes<br>
>> >> >>> > in<br>
>> >> >>> > 5.8, does it has anything to do with this problem, or am I doing<br>
>> >> >>> > anything wrong?<br>
>> >> >>> ><br>
>> >> >>> > I have contours of constant z-spacing.<br>
>> >> >>> ><br>
>> >> >>> > Any hints?<br>
>> >> >>> ><br>
>> >> >>> > Thanks<br>
>> >> >>> ><br>
>> >> >>> > --<br>
>> >> >>> > Jothy<br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >><br>
>> >> >> --<br>
>> >> >> Jothy<br>
>> >> >><br>
>> >> ><br>
>> >> ><br>
>> >> ><br>
>> >> > --<br>
>> >> > Jothy<br>
>> >> ><br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> > --<br>
>> > Jothy<br>
>> ><br>
><br>
><br>
><br>
><br>
> --<br>
> Jothy<br>
><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div dir="ltr">Jothy<br></div><br>
</div>