# Find the Volume Enclosed by Terrain and a Certain Sea Level

I have a terrain, which is represented by one mesh with a lot of polygons as shown below:

This terrain will be cut by a plane at a certain level. So there are volumes of the terrains that are located above the plane ( cut volume), and volumes that are located below the plane ( fill volume).

The question is, how do I obtain the cut/ fill volume? My current approach is simply take one mesh at a time, and then form a tetrahedron with the plane, and compute the volume. But this is slow. Is there other better approach?

One approach that I have in mind, is to try to form Bezier surface for the terrain, and then try to use integration to compute the volume. But I don't know how to proceed with this. Any idea?

Edit: Terminology updated

-
I'd first start by figuring out what interpolating function(s) were used to create that mesh. – J. M. Sep 17 '10 at 7:35
@J.M., no interpolation function were used; they were obtained from field survey, or at least this is the assumption I have to make. – Graviton Sep 17 '10 at 7:38
Ah, so you have an array of coordinate triples as data? Then Bézier isn't what you want (that would be within the data as the convex hull, not interpolate through it). Would there be sharp bumps/peaks/valleys in the data you have? – J. M. Sep 17 '10 at 8:08
@J.M., there will be. But if Bezier surface is not a good choice, why is it not a good choice? And is there any other alternatives that I can use? – Graviton Sep 17 '10 at 10:45
As I said, Bézier treats your data as a convex hull instead of points to interpolate. Bicubic interpolation is standard fare, but without seeing what the data looks like, I don't want to give a definite recommendation. – J. M. Sep 17 '10 at 10:52