|
Blender
V2.93
|
#include "DNA_customdata_types.h"#include "DNA_defs.h"#include "DNA_meshdata_types.h"#include "BLI_compiler_attrs.h"#include "BKE_bvhutils.h"#include "BKE_customdata.h"Go to the source code of this file.
Classes | |
| struct | DMFlagMat |
| struct | DerivedMesh |
Typedefs | |
| typedef struct DMFlagMat | DMFlagMat |
| typedef enum DerivedMeshType | DerivedMeshType |
| typedef enum DMDirtyFlag | DMDirtyFlag |
| typedef struct DerivedMesh | DerivedMesh |
Enumerations | |
| enum | DerivedMeshType { DM_TYPE_CDDM , DM_TYPE_CCGDM } |
| enum | DMDirtyFlag { DM_DIRTY_TESS_CDLAYERS = 1 << 0 , DM_DIRTY_NORMALS = 1 << 1 } |
Functions | |
| 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_ex (DerivedMesh *dm, DerivedMesh *source, DerivedMeshType type, int numVerts, int numEdges, int numTessFaces, int numLoops, int numPolys, const struct CustomData_MeshMasks *mask) |
| void | DM_from_template (DerivedMesh *dm, DerivedMesh *source, DerivedMeshType type, int numVerts, int numEdges, int numTessFaces, int numLoops, int numPolys) |
| bool | DM_release (DerivedMesh *dm) |
| void | DM_set_only_copy (DerivedMesh *dm, const struct CustomData_MeshMasks *mask) |
| void | DM_add_vert_layer (struct DerivedMesh *dm, int type, eCDAllocType alloctype, void *layer) |
| void | DM_add_edge_layer (struct DerivedMesh *dm, int type, eCDAllocType alloctype, void *layer) |
| void | DM_add_tessface_layer (struct DerivedMesh *dm, int type, eCDAllocType alloctype, void *layer) |
| void | DM_add_loop_layer (DerivedMesh *dm, int type, eCDAllocType alloctype, void *layer) |
| void | DM_add_poly_layer (struct DerivedMesh *dm, int type, eCDAllocType alloctype, void *layer) |
| void * | DM_get_vert_data (struct DerivedMesh *dm, int index, int type) |
| void * | DM_get_edge_data (struct DerivedMesh *dm, int index, int type) |
| void * | DM_get_tessface_data (struct DerivedMesh *dm, int index, int type) |
| void * | DM_get_poly_data (struct DerivedMesh *dm, int index, int type) |
| void * | DM_get_vert_data_layer (struct DerivedMesh *dm, int type) |
| void * | DM_get_edge_data_layer (struct DerivedMesh *dm, int type) |
| void * | DM_get_tessface_data_layer (struct DerivedMesh *dm, int type) |
| void * | DM_get_poly_data_layer (struct DerivedMesh *dm, int type) |
| void * | DM_get_loop_data_layer (struct DerivedMesh *dm, int type) |
| void | DM_copy_vert_data (struct DerivedMesh *source, struct DerivedMesh *dest, int source_index, int dest_index, int count) |
| void | DM_DupPolys (DerivedMesh *source, DerivedMesh *target) |
| void | DM_ensure_normals (DerivedMesh *dm) |
| void | DM_ensure_looptri_data (DerivedMesh *dm) |
| void | DM_interp_vert_data (struct DerivedMesh *source, struct DerivedMesh *dest, int *src_indices, float *weights, int count, int dest_index) |
| void | mesh_get_mapped_verts_coords (struct Mesh *me_eval, float(*r_cos)[3], const int totcos) |
| struct Mesh * | editbmesh_get_eval_cage (struct Depsgraph *depsgraph, struct Scene *scene, struct Object *, struct BMEditMesh *em, const struct CustomData_MeshMasks *dataMask) |
| struct Mesh * | editbmesh_get_eval_cage_from_orig (struct Depsgraph *depsgraph, struct Scene *scene, struct Object *obedit, const struct CustomData_MeshMasks *dataMask) |
| struct Mesh * | editbmesh_get_eval_cage_and_final (struct Depsgraph *depsgraph, struct Scene *scene, struct Object *, struct BMEditMesh *em, const struct CustomData_MeshMasks *dataMask, struct Mesh **r_final) |
| float(* | editbmesh_vert_coords_alloc (struct BMEditMesh *em, int *r_vert_len))[3] |
| bool | editbmesh_modifier_is_enabled (struct Scene *scene, const struct Object *ob, struct ModifierData *md, bool has_prev_mesh) |
| void | makeDerivedMesh (struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct BMEditMesh *em, const struct CustomData_MeshMasks *dataMask) |
| void | DM_calc_loop_tangents (DerivedMesh *dm, bool calc_active_tangent, const char(*tangent_names)[MAX_NAME], int tangent_names_len) |
| char * | DM_debug_info (DerivedMesh *dm) |
| void | DM_debug_print (DerivedMesh *dm) |
| bool | DM_is_valid (DerivedMesh *dm) |
Basic design of the DerivedMesh system:
DerivedMesh is a common set of interfaces for mesh systems.
There are three main mesh data structures in Blender: Mesh, CDDerivedMesh and BMesh.
These, and a few others, all implement DerivedMesh interfaces, which contains unified drawing interfaces, a few utility interfaces, and a bunch of read-only interfaces intended mostly for conversion from one format to another.
All Mesh structures in blender make use of CustomData, which is used to store per-element attributes and interpolate them (e.g. uvs, vcols, vgroups, etc).
Mesh is the "serialized" structure, used for storing object-mode mesh data and also for saving stuff to disk. Its interfaces are also what DerivedMesh uses to communicate with.
CDDM is a little mesh library, that uses Mesh data structures in the backend. It's mostly used for modifiers, and has the advantages of not taking much resources.
BMesh is a full-on brep, used for editmode, some modifiers, etc. It's much more capable (if memory-intensive) then CDDM.
DerivedMesh is somewhat hackish. Many places assumes that a DerivedMesh is a CDDM (most of the time by simply copying it and converting it to one). CDDM is the original structure for modifiers, but has since been superseded by BMesh, at least for the foreseeable future.
Definition in file BKE_DerivedMesh.h.
| typedef struct DerivedMesh DerivedMesh |
Definition at line 1 of file BKE_DerivedMesh.h.
| typedef enum DerivedMeshType DerivedMeshType |
| typedef enum DMDirtyFlag DMDirtyFlag |
| enum DerivedMeshType |
| Enumerator | |
|---|---|
| DM_TYPE_CDDM | |
| DM_TYPE_CCGDM | |
Definition at line 102 of file BKE_DerivedMesh.h.
| enum DMDirtyFlag |
| Enumerator | |
|---|---|
| DM_DIRTY_TESS_CDLAYERS | |
| DM_DIRTY_NORMALS | |
Definition at line 107 of file BKE_DerivedMesh.h.
| void DM_add_edge_layer | ( | struct DerivedMesh * | dm, |
| int | type, | ||
| eCDAllocType | alloctype, | ||
| void * | layer | ||
| ) |
Definition at line 573 of file DerivedMesh.cc.
References CustomData_add_layer(), DerivedMesh::edgeData, DerivedMesh::numEdgeData, and type.
Referenced by ccgDM_get_edge_data_layer().
| void DM_add_loop_layer | ( | DerivedMesh * | dm, |
| int | type, | ||
| eCDAllocType | alloctype, | ||
| void * | layer | ||
| ) |
Definition at line 583 of file DerivedMesh.cc.
References CustomData_add_layer(), DerivedMesh::loopData, DerivedMesh::numLoopData, and type.
| void DM_add_poly_layer | ( | struct DerivedMesh * | dm, |
| int | type, | ||
| eCDAllocType | alloctype, | ||
| void * | layer | ||
| ) |
Definition at line 588 of file DerivedMesh.cc.
References CustomData_add_layer(), DerivedMesh::numPolyData, DerivedMesh::polyData, and type.
Referenced by ccgDM_get_poly_data_layer().
| void DM_add_tessface_layer | ( | struct DerivedMesh * | dm, |
| int | type, | ||
| eCDAllocType | alloctype, | ||
| void * | layer | ||
| ) |
Definition at line 578 of file DerivedMesh.cc.
References CustomData_add_layer(), DerivedMesh::faceData, DerivedMesh::numTessFaceData, and type.
Referenced by ccgDM_get_tessface_data_layer().
| void DM_add_vert_layer | ( | struct DerivedMesh * | dm, |
| int | type, | ||
| eCDAllocType | alloctype, | ||
| void * | layer | ||
| ) |
Definition at line 568 of file DerivedMesh.cc.
References CustomData_add_layer(), DerivedMesh::numVertData, type, and DerivedMesh::vertData.
Referenced by ccgDM_get_vert_data_layer().
| void DM_calc_loop_tangents | ( | DerivedMesh * | dm, |
| bool | calc_active_tangent, | ||
| const char(*) | tangent_names[MAX_NAME], | ||
| int | tangent_names_len | ||
| ) |
Definition at line 2308 of file DerivedMesh.cc.
References BKE_mesh_calc_loop_tangent_ex(), CD_NORMAL, CD_ORCO, CustomData_get_layer(), DerivedMesh::getLoopArray, DerivedMesh::getLoopDataArray, DerivedMesh::getLoopTriArray, DerivedMesh::getNumLoops, DerivedMesh::getNumLoopTri, DerivedMesh::getNumPolys, DerivedMesh::getPolyArray, DerivedMesh::getVertArray, DerivedMesh::getVertDataArray, DerivedMesh::loopData, DerivedMesh::polyData, and DerivedMesh::tangent_mask.
Referenced by do_multires_bake().
| void DM_copy_vert_data | ( | struct DerivedMesh * | source, |
| struct DerivedMesh * | dest, | ||
| int | source_index, | ||
| int | dest_index, | ||
| int | count | ||
| ) |
Definition at line 654 of file DerivedMesh.cc.
References count, CustomData_copy_data(), and DerivedMesh::vertData.
Referenced by set_ccgdm_all_geometry().
| char* DM_debug_info | ( | DerivedMesh * | dm | ) |
Definition at line 2443 of file DerivedMesh.cc.
References BLI_dynstr_append(), BLI_dynstr_appendf(), BLI_dynstr_free(), BLI_dynstr_get_cstring(), BLI_dynstr_new(), DerivedMesh::deformedOnly, dm_debug_info_layers(), DM_TYPE_CCGDM, DM_TYPE_CDDM, DerivedMesh::edgeData, DerivedMesh::faceData, DerivedMesh::getEdgeDataArray, DerivedMesh::getLoopDataArray, DerivedMesh::getPolyDataArray, DerivedMesh::getTessFaceDataArray, DerivedMesh::getVertDataArray, DerivedMesh::loopData, DerivedMesh::numEdgeData, DerivedMesh::numPolyData, DerivedMesh::numTessFaceData, DerivedMesh::numVertData, DerivedMesh::polyData, ret, DerivedMesh::type, and DerivedMesh::vertData.
Referenced by DM_debug_print().
| void DM_debug_print | ( | DerivedMesh * | dm | ) |
Definition at line 2496 of file DerivedMesh.cc.
References DM_debug_info(), MEM_freeN, and str.
| void DM_DupPolys | ( | DerivedMesh * | source, |
| DerivedMesh * | target | ||
| ) |
Definition at line 449 of file DerivedMesh.cc.
References CD_ASSIGN, CD_DUPLICATE, CD_MASK_DERIVEDMESH, CD_MLOOP, CD_MPOLY, CustomData_add_layer(), CustomData_copy(), CustomData_free(), CustomData_has_layer(), DerivedMesh::dupLoopArray, DerivedMesh::dupPolyArray, CustomData_MeshMasks::lmask, DerivedMesh::loopData, DerivedMesh::numLoopData, DerivedMesh::numPolyData, CustomData_MeshMasks::pmask, and DerivedMesh::polyData.
Referenced by CDDM_copy().
| void DM_ensure_looptri_data | ( | DerivedMesh * | dm | ) |
Ensure the array is large enough
Definition at line 493 of file DerivedMesh.cc.
References DerivedMesh::array, DerivedMesh::array_wip, BLI_assert, DerivedMesh::looptris, MEM_malloc_arrayN, MEM_SAFE_FREE, DerivedMesh::num, DerivedMesh::num_alloc, DerivedMesh::numLoopData, DerivedMesh::numPolyData, poly_to_tri_count(), and SWAP.
Referenced by ccgDM_recalcLoopTri(), and cdDM_recalc_looptri().
| void DM_ensure_normals | ( | DerivedMesh * | dm | ) |
Definition at line 479 of file DerivedMesh.cc.
References BLI_assert, DerivedMesh::calcNormals, DerivedMesh::dirty, and DM_DIRTY_NORMALS.
| void DM_from_template | ( | DerivedMesh * | dm, |
| DerivedMesh * | source, | ||
| DerivedMeshType | type, | ||
| int | numVerts, | ||
| int | numEdges, | ||
| int | numTessFaces, | ||
| int | numLoops, | ||
| int | numPolys | ||
| ) |
Definition at line 404 of file DerivedMesh.cc.
References CD_MASK_DERIVEDMESH, DM_from_template_ex(), and type.
Referenced by CDDM_copy(), and getCCGDerivedMesh().
| void DM_from_template_ex | ( | DerivedMesh * | dm, |
| DerivedMesh * | source, | ||
| DerivedMeshType | type, | ||
| int | numVerts, | ||
| int | numEdges, | ||
| int | numTessFaces, | ||
| int | numLoops, | ||
| int | numPolys, | ||
| const struct CustomData_MeshMasks * | mask | ||
| ) |
| void* DM_get_edge_data | ( | struct DerivedMesh * | dm, |
| int | index, | ||
| int | type | ||
| ) |
Definition at line 599 of file DerivedMesh.cc.
References BLI_assert, CustomData_get(), DerivedMesh::edgeData, getNumEdges(), and type.
Referenced by ccgDM_get_edge_data(), cdDM_create(), and DM_init_funcs().
| void* DM_get_edge_data_layer | ( | struct DerivedMesh * | dm, |
| int | type | ||
| ) |
Definition at line 626 of file DerivedMesh.cc.
References CD_MEDGE, CustomData_get_layer(), DerivedMesh::edgeData, DerivedMesh::getEdgeArray, and type.
Referenced by ccgDM_get_edge_data_layer(), cdDM_create(), DM_init_funcs(), and set_ccgdm_all_geometry().
| void* DM_get_loop_data_layer | ( | struct DerivedMesh * | dm, |
| int | type | ||
| ) |
Definition at line 649 of file DerivedMesh.cc.
References CustomData_get_layer(), DerivedMesh::loopData, and type.
Referenced by DM_init_funcs(), and do_multires_bake().
| void* DM_get_poly_data | ( | struct DerivedMesh * | dm, |
| int | index, | ||
| int | type | ||
| ) |
Definition at line 611 of file DerivedMesh.cc.
References BLI_assert, CustomData_get(), DerivedMesh::polyData, and type.
Referenced by ccgDM_get_poly_data(), and DM_init_funcs().
| void* DM_get_poly_data_layer | ( | struct DerivedMesh * | dm, |
| int | type | ||
| ) |
Definition at line 644 of file DerivedMesh.cc.
References CustomData_get_layer(), DerivedMesh::polyData, and type.
Referenced by ccgDM_get_poly_data_layer(), DM_init_funcs(), and set_ccgdm_all_geometry().
| void* DM_get_tessface_data | ( | struct DerivedMesh * | dm, |
| int | index, | ||
| int | type | ||
| ) |
Definition at line 605 of file DerivedMesh.cc.
References BLI_assert, CustomData_get(), DerivedMesh::faceData, and type.
Referenced by ccgDM_get_tessface_data(), cdDM_create(), and DM_init_funcs().
| void* DM_get_tessface_data_layer | ( | struct DerivedMesh * | dm, |
| int | type | ||
| ) |
Definition at line 635 of file DerivedMesh.cc.
References CD_MFACE, CustomData_get_layer(), DerivedMesh::faceData, DerivedMesh::getTessFaceArray, and type.
Referenced by ccgDM_get_tessface_data_layer(), cdDM_create(), DM_init_funcs(), and set_ccgdm_all_geometry().
| void* DM_get_vert_data | ( | struct DerivedMesh * | dm, |
| int | index, | ||
| int | type | ||
| ) |
Definition at line 593 of file DerivedMesh.cc.
References BLI_assert, CustomData_get(), type, and DerivedMesh::vertData.
Referenced by ccgDM_get_vert_data(), cdDM_create(), and DM_init_funcs().
| void* DM_get_vert_data_layer | ( | struct DerivedMesh * | dm, |
| int | type | ||
| ) |
Definition at line 617 of file DerivedMesh.cc.
References CD_MVERT, CustomData_get_layer(), DerivedMesh::getVertArray, type, and DerivedMesh::vertData.
Referenced by ccgDM_get_vert_data_layer(), cdDM_create(), DM_init_funcs(), and set_ccgdm_all_geometry().
| 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 342 of file DerivedMesh.cc.
References CD_NUMTYPES, copy_vn_i(), DerivedMesh::dirty, DM_init_funcs(), DerivedMesh::edgeData, DerivedMesh::faceData, DerivedMesh::loopData, DerivedMesh::needsFree, DerivedMesh::numEdgeData, DerivedMesh::numLoopData, DerivedMesh::numPolyData, DerivedMesh::numTessFaceData, DerivedMesh::numVertData, DerivedMesh::polyData, DerivedMesh::type, type, CustomData::typemap, and DerivedMesh::vertData.
Referenced by cdDM_from_mesh_ex().
| void DM_init_funcs | ( | DerivedMesh * | dm | ) |
Utility function to initialize a DerivedMesh's function pointers to the default implementation (for those functions which have a default)
Definition at line 301 of file DerivedMesh.cc.
References dm_dupEdgeArray(), dm_dupFaceArray(), dm_dupLoopArray(), dm_dupPolyArray(), dm_dupVertArray(), DM_get_edge_data(), DM_get_edge_data_layer(), DM_get_loop_data_layer(), DM_get_poly_data(), DM_get_poly_data_layer(), DM_get_tessface_data(), DM_get_tessface_data_layer(), DM_get_vert_data(), DM_get_vert_data_layer(), dm_getEdgeArray(), dm_getEdgeCData(), dm_getLoopArray(), dm_getLoopCData(), dm_getLoopTriArray(), dm_getNumLoopTri(), dm_getPolyArray(), dm_getPolyCData(), dm_getTessFaceArray(), dm_getTessFaceCData(), dm_getVertArray(), dm_getVertCData(), DerivedMesh::dupEdgeArray, DerivedMesh::dupLoopArray, DerivedMesh::dupPolyArray, DerivedMesh::dupTessFaceArray, DerivedMesh::dupVertArray, DerivedMesh::getEdgeArray, DerivedMesh::getEdgeData, DerivedMesh::getEdgeDataArray, DerivedMesh::getEdgeDataLayout, DerivedMesh::getLoopArray, DerivedMesh::getLoopDataArray, DerivedMesh::getLoopDataLayout, DerivedMesh::getLoopTriArray, DerivedMesh::getNumLoopTri, DerivedMesh::getPolyArray, DerivedMesh::getPolyData, DerivedMesh::getPolyDataArray, DerivedMesh::getPolyDataLayout, DerivedMesh::getTessFaceArray, DerivedMesh::getTessFaceData, DerivedMesh::getTessFaceDataArray, DerivedMesh::getTessFaceDataLayout, DerivedMesh::getVertArray, DerivedMesh::getVertData, DerivedMesh::getVertDataArray, and DerivedMesh::getVertDataLayout.
Referenced by DM_from_template_ex(), and DM_init().
| void DM_interp_vert_data | ( | 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 665 of file DerivedMesh.cc.
References count, CustomData_interp(), and DerivedMesh::vertData.
Referenced by set_ccgdm_all_geometry().
| bool DM_is_valid | ( | DerivedMesh * | dm | ) |
Definition at line 2504 of file DerivedMesh.cc.
References BKE_mesh_validate_all_customdata(), BKE_mesh_validate_arrays(), BLI_assert, CD_MDEFORMVERT, DerivedMesh::getEdgeArray, DerivedMesh::getEdgeDataLayout, DerivedMesh::getLoopArray, DerivedMesh::getLoopDataLayout, DerivedMesh::getNumEdges, DerivedMesh::getNumLoops, DerivedMesh::getNumPolys, DerivedMesh::getNumTessFaces, DerivedMesh::getNumVerts, DerivedMesh::getPolyArray, DerivedMesh::getPolyDataLayout, DerivedMesh::getTessFaceArray, DerivedMesh::getVertArray, DerivedMesh::getVertDataArray, DerivedMesh::getVertDataLayout, and is_valid.
| bool DM_release | ( | DerivedMesh * | dm | ) |
Utility function to release a DerivedMesh's layers returns true if DerivedMesh has to be released by the backend, false otherwise.
Definition at line 424 of file DerivedMesh.cc.
References DerivedMesh::array, CustomData_free(), CustomData_free_temporary(), DerivedMesh::edgeData, DerivedMesh::faceData, DerivedMesh::loopData, DerivedMesh::looptris, MEM_SAFE_FREE, DerivedMesh::needsFree, DerivedMesh::num, DerivedMesh::num_alloc, DerivedMesh::numEdgeData, DerivedMesh::numLoopData, DerivedMesh::numPolyData, DerivedMesh::numTessFaceData, DerivedMesh::numVertData, DerivedMesh::polyData, and DerivedMesh::vertData.
Referenced by ccgDM_release(), and cdDM_release().
| void DM_set_only_copy | ( | DerivedMesh * | dm, |
| const struct CustomData_MeshMasks * | mask | ||
| ) |
Referenced by multires_modifier_update_mdisps(), multiresbake_create_hiresdm(), and multiresbake_create_loresdm().
| struct Mesh* editbmesh_get_eval_cage | ( | struct Depsgraph * | depsgraph, |
| struct Scene * | scene, | ||
| struct Object * | , | ||
| struct BMEditMesh * | em, | ||
| const struct CustomData_MeshMasks * | dataMask | ||
| ) |
Referenced by BKE_editmesh_vert_coords_alloc().
| struct Mesh* editbmesh_get_eval_cage_and_final | ( | struct Depsgraph * | depsgraph, |
| struct Scene * | scene, | ||
| struct Object * | , | ||
| struct BMEditMesh * | em, | ||
| const struct CustomData_MeshMasks * | dataMask, | ||
| struct Mesh ** | r_final | ||
| ) |
| struct Mesh* editbmesh_get_eval_cage_from_orig | ( | struct Depsgraph * | depsgraph, |
| struct Scene * | scene, | ||
| struct Object * | obedit, | ||
| const struct CustomData_MeshMasks * | dataMask | ||
| ) |
| bool editbmesh_modifier_is_enabled | ( | struct Scene * | scene, |
| const struct Object * | ob, | ||
| struct ModifierData * | md, | ||
| bool | has_prev_mesh | ||
| ) |
Referenced by BKE_crazyspace_get_first_deform_matrices_editbmesh().
| float(* editbmesh_vert_coords_alloc | ( | struct BMEditMesh * | em, |
| int * | r_vert_len | ||
| ) | )[3] |
Definition at line 1490 of file DerivedMesh.cc.
References BM_ITER_MESH_INDEX, BM_VERTS_OF_MESH, BMVert::co, copy_v3_v3(), KDL::cos(), float(), and MEM_malloc_arrayN.
Referenced by BKE_crazyspace_get_first_deform_matrices_editbmesh(), and editbmesh_calc_modifiers().
| void makeDerivedMesh | ( | struct Depsgraph * | depsgraph, |
| struct Scene * | scene, | ||
| struct Object * | ob, | ||
| struct BMEditMesh * | em, | ||
| const struct CustomData_MeshMasks * | dataMask | ||
| ) |
Referenced by BKE_crazyspace_get_mapped_editverts(), and BKE_object_handle_data_update().
Definition at line 2290 of file DerivedMesh.cc.
References BKE_mesh_foreach_mapped_vert(), BLI_BITMAP_NEW, copy_v3_v3(), Mesh_Runtime::deformed_only, make_vertexcos__mapFunc(), MEM_freeN, MESH_FOREACH_NOP, Mesh::mvert, Mesh::runtime, MappedUserData::vertex_visit, and MappedUserData::vertexcos.
Referenced by BKE_crazyspace_get_mapped_editverts().