In order to compute the surface area of a TopoDS_Face
, in OpenCASCADE, simply use BRepGProp::SurfaceProperties
and call .Mass()
on the resulting GProp_GProps
object:
GProp_GProps gprops; BRepGProp::SurfaceProperties(face, gprops); // Stores results in gprops double area = gprops.Mass();
Alternatively, you can use my OCCUtils library which also also providers a lot of other utility functions:
#include <occutils/Surface.hxx> using namespace OCCUtils; double Surface::Area(const TopoDS_Shape& face);
Example:
#include <occutils/Surface.hxx> using namespace OCCUtils; // ... double area = Surface::Area(myFace); // ...