[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