<div dir="ltr">It works with these modifications<br><br>1)<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:#c0c0c0"> </span>make_vtkPolyData<span style="color:#000000">()<br>
<br>2)</span><span style="color:#808000">return</span><span style="color:#c0c0c0"> </span><span style="color:#000000">triFilter</span><span style="color:#000000">-></span>GetOutput<span style="color:#000000">();<br><br>
3)</span><span style="color:#000000">complete_model</span><span style="color:#000000">=</span><span style="color:#000000">getvtk</span><span style="color:#000000">.</span>make_vtkPolyData<span style="color:#000000">();<br>
<br>Jothy<br></span><br><br><br><div class="gmail_quote">On Mon, Jul 2, 2012 at 11:28 AM, Alex Southern <span dir="ltr"><<a href="mailto:mrapsouthern@gmail.com" target="_blank">mrapsouthern@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Ive tried numerous things to achieve this but however i do it the result is the same as that produced by the code below. The vtkPolydata complete_model is always empty, despite the line in the class member function, output = triFilter->GetOutput(); containing the correct output vtkPolyData.<br>
<br>
The issue I suspect is related to going out of scope but, no run time errors are being thrown. The render window is just empty.<br>
<br>
Thanks<br>
Alex<br>
<br>
include <vtkSmartPointer.h><br>
#include <vtkActor.h><br>
#include <vtkCubeSource.h><br>
#include <vtkPolyData.h><br>
#include <vtkCellArray.h><br>
#include <vtkPolyDataMapper.h><br>
#include <vtkRenderWindow.h><br>
#include <vtkRenderWindowInteractor.h><br>
#include <vtkRenderer.h><br>
#include <vtkPointData.h><br>
#include <vtkDelaunay2D.h><br>
<br>
using namespace std;<br>
<br>
class getPolyData {<br>
public:<br>
<br>
void make_vtkPolyData(vtkPolyData *output)<br>
{<br>
vtkSmartPointer<vtkPoints> pts = vtkSmartPointer<vtkPoints>::<u></u>New();<br>
vtkSmartPointer<vtkCellArray> cellArray = vtkSmartPointer<vtkCellArray>:<u></u>:New();<br>
vtkSmartPointer<vtkDelaunay2D> triFilter = vtkSmartPointer<vtkDelaunay2D><u></u>::New();<br>
vtkSmartPointer<vtkPolyData> pd1 = vtkSmartPointer<vtkPolyData>::<u></u>New();<br>
<br>
// Generate a concave polygon that is NOT flat (in one plane)<br>
pts->InsertNextPoint( 1.00, 2.48, 0.00 );<br>
pts->InsertNextPoint( 1.00, 0.00, 0.00 );<br>
pts->InsertNextPoint( 1.00, 1.24, 0.29 );<br>
pts->InsertNextPoint( 0.00, 0.00, 0.00 );<br>
pts->InsertNextPoint( 0.00, 2.48, 0.00 );<br>
int p[5] = {0, 1, 2, 3, 4};<br>
cellArray->InsertNextCell(5,p)<u></u>;<br>
<br>
pd1->SetPoints( pts );<br>
pd1->SetPolys( cellArray );<br>
<br>
triFilter->SetInput( pd1 );<br>
triFilter->Update();<br>
output = triFilter->GetOutput();<br>
<br>
<br>
/*writer->SetFileName("g:\\<u></u>testwrite.vtk");<br>
writer->SetFileTypeToASCII();<br>
writer->SetInputConnection( tmp );*/<br>
}<br>
};<br>
<br>
int main()<br>
{<br>
<br>
vtkSmartPointer<vtkPolyData> complete_model = vtkSmartPointer<vtkPolyData>::<u></u>New();<br>
<br>
getPolyData getvtk;<br>
getvtk.make_vtkPolyData( complete_model );<br>
<br>
// Create a renderer, render window, and interactor<br>
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::<u></u>New();<br>
vtkSmartPointer<<u></u>vtkRenderWindow> renderWindow = vtkSmartPointer<<u></u>vtkRenderWindow>::New();<br>
vtkSmartPointer<<u></u>vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<<u></u>vtkRenderWindowInteractor>::<u></u>New();<br>
<br>
renderWindow->AddRenderer(<u></u>renderer);<br>
renderWindowInteractor-><u></u>SetRenderWindow(renderWindow);<br>
<br>
// map filtered data<br>
vtkSmartPointer<<u></u>vtkPolyDataMapper> mapper = vtkSmartPointer<<u></u>vtkPolyDataMapper>::New();<br>
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::<u></u>New();<br>
<br>
mapper->SetInput( complete_model ); // change to pd1 to see bad polygon<br>
actor->SetMapper( mapper );<br>
renderer->AddActor( actor );<br>
<br>
renderer->SetBackground(.5, .1, .1);<br>
<br>
//// Render and interact<br>
renderWindow->Render();<br>
renderWindowInteractor->Start(<u></u>);<br>
<br>
return 0;<br>
}<br>
______________________________<u></u>_________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/<u></u>opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_<u></u>FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/<u></u>listinfo/vtkusers</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div dir="ltr">Jothybasu Selvaraj<br>PhD Student<br>University of Liverpool<br>UK<br></div><br>
</div>