Henrik,<br><br>That&#39;s not a similar problem. A polygon is a surface, discretized with triangles. For a non-convex polygon, the triangles have to be filtered before rendering, to correct their orientation I guess.<br><br>
Your grid is volumetric. There is no triangle to filter. I don&#39;t know how to visualise your grid inside. And I&#39;m not sure you want to see all these lines. <br><br>A TubeFilter generates a surface around a line. There is nothing inside. You can cap both ends. But you can only see the exterior surface because their is no volume. <br>
<br>Marie-Gabrielle Vallet<br><br><div class="gmail_quote">2008/6/4 Henrik Westerberg &lt;<a href="mailto:henrik.westerberg@crg.es">henrik.westerberg@crg.es</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">







<div>

<br>

<p><font size="2">Hello vtkusers,<br>
<br>
I have been having a similar problem rendering a cube made up of four smaller cubes.<br>
<br>
I would like to be able to visualise the interior nodes but they disappear<br>
depending on the degree of the vertex. I have included a sample screen shot.<br>
<br>
What I want to eventually do is extract the edges to a TubeFilter and color<br>
the tubes depending on some scalar values, but I always only get the exterior<br>
lines.<br>
<br>
Also I will eventually need to visualise tetrahedra within a surface.<br>
<br>
My current pipeline looks like:<br>
<br>
reader = vtkUnstructuredGridReader()<br>
reader.SetFileName(uginput)<br>
<br>
geoFil = new vtkGeometryFilter()<br>
geoFil.SetInput(reader.GetOutput())<br>
<br>
triFil = new vtkTriangleFilter()<br>
triFil.SetInput(geoFil.GetOutput())<br>
<br>
gridMapper = vtkDataSetMapper()<br>
gridMapper.SetInput(triFil.GetOutput())<br>
<br>
gridActor = vtkActor()<br>
gridActor.SetMapper(gridMapper)<br>
<br>
thanks for your time,<br><font color="#888888">
<br>
Henrik</font><div><div></div><div class="Wj3C7c"><br>
<br>
<br>
-----Original Message-----<br>
From: <a href="mailto:vtkusers-bounces@vtk.org" target="_blank">vtkusers-bounces@vtk.org</a> on behalf of Marie-Gabrielle Vallet<br>
Sent: Fri 5/30/2008 9:21 PM<br>
To: <a href="mailto:briand@aracnet.com" target="_blank">briand@aracnet.com</a><br>
Cc: <a href="mailto:vtkusers@vtk.org" target="_blank">vtkusers@vtk.org</a><br>
Subject: Re: [vtkusers] best way to represent a (planar) irregular polygon ?<br>
<br>
Hi Brian,<br>
I remember having some problem to render a non-convex polygon. I found an<br>
example, I can&#39;t find again where it comes from, and I worked on it. Finally<br>
the following python script does what you want.<br>
<br>
You should try to add two filters : a GeometryFilter and a TriangleFilter.<br>
Marie-Gabrielle<br>
<br>
&nbsp;#!/usr/bin/env python<br>
<br>
&nbsp;# This example shows how to visualize polygons, convex or not.<br>
<br>
&nbsp;import vtk<br>
<br>
&nbsp;# Define a set of points - these are the ordered polygon vertices<br>
&nbsp;polygonPoints = vtk.vtkPoints()<br>
&nbsp;polygonPoints.SetNumberOfPoints(6)<br>
&nbsp;polygonPoints.InsertPoint(0, 0, 0, 0)<br>
&nbsp;polygonPoints.InsertPoint(1,.4,.4, 0)<br>
&nbsp;polygonPoints.InsertPoint(2, 1, 0, 0)<br>
&nbsp;polygonPoints.InsertPoint(3, 1, 1, 0)<br>
&nbsp;polygonPoints.InsertPoint(4,.1,.7, 0)<br>
&nbsp;polygonPoints.InsertPoint(5, 0, 1, 0)<br>
<br>
&nbsp;# Make a cell with these points<br>
&nbsp;aPolygon = vtk.vtkPolygon()<br>
&nbsp;aPolygon.GetPointIds().SetNumberOfIds(6)<br>
&nbsp;aPolygon.GetPointIds().SetId(0, 0)<br>
&nbsp;aPolygon.GetPointIds().SetId(1, 1)<br>
&nbsp;aPolygon.GetPointIds().SetId(2, 2)<br>
&nbsp;aPolygon.GetPointIds().SetId(3, 3)<br>
&nbsp;aPolygon.GetPointIds().SetId(4, 4)<br>
&nbsp;aPolygon.GetPointIds().SetId(5, 5)<br>
<br>
&nbsp;# The cell is put into a mesh (containing only one cell)<br>
&nbsp;aPolygonGrid = vtk.vtkUnstructuredGrid()<br>
&nbsp;aPolygonGrid.Allocate(1, 1)<br>
&nbsp;aPolygonGrid.InsertNextCell(aPolygon.GetCellType(), aPolygon.GetPointIds())<br>
&nbsp;aPolygonGrid.SetPoints(polygonPoints)<br>
<br>
&nbsp;# This part is needed for non-convex polygon rendering<br>
&nbsp;aPolygonGeomFilter = vtk.vtkGeometryFilter()<br>
&nbsp;aPolygonGeomFilter.SetInput(aPolygonGrid)<br>
&nbsp;aPolygonTriangleFilter = vtk.vtkTriangleFilter()<br>
&nbsp;aPolygonTriangleFilter.SetInput(aPolygonGeomFilter.GetOutput())<br>
&nbsp;#<br>
&nbsp;# This one is only to check the triangulation (when factor &lt; 1)<br>
&nbsp;aPolygonShrinkFilter = vtk.vtkShrinkFilter()<br>
&nbsp;aPolygonShrinkFilter.SetShrinkFactor( 0.9 )<br>
&nbsp;#aPolygonShrinkFilter.SetShrinkFactor( 1.0 )<br>
&nbsp;aPolygonShrinkFilter.SetInput( aPolygonGrid)<br>
<br>
&nbsp;# Make ready for rendering<br>
&nbsp;aPolygonMapper = vtk.vtkDataSetMapper()<br>
&nbsp;aPolygonMapper.SetInput(aPolygonShrinkFilter.GetOutput())<br>
&nbsp;aPolygonActor = vtk.vtkActor()<br>
&nbsp;aPolygonActor.SetMapper(aPolygonMapper)<br>
&nbsp;aPolygonActor.GetProperty().SetDiffuseColor(1, .4, .5)<br>
<br>
&nbsp;# Create the usual rendering stuff.<br>
&nbsp;ren = vtk.vtkRenderer()<br>
&nbsp;renWin = vtk.vtkRenderWindow()<br>
&nbsp;renWin.AddRenderer(ren)<br>
&nbsp;renWin.SetSize(300, 150)<br>
&nbsp;iren = vtk.vtkRenderWindowInteractor()<br>
&nbsp;iren.SetRenderWindow(renWin)<br>
<br>
&nbsp;ren.SetBackground(.1, .2, .4)<br>
&nbsp;ren.AddActor(aPolygonActor)<br>
&nbsp;ren.ResetCamera()<br>
<br>
&nbsp;# Render the scene and start interaction.<br>
&nbsp;iren.Initialize()<br>
&nbsp;renWin.Render()<br>
&nbsp;iren.Start()<br>
<br>
<br>
<br>
</div></div></font>
</p>

</div>
</blockquote></div><br>