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:
authorMiika Hamalainen <blender@miikah.org>2012-07-04 21:15:05 +0400
committerMiika Hamalainen <blender@miikah.org>2012-07-04 21:15:05 +0400
commit9324503b84a06f76af072131da947547c84698ed (patch)
treeb9336118dcf8df9e9ca4888d9ee3ac9fec2c2798 /source/blender/bmesh/operators/bmo_hull.c
parent234c338655fc49efef0b7ffe0ef6736e8630411a (diff)
parent958cf139f6587df631944f6ec0fcb4111c7e58fa (diff)
Merge with trunk r48602
Diffstat (limited to 'source/blender/bmesh/operators/bmo_hull.c')
-rw-r--r--source/blender/bmesh/operators/bmo_hull.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/bmesh/operators/bmo_hull.c b/source/blender/bmesh/operators/bmo_hull.c
index 160db7cba75..1bd2f41209b 100644
--- a/source/blender/bmesh/operators/bmo_hull.c
+++ b/source/blender/bmesh/operators/bmo_hull.c
@@ -140,11 +140,14 @@ static void hull_add_triangle(BMesh *bm, GHash *hull_triangles, BLI_mempool *poo
static int hull_point_tri_side(const HullTriangle *t, const float co[3])
{
- float p[3], d;
+ /* Added epsilon to fix bug [#31941], improves output when some
+ * vertices are nearly coplanar. Might need further tweaking for
+ * other cases though. */
+ float p[3], d, epsilon = 0.0001;
sub_v3_v3v3(p, co, t->v[0]->co);
d = dot_v3v3(t->no, p);
- if (d < 0) return -1;
- else if (d > 0) return 1;
+ if (d < -epsilon) return -1;
+ else if (d > epsilon) return 1;
else return 0;
}