Blender  V3.3
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
 
struct {
   struct MLoopTri *   array
 
   struct MLoopTri *   array_wip
 
   int   num
 
   int   num_alloc
 
looptris
 
char cd_flag
 
short tangent_mask
 
void(* recalcLoopTri )(DerivedMesh *dm)
 
const struct MLoopTri *(* getLoopTriArray )(DerivedMesh *dm)
 
int(* getNumLoopTri )(DerivedMesh *dm)
 
int(* getNumVerts )(DerivedMesh *dm)
 
int(* getNumEdges )(DerivedMesh *dm)
 
int(* getNumLoops )(DerivedMesh *dm)
 
int(* getNumPolys )(DerivedMesh *dm)
 
struct MVert *(* getVertArray )(DerivedMesh *dm)
 
struct MEdge *(* getEdgeArray )(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(* 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 MLoop *(* dupLoopArray )(DerivedMesh *dm)
 
struct MPoly *(* dupPolyArray )(DerivedMesh *dm)
 
void *(* getVertDataArray )(DerivedMesh *dm, int type)
 
void *(* getEdgeDataArray )(DerivedMesh *dm, int type)
 
void *(* getLoopDataArray )(DerivedMesh *dm, int type)
 
void *(* getPolyDataArray )(DerivedMesh *dm, int type)
 
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(* release )(DerivedMesh *dm)
 

Detailed Description

Definition at line 87 of file BKE_DerivedMesh.h.

Member Data Documentation

◆ array

struct MLoopTri* DerivedMesh::array

◆ array_wip

struct MLoopTri * DerivedMesh::array_wip

◆ cd_flag

char DerivedMesh::cd_flag

Definition at line 108 of file BKE_DerivedMesh.h.

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

◆ 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)

◆ 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 139 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 92 of file BKE_DerivedMesh.h.

Referenced by CDDM_copy(), and cdDM_from_mesh_ex().

◆ dupEdgeArray

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

Definition at line 142 of file BKE_DerivedMesh.h.

Referenced by CDDM_copy(), and DM_init_funcs().

◆ dupLoopArray

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

Definition at line 142 of file BKE_DerivedMesh.h.

Referenced by DM_DupPolys(), and DM_init_funcs().

◆ dupPolyArray

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

Definition at line 142 of file BKE_DerivedMesh.h.

Referenced by DM_DupPolys(), and 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 142 of file BKE_DerivedMesh.h.

Referenced by CDDM_copy(), and DM_init_funcs().

◆ edgeData

CustomData DerivedMesh::edgeData

◆ faceData

CustomData DerivedMesh::faceData

◆ getEdgeArray

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

◆ getEdgeDataArray

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

◆ getGridData

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

◆ getGridFlagMats

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

Definition at line 167 of file BKE_DerivedMesh.h.

Referenced by set_default_ccgdm_callbacks().

◆ getGridHidden

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

Definition at line 168 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)

◆ 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 162 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)

◆ getNumVerts

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

◆ getPolyArray

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

◆ getPolyDataArray

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

◆ 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 124 of file BKE_DerivedMesh.h.

Referenced by construct_param_handle_subsurfed(), DM_get_vert_data_layer(), DM_init_funcs(), 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 175 of file BKE_DerivedMesh.h.

Referenced by cdDM_create(), interp_barycentric_mlooptri(), interp_bilinear_mpoly(), 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 156 of file BKE_DerivedMesh.h.

Referenced by CDDM_copy(), cdDM_create(), construct_param_handle_subsurfed(), DM_init_funcs(), do_multires_bake(), set_default_ccgdm_callbacks(), shrinkwrapModifier_deform(), and ss_sync_ccg_from_derivedmesh().

◆ 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 178 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 91 of file BKE_DerivedMesh.h.

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

◆ num

int DerivedMesh::num

◆ num_alloc

int DerivedMesh::num_alloc

Definition at line 104 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

Definition at line 90 of file BKE_DerivedMesh.h.

Referenced by DM_from_template(), DM_init(), DM_release(), and getCCGDerivedMesh().

◆ 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 113 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 110 of file BKE_DerivedMesh.h.

Referenced by do_multires_bake().

◆ type

DerivedMeshType DerivedMesh::type

Definition at line 93 of file BKE_DerivedMesh.h.

Referenced by DM_from_template(), and DM_init().

◆ vertData

CustomData DerivedMesh::vertData

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