[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59827] trunk/blender/source/blender: add function for rotating linked list so at item is last.
Campbell Barton
ideasman42 at gmail.com
Thu Sep 5 13:40:38 CEST 2013
Revision: 59827
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59827
Author: campbellbarton
Date: 2013-09-05 11:40:38 +0000 (Thu, 05 Sep 2013)
Log Message:
-----------
add function for rotating linked list so at item is last.
Modified Paths:
--------------
trunk/blender/source/blender/blenlib/BLI_listbase.h
trunk/blender/source/blender/blenlib/intern/listbase.c
trunk/blender/source/blender/bmesh/operators/bmo_bridge.c
trunk/blender/source/blender/bmesh/operators/bmo_subdivide_edgering.c
trunk/blender/source/blender/editors/mesh/editmesh_tools.c
trunk/blender/source/blender/editors/object/object_transform.c
Modified: trunk/blender/source/blender/blenlib/BLI_listbase.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_listbase.h 2013-09-05 11:07:49 UTC (rev 59826)
+++ trunk/blender/source/blender/blenlib/BLI_listbase.h 2013-09-05 11:40:38 UTC (rev 59827)
@@ -74,7 +74,8 @@
void BLI_movelisttolist(struct ListBase *dst, struct ListBase *src);
void BLI_duplicatelist(struct ListBase *dst, const struct ListBase *src);
void BLI_reverselist(struct ListBase *lb);
-void BLI_rotatelist(struct ListBase *lb, void *vlink);
+void BLI_rotatelist_first(struct ListBase *lb, void *vlink);
+void BLI_rotatelist_last(struct ListBase *lb, void *vlink);
/* create a generic list node containing link to provided data */
struct LinkData *BLI_genericNodeN(void *data);
Modified: trunk/blender/source/blender/blenlib/intern/listbase.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/listbase.c 2013-09-05 11:07:49 UTC (rev 59826)
+++ trunk/blender/source/blender/blenlib/intern/listbase.c 2013-09-05 11:40:38 UTC (rev 59827)
@@ -581,20 +581,35 @@
/**
* \param vlink Link to make first.
*/
-void BLI_rotatelist(ListBase *lb, void *vlink)
+void BLI_rotatelist_first(ListBase *lb, void *vlink)
{
/* make circular */
- ((LinkData *)lb->first)->prev = lb->last;
- ((LinkData *)lb->last)->next = lb->first;
+ ((Link *)lb->first)->prev = lb->last;
+ ((Link *)lb->last)->next = lb->first;
lb->first = vlink;
- lb->last = ((LinkData *)vlink)->prev;
+ lb->last = ((Link *)vlink)->prev;
- ((LinkData *)lb->first)->prev = NULL;
- ((LinkData *)lb->last)->next = NULL;
+ ((Link *)lb->first)->prev = NULL;
+ ((Link *)lb->last)->next = NULL;
}
+/**
+ * \param vlink Link to make last.
+ */
+void BLI_rotatelist_last(ListBase *lb, void *vlink)
+{
+ /* make circular */
+ ((Link *)lb->first)->prev = lb->last;
+ ((Link *)lb->last)->next = lb->first;
+ lb->first = ((Link *)vlink)->next;
+ lb->last = vlink;
+
+ ((Link *)lb->first)->prev = NULL;
+ ((Link *)lb->last)->next = NULL;
+}
+
/* create a generic list node containing link to provided data */
LinkData *BLI_genericNodeN(void *data)
{
Modified: trunk/blender/source/blender/bmesh/operators/bmo_bridge.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_bridge.c 2013-09-05 11:07:49 UTC (rev 59826)
+++ trunk/blender/source/blender/bmesh/operators/bmo_bridge.c 2013-09-05 11:40:38 UTC (rev 59827)
@@ -121,7 +121,7 @@
}
if (el_b_best) {
- BLI_rotatelist(lb_b, el_b_best);
+ BLI_rotatelist_first(lb_b, el_b_best);
}
}
@@ -274,7 +274,7 @@
const int len_b = BM_edgeloop_length_get(el_store_b);
ListBase *lb_b = BM_edgeloop_verts_get(el_store_b);
LinkData *el_b = BLI_rfindlink(lb_b, positive_mod(twist_offset, len_b));
- BLI_rotatelist(lb_b, el_b);
+ BLI_rotatelist_first(lb_b, el_b);
}
}
Modified: trunk/blender/source/blender/bmesh/operators/bmo_subdivide_edgering.c
===================================================================
--- trunk/blender/source/blender/bmesh/operators/bmo_subdivide_edgering.c 2013-09-05 11:07:49 UTC (rev 59826)
+++ trunk/blender/source/blender/bmesh/operators/bmo_subdivide_edgering.c 2013-09-05 11:40:38 UTC (rev 59827)
@@ -919,13 +919,13 @@
}
BLI_assert(node != NULL);
- BLI_rotatelist(lb_b, node);
+ BLI_rotatelist_first(lb_b, node);
/* now check we are winding the same way */
if (bm_edgering_pair_order_is_flipped(bm, el_store_a, el_store_b)) {
BM_edgeloop_flip(bm, el_store_b);
/* re-ensure the first node */
- BLI_rotatelist(lb_b, node);
+ BLI_rotatelist_first(lb_b, node);
}
/* sanity checks that we are aligned & winding now */
Modified: trunk/blender/source/blender/editors/mesh/editmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_tools.c 2013-09-05 11:07:49 UTC (rev 59826)
+++ trunk/blender/source/blender/editors/mesh/editmesh_tools.c 2013-09-05 11:40:38 UTC (rev 59827)
@@ -2913,7 +2913,7 @@
}
/* set this vertex first */
- BLI_rotatelist(verts, v_act_link);
+ BLI_rotatelist_first(verts, v_act_link);
BM_edgeloop_edges_get(el_store, edges);
/* un-flag 'rails' */
Modified: trunk/blender/source/blender/editors/object/object_transform.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_transform.c 2013-09-05 11:07:49 UTC (rev 59826)
+++ trunk/blender/source/blender/editors/object/object_transform.c 2013-09-05 11:40:38 UTC (rev 59827)
@@ -785,7 +785,7 @@
}
if (ctx_ob_act) {
- BLI_rotatelist(&ctx_data_list, (LinkData *)ctx_ob_act);
+ BLI_rotatelist_first(&ctx_data_list, (LinkData *)ctx_ob_act);
}
for (tob = bmain->object.first; tob; tob = tob->id.next) {
More information about the Bf-blender-cvs
mailing list