Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-04-30 23:18:04 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-04-30 23:18:04 +0300
commit6111da36297dd9d40878c5805dac4b7659ee6ecd (patch)
treecef936166e7ce9e65ad06c0b1acd876902777d74 /source/blender/bmesh/intern/bmesh_structure.c
parenta8221060624f576be015ac3be02a245c6a36e5ee (diff)
BMesh: add bmesh_disk_vert_replace
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_structure.c')
-rw-r--r--source/blender/bmesh/intern/bmesh_structure.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/bmesh/intern/bmesh_structure.c b/source/blender/bmesh/intern/bmesh_structure.c
index 30ab693beb7..5bc36cefad2 100644
--- a/source/blender/bmesh/intern/bmesh_structure.c
+++ b/source/blender/bmesh/intern/bmesh_structure.c
@@ -74,10 +74,15 @@ void bmesh_edge_vert_swap(BMEdge *e, BMVert *v_dst, BMVert *v_src)
}
/* swap out edges */
+ bmesh_disk_vert_replace(e, v_dst, v_src);
+}
+
+void bmesh_disk_vert_replace(BMEdge *e, BMVert *v_dst, BMVert *v_src)
+{
BLI_assert(e->v1 == v_src || e->v2 == v_src);
- bmesh_disk_edge_remove(e, v_src);
- bmesh_disk_vert_swap(e, v_dst, v_src);
- bmesh_disk_edge_append(e, v_dst);
+ bmesh_disk_edge_remove(e, v_src); /* remove e from tv's disk cycle */
+ bmesh_disk_vert_swap(e, v_dst, v_src); /* swap out tv for v_new in e */
+ bmesh_disk_edge_append(e, v_dst); /* add e to v_dst's disk cycle */
BLI_assert(e->v1 != e->v2);
}
@@ -114,6 +119,7 @@ void bmesh_edge_vert_swap(BMEdge *e, BMVert *v_dst, BMVert *v_src)
* the disk cycle has no problems dealing with non-manifold conditions involving faces.
*
* Functions relating to this cycle:
+ * - #bmesh_disk_vert_replace
* - #bmesh_disk_edge_append
* - #bmesh_disk_edge_remove
* - #bmesh_disk_edge_next