[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59136] branches/soc-2013-depsgraph_mt: Merging r59130 through r59135 from trunk into soc-2013-depsgraph_mt

Sergey Sharybin sergey.vfx at gmail.com
Wed Aug 14 12:42:18 CEST 2013


Revision: 59136
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59136
Author:   nazgul
Date:     2013-08-14 10:42:18 +0000 (Wed, 14 Aug 2013)
Log Message:
-----------
Merging r59130 through r59135 from trunk into soc-2013-depsgraph_mt

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

Modified Paths:
--------------
    branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/armature.c
    branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_marking.c
    branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_marking.h
    branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_queries.c
    branches/soc-2013-depsgraph_mt/source/blender/bmesh/tools/bmesh_edgesplit.c
    branches/soc-2013-depsgraph_mt/source/blender/editors/include/ED_transform.h
    branches/soc-2013-depsgraph_mt/source/blender/editors/mesh/editmesh_rip.c
    branches/soc-2013-depsgraph_mt/source/blender/editors/transform/transform.c
    branches/soc-2013-depsgraph_mt/source/blender/editors/transform/transform_conversions.c

Property Changed:
----------------
    branches/soc-2013-depsgraph_mt/
    branches/soc-2013-depsgraph_mt/source/blender/editors/interface/interface.c
    branches/soc-2013-depsgraph_mt/source/blender/editors/space_outliner/


Property changes on: branches/soc-2013-depsgraph_mt
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_dev:58091-58422
/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/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58587,58772,58774-58775,58828,58835,59032
/tags/blender-2.67b-release/blender:57122
/trunk/blender:57395-59129
   + /branches/ge_dev:58091-58422
/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/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58587,58772,58774-58775,58828,58835,59032
/tags/blender-2.67b-release/blender:57122
/trunk/blender:57395-59135

Modified: branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/armature.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/armature.c	2013-08-14 10:39:16 UTC (rev 59135)
+++ branches/soc-2013-depsgraph_mt/source/blender/blenkernel/intern/armature.c	2013-08-14 10:42:18 UTC (rev 59136)
@@ -1600,7 +1600,10 @@
 			pchanw.next = pchan->next;
 			pchanw.parent = pchan->parent;
 			pchanw.child = pchan->child;
-			
+
+			pchanw.mpath = pchan->mpath;
+			pchan->mpath = NULL;
+
 			/* this is freed so copy a copy, else undo crashes */
 			if (pchanw.prop) {
 				pchanw.prop = IDP_CopyProperty(pchanw.prop);

Modified: branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_marking.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_marking.c	2013-08-14 10:39:16 UTC (rev 59135)
+++ branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_marking.c	2013-08-14 10:42:18 UTC (rev 59136)
@@ -816,6 +816,13 @@
 	}
 }
 
+static BMEditSelection *bm_select_history_create(BMHeader *ele)
+{
+	BMEditSelection *ese = (BMEditSelection *) MEM_callocN(sizeof(BMEditSelection), "BMEdit Selection");
+	ese->htype = ele->htype;
+	ese->ele = (BMElem *)ele;
+	return ese;
+}
 
 /* --- macro wrapped funcs --- */
 bool _bm_select_history_check(BMesh *bm, const BMHeader *ele)
@@ -837,9 +844,7 @@
 
 void _bm_select_history_store_notest(BMesh *bm, BMHeader *ele)
 {
-	BMEditSelection *ese = (BMEditSelection *) MEM_callocN(sizeof(BMEditSelection), "BMEdit Selection");
-	ese->htype = ele->htype;
-	ese->ele = (BMElem *)ele;
+	BMEditSelection *ese = bm_select_history_create(ele);
 	BLI_addtail(&(bm->selected), ese);
 }
 
@@ -849,6 +854,20 @@
 		BM_select_history_store_notest(bm, (BMElem *)ele);
 	}
 }
+
+
+void _bm_select_history_store_after_notest(BMesh *bm, BMEditSelection *ese_ref, BMHeader *ele)
+{
+	BMEditSelection *ese = bm_select_history_create(ele);
+	BLI_insertlinkafter(&(bm->selected), ese_ref, ese);
+}
+
+void _bm_select_history_store_after(BMesh *bm, BMEditSelection *ese_ref, BMHeader *ele)
+{
+	if (!BM_select_history_check(bm, (BMElem *)ele)) {
+		BM_select_history_store_after_notest(bm, ese_ref, (BMElem *)ele);
+	}
+}
 /* --- end macro wrapped funcs --- */
 
 
@@ -861,16 +880,13 @@
 
 void BM_select_history_validate(BMesh *bm)
 {
-	BMEditSelection *ese, *nextese;
+	BMEditSelection *ese, *ese_next;
 
-	ese = bm->selected.first;
-
-	while (ese) {
-		nextese = ese->next;
+	for (ese = bm->selected.first; ese; ese = ese_next) {
+		ese_next = ese->next;
 		if (!BM_elem_flag_test(ese->ele, BM_ELEM_SELECT)) {
 			BLI_freelinkN(&(bm->selected), ese);
 		}
-		ese = nextese;
 	}
 }
 

Modified: branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_marking.h
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_marking.h	2013-08-14 10:39:16 UTC (rev 59135)
+++ branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_marking.h	2013-08-14 10:42:18 UTC (rev 59136)
@@ -87,11 +87,15 @@
 #define BM_select_history_remove(bm, ele)       _bm_select_history_remove(bm,       &(ele)->head)
 #define BM_select_history_store_notest(bm, ele) _bm_select_history_store_notest(bm, &(ele)->head)
 #define BM_select_history_store(bm, ele)        _bm_select_history_store(bm,        &(ele)->head)
+#define BM_select_history_store_after_notest(bm, ese_ref, ele) _bm_select_history_store_after_notest(bm, ese_ref, &(ele)->head)
+#define BM_select_history_store_after(bm, ese, ese_ref)        _bm_select_history_store_after(bm,        ese_ref, &(ele)->head)
 
 bool _bm_select_history_check(BMesh *bm,  const BMHeader *ele);
 bool _bm_select_history_remove(BMesh *bm,       BMHeader *ele);
 void _bm_select_history_store_notest(BMesh *bm, BMHeader *ele);
 void _bm_select_history_store(BMesh *bm,        BMHeader *ele);
+void _bm_select_history_store_after(BMesh *bm,  BMEditSelection *ese_ref, BMHeader *ele);
+void _bm_select_history_store_after_notest(BMesh *bm,  BMEditSelection *ese_ref, BMHeader *ele);
 
 void BM_select_history_validate(BMesh *bm);
 void BM_select_history_clear(BMesh *em);

Modified: branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_queries.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_queries.c	2013-08-14 10:39:16 UTC (rev 59135)
+++ branches/soc-2013-depsgraph_mt/source/blender/bmesh/intern/bmesh_queries.c	2013-08-14 10:42:18 UTC (rev 59136)
@@ -1986,7 +1986,7 @@
 
 		BM_elem_index_set(e, i); /* set_inline */
 	}
-	bm->elem_index_dirty &= ~BM_FACE;
+	bm->elem_index_dirty &= ~BM_EDGE;
 
 	/* detect groups */
 	stack = MEM_mallocN(sizeof(*stack) * tot_edges, __func__);

Modified: branches/soc-2013-depsgraph_mt/source/blender/bmesh/tools/bmesh_edgesplit.c
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/bmesh/tools/bmesh_edgesplit.c	2013-08-14 10:39:16 UTC (rev 59135)
+++ branches/soc-2013-depsgraph_mt/source/blender/bmesh/tools/bmesh_edgesplit.c	2013-08-14 10:42:18 UTC (rev 59136)
@@ -103,7 +103,22 @@
 	BMIter iter;
 	BMEdge *e;
 
+	bool use_ese = false;
+	GHash *ese_gh = NULL;
 
+	if (copy_select && bm->selected.first) {
+		BMEditSelection *ese;
+
+		ese_gh = BLI_ghash_ptr_new(__func__);
+		for (ese = bm->selected.first; ese; ese = ese->next) {
+			if (ese->htype != BM_FACE) {
+				BLI_ghash_insert(ese_gh, ese->ele, ese);
+			}
+		}
+
+		use_ese = true;
+	}
+
 	if (tag_only == false) {
 		BM_mesh_elem_hflag_enable_all(bm, BM_EDGE | (use_verts ? BM_VERT : 0), BM_ELEM_TAG, false);
 	}
@@ -135,10 +150,19 @@
 			BM_elem_flag_enable(e, BM_ELEM_INTERNAL_TAG);
 
 			/* keep splitting until each loop has its own edge */
-			do {
-				bmesh_edge_separate(bm, e, e->l, copy_select);
-			} while (!BM_edge_is_boundary(e));
+			while (!BM_edge_is_boundary(e)) {
+				BMLoop *l_sep = e->l;
+				bmesh_edge_separate(bm, e, l_sep, copy_select);
+				BLI_assert(l_sep->e != e);
 
+				if (use_ese) {
+					BMEditSelection *ese = BLI_ghash_lookup(ese_gh, e);
+					if (UNLIKELY(ese)) {
+						BM_select_history_store_after_notest(bm, ese, l_sep->e);
+					}
+				}
+			}
+
 			BM_elem_flag_enable(e->v1, BM_ELEM_TAG);
 			BM_elem_flag_enable(e->v2, BM_ELEM_TAG);
 		}
@@ -157,14 +181,39 @@
 
 	BM_ITER_MESH (e, &iter, bm, BM_EDGES_OF_MESH) {
 		if (BM_elem_flag_test(e, BM_ELEM_TAG)) {
-			if (BM_elem_flag_test(e->v1, BM_ELEM_TAG)) {
-				BM_elem_flag_disable(e->v1, BM_ELEM_TAG);
-				bmesh_vert_separate(bm, e->v1, NULL, NULL, copy_select);
+			unsigned int i;
+			for (i = 0; i < 2; i++) {
+				BMVert *v = ((&e->v1)[i]);
+				if (BM_elem_flag_test(v, BM_ELEM_TAG)) {
+					BM_elem_flag_disable(v, BM_ELEM_TAG);
+
+					if (use_ese) {
+						BMVert **vtar;
+						int vtar_len;
+
+						bmesh_vert_separate(bm, v, &vtar, &vtar_len, copy_select);
+
+						if (vtar_len) {
+							BMEditSelection *ese = BLI_ghash_lookup(ese_gh, v);
+							if (UNLIKELY(ese)) {
+								int j;
+								for (j = 0; j < vtar_len; j++) {
+									BLI_assert(v != vtar[j]);
+									BM_select_history_store_after_notest(bm, ese, vtar[j]);
+								}
+							}
+						}
+						MEM_freeN(vtar);
+					}
+					else {
+						bmesh_vert_separate(bm, v, NULL, NULL, copy_select);
+					}
+				}
 			}
-			if (BM_elem_flag_test(e->v2, BM_ELEM_TAG)) {
-				BM_elem_flag_disable(e->v2, BM_ELEM_TAG);
-				bmesh_vert_separate(bm, e->v2, NULL, NULL, copy_select);
-			}
 		}
 	}
+
+	if (use_ese) {
+		BLI_ghash_free(ese_gh, NULL, NULL);
+	}
 }

Modified: branches/soc-2013-depsgraph_mt/source/blender/editors/include/ED_transform.h
===================================================================
--- branches/soc-2013-depsgraph_mt/source/blender/editors/include/ED_transform.h	2013-08-14 10:39:16 UTC (rev 59135)
+++ branches/soc-2013-depsgraph_mt/source/blender/editors/include/ED_transform.h	2013-08-14 10:42:18 UTC (rev 59136)
@@ -90,16 +90,14 @@
 
 /* TRANSFORM CONTEXTS */
 #define CTX_NONE            0
-#define CTX_TEXTURE         1
-#define CTX_EDGE            2
-#define CTX_NO_PET          4
-#define CTX_TWEAK           8
-#define CTX_NO_MIRROR       16
-#define CTX_AUTOCONFIRM     32
-#define CTX_BMESH           64
-#define CTX_NDOF            128
-#define CTX_MOVIECLIP       256
-#define CTX_MASK            512

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list