Blender V2.61 - r43446
Defines | Functions | Variables

subsurf_ccg.c File Reference

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <float.h>
#include "MEM_guardedalloc.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_blenlib.h"
#include "BLI_edgehash.h"
#include "BLI_math.h"
#include "BLI_memarena.h"
#include "BLI_pbvh.h"
#include "BLI_utildefines.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_global.h"
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BKE_paint.h"
#include "BKE_scene.h"
#include "BKE_subsurf.h"
#include "GL/glew.h"
#include "GPU_draw.h"
#include "GPU_extensions.h"
#include "GPU_material.h"
#include "CCGSubSurf.h"

Go to the source code of this file.

Defines

#define PASSATTRIB(dx, dy, vert)
#define PASSATTRIB(dx, dy, vert)

Functions

static int ccgDM_getVertMapIndex (CCGSubSurf *ss, CCGVert *v)
static int ccgDM_getEdgeMapIndex (CCGSubSurf *ss, CCGEdge *e)
static int ccgDM_getFaceMapIndex (CCGSubSurf *ss, CCGFace *f)
static int ccgDM_use_grid_pbvh (CCGDerivedMesh *ccgdm)
static void * arena_alloc (CCGAllocatorHDL a, int numBytes)
static void * arena_realloc (CCGAllocatorHDL a, void *ptr, int newSize, int oldSize)
static void arena_free (CCGAllocatorHDL UNUSED(a), void *UNUSED(ptr))
static void arena_release (CCGAllocatorHDL a)
static CCGSubSurf_getSubSurf (CCGSubSurf *prevSS, int subdivLevels, int useAging, int useArena, int UNUSED(useFlatSubdiv))
static int getEdgeIndex (CCGSubSurf *ss, CCGEdge *e, int x, int edgeSize)
static int getFaceIndex (CCGSubSurf *ss, CCGFace *f, int S, int x, int y, int edgeSize, int gridSize)
static void get_face_uv_map_vert (UvVertMap *vmap, struct MFace *mf, int fi, CCGVertHDL *fverts)
static int ss_sync_from_uv (CCGSubSurf *ss, CCGSubSurf *origss, DerivedMesh *dm, MTFace *tface)
static void set_subsurf_uv (CCGSubSurf *ss, DerivedMesh *dm, DerivedMesh *result, int n)
static void calc_ss_weights (int gridFaces, FaceVertWeight **qweight, FaceVertWeight **tweight)
static void ss_sync_from_derivedmesh (CCGSubSurf *ss, DerivedMesh *dm, float(*vertexCos)[3], int useFlatSubdiv)
static void ccgDM_getMinMax (DerivedMesh *dm, float min_r[3], float max_r[3])
static int ccgDM_getNumVerts (DerivedMesh *dm)
static int ccgDM_getNumEdges (DerivedMesh *dm)
static int ccgDM_getNumFaces (DerivedMesh *dm)
static void ccgDM_getFinalVert (DerivedMesh *dm, int vertNum, MVert *mv)
static void ccgDM_getFinalVertCo (DerivedMesh *dm, int vertNum, float co_r[3])
static void ccgDM_getFinalVertNo (DerivedMesh *dm, int vertNum, float no_r[3])
static void ccgDM_getFinalEdge (DerivedMesh *dm, int edgeNum, MEdge *med)
static void ccgDM_getFinalFace (DerivedMesh *dm, int faceNum, MFace *mf)
static void ccgDM_copyFinalVertArray (DerivedMesh *dm, MVert *mvert)
static void ccgDM_copyFinalEdgeArray (DerivedMesh *dm, MEdge *medge)
static void ccgDM_copyFinalFaceArray (DerivedMesh *dm, MFace *mface)
static void ccgdm_getVertCos (DerivedMesh *dm, float(*cos)[3])
static void ccgDM_foreachMappedVert (DerivedMesh *dm, void(*func)(void *userData, int index, float *co, float *no_f, short *no_s), void *userData)
static void ccgDM_foreachMappedEdge (DerivedMesh *dm, void(*func)(void *userData, int index, float *v0co, float *v1co), void *userData)
static void ccgDM_drawVerts (DerivedMesh *dm)
static void ccgdm_pbvh_update (CCGDerivedMesh *ccgdm)
static void ccgDM_drawEdges (DerivedMesh *dm, int drawLooseEdges, int UNUSED(drawAllEdges))
static void ccgDM_drawLooseEdges (DerivedMesh *dm)
static void ccgDM_glNormalFast (float *a, float *b, float *c, float *d)
static void ccgDM_drawFacesSolid (DerivedMesh *dm, float(*partial_redraw_planes)[4], int fast, int(*setMaterial)(int, void *attribs))
static void ccgDM_drawMappedFacesGLSL (DerivedMesh *dm, int(*setMaterial)(int, void *attribs), int(*setDrawOptions)(void *userData, int index), void *userData)
static void ccgDM_drawFacesGLSL (DerivedMesh *dm, int(*setMaterial)(int, void *attribs))
static void ccgDM_drawMappedFacesMat (DerivedMesh *dm, void(*setMaterial)(void *userData, int, void *attribs), int(*setFace)(void *userData, int index), void *userData)
static void ccgDM_drawFacesColored (DerivedMesh *dm, int UNUSED(useTwoSided), unsigned char *col1, unsigned char *col2)
static void ccgDM_drawFacesTex_common (DerivedMesh *dm, int(*drawParams)(MTFace *tface, int has_mcol, int matnr), int(*drawParamsMapped)(void *userData, int index), int(*compareDrawOptions)(void *userData, int cur_index, int next_index), void *userData)
static void ccgDM_drawFacesTex (DerivedMesh *dm, int(*setDrawOptions)(MTFace *tface, int has_mcol, int matnr), int(*compareDrawOptions)(void *userData, int cur_index, int next_index), void *userData)
static void ccgDM_drawMappedFacesTex (DerivedMesh *dm, int(*setDrawOptions)(void *userData, int index), int(*compareDrawOptions)(void *userData, int cur_index, int next_index), void *userData)
static void ccgDM_drawUVEdges (DerivedMesh *dm)
static void ccgDM_drawMappedFaces (DerivedMesh *dm, int(*setDrawOptions)(void *userData, int index, int *drawSmooth_r), int(*setMaterial)(int, void *attribs), int(*compareDrawOptions)(void *userData, int cur_index, int next_index), void *userData, int useColors)
static void ccgDM_drawMappedEdges (DerivedMesh *dm, int(*setDrawOptions)(void *userData, int index), void *userData)
static void ccgDM_drawMappedEdgesInterp (DerivedMesh *dm, int(*setDrawOptions)(void *userData, int index), void(*setDrawInterpOptions)(void *userData, int index, float t), void *userData)
static void ccgDM_foreachMappedFaceCenter (DerivedMesh *dm, void(*func)(void *userData, int index, float *co, float *no), void *userData)
static void ccgDM_release (DerivedMesh *dm)
static void * ccgDM_get_vert_data_layer (DerivedMesh *dm, int type)
static void * ccgDM_get_edge_data_layer (DerivedMesh *dm, int type)
static void * ccgDM_get_face_data_layer (DerivedMesh *dm, int type)
static int ccgDM_getNumGrids (DerivedMesh *dm)
static int ccgDM_getGridSize (DerivedMesh *dm)
static int ccgdm_adjacent_grid (CCGSubSurf *ss, int *gridOffset, CCGFace *f, int S, int offset)
static void ccgdm_create_grids (DerivedMesh *dm)
static DMGridData ** ccgDM_getGridData (DerivedMesh *dm)
static DMGridAdjacencyccgDM_getGridAdjacency (DerivedMesh *dm)
static int * ccgDM_getGridOffset (DerivedMesh *dm)
static ListBaseccgDM_getFaceMap (Object *ob, DerivedMesh *dm)
static struct PBVHccgDM_getPBVH (Object *ob, DerivedMesh *dm)
static CCGDerivedMeshgetCCGDerivedMesh (CCGSubSurf *ss, int drawInteriorEdges, int useSubsurfUv, DerivedMesh *dm)
struct DerivedMeshsubsurf_make_derived_from_derived (struct DerivedMesh *dm, struct SubsurfModifierData *smd, int useRenderParams, float(*vertCos)[3], int isFinalCalc, int forEditMode, int inEditMode)
void subsurf_calculate_limit_positions (Mesh *me, float(*positions_r)[3])

Variables

GLubyte stipple_quarttone [128]

Detailed Description

Definition in file subsurf_ccg.c.


Define Documentation

#define PASSATTRIB (   dx,
  dy,
  vert 
)
Value:
{                                               \
    if(attribs.totorco) {                                                       \
        index = getFaceIndex(ss, f, S, x+dx, y+dy, edgeSize, gridSize);         \
        glVertexAttrib3fvARB(attribs.orco.glIndex, attribs.orco.array[index]);  \
    }                                                                           \
    for(b = 0; b < attribs.tottface; b++) {                                     \
        MTFace *tf = &attribs.tface[b].array[a];                                \
        glVertexAttrib2fvARB(attribs.tface[b].glIndex, tf->uv[vert]);           \
    }                                                                           \
    for(b = 0; b < attribs.totmcol; b++) {                                      \
        MCol *cp = &attribs.mcol[b].array[a*4 + vert];                          \
        GLubyte col[4];                                                         \
        col[0]= cp->b; col[1]= cp->g; col[2]= cp->r; col[3]= cp->a;             \
        glVertexAttrib4ubvARB(attribs.mcol[b].glIndex, col);                    \
    }                                                                           \
    if(attribs.tottang) {                                                       \
        float *tang = attribs.tang.array[a*4 + vert];                           \
        glVertexAttrib4fvARB(attribs.tang.glIndex, tang);                       \
    }                                                                           \
}
#define PASSATTRIB (   dx,
  dy,
  vert 
)
Value:
{                                               \
    if(attribs.totorco) {                                                       \
        index = getFaceIndex(ss, f, S, x+dx, y+dy, edgeSize, gridSize);         \
        if(attribs.orco.glTexco)                                                \
            glTexCoord3fv(attribs.orco.array[index]);                           \
        else                                                                    \
            glVertexAttrib3fvARB(attribs.orco.glIndex, attribs.orco.array[index]);  \
    }                                                                           \
    for(b = 0; b < attribs.tottface; b++) {                                     \
        MTFace *tf = &attribs.tface[b].array[a];                                \
        if(attribs.tface[b].glTexco)                                            \
            glTexCoord2fv(tf->uv[vert]);                                        \
        else                                                                    \
            glVertexAttrib2fvARB(attribs.tface[b].glIndex, tf->uv[vert]);       \
    }                                                                           \
    for(b = 0; b < attribs.totmcol; b++) {                                      \
        MCol *cp = &attribs.mcol[b].array[a*4 + vert];                          \
        GLubyte col[4];                                                         \
        col[0]= cp->b; col[1]= cp->g; col[2]= cp->r; col[3]= cp->a;             \
        glVertexAttrib4ubvARB(attribs.mcol[b].glIndex, col);                    \
    }                                                                           \
    if(attribs.tottang) {                                                       \
        float *tang = attribs.tang.array[a*4 + vert];                           \
        glVertexAttrib4fvARB(attribs.tang.glIndex, tang);                       \
    }                                                                           \
}

Function Documentation

static CCGSubSurf* _getSubSurf ( CCGSubSurf prevSS,
int  subdivLevels,
int  useAging,
int  useArena,
int   UNUSEDuseFlatSubdiv 
) [static]
static void* arena_alloc ( CCGAllocatorHDL  a,
int  numBytes 
) [static]

Definition at line 79 of file subsurf_ccg.c.

References BLI_memarena_alloc().

Referenced by _getSubSurf().

static void arena_free ( CCGAllocatorHDL   UNUSEDa,
void *  UNUSEDptr 
) [static]

Definition at line 89 of file subsurf_ccg.c.

Referenced by _getSubSurf().

static void* arena_realloc ( CCGAllocatorHDL  a,
void *  ptr,
int  newSize,
int  oldSize 
) [static]

Definition at line 82 of file subsurf_ccg.c.

References BLI_memarena_alloc().

Referenced by _getSubSurf().

static void arena_release ( CCGAllocatorHDL  a) [static]

Definition at line 91 of file subsurf_ccg.c.

References BLI_memarena_free().

Referenced by _getSubSurf().

static void calc_ss_weights ( int  gridFaces,
FaceVertWeight **  qweight,
FaceVertWeight **  tweight 
) [static]

Definition at line 376 of file subsurf_ccg.c.

References MEM_mallocN().

Referenced by getCCGDerivedMesh().

static int ccgdm_adjacent_grid ( CCGSubSurf ss,
int *  gridOffset,
CCGFace f,
int  S,
int  offset 
) [static]
static void ccgDM_copyFinalEdgeArray ( DerivedMesh dm,
MEdge medge 
) [static]
static void ccgDM_copyFinalFaceArray ( DerivedMesh dm,
MFace mface 
) [static]
static void ccgDM_copyFinalVertArray ( DerivedMesh dm,
MVert mvert 
) [static]
static void ccgdm_create_grids ( DerivedMesh dm) [static]
static void ccgDM_drawEdges ( DerivedMesh dm,
int  drawLooseEdges,
int   UNUSEDdrawAllEdges 
) [static]
static void ccgDM_drawFacesColored ( DerivedMesh dm,
int   UNUSEDuseTwoSided,
unsigned char *  col1,
unsigned char *  col2 
) [static]
static void ccgDM_drawFacesGLSL ( DerivedMesh dm,
int(*)(int, void *attribs)  setMaterial 
) [static]

Definition at line 1505 of file subsurf_ccg.c.

References DerivedMesh::drawMappedFacesGLSL, and NULL.

Referenced by getCCGDerivedMesh().

static void ccgDM_drawFacesSolid ( DerivedMesh dm,
float(*)  partial_redraw_planes[4],
int  fast,
int(*)(int, void *attribs)  setMaterial 
) [static]
static void ccgDM_drawFacesTex ( DerivedMesh dm,
int(*)(MTFace *tface, int has_mcol, int matnr)  setDrawOptions,
int(*)(void *userData, int cur_index, int next_index)  compareDrawOptions,
void *  userData 
) [static]

Definition at line 1868 of file subsurf_ccg.c.

References ccgDM_drawFacesTex_common(), compareDrawOptions(), and NULL.

Referenced by getCCGDerivedMesh().

static void ccgDM_drawFacesTex_common ( DerivedMesh dm,
int(*)(MTFace *tface, int has_mcol, int matnr)  drawParams,
int(*)(void *userData, int index)  drawParamsMapped,
int(*)(void *userData, int cur_index, int next_index)  compareDrawOptions,
void *  userData 
) [static]
static void ccgDM_drawLooseEdges ( DerivedMesh dm) [static]
static void ccgDM_drawMappedEdges ( DerivedMesh dm,
int(*)(void *userData, int index)  setDrawOptions,
void *  userData 
) [static]
static void ccgDM_drawMappedEdgesInterp ( DerivedMesh dm,
int(*)(void *userData, int index)  setDrawOptions,
void(*)(void *userData, int index, float t)  setDrawInterpOptions,
void *  userData 
) [static]
static void ccgDM_drawMappedFaces ( DerivedMesh dm,
int(*)(void *userData, int index, int *drawSmooth_r)  setDrawOptions,
int(*)(int, void *attribs)  setMaterial,
int(*)(void *userData, int cur_index, int next_index)  compareDrawOptions,
void *  userData,
int  useColors 
) [static]
static void ccgDM_drawMappedFacesGLSL ( DerivedMesh dm,
int(*)(int, void *attribs)  setMaterial,
int(*)(void *userData, int index)  setDrawOptions,
void *  userData 
) [static]
static void ccgDM_drawMappedFacesMat ( DerivedMesh dm,
void(*)(void *userData, int, void *attribs)  setMaterial,
int(*)(void *userData, int index)  setFace,
void *  userData 
) [static]
static void ccgDM_drawMappedFacesTex ( DerivedMesh dm,
int(*)(void *userData, int index)  setDrawOptions,
int(*)(void *userData, int cur_index, int next_index)  compareDrawOptions,
void *  userData 
) [static]

Definition at line 1876 of file subsurf_ccg.c.

References ccgDM_drawFacesTex_common(), compareDrawOptions(), and NULL.

Referenced by getCCGDerivedMesh().

static void ccgDM_drawUVEdges ( DerivedMesh dm) [static]
static void ccgDM_drawVerts ( DerivedMesh dm) [static]
static void ccgDM_foreachMappedEdge ( DerivedMesh dm,
void(*)(void *userData, int index, float *v0co, float *v1co)  func,
void *  userData 
) [static]
static void ccgDM_foreachMappedFaceCenter ( DerivedMesh dm,
void(*)(void *userData, int index, float *co, float *no)  func,
void *  userData 
) [static]
static void ccgDM_foreachMappedVert ( DerivedMesh dm,
void(*)(void *userData, int index, float *co, float *no_f, short *no_s)  func,
void *  userData 
) [static]
static void* ccgDM_get_edge_data_layer ( DerivedMesh dm,
int  type 
) [static]
static void* ccgDM_get_face_data_layer ( DerivedMesh dm,
int  type 
) [static]
static void* ccgDM_get_vert_data_layer ( DerivedMesh dm,
int  type 
) [static]
static int ccgDM_getEdgeMapIndex ( CCGSubSurf ss,
CCGEdge e 
) [static]
static ListBase* ccgDM_getFaceMap ( Object ob,
DerivedMesh dm 
) [static]
static int ccgDM_getFaceMapIndex ( CCGSubSurf ss,
CCGFace f 
) [static]
static void ccgDM_getFinalEdge ( DerivedMesh dm,
int  edgeNum,
MEdge med 
) [static]
static void ccgDM_getFinalFace ( DerivedMesh dm,
int  faceNum,
MFace mf 
) [static]
static void ccgDM_getFinalVert ( DerivedMesh dm,
int  vertNum,
MVert mv 
) [static]
static void ccgDM_getFinalVertCo ( DerivedMesh dm,
int  vertNum,
float  co_r[3] 
) [static]

Definition at line 659 of file subsurf_ccg.c.

References ccgDM_getFinalVert(), MVert::co, and copy_v3_v3().

Referenced by getCCGDerivedMesh().

static void ccgDM_getFinalVertNo ( DerivedMesh dm,
int  vertNum,
float  no_r[3] 
) [static]

Definition at line 667 of file subsurf_ccg.c.

References ccgDM_getFinalVert(), MVert::no, and normal_short_to_float_v3().

Referenced by getCCGDerivedMesh().

static DMGridAdjacency* ccgDM_getGridAdjacency ( DerivedMesh dm) [static]

Definition at line 2375 of file subsurf_ccg.c.

References ccgdm_create_grids(), and CCGDerivedMesh::gridAdjacency.

Referenced by getCCGDerivedMesh().

static DMGridData** ccgDM_getGridData ( DerivedMesh dm) [static]

Definition at line 2367 of file subsurf_ccg.c.

References ccgdm_create_grids(), and CCGDerivedMesh::gridData.

Referenced by getCCGDerivedMesh().

static int* ccgDM_getGridOffset ( DerivedMesh dm) [static]

Definition at line 2383 of file subsurf_ccg.c.

References ccgdm_create_grids(), and CCGDerivedMesh::gridOffset.

Referenced by getCCGDerivedMesh().

static int ccgDM_getGridSize ( DerivedMesh dm) [static]

Definition at line 2264 of file subsurf_ccg.c.

References ccgSubSurf_getGridSize(), and CCGDerivedMesh::ss.

Referenced by ccgDM_getPBVH(), and getCCGDerivedMesh().

static void ccgDM_getMinMax ( DerivedMesh dm,
float  min_r[3],
float  max_r[3] 
) [static]
static int ccgDM_getNumEdges ( DerivedMesh dm) [static]

Definition at line 564 of file subsurf_ccg.c.

References ccgSubSurf_getNumFinalEdges(), and CCGDerivedMesh::ss.

Referenced by getCCGDerivedMesh().

static int ccgDM_getNumFaces ( DerivedMesh dm) [static]

Definition at line 569 of file subsurf_ccg.c.

References ccgSubSurf_getNumFinalFaces(), and CCGDerivedMesh::ss.

Referenced by getCCGDerivedMesh().

static int ccgDM_getNumGrids ( DerivedMesh dm) [static]
static int ccgDM_getNumVerts ( DerivedMesh dm) [static]

Definition at line 559 of file subsurf_ccg.c.

References ccgSubSurf_getNumFinalVerts(), and CCGDerivedMesh::ss.

Referenced by getCCGDerivedMesh().

static struct PBVH* ccgDM_getPBVH ( Object ob,
DerivedMesh dm 
) [static, read]
static void ccgdm_getVertCos ( DerivedMesh dm,
float(*)  cos[3] 
) [static]
static int ccgDM_getVertMapIndex ( CCGSubSurf ss,
CCGVert v 
) [static]

Definition at line 503 of file subsurf_ccg.c.

References ccgSubSurf_getVertUserData().

Referenced by ccgDM_foreachMappedVert(), and ccgDM_get_vert_data_layer().

static void ccgDM_glNormalFast ( float *  a,
float *  b,
float *  c,
float *  d 
) [static]
static void ccgdm_pbvh_update ( CCGDerivedMesh ccgdm) [static]
static void ccgDM_release ( DerivedMesh dm) [static]
static int ccgDM_use_grid_pbvh ( CCGDerivedMesh ccgdm) [static]

Definition at line 2405 of file subsurf_ccg.c.

References CCGDerivedMesh::mmd, and CCGDerivedMesh::multires.

Referenced by ccgDM_getPBVH(), and ccgdm_pbvh_update().

static void get_face_uv_map_vert ( UvVertMap vmap,
struct MFace mf,
int  fi,
CCGVertHDL fverts 
) [static]
static CCGDerivedMesh* getCCGDerivedMesh ( CCGSubSurf ss,
int  drawInteriorEdges,
int  useSubsurfUv,
DerivedMesh dm 
) [static]

Definition at line 2470 of file subsurf_ccg.c.

References calc_ss_weights(), ccgDM_copyFinalEdgeArray(), ccgDM_copyFinalFaceArray(), ccgDM_copyFinalVertArray(), ccgDM_drawEdges(), ccgDM_drawFacesColored(), ccgDM_drawFacesGLSL(), ccgDM_drawFacesSolid(), ccgDM_drawFacesTex(), ccgDM_drawLooseEdges(), ccgDM_drawMappedEdges(), ccgDM_drawMappedEdgesInterp(), ccgDM_drawMappedFaces(), ccgDM_drawMappedFacesGLSL(), ccgDM_drawMappedFacesMat(), ccgDM_drawMappedFacesTex(), ccgDM_drawUVEdges(), ccgDM_drawVerts(), ccgDM_foreachMappedEdge(), ccgDM_foreachMappedFaceCenter(), ccgDM_foreachMappedVert(), ccgDM_get_edge_data_layer(), ccgDM_get_face_data_layer(), ccgDM_get_vert_data_layer(), ccgDM_getFaceMap(), ccgDM_getFinalEdge(), ccgDM_getFinalFace(), ccgDM_getFinalVert(), ccgDM_getFinalVertCo(), ccgDM_getFinalVertNo(), ccgDM_getGridAdjacency(), ccgDM_getGridData(), ccgDM_getGridOffset(), ccgDM_getGridSize(), ccgDM_getMinMax(), ccgDM_getNumEdges(), ccgDM_getNumFaces(), ccgDM_getNumGrids(), ccgDM_getNumVerts(), ccgDM_getPBVH(), ccgdm_getVertCos(), ccgDM_release(), ccgEdgeIterator_getCurrent(), ccgEdgeIterator_isStopped(), ccgEdgeIterator_next(), ccgFaceIterator_free(), ccgFaceIterator_getCurrent(), ccgFaceIterator_isStopped(), ccgFaceIterator_next(), ccgSubSurf_getEdgeEdgeHandle(), ccgSubSurf_getEdgeIterator(), ccgSubSurf_getEdgeSize(), ccgSubSurf_getEdgeUserData(), ccgSubSurf_getEdgeVert0(), ccgSubSurf_getEdgeVert1(), ccgSubSurf_getFaceFaceHandle(), ccgSubSurf_getFaceIterator(), ccgSubSurf_getFaceNumVerts(), ccgSubSurf_getFaceUserData(), ccgSubSurf_getFaceVert(), ccgSubSurf_getGridSize(), ccgSubSurf_getNumEdges(), ccgSubSurf_getNumFaces(), ccgSubSurf_getNumFinalEdges(), ccgSubSurf_getNumFinalFaces(), ccgSubSurf_getNumFinalVerts(), ccgSubSurf_getNumVerts(), ccgSubSurf_getVertIterator(), ccgSubSurf_getVertUserData(), ccgSubSurf_getVertVertHandle(), ccgVertIterator_free(), ccgVertIterator_getCurrent(), ccgVertIterator_isStopped(), ccgVertIterator_next(), CD_MTFACE, CD_ORIGINDEX, DerivedMesh::copyEdgeArray, DerivedMesh::copyFaceArray, DerivedMesh::copyVertArray, CustomData_number_of_layers(), CCGDerivedMesh::dm, DM_copy_vert_data(), DM_from_template(), DM_get_edge_data(), DM_get_face_data(), DM_get_vert_data(), DM_interp_face_data(), DM_interp_vert_data(), DM_TYPE_CCGDM, DerivedMesh::drawEdges, DerivedMesh::drawFacesColored, DerivedMesh::drawFacesGLSL, DerivedMesh::drawFacesSolid, DerivedMesh::drawFacesTex, CCGDerivedMesh::drawInteriorEdges, DerivedMesh::drawLooseEdges, DerivedMesh::drawMappedEdges, DerivedMesh::drawMappedEdgesInterp, DerivedMesh::drawMappedFaces, DerivedMesh::drawMappedFacesGLSL, DerivedMesh::drawMappedFacesMat, DerivedMesh::drawMappedFacesTex, DerivedMesh::drawUVEdges, DerivedMesh::drawVerts, credits_svn_gen::e, CCGDerivedMesh::edge, CCGDerivedMesh::edgeFlags, CCGDerivedMesh::edgeMap, CCGDerivedMesh::face, DerivedMesh::faceData, CCGDerivedMesh::faceFlags, CCGDerivedMesh::faceMap, MEdge::flag, MFace::flag, DerivedMesh::foreachMappedEdge, DerivedMesh::foreachMappedFaceCenter, DerivedMesh::foreachMappedVert, GET_INT_FROM_POINTER, DerivedMesh::getEdge, DerivedMesh::getEdgeArray, DerivedMesh::getEdgeData, DerivedMesh::getEdgeDataArray, DerivedMesh::getFace, DerivedMesh::getFaceArray, DerivedMesh::getFaceData, DerivedMesh::getFaceDataArray, DerivedMesh::getFaceMap, DerivedMesh::getGridAdjacency, DerivedMesh::getGridData, DerivedMesh::getGridOffset, DerivedMesh::getGridSize, DerivedMesh::getMinMax, DerivedMesh::getNumEdges, DerivedMesh::getNumFaces, DerivedMesh::getNumGrids, DerivedMesh::getNumVerts, DerivedMesh::getPBVH, DerivedMesh::getVert, DerivedMesh::getVertCo, DerivedMesh::getVertCos, DerivedMesh::getVertData, DerivedMesh::getVertDataArray, DerivedMesh::getVertNo, i, MFace::mat_nr, MEM_callocN(), MEM_freeN(), MEM_mallocN(), NULL, DerivedMesh::release, set_subsurf_uv(), CCGDerivedMesh::ss, CCGDerivedMesh::startEdge, CCGDerivedMesh::startFace, CCGDerivedMesh::startVert, PBVH::totvert, CCGDerivedMesh::useSubsurfUv, CCGDerivedMesh::vert, CCGDerivedMesh::vertMap, and simple_enum_gen::w.

Referenced by subsurf_make_derived_from_derived().

static int getEdgeIndex ( CCGSubSurf ss,
CCGEdge e,
int  x,
int  edgeSize 
) [static]
static int getFaceIndex ( CCGSubSurf ss,
CCGFace f,
int  S,
int  x,
int  y,
int  edgeSize,
int  gridSize 
) [static]
static void set_subsurf_uv ( CCGSubSurf ss,
DerivedMesh dm,
DerivedMesh result,
int  n 
) [static]
static void ss_sync_from_derivedmesh ( CCGSubSurf ss,
DerivedMesh dm,
float(*)  vertexCos[3],
int  useFlatSubdiv 
) [static]
static int ss_sync_from_uv ( CCGSubSurf ss,
CCGSubSurf origss,
DerivedMesh dm,
MTFace tface 
) [static]
void subsurf_calculate_limit_positions ( Mesh me,
float(*)  positions_r[3] 
)
struct DerivedMesh* subsurf_make_derived_from_derived ( struct DerivedMesh dm,
struct SubsurfModifierData smd,
int  useRenderParams,
float(*)  vertCos[3],
int  isFinalCalc,
int  forEditMode,
int  inEditMode 
) [read]

Variable Documentation

GLubyte stipple_quarttone[128]

Definition at line 82 of file glutil.c.