Blender
V3.3
|
#include <math.h>
#include <stdlib.h>
#include <string.h>
#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 | |
EHash * | ccg_ehash_new (int estimatedNumEntries, CCGAllocatorIFC *allocatorIFC, CCGAllocatorHDL allocator) |
void | ccg_ehash_free (EHash *eh, EHEntryFreeFP freeEntry, void *userData) |
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) |
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) |
static void * | _stdAllocator_alloc (CCGAllocatorHDL UNUSED(a), int numBytes) |
static void * | _stdAllocator_realloc (CCGAllocatorHDL UNUSED(a), void *ptr, int newSize, int UNUSED(oldSize)) |
static void | _stdAllocator_free (CCGAllocatorHDL UNUSED(a), void *ptr) |
CCGAllocatorIFC * | ccg_getStandardAllocatorIFC (void) |
Variables | |
static int | kHashSizes [] |
|
static |
Standard allocator implementation.
Definition at line 176 of file CCGSubSurf_util.c.
References MEM_mallocN.
Referenced by ccg_getStandardAllocatorIFC().
|
static |
Definition at line 189 of file CCGSubSurf_util.c.
References MEM_freeN, and ptr.
Referenced by ccg_getStandardAllocatorIFC().
|
static |
Definition at line 181 of file CCGSubSurf_util.c.
References MEM_reallocN, and ptr.
Referenced by ccg_getStandardAllocatorIFC().
void ccg_ehash_free | ( | EHash * | eh, |
EHEntryFreeFP | freeEntry, | ||
void * | userData | ||
) |
Definition at line 50 of file CCGSubSurf_util.c.
References _EHash::buckets, _EHash::curSize, EHASH_free, _EHEntry::next, and next.
Referenced by ccgSubSurf_free(), ccgSubSurf_processSync(), and ccgSubSurf_setSubdivisionLevels().
Definition at line 70 of file CCGSubSurf_util.c.
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().
Definition at line 117 of file CCGSubSurf_util.c.
References _EHash::buckets, EHASH_hash, hash, _EHEntry::key, and _EHEntry::next.
Referenced by ccgSubSurf_getEdge(), ccgSubSurf_getFace(), ccgSubSurf_getVert(), ccgSubSurf_syncEdge(), and ccgSubSurf_syncFace().
Definition at line 101 of file CCGSubSurf_util.c.
References _EHash::buckets, EHASH_hash, hash, and NULL.
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 31 of file CCGSubSurf_util.c.
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 149 of file CCGSubSurf_util.c.
References _EHashIterator::curEntry.
Referenced by ccgEdgeIterator_getCurrent(), ccgFaceIterator_getCurrent(), and ccgVertIterator_getCurrent().
void ccg_ehashIterator_init | ( | EHash * | eh, |
EHashIterator * | ehi | ||
) |
Definition at line 133 of file CCGSubSurf_util.c.
References _EHash::buckets, _EHashIterator::curBucket, _EHashIterator::curEntry, _EHash::curSize, _EHashIterator::eh, and NULL.
Referenced by ccgSubSurf_initEdgeIterator(), ccgSubSurf_initFaceIterator(), and ccgSubSurf_initVertIterator().
int ccg_ehashIterator_isStopped | ( | EHashIterator * | ehi | ) |
Definition at line 167 of file CCGSubSurf_util.c.
References _EHashIterator::curEntry.
Referenced by ccgEdgeIterator_isStopped(), ccgFaceIterator_isStopped(), and ccgVertIterator_isStopped().
void ccg_ehashIterator_next | ( | EHashIterator * | ehi | ) |
Definition at line 154 of file CCGSubSurf_util.c.
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 194 of file CCGSubSurf_util.c.
References _stdAllocator_alloc(), _stdAllocator_free(), _stdAllocator_realloc(), CCGAllocatorIFC::alloc, CCGAllocatorIFC::free, NULL, CCGAllocatorIFC::realloc, and CCGAllocatorIFC::release.
Referenced by ccgSubSurf_new().
|
static |
Hash implementation.
Definition at line 23 of file CCGSubSurf_util.c.
Referenced by ccg_ehash_insert(), and ccg_ehash_new().