Blender
V3.3
|
#include <climits>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_cloth_types.h"
#include "DNA_customdata_types.h"
#include "DNA_key_types.h"
#include "DNA_material_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_array.h"
#include "BLI_bitmap.h"
#include "BLI_blenlib.h"
#include "BLI_linklist.h"
#include "BLI_math.h"
#include "BLI_math_vec_types.hh"
#include "BLI_task.h"
#include "BLI_task.hh"
#include "BLI_utildefines.h"
#include "BLI_vector.hh"
#include "BKE_DerivedMesh.h"
#include "BKE_bvhutils.h"
#include "BKE_colorband.h"
#include "BKE_deform.h"
#include "BKE_editmesh.h"
#include "BKE_geometry_set.hh"
#include "BKE_geometry_set_instances.hh"
#include "BKE_key.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_material.h"
#include "BKE_mesh.h"
#include "BKE_mesh_iterators.h"
#include "BKE_mesh_mapping.h"
#include "BKE_mesh_runtime.h"
#include "BKE_mesh_tangent.h"
#include "BKE_mesh_wrapper.h"
#include "BKE_modifier.h"
#include "BKE_multires.h"
#include "BKE_object.h"
#include "BKE_object_deform.h"
#include "BKE_paint.h"
#include "BKE_subdiv_modifier.h"
#include "BLI_sys_types.h"
#include "BKE_shrinkwrap.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "CLG_log.h"
Go to the source code of this file.
Classes | |
struct | MappedUserData |
Macros | |
#define | ASSERT_IS_VALID_MESH(mesh) |
Variables | |
static ThreadRWMutex | loops_cache_lock = PTHREAD_RWLOCK_INITIALIZER |
Definition at line 79 of file DerivedMesh.cc.
|
static |
Definition at line 558 of file DerivedMesh.cc.
References BKE_mesh_orco_verts_transform(), BKE_mesh_update_customdata_pointers(), BKE_mesh_vert_coords_alloc(), CD_CALLOC, CD_ORCO, CustomData_add_layer(), CustomData_get_layer(), Object::data, float(), free(), get_orco_coords(), MEM_freeN, mesh, Mesh::totvert, and Mesh::vdata.
Referenced by editbmesh_calc_modifiers(), and mesh_calc_modifiers().
Definition at line 390 of file DerivedMesh.cc.
References BKE_keyblock_convert_from_mesh(), Mesh::key, and Mesh::totvert.
Referenced by ED_mesh_shapes_join_objects_exec().
void BKE_mesh_wrapper_deferred_finalize_mdata | ( | Mesh * | me_eval, |
const CustomData_MeshMasks * | cd_mask_finalize | ||
) |
Definition at line 668 of file DerivedMesh.cc.
References BLI_assert, editbmesh_calc_modifier_final_normals(), ME_WRAPPER_TYPE_BMESH, Mesh::runtime, and Mesh_Runtime::wrapper_type_finalize.
|
static |
Definition at line 532 of file DerivedMesh.cc.
References BKE_mesh_copy_for_eval(), BKE_mesh_ensure_default_orig_index_customdata(), BKE_mesh_from_bmesh_for_eval_nomain(), BKE_mesh_vert_coords_apply(), BMEditMesh::bm, float(), free(), get_orco_coords(), MEM_freeN, and mesh.
Referenced by editbmesh_calc_modifiers(), and mesh_calc_modifiers().
void DM_copy_vert_data | ( | struct DerivedMesh * | source, |
struct 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 460 of file DerivedMesh.cc.
References count, CustomData_copy_data(), dest, and DerivedMesh::vertData.
Referenced by set_ccgdm_all_geometry().
|
static |
Definition at line 160 of file DerivedMesh.cc.
References DerivedMesh::copyEdgeArray, DerivedMesh::getNumEdges, and MEM_malloc_arrayN.
Referenced by DM_init_funcs().
|
static |
Definition at line 172 of file DerivedMesh.cc.
References DerivedMesh::copyLoopArray, DerivedMesh::getNumLoops, and MEM_malloc_arrayN.
Referenced by DM_init_funcs().
|
static |
Definition at line 184 of file DerivedMesh.cc.
References DerivedMesh::copyPolyArray, DerivedMesh::getNumPolys, and MEM_malloc_arrayN.
Referenced by DM_init_funcs().
void DM_DupPolys | ( | DerivedMesh * | source, |
DerivedMesh * | target | ||
) |
Sets up mpolys for a DM based on face iterators in source.
Definition at line 332 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().
|
static |
Definition at line 148 of file DerivedMesh.cc.
References DerivedMesh::copyVertArray, DerivedMesh::getNumVerts, and MEM_malloc_arrayN.
Referenced by DM_init_funcs().
void DM_ensure_looptri_data | ( | DerivedMesh * | dm | ) |
Ensure the array is large enough.
Definition at line 362 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_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 277 of file DerivedMesh.cc.
References CD_CALLOC, DerivedMesh::cd_flag, CD_MASK_DERIVEDMESH, CustomData_copy(), DM_init_funcs(), DerivedMesh::edgeData, DerivedMesh::faceData, DerivedMesh::loopData, mask(), DerivedMesh::needsFree, DerivedMesh::numEdgeData, DerivedMesh::numLoopData, DerivedMesh::numPolyData, DerivedMesh::numTessFaceData, DerivedMesh::numVertData, DerivedMesh::polyData, DerivedMesh::type, type, and DerivedMesh::vertData.
Referenced by CDDM_copy(), and getCCGDerivedMesh().
void* DM_get_edge_data_layer | ( | DerivedMesh * | dm, |
int | type | ||
) |
Definition at line 441 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 | ( | DerivedMesh * | dm, |
int | type | ||
) |
Definition at line 455 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_layer | ( | DerivedMesh * | dm, |
int | type | ||
) |
Definition at line 450 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_vert_data_layer | ( | DerivedMesh * | dm, |
int | type | ||
) |
Definition at line 432 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().
|
static |
Definition at line 106 of file DerivedMesh.cc.
References CD_CALLOC, CD_FLAG_TEMPORARY, CD_MEDGE, DerivedMesh::copyEdgeArray, CustomData_add_layer(), CustomData_get_layer(), CustomData_set_layer_flag(), DerivedMesh::edgeData, and DerivedMesh::getNumEdges.
Referenced by DM_init_funcs().
|
static |
Definition at line 120 of file DerivedMesh.cc.
References CD_CALLOC, CD_FLAG_TEMPORARY, CD_MLOOP, DerivedMesh::copyLoopArray, CustomData_add_layer(), CustomData_get_layer(), CustomData_set_layer_flag(), DerivedMesh::getNumLoops, and DerivedMesh::loopData.
Referenced by DM_init_funcs().
|
static |
Definition at line 203 of file DerivedMesh.cc.
References DerivedMesh::array, BLI_assert, BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), DerivedMesh::getNumLoopTri, loops_cache_lock, DerivedMesh::looptris, DerivedMesh::num, DerivedMesh::recalcLoopTri, THREAD_LOCK_READ, and THREAD_LOCK_WRITE.
Referenced by DM_init_funcs().
|
static |
Definition at line 196 of file DerivedMesh.cc.
References BLI_assert, ELEM, DerivedMesh::getNumLoops, DerivedMesh::getNumPolys, DerivedMesh::looptris, DerivedMesh::num, and poly_to_tri_count().
Referenced by DM_init_funcs().
|
static |
Definition at line 134 of file DerivedMesh.cc.
References CD_CALLOC, CD_FLAG_TEMPORARY, CD_MPOLY, DerivedMesh::copyPolyArray, CustomData_add_layer(), CustomData_get_layer(), CustomData_set_layer_flag(), DerivedMesh::getNumPolys, and DerivedMesh::polyData.
Referenced by DM_init_funcs().
|
static |
Definition at line 92 of file DerivedMesh.cc.
References CD_CALLOC, CD_FLAG_TEMPORARY, CD_MVERT, DerivedMesh::copyVertArray, CustomData_add_layer(), CustomData_get_layer(), CustomData_set_layer_flag(), DerivedMesh::getNumVerts, and DerivedMesh::vertData.
Referenced by 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 250 of file DerivedMesh.cc.
References CD_NUMTYPES, copy_vn_i(), 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 227 of file DerivedMesh.cc.
References dm_dupEdgeArray(), dm_dupLoopArray(), dm_dupPolyArray(), dm_dupVertArray(), DM_get_edge_data_layer(), DM_get_loop_data_layer(), DM_get_poly_data_layer(), DM_get_vert_data_layer(), dm_getEdgeArray(), dm_getLoopArray(), dm_getLoopTriArray(), dm_getNumLoopTri(), dm_getPolyArray(), dm_getVertArray(), DerivedMesh::dupEdgeArray, DerivedMesh::dupLoopArray, DerivedMesh::dupPolyArray, DerivedMesh::dupVertArray, DerivedMesh::getEdgeArray, DerivedMesh::getEdgeDataArray, DerivedMesh::getLoopArray, DerivedMesh::getLoopDataArray, DerivedMesh::getLoopTriArray, DerivedMesh::getNumLoopTri, DerivedMesh::getPolyArray, DerivedMesh::getPolyDataArray, DerivedMesh::getVertArray, and DerivedMesh::getVertDataArray.
Referenced by DM_from_template(), and DM_init().
void DM_interp_vert_data | ( | struct DerivedMesh * | source, |
struct 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 466 of file DerivedMesh.cc.
References count, CustomData_interp(), dest, and DerivedMesh::vertData.
Referenced by set_ccgdm_all_geometry().
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 307 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 CustomData_MeshMasks * | mask | ||
) |
Definition at line 404 of file DerivedMesh.cc.
References CustomData_set_only_copy(), DerivedMesh::edgeData, DerivedMesh::faceData, DerivedMesh::loopData, mask(), DerivedMesh::polyData, and DerivedMesh::vertData.
|
static |
Definition at line 1694 of file DerivedMesh.cc.
References BKE_mesh_free_editmesh(), BKE_mesh_wrapper_ensure_mdata(), BKE_object_boundbox_calc_from_mesh(), BKE_object_eval_assign_data(), Object::data, depsgraph, Mesh::edit_mesh, editbmesh_calc_modifiers(), Object_Runtime::editmesh_eval_cage, Object_Runtime::geometry_set_eval, Mesh::id, Object_Runtime::last_data_mask, mesh, Mesh_Runtime::mesh_eval, Object::mode, OB_MODE_EDIT, Mesh::runtime, Object::runtime, and scene.
Referenced by editbmesh_get_eval_cage(), and makeDerivedMesh().
|
static |
Definition at line 1284 of file DerivedMesh.cc.
References BKE_mesh_calc_normals_split(), BKE_mesh_ensure_normals_for_display(), SubsurfRuntimeData::calc_loop_normals, CD_MASK_NORMAL, CD_NORMAL, CustomData_free_layers(), CustomData_has_layer(), Mesh::flag, Mesh::ldata, CustomData_MeshMasks::lmask, ME_AUTOSMOOTH, SubsurfRuntimeData::resolution, Mesh::runtime, Mesh_Runtime::subsurf_runtime_data, and Mesh::totloop.
Referenced by BKE_mesh_wrapper_deferred_finalize_mdata(), and editbmesh_calc_modifier_final_normals_or_defer().
|
static |
Definition at line 1314 of file DerivedMesh.cc.
References editbmesh_calc_modifier_final_normals(), ME_WRAPPER_TYPE_MDATA, Mesh::runtime, Mesh_Runtime::wrapper_type, and Mesh_Runtime::wrapper_type_finalize.
Referenced by editbmesh_calc_modifiers().
|
static |
Definition at line 1326 of file DerivedMesh.cc.
References add_orco_mesh(), ASSERT_IS_VALID_MESH, BKE_id_free(), BKE_mesh_copy_for_eval(), BKE_mesh_ensure_default_orig_index_customdata(), BKE_mesh_from_bmesh_for_eval_nomain(), BKE_mesh_runtime_ensure_edit_data(), BKE_mesh_runtime_reset_edit_data(), BKE_mesh_vert_coords_alloc(), BKE_mesh_vert_coords_apply(), BKE_mesh_wrapper_ensure_mdata(), BKE_mesh_wrapper_from_editmesh_with_coords(), BKE_modifier_calc_data_masks(), BKE_modifier_deform_verts(), BKE_modifier_deform_vertsEM(), BKE_modifier_get_info(), BKE_modifier_modify_mesh(), BKE_modifiers_clear_errors(), BKE_modifiers_get_cage_index(), BKE_modifiers_get_virtual_modifierlist(), BLI_assert, BLI_linklist_free(), BMEditMesh::bm, CD_CALLOC, CD_MASK_BAREMESH, CD_MASK_ORCO, CD_MASK_ORIGINDEX, CD_MASK_ORIGSPACE_MLOOP, CD_ORCO, CD_ORIGINDEX, CD_ORIGSPACE_MLOOP, create_orco_mesh(), CustomData_add_layer(), CustomData_get_layer(), CustomData_has_layer(), CustomData_MeshMasks_update(), DAG_EVAL_RENDER, Object::data, ModifierTypeInfo::deformVertsEM, DEG_get_mode(), ModifierTypeInfo::dependsOnNormals, depsgraph, BMesh::edata, Mesh_Runtime::edit_data, editbmesh_calc_modifier_final_normals_or_defer(), editbmesh_modifier_is_enabled(), editbmesh_vert_coords_alloc(), eModifierMode_Editmode, eModifierMode_Realtime, eModifierTypeType_OnlyDeform, float(), Mesh::id, LIB_TAG_COPIED_ON_WRITE, mask(), CDMaskLink::mask, MEM_dupallocN, MEM_freeN, mesh_init_origspace(), mesh_set_only_copy(), MOD_APPLY_ORCO, MOD_APPLY_RENDER, MOD_APPLY_USECACHE, Object::mode, modifier_modify_mesh_and_geometry_set(), CDMaskLink::next, ModifierData::next, OB_MODE_EDIT, BMesh::pdata, ModifierTypeInfo::requiredDataMask, Mesh::runtime, scene, ID::tag, ModifierTypeInfo::type, ModifierData::type, EditMeshData::vertexCos, and CustomData_MeshMasks::vmask.
Referenced by editbmesh_build_data().
Mesh* editbmesh_get_eval_cage | ( | struct Depsgraph * | depsgraph, |
const Scene * | scene, | ||
Object * | obedit, | ||
BMEditMesh * | em, | ||
const CustomData_MeshMasks * | dataMask | ||
) |
Definition at line 1933 of file DerivedMesh.cc.
References CustomData_MeshMasks_are_matching(), depsgraph, editbmesh_build_data(), Object_Runtime::editmesh_eval_cage, Object_Runtime::last_data_mask, object_get_datamask(), Object::runtime, and scene.
Referenced by editbmesh_get_eval_cage_from_orig().
Mesh* editbmesh_get_eval_cage_from_orig | ( | struct Depsgraph * | depsgraph, |
const Scene * | scene, | ||
Object * | obedit, | ||
const CustomData_MeshMasks * | dataMask | ||
) |
Definition at line 1954 of file DerivedMesh.cc.
References BKE_editmesh_from_object(), BLI_assert, DEG_get_evaluated_id(), depsgraph, editbmesh_get_eval_cage(), Object::id, Scene::id, LIB_TAG_COPIED_ON_WRITE, scene, and ID::tag.
bool editbmesh_modifier_is_enabled | ( | const Scene * | scene, |
const Object * | ob, | ||
ModifierData * | md, | ||
bool | has_prev_mesh | ||
) |
Definition at line 1264 of file DerivedMesh.cc.
References BKE_modifier_get_info(), BKE_modifier_is_enabled(), BKE_modifier_set_error(), eModifierMode_Editmode, eModifierMode_Realtime, eModifierTypeFlag_RequiresOriginalData, ModifierTypeInfo::flags, scene, and ModifierData::type.
Referenced by editbmesh_calc_modifiers().
float(* editbmesh_vert_coords_alloc | ( | BMEditMesh * | em, |
int * | r_vert_len | ||
) | )[3] |
Definition at line 1246 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().
|
static |
Definition at line 477 of file DerivedMesh.cc.
References BM_ITER_MESH_INDEX, BM_VERTS_OF_MESH, BMVert::co, copy_v3_v3(), float(), and MEM_malloc_arrayN.
Referenced by get_orco_coords().
|
static |
Definition at line 497 of file DerivedMesh.cc.
References BKE_key_from_object(), BKE_keyblock_from_key(), BKE_mesh_orco_verts_get(), BKE_modifiers_findby_type(), CD_CLOTH_ORCO, CD_ORCO, KeyBlock::data, eModifierType_Cloth, free(), get_editbmesh_orco_verts(), ClothSimSettings::shapekey_rest, and ClothModifierData::sim_parms.
Referenced by add_orco_mesh(), and create_orco_mesh().
|
static |
Definition at line 1974 of file DerivedMesh.cc.
References BLI_BITMAP_ENABLE, BLI_BITMAP_TEST, copy_v3_v3(), MappedUserData::vertex_visit, and MappedUserData::vertexcos.
Referenced by mesh_get_mapped_verts_coords().
void makeDerivedMesh | ( | struct Depsgraph * | depsgraph, |
const Scene * | scene, | ||
Object * | ob, | ||
const CustomData_MeshMasks * | dataMask | ||
) |
Definition at line 1787 of file DerivedMesh.cc.
References BKE_object_free_derived_caches(), BKE_sculpt_update_object_before_eval(), BLI_assert, Object::data, DEG_is_active(), depsgraph, editbmesh_build_data(), Object::id, LIB_TAG_COPIED_ON_WRITE, mesh_build_data(), OB_MESH, object_get_datamask(), scene, ID::tag, and Object::type.
Referenced by mesh_get_eval_final().
|
static |
Definition at line 1629 of file DerivedMesh.cc.
References BKE_object_boundbox_calc_from_mesh(), BKE_object_eval_assign_data(), BKE_sculpt_update_object_after_eval(), BLI_assert, CD_MASK_ORIGINDEX, Object::data, DEG_is_active(), DEG_is_evaluated_id(), depsgraph, Editable, CustomData_MeshMasks::emask, Object_Runtime::geometry_set_eval, GeometrySet::get_component_for_write(), Key::id, Mesh::id, Mesh::key, Object_Runtime::last_data_mask, Object_Runtime::last_need_mapping, mesh, mesh_build_extra_data(), mesh_calc_modifiers(), Object_Runtime::mesh_deform_eval, Mesh_Runtime::mesh_eval, Object::mode, OB_MODE_ALL_SCULPT, CustomData_MeshMasks::pmask, MeshComponent::replace(), Mesh::runtime, Object::runtime, scene, Object::sculpt, and CustomData_MeshMasks::vmask.
Referenced by makeDerivedMesh(), and mesh_get_eval_deform().
|
static |
Definition at line 1620 of file DerivedMesh.cc.
References BKE_shrinkwrap_compute_boundary_data(), DAG_EVAL_NEED_SHRINKWRAP_BOUNDARY, DEG_get_eval_flags_for_id(), depsgraph, and Object::id.
Referenced by mesh_build_data().
Definition at line 659 of file DerivedMesh.cc.
References BLI_strncpy(), Mesh::edit_mesh, Mesh::id, and ID::name.
Referenced by mesh_calc_modifiers().
|
static |
Definition at line 613 of file DerivedMesh.cc.
References BKE_mesh_calc_normals_split(), BKE_mesh_ensure_normals_for_display(), SubsurfRuntimeData::calc_loop_normals, CD_MASK_NORMAL, CD_NORMAL, CustomData_free_layers(), CustomData_has_layer(), Mesh::flag, Mesh::ldata, CustomData_MeshMasks::lmask, ME_AUTOSMOOTH, SubsurfRuntimeData::resolution, Mesh::runtime, Mesh_Runtime::subsurf_runtime_data, and Mesh::totloop.
Referenced by mesh_calc_modifiers().
|
static |
Definition at line 731 of file DerivedMesh.cc.
References add_orco_mesh(), ASSERT_IS_VALID_MESH, ATTR_DOMAIN_POINT, BKE_id_free(), BKE_mesh_assert_normals_dirty_or_calculated(), BKE_mesh_copy_for_eval(), BKE_mesh_vert_coords_alloc(), BKE_mesh_vert_coords_apply(), BKE_modifier_calc_data_masks(), BKE_modifier_deform_verts(), BKE_modifier_free_temporary_data(), BKE_modifier_get_info(), BKE_modifier_get_last_preview(), BKE_modifier_is_enabled(), BKE_modifier_modify_mesh(), BKE_modifier_set_error(), BKE_modifier_supports_mapping(), BKE_modifiers_clear_errors(), BKE_modifiers_get_virtual_modifierlist(), BKE_sculpt_multires_active(), BLI_assert, BLI_linklist_free(), BLI_mutex_lock(), BLI_mutex_unlock(), SculptSession::bm, CD_CALLOC, CD_CLOTH_ORCO, CD_MASK_BAREMESH_ORIGINDEX, CD_MASK_CLOTH_ORCO, CD_MASK_ORCO, CD_MASK_ORIGINDEX, CD_MASK_ORIGSPACE_MLOOP, CD_MASK_PREVIEW_MLOOPCOL, CD_ORCO, CD_ORIGINDEX, CD_ORIGSPACE_MLOOP, create_orco_mesh(), CustomData_add_layer(), CustomData_free_layers(), CustomData_get_layer(), CustomData_has_layer(), CustomData_MeshMasks_update(), DAG_EVAL_RENDER, Object::data, Mesh_Runtime::deformed_only, DEG_get_mode(), ModifierTypeInfo::dependsOnNormals, depsgraph, Mesh::edata, CustomData_MeshMasks::emask, eModifierMode_Realtime, eModifierMode_Render, eModifierType_DynamicPaint, eModifierType_Multires, eModifierTypeFlag_RequiresOriginalData, eModifierTypeType_OnlyDeform, Mesh_Runtime::eval_mutex, blender::bke::SpanAttributeWriter< T >::finish(), ModifierTypeInfo::flags, Sculpt::flags, float(), CustomData_MeshMasks::fmask, Mesh::id, blender::threading::isolate_task(), Mesh::ldata, LIB_TAG_COPIED_ON_WRITE_EVAL_RESULT, CustomData_MeshMasks::lmask, blender::bke::AttributeAccessor::lookup(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), mask(), CDMaskLink::mask, MEM_freeN, blender::bke::mesh_attributes_for_write(), mesh_calc_finalize(), mesh_calc_modifier_final_normals(), Mesh_Runtime::mesh_eval, mesh_has_modifier_final_normals(), mesh_init_origspace(), mesh_set_only_copy(), MOD_APPLY_ORCO, MOD_APPLY_RENDER, MOD_APPLY_USECACHE, Object::mode, Object::modifier_flag, modifier_modify_mesh_and_geometry_set(), CDMaskLink::next, ModifierData::next, OB_MODE_OBJECT, OB_MODE_SCULPT, OB_MODIFIER_FLAG_ADD_REST_POSITION, Mesh::pdata, CustomData_MeshMasks::pmask, range_vn_i(), ModifierTypeInfo::requiredDataMask, Mesh::runtime, scene, Object::sculpt, ToolSettings::sculpt, SCULPT_ONLY_DEFORM, blender::bke::SpanAttributeWriter< T >::span, ID::tag, Scene::toolsettings, Mesh::totedge, Mesh::totloop, Mesh::totpoly, Mesh::totvert, ModifierTypeInfo::type, ModifierData::type, Mesh::vdata, and CustomData_MeshMasks::vmask.
Referenced by mesh_build_data(), mesh_create_eval_final(), mesh_create_eval_no_deform(), and mesh_create_eval_no_deform_render().
Mesh* mesh_create_eval_final | ( | Depsgraph * | depsgraph, |
const Scene * | scene, | ||
Object * | ob, | ||
const CustomData_MeshMasks * | dataMask | ||
) |
Definition at line 1898 of file DerivedMesh.cc.
References depsgraph, mesh_calc_modifiers(), result, and scene.
Mesh* mesh_create_eval_no_deform | ( | Depsgraph * | depsgraph, |
const Scene * | scene, | ||
Object * | ob, | ||
const CustomData_MeshMasks * | dataMask | ||
) |
Definition at line 1909 of file DerivedMesh.cc.
References depsgraph, mesh_calc_modifiers(), result, and scene.
Mesh* mesh_create_eval_no_deform_render | ( | Depsgraph * | depsgraph, |
const Scene * | scene, | ||
Object * | ob, | ||
const CustomData_MeshMasks * | dataMask | ||
) |
Definition at line 1920 of file DerivedMesh.cc.
References depsgraph, mesh_calc_modifiers(), result, and scene.
Mesh* mesh_get_eval_deform | ( | struct Depsgraph * | depsgraph, |
const Scene * | scene, | ||
Object * | ob, | ||
const CustomData_MeshMasks * | dataMask | ||
) |
Definition at line 1858 of file DerivedMesh.cc.
References BLI_assert, BLI_assert_msg, CustomData_MeshMasks_are_matching(), CustomData_MeshMasks_update(), Object::data, DEG_is_evaluating(), depsgraph, Object::id, Object_Runtime::last_data_mask, Object_Runtime::last_need_mapping, LIB_TAG_COPIED_ON_WRITE, mesh_build_data(), Object_Runtime::mesh_deform_eval, object_get_datamask(), Object::runtime, scene, and ID::tag.
Mesh* mesh_get_eval_final | ( | struct Depsgraph * | depsgraph, |
const Scene * | scene, | ||
Object * | ob, | ||
const CustomData_MeshMasks * | dataMask | ||
) |
Definition at line 1823 of file DerivedMesh.cc.
References BKE_mesh_assert_normals_dirty_or_calculated(), BKE_object_get_evaluated_mesh(), BLI_assert, CustomData_MeshMasks_are_matching(), CustomData_MeshMasks_update(), DEG_is_evaluating(), depsgraph, Object::id, Object_Runtime::last_data_mask, Object_Runtime::last_need_mapping, LIB_TAG_COPIED_ON_WRITE, makeDerivedMesh(), object_get_datamask(), Object::runtime, scene, and ID::tag.
Definition at line 1990 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().
|
static |
Definition at line 600 of file DerivedMesh.cc.
References CD_MASK_NORMAL, CD_NORMAL, CustomData_has_layer(), Mesh::flag, Mesh::ldata, CustomData_MeshMasks::lmask, and ME_AUTOSMOOTH.
Referenced by mesh_calc_modifiers().
Definition at line 2008 of file DerivedMesh.cc.
References add_v2_v2v2(), axis_dominant_v3_to_m3(), BKE_mesh_calc_poly_normal(), BKE_mesh_tessface_clear(), CD_ORIGSPACE_MLOOP, copy_v2_v2(), CustomData_get_layer(), ELEM, invert_v2(), l, Mesh::ldata, MPoly::loopstart, max, mesh, min, Mesh::mloop, Mesh::mpoly, mul_v2_v2(), mul_v3_m3v3(), Mesh::mvert, negate_v2_v2(), blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), sub_v2_v2v2(), MPoly::totloop, Mesh::totpoly, OrigSpaceLoop::uv, and BMLoop::v.
Referenced by editbmesh_calc_modifiers(), and mesh_calc_modifiers().
|
static |
Definition at line 418 of file DerivedMesh.cc.
References CustomData_set_only_copy(), Mesh::edata, Mesh::fdata, Mesh::ldata, mask(), mesh, Mesh::pdata, and Mesh::vdata.
Referenced by editbmesh_calc_modifiers(), and mesh_calc_modifiers().
|
static |
Modifies the given mesh and geometry set. The mesh is not passed as part of the mesh component in the geometry_set input, it is only passed in input_mesh and returned in the return value.
The purpose of the geometry set is to store all geometry components that are generated by modifiers to allow outputting non-mesh data from modifiers.
Definition at line 686 of file DerivedMesh.cc.
References BKE_mesh_copy_parameters_for_eval(), BKE_mesh_new_nomain(), BKE_mesh_wrapper_ensure_mdata(), BKE_modifier_get_info(), BKE_modifier_modify_mesh(), Editable, MeshComponent::ensure_owns_direct_data(), GeometrySet::get_component_for_write(), MeshComponent::get_for_read(), GeometrySet::has(), ModifierTypeInfo::modifyGeometrySet, MeshComponent::release(), MeshComponent::replace(), and ModifierData::type.
Referenced by editbmesh_calc_modifiers(), and mesh_calc_modifiers().
|
static |
Definition at line 1737 of file DerivedMesh.cc.
References ViewLayer::basact, BKE_paint_select_face_test(), CD_MASK_MDEFORMVERT, CD_MASK_MLOOPUV, CD_MASK_MTFACE, CD_MASK_MVERT_SKIN, CD_MASK_PROP_BYTE_COLOR, DEG_get_customdata_mask_for_object(), DEG_get_evaluated_view_layer(), DEG_get_original_object(), DEG_is_active(), depsgraph, CustomData_MeshMasks::fmask, CustomData_MeshMasks::lmask, Object::mode, OB_MODE_EDIT, OB_MODE_TEXTURE_PAINT, OB_MODE_VERTEX_PAINT, OB_MODE_WEIGHT_PAINT, Base::object, and CustomData_MeshMasks::vmask.
Referenced by editbmesh_get_eval_cage(), makeDerivedMesh(), mesh_get_eval_deform(), and mesh_get_eval_final().
|
static |
Definition at line 82 of file DerivedMesh.cc.
Referenced by dm_getLoopTriArray().