<div dir="ltr"><div><div>Dear David,<br><br></div>Thank you for your reply. Unfortunately I am apparently doing something wrong setting up the contour triangulation.<br><br></div>For very simple 1-polygon example I have 1 polygon p_1 defined over subset of points vtk_points. I first create vtkPolygon, then vtkCellArray, then vtkPolyData, feed it to vtkContourTriangulator and call Update. The result is apparently empty vtkCellArray?<br><div><br>      vtkSmartPointer<vtkPolygon> poly = vtkSmartPointer<vtkPolygon>::New();<br>      for(size_t v = 0; v < p_1.size(); ++v)<br>      {<br>        poly->GetPointIds()->InsertNextId(p_1[v]);<br>      }<br><br>      vtkSmartPointer<vtkCellArray> cell_array =  vtkSmartPointer<vtkCellArray>::New();<br>      cell_array->InsertNextCell(poly);<br><br>      vtkSmartPointer<vtkPolyData> boundary = vtkSmartPointer<vtkPolyData>::New();<br>      boundary->SetPoints(vtk_points);<br>      boundary->SetPolys(cell_array);<br><br>      vtkSmartPointer<vtkContourTriangulator> tri_filter =<br>                     vtkSmartPointer<vtkContourTriangulator>::New();<br>      tri_filter->SetInputData(boundary);<br>      tri_filter->Update();<br>      cout << "After triangulation I got "  << tri_filter->GetOutput()->GetNumberOfCells()  << " cells\n";<br><br></div><div>Could you tell me what can be possibly wrong here?<br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 11 May 2015 at 13:36, David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">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"><div dir="ltr">Hi Artem,<div><br></div><div>You can try using vtkContourTriangulator, it only uses the connected points for the triangulation and it works in any orientation:</div><div><a href="http://www.vtk.org/doc/nightly/html/classvtkContourTriangulator.html#details" target="_blank">http://www.vtk.org/doc/nightly/html/classvtkContourTriangulator.html#details</a></div><div><br></div><div>Delaunay2D also has a method for working in planes other than the XY plane: calling the method SetProjectionPlaneMode(VTK_BEST_FITTING_PLANE) should work, if all of your input points are in the same plane.</div><span class="HOEnZb"><font color="#888888"><div><br></div></font></span><div><span class="HOEnZb"><font color="#888888"> - David</font></span><div><div class="h5"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 11, 2015 at 4:47 AM, Artem Babayan <span dir="ltr"><<a href="mailto:artem.paraview@googlemail.com" target="_blank">artem.paraview@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>Hello,<br><br>I have<br><br>1) vtk_poijnts -- set of 3D points (vtkPoints object) located within the computational 3D box.<br>2) poly_1 -- std::vector<int> -- connected subset of points from 1) representing non-convex polygon on the side of computational box. E.g. in XZ plane.<br>3) poly_hole_1, poly_hole_2 -- 2 subsets of points from 1) each representing possibly non-convex hole in poly_1 from 2).<br><br>How am I visualise it with VTK? <br><br>I assume that as I have holes in polygon the only choice of I have is to use vtkDelaunay2D?<br><br>vtkDelaunay2D apparently uses all points from vtk_points for triangulization, while I need only points from poly_1, poly_hole_1 and poly_hole_2 ?<br><br></div><div>I need to tell somehow vtkDelaunay2D than I want to tesselate in XZ plane rather than in XY plane?<br><br></div><div>Thank you<span><font color="#888888"><br></font></span></div><span><font color="#888888"><div>Artem<br></div></font></span></div></blockquote></div><br></div></div></div></div></div>
</blockquote></div><br></div>