BLI_INLINE void edgehash_insert(EdgeHash *eh, unsigned int v0, unsigned int v1, void *val) { unsigned int hash; EDGE_ORD(v0, v1); /* ensure v0 is smaller */ hash = edgehash_keyhash(eh, v0, v1); edgehash_insert_ex(eh, v0, v1, val, hash); }
/** * Assign a new value to a key that may already be in edgehash. */ bool BLI_edgehash_reinsert(EdgeHash *eh, uint v0, uint v1, void *val) { IS_EDGEHASH_ASSERT(eh); EDGE_ORD(v0, v1); const uint bucket_index = edgehash_bucket_index(eh, v0, v1); EdgeEntry *e = edgehash_lookup_entry_ex(eh, v0, v1, bucket_index); if (e) { e->val = val; return false; } else { edgehash_insert_ex(eh, v0, v1, val, bucket_index); return true; } }
/** * Assign a new value to a key that may already be in edgehash. */ bool BLI_edgehash_reinsert(EdgeHash *eh, unsigned int v0, unsigned int v1, void *val) { unsigned int hash; EdgeEntry *e; IS_EDGEHASH_ASSERT(eh); EDGE_ORD(v0, v1); /* ensure v0 is smaller */ hash = edgehash_keyhash(eh, v0, v1); e = edgehash_lookup_entry_ex(eh, v0, v1, hash); if (e) { e->val = val; return false; } else { edgehash_insert_ex(eh, v0, v1, val, hash); return true; } }
BLI_INLINE void edgehash_insert(EdgeHash *eh, uint v0, uint v1, void *val) { EDGE_ORD(v0, v1); const uint bucket_index = edgehash_bucket_index(eh, v0, v1); edgehash_insert_ex(eh, v0, v1, val, bucket_index); }