Blender Git Commit Log

Git Commits -> Revision aa63a87

Revision aa63a87 by Jacques Lucke (master)
December 13, 2018, 10:21 (GMT)
BLI: New Edgehash and EdgeSet implementation

The new data structure uses open addressing instead of chaining to resolve collisions in the hash table.

This new structure was never slower than the old implementation in my tests. Code that first inserts all edges and then iterates through all edges (e.g. to remove duplicates) benefits the most, because the `EdgeHashIterator` becomes a simple for loop over a continuous array.

Reviewer: campbellbarton

Differential Revision: D4050

Commit Details:

Full Hash: aa63a87d37d3b190ec8c957c892af9c1be2ea301
Parent Commit: cef2a25
Lines Changed: +800, -546

1 Added Path:

/tests/gtests/blenlib/BLI_edgehash_test.cc (+405, -0) (View)

3 Modified Paths:

/source/blender/blenlib/BLI_edgehash.h (+41, -39) (Diff)
/source/blender/blenlib/intern/edgehash.c (+353, -507) (Diff)
/tests/gtests/blenlib/CMakeLists.txt (+1, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021