|
Blender
V2.93
|
#include <float.h>#include <math.h>#include <stdarg.h>#include <stddef.h>#include <stdlib.h>#include <string.h>#include "MEM_guardedalloc.h"#include "DNA_armature_types.h"#include "DNA_cloth_types.h"#include "DNA_dynamicpaint_types.h"#include "DNA_fluid_types.h"#include "DNA_gpencil_modifier_types.h"#include "DNA_mesh_types.h"#include "DNA_object_fluidsim_types.h"#include "DNA_object_force_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_screen_types.h"#include "BLI_linklist.h"#include "BLI_listbase.h"#include "BLI_path_util.h"#include "BLI_session_uuid.h"#include "BLI_string.h"#include "BLI_string_utils.h"#include "BLI_utildefines.h"#include "BLT_translation.h"#include "BKE_DerivedMesh.h"#include "BKE_appdir.h"#include "BKE_editmesh.h"#include "BKE_editmesh_cache.h"#include "BKE_effect.h"#include "BKE_fluid.h"#include "BKE_global.h"#include "BKE_gpencil_modifier.h"#include "BKE_idtype.h"#include "BKE_key.h"#include "BKE_lib_id.h"#include "BKE_lib_query.h"#include "BKE_mesh.h"#include "BKE_mesh_wrapper.h"#include "BKE_multires.h"#include "BKE_object.h"#include "BKE_pointcache.h"#include "BKE_main.h"#include "DEG_depsgraph.h"#include "DEG_depsgraph_query.h"#include "MOD_modifiertypes.h"#include "BLO_read_write.h"#include "CLG_log.h"Go to the source code of this file.
Macros | |
| #define | DNA_DEPRECATED_ALLOW |
Variables | |
| static CLG_LogRef | LOG = {"bke.modifier"} |
| static ModifierTypeInfo * | modifier_types [NUM_MODIFIER_TYPES] = {NULL} |
| static VirtualModifierData | virtualModifierCommonData |
| #define DNA_DEPRECATED_ALLOW |
Definition at line 28 of file blenkernel/intern/modifier.c.
| void BKE_modifier_blend_read_data | ( | BlendDataReader * | reader, |
| ListBase * | lb, | ||
| Object * | ob | ||
| ) |
Definition at line 1381 of file blenkernel/intern/modifier.c.
References BKE_effector_add_weights(), BKE_modifier_get_info(), BKE_modifier_session_uuid_generate(), BKE_ptcache_blend_read_data(), BKE_ptcache_free(), ModifierTypeInfo::blendRead, BLI_listbase_clear(), BLI_rw_mutex_alloc(), BLO_read_data_address, BLO_read_data_reports(), BLO_read_get_new_data_address(), BLO_read_list(), BLO_reportf_wrap(), DynamicPaintModifierData::brush, DynamicPaintModifierData::canvas, ClothModifierData::clothObject, FluidDomainSettings::coba, ClothModifierData::coll_parms, FluidModifierData::domain, FluidModifierData::effector, ClothSimSettings::effector_weights, FluidDomainSettings::effector_weights, eModifierType_Cloth, eModifierType_DynamicPaint, eModifierType_Fluid, eModifierType_Fluidsim, eModifierType_None, ModifierData::error, ListBase::first, PointCache::flag, DynamicPaintCanvasSettings::flags, FluidModifierData::flow, FluidDomainSettings::fluid, FluidDomainSettings::fluid_mutex, FluidDomainSettings::fmd, FluidFlowSettings::fmd, FluidEffectorSettings::fmd, ClothModifierData::hairdata, Object::id, LISTBASE_FOREACH, FluidFlowSettings::mesh, FluidEffectorSettings::mesh, FluidDomainSettings::mesh_velocities, MOD_DPAINT_BAKING, MOD_FLUID_TYPE_DOMAIN, MOD_FLUID_TYPE_EFFEC, MOD_FLUID_TYPE_FLOW, modifier_replace_with_fluid(), ModifierData::name, ID::name, NULL, FluidFlowSettings::numverts, FluidEffectorSettings::numverts, DynamicPaintBrushSettings::paint_ramp, DynamicPaintCanvasSettings::pmd, DynamicPaintBrushSettings::pmd, FluidDomainSettings::point_cache, ClothModifierData::point_cache, ClothSimSettings::presets, DynamicPaintBrushSettings::psys, FluidFlowSettings::psys, PTCACHE_FAKE_SMOKE, FluidDomainSettings::ptcaches, ClothModifierData::ptcaches, ClothSimSettings::reset, RPT_WARNING, ModifierData::runtime, ClothModifierData::sim_parms, ClothModifierData::solver_result, surface, DynamicPaintCanvasSettings::surfaces, FluidDomainSettings::tex_coba, FluidDomainSettings::tex_color, FluidDomainSettings::tex_density, FluidDomainSettings::tex_field, FluidDomainSettings::tex_flame, FluidDomainSettings::tex_flame_coba, FluidDomainSettings::tex_shadow, FluidDomainSettings::tex_velocity_x, FluidDomainSettings::tex_velocity_y, FluidDomainSettings::tex_velocity_z, FluidDomainSettings::tex_wt, TIP_, ModifierData::type, FluidModifierData::type, DynamicPaintBrushSettings::vel_ramp, FluidFlowSettings::verts_old, and FluidEffectorSettings::verts_old.
Referenced by object_blend_read_data().
| void BKE_modifier_blend_read_lib | ( | BlendLibReader * | reader, |
| Object * | ob | ||
| ) |
Definition at line 1571 of file blenkernel/intern/modifier.c.
References BKE_modifiers_foreach_ID_link(), BKE_object_modifiers_lib_link_common(), eModifierFlag_OverrideLibrary_Local, Object::id, ID::lib, LISTBASE_FOREACH, mod(), Object::modifiers, and NULL.
Referenced by object_blend_read_lib().
| void BKE_modifier_blend_write | ( | BlendWriter * | writer, |
| ListBase * | modbase | ||
| ) |
Definition at line 1163 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BKE_ptcache_add(), BKE_ptcache_blend_write(), BKE_ptcache_free_list(), ModifierTypeInfo::blendWrite, BLO_write_struct, BLO_write_struct_by_name(), DynamicPaintModifierData::brush, DynamicPaintModifierData::canvas, FluidDomainSettings::coba, ClothModifierData::coll_parms, DATA, FluidModifierData::domain, FluidModifierData::effector, ClothSimSettings::effector_weights, FluidDomainSettings::effector_weights, eModifierType_Cloth, eModifierType_Collision, eModifierType_DynamicPaint, eModifierType_Fluid, eModifierType_Fluidsim, PointCache::flag, FluidModifierData::flow, FluidsimModifierData::fss, LISTBASE_FOREACH, MOD_FLUID_TYPE_DOMAIN, MOD_FLUID_TYPE_EFFEC, MOD_FLUID_TYPE_FLOW, NULL, DynamicPaintBrushSettings::paint_ramp, FluidDomainSettings::point_cache, PTCACHE_DISK_CACHE, PTCACHE_FAKE_SMOKE, FluidDomainSettings::ptcaches, ClothModifierData::ptcaches, ClothModifierData::sim_parms, PointCache::step, ModifierTypeInfo::structName, surface, DynamicPaintCanvasSettings::surfaces, ModifierData::type, FluidModifierData::type, DynamicPaintBrushSettings::vel_ramp, writestruct, CollisionModifierData::x, and CollisionModifierData::xnew.
Referenced by object_blend_write().
| CDMaskLink* BKE_modifier_calc_data_masks | ( | const struct Scene * | scene, |
| Object * | ob, | ||
| ModifierData * | md, | ||
| CustomData_MeshMasks * | final_datamask, | ||
| int | required_mode, | ||
| ModifierData * | previewmd, | ||
| const CustomData_MeshMasks * | previewmask | ||
| ) |
Definition at line 590 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BKE_modifier_is_enabled(), BLI_linklist_reverse(), CD_MASK_ORCO, CustomData_MeshMasks_update(), eModifierTypeType_OnlyDeform, CDMaskLink::mask, MEM_callocN, CDMaskLink::next, ModifierData::next, NULL, ModifierTypeInfo::requiredDataMask, scene, ModifierTypeInfo::type, ModifierData::type, and CustomData_MeshMasks::vmask.
| void BKE_modifier_check_uuids_unique_and_report | ( | const Object * | object | ) |
Definition at line 1140 of file blenkernel/intern/modifier.c.
References BLI_gset_free(), BLI_gset_insert(), BLI_gset_lookup(), BLI_gset_new(), BLI_session_uuid_ghash_compare(), BLI_session_uuid_ghash_hash(), BLI_session_uuid_is_generated(), Object::id, LISTBASE_FOREACH, Object::modifiers, ModifierData::name, ID::name, NULL, and ModifierData::session_uuid.
| void BKE_modifier_copydata | ( | ModifierData * | md, |
| ModifierData * | target | ||
| ) |
Definition at line 397 of file blenkernel/intern/modifier.c.
References BKE_modifier_copydata_ex().
Referenced by BKE_object_copy_modifier(), and ED_object_modifier_copy().
| void BKE_modifier_copydata_ex | ( | ModifierData * | md, |
| ModifierData * | target, | ||
| const int | flag | ||
| ) |
Definition at line 367 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BKE_modifier_session_uuid_generate(), ModifierTypeInfo::copyData, ModifierData::flag, ModifierTypeInfo::foreachIDLink, LIB_ID_CREATE_NO_MAIN, LIB_ID_CREATE_NO_USER_REFCOUNT, ModifierData::mode, modifier_copy_data_id_us_cb(), NULL, ModifierData::session_uuid, ModifierData::type, and ModifierData::ui_expand_flag.
Referenced by BKE_modifier_copydata(), BKE_object_copy_particlesystem(), and BKE_object_modifier_stack_copy().
| void BKE_modifier_copydata_generic | ( | const ModifierData * | md_src, |
| ModifierData * | md_dst, | ||
| const int | UNUSEDflag | ||
| ) |
Definition at line 334 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BLI_assert, ModifierTypeInfo::freeData, NULL, ModifierData::runtime, ModifierTypeInfo::structSize, and ModifierData::type.
| bool BKE_modifier_couldbe_cage | ( | struct Scene * | scene, |
| ModifierData * | md | ||
| ) |
Definition at line 410 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BKE_modifier_supports_mapping(), eModifierMode_Editmode, eModifierMode_Realtime, ModifierTypeInfo::isDisabled, ModifierData::mode, scene, and ModifierData::type.
Referenced by modifier_panel_header().
| void BKE_modifier_deform_verts | ( | ModifierData * | md, |
| const ModifierEvalContext * | ctx, | ||
| Mesh * | me, | ||
| float(*) | vertexCos[3], | ||
| int | numVerts | ||
| ) |
Definition at line 1056 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BLI_assert, CD_NORMAL, CustomData_has_layer(), ModifierTypeInfo::deformVerts, ModifierTypeInfo::dependsOnNormals, modwrap_dependsOnNormals(), and ModifierData::type.
| void BKE_modifier_deform_vertsEM | ( | ModifierData * | md, |
| const ModifierEvalContext * | ctx, | ||
| struct BMEditMesh * | em, | ||
| Mesh * | me, | ||
| float(*) | vertexCos[3], | ||
| int | numVerts | ||
| ) |
Definition at line 1071 of file blenkernel/intern/modifier.c.
References BKE_mesh_calc_normals(), BKE_modifier_get_info(), BLI_assert, CD_NORMAL, CustomData_has_layer(), ModifierTypeInfo::deformVertsEM, ModifierTypeInfo::dependsOnNormals, and ModifierData::type.
| bool BKE_modifier_depends_ontime | ( | ModifierData * | md | ) |
Definition at line 252 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), ModifierTypeInfo::dependsOnTime, and ModifierData::type.
Referenced by BKE_object_modifier_use_time().
| void BKE_modifier_free | ( | ModifierData * | md | ) |
Definition at line 211 of file blenkernel/intern/modifier.c.
References BKE_modifier_free_ex().
Referenced by bake(), BKE_modifier_init(), BKE_particle_system_blend_read_lib(), ED_object_modifier_apply(), free_hair(), object_hook_remove_exec(), object_modifier_remove(), object_remove_parent_deform_modifiers(), object_remove_particle_system(), psys_free(), and remove_particle_systems_from_object().
| void BKE_modifier_free_ex | ( | ModifierData * | md, |
| const int | flag | ||
| ) |
Definition at line 191 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), ModifierData::error, ModifierTypeInfo::foreachIDLink, ModifierTypeInfo::freeData, LIB_ID_CREATE_NO_USER_REFCOUNT, MEM_freeN, modifier_free_data_id_us_cb(), NULL, and ModifierData::type.
Referenced by BKE_modifier_free(), and BKE_object_free_modifiers().
| void BKE_modifier_free_temporary_data | ( | ModifierData * | md | ) |
Definition at line 940 of file blenkernel/intern/modifier.c.
References eModifierType_Armature, MEM_SAFE_FREE, ModifierData::type, and ArmatureModifierData::vert_coords_prev.
Referenced by mesh_calc_modifiers().
| struct ModifierData* BKE_modifier_get_evaluated | ( | Depsgraph * | depsgraph, |
| Object * | object, | ||
| ModifierData * | md | ||
| ) |
Definition at line 1129 of file blenkernel/intern/modifier.c.
References BKE_modifiers_findby_name(), DEG_get_evaluated_object(), depsgraph, and ModifierData::name.
Referenced by correctivesmooth_bind_exec(), laplaciandeform_bind_exec(), meshdeform_bind_exec(), object_force_modifier_bind_simple_options(), remove_tagged_keys(), and surfacedeform_bind_exec().
| Mesh* BKE_modifier_get_evaluated_mesh_from_evaluated_object | ( | Object * | ob_eval, |
| const bool | get_cage_mesh | ||
| ) |
Get evaluated mesh for other evaluated object, which is used as an operand for the modifier, e.g. second operand for boolean modifier. Note that modifiers in stack always get fully evaluated COW ID pointers, never original ones. Makes things simpler.
| get_cage_mesh | Return evaluated mesh with only deforming modifiers applied (i.e. mesh topology remains the same as original one, a.k.a. 'cage' mesh). |
Definition at line 1098 of file blenkernel/intern/modifier.c.
References BKE_editmesh_from_object(), BKE_object_get_evaluated_mesh(), Object_Runtime::mesh_deform_eval, BMEditMesh::mesh_eval_cage, BMEditMesh::mesh_eval_final, Object::mode, NULL, OB_MESH, OB_MODE_EDIT, Object::runtime, and Object::type.
Referenced by blender::bke::add_final_mesh_as_geometry_component(), arrayModifier_doArray(), BKE_object_data_transfer_ex(), blender::ed::spreadsheet::get_display_geometry_set(), meshdeformModifier_do(), modifyMesh(), modifyVolume(), shrinkwrap_calc_normal_projection(), shrinkwrapModifier_deform(), and surfacedeformModifier_do().
| const ModifierTypeInfo* BKE_modifier_get_info | ( | ModifierType | type | ) |
Definition at line 126 of file blenkernel/intern/modifier.c.
References modifier_types, NULL, NUM_MODIFIER_TYPES, and type.
Referenced by add_hook_object(), BKE_crazyspace_build_sculpt(), BKE_crazyspace_get_first_deform_matrices_editbmesh(), BKE_curve_calc_modifiers_pre(), BKE_lattice_modifiers_calc(), BKE_mesh_create_derived_for_modifier(), BKE_modifier_blend_read_data(), BKE_modifier_blend_write(), BKE_modifier_calc_data_masks(), BKE_modifier_copydata_ex(), BKE_modifier_copydata_generic(), BKE_modifier_couldbe_cage(), BKE_modifier_deform_verts(), BKE_modifier_deform_vertsEM(), BKE_modifier_depends_ontime(), BKE_modifier_free_ex(), BKE_modifier_is_correctable_deformed(), BKE_modifier_is_enabled(), BKE_modifier_is_non_geometrical(), BKE_modifier_is_preview(), BKE_modifier_is_same_topology(), BKE_modifier_modify_mesh(), BKE_modifier_new(), BKE_modifier_supports_cage(), BKE_modifier_supports_mapping(), BKE_modifier_type_panel_id(), BKE_modifier_unique_name(), BKE_modifiers_foreach_ID_link(), BKE_modifiers_foreach_tex_link(), BKE_modifiers_get_cage_index(), BKE_modifiers_uses_subsurf_facedots(), BKE_multires_create_deformed_base_mesh_vert_coords(), BKE_multires_create_mesh(), BKE_object_copy_modifier(), BKE_object_is_deform_modified(), BKE_object_support_modifier_type_check(), BKE_particlesystem_id_loop(), BKE_sculpt_get_first_deform_matrices(), blo_do_versions_pre250(), blender::deg::DepsgraphRelationBuilder::build_object_data_geometry(), crazyspace_modifier_supports_deform(), crazyspace_modifier_supports_deform_matrices(), curve_calc_modifiers_post(), curve_get_tessellate_point(), ED_object_modifier_add(), ED_object_modifier_move_down(), ED_object_modifier_move_up(), ED_spacetype_buttons(), editbmesh_calc_modifiers(), editbmesh_modifier_is_enabled(), hair_evaluate_modifiers(), mesh_calc_modifiers(), modifier_add_itemf(), modifier_apply_obdata(), modifier_apply_shape(), modifier_copy_to_selected_exec(), modifier_modify_mesh_and_geometry_set(), modifier_panel_header(), pointcloud_evaluate_modifiers(), blender::deg::ObjectRuntimeBackup::restore_modifier_runtime_data(), sculpt_modifiers_active(), tree_element_get_icon(), uiTemplateModifiers(), and volume_evaluate_modifiers().
| ModifierData* BKE_modifier_get_last_preview | ( | const struct Scene * | scene, |
| ModifierData * | md, | ||
| int | required_mode | ||
| ) |
Definition at line 658 of file blenkernel/intern/modifier.c.
References BKE_modifier_is_enabled(), BKE_modifier_is_preview(), eModifierMode_Editmode, eModifierMode_Realtime, ModifierData::next, NULL, and scene.
Referenced by mesh_calc_modifiers().
| ModifierData* BKE_modifier_get_original | ( | ModifierData * | md | ) |
Definition at line 1121 of file blenkernel/intern/modifier.c.
References NULL, and ModifierData::orig_modifier_data.
Referenced by correctivesmooth_modifier_do(), ED_mesh_deform_bind_callback(), and surfacedeformModifier_do().
| void BKE_modifier_init | ( | void | ) |
Definition at line 96 of file blenkernel/intern/modifier.c.
References VirtualModifierData::amd, BKE_modifier_free(), BKE_modifier_new(), VirtualModifierData::cmd, eModifierMode_Virtual, eModifierType_Armature, eModifierType_Curve, eModifierType_Lattice, eModifierType_ShapeKey, VirtualModifierData::lmd, ModifierData::mode, LatticeModifierData::modifier, CurveModifierData::modifier, ArmatureModifierData::modifier, ShapeKeyModifierData::modifier, modifier_type_init(), modifier_types, VirtualModifierData::smd, and virtualModifierCommonData.
Referenced by main(), and BlendfileLoadingBaseTest::SetUpTestCase().
| bool BKE_modifier_is_correctable_deformed | ( | ModifierData * | md | ) |
Definition at line 914 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), ModifierTypeInfo::deformMatricesEM, NULL, and ModifierData::type.
Referenced by BKE_crazyspace_get_first_deform_matrices_editbmesh(), and BKE_modifiers_is_correctable_deformed().
| bool BKE_modifier_is_enabled | ( | const struct Scene * | scene, |
| ModifierData * | md, | ||
| int | required_mode | ||
| ) |
Check whether is enabled.
| scene | Current scene, may be NULL, in which case isDisabled callback of the modifier is never called. |
Definition at line 556 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), eModifierMode_DisableTemporary, eModifierMode_Editmode, eModifierMode_Render, eModifierTypeFlag_SupportsEditmode, ModifierTypeInfo::flags, ModifierTypeInfo::isDisabled, ModifierData::mode, NULL, scene, and ModifierData::type.
Referenced by BKE_crazyspace_build_sculpt(), BKE_curve_calc_modifiers_pre(), BKE_modifier_calc_data_masks(), BKE_modifier_get_last_preview(), BKE_modifiers_is_correctable_deformed(), BKE_modifiers_uses_subsurf_facedots(), BKE_multires_create_deformed_base_mesh_vert_coords(), BKE_object_is_deform_modified(), BKE_object_is_modified(), BKE_sculpt_get_first_deform_matrices(), BKE_sculpt_multires_active(), correctivesmooth_bind_exec(), curve_calc_modifiers_post(), curve_get_tessellate_point(), editbmesh_modifier_is_enabled(), eevee_volume_object_mesh_init(), find_multires_modifier_before(), get_multires_modifier(), blender::io::alembic::SubdivModifierDisabler::get_subdiv_modifier(), hair_evaluate_modifiers(), isDisabled(), mesh_calc_modifiers(), multiresbake_check(), OVERLAY_extra_cache_populate(), pointcloud_evaluate_modifiers(), sculpt_modifiers_active(), volume_evaluate_modifiers(), and workbench_cache_populate().
| bool BKE_modifier_is_non_geometrical | ( | ModifierData * | md | ) |
Definition at line 425 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), eModifierTypeType_NonGeometrical, ModifierTypeInfo::type, and ModifierData::type.
Referenced by modifier_ops_extra_draw().
| bool BKE_modifier_is_nonlocal_in_liboverride | ( | const Object * | ob, |
| const ModifierData * | md | ||
| ) |
Check whether given modifier is not local (i.e. from linked data) when the object is a library override.
| md | May be NULL, in which case we consider it as a non-local modifier case. |
Definition at line 584 of file blenkernel/intern/modifier.c.
References eModifierFlag_OverrideLibrary_Local, ModifierData::flag, ID_IS_OVERRIDE_LIBRARY, and NULL.
| bool BKE_modifier_is_preview | ( | ModifierData * | md | ) |
Definition at line 267 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), eModifierMode_Realtime, eModifierTypeFlag_UsesPreview, eModifierTypeType_Constructive, ModifierTypeInfo::flags, ModifierData::mode, ModifierTypeInfo::type, and ModifierData::type.
Referenced by BKE_modifier_get_last_preview().
| bool BKE_modifier_is_same_topology | ( | ModifierData * | md | ) |
Definition at line 419 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), ELEM, eModifierTypeType_NonGeometrical, eModifierTypeType_OnlyDeform, ModifierTypeInfo::type, and ModifierData::type.
Referenced by ED_object_modifier_apply(), modifier_apply_poll_ex(), modifier_apply_shape(), and modifier_ops_extra_draw().
| struct Mesh* BKE_modifier_modify_mesh | ( | ModifierData * | md, |
| const ModifierEvalContext * | ctx, | ||
| struct Mesh * | me | ||
| ) |
Definition at line 1037 of file blenkernel/intern/modifier.c.
References BKE_mesh_wrapper_ensure_mdata(), BKE_modifier_get_info(), BLI_assert, CD_NORMAL, CustomData_has_layer(), ModifierTypeInfo::dependsOnNormals, eModifierTypeFlag_AcceptsBMesh, ModifierTypeInfo::flags, ME_WRAPPER_TYPE_BMESH, ModifierTypeInfo::modifyMesh, modwrap_dependsOnNormals(), Mesh::runtime, ModifierData::type, and Mesh_Runtime::wrapper_type.
| ModifierData* BKE_modifier_new | ( | int | type | ) |
Definition at line 154 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BKE_modifier_session_uuid_generate(), BLI_strncpy(), DATA_, eModifierFlag_OverrideLibrary_Local, eModifierMode_Editmode, eModifierMode_Realtime, eModifierMode_Render, eModifierTypeFlag_EnableInEditmode, ModifierData::flag, ModifierTypeInfo::flags, ModifierTypeInfo::initData, MEM_callocN, ModifierData::mode, ModifierTypeInfo::name, ModifierData::name, ModifierTypeInfo::structName, ModifierTypeInfo::structSize, type, ModifierData::type, and ModifierData::ui_expand_flag.
Referenced by add_hook_object(), blender::io::alembic::AbcObjectReader::addCacheModifier(), BKE_modifier_init(), BKE_object_copy_modifier(), BKE_object_copy_particlesystem(), BKE_object_modifier_stack_copy(), blo_do_versions_250(), blo_do_versions_pre250(), copy_particle_systems_to_object(), do_hair_dynamics(), ED_object_modifier_add(), ED_object_modifier_copy(), modifier_replace_with_fluid(), object_add_or_copy_particle_system(), object_blend_read_data(), and skin_armature_create_exec().
| void BKE_modifier_panel_expand | ( | ModifierData * | md | ) |
Definition at line 147 of file blenkernel/intern/modifier.c.
References ModifierData::ui_expand_flag, and UI_PANEL_DATA_EXPAND_ROOT.
Referenced by outliner_set_properties_tab().
| void BKE_modifier_path_init | ( | char * | path, |
| int | path_maxlen, | ||
| const char * | name | ||
| ) |
Definition at line 1004 of file blenkernel/intern/modifier.c.
References BKE_tempdir_session, BLI_join_dirfile(), and G.
Referenced by BKE_fluid_modifier_create_type_data(), dynamicPaint_createNewSurface(), fluid_validatepaths(), and initData().
Definition at line 981 of file blenkernel/intern/modifier.c.
References BKE_tempdir_session, G, Object::id, ID_BLEND_PATH, and ID_IS_LINKED.
Referenced by fluid_validatepaths(), and ocean_bake_exec().
| const char* BKE_modifier_path_relbase_from_global | ( | Object * | ob | ) |
Definition at line 992 of file blenkernel/intern/modifier.c.
References BKE_tempdir_session, G, Object::id, ID_BLEND_PATH_FROM_GLOBAL, and ID_IS_LINKED.
Referenced by fluid_bake_startjob().
| void BKE_modifier_remove_from_list | ( | Object * | ob, |
| ModifierData * | md | ||
| ) |
Use instead of BLI_remlink when the object's active modifier should change.
Definition at line 219 of file blenkernel/intern/modifier.c.
References BKE_object_modifier_set_active(), BLI_assert, BLI_findindex(), BLI_remlink(), eModifierFlag_Active, ModifierData::flag, Object::modifiers, ModifierData::next, NULL, and ModifierData::prev.
Referenced by BKE_particle_system_blend_read_lib(), ED_object_modifier_apply(), object_hook_remove_exec(), object_modifier_remove(), object_remove_parent_deform_modifiers(), and object_remove_particle_system().
| void BKE_modifier_session_uuid_generate | ( | ModifierData * | md | ) |
Definition at line 236 of file blenkernel/intern/modifier.c.
References BLI_session_uuid_generate(), and ModifierData::session_uuid.
Referenced by BKE_modifier_blend_read_data(), BKE_modifier_copydata_ex(), and BKE_modifier_new().
| void BKE_modifier_set_error | ( | const Object * | ob, |
| ModifierData * | md, | ||
| const char * | _format, | ||
| ... | |||
| ) |
Definition at line 431 of file blenkernel/intern/modifier.c.
References BLI_assert, BLI_findindex(), BLI_strdup(), buffer, CLOG_ERROR, DEG_get_original_id(), eModifierMode_Virtual, ModifierData::error, Object::id, LOG, MEM_freeN, ModifierData::mode, Object::modifiers, ModifierData::name, ID::name, ModifierData::orig_modifier_data, and TIP_.
| bool BKE_modifier_supports_cage | ( | struct Scene * | scene, |
| ModifierData * | md | ||
| ) |
Definition at line 402 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BKE_modifier_supports_mapping(), eModifierTypeFlag_SupportsEditmode, ModifierTypeInfo::flags, ModifierTypeInfo::isDisabled, scene, and ModifierData::type.
Referenced by modifier_panel_header().
| bool BKE_modifier_supports_mapping | ( | ModifierData * | md | ) |
Definition at line 259 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), eModifierTypeFlag_SupportsMapping, eModifierTypeType_OnlyDeform, ModifierTypeInfo::flags, ModifierTypeInfo::type, and ModifierData::type.
Referenced by BKE_modifier_couldbe_cage(), BKE_modifier_supports_cage(), BKE_modifiers_get_cage_index(), and mesh_calc_modifiers().
| void BKE_modifier_type_panel_id | ( | ModifierType | type, |
| char * | r_idname | ||
| ) |
Get the idname of the modifier type's panel, which was defined in the panelRegister callback.
Definition at line 139 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), MODIFIER_TYPE_PANEL_PREFIX, ModifierTypeInfo::name, and type.
Referenced by modifier_panel_id(), and modifier_panel_register().
| bool BKE_modifier_unique_name | ( | ListBase * | modifiers, |
| ModifierData * | md | ||
| ) |
Definition at line 241 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BLI_uniquename(), DATA_, ModifierTypeInfo::name, ModifierData::name, and ModifierData::type.
Referenced by add_hook_object(), BKE_object_copy_modifier(), blo_do_versions_270(), blo_do_versions_pre250(), copy_particle_systems_to_object(), ED_object_modifier_add(), ED_object_modifier_copy(), object_add_or_copy_particle_system(), and object_blend_read_data().
| void BKE_modifiers_clear_errors | ( | Object * | ob | ) |
Definition at line 299 of file blenkernel/intern/modifier.c.
References LISTBASE_FOREACH, MEM_freeN, Object::modifiers, and NULL.
Referenced by BKE_crazyspace_get_first_deform_matrices_editbmesh(), BKE_curve_calc_modifiers_pre(), editbmesh_calc_modifiers(), and mesh_calc_modifiers().
| ModifierData* BKE_modifiers_findby_name | ( | const Object * | ob, |
| const char * | name | ||
| ) |
Definition at line 294 of file blenkernel/intern/modifier.c.
References BLI_findstring(), and Object::modifiers.
Referenced by BKE_modifier_get_evaluated().
| ModifierData* BKE_modifiers_findby_type | ( | const Object * | ob, |
| ModifierType | type | ||
| ) |
Definition at line 284 of file blenkernel/intern/modifier.c.
References LISTBASE_FOREACH, Object::modifiers, NULL, and type.
Referenced by BKE_modifiers_is_cloth_enabled(), BKE_modifiers_is_modifier_enabled(), BKE_modifiers_is_particle_enabled(), and BKE_modifiers_is_softbody_enabled().
| void BKE_modifiers_foreach_ID_link | ( | Object * | ob, |
| IDWalkFunc | walk, | ||
| void * | userData | ||
| ) |
Definition at line 309 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), ModifierTypeInfo::foreachIDLink, LISTBASE_FOREACH, and Object::modifiers.
Referenced by animdata_filter_ds_modifiers(), BKE_modifier_blend_read_lib(), blender::deg::DepsgraphNodeBuilder::build_object(), blender::deg::DepsgraphRelationBuilder::build_object(), object_blend_read_expand(), and object_foreach_id().
| void BKE_modifiers_foreach_tex_link | ( | Object * | ob, |
| TexWalkFunc | walk, | ||
| void * | userData | ||
| ) |
Definition at line 320 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), ModifierTypeInfo::foreachTexLink, LISTBASE_FOREACH, and Object::modifiers.
Referenced by buttons_texture_users_from_context().
| int BKE_modifiers_get_cage_index | ( | const Scene * | scene, |
| Object * | ob, | ||
| int * | r_lastPossibleCageIndex, | ||
| bool | is_virtual | ||
| ) |
Definition at line 467 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BKE_modifier_supports_mapping(), BKE_modifiers_get_virtual_modifierlist(), eModifierMode_DisableTemporary, eModifierMode_Editmode, eModifierMode_OnCage, eModifierMode_Realtime, eModifierTypeFlag_SupportsEditmode, ListBase::first, ModifierTypeInfo::flags, ModifierTypeInfo::isDisabled, ModifierData::mode, Object::modifiers, ModifierData::next, scene, and ModifierData::type.
Referenced by BKE_modifiers_uses_subsurf_facedots().
| ModifierData* BKE_modifiers_get_virtual_modifierlist | ( | const Object * | ob, |
| VirtualModifierData * | virtualModifierData | ||
| ) |
Definition at line 679 of file blenkernel/intern/modifier.c.
References VirtualModifierData::amd, BKE_key_from_object(), VirtualModifierData::cmd, Object::data, CurveModifierData::defaxis, ArmatureModifierData::deformflag, ELEM, eModifierMode_Editmode, eModifierMode_OnCage, ListBase::first, VirtualModifierData::lmd, ModifierData::mode, LatticeModifierData::modifier, CurveModifierData::modifier, ArmatureModifierData::modifier, ShapeKeyModifierData::modifier, Object::modifiers, ModifierData::next, OB_ARMATURE, OB_CURVE, OB_LATTICE, OB_MESH, OB_SHAPE_EDIT_MODE, LatticeModifierData::object, CurveModifierData::object, ArmatureModifierData::object, Object::parent, PARSKEL, Object::partype, Object::shapeflag, VirtualModifierData::smd, Object::trackflag, Object::type, and virtualModifierCommonData.
Referenced by BKE_modifiers_get_cage_index(), BKE_modifiers_is_correctable_deformed(), BKE_modifiers_is_deformed_by_armature(), BKE_modifiers_is_deformed_by_curve(), BKE_modifiers_is_deformed_by_lattice(), BKE_modifiers_is_deformed_by_meshdeform(), BKE_modifiers_uses_armature(), BKE_modifiers_uses_multires(), and BKE_modifiers_uses_subsurf_facedots().
| bool BKE_modifiers_is_cloth_enabled | ( | Object * | ob | ) |
Definition at line 529 of file blenkernel/intern/modifier.c.
References BKE_modifiers_findby_type(), eModifierMode_Realtime, eModifierMode_Render, eModifierType_Cloth, and ModifierData::mode.
Definition at line 920 of file blenkernel/intern/modifier.c.
References BKE_modifier_is_correctable_deformed(), BKE_modifier_is_enabled(), BKE_modifiers_get_virtual_modifierlist(), eModifierMode_Editmode, eModifierMode_Realtime, Object::mode, ModifierData::next, OB_MODE_EDIT, and scene.
Referenced by transform_convert_mesh_crazyspace_detect().
Definition at line 725 of file blenkernel/intern/modifier.c.
References Object::base_flag, BASE_SELECTED, BKE_gpencil_modifiers_get_virtual_modifierlist(), BKE_modifiers_get_virtual_modifierlist(), eGpencilModifierType_Armature, eModifierType_Armature, GpencilModifierData::next, ModifierData::next, NULL, OB_GPENCIL, ArmatureGpencilModifierData::object, ArmatureModifierData::object, GpencilModifierData::type, ModifierData::type, and Object::type.
Referenced by BKE_object_pose_armature_get(), brush_draw_apply(), DRW_draw_select_loop(), ED_object_parent_set(), ED_object_vgroup_selection_itemf_helper(), ED_wpaint_ensure_data(), loopcut_init(), POSE_is_driven_by_active_armature(), transform_object_deform_pose_armature_get(), vgroup_sort_bone_hierarchy(), weight_from_bones_exec(), and weight_from_bones_poll().
Definition at line 822 of file blenkernel/intern/modifier.c.
References Object::base_flag, BASE_SELECTED, BKE_modifiers_get_virtual_modifierlist(), eModifierType_Curve, ModifierData::next, NULL, CurveModifierData::object, and ModifierData::type.
Referenced by ED_object_parent_set().
Definition at line 796 of file blenkernel/intern/modifier.c.
References Object::base_flag, BASE_SELECTED, BKE_modifiers_get_virtual_modifierlist(), eModifierType_Lattice, ModifierData::next, NULL, LatticeModifierData::object, and ModifierData::type.
Referenced by ED_object_parent_set(), and loopcut_init().
Definition at line 770 of file blenkernel/intern/modifier.c.
References Object::base_flag, BASE_SELECTED, BKE_modifiers_get_virtual_modifierlist(), eModifierType_MeshDeform, ModifierData::next, NULL, MeshDeformModifierData::object, and ModifierData::type.
Referenced by POSE_is_driven_by_active_armature().
| bool BKE_modifiers_is_modifier_enabled | ( | Object * | ob, |
| int | modifierType | ||
| ) |
Definition at line 536 of file blenkernel/intern/modifier.c.
References BKE_modifiers_findby_type(), eModifierMode_Realtime, eModifierMode_Render, and ModifierData::mode.
| bool BKE_modifiers_is_particle_enabled | ( | Object * | ob | ) |
Definition at line 543 of file blenkernel/intern/modifier.c.
References BKE_modifiers_findby_type(), eModifierMode_Realtime, eModifierMode_Render, eModifierType_ParticleSystem, and ModifierData::mode.
| bool BKE_modifiers_is_softbody_enabled | ( | Object * | ob | ) |
Definition at line 522 of file blenkernel/intern/modifier.c.
References BKE_modifiers_findby_type(), eModifierMode_Realtime, eModifierMode_Render, eModifierType_Softbody, and ModifierData::mode.
| void BKE_modifiers_test_object | ( | struct Object * | ob | ) |
Ensure modifier correctness when changing ob->data.
Definition at line 950 of file blenkernel/intern/modifier.c.
References eModifierType_Multires, ListBase::first, Object::modifiers, multiresModifier_set_levels_from_disps(), ModifierData::next, OB_MESH, ModifierData::type, and Object::type.
Referenced by BKE_mesh_assign_object(), and libblock_remap_data_postprocess_obdata_relink().
Definition at line 862 of file blenkernel/intern/modifier.c.
References BKE_modifiers_get_virtual_modifierlist(), Object::data, eModifierType_Armature, ModifierData::next, ArmatureModifierData::object, and ModifierData::type.
Referenced by ED_armature_bone_rename().
| bool BKE_modifiers_uses_multires | ( | Object * | ob | ) |
Definition at line 845 of file blenkernel/intern/modifier.c.
References BKE_modifiers_get_virtual_modifierlist(), eModifierType_Multires, ModifierData::next, NULL, MultiresModifierData::totlvl, and ModifierData::type.
Referenced by object_remesh_poll().
Definition at line 879 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), BKE_modifier_is_enabled(), BKE_modifiers_get_cage_index(), BKE_modifiers_get_virtual_modifierlist(), eModifierMode_Editmode, eModifierMode_Realtime, eModifierType_Subsurf, eModifierTypeType_OnlyDeform, ModifierData::next, NULL, ModifierData::prev, scene, ModifierTypeInfo::type, and ModifierData::type.
Referenced by DRW_mesh_batch_cache_create_requested(), and mesh_foreachScreenFace().
|
static |
Definition at line 356 of file blenkernel/intern/modifier.c.
References id_us_plus(), IDWALK_CB_USER, and NULL.
Referenced by BKE_modifier_copydata_ex().
|
static |
Definition at line 1275 of file blenkernel/intern/modifier.c.
References BKE_fluid_modifier_create_type_data(), BKE_fluid_modifier_free(), type, and FluidModifierData::type.
Referenced by modifier_replace_with_fluid().
|
static |
Definition at line 180 of file blenkernel/intern/modifier.c.
References id_us_min(), IDWALK_CB_USER, and NULL.
Referenced by BKE_modifier_free_ex().
|
static |
Definition at line 1287 of file blenkernel/intern/modifier.c.
References BKE_fluid_domain_type_set(), BKE_fluid_effector_type_set(), BKE_fluid_flow_behavior_set(), BKE_fluid_flow_type_set(), BKE_modifier_new(), BLO_read_get_new_data_address(), FluidModifierData::domain, FluidModifierData::effector, eModifierType_Fluid, eModifierType_Fluidsim, ListBase::first, FluidModifierData::flow, FLUID_DOMAIN_TYPE_GAS, FLUID_DOMAIN_TYPE_LIQUID, FLUID_EFFECTOR_TYPE_COLLISION, FLUID_EFFECTOR_TYPE_GUIDE, FLUID_FLOW_BEHAVIOR_INFLOW, FLUID_FLOW_BEHAVIOR_OUTFLOW, FLUID_FLOW_TYPE_LIQUID, FLUID_FLOW_TYPE_SMOKE, FluidsimModifierData::fss, ListBase::last, MEM_freeN, MOD_FLUID_TYPE_DOMAIN, MOD_FLUID_TYPE_EFFEC, MOD_FLUID_TYPE_FLOW, modifier_ensure_type(), ModifierData::next, NULL, OB_FLUIDSIM_CONTROL, OB_FLUIDSIM_DOMAIN, OB_FLUIDSIM_ENABLE, OB_FLUIDSIM_FLUID, OB_FLUIDSIM_INFLOW, OB_FLUIDSIM_OBSTACLE, OB_FLUIDSIM_OUTFLOW, OB_FLUIDSIM_PARTICLE, ModifierData::prev, FluidFlowSettings::surface_distance, ModifierData::type, FluidModifierData::type, SmokeModifierData::type, and FluidsimSettings::type.
Referenced by BKE_modifier_blend_read_data().
|
static |
Call when ModifierTypeInfo.dependsOnNormals callback requests normals.
Definition at line 1014 of file blenkernel/intern/modifier.c.
References BKE_editmesh_cache_ensure_vert_normals(), BKE_mesh_calc_normals(), BMEditMesh::bm, BM_mesh_normals_update(), Mesh_Runtime::edit_data, Mesh::edit_mesh, ME_WRAPPER_TYPE_BMESH, ME_WRAPPER_TYPE_MDATA, Mesh::runtime, EditMeshData::vertexCos, and Mesh_Runtime::wrapper_type.
Referenced by BKE_modifier_deform_verts(), and BKE_modifier_modify_mesh().
|
static |
Definition at line 92 of file blenkernel/intern/modifier.c.
Referenced by BKE_modifier_set_error().
|
static |
Definition at line 93 of file blenkernel/intern/modifier.c.
Referenced by BKE_modifier_get_info(), and BKE_modifier_init().
|
static |
Definition at line 94 of file blenkernel/intern/modifier.c.
Referenced by BKE_gpencil_modifier_init(), BKE_gpencil_modifiers_get_virtual_modifierlist(), BKE_modifier_init(), and BKE_modifiers_get_virtual_modifierlist().