Related to #35452: show warning when unwrapping object with negative scale, same
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Tue, 21 May 2013 10:13:44 +0000 (10:13 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Tue, 21 May 2013 10:13:44 +0000 (10:13 +0000)
as we already do for non-uniform scale.

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

index 0d2f467767a5770af19dabc42bf7dcf4ec061a2c..961893aebeddc254a995a36b2ca06e20b6ddccfa 100644 (file)
@@ -250,7 +250,7 @@ static int PHashSizes[] = {
 };
 
 #define PHASH_hash(ph, item) (((uintptr_t) (item)) % ((unsigned int) (ph)->cursize))
-#define PHASH_edge(v1, v2)   ((v1) ^ (v2))
+#define PHASH_edge(v1, v2)   (((v1) < (v2)) ? ((v1) * 39) ^ ((v2) * 31) : ((v1) * 31) ^ ((v2) * 39))
 
 static PHash *phash_new(PHashLink **list, int sizehint)
 {
index 1a32d9007c9fce130519f23db196f640a5add838..8d7b8dc4e28d3a2893c06782443b530ffee067d7 100644 (file)
@@ -1184,6 +1184,9 @@ static int unwrap_exec(bContext *C, wmOperator *op)
        if (!(fabsf(obsize[0] - obsize[1]) < 1e-4f && fabsf(obsize[1] - obsize[2]) < 1e-4f))
                BKE_report(op->reports, RPT_INFO,
                           "Object has non-uniform scale, unwrap will operate on a non-scaled version of the mesh");
+       else if (is_negative_m4(obedit->obmat))
+               BKE_report(op->reports, RPT_INFO,
+                          "Object has negative scale, unwrap will operate on a non-flipped version of the mesh");
 
        /* remember last method for live unwrap */
        if (RNA_struct_property_is_set(op->ptr, "method"))