tornavis/source/blender/blenkernel/BKE_outliner_treehash.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

47 lines
1.5 KiB
C
Raw Normal View History

/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
/** \file
* \ingroup bke
*/
#ifdef __cplusplus
extern "C" {
#endif
struct BLI_mempool;
struct ID;
struct TreeStoreElem;
/* create and fill hashtable with treestore elements */
void *BKE_outliner_treehash_create_from_treestore(struct BLI_mempool *treestore);
/* full rebuild for already allocated hashtable */
void *BKE_outliner_treehash_rebuild_from_treestore(void *treehash, struct BLI_mempool *treestore);
/* clear element usage flags */
void BKE_outliner_treehash_clear_used(void *treehash);
/* Add/remove hashtable elements */
void BKE_outliner_treehash_add_element(void *treehash, struct TreeStoreElem *elem);
void BKE_outliner_treehash_remove_element(void *treehash, struct TreeStoreElem *elem);
/* find first unused element with specific type, nr and id */
struct TreeStoreElem *BKE_outliner_treehash_lookup_unused(void *treehash,
short type,
short nr,
struct ID *id);
/* find user or unused element with specific type, nr and id */
struct TreeStoreElem *BKE_outliner_treehash_lookup_any(void *treehash,
short type,
short nr,
struct ID *id);
/* free treehash structure */
void BKE_outliner_treehash_free(void *treehash);
#ifdef __cplusplus
}
#endif