|
Blender V4.3
|
#include <cmath>#include <cstdlib>#include <cstring>#include "BLI_sys_types.h"#include "MEM_guardedalloc.h"#include "BLI_utildefines.h"#include "CCGSubSurf.h"#include "CCGSubSurf_intern.h"Go to the source code of this file.
Functions | |
Generic Hash Functions | |
| EHash * | ccg_ehash_new (int estimatedNumEntries, CCGAllocatorIFC *allocatorIFC, CCGAllocatorHDL allocator) |
| void | ccg_ehash_free (EHash *eh, EHEntryFreeFP freeEntry, void *user_data) |
| void | ccg_ehash_insert (EHash *eh, EHEntry *entry) |
| void * | ccg_ehash_lookupWithPrev (EHash *eh, void *key, void ***prevp_r) |
| void * | ccg_ehash_lookup (EHash *eh, void *key) |
Hash Elements Iteration | |
| void | ccg_ehashIterator_init (EHash *eh, EHashIterator *ehi) |
| void * | ccg_ehashIterator_getCurrent (EHashIterator *ehi) |
| void | ccg_ehashIterator_next (EHashIterator *ehi) |
| int | ccg_ehashIterator_isStopped (EHashIterator *ehi) |
Standard allocator implementation | |
| static void * | _stdAllocator_alloc (CCGAllocatorHDL, int numBytes) |
| static void * | _stdAllocator_realloc (CCGAllocatorHDL, void *ptr, int newSize, int) |
| static void | _stdAllocator_free (CCGAllocatorHDL, void *ptr) |
| CCGAllocatorIFC * | ccg_getStandardAllocatorIFC () |
Variables | |
| static int | kHashSizes [] |
|
static |
Definition at line 186 of file CCGSubSurf_util.cc.
References MEM_mallocN.
Referenced by ccg_getStandardAllocatorIFC().
|
static |
Definition at line 196 of file CCGSubSurf_util.cc.
References MEM_freeN(), and ptr.
Referenced by ccg_getStandardAllocatorIFC().
|
static |
Definition at line 191 of file CCGSubSurf_util.cc.
References MEM_reallocN, and ptr.
Referenced by ccg_getStandardAllocatorIFC().
| void ccg_ehash_free | ( | EHash * | eh, |
| EHEntryFreeFP | freeEntry, | ||
| void * | user_data ) |
Definition at line 54 of file CCGSubSurf_util.cc.
References _EHash::buckets, _EHash::curSize, EHASH_free, _EHEntry::next, and next.
Referenced by ccgSubSurf_free(), ccgSubSurf_processSync(), and ccgSubSurf_setSubdivisionLevels().
Definition at line 74 of file CCGSubSurf_util.cc.
References _EHash::buckets, _EHash::curSize, _EHash::curSizeIdx, EHASH_alloc, EHASH_free, EHASH_hash, hash, _EHEntry::key, kHashSizes, _EHEntry::next, next, _EHash::numEntries, and UNLIKELY.
Referenced by ccgSubSurf_syncEdge(), ccgSubSurf_syncFace(), and ccgSubSurf_syncVert().
| void * ccg_ehash_lookup | ( | EHash * | eh, |
| void * | key ) |
Definition at line 121 of file CCGSubSurf_util.cc.
References _EHash::buckets, EHASH_hash, hash, _EHEntry::key, and _EHEntry::next.
Referenced by ccgSubSurf_getEdge(), ccgSubSurf_getFace(), ccgSubSurf_getVert(), ccgSubSurf_syncEdge(), and ccgSubSurf_syncFace().
| void * ccg_ehash_lookupWithPrev | ( | EHash * | eh, |
| void * | key, | ||
| void *** | prevp_r ) |
Definition at line 105 of file CCGSubSurf_util.cc.
References _EHash::buckets, EHASH_hash, hash, _EHEntry::key, and _EHEntry::next.
Referenced by ccgSubSurf_syncEdge(), ccgSubSurf_syncEdgeDel(), ccgSubSurf_syncFace(), ccgSubSurf_syncFaceDel(), ccgSubSurf_syncVert(), and ccgSubSurf_syncVertDel().
| EHash * ccg_ehash_new | ( | int | estimatedNumEntries, |
| CCGAllocatorIFC * | allocatorIFC, | ||
| CCGAllocatorHDL | allocator ) |
Definition at line 35 of file CCGSubSurf_util.cc.
References CCGAllocatorIFC::alloc, _EHash::allocator, _EHash::allocatorIFC, _EHash::buckets, _EHash::curSize, _EHash::curSizeIdx, EHASH_alloc, kHashSizes, and _EHash::numEntries.
Referenced by ccgSubSurf_initFullSync(), ccgSubSurf_new(), and ccgSubSurf_setSubdivisionLevels().
| void * ccg_ehashIterator_getCurrent | ( | EHashIterator * | ehi | ) |
Definition at line 157 of file CCGSubSurf_util.cc.
References _EHashIterator::curEntry.
Referenced by ccgEdgeIterator_getCurrent(), ccgFaceIterator_getCurrent(), and ccgVertIterator_getCurrent().
| void ccg_ehashIterator_init | ( | EHash * | eh, |
| EHashIterator * | ehi ) |
Definition at line 141 of file CCGSubSurf_util.cc.
References _EHash::buckets, _EHashIterator::curBucket, _EHashIterator::curEntry, _EHash::curSize, and _EHashIterator::eh.
Referenced by ccgSubSurf_initEdgeIterator(), ccgSubSurf_initFaceIterator(), and ccgSubSurf_initVertIterator().
| int ccg_ehashIterator_isStopped | ( | EHashIterator * | ehi | ) |
Definition at line 175 of file CCGSubSurf_util.cc.
References _EHashIterator::curEntry.
Referenced by ccgEdgeIterator_isStopped(), ccgFaceIterator_isStopped(), and ccgVertIterator_isStopped().
| void ccg_ehashIterator_next | ( | EHashIterator * | ehi | ) |
Definition at line 162 of file CCGSubSurf_util.cc.
References _EHash::buckets, _EHashIterator::curBucket, _EHashIterator::curEntry, _EHash::curSize, _EHashIterator::eh, and _EHEntry::next.
Referenced by ccgEdgeIterator_next(), ccgFaceIterator_next(), and ccgVertIterator_next().
| CCGAllocatorIFC * ccg_getStandardAllocatorIFC | ( | void | ) |
Standard allocator implementation.
Definition at line 201 of file CCGSubSurf_util.cc.
References _stdAllocator_alloc(), _stdAllocator_free(), _stdAllocator_realloc(), CCGAllocatorIFC::alloc, CCGAllocatorIFC::free, CCGAllocatorIFC::realloc, and CCGAllocatorIFC::release.
Referenced by ccgSubSurf_new().
|
static |
Hash implementation.
Definition at line 25 of file CCGSubSurf_util.cc.
Referenced by ccg_ehash_insert(), and ccg_ehash_new().