[Bf-blender-cvs] [1e13733] soc-2016-uv_tools: Implemented a function to compute the area used by UV charts

Phil Gosch noreply at git.blender.org
Tue Jun 21 15:07:57 CEST 2016


Commit: 1e13733b44ffd205c2443daeac567cb3853a9cb0
Author: Phil Gosch
Date:   Tue Jun 21 15:07:15 2016 +0200
Branches: soc-2016-uv_tools
https://developer.blender.org/rB1e13733b44ffd205c2443daeac567cb3853a9cb0

Implemented a function to compute the area used by UV charts

This will be handy when calculating the used/wasted space during packing

===================================================================

M	source/blender/editors/uvedit/uvedit_parametrizer.c

===================================================================

diff --git a/source/blender/editors/uvedit/uvedit_parametrizer.c b/source/blender/editors/uvedit/uvedit_parametrizer.c
index 5e19f84..53652b8 100644
--- a/source/blender/editors/uvedit/uvedit_parametrizer.c
+++ b/source/blender/editors/uvedit/uvedit_parametrizer.c
@@ -425,6 +425,24 @@ static float p_face_uv_area_signed(PFace *f)
 	               ((v3->uv[0] - v1->uv[0]) * (v2->uv[1] - v1->uv[1])));
 }
 
+/* returns the sum of the areas of all charts */
+static float p_face_uv_area_combined(ParamHandle *handle)
+{
+	PHandle *phandle = (PHandle *)handle;
+	PChart *chart;
+	PFace *f;
+	float used_area = 0.0f;
+	int i;
+
+	for (i = 0; i < phandle->ncharts; i++) {
+		for (f = phandle->charts[i]->faces; f; f = f->nextlink) {
+			used_area += fabsf(p_face_uv_area_signed(f));
+		}
+	}
+
+	return used_area;
+}
+
 static float p_edge_length(PEdge *e)
 {
 	PVert *v1 = e->vert, *v2 = e->next->vert;




More information about the Bf-blender-cvs mailing list