Add dynamic topology support to the PBVH
authorNicholas Bishop <nicholasbishop@gmail.com>
Sun, 30 Dec 2012 18:28:36 +0000 (18:28 +0000)
committerNicholas Bishop <nicholasbishop@gmail.com>
Sun, 30 Dec 2012 18:28:36 +0000 (18:28 +0000)
commit2e69b0cd0b26fb1e641536de5a81a02f4478065c
treead22e485234da0adb49fb114d70ef00b47235c23
parent2c9d22fe31dc20df9fecc6322bdb7cbe56783164
Add dynamic topology support to the PBVH

* Add BLI_pbvh_build_bmesh(), similar to the other PBVH builders but
  specialized for BMesh. Whereas the PBVH leaf nodes for mesh and
  grids only store a start-index and count into the primitive indices
  array, the BMesh version uses GHashes to store the full set of faces
  and vertices in leaf nodes

* Update PBVH iterator to handle BMesh

* Make some of the pbvh.c functions non-static so they can be used by
  the new pbvh_bmesh code

* The BLI_pbvh_bmesh_update_topology() function is the main reason for
  adding BMesh support to the PBVH. This function is used during a
  sculpt stroke to dynamically collapse edges that are particular
  short and subdivide edges that are particularly long.
source/blender/blenkernel/BKE_pbvh.h
source/blender/blenkernel/CMakeLists.txt
source/blender/blenkernel/intern/pbvh.c
source/blender/blenkernel/intern/pbvh_bmesh.c [new file with mode: 0644]
source/blender/blenkernel/intern/pbvh_intern.h