[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