Partially replace convex hull implementation with Bullet implementation
authorNicholas Bishop <nicholasbishop@gmail.com>
Tue, 23 Oct 2012 23:54:15 +0000 (23:54 +0000)
committerNicholas Bishop <nicholasbishop@gmail.com>
Tue, 23 Oct 2012 23:54:15 +0000 (23:54 +0000)
commit1dadd3b7c65ac24f5299d10766d7df3aa5f8c495
tree8ab14638b417895e347a2f025d554bb67447c455
parent0b16c9e201adfcbeebd3e3cda94ccd752c243c03
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
source/blender/bmesh/CMakeLists.txt
source/blender/bmesh/SConscript
source/blender/bmesh/intern/bmesh_opdefines.c
source/blender/bmesh/operators/bmo_hull.c
source/blender/editors/mesh/CMakeLists.txt
source/blender/editors/mesh/SConscript
source/blender/editors/mesh/editmesh_tools.c
source/blender/editors/mesh/mesh_ops.c