diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-10-24 03:54:15 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-10-24 03:54:15 +0400 |
commit | 1dadd3b7c65ac24f5299d10766d7df3aa5f8c495 (patch) | |
tree | 8ab14638b417895e347a2f025d554bb67447c455 /source/blender/bmesh/intern | |
parent | 0b16c9e201adfcbeebd3e3cda94ccd752c243c03 (diff) |
Partially replace convex hull implementation with Bullet implementation
* Bullet's convex hull implementation is significantly more robust
than the one I implemented, as well as being faster.
* This fixes bug [#32864] "Convex Hull fails in some cases."
projects.blender.org/tracker/?func=detail&aid=32864&group_id=9&atid=498
That bug, and others like it, relate to the poor handling of
co-planar surfaces in the input. Pretty much any model that is
simple-subdivided a few times gave very bad results before, Bullet's
implementation handles this much better.
* In order to ensure a smooth transition, the Bullet output is
translated into the existing HullTriangle hash structure. This makes
it easy to ensure that the existing slot output stays the same; the
interactions between the slots are somewhat complicated, detangling
is a TODO.
* Reviewed by Brecht:
https://codereview.appspot.com/6741063
Diffstat (limited to 'source/blender/bmesh/intern')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_opdefines.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source/blender/bmesh/intern/bmesh_opdefines.c b/source/blender/bmesh/intern/bmesh_opdefines.c index 9f47892c15b..b527cffbfdc 100644 --- a/source/blender/bmesh/intern/bmesh_opdefines.c +++ b/source/blender/bmesh/intern/bmesh_opdefines.c @@ -1162,6 +1162,7 @@ static BMOpDefine bmo_slide_vert_def = { BMO_OP_FLAG_UNTAN_MULTIRES }; +#ifdef WITH_BULLET /* * Convex Hull * @@ -1191,6 +1192,7 @@ static BMOpDefine bmo_convex_hull_def = { bmo_convex_hull_exec, 0 }; +#endif /* * Symmetrize @@ -1227,7 +1229,9 @@ BMOpDefine *opdefines[] = { &bmo_collapse_uvs_def, &bmo_connect_verts_def, &bmo_contextual_create_def, +#ifdef WITH_BULLET &bmo_convex_hull_def, +#endif &bmo_create_circle_def, &bmo_create_cone_def, &bmo_create_cube_def, |