vertex_hashtable.h 714 B

1234567891011121314151617181920212223242526272829303132333435
  1. /**
  2. *** :: Vertex List ::
  3. ***
  4. *** Hashtable for verticies
  5. *** used to check duplicates
  6. *** in various asset loaders.
  7. ***
  8. **/
  9. #ifndef vertex_hashtable_h
  10. #define vertex_hashtable_h
  11. #include "cengine.h"
  12. #include "data/vertex_list.h"
  13. #include "data/int_list.h"
  14. typedef struct {
  15. vertex_list* keys;
  16. int_list* values;
  17. } vertex_bucket;
  18. typedef struct {
  19. vertex_bucket* items;
  20. int table_size;
  21. } vertex_hashtable;
  22. int vertex_hash(vertex_hashtable* ht, vertex v);
  23. vertex_hashtable* vertex_hashtable_new(int size);
  24. void vertex_hashtable_delete(vertex_hashtable* ht);
  25. void vertex_hashtable_set(vertex_hashtable* ht, vertex key, int value);
  26. int vertex_hashtable_get(vertex_hashtable* ht, vertex key);
  27. #endif