Revision: 49621
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49621
Author:   campbellbarton
Date:     2012-08-06 14:02:03 +0000 (Mon, 06 Aug 2012)
Log Message:
-----------
svn merge ^/trunk/blender -r49601:49620

Revision Links:
--------------
    
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49601

Modified Paths:
--------------
    branches/soc-2011-tomato/intern/string/STR_HashedString.h
    branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_image.py
    branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h
    branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/mask_rasterize.c
    branches/soc-2011-tomato/source/blender/blenlib/intern/stack.c
    branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
    branches/soc-2011-tomato/source/blender/editors/mesh/editmesh_knife.c
    branches/soc-2011-tomato/source/blender/editors/space_image/space_image.c
    branches/soc-2011-tomato/source/blender/editors/space_node/node_edit.c
    branches/soc-2011-tomato/source/blender/editors/space_node/node_group.c
    branches/soc-2011-tomato/source/blender/editors/transform/transform.c
    branches/soc-2011-tomato/source/blender/editors/transform/transform.h
    
branches/soc-2011-tomato/source/blender/editors/transform/transform_conversions.c
    branches/soc-2011-tomato/source/blender/editors/uvedit/uvedit_ops.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_space.c

Property Changed:
----------------
    branches/soc-2011-tomato/
    branches/soc-2011-tomato/source/blender/editors/interface/interface.c
    branches/soc-2011-tomato/source/blender/editors/space_outliner/


Property changes on: branches/soc-2011-tomato
___________________________________________________________________
Modified: svn:mergeinfo
   - 
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-49601
   + 
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-49620

Modified: branches/soc-2011-tomato/intern/string/STR_HashedString.h
===================================================================
--- branches/soc-2011-tomato/intern/string/STR_HashedString.h   2012-08-06 
13:59:11 UTC (rev 49620)
+++ branches/soc-2011-tomato/intern/string/STR_HashedString.h   2012-08-06 
14:02:03 UTC (rev 49621)
@@ -27,14 +27,10 @@
 
 /** \file string/STR_HashedString.h
  *  \ingroup string
- */
-
-
-/**
-
+ *
  * Copyright (C) 2001 NaN Technologies B.V.
  * This file was formerly known as: GEN_StdString.cpp.
- * @date       November, 14, 2001
+ * \date       November, 14, 2001
  */
 
 #ifndef __STR_HASHEDSTRING_H__
@@ -53,22 +49,22 @@
 //
 static inline void STR_gHashMix(dword& a, dword& b, dword& c)
 {
-       a -= b; a -= c; a ^= (c>>13);
-       b -= c; b -= a; b ^= (a<<8);
-       c -= a; c -= b; c ^= (b>>13);
-       a -= b; a -= c; a ^= (c>>12);
-       b -= c; b -= a; b ^= (a<<16);
-       c -= a; c -= b; c ^= (b>>5);
-       a -= b; a -= c; a ^= (c>>3);
-       b -= c; b -= a; b ^= (a<<10);
-       c -= a; c -= b; c ^= (b>>15);
+       a -= b; a -= c; a ^= (c >> 13);
+       b -= c; b -= a; b ^= (a << 8);
+       c -= a; c -= b; c ^= (b >> 13);
+       a -= b; a -= c; a ^= (c >> 12);
+       b -= c; b -= a; b ^= (a << 16);
+       c -= a; c -= b; c ^= (b >> 5);
+       a -= b; a -= c; a ^= (c >> 3);
+       b -= c; b -= a; b ^= (a << 10);
+       c -= a; c -= b; c ^= (b >> 15);
 }
 
 //
 // Fast Hashable<int32> functionality
 // http://www.concentric.net/~Ttwang/tech/inthash.htm
 //
-static inline dword                    STR_gHash(dword inDWord)
+static inline dword         STR_gHash(dword inDWord)
 {
        dword key = inDWord;
        key += ~(key << 16);
@@ -80,43 +76,43 @@
        return key;
 }
 
-enum { GOLDEN_RATIO = 0x9e3779b9 }; // arbitrary value to initialize hash 
funtion, well not so arbitrary
-                                                                       // as 
this value is taken from the pigs library (Orange Games/Lost Boys)
+enum { GOLDEN_RATIO = 0x9e3779b9 }; /* arbitrary value to initialize hash 
funtion, well not so arbitrary
+                                     * as this value is taken from the pigs 
library (Orange Games/Lost Boys) */
 
 
 
-static dword STR_gHash(const void* in, int len, dword init_val)
+static dword STR_gHash(const void *in, int len, dword init_val)
 {
-       unsigned int  length = len;
+       unsigned int length = len;
        dword a = (dword)GOLDEN_RATIO;
        dword b = (dword)GOLDEN_RATIO;
-       dword c = init_val;                                                     
                                                                // the previous 
hash value
+       dword c = init_val;  /* the previous hash value */
        byte  *p_in = (byte *)in;
 
        // Do the largest part of the key
        while (length >= 12)
        {
-               a += (p_in[0] + ((dword)p_in[1]<<8) + ((dword)p_in[2] <<16) + 
((dword)p_in[3] <<24));
-               b += (p_in[4] + ((dword)p_in[5]<<8) + ((dword)p_in[6] <<16) + 
((dword)p_in[7] <<24));
-               c += (p_in[8] + ((dword)p_in[9]<<8) + ((dword)p_in[10]<<16) + 
((dword)p_in[11]<<24));
+               a += (p_in[0] + ((dword)p_in[1] << 8) + ((dword)p_in[2]  << 16) 
+ ((dword)p_in[3]  << 24));
+               b += (p_in[4] + ((dword)p_in[5] << 8) + ((dword)p_in[6]  << 16) 
+ ((dword)p_in[7]  << 24));
+               c += (p_in[8] + ((dword)p_in[9] << 8) + ((dword)p_in[10] << 16) 
+ ((dword)p_in[11] << 24));
                STR_gHashMix(a, b, c);
                p_in += 12; length -= 12;
        }
 
        // Handle the last 11 bytes
        c += len;
-       switch(length) {
-       case 11: c+=((dword)p_in[10]<<24);
-       case 10: c+=((dword)p_in[9]<<16);
-       case 9 : c+=((dword)p_in[8]<<8);                                        
                                                // the first byte of c is 
reserved for the length
-       case 8 : b+=((dword)p_in[7]<<24);
-       case 7 : b+=((dword)p_in[6]<<16);
-       case 6 : b+=((dword)p_in[5]<<8);
-       case 5 : b+=p_in[4];
-       case 4 : a+=((dword)p_in[3]<<24);
-       case 3 : a+=((dword)p_in[2]<<16);
-       case 2 : a+=((dword)p_in[1]<<8);
-       case 1 : a+=p_in[0];
+       switch (length) {
+               case 11: c += ((dword)p_in[10] << 24);
+               case 10: c += ((dword)p_in[9]  << 16);
+               case  9: c += ((dword)p_in[8]  << 8);  /* the first byte of c 
is reserved for the length */
+               case  8: b += ((dword)p_in[7]  << 24);
+               case  7: b += ((dword)p_in[6]  << 16);
+               case  6: b += ((dword)p_in[5]  << 8);
+               case  5: b += p_in[4];
+               case  4: a += ((dword)p_in[3]  << 24);
+               case  3: a += ((dword)p_in[2]  << 16);
+               case  2: a += ((dword)p_in[1]  << 8);
+               case  1: a += p_in[0];
        }
        STR_gHashMix(a, b, c);
 
@@ -129,18 +125,18 @@
 class STR_HashedString : public STR_String
 {
 public:
-       STR_HashedString()      : STR_String(),m_Hashed(false) {}
-       STR_HashedString(const char* str)       : 
STR_String(str),m_Hashed(false) {}
-       STR_HashedString(const STR_String& str) : 
STR_String(str),m_Hashed(false) {}
+       STR_HashedString() : STR_String(), m_Hashed(false) {}
+       STR_HashedString(const char *str) : STR_String(str), m_Hashed(false) {}
+       STR_HashedString(const STR_String &str) : STR_String(str), 
m_Hashed(false) {}
 
-       inline dword hash(dword init=0) const
+       inline dword hash(dword init = 0) const
        { 
                if (!m_Hashed) 
                {
-                       const char* str = *this;
+                       const char *str = *this;
                        int length = this->Length();
-                       m_CachedHash = STR_gHash(str,length,init);
-                       m_Hashed=true;
+                       m_CachedHash = STR_gHash(str, length, init);
+                       m_Hashed = true;
                } 
                return m_CachedHash;
        }

Modified: branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_image.py
===================================================================
--- branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_image.py       
2012-08-06 13:59:11 UTC (rev 49620)
+++ branches/soc-2011-tomato/release/scripts/startup/bl_ui/space_image.py       
2012-08-06 14:02:03 UTC (rev 49621)
@@ -383,11 +383,17 @@
 
         layout.prop(sima, "mode", text="")
 
+        if show_maskedit:
+            row = layout.row()
+            row.template_ID(sima, "mask", new="mask.new")
+
+        if show_uvedit or show_maskedit:
+            layout.prop(sima, "pivot_point", text="", icon_only=True)
+
         # uv editing
         if show_uvedit:
             uvedit = sima.uv_editor
 
-            layout.prop(uvedit, "pivot_point", text="", icon_only=True)
             layout.prop(toolsettings, "use_uv_select_sync", text="")
 
             if toolsettings.use_uv_select_sync:
@@ -408,14 +414,6 @@
             mesh = context.edit_object.data
             layout.prop_search(mesh.uv_textures, "active", mesh, 
"uv_textures", text="")
 
-        if show_maskedit:
-            row = layout.row()
-            row.template_ID(sima, "mask", new="mask.new")
-
-            # reused for mask
-            uvedit = sima.uv_editor
-            layout.prop(uvedit, "pivot_point", text="", icon_only=True)
-
         if ima:
             # layers
             layout.template_image_layers(ima, iuser)
@@ -629,6 +627,7 @@
         sima = context.space_data
         ima = sima.image
         show_uvedit = sima.show_uvedit
+        show_maskedit = sima.show_maskedit
         uvedit = sima.uv_editor
 
         split = layout.split()
@@ -647,12 +646,12 @@
             col.label(text="Coordinates:")
             col.prop(uvedit, "show_normalized_coords", text="Normalized")
 
-        if show_uvedit:
-
+        if show_uvedit or show_maskedit:
             col = layout.column()
             col.label("Cursor Location:")
-            col.row().prop(uvedit, "cursor_location", text="")
+            col.row().prop(sima, "cursor_location", text="")
 
+        if show_uvedit:
             col.separator()
 
             col.label(text="UVs:")

Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h       
2012-08-06 13:59:11 UTC (rev 49620)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h       
2012-08-06 14:02:03 UTC (rev 49621)
@@ -76,7 +76,7 @@
                                                          const unsigned int 
resol))[2];
 float (*BKE_mask_spline_differentiate_with_resolution(struct MaskSpline 
*spline, int width, int height, int *tot_diff_point))[2];
 float 
(*BKE_mask_spline_feather_differentiated_points_with_resolution_ex(struct 
MaskSpline *spline, int *tot_feather_point,
-                                                                         const 
unsigned int resol, const int do_collapse))[2];
+                                                                         const 
unsigned int resol))[2];
 float (*BKE_mask_spline_feather_differentiated_points_with_resolution(struct 
MaskSpline *spline, int width, int height, int *tot_feather_point))[2];
 
 float (*BKE_mask_spline_feather_points(struct MaskSpline *spline, int 
*tot_feather_point))[2];

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c    
2012-08-06 13:59:11 UTC (rev 49620)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c    
2012-08-06 14:02:03 UTC (rev 49621)
@@ -481,14 +481,29 @@
                        continue;
 
                if (isect_seg_seg_v2(v1, v2, v3, v4)) {
-                       int k, len;
+                       int k;
                        float p[2];
+                       float min_a[2], max_a[2];
+                       float min_b[2], max_b[2];
 
                        isect_seg_seg_v2_point(v1, v2, v3, v4, p);
 
-                       /* TODO: for now simply choose the shortest loop, could 
be made smarter in some way */
-                       len = cur_a - check_b;
-                       if (len < tot_feather_point - len) {
+                       INIT_MINMAX2(min_a, max_a);
+                       INIT_MINMAX2(min_b, max_b);
+
+                       /* collapse loop with smaller AABB */
+                       for (k = 0; k < tot_feather_point; k++) {
+                               if (k >= check_b && k <= cur_a) {
+                                       DO_MINMAX2(feather_points[k], min_a, 
max_a);
+                               }
+                               else {
+                                       DO_MINMAX2(feather_points[k], min_b, 
max_b);
+                               }
+                       }
+
+                       if (max_a[0] - min_a[0] < max_b[0] - min_b[0] ||
+                           max_a[1] - min_a[1] < max_b[1] - min_b[1])
+                       {
                                for (k = check_b; k <= cur_a; k++) {

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to