Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | ModifierUpdateDepsgraphContext |
struct | ModifierEvalContext |
struct | ModifierTypeInfo |
struct | CDMaskLink |
struct | VirtualModifierData |
Macros | |
#define | MODIFIER_TYPE_PANEL_PREFIX "MOD_PT_" |
Typedefs | |
typedef void(* | IDWalkFunc) (void *userData, struct Object *ob, struct ID **idpoin, int cb_flag) |
typedef void(* | TexWalkFunc) (void *userData, struct Object *ob, struct ModifierData *md, const char *propname) |
typedef enum ModifierApplyFlag | ModifierApplyFlag |
typedef struct ModifierUpdateDepsgraphContext | ModifierUpdateDepsgraphContext |
typedef struct ModifierEvalContext | ModifierEvalContext |
typedef struct ModifierTypeInfo | ModifierTypeInfo |
typedef struct CDMaskLink | CDMaskLink |
typedef struct VirtualModifierData | VirtualModifierData |
Enumerations | |
enum | ModifierTypeType { eModifierTypeType_None , eModifierTypeType_OnlyDeform , eModifierTypeType_Constructive , eModifierTypeType_Nonconstructive , eModifierTypeType_DeformOrConstruct , eModifierTypeType_NonGeometrical } |
enum | ModifierTypeFlag { eModifierTypeFlag_AcceptsMesh = (1 << 0) , eModifierTypeFlag_AcceptsCVs = (1 << 1) , eModifierTypeFlag_SupportsMapping = (1 << 2) , eModifierTypeFlag_SupportsEditmode = (1 << 3) , eModifierTypeFlag_EnableInEditmode = (1 << 4) , eModifierTypeFlag_RequiresOriginalData = (1 << 5) , eModifierTypeFlag_UsesPointCache = (1 << 6) , eModifierTypeFlag_Single = (1 << 7) , eModifierTypeFlag_NoUserAdd = (1 << 8) , eModifierTypeFlag_UsesPreview = (1 << 9) , eModifierTypeFlag_AcceptsVertexCosOnly = (1 << 10) , eModifierTypeFlag_AcceptsBMesh = (1 << 11) } |
enum | ModifierApplyFlag { MOD_APPLY_RENDER = 1 << 0 , MOD_APPLY_USECACHE = 1 << 1 , MOD_APPLY_ORCO = 1 << 2 , MOD_APPLY_IGNORE_SIMPLIFY = 1 << 3 , MOD_APPLY_TO_BASE_MESH = 1 << 4 } |
#define MODIFIER_TYPE_PANEL_PREFIX "MOD_PT_" |
Definition at line 381 of file BKE_modifier.h.
typedef struct CDMaskLink CDMaskLink |
Definition at line 107 of file BKE_modifier.h.
typedef enum ModifierApplyFlag ModifierApplyFlag |
typedef struct ModifierEvalContext ModifierEvalContext |
typedef struct ModifierTypeInfo ModifierTypeInfo |
typedef struct ModifierUpdateDepsgraphContext ModifierUpdateDepsgraphContext |
typedef void(* TexWalkFunc) (void *userData, struct Object *ob, struct ModifierData *md, const char *propname) |
Definition at line 108 of file BKE_modifier.h.
typedef struct VirtualModifierData VirtualModifierData |
enum ModifierApplyFlag |
Enumerator | |
---|---|
MOD_APPLY_RENDER | Render time. |
MOD_APPLY_USECACHE | Result of evaluation will be cached, so modifier might want to cache data for quick updates (used by subdivision-surface) |
MOD_APPLY_ORCO | Modifier evaluated for undeformed texture coordinates |
MOD_APPLY_IGNORE_SIMPLIFY | Ignore scene simplification flag and use subdivisions level set in multires modifier. |
MOD_APPLY_TO_BASE_MESH | The effect of this modifier will be applied to the base mesh The modifier itself will be removed from the modifier stack. This flag can be checked to ignore rendering display data to the mesh. See |
Definition at line 113 of file BKE_modifier.h.
enum ModifierTypeFlag |
Enumerator | |
---|---|
eModifierTypeFlag_AcceptsMesh | |
eModifierTypeFlag_AcceptsCVs | |
eModifierTypeFlag_SupportsMapping | |
eModifierTypeFlag_SupportsEditmode | |
eModifierTypeFlag_EnableInEditmode | For modifiers that support editmode this determines if the modifier should be enabled by default in editmode. This should only be used by modifiers that are relatively speedy and also generally used in editmode, otherwise let the user enable it by hand. |
eModifierTypeFlag_RequiresOriginalData | For modifiers that require original data and so cannot be placed after any non-deformative modifier. |
eModifierTypeFlag_UsesPointCache | For modifiers that support point-cache, so we can check to see if it has files we need to deal with. |
eModifierTypeFlag_Single | For physics modifiers, max one per type |
eModifierTypeFlag_NoUserAdd | Some modifier can't be added manually by user |
eModifierTypeFlag_UsesPreview | For modifiers that use CD_PREVIEW_MCOL for preview. |
eModifierTypeFlag_AcceptsVertexCosOnly | |
eModifierTypeFlag_AcceptsBMesh | Accepts BMesh input (without conversion). |
Definition at line 65 of file BKE_modifier.h.
enum ModifierTypeType |
Enumerator | |
---|---|
eModifierTypeType_None | |
eModifierTypeType_OnlyDeform | Modifier only does deformation, implies that modifier type should have a valid deformVerts function. OnlyDeform style modifiers implicitly accept either mesh or CV input but should still declare flags appropriately. |
eModifierTypeType_Constructive | Modifier adds geometry. |
eModifierTypeType_Nonconstructive | |
eModifierTypeType_DeformOrConstruct | Both deformVerts & applyModifier are valid calls used for particles modifier that doesn't actually modify the object unless it's a mesh and can be exploded -> curve can also emit particles |
eModifierTypeType_NonGeometrical | Like eModifierTypeType_Nonconstructive, but does not affect the geometry of the object, rather some of its CustomData layers. E.g. UVProject and WeightVG modifiers. |
Definition at line 34 of file BKE_modifier.h.
void BKE_modifier_blend_read_data | ( | struct BlendDataReader * | reader, |
struct ListBase * | lb, | ||
struct Object * | ob | ||
) |
Definition at line 1317 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, 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 | ( | struct BlendLibReader * | reader, |
struct Object * | ob | ||
) |
Definition at line 1506 of file blenkernel/intern/modifier.c.
References BKE_modifiers_foreach_ID_link(), BKE_object_modifiers_lib_link_common(), eModifierFlag_OverrideLibrary_Local, ID_IS_LINKED, LISTBASE_FOREACH, mod(), and Object::modifiers.
Referenced by object_blend_read_lib().
void BKE_modifier_blend_write | ( | struct BlendWriter * | writer, |
const struct ID * | id_owner, | ||
struct ListBase * | modbase | ||
) |
Referenced by object_blend_write().
struct CDMaskLink* BKE_modifier_calc_data_masks | ( | const struct Scene * | scene, |
struct Object * | ob, | ||
struct ModifierData * | md, | ||
struct CustomData_MeshMasks * | final_datamask, | ||
int | required_mode, | ||
ModifierData * | previewmd, | ||
const struct CustomData_MeshMasks * | previewmask | ||
) |
Calculates and returns a linked list of CustomData_MeshMasks and modified final datamask, indicating the data required by each modifier in the stack pointed to by md for correct evaluation, assuming the data indicated by final_datamask is required at the end of the stack.
Referenced by BKE_crazyspace_get_first_deform_matrices_editbmesh(), editbmesh_calc_modifiers(), and mesh_calc_modifiers().
Referenced by BKE_object_check_uuids_unique_and_report().
struct ModifierData* BKE_modifier_copy_ex | ( | const struct ModifierData * | md, |
int | flag | ||
) |
Referenced by BKE_object_modifier_stack_copy().
void BKE_modifier_copydata | ( | const struct ModifierData * | md, |
struct ModifierData * | target | ||
) |
Referenced by BKE_object_copy_modifier(), and ED_object_modifier_copy().
void BKE_modifier_copydata_ex | ( | const struct ModifierData * | md, |
struct ModifierData * | target, | ||
int | flag | ||
) |
Referenced by BKE_object_copy_particlesystem().
void BKE_modifier_copydata_generic | ( | const struct ModifierData * | md, |
struct ModifierData * | md_dst, | ||
int | flag | ||
) |
Callback's can use this to avoid copying every member.
Referenced by copyData().
bool BKE_modifier_couldbe_cage | ( | struct Scene * | scene, |
struct ModifierData * | md | ||
) |
Definition at line 411 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 struct ModifierEvalContext * | ctx, | ||
struct Mesh * | me, | ||
float(*) | vertexCos[3], | ||
int | numVerts | ||
) |
void BKE_modifier_deform_vertsEM | ( | ModifierData * | md, |
const struct ModifierEvalContext * | ctx, | ||
struct BMEditMesh * | em, | ||
struct Mesh * | me, | ||
float(*) | vertexCos[3], | ||
int | numVerts | ||
) |
Referenced by editbmesh_calc_modifiers().
bool BKE_modifier_depends_ontime | ( | struct Scene * | scene, |
struct ModifierData * | md | ||
) |
Definition at line 236 of file blenkernel/intern/modifier.c.
References BKE_modifier_get_info(), ModifierTypeInfo::dependsOnTime, scene, and ModifierData::type.
Referenced by blender::deg::DepsgraphRelationBuilder::build_object_data_geometry().
void BKE_modifier_free | ( | struct ModifierData * | md | ) |
Definition at line 198 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 | ( | struct ModifierData * | md, |
int | flag | ||
) |
Definition at line 178 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 | ( | struct ModifierData * | md | ) |
Definition at line 908 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 | ( | struct Depsgraph * | depsgraph, |
struct Object * | object, | ||
struct ModifierData * | md | ||
) |
Definition at line 1063 of file blenkernel/intern/modifier.c.
References BKE_modifiers_findby_session_uuid(), DEG_get_evaluated_object(), depsgraph, and ModifierData::session_uuid.
Referenced by correctivesmooth_bind_exec(), laplaciandeform_bind_exec(), meshdeform_bind_exec(), object_force_modifier_bind_simple_options(), remove_tagged_keys(), and surfacedeform_bind_exec().
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.
Definition at line 1038 of file blenkernel/intern/modifier.c.
References BKE_editmesh_from_object(), BKE_object_get_editmesh_eval_final(), BKE_object_get_evaluated_mesh(), Object::mode, NULL, OB_MESH, OB_MODE_EDIT, and Object::type.
Referenced by blender::bke::add_final_mesh_as_geometry_component(), arrayModifier_doArray(), bakeModifier(), BKE_gpencil_cache_data_init(), BKE_object_data_transfer_ex(), mesh_to_volume(), meshdeformModifier_do(), modifyMesh(), blender::nodes::node_geo_deform_curves_on_surface_cc::node_geo_exec(), shrinkwrap_calc_normal_projection(), shrinkwrapModifier_deform(), blender::ed::spreadsheet::spreadsheet_get_display_geometry_set(), and surfacedeformModifier_do().
const ModifierTypeInfo* BKE_modifier_get_info | ( | ModifierType | type | ) |
Definition at line 109 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_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_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(), curves_evaluate_modifiers(), ED_object_modifier_add(), ED_object_modifier_move_down(), ED_object_modifier_move_up(), ED_spacetype_buttons(), editbmesh_calc_modifiers(), editbmesh_modifier_is_enabled(), mesh_calc_modifiers(), modifier_add_itemf(), modifier_allocate_and_init(), modifier_apply_exec_ex(), 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().
struct ModifierData* BKE_modifier_get_last_preview | ( | const struct Scene * | scene, |
struct ModifierData * | md, | ||
int | required_mode | ||
) |
Definition at line 672 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().
struct ModifierData* BKE_modifier_get_original | ( | const struct Object * | object, |
struct ModifierData * | md | ||
) |
For a given modifier data, get corresponding original one. If the modifier data is already original, return it as-is.
Referenced by compute_geometry(), correctivesmooth_modifier_do(), ED_mesh_deform_bind_callback(), and surfacedeformModifier_do().
Definition at line 79 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 | ( | struct ModifierData * | md | ) |
Definition at line 882 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, |
struct 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 576 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_mesh_create_derived_for_modifier(), BKE_modifier_calc_data_masks(), BKE_modifier_get_last_preview(), BKE_modifiers_is_correctable_deformed(), 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(), curves_evaluate_modifiers(), do_curve_implicit_mesh_conversion(), drw_volume_object_mesh_init(), editbmesh_modifier_is_enabled(), find_multires_modifier_before(), get_multires_modifier(), blender::io::alembic::SubdivModifierDisabler::get_subdiv_modifier(), isDisabled(), mesh_calc_modifiers(), modifier_get_last_enabled_for_mode(), 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 426 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 struct Object * | ob, |
const struct 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. |
Referenced by edit_modifier_poll_generic().
void void bool BKE_modifier_is_preview | ( | struct ModifierData * | md | ) |
Definition at line 251 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 420 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(), modifier_apply_shape(), and modifier_ops_extra_draw().
void BKE_modifier_mdef_compact_influences | ( | struct ModifierData * | md | ) |
Here for do_versions.
Definition at line 483 of file MOD_meshdeform.c.
References Freestyle::a, usdtokens::b(), MeshDeformModifierData::bindinfluences, MeshDeformModifierData::bindoffsets, MeshDeformModifierData::bindweights, MeshDeformModifierData::cage_verts_num, MeshDeformModifierData::influences_num, MEM_calloc_arrayN, MEM_freeN, MESHDEFORM_MIN_INFLUENCE, NULL, MDefInfluence::vertex, MeshDeformModifierData::verts_num, and MDefInfluence::weight.
Referenced by do_version_mdef_250(), and ED_mesh_deform_bind_callback().
struct Mesh* BKE_modifier_modify_mesh | ( | ModifierData * | md, |
const struct ModifierEvalContext * | ctx, | ||
struct Mesh * | me | ||
) |
Referenced by editbmesh_calc_modifiers(), mesh_calc_modifiers(), and modifier_modify_mesh_and_geometry_set().
struct ModifierData* BKE_modifier_new | ( | int | type | ) |
Definition at line 158 of file blenkernel/intern/modifier.c.
References BKE_modifier_session_uuid_generate(), modifier_allocate_and_init(), and type.
Referenced by blender::io::usd::USDGeomReader::add_cache_modifier(), add_hook_object(), blender::io::usd::USDGeomReader::add_subdiv_modifier(), blender::io::alembic::AbcObjectReader::addCacheModifier(), BKE_modifier_init(), BKE_object_copy_modifier(), BKE_object_copy_particlesystem(), blo_do_versions_250(), blo_do_versions_pre250(), copy_particle_systems_to_object(), do_hair_dynamics(), do_versions_after_linking_300(), 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 | ( | struct ModifierData * | md | ) |
Definition at line 127 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 | ||
) |
Initializes path
with either the blend file or temporary directory.
Definition at line 956 of file blenkernel/intern/modifier.c.
References BKE_main_blendfile_path_from_global(), BKE_tempdir_session, and BLI_join_dirfile().
Referenced by BKE_fluid_modifier_create_type_data(), dynamicPaint_createNewSurface(), fluid_validatepaths(), and initData().
Definition at line 937 of file blenkernel/intern/modifier.c.
References BKE_tempdir_session, Main::filepath, Object::id, ID_BLEND_PATH, and ID_IS_LINKED.
Referenced by BKE_modifier_path_relbase_from_global(), fluid_validatepaths(), and ocean_bake_exec().
const char* BKE_modifier_path_relbase_from_global | ( | struct Object * | ob | ) |
Definition at line 951 of file blenkernel/intern/modifier.c.
References BKE_modifier_path_relbase(), and G_MAIN.
Referenced by fluid_bake_startjob().
void BKE_modifier_remove_from_list | ( | struct Object * | ob, |
struct ModifierData * | md | ||
) |
Use instead of BLI_remlink
when the object's active modifier should change.
Definition at line 203 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 | ( | struct ModifierData * | md | ) |
Definition at line 220 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 struct Object * | ob, |
struct ModifierData * | md, | ||
const char * | format, | ||
... | |||
) |
Referenced by arrayModifier_doArray(), BMD_error_messages(), check_property_socket_sync(), cloth_from_mesh(), cloth_from_object(), correctivesmooth_modifier_do(), deformMatrices(), displace_volume(), do_init_cloth(), editbmesh_modifier_is_enabled(), is_valid_target_with_error(), LaplacianDeformModifier_do(), mesh_calc_modifiers(), mesh_to_volume(), meshcache_do(), meshdeform_matrix_solve(), meshdeformModifier_do(), modifyGeometry(), modifyMesh(), normalEditModifier_do(), ptcache_cloth_error(), surfacedeformBind(), and surfacedeformModifier_do().
void void BKE_modifier_set_warning | ( | const struct Object * | ob, |
struct ModifierData * | md, | ||
const char * | format, | ||
... | |||
) |
Referenced by surfacedeformModifier_do().
bool BKE_modifier_supports_cage | ( | struct Scene * | scene, |
struct ModifierData * | md | ||
) |
Definition at line 403 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 | ( | struct ModifierData * | md | ) |
Definition at line 243 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 119 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 | ( | struct ListBase * | modifiers, |
struct ModifierData * | md | ||
) |
Definition at line 225 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(), do_versions_after_linking_300(), ED_object_modifier_add(), ED_object_modifier_copy(), object_add_or_copy_particle_system(), and object_blend_read_data().
Definition at line 293 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(), curves_evaluate_modifiers(), editbmesh_calc_modifiers(), mesh_calc_modifiers(), pointcloud_evaluate_modifiers(), and volume_evaluate_modifiers().
struct ModifierData* BKE_modifiers_findby_name | ( | const struct Object * | ob, |
const char * | name | ||
) |
Referenced by deformVerts(), ED_object_modifier_apply(), ED_object_particle_edit_mode_enter_ex(), ED_spreadsheet_context_path_exists(), ED_spreadsheet_context_path_is_active(), edit_modifier_property_get(), geometry_extract_apply(), geometry_nodes_input_attribute_toggle_exec(), get_modifier_data(), getOriginalModifierData(), and PE_create_particle_edit().
struct ModifierData* BKE_modifiers_findby_session_uuid | ( | const struct Object * | ob, |
const SessionUUID * | session_uuid | ||
) |
struct ModifierData* BKE_modifiers_findby_type | ( | const struct Object * | ob, |
ModifierType | type | ||
) |
Referenced by add_collision_object(), add_verts_to_dgroups(), bake(), BKE_collider_cache_create(), BKE_object_copy_modifier(), BKE_object_modifier_update_subframe(), blo_do_versions_250(), blo_do_versions_pre250(), boid_find_ground(), buttons_context(), ccd_mesh_make(), ccd_mesh_update(), cloth_brush_collider_cache_create(), cloth_bvh_collision(), cloth_bvh_objcollisions_resolve(), DEG_add_collision_relations(), drw_volume_object_mesh_init(), dynamicpaint_bake_exec(), dynamicPaint_doStep(), ED_object_check_force_modifiers(), ED_object_modifier_add(), ED_object_particle_edit_mode_supported(), fluid_free_exec(), fluid_initjob(), fluid_pause_exec(), get_orco_coords(), modifier_copy_to_selected_exec(), object_blend_read_lib(), object_remove_particle_system(), output_toggle_exec(), OVERLAY_extra_cache_populate(), particles_fluid_step(), precalculate_effector(), surface_getBrushFlags(), surface_slot_add_exec(), surface_slot_remove_exec(), type_toggle_exec(), and workbench_cache_populate().
void BKE_modifiers_foreach_ID_link | ( | struct Object * | ob, |
IDWalkFunc | walk, | ||
void * | userData | ||
) |
Definition at line 303 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 | ( | struct Object * | ob, |
TexWalkFunc | walk, | ||
void * | userData | ||
) |
Definition at line 314 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 struct Scene * | scene, |
struct Object * | ob, | ||
int * | r_lastPossibleCageIndex, | ||
bool | is_virtual | ||
) |
used for buttons, to find out if the 'draw deformed in edit-mode option is there.
Also used in transform_conversion.c, to detect crazy-space (2nd arg then is NULL). Also used for some mesh tools to give warnings.
Referenced by BKE_crazyspace_get_first_deform_matrices_editbmesh(), editbmesh_calc_modifiers(), modifier_panel_header(), modifiers_disable_subsurf_temporary(), and transform_convert_mesh_crazyspace_detect().
struct ModifierData* BKE_modifiers_get_virtual_modifierlist | ( | const struct Object * | ob, |
struct VirtualModifierData * | data | ||
) |
This is to include things that are not modifiers in the evaluation of the modifier stack, for example parenting to an armature.
Referenced by 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_multires_create_deformed_base_mesh_vert_coords(), BKE_object_defgroup_validmap_get(), BKE_object_is_deform_modified(), BKE_object_is_modified(), BKE_sculpt_get_first_deform_matrices(), BKE_sculpt_multires_active(), curve_calc_modifiers_post(), curve_get_tessellate_point(), curves_evaluate_modifiers(), ED_armature_pose_select_in_wpaint_mode(), ED_object_posemode_set_for_weight_paint(), editbmesh_calc_modifiers(), mesh_calc_modifiers(), pointcloud_evaluate_modifiers(), sculpt_modifiers_active(), view3d_opengl_select_ex(), and volume_evaluate_modifiers().
Definition at line 555 of file blenkernel/intern/modifier.c.
References BKE_modifiers_findby_type(), eModifierMode_Realtime, eModifierMode_Render, eModifierType_Cloth, and ModifierData::mode.
Definition at line 888 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().
Takes an object and returns its first selected armature, else just its armature. This should work for multiple armatures per object.
Definition at line 734 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().
Takes an object and returns its first selected curve, else just its curve. This should work for multiple curves per object.
Definition at line 825 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().
Takes an object and returns its first selected lattice, else just its lattice. This should work for multiple lattices per object.
Definition at line 802 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 779 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().
Definition at line 562 of file blenkernel/intern/modifier.c.
References BKE_modifiers_findby_type(), eModifierMode_Realtime, eModifierMode_Render, and ModifierData::mode.
Definition at line 569 of file blenkernel/intern/modifier.c.
References BKE_modifiers_findby_type(), eModifierMode_Realtime, eModifierMode_Render, eModifierType_ParticleSystem, and ModifierData::mode.
Definition at line 548 of file blenkernel/intern/modifier.c.
References BKE_modifiers_findby_type(), eModifierMode_Realtime, eModifierMode_Render, eModifierType_Softbody, and ModifierData::mode.
Ensure modifier correctness when changing ob->data
.
Definition at line 917 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 865 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().
Definition at line 848 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().