From ee9fb174f45d481a5a76522e80bcc9df58e28528 Mon Sep 17 00:00:00 2001 From: Sebastian Parborg Date: Mon, 9 Sep 2019 19:41:12 +0200 Subject: Added function to calculate the total area of a mesh. --- source/blender/blenkernel/intern/mesh_evaluate.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'source/blender/blenkernel/intern/mesh_evaluate.c') diff --git a/source/blender/blenkernel/intern/mesh_evaluate.c b/source/blender/blenkernel/intern/mesh_evaluate.c index 38762109167..7a1dcb4a5fd 100644 --- a/source/blender/blenkernel/intern/mesh_evaluate.c +++ b/source/blender/blenkernel/intern/mesh_evaluate.c @@ -2320,6 +2320,24 @@ float BKE_mesh_calc_poly_area(const MPoly *mpoly, const MLoop *loopstart, const } } +float BKE_mesh_calc_area(const Mesh *me) +{ + MVert *mvert = me->mvert; + MLoop *mloop = me->mloop; + MPoly *mpoly = me->mpoly; + + MPoly *mp; + int i = me->totpoly; + float total_area = 0; + + for (mp = mpoly; i--; mp++) { + MLoop *ml_start = &mloop[mp->loopstart]; + + total_area += BKE_mesh_calc_poly_area(mp, ml_start, mvert); + } + return total_area; +} + float BKE_mesh_calc_poly_uv_area(const MPoly *mpoly, const MLoopUV *uv_array) { -- cgit v1.2.3