that assumes that the polyhedron can be tetrahedralized - the face-based approach is more robust.  in practice it is better to assume that arbitrary polyhedra cannot be triangulated, and that the tets you get back will not actually represent the original polyhedron, especially ones with nonconvex faces.  I guess it all depends on how accurate you need the volumes to be.<div>
Jeff<br><br><div class="gmail_quote">On Tue, Jun 12, 2012 at 10:14 AM, Andrew Parker <span dir="ltr">&lt;<a href="mailto:andy.john.parker@googlemail.com" target="_blank">andy.john.parker@googlemail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>I knew I&#39;d done this before, but that&#39;s because I was working inside paraview directly.  Frustrating this is not available in pure vtk:</div>
<div><br></div><div><a href="http://www.paraview.org/ParaView3/Doc/Nightly/html/classvtkCellIntegrator.html" target="_blank">http://www.paraview.org/ParaView3/Doc/Nightly/html/classvtkCellIntegrator.html</a>
</div><div><br></div><div>Andy</div><div class="HOEnZb"><div class="h5"><div><br></div><div><div><br><div class="gmail_quote">On 12 June 2012 14:43, Jeff Lee <span dir="ltr">&lt;<a href="mailto:jlee1549@gmail.com" target="_blank">jlee1549@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
its kind of the cost of doing business with arbitrary polyhedra, either you triangulate or it is done internally.  your workflow is dealing with data in vtk format, i.e. cells which may be more tedious/inefficient to process than with data stored in a face-based datastructure.  even commercial codes need to make assumptions about the face shape - either by ear-cut triangulation or spoking to the face centroid.  it is an expensive operation either way. it sounds like you are on the right track though, and perhaps you could contribute whatever you come up with.<div>



Best,<div><div><br><div>Jeff<br><br><div class="gmail_quote">On Tue, Jun 12, 2012 at 9:29 AM, Andrew Parker <span dir="ltr">&lt;<a href="mailto:andy.john.parker@googlemail.com" target="_blank">andy.john.parker@googlemail.com</a>&gt;</span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yes this is for an entire mesh.  The faces are non-triangular.  The point I was making/asking was for a method to do this within vtk, without having to pre-process my mesh.  If there is polyhedral support it would be nice if that support extended to basic metrics of a polyhedral. <div>




<br></div><div>So to be clear my work flow needs to be the following.  Read in very large unstructured arbitrary shaped polyhedral mesh; loop over mesh; extract each cell; triangular each face of the cell; pass this to vtkmassproperties; get the cell volume; repeat.</div>




<div><br></div><div>I would hate to think how many people are having to reproduce code like this for basic metrics of a polyhedral mesh that is said to be supported.....</div><div><br></div><div>Cheers,</div><div>Andy<div>



<div><br>
<br><div class="gmail_quote">On 12 June 2012 14:20, Jeff Lee <span dir="ltr">&lt;<a href="mailto:jlee1549@gmail.com" target="_blank">jlee1549@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




You usually have to triangulate the polyhedron faces anyways because the they will likely be nonplanar, nonconvex, etc.  You could either steal the code in vtkMassProperties which computes the volume on the triangle set, or convert to triangles and use an internal instance of vtkMassProperties - I would probably opt for the former, but it depends on whether you are doing a one-off or trying to compute volumes for an entire mesh.<div>




<div><br>
<br><div class="gmail_quote">On Tue, Jun 12, 2012 at 9:05 AM, Andrew Parker <span dir="ltr">&lt;<a href="mailto:andy.john.parker@googlemail.com" target="_blank">andy.john.parker@googlemail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





I would have used it except this put me off in the docs:<div><br></div><div>&quot;
<a href="http://www.vtk.org/doc/nightly/html/classvtkMassProperties.html" title="estimate volume, area, shape index of triangle mesh" style="line-height:16px;color:rgb(70,101,162);font-size:13px;font-family:&#39;Lucida Grande&#39;,Verdana,Geneva,Arial,sans-serif;text-decoration:none;font-weight:bold" target="_blank">vtkMassProperties</a><span style="line-height:16px;font-size:13px;font-family:&#39;Lucida Grande&#39;,Verdana,Geneva,Arial,sans-serif"> estimates the volume, the surface area, and the normalized shape index of a triangle mesh.</span> &quot;<div>





<div><br>
<br><div class="gmail_quote">On 12 June 2012 13:56, Jeff Lee <span dir="ltr">&lt;<a href="mailto:jlee1549@gmail.com" target="_blank">jlee1549@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">






did you look at vtkMassProperties?  it uses divergence theorem to compute volume which is face based and works on arbitrary polyhedra.<div><span><font color="#888888">Jeff</font></span><div><div>
<br><br><div class="gmail_quote">On Tue, Jun 12, 2012 at 8:48 AM, Andrew Parker <span dir="ltr">&lt;<a href="mailto:andy.john.parker@googlemail.com" target="_blank">andy.john.parker@googlemail.com</a>&gt;</span> wrote:<br>








<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<div><br></div><div>Many thanks, yes, linear only but an arbitrary number of faces.  I would have bet there was another way of doing this, and that I&#39;ve used it, I just can&#39;t remember how I did it. </div>








<div><br>
</div><div>Do you not think it&#39;s rather odd there is a lack of support for simple metrics like this given an arbitrary polyhedra?  One needs only the faces and nodes.  Under the assumption each face is planer then this sort of thing is quite easy, and would at least make the vtk support for this for type of metric with planer faces much more applicable to a significantly larger number of users.  See the following as a good example which is used in CFD and has been for many years:</div>









<div><br></div><div><a href="http://www.public.iastate.edu/~zjw/papers/1999-AIAAJ.pdf" target="_blank">http://www.public.iastate.edu/~zjw/papers/1999-AIAAJ.pdf</a> </div><div><br></div><div>I appreciate in the non-planer case something else needs to be done, but all of this could be hidden behind a wrapper class that provides metrics regardless of cell type.  If this is indeed in vtk and anybody can point me to it then that would be really helpful.</div>









<div><br></div><div>Cheers,</div><div>Andy<div><div><br><br><div class="gmail_quote">On 12 June 2012 12:59, Jochen K. <span dir="ltr">&lt;<a href="mailto:jochen.kling@email.de" target="_blank">jochen.kling@email.de</a>&gt;</span> wrote:<br>









<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Andy,<br>
<br>
do you address only linear elements with arbitrary polyhedrons?<br>
Or should support be given to quadratic, biquadratic, triquadratic and even<br>
convexPointSets elements too?<br>
<br>
In any case all cells must be traversed, right?<br>
<br>
While traversing all cells I would check the celltype and store the cellid<br>
(for cell assignment of the calculated volume later on).<br>
<br>
If the current cell is a primitve type like tetrahedron etc. calculate the<br>
volume and traverse next cell.<br>
<br>
In case it&#39;s a more complicated element I would tetrahedralize it, and sum<br>
up the volume of each given tetrahedron.<br>
<br>
That&#39;s it.<br>
<br>
If the grid consists of a lot of nonlinear elements the result will probably<br>
deviate a bit from the correct value. The questionis how exactly you want<br>
the result to be.<br>
<br>
For a cross-check I would apply a surfacefilter to the whole grid,<br>
tetrahedralize it, and sum up the tetrahedron volumes.<br>
Then compare the volume of both approaches. They should be more or less<br>
identical.<br>
<br>
<br>
with best regards<br>
Jochen<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://vtk.1045678.n5.nabble.com/Polyhedral-volume-computation-tp5713778p5713792.html" target="_blank">http://vtk.1045678.n5.nabble.com/Polyhedral-volume-computation-tp5713778p5713792.html</a><br>










Sent from the VTK - Users mailing list archive at Nabble.com.<br>
_______________________________________________<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/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_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/listinfo/vtkusers</a><br>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br><p>__________________________________</p><p>   Dr Andrew Parker</p><p>   <a href="mailto:Em@il" target="_blank">Em@il</a>:  <a href="mailto:andrew.parker@cantab.net" target="_blank">andrew.parker@cantab.net</a></p>









<br>
</font></span></div>
<br>_______________________________________________<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/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_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/listinfo/vtkusers</a><br>
<br></blockquote></div><br>
</div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><p>__________________________________</p><p>   Dr Andrew Parker</p><p>   <a href="mailto:Em@il" target="_blank">Em@il</a>:  <a href="mailto:andrew.parker@cantab.net" target="_blank">andrew.parker@cantab.net</a></p>






<br>
</div></div></div>
</blockquote></div><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><p>__________________________________</p><p>   Dr Andrew Parker</p><p>   <a href="mailto:Em@il" target="_blank">Em@il</a>:  <a href="mailto:andrew.parker@cantab.net" target="_blank">andrew.parker@cantab.net</a></p>




<br>
</div></div></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><p>__________________________________</p><p>   Dr Andrew Parker</p><p>   <a href="mailto:Em@il" target="_blank">Em@il</a>:  <a href="mailto:andrew.parker@cantab.net" target="_blank">andrew.parker@cantab.net</a></p>


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