Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2005-08-23 06:29:22 +0400
committerDaniel Dunbar <daniel@zuster.org>2005-08-23 06:29:22 +0400
commit0192536102a0d0179f2cb09e62c7035c13ce3723 (patch)
tree38ce2e8998d9011a0e4a3fe3fafc2cbc44c70165 /source/blender/blenlib/BLI_edgehash.h
parent3c1887036a17a98cf54bf36f985b6f344c46895f (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.h26
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