diff options
author | Daniel Dunbar <daniel@zuster.org> | 2005-08-23 06:29:22 +0400 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2005-08-23 06:29:22 +0400 |
commit | 0192536102a0d0179f2cb09e62c7035c13ce3723 (patch) | |
tree | 38ce2e8998d9011a0e4a3fe3fafc2cbc44c70165 /source/blender/blenlib/BLI_edgehash.h | |
parent | 3c1887036a17a98cf54bf36f985b6f344c46895f (diff) |
- added iterator to edgehash
- updated decimator to make edges
Diffstat (limited to 'source/blender/blenlib/BLI_edgehash.h')
-rw-r--r-- | source/blender/blenlib/BLI_edgehash.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_edgehash.h b/source/blender/blenlib/BLI_edgehash.h index 4f8a85b2eea..6b7eaedea2f 100644 --- a/source/blender/blenlib/BLI_edgehash.h +++ b/source/blender/blenlib/BLI_edgehash.h @@ -36,7 +36,9 @@ #define BLI_EDGEHASH_H struct EdgeHash; +struct EdgeHashIterator; typedef struct EdgeHash EdgeHash; +typedef struct EdgeHashIterator EdgeHashIterator; typedef void (*EdgeHashFreeFP)(void *key); @@ -69,5 +71,29 @@ int BLI_edgehash_size (EdgeHash *eh); /* Remove all edges from hash. */ void BLI_edgehash_clear (EdgeHash *eh, EdgeHashFreeFP valfreefp); +/***/ + + /** + * Create a new EdgeHashIterator. The hash table must not be mutated + * while the iterator is in use, and the iterator will step exactly + * BLI_edgehash_size(gh) times before becoming done. + */ +EdgeHashIterator* BLI_edgehashIterator_new (EdgeHash *eh); + + /* Free an EdgeHashIterator. */ +void BLI_edgehashIterator_free (EdgeHashIterator *ehi); + + /* Retrieve the key from an iterator. */ +void BLI_edgehashIterator_getKey (EdgeHashIterator *ehi, int *v0_r, int *v1_r); + + /* Retrieve the value from an iterator. */ +void* BLI_edgehashIterator_getValue (EdgeHashIterator *ehi); + + /* Steps the iterator to the next index. */ +void BLI_edgehashIterator_step (EdgeHashIterator *ehi); + + /* Determine if an iterator is done. */ +int BLI_edgehashIterator_isDone (EdgeHashIterator *ehi); + #endif |