|
Blender V4.5
|
#include "BLI_math_vector.h"#include "DNA_mesh_types.h"#include "DNA_meshdata_types.h"#include "BKE_customdata.hh"#include "BKE_mesh_legacy_derived_mesh.hh"Go to the source code of this file.
Classes | |
| struct | CDDerivedMesh |
Functions | |
| static float * | dm_getVertArray (DerivedMesh *dm) |
| static blender::int2 * | dm_getEdgeArray (DerivedMesh *dm) |
| static int * | dm_getCornerVertArray (DerivedMesh *dm) |
| static int * | dm_getCornerEdgeArray (DerivedMesh *dm) |
| static int * | dm_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 CDDerivedMesh * | cdDM_create (const char *desc) |
| static DerivedMesh * | cdDM_from_mesh_ex (Mesh *mesh, const CustomData_MeshMasks *mask) |
| DerivedMesh * | CDDM_from_mesh (Mesh *mesh) |
|
static |
Definition at line 266 of file mesh_legacy_derived_mesh.cc.
References cdDM_copyCornerEdgeArray(), CDDerivedMesh::corner_edges, and DerivedMesh::numLoopData.
Referenced by cdDM_copyCornerEdgeArray(), and cdDM_create().
|
static |
Definition at line 260 of file mesh_legacy_derived_mesh.cc.
References cdDM_copyCornerVertArray(), CDDerivedMesh::corner_verts, and DerivedMesh::numLoopData.
Referenced by cdDM_copyCornerVertArray(), and cdDM_create().
|
static |
Definition at line 254 of file mesh_legacy_derived_mesh.cc.
References cdDM_copyEdgeArray(), CDDerivedMesh::medge, and DerivedMesh::numEdgeData.
Referenced by cdDM_copyEdgeArray(), and cdDM_create().
|
static |
Definition at line 272 of file mesh_legacy_derived_mesh.cc.
References cdDM_copyPolyArray(), DerivedMesh::face_offsets, and DerivedMesh::numPolyData.
Referenced by cdDM_copyPolyArray(), and cdDM_create().
|
static |
Definition at line 248 of file mesh_legacy_derived_mesh.cc.
References cdDM_copyVertArray(), DerivedMesh::numVertData, and CDDerivedMesh::vert_positions.
Referenced by cdDM_copyVertArray(), and cdDM_create().
|
static |
Definition at line 286 of file mesh_legacy_derived_mesh.cc.
References cdDM_copyCornerEdgeArray(), cdDM_copyCornerVertArray(), cdDM_copyEdgeArray(), cdDM_copyPolyArray(), cdDM_copyVertArray(), cdDM_create(), cdDM_getNumEdges(), cdDM_getNumLoops(), cdDM_getNumPolys(), cdDM_getNumVerts(), cdDM_release(), DerivedMesh::copyCornerEdgeArray, DerivedMesh::copyCornerVertArray, DerivedMesh::copyEdgeArray, DerivedMesh::copyPolyArray, DerivedMesh::copyVertArray, CDDerivedMesh::dm, DM_get_edge_data_layer(), DM_get_vert_data_layer(), DerivedMesh::getEdgeDataArray, DerivedMesh::getNumEdges, DerivedMesh::getNumLoops, DerivedMesh::getNumPolys, DerivedMesh::getNumVerts, DerivedMesh::getVertDataArray, MEM_callocN(), and DerivedMesh::release.
Referenced by cdDM_create(), and cdDM_from_mesh_ex().
| DerivedMesh * CDDM_from_mesh | ( | Mesh * | mesh | ) |
Creates a CDDerivedMesh from the given Mesh, this will reference the original data in Mesh, but it is safe to apply vertex coordinates or calculate normals as those functions will automatically create new data to not overwrite the original.
Definition at line 361 of file mesh_legacy_derived_mesh.cc.
References CD_MASK_MESH, CDDM_from_mesh(), and cdDM_from_mesh_ex().
Referenced by CDDM_from_mesh(), multires_modifier_update_mdisps(), blender::ed::object::multiresbake_create_hiresdm(), blender::ed::object::multiresbake_create_loresdm(), shrinkwrapModifier_deform(), and subsurf_calculate_limit_positions().
|
static |
Definition at line 310 of file mesh_legacy_derived_mesh.cc.
References BLI_assert, CD_MASK_MDISPS, CD_MASK_ORIGINDEX, CD_MFACE, CD_ORIGINDEX, CD_PROP_FLOAT3, CD_PROP_INT32, CD_PROP_INT32_2D, cdDM_create(), cdDM_from_mesh_ex(), Mesh::corner_data, CDDerivedMesh::corner_edges, CDDerivedMesh::corner_verts, Mesh::corners_num, CustomData_get_layer(), CustomData_get_layer_named_for_write(), CustomData_has_layer(), CustomData_merge(), CDDerivedMesh::dm, DM_init(), DM_TYPE_CDDM, Mesh::edge_data, DerivedMesh::edgeData, Mesh::edges_num, CustomData_MeshMasks::emask, Mesh::face_data, Mesh::face_offset_indices, DerivedMesh::face_offsets, DerivedMesh::faceData, Mesh::faces_num, Mesh::fdata_legacy, CustomData_MeshMasks::fmask, CustomData_MeshMasks::lmask, DerivedMesh::loopData, mask(), CDDerivedMesh::medge, MEM_dupallocN(), CDDerivedMesh::mface, CustomData_MeshMasks::pmask, DerivedMesh::polyData, Mesh::vert_data, CDDerivedMesh::vert_positions, DerivedMesh::vertData, Mesh::verts_num, and CustomData_MeshMasks::vmask.
Referenced by CDDM_from_mesh(), and cdDM_from_mesh_ex().
|
static |
Definition at line 233 of file mesh_legacy_derived_mesh.cc.
References cdDM_getNumEdges(), and DerivedMesh::numEdgeData.
Referenced by cdDM_create(), and cdDM_getNumEdges().
|
static |
Definition at line 238 of file mesh_legacy_derived_mesh.cc.
References cdDM_getNumLoops(), and DerivedMesh::numLoopData.
Referenced by cdDM_create(), and cdDM_getNumLoops().
|
static |
Definition at line 243 of file mesh_legacy_derived_mesh.cc.
References cdDM_getNumPolys(), and DerivedMesh::numPolyData.
Referenced by cdDM_create(), and cdDM_getNumPolys().
|
static |
Definition at line 228 of file mesh_legacy_derived_mesh.cc.
References cdDM_getNumVerts(), and DerivedMesh::numVertData.
Referenced by cdDM_create(), and cdDM_getNumVerts().
|
static |
Definition at line 277 of file mesh_legacy_derived_mesh.cc.
References cdDM_release(), DM_release(), and MEM_freeN().
Referenced by cdDM_create(), and cdDM_release().
| 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 CustomData_copy_data(), DM_copy_vert_data(), and DerivedMesh::vertData.
Referenced by DM_copy_vert_data(), and set_ccgdm_all_geometry().
| void DM_from_template | ( | DerivedMesh * | dm, |
| DerivedMesh * | source, | ||
| 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, with a layer setup copied from source
Definition at line 122 of file mesh_legacy_derived_mesh.cc.
References CD_MASK_DERIVEDMESH, CD_SET_DEFAULT, CustomData_init_layout_from(), DM_from_template(), DM_init_funcs(), DerivedMesh::edgeData, DerivedMesh::face_offsets, DerivedMesh::faceData, DerivedMesh::loopData, mask(), MEM_dupallocN(), DerivedMesh::numEdgeData, DerivedMesh::numLoopData, DerivedMesh::numPolyData, DerivedMesh::numTessFaceData, DerivedMesh::numVertData, DerivedMesh::polyData, DerivedMesh::type, and DerivedMesh::vertData.
Referenced by DM_from_template(), and getCCGDerivedMesh().
| void * DM_get_edge_data_layer | ( | DerivedMesh * | dm, |
| const eCustomDataType | type ) |
Definition at line 183 of file mesh_legacy_derived_mesh.cc.
References CustomData_get_layer_for_write(), DM_get_edge_data_layer(), DerivedMesh::edgeData, and DerivedMesh::getNumEdges.
Referenced by ccgDM_get_edge_data_layer(), cdDM_create(), DM_get_edge_data_layer(), DM_init_funcs(), and set_ccgdm_all_geometry().
| void * DM_get_loop_data_layer | ( | DerivedMesh * | dm, |
| const eCustomDataType | type ) |
Definition at line 193 of file mesh_legacy_derived_mesh.cc.
References CustomData_get_layer_for_write(), DM_get_loop_data_layer(), DerivedMesh::getNumLoops, and DerivedMesh::loopData.
Referenced by DM_get_loop_data_layer(), DM_init_funcs(), and do_multires_bake().
| void * DM_get_poly_data_layer | ( | DerivedMesh * | dm, |
| const eCustomDataType | type ) |
Definition at line 188 of file mesh_legacy_derived_mesh.cc.
References CustomData_get_layer_for_write(), DM_get_poly_data_layer(), DerivedMesh::getNumPolys, and DerivedMesh::polyData.
Referenced by ccgDM_get_poly_data_layer(), DM_get_poly_data_layer(), DM_init_funcs(), and set_ccgdm_all_geometry().
| void * DM_get_vert_data_layer | ( | DerivedMesh * | dm, |
| const eCustomDataType | type ) |
Definition at line 178 of file mesh_legacy_derived_mesh.cc.
References CustomData_get_layer_for_write(), DM_get_vert_data_layer(), DerivedMesh::getNumVerts, and DerivedMesh::vertData.
Referenced by ccgDM_get_vert_data_layer(), cdDM_create(), DM_get_vert_data_layer(), DM_init_funcs(), and set_ccgdm_all_geometry().
|
static |
Definition at line 59 of file mesh_legacy_derived_mesh.cc.
References CD_PROP_INT32, CD_SET_DEFAULT, DerivedMesh::copyCornerEdgeArray, CustomData_add_layer_named(), CustomData_get_layer_named(), dm_getCornerEdgeArray(), DerivedMesh::getNumLoops, and DerivedMesh::loopData.
Referenced by dm_getCornerEdgeArray(), and DM_init_funcs().
|
static |
Definition at line 45 of file mesh_legacy_derived_mesh.cc.
References CD_PROP_INT32, CD_SET_DEFAULT, DerivedMesh::copyCornerVertArray, CustomData_add_layer_named(), CustomData_get_layer_named_for_write(), dm_getCornerVertArray(), DerivedMesh::getNumLoops, and DerivedMesh::loopData.
Referenced by dm_getCornerVertArray(), and DM_init_funcs().
|
static |
Definition at line 30 of file mesh_legacy_derived_mesh.cc.
References CD_FLAG_TEMPORARY, CD_PROP_INT32_2D, CD_SET_DEFAULT, DerivedMesh::copyEdgeArray, CustomData_add_layer_named(), CustomData_get_layer_named_for_write(), CustomData_set_layer_flag(), dm_getEdgeArray(), DerivedMesh::edgeData, and DerivedMesh::getNumEdges.
Referenced by dm_getEdgeArray(), and DM_init_funcs().
|
static |
Definition at line 73 of file mesh_legacy_derived_mesh.cc.
References DerivedMesh::copyPolyArray, dm_getPolyArray(), DerivedMesh::face_offsets, DerivedMesh::getNumPolys, and MEM_calloc_arrayN().
Referenced by dm_getPolyArray(), and DM_init_funcs().
|
static |
Definition at line 15 of file mesh_legacy_derived_mesh.cc.
References CD_FLAG_TEMPORARY, CD_PROP_FLOAT3, CD_SET_DEFAULT, DerivedMesh::copyVertArray, CustomData_add_layer_named(), CustomData_get_layer_named_for_write(), CustomData_set_layer_flag(), dm_getVertArray(), DerivedMesh::getNumVerts, and DerivedMesh::vertData.
Referenced by dm_getVertArray(), and DM_init_funcs().
| 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(), 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(), and DM_init().
| 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 82 of file mesh_legacy_derived_mesh.cc.
References DM_get_edge_data_layer(), DM_get_loop_data_layer(), DM_get_poly_data_layer(), DM_get_vert_data_layer(), dm_getCornerEdgeArray(), dm_getCornerVertArray(), dm_getEdgeArray(), dm_getPolyArray(), dm_getVertArray(), DM_init_funcs(), DerivedMesh::getCornerEdgeArray, DerivedMesh::getCornerVertArray, DerivedMesh::getEdgeArray, DerivedMesh::getEdgeDataArray, DerivedMesh::getLoopDataArray, DerivedMesh::getPolyArray, DerivedMesh::getPolyDataArray, DerivedMesh::getVertArray, and DerivedMesh::getVertDataArray.
Referenced by DM_from_template(), DM_init(), and DM_init_funcs().
| 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 CustomData_interp(), DM_interp_vert_data(), and DerivedMesh::vertData.
Referenced by DM_interp_vert_data(), and set_ccgdm_all_geometry().
| void DM_release | ( | DerivedMesh * | dm | ) |
Definition at line 154 of file mesh_legacy_derived_mesh.cc.
References CustomData_free(), DM_release(), DerivedMesh::edgeData, DerivedMesh::face_offsets, DerivedMesh::faceData, DerivedMesh::loopData, MEM_SAFE_FREE, DerivedMesh::polyData, and DerivedMesh::vertData.
Referenced by ccgDM_release(), cdDM_release(), and DM_release().
| 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(), DM_set_only_copy(), DerivedMesh::edgeData, DerivedMesh::faceData, DerivedMesh::loopData, mask(), DerivedMesh::polyData, and DerivedMesh::vertData.
Referenced by DM_set_only_copy(), multires_modifier_update_mdisps(), blender::ed::object::multiresbake_create_hiresdm(), and blender::ed::object::multiresbake_create_loresdm().