47 lines
1.5 KiB
C
47 lines
1.5 KiB
C
/* 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
|