[Bf-blender-cvs] [c44f489] master: Fix for clamping large UV coords in UV-panel

Campbell Barton noreply at git.blender.org
Mon Mar 9 05:50:22 CET 2015


Commit: c44f489d24a3075e978a0b4b499371fcb3803670
Author: Campbell Barton
Date:   Mon Mar 9 15:45:21 2015 +1100
Branches: master
https://developer.blender.org/rBc44f489d24a3075e978a0b4b499371fcb3803670

Fix for clamping large UV coords in UV-panel

Would clamp value ranges in UI when outside hard coded range.

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

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

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

diff --git a/source/blender/editors/uvedit/uvedit_buttons.c b/source/blender/editors/uvedit/uvedit_buttons.c
index a15259e..0d8dd23 100644
--- a/source/blender/editors/uvedit/uvedit_buttons.c
+++ b/source/blender/editors/uvedit/uvedit_buttons.c
@@ -141,11 +141,25 @@ static void uvedit_vertex_buttons(const bContext *C, uiBlock *block)
 	em = BKE_editmesh_from_object(obedit);
 
 	if (uvedit_center(scene, em, ima, center)) {
+		float range_xy[2][2] = {
+		    {-10.0f, 10.0f},
+		    {-10.0f, 10.0f},
+		};
+
 		copy_v2_v2(uvedit_old_center, center);
 
+		/* expand UI range by center */
+		CLAMP_MAX(range_xy[0][0], uvedit_old_center[0]);
+		CLAMP_MIN(range_xy[0][1], uvedit_old_center[0]);
+		CLAMP_MAX(range_xy[1][0], uvedit_old_center[1]);
+		CLAMP_MIN(range_xy[1][1], uvedit_old_center[1]);
+
 		if (!(sima->flag & SI_COORDFLOATS)) {
 			uvedit_old_center[0] *= imx;
 			uvedit_old_center[1] *= imy;
+
+			mul_v2_fl(range_xy[0], imx);
+			mul_v2_fl(range_xy[1], imy);
 		}
 
 		if (sima->flag & SI_COORDFLOATS) {
@@ -159,9 +173,9 @@ static void uvedit_vertex_buttons(const bContext *C, uiBlock *block)
 		
 		UI_block_align_begin(block);
 		uiDefButF(block, UI_BTYPE_NUM, B_UVEDIT_VERTEX, IFACE_("X:"), 0, 0, width, UI_UNIT_Y, &uvedit_old_center[0],
-		          -10 * imx, 10.0 * imx, step, digits, "");
+		          UNPACK2(range_xy[0]), step, digits, "");
 		uiDefButF(block, UI_BTYPE_NUM, B_UVEDIT_VERTEX, IFACE_("Y:"), width, 0, width, UI_UNIT_Y, &uvedit_old_center[1],
-		          -10 * imy, 10.0 * imy, step, digits, "");
+		          UNPACK2(range_xy[1]), step, digits, "");
 		UI_block_align_end(block);
 	}
 }




More information about the Bf-blender-cvs mailing list