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:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-03-18 16:54:41 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-03-19 09:02:29 +0400
commit19e627cab34a04a3d01b2e3a868b7bf91d56e8f9 (patch)
tree2b01e4e108bebcf0954bb58fe734a65bc514e279 /source/blender/bmesh
parent2525f9c5f31e90bcb8f2e8c84558a2bc35e3207c (diff)
Backport revisions for the final 2.70 releasev2.70
e6a359a, 9437927, a205700, d908c90, a6e3471, deef641, 4080673, 0141265, 0c6e744, f959e3d, ade6646, caf5d90, 5febb09, d08e6ab, 22873ea, 3d031d1, c450ea2, 60cab47, ed26edb, df25dbf, f127f49.
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r--source/blender/bmesh/operators/bmo_connect.c3
-rw-r--r--source/blender/bmesh/operators/bmo_subdivide.c2
-rw-r--r--source/blender/bmesh/tools/bmesh_bisect_plane.c4
-rw-r--r--source/blender/bmesh/tools/bmesh_path.c8
4 files changed, 12 insertions, 5 deletions
diff --git a/source/blender/bmesh/operators/bmo_connect.c b/source/blender/bmesh/operators/bmo_connect.c
index 3d2c8c3d020..6e2bc0d0edf 100644
--- a/source/blender/bmesh/operators/bmo_connect.c
+++ b/source/blender/bmesh/operators/bmo_connect.c
@@ -48,7 +48,7 @@ static int bm_face_connect_verts(BMesh *bm, BMFace *f)
BMIter liter;
BMFace *f_new;
- BMLoop *l, *l_new;
+ BMLoop *l;
BMLoop *l_last;
unsigned int i;
@@ -96,6 +96,7 @@ static int bm_face_connect_verts(BMesh *bm, BMFace *f)
}
for (i = 0; i < STACK_SIZE(verts_pair); i++) {
+ BMLoop *l_new;
BMLoop *l_a, *l_b;
if ((l_a = BM_face_vert_share_loop(f, verts_pair[i][0])) &&
diff --git a/source/blender/bmesh/operators/bmo_subdivide.c b/source/blender/bmesh/operators/bmo_subdivide.c
index 723595771a1..1e93340d8a3 100644
--- a/source/blender/bmesh/operators/bmo_subdivide.c
+++ b/source/blender/bmesh/operators/bmo_subdivide.c
@@ -135,7 +135,6 @@ typedef struct SubDPattern {
* edge subdivision */
static BMEdge *connect_smallest_face(BMesh *bm, BMVert *v_a, BMVert *v_b, BMFace **r_f_new)
{
- BMLoop *l_new;
BMLoop *l_a, *l_b;
BMFace *f;
@@ -146,6 +145,7 @@ static BMEdge *connect_smallest_face(BMesh *bm, BMVert *v_a, BMVert *v_b, BMFace
if (f) {
BMFace *f_new;
+ BMLoop *l_new;
f_new = BM_face_split(bm, f, l_a, l_b, &l_new, NULL, false);
diff --git a/source/blender/bmesh/tools/bmesh_bisect_plane.c b/source/blender/bmesh/tools/bmesh_bisect_plane.c
index 7a33dc40f8e..f4318933deb 100644
--- a/source/blender/bmesh/tools/bmesh_bisect_plane.c
+++ b/source/blender/bmesh/tools/bmesh_bisect_plane.c
@@ -136,16 +136,14 @@ static void bm_face_bisect_verts(BMesh *bm, BMFace *f, const float plane[4], con
if ((STACK_SIZE(vert_split_arr) > 1) &&
(use_dirs[0] && use_dirs[2]))
{
- BMLoop *l_new;
-
if (LIKELY(STACK_SIZE(vert_split_arr) == 2)) {
+ BMLoop *l_new;
BMLoop *l_a, *l_b;
l_a = BM_face_vert_share_loop(f, vert_split_arr[0]);
l_b = BM_face_vert_share_loop(f, vert_split_arr[1]);
/* common case, just cut the face once */
- l_new = NULL;
BM_face_split(bm, f, l_a, l_b, &l_new, NULL, true);
if (l_new) {
if (oflag_center) {
diff --git a/source/blender/bmesh/tools/bmesh_path.c b/source/blender/bmesh/tools/bmesh_path.c
index 9fc1996e51a..060d0dd969b 100644
--- a/source/blender/bmesh/tools/bmesh_path.c
+++ b/source/blender/bmesh/tools/bmesh_path.c
@@ -193,6 +193,14 @@ static void edgetag_add_adjacent(Heap *heap, BMEdge *e1, BMEdge **edges_prev, fl
const int e1_index = BM_elem_index_get(e1);
BM_ITER_ELEM (v, &viter, e1, BM_VERTS_OF_EDGE) {
+
+ /* don't walk over previous vertex */
+ if ((edges_prev[e1_index]) &&
+ (BM_vert_in_edge(edges_prev[e1_index], v)))
+ {
+ continue;
+ }
+
BM_ITER_ELEM (e2, &eiter, v, BM_EDGES_OF_VERT) {
if (!BM_elem_flag_test(e2, BM_ELEM_TAG)) {
/* we know 'e2' is not visited, check it out! */