I would like to derive the surface area of a specific region on the surface of polydata. This specific region would be the part of the surface that is visible when viewed from above (in the y-plane) such that overlapping “points” are not considered.

This is the isosurface generated by Marching Cubes:

To illustrate, I have derive this particular top-surface by manipulating the original image stack and use MC to reconstruct the isosurface of the manipulated images (in green):

I can now get the surface area via vtkMassProperties().GetSurfaceArea()/2 of the region.

However, the derivation of the green region by manipulating the image data feels very cumbersome. Therefore I was wondering if anybody would know an appropriate method to get the region of a surface that is visible in the y-plane. Perhaps I would need to clip the object by a complex shaped plane?

I hope my question is clear, thanks in advance!