Blender  V2.93
Public Attributes | List of all members
DerivedMesh Struct Reference

#include <BKE_DerivedMesh.h>

Public Attributes

CustomData vertData
 
CustomData edgeData
 
CustomData faceData
 
CustomData loopData
 
CustomData polyData
 
int numVertData
 
int numEdgeData
 
int numTessFaceData
 
int numLoopData
 
int numPolyData
 
int needsFree
 
int deformedOnly
 
DerivedMeshType type
 
DMDirtyFlag dirty
 
struct {
   struct MLoopTri *   array
 
   struct MLoopTri *   array_wip
 
   int   num
 
   int   num_alloc
 
looptris
 
char cd_flag
 
short tangent_mask
 
void(* calcNormals )(DerivedMesh *dm)
 
void(* recalcLoopTri )(DerivedMesh *dm)
 
const struct MLoopTri *(* getLoopTriArray )(DerivedMesh *dm)
 
int(* getNumLoopTri )(DerivedMesh *dm)
 
int(* getNumVerts )(DerivedMesh *dm)
 
int(* getNumEdges )(DerivedMesh *dm)
 
int(* getNumTessFaces )(DerivedMesh *dm)
 
int(* getNumLoops )(DerivedMesh *dm)
 
int(* getNumPolys )(DerivedMesh *dm)
 
void(* getVert )(DerivedMesh *dm, int index, struct MVert *r_vert)
 
void(* getEdge )(DerivedMesh *dm, int index, struct MEdge *r_edge)
 
void(* getTessFace )(DerivedMesh *dm, int index, struct MFace *r_face)
 
struct MVert *(* getVertArray )(DerivedMesh *dm)
 
struct MEdge *(* getEdgeArray )(DerivedMesh *dm)
 
struct MFace *(* getTessFaceArray )(DerivedMesh *dm)
 
struct MLoop *(* getLoopArray )(DerivedMesh *dm)
 
struct MPoly *(* getPolyArray )(DerivedMesh *dm)
 
void(* copyVertArray )(DerivedMesh *dm, struct MVert *r_vert)
 
void(* copyEdgeArray )(DerivedMesh *dm, struct MEdge *r_edge)
 
void(* copyTessFaceArray )(DerivedMesh *dm, struct MFace *r_face)
 
void(* copyLoopArray )(DerivedMesh *dm, struct MLoop *r_loop)
 
void(* copyPolyArray )(DerivedMesh *dm, struct MPoly *r_poly)
 
struct MVert *(* dupVertArray )(DerivedMesh *dm)
 
struct MEdge *(* dupEdgeArray )(DerivedMesh *dm)
 
struct MFace *(* dupTessFaceArray )(DerivedMesh *dm)
 
struct MLoop *(* dupLoopArray )(DerivedMesh *dm)
 
struct MPoly *(* dupPolyArray )(DerivedMesh *dm)
 
void *(* getVertData )(DerivedMesh *dm, int index, int type)
 
void *(* getEdgeData )(DerivedMesh *dm, int index, int type)
 
void *(* getTessFaceData )(DerivedMesh *dm, int index, int type)
 
void *(* getPolyData )(DerivedMesh *dm, int index, int type)
 
void *(* getVertDataArray )(DerivedMesh *dm, int type)
 
void *(* getEdgeDataArray )(DerivedMesh *dm, int type)
 
void *(* getTessFaceDataArray )(DerivedMesh *dm, int type)
 
void *(* getLoopDataArray )(DerivedMesh *dm, int type)
 
void *(* getPolyDataArray )(DerivedMesh *dm, int type)
 
CustomData *(* getVertDataLayout )(DerivedMesh *dm)
 
CustomData *(* getEdgeDataLayout )(DerivedMesh *dm)
 
CustomData *(* getTessFaceDataLayout )(DerivedMesh *dm)
 
CustomData *(* getLoopDataLayout )(DerivedMesh *dm)
 
CustomData *(* getPolyDataLayout )(DerivedMesh *dm)
 
int(* getNumGrids )(DerivedMesh *dm)
 
int(* getGridSize )(DerivedMesh *dm)
 
struct CCGElem **(* getGridData )(DerivedMesh *dm)
 
int *(* getGridOffset )(DerivedMesh *dm)
 
void(* getGridKey )(DerivedMesh *dm, struct CCGKey *key)
 
DMFlagMat *(* getGridFlagMats )(DerivedMesh *dm)
 
unsigned int **(* getGridHidden )(DerivedMesh *dm)
 
void(* getVertCo )(DerivedMesh *dm, int index, float r_co[3])
 
void(* getVertNo )(DerivedMesh *dm, int index, float r_no[3])
 
void(* getPolyNo )(DerivedMesh *dm, int index, float r_no[3])
 
const struct MeshElemMap *(* getPolyMap )(struct Object *ob, DerivedMesh *dm)
 
void(* release )(DerivedMesh *dm)
 

Detailed Description

Definition at line 116 of file BKE_DerivedMesh.h.

Member Data Documentation

◆ array

struct MLoopTri* DerivedMesh::array

◆ array_wip

struct MLoopTri * DerivedMesh::array_wip

◆ calcNormals

void(* DerivedMesh::calcNormals) (DerivedMesh *dm)

Calculate vert and face normals

Definition at line 143 of file BKE_DerivedMesh.h.

Referenced by DM_ensure_normals().

◆ cd_flag

char DerivedMesh::cd_flag

Definition at line 138 of file BKE_DerivedMesh.h.

Referenced by CDDM_copy(), cdDM_from_mesh_ex(), and DM_from_template_ex().

◆ copyEdgeArray

void(* DerivedMesh::copyEdgeArray) (DerivedMesh *dm, struct MEdge *r_edge)

◆ copyLoopArray

void(* DerivedMesh::copyLoopArray) (DerivedMesh *dm, struct MLoop *r_loop)

◆ copyPolyArray

void(* DerivedMesh::copyPolyArray) (DerivedMesh *dm, struct MPoly *r_poly)

◆ copyTessFaceArray

void(* DerivedMesh::copyTessFaceArray) (DerivedMesh *dm, struct MFace *r_face)

◆ copyVertArray

void(* DerivedMesh::copyVertArray) (DerivedMesh *dm, struct MVert *r_vert)

Copy all verts/edges/faces from the derived mesh into *{vert/edge/face}_r (must point to a buffer large enough)

Definition at line 183 of file BKE_DerivedMesh.h.

Referenced by cdDM_create(), dm_dupVertArray(), dm_getVertArray(), and set_default_ccgdm_callbacks().

◆ deformedOnly

int DerivedMesh::deformedOnly

Definition at line 121 of file BKE_DerivedMesh.h.

Referenced by CDDM_copy(), cdDM_from_mesh_ex(), and DM_debug_info().

◆ dirty

DMDirtyFlag DerivedMesh::dirty

◆ dupEdgeArray

struct MEdge*(* DerivedMesh::dupEdgeArray) (DerivedMesh *dm)

Definition at line 187 of file BKE_DerivedMesh.h.

Referenced by CDDM_copy(), and DM_init_funcs().

◆ dupLoopArray

struct MLoop*(* DerivedMesh::dupLoopArray) (DerivedMesh *dm)

Definition at line 187 of file BKE_DerivedMesh.h.

Referenced by DM_DupPolys(), and DM_init_funcs().

◆ dupPolyArray

struct MPoly*(* DerivedMesh::dupPolyArray) (DerivedMesh *dm)

Definition at line 187 of file BKE_DerivedMesh.h.

Referenced by DM_DupPolys(), and DM_init_funcs().

◆ dupTessFaceArray

struct MFace*(* DerivedMesh::dupTessFaceArray) (DerivedMesh *dm)

Definition at line 187 of file BKE_DerivedMesh.h.

Referenced by DM_init_funcs().

◆ dupVertArray

struct MVert*(* DerivedMesh::dupVertArray) (DerivedMesh *dm)

Return a copy of all verts/edges/faces from the derived mesh it is the caller's responsibility to free the returned pointer

Definition at line 187 of file BKE_DerivedMesh.h.

Referenced by CDDM_copy(), and DM_init_funcs().

◆ edgeData

CustomData DerivedMesh::edgeData

◆ faceData

CustomData DerivedMesh::faceData

◆ getEdge

void(* DerivedMesh::getEdge) (DerivedMesh *dm, int index, struct MEdge *r_edge)

Definition at line 166 of file BKE_DerivedMesh.h.

Referenced by cdDM_create(), and set_default_ccgdm_callbacks().

◆ getEdgeArray

struct MEdge*(* DerivedMesh::getEdgeArray) (DerivedMesh *dm)

◆ getEdgeData

void*(* DerivedMesh::getEdgeData) (DerivedMesh *dm, int index, int type)

Definition at line 203 of file BKE_DerivedMesh.h.

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

◆ getEdgeDataArray

void*(* DerivedMesh::getEdgeDataArray) (DerivedMesh *dm, int type)

◆ getEdgeDataLayout

CustomData*(* DerivedMesh::getEdgeDataLayout) (DerivedMesh *dm)

Definition at line 220 of file BKE_DerivedMesh.h.

Referenced by DM_init_funcs(), and DM_is_valid().

◆ getGridData

struct CCGElem**(* DerivedMesh::getGridData) (DerivedMesh *dm)

◆ getGridFlagMats

DMFlagMat*(* DerivedMesh::getGridFlagMats) (DerivedMesh *dm)

Definition at line 231 of file BKE_DerivedMesh.h.

Referenced by set_default_ccgdm_callbacks().

◆ getGridHidden

unsigned int**(* DerivedMesh::getGridHidden) (DerivedMesh *dm)

Definition at line 232 of file BKE_DerivedMesh.h.

Referenced by set_default_ccgdm_callbacks().

◆ getGridKey

void(* DerivedMesh::getGridKey) (DerivedMesh *dm, struct CCGKey *key)

◆ getGridOffset

int*(* DerivedMesh::getGridOffset) (DerivedMesh *dm)

◆ getGridSize

int(* DerivedMesh::getGridSize) (DerivedMesh *dm)

◆ getLoopArray

struct MLoop*(* DerivedMesh::getLoopArray) (DerivedMesh *dm)

◆ getLoopDataArray

void*(* DerivedMesh::getLoopDataArray) (DerivedMesh *dm, int type)

◆ getLoopDataLayout

CustomData*(* DerivedMesh::getLoopDataLayout) (DerivedMesh *dm)

Definition at line 222 of file BKE_DerivedMesh.h.

Referenced by DM_init_funcs(), and DM_is_valid().

◆ getLoopTriArray

const struct MLoopTri*(* DerivedMesh::getLoopTriArray) (DerivedMesh *dm)

◆ getNumEdges

int(* DerivedMesh::getNumEdges) (DerivedMesh *dm)

◆ getNumGrids

int(* DerivedMesh::getNumGrids) (DerivedMesh *dm)

Optional grid access for subsurf

Definition at line 226 of file BKE_DerivedMesh.h.

Referenced by multires_modifier_update_mdisps(), and set_default_ccgdm_callbacks().

◆ getNumLoops

int(* DerivedMesh::getNumLoops) (DerivedMesh *dm)

◆ getNumLoopTri

int(* DerivedMesh::getNumLoopTri) (DerivedMesh *dm)

◆ getNumPolys

int(* DerivedMesh::getNumPolys) (DerivedMesh *dm)

◆ getNumTessFaces

int(* DerivedMesh::getNumTessFaces) (DerivedMesh *dm)

◆ getNumVerts

int(* DerivedMesh::getNumVerts) (DerivedMesh *dm)

◆ getPolyArray

struct MPoly*(* DerivedMesh::getPolyArray) (DerivedMesh *dm)

◆ getPolyData

void*(* DerivedMesh::getPolyData) (DerivedMesh *dm, int index, int type)

Definition at line 205 of file BKE_DerivedMesh.h.

Referenced by DM_init_funcs(), and set_default_ccgdm_callbacks().

◆ getPolyDataArray

void*(* DerivedMesh::getPolyDataArray) (DerivedMesh *dm, int type)

◆ getPolyDataLayout

CustomData*(* DerivedMesh::getPolyDataLayout) (DerivedMesh *dm)

Definition at line 223 of file BKE_DerivedMesh.h.

Referenced by DM_init_funcs(), and DM_is_valid().

◆ getPolyMap

const struct MeshElemMap*(* DerivedMesh::getPolyMap) (struct Object *ob, DerivedMesh *dm)

Get a map of vertices to faces

Definition at line 243 of file BKE_DerivedMesh.h.

Referenced by cdDM_create(), and set_default_ccgdm_callbacks().

◆ getPolyNo

void(* DerivedMesh::getPolyNo) (DerivedMesh *dm, int index, float r_no[3])

Definition at line 243 of file BKE_DerivedMesh.h.

◆ getTessFace

void(* DerivedMesh::getTessFace) (DerivedMesh *dm, int index, struct MFace *r_face)

Definition at line 167 of file BKE_DerivedMesh.h.

Referenced by cdDM_create(), and set_default_ccgdm_callbacks().

◆ getTessFaceArray

struct MFace*(* DerivedMesh::getTessFaceArray) (DerivedMesh *dm)

Definition at line 167 of file BKE_DerivedMesh.h.

Referenced by DM_get_tessface_data_layer(), DM_init_funcs(), and DM_is_valid().

◆ getTessFaceData

void*(* DerivedMesh::getTessFaceData) (DerivedMesh *dm, int index, int type)

Definition at line 204 of file BKE_DerivedMesh.h.

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

◆ getTessFaceDataArray

void*(* DerivedMesh::getTessFaceDataArray) (DerivedMesh *dm, int type)

◆ getTessFaceDataLayout

CustomData*(* DerivedMesh::getTessFaceDataLayout) (DerivedMesh *dm)

Definition at line 221 of file BKE_DerivedMesh.h.

Referenced by DM_init_funcs().

◆ getVert

void(* DerivedMesh::getVert) (DerivedMesh *dm, int index, struct MVert *r_vert)

Copy a single vert/edge/tessellated face from the derived mesh into *r_{vert/edge/face}. note that the current implementation of this function can be quite slow, iterating over all elements (editmesh)

Definition at line 165 of file BKE_DerivedMesh.h.

Referenced by cdDM_create(), and set_default_ccgdm_callbacks().

◆ getVertArray

struct MVert*(* DerivedMesh::getVertArray) (DerivedMesh *dm)

Return a pointer to the entire array of verts/edges/face from the derived mesh. if such an array does not exist yet, it will be created, and freed on the next ->release(). consider using getVert/Edge/Face if you are only interested in a few verts/edges/faces.

Definition at line 167 of file BKE_DerivedMesh.h.

Referenced by construct_param_handle_subsurfed(), DM_calc_loop_tangents(), DM_get_vert_data_layer(), DM_init_funcs(), DM_is_valid(), do_multires_bake(), get_ccgdm_data(), and ss_sync_ccg_from_derivedmesh().

◆ getVertCo

void(* DerivedMesh::getVertCo) (DerivedMesh *dm, int index, float r_co[3])

Direct Access Operations

  • Can be undefined
  • Must be defined for modifiers that only deform however Get vertex location, undefined if index is not valid

Definition at line 239 of file BKE_DerivedMesh.h.

Referenced by cdDM_create(), interp_barycentric_mlooptri(), interp_bilinear_mpoly(), and set_default_ccgdm_callbacks().

◆ getVertData

void*(* DerivedMesh::getVertData) (DerivedMesh *dm, int index, int type)

Return a pointer to a single element of vert/edge/face custom data from the derived mesh (this gives a pointer to the actual data, not a copy)

Definition at line 202 of file BKE_DerivedMesh.h.

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

◆ getVertDataArray

void*(* DerivedMesh::getVertDataArray) (DerivedMesh *dm, int type)

Return a pointer to the entire array of vert/edge/face custom data from the derived mesh (this gives a pointer to the actual data, not a copy)

Definition at line 211 of file BKE_DerivedMesh.h.

Referenced by CDDM_copy(), cdDM_create(), construct_param_handle_subsurfed(), DM_calc_loop_tangents(), DM_debug_info(), DM_init_funcs(), DM_is_valid(), set_default_ccgdm_callbacks(), shrinkwrapModifier_deform(), and ss_sync_ccg_from_derivedmesh().

◆ getVertDataLayout

CustomData*(* DerivedMesh::getVertDataLayout) (DerivedMesh *dm)

Retrieves the base CustomData structures for verts/edges/tessfaces/loops/faces.

Definition at line 219 of file BKE_DerivedMesh.h.

Referenced by DM_init_funcs(), and DM_is_valid().

◆ getVertNo

void(* DerivedMesh::getVertNo) (DerivedMesh *dm, int index, float r_no[3])

Get smooth vertex normal, undefined if index is not valid

Definition at line 242 of file BKE_DerivedMesh.h.

Referenced by cdDM_create(), interp_barycentric_mlooptri(), interp_bilinear_mpoly(), and set_default_ccgdm_callbacks().

◆ loopData

CustomData DerivedMesh::loopData

◆ 

struct { ... } DerivedMesh::looptris

◆ needsFree

int DerivedMesh::needsFree

Definition at line 120 of file BKE_DerivedMesh.h.

Referenced by DM_from_template_ex(), DM_init(), and DM_release().

◆ num

int DerivedMesh::num

◆ num_alloc

int DerivedMesh::num_alloc

Definition at line 134 of file BKE_DerivedMesh.h.

Referenced by DM_ensure_looptri_data(), and DM_release().

◆ numEdgeData

int DerivedMesh::numEdgeData

◆ numLoopData

int DerivedMesh::numLoopData

◆ numPolyData

int DerivedMesh::numPolyData

◆ numTessFaceData

int DerivedMesh::numTessFaceData

◆ numVertData

int DerivedMesh::numVertData

◆ polyData

CustomData DerivedMesh::polyData

◆ recalcLoopTri

void(* DerivedMesh::recalcLoopTri) (DerivedMesh *dm)

Loop tessellation cache (WARNING! Only call inside threading-protected code!)

Definition at line 146 of file BKE_DerivedMesh.h.

Referenced by cdDM_create(), dm_getLoopTriArray(), and set_default_ccgdm_callbacks().

◆ release

void(* DerivedMesh::release) (DerivedMesh *dm)

◆ tangent_mask

short DerivedMesh::tangent_mask

Definition at line 140 of file BKE_DerivedMesh.h.

Referenced by DM_calc_loop_tangents().

◆ type

DerivedMeshType DerivedMesh::type

Definition at line 122 of file BKE_DerivedMesh.h.

Referenced by DM_debug_info(), DM_from_template_ex(), and DM_init().

◆ vertData

CustomData DerivedMesh::vertData

The documentation for this struct was generated from the following file: