2
$\begingroup$

I have an unorganized point cloud with a bunch of 3d points. I use a certain surface reconstruction method to obtain a triangle mesh of the underlying surface. The surface could be closed or not. Can somebody point me out to how I would go about estimating the volume enclosed by such a surface (if its closed). If its not closed, then what would a way to "close" it and get a volume? I would appreciate if somebody could even point out C++ libraries that would help me do this.

$\endgroup$
4
  • 1
    $\begingroup$ This is maybe already answered on StackOverflow. $\endgroup$
    – Libor
    Feb 15, 2013 at 14:43
  • 1
    $\begingroup$ Thanks Libor, that was helpful. Could I keep this question alive to see if I get answers to the second part of my question? The thread mentioned before doesn't deal with surface that are not closed. What are my options in such a case ? $\endgroup$
    – Mustafa
    Feb 15, 2013 at 17:42
  • 2
    $\begingroup$ This is an interesting problem for geometry and graph theory. I am sure there is a simple iterative algorithm for closing the holes or maybe just improvement of your algorithm that does not introduce the holes. I have a feeling the problem can be defined in 2D as well. Posting such problems in simpler and well defined form on math.stackexchange.com helped me a lot several times. $\endgroup$
    – Libor
    Feb 15, 2013 at 18:06
  • 1
    $\begingroup$ If the first part of your question is answered by StackOverflow, link to SO and then remove that part from the question, so this is just about the second part. $\endgroup$
    – endolith
    Apr 3, 2013 at 13:55

2 Answers 2

2
$\begingroup$

This site has both code and theoretical descriptions. Look for items that mention "polyhedral mass properties". They typically live in the "physics" sections of the site.

$\endgroup$
1
$\begingroup$

"Closing" the volume can be done by adding missing surfaces. Project your entire mesh onto the XY plane, assigning the value +1 if the normal of a triangle points away from the XY plane and -1 if it points to the XY plane. If the volume is closed, each part of the projection is covered by an even number of triangles from the mesh; half with value +1 and half with value -1.

If there's a simple single hole in the triangle mesh, there will be a simple single hole in the projection as well. Just trace the edges back. If there are multiple holes, there's generally no unique solution. (You could patch both holes or connect them by a tube).

Since there might be triangles missing orthogonal to the XY plane, you also need to repeat this for the XZ and YZ planes.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.