Blender V4.3
mesh_legacy_derived_mesh.cc File Reference

Go to the source code of this file.

Classes

struct  CDDerivedMesh
 

Functions

static floatdm_getVertArray (DerivedMesh *dm)
 
static blender::int2dm_getEdgeArray (DerivedMesh *dm)
 
static intdm_getCornerVertArray (DerivedMesh *dm)
 
static intdm_getCornerEdgeArray (DerivedMesh *dm)
 
static intdm_getPolyArray (DerivedMesh *dm)
 
void DM_init_funcs (DerivedMesh *dm)
 
void DM_init (DerivedMesh *dm, DerivedMeshType type, int numVerts, int numEdges, int numTessFaces, int numLoops, int numPolys)
 
void DM_from_template (DerivedMesh *dm, DerivedMesh *source, DerivedMeshType type, int numVerts, int numEdges, int numTessFaces, int numLoops, int numPolys)
 
void DM_release (DerivedMesh *dm)
 
void DM_set_only_copy (DerivedMesh *dm, const CustomData_MeshMasks *mask)
 
void * DM_get_vert_data_layer (DerivedMesh *dm, const eCustomDataType type)
 
void * DM_get_edge_data_layer (DerivedMesh *dm, const eCustomDataType type)
 
void * DM_get_poly_data_layer (DerivedMesh *dm, const eCustomDataType type)
 
void * DM_get_loop_data_layer (DerivedMesh *dm, const eCustomDataType type)
 
void DM_copy_vert_data (const DerivedMesh *source, DerivedMesh *dest, int source_index, int dest_index, int count)
 
void DM_interp_vert_data (const DerivedMesh *source, DerivedMesh *dest, int *src_indices, float *weights, int count, int dest_index)
 
static int cdDM_getNumVerts (DerivedMesh *dm)
 
static int cdDM_getNumEdges (DerivedMesh *dm)
 
static int cdDM_getNumLoops (DerivedMesh *dm)
 
static int cdDM_getNumPolys (DerivedMesh *dm)
 
static void cdDM_copyVertArray (DerivedMesh *dm, float(*r_positions)[3])
 
static void cdDM_copyEdgeArray (DerivedMesh *dm, blender::int2 *r_edge)
 
static void cdDM_copyCornerVertArray (DerivedMesh *dm, int *r_corner_verts)
 
static void cdDM_copyCornerEdgeArray (DerivedMesh *dm, int *r_corner_edges)
 
static void cdDM_copyPolyArray (DerivedMesh *dm, int *r_face_offsets)
 
static void cdDM_release (DerivedMesh *dm)
 
static CDDerivedMeshcdDM_create (const char *desc)
 
static DerivedMeshcdDM_from_mesh_ex (Mesh *mesh, const CustomData_MeshMasks *mask)
 
DerivedMeshCDDM_from_mesh (Mesh *mesh)
 

Function Documentation

◆ cdDM_copyCornerEdgeArray()

static void cdDM_copyCornerEdgeArray ( DerivedMesh * dm,
int * r_corner_edges )
static

Definition at line 266 of file mesh_legacy_derived_mesh.cc.

References CDDerivedMesh::corner_edges, and DerivedMesh::numLoopData.

Referenced by cdDM_create().

◆ cdDM_copyCornerVertArray()

static void cdDM_copyCornerVertArray ( DerivedMesh * dm,
int * r_corner_verts )
static

Definition at line 260 of file mesh_legacy_derived_mesh.cc.

References CDDerivedMesh::corner_verts, and DerivedMesh::numLoopData.

Referenced by cdDM_create().

◆ cdDM_copyEdgeArray()

static void cdDM_copyEdgeArray ( DerivedMesh * dm,
blender::int2 * r_edge )
static

Definition at line 254 of file mesh_legacy_derived_mesh.cc.

References CDDerivedMesh::medge, and DerivedMesh::numEdgeData.

Referenced by cdDM_create().

◆ cdDM_copyPolyArray()

static void cdDM_copyPolyArray ( DerivedMesh * dm,
int * r_face_offsets )
static

Definition at line 272 of file mesh_legacy_derived_mesh.cc.

References DerivedMesh::face_offsets, and DerivedMesh::numPolyData.

Referenced by cdDM_create().

◆ cdDM_copyVertArray()

static void cdDM_copyVertArray ( DerivedMesh * dm,
float(*) r_positions[3] )
static

Definition at line 248 of file mesh_legacy_derived_mesh.cc.

References DerivedMesh::numVertData, and CDDerivedMesh::vert_positions.

Referenced by cdDM_create().

◆ cdDM_create()

◆ CDDM_from_mesh()

◆ cdDM_from_mesh_ex()

◆ cdDM_getNumEdges()

static int cdDM_getNumEdges ( DerivedMesh * dm)
static

Definition at line 233 of file mesh_legacy_derived_mesh.cc.

References DerivedMesh::numEdgeData.

Referenced by cdDM_create().

◆ cdDM_getNumLoops()

static int cdDM_getNumLoops ( DerivedMesh * dm)
static

Definition at line 238 of file mesh_legacy_derived_mesh.cc.

References DerivedMesh::numLoopData.

Referenced by cdDM_create().

◆ cdDM_getNumPolys()

static int cdDM_getNumPolys ( DerivedMesh * dm)
static

Definition at line 243 of file mesh_legacy_derived_mesh.cc.

References DerivedMesh::numPolyData.

Referenced by cdDM_create().

◆ cdDM_getNumVerts()

static int cdDM_getNumVerts ( DerivedMesh * dm)
static

Definition at line 228 of file mesh_legacy_derived_mesh.cc.

References DerivedMesh::numVertData.

Referenced by cdDM_create().

◆ cdDM_release()

static void cdDM_release ( DerivedMesh * dm)
static

Definition at line 277 of file mesh_legacy_derived_mesh.cc.

References DM_release(), and MEM_freeN().

Referenced by cdDM_create().

◆ DM_copy_vert_data()

void DM_copy_vert_data ( const DerivedMesh * source,
DerivedMesh * dest,
int source_index,
int dest_index,
int count )

Custom data copy functions copy count elements from source_index in source to dest_index in dest these copy all layers for which the CD_FLAG_NOCOPY flag is not set.

Definition at line 198 of file mesh_legacy_derived_mesh.cc.

References count, CustomData_copy_data(), and DerivedMesh::vertData.

Referenced by set_ccgdm_all_geometry().

◆ DM_from_template()

void DM_from_template ( DerivedMesh * dm,
DerivedMesh * source,
DerivedMeshType type,
int numVerts,
int numEdges,
int numTessFaces,
int numLoops,
int numPolys )

◆ DM_get_edge_data_layer()

◆ DM_get_loop_data_layer()

void * DM_get_loop_data_layer ( DerivedMesh * dm,
const eCustomDataType type )

◆ DM_get_poly_data_layer()

◆ DM_get_vert_data_layer()

◆ dm_getCornerEdgeArray()

◆ dm_getCornerVertArray()

◆ dm_getEdgeArray()

◆ dm_getPolyArray()

static int * dm_getPolyArray ( DerivedMesh * dm)
static

◆ dm_getVertArray()

◆ DM_init()

void DM_init ( DerivedMesh * dm,
DerivedMeshType type,
int numVerts,
int numEdges,
int numTessFaces,
int numLoops,
int numPolys )

Utility function to initialize a DerivedMesh for the desired number of vertices, edges and faces (doesn't allocate memory for them, just sets up the custom data layers)>

Definition at line 97 of file mesh_legacy_derived_mesh.cc.

References CD_NUMTYPES, copy_vn_i(), DM_init_funcs(), DerivedMesh::edgeData, DerivedMesh::faceData, DerivedMesh::loopData, DerivedMesh::numEdgeData, DerivedMesh::numLoopData, DerivedMesh::numPolyData, DerivedMesh::numTessFaceData, DerivedMesh::numVertData, DerivedMesh::polyData, DerivedMesh::type, CustomData::typemap, and DerivedMesh::vertData.

Referenced by cdDM_from_mesh_ex().

◆ DM_init_funcs()

◆ DM_interp_vert_data()

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

Interpolates vertex data from the vertices indexed by src_indices in the source mesh using the given weights and stores the result in the vertex indexed by dest_index in the dest mesh.

Definition at line 204 of file mesh_legacy_derived_mesh.cc.

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

Referenced by set_ccgdm_all_geometry().

◆ DM_release()

◆ DM_set_only_copy()

void DM_set_only_copy ( DerivedMesh * dm,
const CustomData_MeshMasks * mask )

set the CD_FLAG_NOCOPY flag in custom data layers where the mask is zero for the layer type, so only layer types specified by the mask will be copied

Definition at line 164 of file mesh_legacy_derived_mesh.cc.

References CustomData_set_only_copy(), DerivedMesh::edgeData, DerivedMesh::faceData, DerivedMesh::loopData, DerivedMesh::polyData, and DerivedMesh::vertData.

Referenced by multires_modifier_update_mdisps(), blender::ed::object::multiresbake_create_hiresdm(), and blender::ed::object::multiresbake_create_loresdm().