Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Parborg <darkdefende@gmail.com>2019-09-09 20:41:12 +0300
committerSebastian Parborg <darkdefende@gmail.com>2019-09-09 20:41:12 +0300
commitee9fb174f45d481a5a76522e80bcc9df58e28528 (patch)
tree7bc49fb6f8eb3fea64787ccaedb8f6e82a1f5540 /source/blender/blenkernel/intern/mesh_evaluate.c
parent9f859528e99c0ab4d21154ebb55a008c00a861db (diff)
Added function to calculate the total area of a mesh.
Diffstat (limited to 'source/blender/blenkernel/intern/mesh_evaluate.c')
-rw-r--r--source/blender/blenkernel/intern/mesh_evaluate.c18
1 files changed, 18 insertions, 0 deletions
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)
{