Blender  V2.59
Classes | Defines | Functions | Variables
DerivedMesh.c File Reference
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_cloth_types.h"
#include "DNA_key_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BLI_math.h"
#include "BLI_memarena.h"
#include "BLI_pbvh.h"
#include "BLI_utildefines.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_displist.h"
#include "BKE_key.h"
#include "BKE_modifier.h"
#include "BKE_mesh.h"
#include "BKE_object.h"
#include "BKE_paint.h"
#include "BKE_texture.h"
#include "BKE_multires.h"
#include "BLO_sys_types.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "GPU_buffers.h"
#include "GPU_draw.h"
#include "GPU_extensions.h"
#include "GPU_material.h"
#include "ED_sculpt.h"
#include "mikktspace.h"

Go to the source code of this file.

Classes

struct  EditMeshDerivedMesh
struct  SGLSLMeshToTangent

Defines

#define PASSATTRIB(efa, eve, vert)

Functions

static MVertdm_getVertArray (DerivedMesh *dm)
static MEdgedm_getEdgeArray (DerivedMesh *dm)
static MFacedm_getFaceArray (DerivedMesh *dm)
static MVertdm_dupVertArray (DerivedMesh *dm)
static MEdgedm_dupEdgeArray (DerivedMesh *dm)
static MFacedm_dupFaceArray (DerivedMesh *dm)
void DM_init_funcs (DerivedMesh *dm)
void DM_init (DerivedMesh *dm, DerivedMeshType type, int numVerts, int numEdges, int numFaces)
void DM_from_template (DerivedMesh *dm, DerivedMesh *source, DerivedMeshType type, int numVerts, int numEdges, int numFaces)
int DM_release (DerivedMesh *dm)
void DM_to_mesh (DerivedMesh *dm, Mesh *me)
void DM_to_meshkey (DerivedMesh *dm, Mesh *me, KeyBlock *kb)
void DM_set_only_copy (DerivedMesh *dm, CustomDataMask mask)
void DM_add_vert_layer (DerivedMesh *dm, int type, int alloctype, void *layer)
void DM_add_edge_layer (DerivedMesh *dm, int type, int alloctype, void *layer)
void DM_add_face_layer (DerivedMesh *dm, int type, int alloctype, void *layer)
void * DM_get_vert_data (DerivedMesh *dm, int index, int type)
void * DM_get_edge_data (DerivedMesh *dm, int index, int type)
void * DM_get_face_data (DerivedMesh *dm, int index, int type)
void * DM_get_vert_data_layer (DerivedMesh *dm, int type)
void * DM_get_edge_data_layer (DerivedMesh *dm, int type)
void * DM_get_face_data_layer (DerivedMesh *dm, int type)
void DM_set_vert_data (DerivedMesh *dm, int index, int type, void *data)
void DM_set_edge_data (DerivedMesh *dm, int index, int type, void *data)
void DM_set_face_data (DerivedMesh *dm, int index, int type, void *data)
void DM_copy_vert_data (DerivedMesh *source, DerivedMesh *dest, int source_index, int dest_index, int count)
void DM_copy_edge_data (DerivedMesh *source, DerivedMesh *dest, int source_index, int dest_index, int count)
void DM_copy_face_data (DerivedMesh *source, DerivedMesh *dest, int source_index, int dest_index, int count)
void DM_free_vert_data (struct DerivedMesh *dm, int index, int count)
void DM_free_edge_data (struct DerivedMesh *dm, int index, int count)
void DM_free_face_data (struct DerivedMesh *dm, int index, int count)
void DM_interp_vert_data (DerivedMesh *source, DerivedMesh *dest, int *src_indices, float *weights, int count, int dest_index)
void DM_interp_edge_data (DerivedMesh *source, DerivedMesh *dest, int *src_indices, float *weights, EdgeVertWeight *vert_weights, int count, int dest_index)
void DM_interp_face_data (DerivedMesh *source, DerivedMesh *dest, int *src_indices, float *weights, FaceVertWeight *vert_weights, int count, int dest_index)
void DM_swap_face_data (DerivedMesh *dm, int index, const int *corner_indices)
DerivedMeshmesh_create_derived (Mesh *me, Object *ob, float(*vertCos)[3])
static void emDM_foreachMappedVert (DerivedMesh *dm, void(*func)(void *userData, int index, float *co, float *no_f, short *no_s), void *userData)
static void emDM_foreachMappedEdge (DerivedMesh *dm, void(*func)(void *userData, int index, float *v0co, float *v1co), void *userData)
static void emDM_drawMappedEdges (DerivedMesh *dm, int(*setDrawOptions)(void *userData, int index), void *userData)
static void emDM_drawEdges (DerivedMesh *dm, int UNUSED(drawLooseEdges), int UNUSED(drawAllEdges))
static void emDM_drawMappedEdgesInterp (DerivedMesh *dm, int(*setDrawOptions)(void *userData, int index), void(*setDrawInterpOptions)(void *userData, int index, float t), void *userData)
static void emDM_drawUVEdges (DerivedMesh *dm)
static void emDM__calcFaceCent (EditFace *efa, float cent[3], float(*vertexCos)[3])
static void emDM_foreachMappedFaceCenter (DerivedMesh *dm, void(*func)(void *userData, int index, float *co, float *no), void *userData)
static void emDM_drawMappedFaces (DerivedMesh *dm, int(*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int UNUSED(useColors), int(*setMaterial)(int, void *attribs))
static void emDM_drawFacesTex_common (DerivedMesh *dm, int(*drawParams)(MTFace *tface, MCol *mcol, int matnr), int(*drawParamsMapped)(void *userData, int index), void *userData)
static void emDM_drawFacesTex (DerivedMesh *dm, int(*setDrawOptions)(MTFace *tface, MCol *mcol, int matnr))
static void emDM_drawMappedFacesTex (DerivedMesh *dm, int(*setDrawOptions)(void *userData, int index), void *userData)
static void emDM_drawMappedFacesGLSL (DerivedMesh *dm, int(*setMaterial)(int, void *attribs), int(*setDrawOptions)(void *userData, int index), void *userData)
static void emDM_drawFacesGLSL (DerivedMesh *dm, int(*setMaterial)(int, void *attribs))
static void emDM_getMinMax (DerivedMesh *dm, float min_r[3], float max_r[3])
static int emDM_getNumVerts (DerivedMesh *dm)
static int emDM_getNumEdges (DerivedMesh *dm)
static int emDM_getNumFaces (DerivedMesh *dm)
static void emDM_getVertCos (DerivedMesh *dm, float(*cos_r)[3])
static void emDM_getVert (DerivedMesh *dm, int index, MVert *vert_r)
static void emDM_getEdge (DerivedMesh *dm, int index, MEdge *edge_r)
static void emDM_getFace (DerivedMesh *dm, int index, MFace *face_r)
static void emDM_copyVertArray (DerivedMesh *dm, MVert *vert_r)
static void emDM_copyEdgeArray (DerivedMesh *dm, MEdge *edge_r)
static void emDM_copyFaceArray (DerivedMesh *dm, MFace *face_r)
static void * emDM_getFaceDataArray (DerivedMesh *dm, int type)
static void emDM_release (DerivedMesh *dm)
DerivedMesheditmesh_get_derived (EditMesh *em, float(*vertexCos)[3])
DerivedMeshmesh_create_derived_for_modifier (Scene *scene, Object *ob, ModifierData *md)
static float * get_editmesh_orco_verts (EditMesh *em)
static void * get_orco_coords_dm (Object *ob, EditMesh *em, int layer, int *free)
static DerivedMeshcreate_orco_dm (Object *ob, Mesh *me, EditMesh *em, int layer)
static void add_orco_dm (Object *ob, EditMesh *em, DerivedMesh *dm, DerivedMesh *orcodm, int layer)
void weight_to_rgb (float input, float *fr, float *fg, float *fb)
static void calc_weightpaint_vert_color (Object *ob, ColorBand *coba, int vert, unsigned char *col)
void vDM_ColorBand_store (ColorBand *coba)
static void add_weight_mcol_dm (Object *ob, DerivedMesh *dm)
static void mesh_calc_modifiers (Scene *scene, Object *ob, float(*inputVertexCos)[3], DerivedMesh **deform_r, DerivedMesh **final_r, int useRenderParams, int useDeform, int needMapping, CustomDataMask dataMask, int index, int useCache)
float(* editmesh_get_vertex_cos (EditMesh *em, int *numVerts_r))[3]
int editmesh_modifier_is_enabled (Scene *scene, ModifierData *md, DerivedMesh *dm)
static void editmesh_calc_modifiers (Scene *scene, Object *ob, EditMesh *em, DerivedMesh **cage_r, DerivedMesh **final_r, CustomDataMask dataMask)
static void clear_mesh_caches (Object *ob)
static void mesh_build_data (Scene *scene, Object *ob, CustomDataMask dataMask)
static void editmesh_build_data (Scene *scene, Object *obedit, EditMesh *em, CustomDataMask dataMask)
void makeDerivedMesh (Scene *scene, Object *ob, EditMesh *em, CustomDataMask dataMask)
DerivedMeshmesh_get_derived_final (Scene *scene, Object *ob, CustomDataMask dataMask)
DerivedMeshmesh_get_derived_deform (Scene *scene, Object *ob, CustomDataMask dataMask)
DerivedMeshmesh_create_derived_render (Scene *scene, Object *ob, CustomDataMask dataMask)
DerivedMeshmesh_create_derived_index_render (Scene *scene, Object *ob, CustomDataMask dataMask, int index)
DerivedMeshmesh_create_derived_view (Scene *scene, Object *ob, CustomDataMask dataMask)
DerivedMeshmesh_create_derived_no_deform (Scene *scene, Object *ob, float(*vertCos)[3], CustomDataMask dataMask)
DerivedMeshmesh_create_derived_no_virtual (Scene *scene, Object *ob, float(*vertCos)[3], CustomDataMask dataMask)
DerivedMeshmesh_create_derived_physics (Scene *scene, Object *ob, float(*vertCos)[3], CustomDataMask dataMask)
DerivedMeshmesh_create_derived_no_deform_render (Scene *scene, Object *ob, float(*vertCos)[3], CustomDataMask dataMask)
DerivedMesheditmesh_get_derived_cage_and_final (Scene *scene, Object *obedit, EditMesh *em, DerivedMesh **final_r, CustomDataMask dataMask)
DerivedMesheditmesh_get_derived_cage (Scene *scene, Object *obedit, EditMesh *em, CustomDataMask dataMask)
DerivedMesheditmesh_get_derived_base (Object *UNUSED(obedit), EditMesh *em)
static void make_vertexcosnos__mapFunc (void *userData, int index, float *co, float *no_f, short *no_s)
float * mesh_get_mapped_verts_nors (Scene *scene, Object *ob)
static int GetNumFaces (const SMikkTSpaceContext *pContext)
static int GetNumVertsOfFace (const SMikkTSpaceContext *pContext, const int face_num)
static void GetPosition (const SMikkTSpaceContext *pContext, float fPos[], const int face_num, const int vert_index)
static void GetTextureCoordinate (const SMikkTSpaceContext *pContext, float fUV[], const int face_num, const int vert_index)
static void GetNormal (const SMikkTSpaceContext *pContext, float fNorm[], const int face_num, const int vert_index)
static void SetTSpace (const SMikkTSpaceContext *pContext, const float fvTangent[], const float fSign, const int face_num, const int iVert)
void DM_add_tangent_layer (DerivedMesh *dm)
void DM_vertex_attributes_from_gpu (DerivedMesh *dm, GPUVertexAttribs *gattribs, DMVertexAttribs *attribs)
void DM_set_object_boundbox (Object *ob, DerivedMesh *dm)

Variables

static ColorBandstored_cb = NULL

Detailed Description

Definition in file DerivedMesh.c.


Define Documentation

#define PASSATTRIB (   efa,
  eve,
  vert 
)
Value:
{                                                                                       \
        if(attribs.totorco) {                                                                                                           \
                float *orco = attribs.orco.array[eve->tmp.l];                                                   \
                glVertexAttrib3fvARB(attribs.orco.glIndex, orco);                                               \
        }                                                                                                                                                       \
        for(b = 0; b < attribs.tottface; b++) {                                                                         \
                MTFace *_tf = (MTFace*)((char*)efa->data + attribs.tface[b].emOffset);  \
                glVertexAttrib2fvARB(attribs.tface[b].glIndex, _tf->uv[vert]);                  \
        }                                                                                                                                                       \
        for(b = 0; b < attribs.totmcol; b++) {                                                                          \
                MCol *cp = (MCol*)((char*)efa->data + attribs.mcol[b].emOffset);                \
                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[i*4 + vert];                                                   \
                glVertexAttrib4fvARB(attribs.tang.glIndex, tang);                                               \
        }                                                                                                                                                       \
}

Referenced by ccgDM_drawMappedFacesGLSL(), and emDM_drawMappedFacesGLSL().


Function Documentation

static void add_orco_dm ( Object ob,
EditMesh em,
DerivedMesh dm,
DerivedMesh orcodm,
int  layer 
) [static]
static void add_weight_mcol_dm ( Object ob,
DerivedMesh dm 
) [static]
static void calc_weightpaint_vert_color ( Object ob,
ColorBand coba,
int  vert,
unsigned char *  col 
) [static]
static void clear_mesh_caches ( Object ob) [static]
static DerivedMesh* create_orco_dm ( Object ob,
Mesh me,
EditMesh em,
int  layer 
) [static]
void DM_add_edge_layer ( DerivedMesh dm,
int  type,
int  alloctype,
void *  layer 
)
void DM_add_face_layer ( DerivedMesh dm,
int  type,
int  alloctype,
void *  layer 
)
void DM_add_tangent_layer ( DerivedMesh dm)
void DM_add_vert_layer ( DerivedMesh dm,
int  type,
int  alloctype,
void *  layer 
)
void DM_copy_edge_data ( DerivedMesh source,
DerivedMesh dest,
int  source_index,
int  dest_index,
int  count 
)
void DM_copy_face_data ( DerivedMesh source,
DerivedMesh dest,
int  source_index,
int  dest_index,
int  count 
)
void DM_copy_vert_data ( DerivedMesh source,
DerivedMesh dest,
int  source_index,
int  dest_index,
int  count 
)
static MEdge* dm_dupEdgeArray ( DerivedMesh dm) [static]

Definition at line 131 of file DerivedMesh.c.

References DerivedMesh::copyEdgeArray, DerivedMesh::getNumEdges, and MEM_callocN().

Referenced by DM_init_funcs().

static MFace* dm_dupFaceArray ( DerivedMesh dm) [static]

Definition at line 141 of file DerivedMesh.c.

References DerivedMesh::copyFaceArray, DerivedMesh::getNumFaces, and MEM_callocN().

Referenced by DM_init_funcs().

static MVert* dm_dupVertArray ( DerivedMesh dm) [static]

Definition at line 121 of file DerivedMesh.c.

References DerivedMesh::copyVertArray, DerivedMesh::getNumVerts, and MEM_callocN().

Referenced by DM_init_funcs().

void DM_free_edge_data ( struct DerivedMesh dm,
int  index,
int  count 
)

Definition at line 397 of file DerivedMesh.c.

References CustomData_free_elem(), and DerivedMesh::edgeData.

void DM_free_face_data ( struct DerivedMesh dm,
int  index,
int  count 
)

Definition at line 402 of file DerivedMesh.c.

References CustomData_free_elem(), and DerivedMesh::faceData.

Referenced by arrayModifier_doArray().

void DM_free_vert_data ( struct DerivedMesh dm,
int  index,
int  count 
)

Definition at line 392 of file DerivedMesh.c.

References CustomData_free_elem(), and DerivedMesh::vertData.

Referenced by arrayModifier_doArray().

void DM_from_template ( DerivedMesh dm,
DerivedMesh source,
DerivedMeshType  type,
int  numVerts,
int  numEdges,
int  numFaces 
)
void* DM_get_edge_data ( DerivedMesh dm,
int  index,
int  type 
)

Definition at line 322 of file DerivedMesh.c.

References CustomData_get(), and DerivedMesh::edgeData.

Referenced by cdDM_create(), DM_init_funcs(), and getCCGDerivedMesh().

void* DM_get_edge_data_layer ( DerivedMesh dm,
int  type 
)
void* DM_get_face_data ( DerivedMesh dm,
int  index,
int  type 
)

Definition at line 327 of file DerivedMesh.c.

References CustomData_get(), and DerivedMesh::faceData.

Referenced by cdDM_create(), DM_init_funcs(), and getCCGDerivedMesh().

void* DM_get_face_data_layer ( DerivedMesh dm,
int  type 
)
void* DM_get_vert_data ( DerivedMesh dm,
int  index,
int  type 
)
void* DM_get_vert_data_layer ( DerivedMesh dm,
int  type 
)
static MEdge* dm_getEdgeArray ( DerivedMesh dm) [static]
static MFace* dm_getFaceArray ( DerivedMesh dm) [static]
static MVert* dm_getVertArray ( DerivedMesh dm) [static]
void DM_init ( DerivedMesh dm,
DerivedMeshType  type,
int  numVerts,
int  numEdges,
int  numFaces 
)
void DM_init_funcs ( DerivedMesh dm)
void DM_interp_edge_data ( DerivedMesh source,
DerivedMesh dest,
int *  src_indices,
float *  weights,
EdgeVertWeight vert_weights,
int  count,
int  dest_index 
)

Definition at line 415 of file DerivedMesh.c.

References CustomData_interp(), and DerivedMesh::edgeData.

void DM_interp_face_data ( DerivedMesh source,
DerivedMesh dest,
int *  src_indices,
float *  weights,
FaceVertWeight vert_weights,
int  count,
int  dest_index 
)

Definition at line 424 of file DerivedMesh.c.

References CustomData_interp(), and DerivedMesh::faceData.

Referenced by getCCGDerivedMesh().

void DM_interp_vert_data ( DerivedMesh source,
DerivedMesh dest,
int *  src_indices,
float *  weights,
int  count,
int  dest_index 
)

Definition at line 407 of file DerivedMesh.c.

References CustomData_interp(), NULL, and DerivedMesh::vertData.

Referenced by getCCGDerivedMesh().

int DM_release ( DerivedMesh dm)
void DM_set_edge_data ( DerivedMesh dm,
int  index,
int  type,
void *  data 
)

Definition at line 361 of file DerivedMesh.c.

References CustomData_set(), and DerivedMesh::edgeData.

void DM_set_face_data ( DerivedMesh dm,
int  index,
int  type,
void *  data 
)

Definition at line 366 of file DerivedMesh.c.

References CustomData_set(), and DerivedMesh::faceData.

void DM_set_object_boundbox ( Object ob,
DerivedMesh dm 
)
void DM_set_only_copy ( DerivedMesh dm,
CustomDataMask  mask 
)
void DM_set_vert_data ( DerivedMesh dm,
int  index,
int  type,
void *  data 
)

Definition at line 356 of file DerivedMesh.c.

References CustomData_set(), and DerivedMesh::vertData.

Referenced by editmesh_get_derived().

void DM_swap_face_data ( DerivedMesh dm,
int  index,
const int *  corner_indices 
)

Definition at line 433 of file DerivedMesh.c.

References CustomData_swap(), and DerivedMesh::faceData.

Referenced by applyModifier(), and doMirrorOnAxis().

void DM_to_mesh ( DerivedMesh dm,
Mesh me 
)
void DM_to_meshkey ( DerivedMesh dm,
Mesh me,
KeyBlock kb 
)
void DM_vertex_attributes_from_gpu ( DerivedMesh dm,
GPUVertexAttribs gattribs,
DMVertexAttribs attribs 
)
static void editmesh_build_data ( Scene scene,
Object obedit,
EditMesh em,
CustomDataMask  dataMask 
) [static]
static void editmesh_calc_modifiers ( Scene scene,
Object ob,
EditMesh em,
DerivedMesh **  cage_r,
DerivedMesh **  final_r,
CustomDataMask  dataMask 
) [static]
DerivedMesh* editmesh_get_derived ( EditMesh em,
float(*)  vertexCos[3] 
)

Definition at line 1332 of file DerivedMesh.c.

References add_v3_v3(), BLI_countlist(), CD_CALLOC, CD_MDEFORMVERT, DerivedMesh::copyEdgeArray, DerivedMesh::copyFaceArray, DerivedMesh::copyVertArray, CustomData_em_get(), CustomData_has_layer(), EditVert::data, EditMeshDerivedMesh::dm, DM_add_vert_layer(), DM_init(), DM_set_vert_data(), DM_TYPE_EDITMESH, DerivedMesh::drawEdges, DerivedMesh::drawFacesGLSL, DerivedMesh::drawFacesTex, DerivedMesh::drawMappedEdges, DerivedMesh::drawMappedEdgesInterp, DerivedMesh::drawMappedFaces, DerivedMesh::drawMappedFacesGLSL, DerivedMesh::drawMappedFacesTex, DerivedMesh::drawUVEdges, EditMesh::edges, EditMeshDerivedMesh::em, emDM_copyEdgeArray(), emDM_copyFaceArray(), emDM_copyVertArray(), emDM_drawEdges(), emDM_drawFacesGLSL(), emDM_drawFacesTex(), emDM_drawMappedEdges(), emDM_drawMappedEdgesInterp(), emDM_drawMappedFaces(), emDM_drawMappedFacesGLSL(), emDM_drawMappedFacesTex(), emDM_drawUVEdges(), emDM_foreachMappedEdge(), emDM_foreachMappedFaceCenter(), emDM_foreachMappedVert(), emDM_getEdge(), emDM_getFace(), emDM_getFaceDataArray(), emDM_getMinMax(), emDM_getNumEdges(), emDM_getNumFaces(), emDM_getNumVerts(), emDM_getVert(), emDM_getVertCos(), emDM_release(), EditMeshDerivedMesh::faceNos, EditMesh::faces, ListBase::first, DerivedMesh::foreachMappedEdge, DerivedMesh::foreachMappedFaceCenter, DerivedMesh::foreachMappedVert, DerivedMesh::getEdge, DerivedMesh::getFace, DerivedMesh::getFaceDataArray, DerivedMesh::getMinMax, DerivedMesh::getNumEdges, DerivedMesh::getNumFaces, DerivedMesh::getNumVerts, DerivedMesh::getVert, DerivedMesh::getVertCos, i, EditVert::l, MEM_callocN(), MEM_mallocN(), EditVert::next, EditFace::next, normal_quad_v3(), normal_tri_v3(), normalize_v3(), normalize_v3_v3(), NULL, DerivedMesh::release, EditVert::tmp, EditFace::v1, EditFace::v2, EditFace::v3, EditFace::v4, EditMesh::vdata, EditMeshDerivedMesh::vertexCos, EditMeshDerivedMesh::vertexNos, and EditMesh::verts.

Referenced by editmesh_calc_modifiers(), editmesh_get_derived_base(), and editmesh_get_first_deform_matrices().

DerivedMesh* editmesh_get_derived_base ( Object UNUSEDobedit,
EditMesh em 
)

Definition at line 2430 of file DerivedMesh.c.

References editmesh_get_derived(), and NULL.

DerivedMesh* editmesh_get_derived_cage ( Scene scene,
Object obedit,
EditMesh em,
CustomDataMask  dataMask 
)
DerivedMesh* editmesh_get_derived_cage_and_final ( Scene scene,
Object obedit,
EditMesh em,
DerivedMesh **  final_r,
CustomDataMask  dataMask 
)
float(* editmesh_get_vertex_cos ( EditMesh em,
int *  numVerts_r 
) )[3]
int editmesh_modifier_is_enabled ( Scene scene,
ModifierData md,
DerivedMesh dm 
)
static void emDM__calcFaceCent ( EditFace efa,
float  cent[3],
float(*)  vertexCos[3] 
) [static]
static void emDM_copyEdgeArray ( DerivedMesh dm,
MEdge edge_r 
) [static]
static void emDM_copyFaceArray ( DerivedMesh dm,
MFace face_r 
) [static]
static void emDM_copyVertArray ( DerivedMesh dm,
MVert vert_r 
) [static]
static void emDM_drawEdges ( DerivedMesh dm,
int   UNUSEDdrawLooseEdges,
int   UNUSEDdrawAllEdges 
) [static]

Definition at line 529 of file DerivedMesh.c.

References emDM_drawMappedEdges(), and NULL.

Referenced by editmesh_get_derived().

static void emDM_drawFacesGLSL ( DerivedMesh dm,
int(*)(int, void *attribs)  setMaterial 
) [static]

Definition at line 1055 of file DerivedMesh.c.

References DerivedMesh::drawMappedFacesGLSL, and NULL.

Referenced by editmesh_get_derived().

static void emDM_drawFacesTex ( DerivedMesh dm,
int(*)(MTFace *tface, MCol *mcol, int matnr)  setDrawOptions 
) [static]

Definition at line 897 of file DerivedMesh.c.

References emDM_drawFacesTex_common(), and NULL.

Referenced by editmesh_get_derived().

static void emDM_drawFacesTex_common ( DerivedMesh dm,
int(*)(MTFace *tface, MCol *mcol, int matnr)  drawParams,
int(*)(void *userData, int index)  drawParamsMapped,
void *  userData 
) [static]
static void emDM_drawMappedEdges ( DerivedMesh dm,
int(*)(void *userData, int index)  setDrawOptions,
void *  userData 
) [static]
static void emDM_drawMappedEdgesInterp ( DerivedMesh dm,
int(*)(void *userData, int index)  setDrawOptions,
void(*)(void *userData, int index, float t)  setDrawInterpOptions,
void *  userData 
) [static]
static void emDM_drawMappedFaces ( DerivedMesh dm,
int(*)(void *userData, int index, int *drawSmooth_r)  setDrawOptions,
void *  userData,
int   UNUSEDuseColors,
int(*)(int, void *attribs)  setMaterial 
) [static]
static void emDM_drawMappedFacesGLSL ( DerivedMesh dm,
int(*)(int, void *attribs)  setMaterial,
int(*)(void *userData, int index)  setDrawOptions,
void *  userData 
) [static]
static void emDM_drawMappedFacesTex ( DerivedMesh dm,
int(*)(void *userData, int index)  setDrawOptions,
void *  userData 
) [static]

Definition at line 902 of file DerivedMesh.c.

References emDM_drawFacesTex_common(), and NULL.

Referenced by editmesh_get_derived().

static void emDM_drawUVEdges ( DerivedMesh dm) [static]
static void emDM_foreachMappedEdge ( DerivedMesh dm,
void(*)(void *userData, int index, float *v0co, float *v1co)  func,
void *  userData 
) [static]
static void emDM_foreachMappedFaceCenter ( DerivedMesh dm,
void(*)(void *userData, int index, float *co, float *no)  func,
void *  userData 
) [static]
static void emDM_foreachMappedVert ( DerivedMesh dm,
void(*)(void *userData, int index, float *co, float *no_f, short *no_s)  func,
void *  userData 
) [static]
static void emDM_getEdge ( DerivedMesh dm,
int  index,
MEdge edge_r 
) [static]
static void emDM_getFace ( DerivedMesh dm,
int  index,
MFace face_r 
) [static]
static void* emDM_getFaceDataArray ( DerivedMesh dm,
int  type 
) [static]
static void emDM_getMinMax ( DerivedMesh dm,
float  min_r[3],
float  max_r[3] 
) [static]
static int emDM_getNumEdges ( DerivedMesh dm) [static]

Definition at line 1086 of file DerivedMesh.c.

References BLI_countlist(), EditMesh::edges, and EditMeshDerivedMesh::em.

Referenced by editmesh_get_derived().

static int emDM_getNumFaces ( DerivedMesh dm) [static]

Definition at line 1093 of file DerivedMesh.c.

References BLI_countlist(), EditMeshDerivedMesh::em, and EditMesh::faces.

Referenced by editmesh_get_derived().

static int emDM_getNumVerts ( DerivedMesh dm) [static]

Definition at line 1079 of file DerivedMesh.c.

References BLI_countlist(), EditMeshDerivedMesh::em, and EditMesh::verts.

Referenced by editmesh_get_derived().

static void emDM_getVert ( DerivedMesh dm,
int  index,
MVert vert_r 
) [static]
static void emDM_getVertCos ( DerivedMesh dm,
float(*)  cos_r[3] 
) [static]
static void emDM_release ( DerivedMesh dm) [static]
static float* get_editmesh_orco_verts ( EditMesh em) [static]
static void* get_orco_coords_dm ( Object ob,
EditMesh em,
int  layer,
int *  free 
) [static]
static void GetNormal ( const SMikkTSpaceContext pContext,
float  fNorm[],
const int  face_num,
const int  vert_index 
) [static]
static int GetNumFaces ( const SMikkTSpaceContext pContext) [static]

Definition at line 2509 of file DerivedMesh.c.

References SMikkTSpaceContext::m_pUserData, and SGLSLMeshToTangent::numFaces.

Referenced by DM_add_tangent_layer().

static int GetNumVertsOfFace ( const SMikkTSpaceContext pContext,
const int  face_num 
) [static]
static void GetPosition ( const SMikkTSpaceContext pContext,
float  fPos[],
const int  face_num,
const int  vert_index 
) [static]
static void GetTextureCoordinate ( const SMikkTSpaceContext pContext,
float  fUV[],
const int  face_num,
const int  vert_index 
) [static]
static void make_vertexcosnos__mapFunc ( void *  userData,
int  index,
float *  co,
float *  no_f,
short *  no_s 
) [static]

Definition at line 2438 of file DerivedMesh.c.

References VECCOPY.

Referenced by mesh_get_mapped_verts_nors().

void makeDerivedMesh ( Scene scene,
Object ob,
EditMesh em,
CustomDataMask  dataMask 
)
static void mesh_build_data ( Scene scene,
Object ob,
CustomDataMask  dataMask 
) [static]
static void mesh_calc_modifiers ( Scene scene,
Object ob,
float(*)  inputVertexCos[3],
DerivedMesh **  deform_r,
DerivedMesh **  final_r,
int  useRenderParams,
int  useDeform,
int  needMapping,
CustomDataMask  dataMask,
int  index,
int  useCache 
) [static]

Definition at line 1664 of file DerivedMesh.c.

References add_orco_dm(), add_weight_mcol_dm(), ModifierTypeInfo::applyModifier, BLI_linklist_free(), CD_CALLOC, CD_CLOTH_ORCO, CD_DEFAULT, CD_MASK_CLOTH_ORCO, CD_MASK_ORCO, CD_MASK_ORIGINDEX, CD_MASK_ORIGSPACE, CD_MASK_WEIGHT_MCOL, CD_ORCO, CD_ORIGINDEX, CD_ORIGSPACE, CDDM_apply_vert_coords(), CDDM_calc_normals(), CDDM_copy(), CDDM_from_mesh(), create_orco_dm(), CustomData_has_layer(), Object::data, ModifierTypeInfo::deformVerts, ModifierTypeInfo::dependsOnNormals, dependsOnTime(), ModifierTypeInfo::dependsOnTime, DM_add_edge_layer(), DM_add_face_layer(), DM_add_vert_layer(), DM_get_edge_data_layer(), DM_get_face_data_layer(), DM_get_vert_data_layer(), DM_set_only_copy(), DM_TYPE_CDDM, eModifierMode_Realtime, eModifierMode_Render, eModifierType_Armature, eModifierType_Multires, eModifierTypeFlag_RequiresOriginalData, eModifierTypeType_OnlyDeform, DerivedMesh::faceData, FALSE, ListBase::first, ModifierTypeInfo::flags, Sculpt::flags, GET_INT_FROM_POINTER, get_multires_modifier(), DerivedMesh::getNumVerts, DerivedMesh::getVertCos, LinkNode::link, MEM_freeN(), MEM_mallocN(), mesh_getVertexCos(), Object::mode, modifier_freeTemporaryData(), modifier_isEnabled(), modifier_setError(), modifier_supportsMapping(), Object::modifiers, modifiers_calcDataMasks(), modifiers_clearErrors(), modifiers_getVirtualModifierList(), modifiers_indexInObject(), modifierType_getInfo(), mti, LinkNode::next, ModifierData::next, NULL, DerivedMesh::numEdgeData, DerivedMesh::numFaceData, DerivedMesh::numVertData, OB_MODE_SCULPT, OB_MODE_WEIGHT_PAINT, range_vni(), DerivedMesh::release, ModifierTypeInfo::requiredDataMask, ModifierData::scene, Object::sculpt, ToolSettings::sculpt, SCULPT_ONLY_DEFORM, MultiresModifierData::sculptlvl, Scene::toolsettings, Mesh::totvert, ModifierData::type, DerivedMesh::type, and ModifierTypeInfo::type.

Referenced by mesh_build_data(), mesh_create_derived_index_render(), mesh_create_derived_no_deform(), mesh_create_derived_no_deform_render(), mesh_create_derived_no_virtual(), mesh_create_derived_physics(), mesh_create_derived_render(), and mesh_create_derived_view().

DerivedMesh* mesh_create_derived ( Mesh me,
Object ob,
float(*)  vertCos[3] 
)
DerivedMesh* mesh_create_derived_for_modifier ( Scene scene,
Object ob,
ModifierData md 
)
DerivedMesh* mesh_create_derived_index_render ( Scene scene,
Object ob,
CustomDataMask  dataMask,
int  index 
)

Definition at line 2343 of file DerivedMesh.c.

References mesh_calc_modifiers(), and NULL.

Referenced by initElbeemMesh().

DerivedMesh* mesh_create_derived_no_deform ( Scene scene,
Object ob,
float(*)  vertCos[3],
CustomDataMask  dataMask 
)

Definition at line 2361 of file DerivedMesh.c.

References mesh_calc_modifiers(), and NULL.

Referenced by mesh_deform_bind().

DerivedMesh* mesh_create_derived_no_deform_render ( Scene scene,
Object ob,
float(*)  vertCos[3],
CustomDataMask  dataMask 
)

Definition at line 2391 of file DerivedMesh.c.

References mesh_calc_modifiers(), and NULL.

DerivedMesh* mesh_create_derived_no_virtual ( Scene scene,
Object ob,
float(*)  vertCos[3],
CustomDataMask  dataMask 
)

Definition at line 2371 of file DerivedMesh.c.

References mesh_calc_modifiers(), and NULL.

Referenced by BL_ModifierDeformer::Update().

DerivedMesh* mesh_create_derived_physics ( Scene scene,
Object ob,
float(*)  vertCos[3],
CustomDataMask  dataMask 
)

Definition at line 2381 of file DerivedMesh.c.

References mesh_calc_modifiers(), and NULL.

Referenced by BL_ModifierDeformer::GetPhysicsMesh().

DerivedMesh* mesh_create_derived_render ( Scene scene,
Object ob,
CustomDataMask  dataMask 
)
DerivedMesh* mesh_create_derived_view ( Scene scene,
Object ob,
CustomDataMask  dataMask 
)

Definition at line 2352 of file DerivedMesh.c.

References mesh_calc_modifiers(), and NULL.

Referenced by meshdeform_bind_exec(), and NewBooleanMesh().

DerivedMesh* mesh_get_derived_deform ( Scene scene,
Object ob,
CustomDataMask  dataMask 
)
DerivedMesh* mesh_get_derived_final ( Scene scene,
Object ob,
CustomDataMask  dataMask 
)
float* mesh_get_mapped_verts_nors ( Scene scene,
Object ob 
)
static void SetTSpace ( const SMikkTSpaceContext pContext,
const float  fvTangent[],
const float  fSign,
const int  face_num,
const int  iVert 
) [static]
void vDM_ColorBand_store ( ColorBand coba)

Definition at line 1632 of file DerivedMesh.c.

Referenced by init_userdef_do_versions().

void weight_to_rgb ( float  input,
float *  fr,
float *  fg,
float *  fb 
)

Variable Documentation

ColorBand* stored_cb = NULL [static]

Definition at line 1630 of file DerivedMesh.c.

Referenced by add_weight_mcol_dm().