Blender V2.61 - r43446
|
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "CCGSubSurf.h"
#include "MEM_guardedalloc.h"
#include "BLO_sys_types.h"
Go to the source code of this file.
Classes | |
struct | _EHEntry |
struct | _EHash |
struct | _EHashIterator |
struct | _CCGVert |
struct | _CCGEdge |
struct | _CCGFace |
struct | _CCGSubSurf |
Defines | |
#define | CCG_INLINE inline |
#define | UNUSED(x) x |
#define | EPSILON (1.0e-35f) |
#define | EHASH_alloc(eh, nb) ((eh)->allocatorIFC.alloc((eh)->allocator, nb)) |
#define | EHASH_free(eh, ptr) ((eh)->allocatorIFC.free((eh)->allocator, ptr)) |
#define | EHASH_hash(eh, item) (((uintptr_t) (item))%((unsigned int) (eh)->curSize)) |
#define | VertDataZero(av) { float *_a = (float*) av; _a[0] = _a[1] = _a[2] = 0.0f; } |
#define | VertDataCopy(av, bv) { float *_a = (float*) av, *_b = (float*) bv; _a[0] =_b[0]; _a[1] =_b[1]; _a[2] =_b[2]; } |
#define | VertDataAdd(av, bv) { float *_a = (float*) av, *_b = (float*) bv; _a[0]+=_b[0]; _a[1]+=_b[1]; _a[2]+=_b[2]; } |
#define | VertDataSub(av, bv) { float *_a = (float*) av, *_b = (float*) bv; _a[0]-=_b[0]; _a[1]-=_b[1]; _a[2]-=_b[2]; } |
#define | VertDataMulN(av, n) { float *_a = (float*) av; _a[0]*=n; _a[1]*=n; _a[2]*=n; } |
#define | VertDataAvg4(tv, av, bv, cv, dv) |
#define | NormZero(av) { float *_a = (float*) av; _a[0] = _a[1] = _a[2] = 0.0f; } |
#define | NormCopy(av, bv) { float *_a = (float*) av, *_b = (float*) bv; _a[0] =_b[0]; _a[1] =_b[1]; _a[2] =_b[2]; } |
#define | NormAdd(av, bv) { float *_a = (float*) av, *_b = (float*) bv; _a[0]+=_b[0]; _a[1]+=_b[1]; _a[2]+=_b[2]; } |
#define | VERT_getLevelData(v) ((byte*) &(v)[1]) |
#define | EDGE_getLevelData(e) ((byte*) &(e)[1]) |
#define | FACE_getVerts(f) ((CCGVert**) &(f)[1]) |
#define | FACE_getEdges(f) ((CCGEdge**) &(FACE_getVerts(f)[(f)->numVerts])) |
#define | FACE_getCenterData(f) ((byte*) &(FACE_getEdges(f)[(f)->numVerts])) |
#define | CCGSUBSURF_alloc(ss, nb) ((ss)->allocatorIFC.alloc((ss)->allocator, nb)) |
#define | CCGSUBSURF_realloc(ss, ptr, nb, ob) ((ss)->allocatorIFC.realloc((ss)->allocator, ptr, nb, ob)) |
#define | CCGSUBSURF_free(ss, ptr) ((ss)->allocatorIFC.free((ss)->allocator, ptr)) |
#define | VERT_getNo(e, lvl) _vert_getNo(e, lvl, vertDataSize, normalDataOffset) |
#define | EDGE_getNo(e, lvl, x) _edge_getNo(e, lvl, x, vertDataSize, normalDataOffset) |
#define | FACE_getIFNo(f, lvl, S, x, y) _face_getIFNo(f, lvl, S, x, y, subdivLevels, vertDataSize, normalDataOffset) |
#define | FACE_calcIFNo(f, lvl, S, x, y, no) _face_calcIFNo(f, lvl, S, x, y, no, subdivLevels, vertDataSize) |
#define | FACE_getIENo(f, lvl, S, x) _face_getIENo(f, lvl, S, x, subdivLevels, vertDataSize, normalDataOffset) |
#define | VERT_getCo(v, lvl) _vert_getCo(v, lvl, vertDataSize) |
#define | EDGE_getCo(e, lvl, x) _edge_getCo(e, lvl, x, vertDataSize) |
#define | FACE_getIECo(f, lvl, S, x) _face_getIECo(f, lvl, S, x, subdivLevels, vertDataSize) |
#define | FACE_getIFCo(f, lvl, S, x, y) _face_getIFCo(f, lvl, S, x, y, subdivLevels, vertDataSize) |
Typedefs | |
typedef unsigned char | byte |
typedef struct _EHEntry | EHEntry |
typedef struct _EHash | EHash |
typedef void(* | EHEntryFreeFP )(EHEntry *, void *) |
typedef struct _EHashIterator | EHashIterator |
Enumerations | |
enum | { Vert_eEffected = (1<<0), Vert_eChanged = (1<<1), Vert_eSeam = (1<<2) } |
enum | { Edge_eEffected = (1<<0) } |
enum | { Face_eEffected = (1<<0) } |
enum | SyncState { eSyncState_None = 0, eSyncState_Vert, eSyncState_Edge, eSyncState_Face, eSyncState_Partial } |
Functions | |
static EHash * | _ehash_new (int estimatedNumEntries, CCGAllocatorIFC *allocatorIFC, CCGAllocatorHDL allocator) |
static void | _ehash_free (EHash *eh, EHEntryFreeFP freeEntry, void *userData) |
static void | _ehash_insert (EHash *eh, EHEntry *entry) |
static void * | _ehash_lookupWithPrev (EHash *eh, void *key, void ***prevp_r) |
static void * | _ehash_lookup (EHash *eh, void *key) |
static EHashIterator * | _ehashIterator_new (EHash *eh) |
static void | _ehashIterator_free (EHashIterator *ehi) |
static void * | _ehashIterator_getCurrent (EHashIterator *ehi) |
static void | _ehashIterator_next (EHashIterator *ehi) |
static int | _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) |
static CCGAllocatorIFC * | _getStandardAllocatorIFC (void) |
static int | VertDataEqual (const float *a, const float *b) |
static int | _edge_isBoundary (const CCGEdge *e) |
static CCGVert * | _vert_new (CCGVertHDL vHDL, CCGSubSurf *ss) |
static void | _vert_remEdge (CCGVert *v, CCGEdge *e) |
static void | _vert_remFace (CCGVert *v, CCGFace *f) |
static void | _vert_addEdge (CCGVert *v, CCGEdge *e, CCGSubSurf *ss) |
static void | _vert_addFace (CCGVert *v, CCGFace *f, CCGSubSurf *ss) |
static CCGEdge * | _vert_findEdgeTo (const CCGVert *v, const CCGVert *vQ) |
static int | _vert_isBoundary (const CCGVert *v) |
static void * | _vert_getCo (CCGVert *v, int lvl, int dataSize) |
static float * | _vert_getNo (CCGVert *v, int lvl, int dataSize, int normalDataOffset) |
static void | _vert_free (CCGVert *v, CCGSubSurf *ss) |
static int | VERT_seam (const CCGVert *v) |
static CCGEdge * | _edge_new (CCGEdgeHDL eHDL, CCGVert *v0, CCGVert *v1, float crease, CCGSubSurf *ss) |
static void | _edge_remFace (CCGEdge *e, CCGFace *f) |
static void | _edge_addFace (CCGEdge *e, CCGFace *f, CCGSubSurf *ss) |
static CCGVert * | _edge_getOtherVert (CCGEdge *e, CCGVert *vQ) |
static void * | _edge_getCo (CCGEdge *e, int lvl, int x, int dataSize) |
static float * | _edge_getNo (CCGEdge *e, int lvl, int x, int dataSize, int normalDataOffset) |
static void * | _edge_getCoVert (CCGEdge *e, CCGVert *v, int lvl, int x, int dataSize) |
static void | _edge_free (CCGEdge *e, CCGSubSurf *ss) |
static void | _edge_unlinkMarkAndFree (CCGEdge *e, CCGSubSurf *ss) |
static float | EDGE_getSharpness (CCGEdge *e, int lvl) |
static CCGFace * | _face_new (CCGFaceHDL fHDL, CCGVert **verts, CCGEdge **edges, int numVerts, CCGSubSurf *ss) |
static CCG_INLINE void * | _face_getIECo (CCGFace *f, int lvl, int S, int x, int levels, int dataSize) |
static CCG_INLINE void * | _face_getIENo (CCGFace *f, int lvl, int S, int x, int levels, int dataSize, int normalDataOffset) |
static CCG_INLINE void * | _face_getIFCo (CCGFace *f, int lvl, int S, int x, int y, int levels, int dataSize) |
static CCG_INLINE float * | _face_getIFNo (CCGFace *f, int lvl, int S, int x, int y, int levels, int dataSize, int normalDataOffset) |
static int | _face_getVertIndex (CCGFace *f, CCGVert *v) |
static CCG_INLINE void * | _face_getIFCoEdge (CCGFace *f, CCGEdge *e, int lvl, int eX, int eY, int levels, int dataSize) |
static float * | _face_getIFNoEdge (CCGFace *f, CCGEdge *e, int lvl, int eX, int eY, int levels, int dataSize, int normalDataOffset) |
static void | _face_calcIFNo (CCGFace *f, int lvl, int S, int x, int y, float *no, int levels, int dataSize) |
static void | _face_free (CCGFace *f, CCGSubSurf *ss) |
static void | _face_unlinkMarkAndFree (CCGFace *f, CCGSubSurf *ss) |
CCGSubSurf * | ccgSubSurf_new (CCGMeshIFC *ifc, int subdivLevels, CCGAllocatorIFC *allocatorIFC, CCGAllocatorHDL allocator) |
void | ccgSubSurf_free (CCGSubSurf *ss) |
CCGError | ccgSubSurf_setAllowEdgeCreation (CCGSubSurf *ss, int allowEdgeCreation, float defaultCreaseValue, void *defaultUserData) |
void | ccgSubSurf_getAllowEdgeCreation (CCGSubSurf *ss, int *allowEdgeCreation_r, float *defaultCreaseValue_r, void *defaultUserData_r) |
CCGError | ccgSubSurf_setSubdivisionLevels (CCGSubSurf *ss, int subdivisionLevels) |
void | ccgSubSurf_getUseAgeCounts (CCGSubSurf *ss, int *useAgeCounts_r, int *vertUserOffset_r, int *edgeUserOffset_r, int *faceUserOffset_r) |
CCGError | ccgSubSurf_setUseAgeCounts (CCGSubSurf *ss, int useAgeCounts, int vertUserOffset, int edgeUserOffset, int faceUserOffset) |
CCGError | ccgSubSurf_setCalcVertexNormals (CCGSubSurf *ss, int useVertNormals, int normalDataOffset) |
CCGError | ccgSubSurf_initFullSync (CCGSubSurf *ss) |
CCGError | ccgSubSurf_initPartialSync (CCGSubSurf *ss) |
CCGError | ccgSubSurf_syncVertDel (CCGSubSurf *ss, CCGVertHDL vHDL) |
CCGError | ccgSubSurf_syncEdgeDel (CCGSubSurf *ss, CCGEdgeHDL eHDL) |
CCGError | ccgSubSurf_syncFaceDel (CCGSubSurf *ss, CCGFaceHDL fHDL) |
CCGError | ccgSubSurf_syncVert (CCGSubSurf *ss, CCGVertHDL vHDL, const void *vertData, int seam, CCGVert **v_r) |
CCGError | ccgSubSurf_syncEdge (CCGSubSurf *ss, CCGEdgeHDL eHDL, CCGVertHDL e_vHDL0, CCGVertHDL e_vHDL1, float crease, CCGEdge **e_r) |
CCGError | ccgSubSurf_syncFace (CCGSubSurf *ss, CCGFaceHDL fHDL, int numVerts, CCGVertHDL *vHDLs, CCGFace **f_r) |
static void | ccgSubSurf__sync (CCGSubSurf *ss) |
CCGError | ccgSubSurf_processSync (CCGSubSurf *ss) |
static void | ccgSubSurf__calcVertNormals (CCGSubSurf *ss, CCGVert **effectedV, CCGEdge **effectedE, CCGFace **effectedF, int numEffectedV, int numEffectedE, int numEffectedF) |
static void | ccgSubSurf__calcSubdivLevel (CCGSubSurf *ss, CCGVert **effectedV, CCGEdge **effectedE, CCGFace **effectedF, int numEffectedV, int numEffectedE, int numEffectedF, int curLvl) |
static void | ccgSubSurf__allFaces (CCGSubSurf *ss, CCGFace ***faces, int *numFaces, int *freeFaces) |
static void | ccgSubSurf__effectedFaceNeighbours (CCGSubSurf *ss, CCGFace **faces, int numFaces, CCGVert ***verts, int *numVerts, CCGEdge ***edges, int *numEdges) |
CCGError | ccgSubSurf_updateFromFaces (CCGSubSurf *ss, int lvl, CCGFace **effectedF, int numEffectedF) |
CCGError | ccgSubSurf_updateToFaces (CCGSubSurf *ss, int lvl, CCGFace **effectedF, int numEffectedF) |
CCGError | ccgSubSurf_stitchFaces (CCGSubSurf *ss, int lvl, CCGFace **effectedF, int numEffectedF) |
CCGError | ccgSubSurf_updateNormals (CCGSubSurf *ss, CCGFace **effectedF, int numEffectedF) |
CCGError | ccgSubSurf_updateLevels (CCGSubSurf *ss, int lvl, CCGFace **effectedF, int numEffectedF) |
int | ccgSubSurf_getNumVerts (const CCGSubSurf *ss) |
int | ccgSubSurf_getNumEdges (const CCGSubSurf *ss) |
int | ccgSubSurf_getNumFaces (const CCGSubSurf *ss) |
CCGVert * | ccgSubSurf_getVert (CCGSubSurf *ss, CCGVertHDL v) |
CCGEdge * | ccgSubSurf_getEdge (CCGSubSurf *ss, CCGEdgeHDL e) |
CCGFace * | ccgSubSurf_getFace (CCGSubSurf *ss, CCGFaceHDL f) |
int | ccgSubSurf_getSubdivisionLevels (const CCGSubSurf *ss) |
int | ccgSubSurf_getEdgeSize (const CCGSubSurf *ss) |
int | ccgSubSurf_getEdgeLevelSize (const CCGSubSurf *ss, int level) |
int | ccgSubSurf_getGridSize (const CCGSubSurf *ss) |
int | ccgSubSurf_getGridLevelSize (const CCGSubSurf *ss, int level) |
CCGVertHDL | ccgSubSurf_getVertVertHandle (CCGVert *v) |
int | ccgSubSurf_getVertAge (CCGSubSurf *ss, CCGVert *v) |
void * | ccgSubSurf_getVertUserData (CCGSubSurf *ss, CCGVert *v) |
int | ccgSubSurf_getVertNumFaces (CCGVert *v) |
CCGFace * | ccgSubSurf_getVertFace (CCGVert *v, int index) |
int | ccgSubSurf_getVertNumEdges (CCGVert *v) |
CCGEdge * | ccgSubSurf_getVertEdge (CCGVert *v, int index) |
void * | ccgSubSurf_getVertData (CCGSubSurf *ss, CCGVert *v) |
void * | ccgSubSurf_getVertLevelData (CCGSubSurf *ss, CCGVert *v, int level) |
CCGEdgeHDL | ccgSubSurf_getEdgeEdgeHandle (CCGEdge *e) |
int | ccgSubSurf_getEdgeAge (CCGSubSurf *ss, CCGEdge *e) |
void * | ccgSubSurf_getEdgeUserData (CCGSubSurf *ss, CCGEdge *e) |
int | ccgSubSurf_getEdgeNumFaces (CCGEdge *e) |
CCGFace * | ccgSubSurf_getEdgeFace (CCGEdge *e, int index) |
CCGVert * | ccgSubSurf_getEdgeVert0 (CCGEdge *e) |
CCGVert * | ccgSubSurf_getEdgeVert1 (CCGEdge *e) |
void * | ccgSubSurf_getEdgeDataArray (CCGSubSurf *ss, CCGEdge *e) |
void * | ccgSubSurf_getEdgeData (CCGSubSurf *ss, CCGEdge *e, int x) |
void * | ccgSubSurf_getEdgeLevelData (CCGSubSurf *ss, CCGEdge *e, int x, int level) |
float | ccgSubSurf_getEdgeCrease (CCGEdge *e) |
CCGFaceHDL | ccgSubSurf_getFaceFaceHandle (CCGSubSurf *UNUSED(ss), CCGFace *f) |
int | ccgSubSurf_getFaceAge (CCGSubSurf *ss, CCGFace *f) |
void * | ccgSubSurf_getFaceUserData (CCGSubSurf *ss, CCGFace *f) |
int | ccgSubSurf_getFaceNumVerts (CCGFace *f) |
CCGVert * | ccgSubSurf_getFaceVert (CCGSubSurf *UNUSED(ss), CCGFace *f, int index) |
CCGEdge * | ccgSubSurf_getFaceEdge (CCGSubSurf *UNUSED(ss), CCGFace *f, int index) |
int | ccgSubSurf_getFaceEdgeIndex (CCGFace *f, CCGEdge *e) |
void * | ccgSubSurf_getFaceCenterData (CCGFace *f) |
void * | ccgSubSurf_getFaceGridEdgeDataArray (CCGSubSurf *ss, CCGFace *f, int gridIndex) |
void * | ccgSubSurf_getFaceGridEdgeData (CCGSubSurf *ss, CCGFace *f, int gridIndex, int x) |
void * | ccgSubSurf_getFaceGridDataArray (CCGSubSurf *ss, CCGFace *f, int gridIndex) |
void * | ccgSubSurf_getFaceGridData (CCGSubSurf *ss, CCGFace *f, int gridIndex, int x, int y) |
CCGVertIterator * | ccgSubSurf_getVertIterator (CCGSubSurf *ss) |
CCGEdgeIterator * | ccgSubSurf_getEdgeIterator (CCGSubSurf *ss) |
CCGFaceIterator * | ccgSubSurf_getFaceIterator (CCGSubSurf *ss) |
CCGVert * | ccgVertIterator_getCurrent (CCGVertIterator *vi) |
int | ccgVertIterator_isStopped (CCGVertIterator *vi) |
void | ccgVertIterator_next (CCGVertIterator *vi) |
void | ccgVertIterator_free (CCGVertIterator *vi) |
CCGEdge * | ccgEdgeIterator_getCurrent (CCGEdgeIterator *vi) |
int | ccgEdgeIterator_isStopped (CCGEdgeIterator *vi) |
void | ccgEdgeIterator_next (CCGEdgeIterator *vi) |
void | ccgEdgeIterator_free (CCGEdgeIterator *vi) |
CCGFace * | ccgFaceIterator_getCurrent (CCGFaceIterator *vi) |
int | ccgFaceIterator_isStopped (CCGFaceIterator *vi) |
void | ccgFaceIterator_next (CCGFaceIterator *vi) |
void | ccgFaceIterator_free (CCGFaceIterator *vi) |
int | ccgSubSurf_getNumFinalVerts (const CCGSubSurf *ss) |
int | ccgSubSurf_getNumFinalEdges (const CCGSubSurf *ss) |
int | ccgSubSurf_getNumFinalFaces (const CCGSubSurf *ss) |
Variables | |
static int | kHashSizes [] |
Definition in file CCGSubSurf.c.
#define CCG_INLINE inline |
Definition at line 18 of file CCGSubSurf.c.
#define CCGSUBSURF_alloc | ( | ss, | |
nb | |||
) | ((ss)->allocatorIFC.alloc((ss)->allocator, nb)) |
Definition at line 347 of file CCGSubSurf.c.
Referenced by _edge_new(), _face_new(), _vert_new(), ccgSubSurf_new(), and ccgSubSurf_setAllowEdgeCreation().
#define CCGSUBSURF_free | ( | ss, | |
ptr | |||
) | ((ss)->allocatorIFC.free((ss)->allocator, ptr)) |
Definition at line 349 of file CCGSubSurf.c.
Referenced by _edge_free(), _face_free(), _vert_free(), ccgSubSurf_free(), and ccgSubSurf_setAllowEdgeCreation().
#define CCGSUBSURF_realloc | ( | ss, | |
ptr, | |||
nb, | |||
ob | |||
) | ((ss)->allocatorIFC.realloc((ss)->allocator, ptr, nb, ob)) |
Definition at line 348 of file CCGSubSurf.c.
Referenced by _edge_addFace(), _vert_addEdge(), and _vert_addFace().
#define EDGE_getCo | ( | e, | |
lvl, | |||
x | |||
) | _edge_getCo(e, lvl, x, vertDataSize) |
Definition at line 1361 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcSubdivLevel(), ccgSubSurf__sync(), and ccgSubSurf_stitchFaces().
#define EDGE_getLevelData | ( | e | ) | ((byte*) &(e)[1]) |
Definition at line 283 of file CCGSubSurf.c.
Referenced by _edge_getCo(), _edge_getCoVert(), _edge_getNo(), and ccgSubSurf_getEdgeUserData().
#define EDGE_getNo | ( | e, | |
lvl, | |||
x | |||
) | _edge_getNo(e, lvl, x, vertDataSize, normalDataOffset) |
Definition at line 1157 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcVertNormals().
#define EHASH_alloc | ( | eh, | |
nb | |||
) | ((eh)->allocatorIFC.alloc((eh)->allocator, nb)) |
Definition at line 57 of file CCGSubSurf.c.
Referenced by _ehash_insert(), _ehash_new(), and _ehashIterator_new().
#define EHASH_free | ( | eh, | |
ptr | |||
) | ((eh)->allocatorIFC.free((eh)->allocator, ptr)) |
Definition at line 58 of file CCGSubSurf.c.
Referenced by _ehash_free(), _ehash_insert(), and _ehashIterator_free().
#define EHASH_hash | ( | eh, | |
item | |||
) | (((uintptr_t) (item))%((unsigned int) (eh)->curSize)) |
Definition at line 60 of file CCGSubSurf.c.
Referenced by _ehash_insert(), _ehash_lookup(), and _ehash_lookupWithPrev().
#define EPSILON (1.0e-35f) |
Definition at line 30 of file CCGSubSurf.c.
Referenced by _face_calcIFNo(), and ccgSubSurf__calcVertNormals().
#define FACE_calcIFNo | ( | f, | |
lvl, | |||
S, | |||
x, | |||
y, | |||
no | |||
) | _face_calcIFNo(f, lvl, S, x, y, no, subdivLevels, vertDataSize) |
Definition at line 1159 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcVertNormals().
#define FACE_getCenterData | ( | f | ) | ((byte*) &(FACE_getEdges(f)[(f)->numVerts])) |
Definition at line 299 of file CCGSubSurf.c.
Referenced by _face_getIECo(), _face_getIENo(), _face_getIFCo(), _face_getIFNo(), ccgSubSurf__calcSubdivLevel(), ccgSubSurf__calcVertNormals(), ccgSubSurf__sync(), ccgSubSurf_getFaceCenterData(), ccgSubSurf_getFaceUserData(), ccgSubSurf_stitchFaces(), ccgSubSurf_updateFromFaces(), and ccgSubSurf_updateToFaces().
#define FACE_getEdges | ( | f | ) | ((CCGEdge**) &(FACE_getVerts(f)[(f)->numVerts])) |
Definition at line 298 of file CCGSubSurf.c.
Referenced by _face_getIFCoEdge(), _face_new(), _face_unlinkMarkAndFree(), ccgSubSurf__calcSubdivLevel(), ccgSubSurf__calcVertNormals(), ccgSubSurf__sync(), ccgSubSurf_getFaceEdge(), ccgSubSurf_getFaceEdgeIndex(), ccgSubSurf_stitchFaces(), ccgSubSurf_syncFace(), ccgSubSurf_updateFromFaces(), and ccgSubSurf_updateToFaces().
#define FACE_getIECo | ( | f, | |
lvl, | |||
S, | |||
x | |||
) | _face_getIECo(f, lvl, S, x, subdivLevels, vertDataSize) |
Definition at line 1362 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcSubdivLevel(), ccgSubSurf__sync(), ccgSubSurf_stitchFaces(), ccgSubSurf_updateFromFaces(), and ccgSubSurf_updateToFaces().
#define FACE_getIENo | ( | f, | |
lvl, | |||
S, | |||
x | |||
) | _face_getIENo(f, lvl, S, x, subdivLevels, vertDataSize, normalDataOffset) |
Definition at line 1160 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcVertNormals().
#define FACE_getIFCo | ( | f, | |
lvl, | |||
S, | |||
x, | |||
y | |||
) | _face_getIFCo(f, lvl, S, x, y, subdivLevels, vertDataSize) |
Definition at line 1363 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcSubdivLevel(), ccgSubSurf__sync(), ccgSubSurf_stitchFaces(), ccgSubSurf_updateFromFaces(), and ccgSubSurf_updateToFaces().
#define FACE_getIFNo | ( | f, | |
lvl, | |||
S, | |||
x, | |||
y | |||
) | _face_getIFNo(f, lvl, S, x, y, subdivLevels, vertDataSize, normalDataOffset) |
Definition at line 1158 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcVertNormals().
#define FACE_getVerts | ( | f | ) | ((CCGVert**) &(f)[1]) |
Definition at line 297 of file CCGSubSurf.c.
Referenced by _face_getIFCoEdge(), _face_getVertIndex(), _face_new(), _face_unlinkMarkAndFree(), ccgSubSurf__calcSubdivLevel(), ccgSubSurf__calcVertNormals(), ccgSubSurf__sync(), ccgSubSurf_getFaceVert(), ccgSubSurf_stitchFaces(), ccgSubSurf_syncFace(), ccgSubSurf_syncVert(), ccgSubSurf_updateFromFaces(), and ccgSubSurf_updateToFaces().
#define NormAdd | ( | av, | |
bv | |||
) | { float *_a = (float*) av, *_b = (float*) bv; _a[0]+=_b[0]; _a[1]+=_b[1]; _a[2]+=_b[2]; } |
Definition at line 238 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcVertNormals().
#define NormCopy | ( | av, | |
bv | |||
) | { float *_a = (float*) av, *_b = (float*) bv; _a[0] =_b[0]; _a[1] =_b[1]; _a[2] =_b[2]; } |
Definition at line 237 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcVertNormals().
#define NormZero | ( | av | ) | { float *_a = (float*) av; _a[0] = _a[1] = _a[2] = 0.0f; } |
Definition at line 236 of file CCGSubSurf.c.
Referenced by _face_calcIFNo(), and ccgSubSurf__calcVertNormals().
#define UNUSED | ( | x | ) | x |
Definition at line 25 of file CCGSubSurf.c.
#define VERT_getCo | ( | v, | |
lvl | |||
) | _vert_getCo(v, lvl, vertDataSize) |
Definition at line 1360 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcSubdivLevel(), ccgSubSurf__sync(), ccgSubSurf_stitchFaces(), ccgSubSurf_updateFromFaces(), and ccgSubSurf_updateToFaces().
#define VERT_getLevelData | ( | v | ) | ((byte*) &(v)[1]) |
Definition at line 268 of file CCGSubSurf.c.
Referenced by _vert_getCo(), _vert_getNo(), and ccgSubSurf_getVertUserData().
#define VERT_getNo | ( | e, | |
lvl | |||
) | _vert_getNo(e, lvl, vertDataSize, normalDataOffset) |
Definition at line 1156 of file CCGSubSurf.c.
#define VertDataAdd | ( | av, | |
bv | |||
) | { float *_a = (float*) av, *_b = (float*) bv; _a[0]+=_b[0]; _a[1]+=_b[1]; _a[2]+=_b[2]; } |
Definition at line 226 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcSubdivLevel(), ccgSubSurf__sync(), and ccgSubSurf_stitchFaces().
#define VertDataAvg4 | ( | tv, | |
av, | |||
bv, | |||
cv, | |||
dv | |||
) |
{ \ float *_t = (float*) tv, *_a = (float*) av, *_b = (float*) bv, *_c = (float*) cv, *_d = (float*) dv; \ _t[0] = (_a[0]+_b[0]+_c[0]+_d[0])*.25f; \ _t[1] = (_a[1]+_b[1]+_c[1]+_d[1])*.25f; \ _t[2] = (_a[2]+_b[2]+_c[2]+_d[2])*.25f; \ }
Definition at line 229 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcSubdivLevel().
#define VertDataCopy | ( | av, | |
bv | |||
) | { float *_a = (float*) av, *_b = (float*) bv; _a[0] =_b[0]; _a[1] =_b[1]; _a[2] =_b[2]; } |
Definition at line 225 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcSubdivLevel(), ccgSubSurf__calcVertNormals(), ccgSubSurf__sync(), ccgSubSurf_stitchFaces(), ccgSubSurf_syncVert(), ccgSubSurf_updateFromFaces(), and ccgSubSurf_updateToFaces().
#define VertDataMulN | ( | av, | |
n | |||
) | { float *_a = (float*) av; _a[0]*=n; _a[1]*=n; _a[2]*=n; } |
Definition at line 228 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcSubdivLevel(), ccgSubSurf__sync(), and ccgSubSurf_stitchFaces().
#define VertDataSub | ( | av, | |
bv | |||
) | { float *_a = (float*) av, *_b = (float*) bv; _a[0]-=_b[0]; _a[1]-=_b[1]; _a[2]-=_b[2]; } |
Definition at line 227 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcSubdivLevel(), and ccgSubSurf__sync().
#define VertDataZero | ( | av | ) | { float *_a = (float*) av; _a[0] = _a[1] = _a[2] = 0.0f; } |
Definition at line 224 of file CCGSubSurf.c.
Referenced by ccgSubSurf__calcSubdivLevel(), ccgSubSurf__sync(), and ccgSubSurf_stitchFaces().
typedef unsigned char byte |
Definition at line 34 of file CCGSubSurf.c.
typedef struct _EHashIterator EHashIterator |
Definition at line 44 of file CCGSubSurf.c.
typedef void(* EHEntryFreeFP)(EHEntry *, void *) |
Definition at line 76 of file CCGSubSurf.c.
anonymous enum |
Definition at line 245 of file CCGSubSurf.c.
anonymous enum |
Definition at line 250 of file CCGSubSurf.c.
anonymous enum |
Definition at line 253 of file CCGSubSurf.c.
enum SyncState |
Definition at line 301 of file CCGSubSurf.c.
static void _edge_addFace | ( | CCGEdge * | e, |
CCGFace * | f, | ||
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 461 of file CCGSubSurf.c.
References CCGSUBSURF_realloc, _CCGEdge::faces, and _CCGEdge::numFaces.
Referenced by _face_new().
static void _edge_free | ( | CCGEdge * | e, |
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 494 of file CCGSubSurf.c.
References CCGSUBSURF_free, and _CCGEdge::faces.
Referenced by _edge_unlinkMarkAndFree(), ccgSubSurf_free(), and ccgSubSurf_setSubdivisionLevels().
static void* _edge_getCo | ( | CCGEdge * | e, |
int | lvl, | ||
int | x, | ||
int | dataSize | ||
) | [static] |
Definition at line 477 of file CCGSubSurf.c.
References EDGE_getLevelData.
Referenced by ccgSubSurf_getEdgeLevelData().
Definition at line 485 of file CCGSubSurf.c.
References EDGE_getLevelData, and _CCGEdge::v0.
Referenced by ccgSubSurf__calcSubdivLevel(), ccgSubSurf__sync(), ccgSubSurf_stitchFaces(), ccgSubSurf_updateFromFaces(), and ccgSubSurf_updateToFaces().
static float* _edge_getNo | ( | CCGEdge * | e, |
int | lvl, | ||
int | x, | ||
int | dataSize, | ||
int | normalDataOffset | ||
) | [static] |
Definition at line 481 of file CCGSubSurf.c.
References EDGE_getLevelData.
Definition at line 469 of file CCGSubSurf.c.
References _CCGEdge::v0, and _CCGEdge::v1.
Referenced by ccgSubSurf__sync().
static int _edge_isBoundary | ( | const CCGEdge * | e | ) | [static] |
Definition at line 465 of file CCGSubSurf.c.
References _CCGEdge::numFaces.
Referenced by _vert_isBoundary(), ccgSubSurf__calcSubdivLevel(), and ccgSubSurf__sync().
static CCGEdge* _edge_new | ( | CCGEdgeHDL | eHDL, |
CCGVert * | v0, | ||
CCGVert * | v1, | ||
float | crease, | ||
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 432 of file CCGSubSurf.c.
References _vert_addEdge(), CCGSUBSURF_alloc, ccgSubSurf_getEdgeUserData(), _CCGEdge::crease, _CCGSubSurf::currentAge, credits_svn_gen::e, _CCGSubSurf::edgeUserAgeOffset, _CCGMeshIFC::edgeUserSize, _CCGEdge::eHDL, _CCGEdge::faces, _CCGEdge::flags, _CCGSubSurf::meshIFC, NULL, _CCGEdge::numFaces, _CCGSubSurf::subdivLevels, _CCGSubSurf::useAgeCounts, _CCGEdge::v0, _CCGEdge::v1, and _CCGMeshIFC::vertDataSize.
Referenced by ccgSubSurf_syncEdge(), and ccgSubSurf_syncFace().
Definition at line 452 of file CCGSubSurf.c.
References _CCGEdge::faces, i, and _CCGEdge::numFaces.
Referenced by _face_unlinkMarkAndFree().
static void _edge_unlinkMarkAndFree | ( | CCGEdge * | e, |
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 498 of file CCGSubSurf.c.
References _edge_free(), _vert_remEdge(), _CCGVert::flags, _CCGEdge::v0, _CCGEdge::v1, and Vert_eEffected.
Referenced by ccgSubSurf_processSync(), ccgSubSurf_syncEdge(), and ccgSubSurf_syncEdgeDel().
static void _ehash_free | ( | EHash * | eh, |
EHEntryFreeFP | freeEntry, | ||
void * | userData | ||
) | [static] |
Definition at line 77 of file CCGSubSurf.c.
References _EHash::buckets, _EHash::curSize, EHASH_free, _EHEntry::next, and next.
Referenced by ccgSubSurf_free(), ccgSubSurf_processSync(), and ccgSubSurf_setSubdivisionLevels().
Definition at line 96 of file CCGSubSurf.c.
References _EHash::buckets, _EHash::curSize, _EHash::curSizeIdx, EHASH_alloc, EHASH_free, EHASH_hash, hash, _EHEntry::key, kHashSizes, _EHEntry::next, next, and _EHash::numEntries.
Referenced by ccgSubSurf_syncEdge(), ccgSubSurf_syncFace(), and ccgSubSurf_syncVert().
static void* _ehash_lookup | ( | EHash * | eh, |
void * | key | ||
) | [static] |
Definition at line 141 of file CCGSubSurf.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().
static void* _ehash_lookupWithPrev | ( | EHash * | eh, |
void * | key, | ||
void *** | prevp_r | ||
) | [static] |
Definition at line 126 of file CCGSubSurf.c.
References _EHash::buckets, EHASH_hash, hash, and NULL.
Referenced by ccgSubSurf_syncEdge(), ccgSubSurf_syncEdgeDel(), ccgSubSurf_syncFace(), ccgSubSurf_syncFaceDel(), ccgSubSurf_syncVert(), and ccgSubSurf_syncVertDel().
static EHash* _ehash_new | ( | int | estimatedNumEntries, |
CCGAllocatorIFC * | allocatorIFC, | ||
CCGAllocatorHDL | allocator | ||
) | [static] |
Definition at line 62 of file CCGSubSurf.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().
static void _ehashIterator_free | ( | EHashIterator * | ehi | ) | [static] |
Definition at line 173 of file CCGSubSurf.c.
References _EHashIterator::eh, and EHASH_free.
Referenced by ccgEdgeIterator_free(), ccgFaceIterator_free(), and ccgVertIterator_free().
static void* _ehashIterator_getCurrent | ( | EHashIterator * | ehi | ) | [static] |
Definition at line 177 of file CCGSubSurf.c.
References _EHashIterator::curEntry.
Referenced by ccgEdgeIterator_getCurrent(), ccgFaceIterator_getCurrent(), and ccgVertIterator_getCurrent().
static int _ehashIterator_isStopped | ( | EHashIterator * | ehi | ) | [static] |
Definition at line 192 of file CCGSubSurf.c.
References _EHashIterator::curEntry.
Referenced by ccgEdgeIterator_isStopped(), ccgFaceIterator_isStopped(), and ccgVertIterator_isStopped().
static EHashIterator* _ehashIterator_new | ( | EHash * | eh | ) | [static] |
Definition at line 160 of file CCGSubSurf.c.
References _EHash::buckets, _EHashIterator::curBucket, _EHashIterator::curEntry, _EHash::curSize, _EHashIterator::eh, EHASH_alloc, and NULL.
Referenced by ccgSubSurf_getEdgeIterator(), ccgSubSurf_getFaceIterator(), and ccgSubSurf_getVertIterator().
static void _ehashIterator_next | ( | EHashIterator * | ehi | ) | [static] |
Definition at line 181 of file CCGSubSurf.c.
References _EHash::buckets, _EHashIterator::curBucket, _EHashIterator::curEntry, _EHash::curSize, _EHashIterator::eh, and _EHEntry::next.
Referenced by ccgEdgeIterator_next(), ccgFaceIterator_next(), and ccgVertIterator_next().
static void _face_calcIFNo | ( | CCGFace * | f, |
int | lvl, | ||
int | S, | ||
int | x, | ||
int | y, | ||
float * | no, | ||
int | levels, | ||
int | dataSize | ||
) | [static] |
Definition at line 605 of file CCGSubSurf.c.
References _face_getIFCo(), simple_enum_gen::d, EPSILON, length(), NormZero, and sqrt().
static void _face_free | ( | CCGFace * | f, |
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 631 of file CCGSubSurf.c.
References CCGSUBSURF_free.
Referenced by _face_unlinkMarkAndFree(), ccgSubSurf_free(), and ccgSubSurf_setSubdivisionLevels().
static CCG_INLINE void* _face_getIECo | ( | CCGFace * | f, |
int | lvl, | ||
int | S, | ||
int | x, | ||
int | levels, | ||
int | dataSize | ||
) | [static] |
Definition at line 541 of file CCGSubSurf.c.
References FACE_getCenterData.
Referenced by ccgSubSurf_getFaceGridEdgeData().
static CCG_INLINE void* _face_getIENo | ( | CCGFace * | f, |
int | lvl, | ||
int | S, | ||
int | x, | ||
int | levels, | ||
int | dataSize, | ||
int | normalDataOffset | ||
) | [static] |
Definition at line 547 of file CCGSubSurf.c.
References FACE_getCenterData.
static CCG_INLINE void* _face_getIFCo | ( | CCGFace * | f, |
int | lvl, | ||
int | S, | ||
int | x, | ||
int | y, | ||
int | levels, | ||
int | dataSize | ||
) | [static] |
Definition at line 553 of file CCGSubSurf.c.
References FACE_getCenterData.
Referenced by _face_calcIFNo(), _face_getIFCoEdge(), and ccgSubSurf_getFaceGridData().
static CCG_INLINE void* _face_getIFCoEdge | ( | CCGFace * | f, |
CCGEdge * | e, | ||
int | lvl, | ||
int | eX, | ||
int | eY, | ||
int | levels, | ||
int | dataSize | ||
) | [static] |
Definition at line 572 of file CCGSubSurf.c.
References _face_getIFCo(), credits_svn_gen::e, FACE_getEdges, FACE_getVerts, _CCGFace::numVerts, and _CCGEdge::v0.
Referenced by _face_getIFNoEdge(), and ccgSubSurf__calcSubdivLevel().
static CCG_INLINE float* _face_getIFNo | ( | CCGFace * | f, |
int | lvl, | ||
int | S, | ||
int | x, | ||
int | y, | ||
int | levels, | ||
int | dataSize, | ||
int | normalDataOffset | ||
) | [static] |
Definition at line 559 of file CCGSubSurf.c.
References FACE_getCenterData.
static float* _face_getIFNoEdge | ( | CCGFace * | f, |
CCGEdge * | e, | ||
int | lvl, | ||
int | eX, | ||
int | eY, | ||
int | levels, | ||
int | dataSize, | ||
int | normalDataOffset | ||
) | [static] |
Definition at line 602 of file CCGSubSurf.c.
References _face_getIFCoEdge().
Referenced by ccgSubSurf__calcVertNormals().
Definition at line 565 of file CCGSubSurf.c.
References FACE_getVerts, i, and _CCGFace::numVerts.
Referenced by ccgSubSurf__calcSubdivLevel(), and ccgSubSurf__calcVertNormals().
static CCGFace* _face_new | ( | CCGFaceHDL | fHDL, |
CCGVert ** | verts, | ||
CCGEdge ** | edges, | ||
int | numVerts, | ||
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 517 of file CCGSubSurf.c.
References _edge_addFace(), _vert_addFace(), CCGSUBSURF_alloc, ccgSubSurf_getFaceUserData(), _CCGSubSurf::currentAge, FACE_getEdges, FACE_getVerts, _CCGSubSurf::faceUserAgeOffset, _CCGMeshIFC::faceUserSize, _CCGFace::fHDL, _CCGFace::flags, i, _CCGSubSurf::meshIFC, _CCGFace::numVerts, _CCGSubSurf::subdivLevels, _CCGSubSurf::useAgeCounts, and _CCGMeshIFC::vertDataSize.
Referenced by ccgSubSurf_syncFace().
static void _face_unlinkMarkAndFree | ( | CCGFace * | f, |
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 634 of file CCGSubSurf.c.
References _edge_remFace(), _face_free(), _vert_remFace(), FACE_getEdges, FACE_getVerts, _CCGFace::numVerts, and Vert_eEffected.
Referenced by ccgSubSurf_processSync(), ccgSubSurf_syncFace(), and ccgSubSurf_syncFaceDel().
static CCGAllocatorIFC* _getStandardAllocatorIFC | ( | void | ) | [static] |
Definition at line 208 of file CCGSubSurf.c.
References _stdAllocator_alloc(), _stdAllocator_free(), _stdAllocator_realloc(), _CCGAllocatorIFC::alloc, _CCGAllocatorIFC::free, NULL, _CCGAllocatorIFC::realloc, and _CCGAllocatorIFC::release.
Referenced by ccgSubSurf_new().
static void* _stdAllocator_alloc | ( | CCGAllocatorHDL | UNUSEDa, |
int | numBytes | ||
) | [static] |
Definition at line 198 of file CCGSubSurf.c.
Referenced by _getStandardAllocatorIFC().
static void _stdAllocator_free | ( | CCGAllocatorHDL | UNUSEDa, |
void * | ptr | ||
) | [static] |
Definition at line 204 of file CCGSubSurf.c.
References addon::engine::free().
Referenced by _getStandardAllocatorIFC().
static void* _stdAllocator_realloc | ( | CCGAllocatorHDL | UNUSEDa, |
void * | ptr, | ||
int | newSize, | ||
int | UNUSEDoldSize | ||
) | [static] |
Definition at line 201 of file CCGSubSurf.c.
Referenced by _getStandardAllocatorIFC().
static void _vert_addEdge | ( | CCGVert * | v, |
CCGEdge * | e, | ||
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 387 of file CCGSubSurf.c.
References CCGSUBSURF_realloc, credits_svn_gen::e, _CCGVert::edges, and _CCGVert::numEdges.
Referenced by _edge_new().
static void _vert_addFace | ( | CCGVert * | v, |
CCGFace * | f, | ||
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 391 of file CCGSubSurf.c.
References CCGSUBSURF_realloc, _CCGVert::faces, and _CCGVert::numFaces.
Referenced by _face_new().
Definition at line 395 of file CCGSubSurf.c.
References credits_svn_gen::e, _CCGVert::edges, i, NULL, _CCGVert::numEdges, _CCGEdge::v0, and _CCGEdge::v1.
Referenced by ccgSubSurf_syncFace().
static void _vert_free | ( | CCGVert * | v, |
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 420 of file CCGSubSurf.c.
References CCGSUBSURF_free, _CCGVert::edges, and _CCGVert::faces.
Referenced by ccgSubSurf_free(), ccgSubSurf_processSync(), ccgSubSurf_setSubdivisionLevels(), and ccgSubSurf_syncVertDel().
static void* _vert_getCo | ( | CCGVert * | v, |
int | lvl, | ||
int | dataSize | ||
) | [static] |
Definition at line 413 of file CCGSubSurf.c.
References VERT_getLevelData.
Referenced by ccgSubSurf_getVertLevelData(), and ccgSubSurf_syncVert().
static float* _vert_getNo | ( | CCGVert * | v, |
int | lvl, | ||
int | dataSize, | ||
int | normalDataOffset | ||
) | [static] |
Definition at line 416 of file CCGSubSurf.c.
References VERT_getLevelData.
Referenced by ccgSubSurf__calcVertNormals().
static int _vert_isBoundary | ( | const CCGVert * | v | ) | [static] |
Definition at line 405 of file CCGSubSurf.c.
References _edge_isBoundary(), _CCGVert::edges, i, and _CCGVert::numEdges.
Referenced by ccgSubSurf__calcSubdivLevel(), and ccgSubSurf__sync().
static CCGVert* _vert_new | ( | CCGVertHDL | vHDL, |
CCGSubSurf * | ss | ||
) | [static] |
Definition at line 353 of file CCGSubSurf.c.
References CCGSUBSURF_alloc, ccgSubSurf_getVertUserData(), _CCGSubSurf::currentAge, _CCGVert::edges, _CCGVert::faces, _CCGVert::flags, _CCGSubSurf::meshIFC, NULL, _CCGVert::numEdges, _CCGVert::numFaces, _CCGSubSurf::subdivLevels, _CCGSubSurf::useAgeCounts, _CCGMeshIFC::vertDataSize, _CCGSubSurf::vertUserAgeOffset, _CCGMeshIFC::vertUserSize, and _CCGVert::vHDL.
Referenced by ccgSubSurf_syncVert().
Definition at line 369 of file CCGSubSurf.c.
References _CCGVert::edges, i, and _CCGVert::numEdges.
Referenced by _edge_unlinkMarkAndFree().
Definition at line 378 of file CCGSubSurf.c.
References _CCGVert::faces, i, and _CCGVert::numFaces.
Referenced by _face_unlinkMarkAndFree().
void ccgEdgeIterator_free | ( | CCGEdgeIterator * | vi | ) |
Definition at line 2720 of file CCGSubSurf.c.
References _ehashIterator_free().
Referenced by ccgDM_drawMappedEdges(), ccgDM_drawMappedEdgesInterp(), ccgDM_drawVerts(), ccgDM_foreachMappedEdge(), and ccgDM_getMinMax().
CCGEdge* ccgEdgeIterator_getCurrent | ( | CCGEdgeIterator * | vi | ) |
Definition at line 2711 of file CCGSubSurf.c.
References _ehashIterator_getCurrent().
Referenced by ccgDM_drawMappedEdges(), ccgDM_drawMappedEdgesInterp(), ccgDM_drawVerts(), ccgDM_foreachMappedEdge(), ccgDM_getMinMax(), ccgdm_getVertCos(), and getCCGDerivedMesh().
int ccgEdgeIterator_isStopped | ( | CCGEdgeIterator * | vi | ) |
Definition at line 2714 of file CCGSubSurf.c.
References _ehashIterator_isStopped().
Referenced by ccgDM_drawMappedEdges(), ccgDM_drawMappedEdgesInterp(), ccgDM_drawVerts(), ccgDM_foreachMappedEdge(), ccgDM_getMinMax(), ccgdm_getVertCos(), and getCCGDerivedMesh().
void ccgEdgeIterator_next | ( | CCGEdgeIterator * | vi | ) |
Definition at line 2717 of file CCGSubSurf.c.
References _ehashIterator_next().
Referenced by ccgDM_drawMappedEdges(), ccgDM_drawMappedEdgesInterp(), ccgDM_drawVerts(), ccgDM_foreachMappedEdge(), ccgDM_getMinMax(), ccgdm_getVertCos(), and getCCGDerivedMesh().
void ccgFaceIterator_free | ( | CCGFaceIterator * | vi | ) |
Definition at line 2733 of file CCGSubSurf.c.
References _ehashIterator_free().
Referenced by ccgDM_drawVerts(), ccgDM_foreachMappedFaceCenter(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and set_subsurf_uv().
CCGFace* ccgFaceIterator_getCurrent | ( | CCGFaceIterator * | vi | ) |
Definition at line 2724 of file CCGSubSurf.c.
References _ehashIterator_getCurrent().
Referenced by ccgDM_drawVerts(), ccgDM_foreachMappedFaceCenter(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and set_subsurf_uv().
int ccgFaceIterator_isStopped | ( | CCGFaceIterator * | vi | ) |
Definition at line 2727 of file CCGSubSurf.c.
References _ehashIterator_isStopped().
Referenced by ccgDM_drawVerts(), ccgDM_foreachMappedFaceCenter(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and set_subsurf_uv().
void ccgFaceIterator_next | ( | CCGFaceIterator * | vi | ) |
Definition at line 2730 of file CCGSubSurf.c.
References _ehashIterator_next().
Referenced by ccgDM_drawVerts(), ccgDM_foreachMappedFaceCenter(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and set_subsurf_uv().
static void ccgSubSurf__allFaces | ( | CCGSubSurf * | ss, |
CCGFace *** | faces, | ||
int * | numFaces, | ||
int * | freeFaces | ||
) | [static] |
Definition at line 2126 of file CCGSubSurf.c.
References _EHash::buckets, _EHash::curSize, _CCGSubSurf::fMap, i, MEM_mallocN(), _CCGFace::next, and _EHash::numEntries.
Referenced by ccgSubSurf_stitchFaces(), ccgSubSurf_updateFromFaces(), ccgSubSurf_updateLevels(), ccgSubSurf_updateNormals(), and ccgSubSurf_updateToFaces().
static void ccgSubSurf__calcSubdivLevel | ( | CCGSubSurf * | ss, |
CCGVert ** | effectedV, | ||
CCGEdge ** | effectedE, | ||
CCGFace ** | effectedF, | ||
int | numEffectedV, | ||
int | numEffectedE, | ||
int | numEffectedF, | ||
int | curLvl | ||
) | [static] |
Definition at line 1364 of file CCGSubSurf.c.
References _edge_getCoVert(), _edge_isBoundary(), _face_getIFCoEdge(), _face_getVertIndex(), _vert_isBoundary(), co, credits_svn_gen::e, EDGE_getCo, EDGE_getSharpness(), _CCGVert::edges, FACE_getCenterData, FACE_getEdges, FACE_getIECo, FACE_getIFCo, FACE_getVerts, _CCGVert::faces, _CCGEdge::faces, i, MEM_freeN(), MEM_mallocN(), _CCGSubSurf::meshIFC, _CCGVert::numEdges, _CCGVert::numFaces, _CCGEdge::numFaces, _CCGFace::numVerts, _CCGSubSurf::q, _CCGSubSurf::r, _CCGSubSurf::subdivLevels, _CCGEdge::v0, _CCGEdge::v1, VERT_getCo, VERT_seam(), VertDataAdd, VertDataAvg4, VertDataCopy, VertDataMulN, _CCGMeshIFC::vertDataSize, VertDataSub, and VertDataZero.
Referenced by ccgSubSurf__sync(), and ccgSubSurf_updateLevels().
static void ccgSubSurf__calcVertNormals | ( | CCGSubSurf * | ss, |
CCGVert ** | effectedV, | ||
CCGEdge ** | effectedE, | ||
CCGFace ** | effectedF, | ||
int | numEffectedV, | ||
int | numEffectedE, | ||
int | numEffectedF | ||
) | [static] |
Definition at line 1161 of file CCGSubSurf.c.
References _face_getIFNoEdge(), _face_getVertIndex(), _vert_getNo(), credits_svn_gen::e, Edge_eEffected, EDGE_getNo, EPSILON, FACE_calcIFNo, FACE_getCenterData, FACE_getEdges, FACE_getIENo, FACE_getIFNo, FACE_getVerts, _CCGVert::faces, _CCGEdge::faces, i, K, length(), _CCGSubSurf::meshIFC, NormAdd, _CCGSubSurf::normalDataOffset, NormCopy, NormZero, _CCGVert::numFaces, _CCGEdge::numFaces, _CCGFace::numVerts, sqrt(), _CCGSubSurf::subdivLevels, Vert_eEffected, VertDataCopy, and _CCGMeshIFC::vertDataSize.
Referenced by ccgSubSurf__sync(), and ccgSubSurf_updateNormals().
static void ccgSubSurf__effectedFaceNeighbours | ( | CCGSubSurf * | ss, |
CCGFace ** | faces, | ||
int | numFaces, | ||
CCGVert *** | verts, | ||
int * | numVerts, | ||
CCGEdge *** | edges, | ||
int * | numEdges | ||
) | [static] |
Definition at line 2149 of file CCGSubSurf.c.
References _EHash::buckets, _EHash::curSize, credits_svn_gen::e, Edge_eEffected, _CCGSubSurf::eMap, Face_eEffected, _CCGVert::faces, _CCGEdge::faces, _CCGFace::flags, _CCGVert::flags, _CCGEdge::flags, i, MEM_mallocN(), _CCGVert::next, _CCGEdge::next, _EHash::numEntries, _CCGVert::numFaces, _CCGEdge::numFaces, Vert_eEffected, and _CCGSubSurf::vMap.
Referenced by ccgSubSurf_stitchFaces(), ccgSubSurf_updateLevels(), and ccgSubSurf_updateNormals().
static void ccgSubSurf__sync | ( | CCGSubSurf * | ss | ) | [static] |
Definition at line 1850 of file CCGSubSurf.c.
References _edge_getCoVert(), _edge_getOtherVert(), _edge_isBoundary(), _vert_isBoundary(), _EHash::buckets, _CCGSubSurf::calcVertNormals, ccgSubSurf__calcSubdivLevel(), ccgSubSurf__calcVertNormals(), ccgSubSurf_getEdgeUserData(), ccgSubSurf_getFaceUserData(), ccgSubSurf_getVertUserData(), co, _CCGSubSurf::currentAge, _EHash::curSize, credits_svn_gen::e, Edge_eEffected, EDGE_getCo, EDGE_getSharpness(), _CCGVert::edges, _CCGSubSurf::edgeUserAgeOffset, _CCGSubSurf::eMap, Face_eEffected, FACE_getCenterData, FACE_getEdges, FACE_getIECo, FACE_getIFCo, FACE_getVerts, _CCGVert::faces, _CCGEdge::faces, _CCGSubSurf::faceUserAgeOffset, _CCGFace::flags, _CCGVert::flags, _CCGEdge::flags, _CCGSubSurf::fMap, i, MEM_freeN(), MEM_mallocN(), _CCGSubSurf::meshIFC, _CCGVert::next, _CCGVert::numEdges, _EHash::numEntries, _CCGVert::numFaces, _CCGEdge::numFaces, _CCGFace::numVerts, _CCGSubSurf::q, _CCGSubSurf::r, _CCGSubSurf::subdivLevels, _CCGSubSurf::useAgeCounts, _CCGEdge::v0, _CCGEdge::v1, Vert_eEffected, VERT_getCo, VERT_seam(), VertDataAdd, VertDataCopy, VertDataMulN, _CCGMeshIFC::vertDataSize, VertDataSub, VertDataZero, _CCGSubSurf::vertUserAgeOffset, and _CCGSubSurf::vMap.
Referenced by ccgSubSurf_processSync().
void ccgSubSurf_free | ( | CCGSubSurf * | ss | ) |
Definition at line 694 of file CCGSubSurf.c.
References _edge_free(), _ehash_free(), _face_free(), _vert_free(), _CCGSubSurf::allocator, _CCGSubSurf::allocatorIFC, CCGSUBSURF_free, _CCGSubSurf::defaultEdgeUserData, _CCGSubSurf::eMap, _CCGSubSurf::fMap, MEM_freeN(), _CCGSubSurf::oldEMap, _CCGSubSurf::oldFMap, _CCGSubSurf::oldVMap, _CCGSubSurf::q, _CCGSubSurf::r, _CCGAllocatorIFC::release, _CCGSubSurf::syncState, _CCGSubSurf::tempEdges, _CCGSubSurf::tempVerts, and _CCGSubSurf::vMap.
Referenced by _getSubSurf(), ccgDM_release(), freeData(), set_subsurf_uv(), subsurf_calculate_limit_positions(), and subsurf_make_derived_from_derived().
void ccgSubSurf_getAllowEdgeCreation | ( | CCGSubSurf * | ss, |
int * | allowEdgeCreation_r, | ||
float * | defaultCreaseValue_r, | ||
void * | defaultUserData_r | ||
) |
Definition at line 739 of file CCGSubSurf.c.
References _CCGSubSurf::allowEdgeCreation, _CCGSubSurf::defaultCreaseValue, _CCGSubSurf::defaultEdgeUserData, _CCGMeshIFC::edgeUserSize, and _CCGSubSurf::meshIFC.
CCGEdge* ccgSubSurf_getEdge | ( | CCGSubSurf * | ss, |
CCGEdgeHDL | e | ||
) |
Definition at line 2500 of file CCGSubSurf.c.
References _ehash_lookup(), and _CCGSubSurf::eMap.
int ccgSubSurf_getEdgeAge | ( | CCGSubSurf * | ss, |
CCGEdge * | e | ||
) |
Definition at line 2583 of file CCGSubSurf.c.
References ccgSubSurf_getEdgeUserData(), _CCGSubSurf::currentAge, _CCGSubSurf::edgeUserAgeOffset, and _CCGSubSurf::useAgeCounts.
Referenced by ccgDM_drawEdges(), ccgDM_drawMappedEdges(), and ccgDM_drawMappedEdgesInterp().
float ccgSubSurf_getEdgeCrease | ( | CCGEdge * | e | ) |
Definition at line 2623 of file CCGSubSurf.c.
References _CCGEdge::crease.
Referenced by ss_sync_from_uv().
void* ccgSubSurf_getEdgeData | ( | CCGSubSurf * | ss, |
CCGEdge * | e, | ||
int | x | ||
) |
Definition at line 2613 of file CCGSubSurf.c.
References ccgSubSurf_getEdgeLevelData(), and _CCGSubSurf::subdivLevels.
Referenced by ccgDM_copyFinalVertArray(), ccgDM_drawVerts(), ccgDM_getFinalVert(), ccgdm_getVertCos(), ccgSubSurf_getEdgeDataArray(), multires_mvert_to_ss(), and subsurf_calculate_limit_positions().
void* ccgSubSurf_getEdgeDataArray | ( | CCGSubSurf * | ss, |
CCGEdge * | e | ||
) |
Definition at line 2610 of file CCGSubSurf.c.
References ccgSubSurf_getEdgeData().
Referenced by ccgDM_drawEdges(), ccgDM_drawLooseEdges(), ccgDM_drawMappedEdges(), ccgDM_drawMappedEdgesInterp(), ccgDM_foreachMappedEdge(), and ccgDM_getMinMax().
CCGEdgeHDL ccgSubSurf_getEdgeEdgeHandle | ( | CCGEdge * | e | ) |
Definition at line 2580 of file CCGSubSurf.c.
References _CCGEdge::eHDL.
Referenced by ccgDM_copyFinalEdgeArray(), ccgdm_getVertCos(), and getCCGDerivedMesh().
Definition at line 2597 of file CCGSubSurf.c.
References _CCGEdge::faces, NULL, and _CCGEdge::numFaces.
Referenced by ccgdm_adjacent_grid().
CCGEdgeIterator* ccgSubSurf_getEdgeIterator | ( | CCGSubSurf * | ss | ) |
Definition at line 2691 of file CCGSubSurf.c.
References _ehashIterator_new(), and _CCGSubSurf::eMap.
Referenced by ccgDM_drawMappedEdges(), ccgDM_drawMappedEdgesInterp(), ccgDM_drawVerts(), ccgDM_foreachMappedEdge(), ccgDM_getMinMax(), ccgdm_getVertCos(), and getCCGDerivedMesh().
void* ccgSubSurf_getEdgeLevelData | ( | CCGSubSurf * | ss, |
CCGEdge * | e, | ||
int | x, | ||
int | level | ||
) |
Definition at line 2616 of file CCGSubSurf.c.
References _edge_getCo(), _CCGSubSurf::meshIFC, NULL, _CCGSubSurf::subdivLevels, and _CCGMeshIFC::vertDataSize.
Referenced by ccgSubSurf_getEdgeData().
int ccgSubSurf_getEdgeLevelSize | ( | const CCGSubSurf * | ss, |
int | level | ||
) |
Definition at line 2513 of file CCGSubSurf.c.
References _CCGSubSurf::subdivLevels.
Referenced by ccgSubSurf_getEdgeSize().
int ccgSubSurf_getEdgeNumFaces | ( | CCGEdge * | e | ) |
Definition at line 2594 of file CCGSubSurf.c.
References _CCGEdge::numFaces.
Referenced by ccgdm_adjacent_grid(), ccgDM_copyFinalEdgeArray(), ccgDM_drawEdges(), ccgDM_drawLooseEdges(), and ccgDM_getFinalEdge().
int ccgSubSurf_getEdgeSize | ( | const CCGSubSurf * | ss | ) |
Definition at line 2510 of file CCGSubSurf.c.
References ccgSubSurf_getEdgeLevelSize(), and _CCGSubSurf::subdivLevels.
Referenced by ccgDM_copyFinalEdgeArray(), ccgDM_copyFinalFaceArray(), ccgDM_copyFinalVertArray(), ccgDM_drawEdges(), ccgDM_drawLooseEdges(), ccgDM_drawMappedEdges(), ccgDM_drawMappedEdgesInterp(), ccgDM_drawMappedFacesGLSL(), ccgDM_drawMappedFacesMat(), ccgDM_drawVerts(), ccgDM_foreachMappedEdge(), ccgDM_get_edge_data_layer(), ccgDM_getFinalEdge(), ccgDM_getFinalFace(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and multires_mvert_to_ss().
void* ccgSubSurf_getEdgeUserData | ( | CCGSubSurf * | ss, |
CCGEdge * | e | ||
) |
Definition at line 2591 of file CCGSubSurf.c.
References EDGE_getLevelData, _CCGSubSurf::meshIFC, _CCGSubSurf::subdivLevels, and _CCGMeshIFC::vertDataSize.
Referenced by _edge_new(), ccgDM_getEdgeMapIndex(), ccgSubSurf__sync(), ccgSubSurf_getEdgeAge(), ccgSubSurf_syncFace(), getCCGDerivedMesh(), getEdgeIndex(), getFaceIndex(), and ss_sync_from_derivedmesh().
Definition at line 2604 of file CCGSubSurf.c.
References _CCGEdge::v0.
Referenced by getCCGDerivedMesh(), getEdgeIndex(), and getFaceIndex().
Definition at line 2607 of file CCGSubSurf.c.
References _CCGEdge::v1.
Referenced by getCCGDerivedMesh(), and getEdgeIndex().
CCGFace* ccgSubSurf_getFace | ( | CCGSubSurf * | ss, |
CCGFaceHDL | f | ||
) |
Definition at line 2503 of file CCGSubSurf.c.
References _ehash_lookup(), and _CCGSubSurf::fMap.
Referenced by ss_sync_from_uv().
int ccgSubSurf_getFaceAge | ( | CCGSubSurf * | ss, |
CCGFace * | f | ||
) |
Definition at line 2632 of file CCGSubSurf.c.
References ccgSubSurf_getFaceUserData(), _CCGSubSurf::currentAge, _CCGSubSurf::faceUserAgeOffset, and _CCGSubSurf::useAgeCounts.
void* ccgSubSurf_getFaceCenterData | ( | CCGFace * | f | ) |
Definition at line 2670 of file CCGSubSurf.c.
References FACE_getCenterData.
Referenced by ccgDM_copyFinalVertArray(), ccgDM_drawVerts(), ccgDM_getFinalVert(), ccgdm_getVertCos(), multires_mvert_to_ss(), and subsurf_calculate_limit_positions().
CCGEdge* ccgSubSurf_getFaceEdge | ( | CCGSubSurf * | UNUSEDss, |
CCGFace * | f, | ||
int | index | ||
) |
Definition at line 2654 of file CCGSubSurf.c.
References FACE_getEdges, NULL, and _CCGFace::numVerts.
Referenced by ccgdm_adjacent_grid(), getFaceIndex(), and ss_sync_from_uv().
Definition at line 2661 of file CCGSubSurf.c.
References FACE_getEdges, i, and _CCGFace::numVerts.
CCGFaceHDL ccgSubSurf_getFaceFaceHandle | ( | CCGSubSurf * | UNUSEDss, |
CCGFace * | f | ||
) |
Definition at line 2629 of file CCGSubSurf.c.
References _CCGFace::fHDL.
Referenced by ccgdm_adjacent_grid(), ccgDM_drawFacesSolid(), ccgDM_drawFacesTex_common(), ccgDM_drawMappedFaces(), ccgDM_drawMappedFacesGLSL(), ccgDM_drawMappedFacesMat(), ccgdm_getVertCos(), getCCGDerivedMesh(), and set_subsurf_uv().
void* ccgSubSurf_getFaceGridData | ( | CCGSubSurf * | ss, |
CCGFace * | f, | ||
int | gridIndex, | ||
int | x, | ||
int | y | ||
) |
Definition at line 2682 of file CCGSubSurf.c.
References _face_getIFCo(), _CCGSubSurf::meshIFC, _CCGSubSurf::subdivLevels, and _CCGMeshIFC::vertDataSize.
Referenced by ccgDM_copyFinalVertArray(), ccgDM_drawVerts(), ccgDM_foreachMappedFaceCenter(), ccgDM_getFinalVert(), ccgdm_getVertCos(), ccgSubSurf_getFaceGridDataArray(), and multires_mvert_to_ss().
void* ccgSubSurf_getFaceGridDataArray | ( | CCGSubSurf * | ss, |
CCGFace * | f, | ||
int | gridIndex | ||
) |
Definition at line 2679 of file CCGSubSurf.c.
References ccgSubSurf_getFaceGridData().
Referenced by ccgdm_create_grids(), ccgDM_drawEdges(), ccgDM_drawFacesColored(), ccgDM_drawFacesSolid(), ccgDM_drawFacesTex_common(), ccgDM_drawMappedFaces(), ccgDM_drawMappedFacesGLSL(), ccgDM_drawMappedFacesMat(), ccgDM_getMinMax(), and set_subsurf_uv().
void* ccgSubSurf_getFaceGridEdgeData | ( | CCGSubSurf * | ss, |
CCGFace * | f, | ||
int | gridIndex, | ||
int | x | ||
) |
Definition at line 2676 of file CCGSubSurf.c.
References _face_getIECo(), _CCGSubSurf::meshIFC, _CCGSubSurf::subdivLevels, and _CCGMeshIFC::vertDataSize.
Referenced by ccgDM_copyFinalVertArray(), ccgDM_drawVerts(), ccgDM_getFinalVert(), ccgdm_getVertCos(), ccgSubSurf_getFaceGridEdgeDataArray(), and multires_mvert_to_ss().
void* ccgSubSurf_getFaceGridEdgeDataArray | ( | CCGSubSurf * | ss, |
CCGFace * | f, | ||
int | gridIndex | ||
) |
Definition at line 2673 of file CCGSubSurf.c.
References ccgSubSurf_getFaceGridEdgeData().
CCGFaceIterator* ccgSubSurf_getFaceIterator | ( | CCGSubSurf * | ss | ) |
Definition at line 2694 of file CCGSubSurf.c.
References _ehashIterator_new(), and _CCGSubSurf::fMap.
Referenced by ccgDM_drawVerts(), ccgDM_foreachMappedFaceCenter(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and set_subsurf_uv().
int ccgSubSurf_getFaceNumVerts | ( | CCGFace * | f | ) |
Definition at line 2644 of file CCGSubSurf.c.
References _CCGFace::numVerts.
Referenced by ccgdm_adjacent_grid(), ccgDM_copyFinalEdgeArray(), ccgDM_copyFinalFaceArray(), ccgDM_copyFinalVertArray(), ccgdm_create_grids(), ccgDM_drawEdges(), ccgDM_drawFacesColored(), ccgDM_drawFacesSolid(), ccgDM_drawFacesTex_common(), ccgDM_drawMappedFaces(), ccgDM_drawMappedFacesGLSL(), ccgDM_drawMappedFacesMat(), ccgDM_drawVerts(), ccgDM_get_face_data_layer(), ccgDM_getFinalVert(), ccgDM_getMinMax(), ccgDM_getNumGrids(), ccgdm_getVertCos(), getCCGDerivedMesh(), getFaceIndex(), multires_mvert_to_ss(), and set_subsurf_uv().
void* ccgSubSurf_getFaceUserData | ( | CCGSubSurf * | ss, |
CCGFace * | f | ||
) |
Definition at line 2640 of file CCGSubSurf.c.
References FACE_getCenterData, _CCGSubSurf::meshIFC, _CCGFace::numVerts, _CCGSubSurf::subdivLevels, and _CCGMeshIFC::vertDataSize.
Referenced by _face_new(), ccgDM_getFaceMapIndex(), ccgSubSurf__sync(), ccgSubSurf_getFaceAge(), getCCGDerivedMesh(), getFaceIndex(), and ss_sync_from_derivedmesh().
CCGVert* ccgSubSurf_getFaceVert | ( | CCGSubSurf * | UNUSEDss, |
CCGFace * | f, | ||
int | index | ||
) |
Definition at line 2647 of file CCGSubSurf.c.
References FACE_getVerts, NULL, and _CCGFace::numVerts.
Referenced by getCCGDerivedMesh(), and getFaceIndex().
int ccgSubSurf_getGridLevelSize | ( | const CCGSubSurf * | ss, |
int | level | ||
) |
Definition at line 2523 of file CCGSubSurf.c.
References _CCGSubSurf::subdivLevels.
Referenced by ccgSubSurf_getGridSize().
int ccgSubSurf_getGridSize | ( | const CCGSubSurf * | ss | ) |
Definition at line 2520 of file CCGSubSurf.c.
References ccgSubSurf_getGridLevelSize(), and _CCGSubSurf::subdivLevels.
Referenced by ccgDM_copyFinalEdgeArray(), ccgDM_copyFinalFaceArray(), ccgDM_copyFinalVertArray(), ccgDM_drawEdges(), ccgDM_drawFacesColored(), ccgDM_drawFacesSolid(), ccgDM_drawFacesTex_common(), ccgDM_drawMappedFaces(), ccgDM_drawMappedFacesGLSL(), ccgDM_drawMappedFacesMat(), ccgDM_drawVerts(), ccgDM_get_face_data_layer(), ccgDM_getFinalEdge(), ccgDM_getFinalFace(), ccgDM_getFinalVert(), ccgDM_getGridSize(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), multires_mvert_to_ss(), and set_subsurf_uv().
int ccgSubSurf_getNumEdges | ( | const CCGSubSurf * | ss | ) |
Definition at line 2490 of file CCGSubSurf.c.
References _CCGSubSurf::eMap, and _EHash::numEntries.
Referenced by ccgDM_copyFinalEdgeArray(), ccgDM_copyFinalVertArray(), ccgDM_drawEdges(), ccgDM_drawLooseEdges(), ccgDM_get_edge_data_layer(), ccgDM_getFinalVert(), ccgdm_getVertCos(), getCCGDerivedMesh(), and multires_mvert_to_ss().
int ccgSubSurf_getNumFaces | ( | const CCGSubSurf * | ss | ) |
Definition at line 2493 of file CCGSubSurf.c.
References _CCGSubSurf::fMap, and _EHash::numEntries.
Referenced by ccgDM_copyFinalEdgeArray(), ccgDM_copyFinalFaceArray(), ccgDM_copyFinalVertArray(), ccgdm_create_grids(), ccgDM_drawEdges(), ccgDM_drawFacesColored(), ccgDM_drawFacesSolid(), ccgDM_drawFacesTex_common(), ccgDM_drawMappedFaces(), ccgDM_drawMappedFacesGLSL(), ccgDM_drawMappedFacesMat(), ccgDM_get_face_data_layer(), ccgDM_getFinalEdge(), ccgDM_getFinalFace(), ccgDM_getFinalVert(), ccgDM_getNumGrids(), ccgdm_getVertCos(), getCCGDerivedMesh(), multires_mvert_to_ss(), and set_subsurf_uv().
int ccgSubSurf_getNumFinalEdges | ( | const CCGSubSurf * | ss | ) |
Definition at line 2745 of file CCGSubSurf.c.
References _CCGSubSurf::eMap, _EHash::numEntries, _CCGSubSurf::numGrids, and _CCGSubSurf::subdivLevels.
Referenced by ccgDM_getNumEdges(), and getCCGDerivedMesh().
int ccgSubSurf_getNumFinalFaces | ( | const CCGSubSurf * | ss | ) |
Definition at line 2751 of file CCGSubSurf.c.
References _CCGSubSurf::numGrids, and _CCGSubSurf::subdivLevels.
Referenced by ccgDM_getNumFaces(), and getCCGDerivedMesh().
int ccgSubSurf_getNumFinalVerts | ( | const CCGSubSurf * | ss | ) |
Definition at line 2739 of file CCGSubSurf.c.
References _CCGSubSurf::eMap, _CCGSubSurf::fMap, _EHash::numEntries, _CCGSubSurf::numGrids, _CCGSubSurf::subdivLevels, and _CCGSubSurf::vMap.
Referenced by ccgDM_getNumVerts(), and getCCGDerivedMesh().
int ccgSubSurf_getNumVerts | ( | const CCGSubSurf * | ss | ) |
Definition at line 2487 of file CCGSubSurf.c.
References _EHash::numEntries, and _CCGSubSurf::vMap.
Referenced by ccgDM_copyFinalVertArray(), ccgDM_get_vert_data_layer(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and multires_mvert_to_ss().
int ccgSubSurf_getSubdivisionLevels | ( | const CCGSubSurf * | ss | ) |
Definition at line 2507 of file CCGSubSurf.c.
References _CCGSubSurf::subdivLevels.
Referenced by set_subsurf_uv(), ss_sync_from_derivedmesh(), and ss_sync_from_uv().
void ccgSubSurf_getUseAgeCounts | ( | CCGSubSurf * | ss, |
int * | useAgeCounts_r, | ||
int * | vertUserOffset_r, | ||
int * | edgeUserOffset_r, | ||
int * | faceUserOffset_r | ||
) |
Definition at line 764 of file CCGSubSurf.c.
References _CCGSubSurf::edgeUserAgeOffset, _CCGSubSurf::faceUserAgeOffset, _CCGSubSurf::useAgeCounts, and _CCGSubSurf::vertUserAgeOffset.
Referenced by _getSubSurf(), ccgDM_drawEdges(), ccgDM_drawMappedEdges(), and ccgDM_drawMappedEdgesInterp().
CCGVert* ccgSubSurf_getVert | ( | CCGSubSurf * | ss, |
CCGVertHDL | v | ||
) |
Definition at line 2497 of file CCGSubSurf.c.
References _ehash_lookup(), and _CCGSubSurf::vMap.
int ccgSubSurf_getVertAge | ( | CCGSubSurf * | ss, |
CCGVert * | v | ||
) |
Definition at line 2536 of file CCGSubSurf.c.
References ccgSubSurf_getVertUserData(), _CCGSubSurf::currentAge, _CCGSubSurf::useAgeCounts, and _CCGSubSurf::vertUserAgeOffset.
void* ccgSubSurf_getVertData | ( | CCGSubSurf * | ss, |
CCGVert * | v | ||
) |
Definition at line 2567 of file CCGSubSurf.c.
References ccgSubSurf_getVertLevelData(), and _CCGSubSurf::subdivLevels.
Referenced by ccgDM_copyFinalVertArray(), ccgDM_drawVerts(), ccgDM_foreachMappedVert(), ccgDM_getFinalVert(), ccgDM_getMinMax(), ccgdm_getVertCos(), multires_mvert_to_ss(), and subsurf_calculate_limit_positions().
Definition at line 2560 of file CCGSubSurf.c.
References _CCGVert::edges, NULL, and _CCGVert::numEdges.
Referenced by subsurf_calculate_limit_positions().
Definition at line 2550 of file CCGSubSurf.c.
References _CCGVert::faces, NULL, and _CCGVert::numFaces.
Referenced by subsurf_calculate_limit_positions().
CCGVertIterator* ccgSubSurf_getVertIterator | ( | CCGSubSurf * | ss | ) |
Definition at line 2688 of file CCGSubSurf.c.
References _ehashIterator_new(), and _CCGSubSurf::vMap.
Referenced by ccgDM_drawVerts(), ccgDM_foreachMappedVert(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and subsurf_calculate_limit_positions().
void* ccgSubSurf_getVertLevelData | ( | CCGSubSurf * | ss, |
CCGVert * | v, | ||
int | level | ||
) |
Definition at line 2570 of file CCGSubSurf.c.
References _vert_getCo(), _CCGSubSurf::meshIFC, NULL, _CCGSubSurf::subdivLevels, and _CCGMeshIFC::vertDataSize.
Referenced by ccgSubSurf_getVertData().
int ccgSubSurf_getVertNumEdges | ( | CCGVert * | v | ) |
Definition at line 2557 of file CCGSubSurf.c.
References _CCGVert::numEdges.
Referenced by subsurf_calculate_limit_positions().
int ccgSubSurf_getVertNumFaces | ( | CCGVert * | v | ) |
Definition at line 2547 of file CCGSubSurf.c.
References _CCGVert::numFaces.
Referenced by subsurf_calculate_limit_positions().
void* ccgSubSurf_getVertUserData | ( | CCGSubSurf * | ss, |
CCGVert * | v | ||
) |
Definition at line 2544 of file CCGSubSurf.c.
References _CCGSubSurf::meshIFC, _CCGSubSurf::subdivLevels, VERT_getLevelData, and _CCGMeshIFC::vertDataSize.
Referenced by _vert_new(), ccgDM_getVertMapIndex(), ccgSubSurf__sync(), ccgSubSurf_getVertAge(), getCCGDerivedMesh(), getEdgeIndex(), getFaceIndex(), and ss_sync_from_derivedmesh().
CCGVertHDL ccgSubSurf_getVertVertHandle | ( | CCGVert * | v | ) |
Definition at line 2533 of file CCGSubSurf.c.
References _CCGVert::vHDL.
Referenced by ccgdm_getVertCos(), getCCGDerivedMesh(), and subsurf_calculate_limit_positions().
CCGError ccgSubSurf_initFullSync | ( | CCGSubSurf * | ss | ) |
Definition at line 811 of file CCGSubSurf.c.
References _ehash_new(), _CCGSubSurf::allocator, _CCGSubSurf::allocatorIFC, _CCGSubSurf::currentAge, eCCGError_InvalidSyncState, eCCGError_None, _CCGSubSurf::eMap, eSyncState_None, eSyncState_Vert, _CCGSubSurf::fMap, _CCGSubSurf::lenTempArrays, MEM_mallocN(), _CCGSubSurf::numGrids, _CCGSubSurf::oldEMap, _CCGSubSurf::oldFMap, _CCGSubSurf::oldVMap, _CCGSubSurf::syncState, _CCGSubSurf::tempEdges, _CCGSubSurf::tempVerts, and _CCGSubSurf::vMap.
Referenced by ss_sync_from_derivedmesh(), and ss_sync_from_uv().
CCGError ccgSubSurf_initPartialSync | ( | CCGSubSurf * | ss | ) |
Definition at line 837 of file CCGSubSurf.c.
References _CCGSubSurf::currentAge, eCCGError_InvalidSyncState, eCCGError_None, eSyncState_None, eSyncState_Partial, and _CCGSubSurf::syncState.
CCGSubSurf* ccgSubSurf_new | ( | CCGMeshIFC * | ifc, |
int | subdivLevels, | ||
CCGAllocatorIFC * | allocatorIFC, | ||
CCGAllocatorHDL | allocator | ||
) |
Definition at line 646 of file CCGSubSurf.c.
References _ehash_new(), _getStandardAllocatorIFC(), _CCGAllocatorIFC::alloc, _CCGSubSurf::allocator, _CCGSubSurf::allocatorIFC, _CCGSubSurf::allowEdgeCreation, _CCGSubSurf::calcVertNormals, CCGSUBSURF_alloc, _CCGSubSurf::currentAge, _CCGSubSurf::defaultCreaseValue, _CCGSubSurf::defaultEdgeUserData, _CCGSubSurf::edgeUserAgeOffset, _CCGSubSurf::eMap, eSyncState_None, _CCGSubSurf::faceUserAgeOffset, _CCGSubSurf::fMap, _CCGSubSurf::lenTempArrays, _CCGSubSurf::meshIFC, _CCGSubSurf::normalDataOffset, NULL, _CCGSubSurf::numGrids, _CCGSubSurf::oldEMap, _CCGSubSurf::oldFMap, _CCGSubSurf::oldVMap, _CCGSubSurf::q, _CCGSubSurf::r, _CCGSubSurf::subdivLevels, _CCGSubSurf::syncState, _CCGSubSurf::tempEdges, _CCGSubSurf::tempVerts, _CCGSubSurf::useAgeCounts, _CCGMeshIFC::vertDataSize, _CCGSubSurf::vertUserAgeOffset, and _CCGSubSurf::vMap.
Referenced by _getSubSurf().
CCGError ccgSubSurf_processSync | ( | CCGSubSurf * | ss | ) |
Definition at line 1128 of file CCGSubSurf.c.
References _edge_unlinkMarkAndFree(), _ehash_free(), _face_unlinkMarkAndFree(), _vert_free(), ccgSubSurf__sync(), eCCGError_InvalidSyncState, eCCGError_None, eSyncState_None, eSyncState_Partial, _CCGSubSurf::lenTempArrays, MEM_freeN(), NULL, _CCGSubSurf::oldEMap, _CCGSubSurf::oldFMap, _CCGSubSurf::oldVMap, _CCGSubSurf::syncState, _CCGSubSurf::tempEdges, and _CCGSubSurf::tempVerts.
Referenced by ss_sync_from_derivedmesh(), and ss_sync_from_uv().
CCGError ccgSubSurf_setAllowEdgeCreation | ( | CCGSubSurf * | ss, |
int | allowEdgeCreation, | ||
float | defaultCreaseValue, | ||
void * | defaultUserData | ||
) |
Definition at line 722 of file CCGSubSurf.c.
References _CCGSubSurf::allowEdgeCreation, CCGSUBSURF_alloc, CCGSUBSURF_free, _CCGSubSurf::defaultCreaseValue, _CCGSubSurf::defaultEdgeUserData, eCCGError_None, _CCGMeshIFC::edgeUserSize, and _CCGSubSurf::meshIFC.
CCGError ccgSubSurf_setCalcVertexNormals | ( | CCGSubSurf * | ss, |
int | useVertNormals, | ||
int | normalDataOffset | ||
) |
Definition at line 793 of file CCGSubSurf.c.
References _CCGSubSurf::calcVertNormals, eCCGError_InvalidValue, eCCGError_None, _CCGSubSurf::meshIFC, _CCGSubSurf::normalDataOffset, and _CCGMeshIFC::vertDataSize.
Referenced by _getSubSurf().
CCGError ccgSubSurf_setSubdivisionLevels | ( | CCGSubSurf * | ss, |
int | subdivisionLevels | ||
) |
Definition at line 747 of file CCGSubSurf.c.
References _edge_free(), _ehash_free(), _ehash_new(), _face_free(), _vert_free(), _CCGSubSurf::allocator, _CCGSubSurf::allocatorIFC, eCCGError_InvalidValue, eCCGError_None, _CCGSubSurf::eMap, _CCGSubSurf::fMap, _CCGSubSurf::numGrids, _CCGSubSurf::subdivLevels, and _CCGSubSurf::vMap.
Referenced by _getSubSurf().
CCGError ccgSubSurf_setUseAgeCounts | ( | CCGSubSurf * | ss, |
int | useAgeCounts, | ||
int | vertUserOffset, | ||
int | edgeUserOffset, | ||
int | faceUserOffset | ||
) |
Definition at line 773 of file CCGSubSurf.c.
References eCCGError_InvalidValue, eCCGError_None, _CCGSubSurf::edgeUserAgeOffset, _CCGMeshIFC::edgeUserSize, _CCGSubSurf::faceUserAgeOffset, _CCGMeshIFC::faceUserSize, _CCGSubSurf::meshIFC, _CCGSubSurf::useAgeCounts, _CCGSubSurf::vertUserAgeOffset, and _CCGMeshIFC::vertUserSize.
Referenced by _getSubSurf().
CCGError ccgSubSurf_stitchFaces | ( | CCGSubSurf * | ss, |
int | lvl, | ||
CCGFace ** | effectedF, | ||
int | numEffectedF | ||
) |
Definition at line 2283 of file CCGSubSurf.c.
References _edge_getCoVert(), ccgSubSurf__allFaces(), ccgSubSurf__effectedFaceNeighbours(), credits_svn_gen::e, eCCGError_None, Edge_eEffected, EDGE_getCo, FACE_getCenterData, FACE_getEdges, FACE_getIECo, FACE_getIFCo, FACE_getVerts, i, MEM_freeN(), _CCGSubSurf::meshIFC, _CCGVert::numFaces, _CCGEdge::numFaces, _CCGFace::numVerts, _CCGSubSurf::subdivLevels, _CCGEdge::v0, _CCGEdge::v1, Vert_eEffected, VERT_getCo, VertDataAdd, VertDataCopy, VertDataMulN, _CCGMeshIFC::vertDataSize, and VertDataZero.
Referenced by multires_stitch_grids(), and multiresModifier_disp_run().
CCGError ccgSubSurf_syncEdge | ( | CCGSubSurf * | ss, |
CCGEdgeHDL | eHDL, | ||
CCGVertHDL | e_vHDL0, | ||
CCGVertHDL | e_vHDL1, | ||
float | crease, | ||
CCGEdge ** | e_r | ||
) |
Definition at line 960 of file CCGSubSurf.c.
References _edge_new(), _edge_unlinkMarkAndFree(), _ehash_insert(), _ehash_lookup(), _ehash_lookupWithPrev(), _CCGEdge::crease, credits_svn_gen::e, eCCGError_InvalidSyncState, eCCGError_None, _CCGSubSurf::eMap, eSyncState_Edge, eSyncState_Partial, eSyncState_Vert, _CCGEdge::next, NULL, _CCGSubSurf::oldEMap, _CCGSubSurf::syncState, _CCGEdge::v0, _CCGEdge::v1, Vert_eChanged, Vert_eEffected, _CCGVert::vHDL, and _CCGSubSurf::vMap.
Referenced by ss_sync_from_derivedmesh(), and ss_sync_from_uv().
CCGError ccgSubSurf_syncEdgeDel | ( | CCGSubSurf * | ss, |
CCGEdgeHDL | eHDL | ||
) |
Definition at line 867 of file CCGSubSurf.c.
References _edge_unlinkMarkAndFree(), _ehash_lookupWithPrev(), credits_svn_gen::e, eCCGError_InvalidSyncState, eCCGError_InvalidValue, eCCGError_None, _CCGSubSurf::eMap, eSyncState_Partial, _CCGEdge::next, _CCGEdge::numFaces, and _CCGSubSurf::syncState.
CCGError ccgSubSurf_syncFace | ( | CCGSubSurf * | ss, |
CCGFaceHDL | fHDL, | ||
int | numVerts, | ||
CCGVertHDL * | vHDLs, | ||
CCGFace ** | f_r | ||
) |
Definition at line 1014 of file CCGSubSurf.c.
References _edge_new(), _ehash_insert(), _ehash_lookup(), _ehash_lookupWithPrev(), _face_new(), _face_unlinkMarkAndFree(), _vert_findEdgeTo(), _CCGSubSurf::allowEdgeCreation, ccgSubSurf_getEdgeUserData(), _CCGSubSurf::defaultCreaseValue, _CCGSubSurf::defaultEdgeUserData, credits_svn_gen::e, eCCGError_InvalidSyncState, eCCGError_InvalidValue, eCCGError_None, _CCGMeshIFC::edgeUserSize, _CCGSubSurf::eMap, eSyncState_Edge, eSyncState_Face, eSyncState_Partial, eSyncState_Vert, FACE_getEdges, FACE_getVerts, _CCGSubSurf::fMap, _CCGSubSurf::lenTempArrays, MEM_reallocN(), _CCGSubSurf::meshIFC, _CCGFace::next, NULL, _CCGSubSurf::numGrids, _CCGFace::numVerts, _CCGSubSurf::oldFMap, _CCGSubSurf::syncState, _CCGSubSurf::tempEdges, _CCGSubSurf::tempVerts, Vert_eChanged, Vert_eEffected, and _CCGSubSurf::vMap.
Referenced by ss_sync_from_derivedmesh(), and ss_sync_from_uv().
CCGError ccgSubSurf_syncFaceDel | ( | CCGSubSurf * | ss, |
CCGFaceHDL | fHDL | ||
) |
Definition at line 885 of file CCGSubSurf.c.
References _ehash_lookupWithPrev(), _face_unlinkMarkAndFree(), eCCGError_InvalidSyncState, eCCGError_InvalidValue, eCCGError_None, eSyncState_Partial, _CCGSubSurf::fMap, _CCGFace::next, and _CCGSubSurf::syncState.
CCGError ccgSubSurf_syncVert | ( | CCGSubSurf * | ss, |
CCGVertHDL | vHDL, | ||
const void * | vertData, | ||
int | seam, | ||
CCGVert ** | v_r | ||
) |
Definition at line 903 of file CCGSubSurf.c.
References _ehash_insert(), _ehash_lookupWithPrev(), _vert_getCo(), _vert_new(), credits_svn_gen::e, eCCGError_InvalidSyncState, eCCGError_None, _CCGVert::edges, eSyncState_Partial, eSyncState_Vert, FACE_getVerts, _CCGVert::faces, _CCGVert::flags, i, _CCGSubSurf::meshIFC, _CCGVert::next, NULL, _CCGVert::numEdges, _CCGVert::numFaces, _CCGFace::numVerts, _CCGSubSurf::oldVMap, _CCGSubSurf::syncState, _CCGEdge::v0, _CCGEdge::v1, Vert_eChanged, Vert_eEffected, Vert_eSeam, VertDataCopy, VertDataEqual(), _CCGMeshIFC::vertDataSize, and _CCGSubSurf::vMap.
Referenced by ss_sync_from_derivedmesh(), and ss_sync_from_uv().
CCGError ccgSubSurf_syncVertDel | ( | CCGSubSurf * | ss, |
CCGVertHDL | vHDL | ||
) |
Definition at line 849 of file CCGSubSurf.c.
References _ehash_lookupWithPrev(), _vert_free(), eCCGError_InvalidSyncState, eCCGError_InvalidValue, eCCGError_None, eSyncState_Partial, _CCGVert::next, _CCGVert::numEdges, _CCGVert::numFaces, _CCGSubSurf::syncState, and _CCGSubSurf::vMap.
CCGError ccgSubSurf_updateFromFaces | ( | CCGSubSurf * | ss, |
int | lvl, | ||
CCGFace ** | effectedF, | ||
int | numEffectedF | ||
) |
Definition at line 2201 of file CCGSubSurf.c.
References _edge_getCoVert(), ccgSubSurf__allFaces(), credits_svn_gen::e, eCCGError_None, FACE_getCenterData, FACE_getEdges, FACE_getIECo, FACE_getIFCo, FACE_getVerts, i, MEM_freeN(), _CCGSubSurf::meshIFC, _CCGFace::numVerts, _CCGSubSurf::subdivLevels, VERT_getCo, VertDataCopy, and _CCGMeshIFC::vertDataSize.
Referenced by ccgdm_pbvh_update(), multires_subdivide(), and multiresModifier_update().
CCGError ccgSubSurf_updateLevels | ( | CCGSubSurf * | ss, |
int | lvl, | ||
CCGFace ** | effectedF, | ||
int | numEffectedF | ||
) |
Definition at line 2449 of file CCGSubSurf.c.
References ccgSubSurf__allFaces(), ccgSubSurf__calcSubdivLevel(), ccgSubSurf__effectedFaceNeighbours(), eCCGError_None, i, MEM_freeN(), and _CCGSubSurf::subdivLevels.
Referenced by multires_subdivide(), and multiresModifier_update().
CCGError ccgSubSurf_updateNormals | ( | CCGSubSurf * | ss, |
CCGFace ** | effectedF, | ||
int | numEffectedF | ||
) |
Definition at line 2418 of file CCGSubSurf.c.
References _CCGSubSurf::calcVertNormals, ccgSubSurf__allFaces(), ccgSubSurf__calcVertNormals(), ccgSubSurf__effectedFaceNeighbours(), eCCGError_None, i, and MEM_freeN().
Referenced by ccgdm_pbvh_update(), and multiresModifier_disp_run().
CCGError ccgSubSurf_updateToFaces | ( | CCGSubSurf * | ss, |
int | lvl, | ||
CCGFace ** | effectedF, | ||
int | numEffectedF | ||
) |
Definition at line 2240 of file CCGSubSurf.c.
References _edge_getCoVert(), ccgSubSurf__allFaces(), credits_svn_gen::e, eCCGError_None, FACE_getCenterData, FACE_getEdges, FACE_getIECo, FACE_getIFCo, FACE_getVerts, i, MEM_freeN(), _CCGSubSurf::meshIFC, _CCGFace::numVerts, _CCGSubSurf::subdivLevels, VERT_getCo, VertDataCopy, and _CCGMeshIFC::vertDataSize.
Referenced by multires_mvert_to_ss().
void ccgVertIterator_free | ( | CCGVertIterator * | vi | ) |
Definition at line 2707 of file CCGSubSurf.c.
References _ehashIterator_free().
Referenced by ccgDM_drawVerts(), ccgDM_foreachMappedVert(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and subsurf_calculate_limit_positions().
CCGVert* ccgVertIterator_getCurrent | ( | CCGVertIterator * | vi | ) |
Definition at line 2698 of file CCGSubSurf.c.
References _ehashIterator_getCurrent().
Referenced by ccgDM_drawVerts(), ccgDM_foreachMappedVert(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and subsurf_calculate_limit_positions().
int ccgVertIterator_isStopped | ( | CCGVertIterator * | vi | ) |
Definition at line 2701 of file CCGSubSurf.c.
References _ehashIterator_isStopped().
Referenced by ccgDM_drawVerts(), ccgDM_foreachMappedVert(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and subsurf_calculate_limit_positions().
void ccgVertIterator_next | ( | CCGVertIterator * | vi | ) |
Definition at line 2704 of file CCGSubSurf.c.
References _ehashIterator_next().
Referenced by ccgDM_drawVerts(), ccgDM_foreachMappedVert(), ccgDM_getMinMax(), ccgdm_getVertCos(), getCCGDerivedMesh(), and subsurf_calculate_limit_positions().
static float EDGE_getSharpness | ( | CCGEdge * | e, |
int | lvl | ||
) | [static] |
Definition at line 506 of file CCGSubSurf.c.
References _CCGEdge::crease.
Referenced by ccgSubSurf__calcSubdivLevel(), and ccgSubSurf__sync().
static int VERT_seam | ( | const CCGVert * | v | ) | [static] |
Definition at line 426 of file CCGSubSurf.c.
References _CCGVert::flags, and Vert_eSeam.
Referenced by ccgSubSurf__calcSubdivLevel(), and ccgSubSurf__sync().
static int VertDataEqual | ( | const float * | a, |
const float * | b | ||
) | [static] |
Definition at line 221 of file CCGSubSurf.c.
Referenced by ccgSubSurf_syncVert().
int kHashSizes[] [static] |
{ 1, 3, 5, 11, 17, 37, 67, 131, 257, 521, 1031, 2053, 4099, 8209, 16411, 32771, 65537, 131101, 262147, 524309, 1048583, 2097169, 4194319, 8388617, 16777259, 33554467, 67108879, 134217757, 268435459 }
Definition at line 38 of file CCGSubSurf.c.
Referenced by _ehash_insert(), and _ehash_new().