Blender  V2.93
Macros | Functions | Variables
blenkernel/intern/modifier.c File Reference
#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
 

Functions

void BKE_modifier_init (void)
 
const ModifierTypeInfoBKE_modifier_get_info (ModifierType type)
 
void BKE_modifier_type_panel_id (ModifierType type, char *r_idname)
 
void BKE_modifier_panel_expand (ModifierData *md)
 
ModifierDataBKE_modifier_new (int type)
 
static void modifier_free_data_id_us_cb (void *UNUSED(userData), Object *UNUSED(ob), ID **idpoin, int cb_flag)
 
void BKE_modifier_free_ex (ModifierData *md, const int flag)
 
void BKE_modifier_free (ModifierData *md)
 
void BKE_modifier_remove_from_list (Object *ob, ModifierData *md)
 
void BKE_modifier_session_uuid_generate (ModifierData *md)
 
bool BKE_modifier_unique_name (ListBase *modifiers, ModifierData *md)
 
bool BKE_modifier_depends_ontime (ModifierData *md)
 
bool BKE_modifier_supports_mapping (ModifierData *md)
 
bool BKE_modifier_is_preview (ModifierData *md)
 
ModifierDataBKE_modifiers_findby_type (const Object *ob, ModifierType type)
 
ModifierDataBKE_modifiers_findby_name (const Object *ob, const char *name)
 
void BKE_modifiers_clear_errors (Object *ob)
 
void BKE_modifiers_foreach_ID_link (Object *ob, IDWalkFunc walk, void *userData)
 
void BKE_modifiers_foreach_tex_link (Object *ob, TexWalkFunc walk, void *userData)
 
void BKE_modifier_copydata_generic (const ModifierData *md_src, ModifierData *md_dst, const int UNUSED(flag))
 
static void modifier_copy_data_id_us_cb (void *UNUSED(userData), Object *UNUSED(ob), ID **idpoin, int cb_flag)
 
void BKE_modifier_copydata_ex (ModifierData *md, ModifierData *target, const int flag)
 
void BKE_modifier_copydata (ModifierData *md, ModifierData *target)
 
bool BKE_modifier_supports_cage (struct Scene *scene, ModifierData *md)
 
bool BKE_modifier_couldbe_cage (struct Scene *scene, ModifierData *md)
 
bool BKE_modifier_is_same_topology (ModifierData *md)
 
bool BKE_modifier_is_non_geometrical (ModifierData *md)
 
void BKE_modifier_set_error (const Object *ob, ModifierData *md, const char *_format,...)
 
int BKE_modifiers_get_cage_index (const Scene *scene, Object *ob, int *r_lastPossibleCageIndex, bool is_virtual)
 
bool BKE_modifiers_is_softbody_enabled (Object *ob)
 
bool BKE_modifiers_is_cloth_enabled (Object *ob)
 
bool BKE_modifiers_is_modifier_enabled (Object *ob, int modifierType)
 
bool BKE_modifiers_is_particle_enabled (Object *ob)
 
bool BKE_modifier_is_enabled (const struct Scene *scene, ModifierData *md, int required_mode)
 
bool BKE_modifier_is_nonlocal_in_liboverride (const Object *ob, const ModifierData *md)
 
CDMaskLinkBKE_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)
 
ModifierDataBKE_modifier_get_last_preview (const struct Scene *scene, ModifierData *md, int required_mode)
 
ModifierDataBKE_modifiers_get_virtual_modifierlist (const Object *ob, VirtualModifierData *virtualModifierData)
 
ObjectBKE_modifiers_is_deformed_by_armature (Object *ob)
 
ObjectBKE_modifiers_is_deformed_by_meshdeform (Object *ob)
 
ObjectBKE_modifiers_is_deformed_by_lattice (Object *ob)
 
ObjectBKE_modifiers_is_deformed_by_curve (Object *ob)
 
bool BKE_modifiers_uses_multires (Object *ob)
 
bool BKE_modifiers_uses_armature (Object *ob, bArmature *arm)
 
bool BKE_modifiers_uses_subsurf_facedots (const struct Scene *scene, Object *ob)
 
bool BKE_modifier_is_correctable_deformed (ModifierData *md)
 
bool BKE_modifiers_is_correctable_deformed (const struct Scene *scene, Object *ob)
 
void BKE_modifier_free_temporary_data (ModifierData *md)
 
void BKE_modifiers_test_object (Object *ob)
 
const char * BKE_modifier_path_relbase (Main *bmain, Object *ob)
 
const char * BKE_modifier_path_relbase_from_global (Object *ob)
 
void BKE_modifier_path_init (char *path, int path_maxlen, const char *name)
 
static void modwrap_dependsOnNormals (Mesh *me)
 
struct MeshBKE_modifier_modify_mesh (ModifierData *md, const ModifierEvalContext *ctx, struct Mesh *me)
 
void BKE_modifier_deform_verts (ModifierData *md, const ModifierEvalContext *ctx, Mesh *me, float(*vertexCos)[3], int numVerts)
 
void BKE_modifier_deform_vertsEM (ModifierData *md, const ModifierEvalContext *ctx, struct BMEditMesh *em, Mesh *me, float(*vertexCos)[3], int numVerts)
 
MeshBKE_modifier_get_evaluated_mesh_from_evaluated_object (Object *ob_eval, const bool get_cage_mesh)
 
ModifierDataBKE_modifier_get_original (ModifierData *md)
 
struct ModifierDataBKE_modifier_get_evaluated (Depsgraph *depsgraph, Object *object, ModifierData *md)
 
void BKE_modifier_check_uuids_unique_and_report (const Object *object)
 
void BKE_modifier_blend_write (BlendWriter *writer, ListBase *modbase)
 
static void modifier_ensure_type (FluidModifierData *fluid_modifier_data, int type)
 
static ModifierDatamodifier_replace_with_fluid (BlendDataReader *reader, Object *object, ListBase *modifiers, ModifierData *old_modifier_data)
 
void BKE_modifier_blend_read_data (BlendDataReader *reader, ListBase *lb, Object *ob)
 
void BKE_modifier_blend_read_lib (BlendLibReader *reader, Object *ob)
 

Variables

static CLG_LogRef LOG = {"bke.modifier"}
 
static ModifierTypeInfomodifier_types [NUM_MODIFIER_TYPES] = {NULL}
 
static VirtualModifierData virtualModifierCommonData
 

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 28 of file blenkernel/intern/modifier.c.

Function Documentation

◆ BKE_modifier_blend_read_data()

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().

◆ BKE_modifier_blend_read_lib()

void BKE_modifier_blend_read_lib ( BlendLibReader reader,
Object ob 
)

◆ BKE_modifier_blend_write()

void BKE_modifier_blend_write ( BlendWriter writer,
ListBase modbase 
)

◆ BKE_modifier_calc_data_masks()

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 
)

◆ BKE_modifier_check_uuids_unique_and_report()

void BKE_modifier_check_uuids_unique_and_report ( const Object object)

◆ BKE_modifier_copydata()

void BKE_modifier_copydata ( ModifierData md,
ModifierData target 
)

◆ BKE_modifier_copydata_ex()

void BKE_modifier_copydata_ex ( ModifierData md,
ModifierData target,
const int  flag 
)

◆ BKE_modifier_copydata_generic()

void BKE_modifier_copydata_generic ( const ModifierData md_src,
ModifierData md_dst,
const int   UNUSEDflag 
)

◆ BKE_modifier_couldbe_cage()

bool BKE_modifier_couldbe_cage ( struct Scene scene,
ModifierData md 
)

◆ BKE_modifier_deform_verts()

void BKE_modifier_deform_verts ( ModifierData md,
const ModifierEvalContext ctx,
Mesh me,
float(*)  vertexCos[3],
int  numVerts 
)

◆ BKE_modifier_deform_vertsEM()

void BKE_modifier_deform_vertsEM ( ModifierData md,
const ModifierEvalContext ctx,
struct BMEditMesh em,
Mesh me,
float(*)  vertexCos[3],
int  numVerts 
)

◆ BKE_modifier_depends_ontime()

bool BKE_modifier_depends_ontime ( ModifierData md)

◆ BKE_modifier_free()

void BKE_modifier_free ( ModifierData md)

◆ BKE_modifier_free_ex()

void BKE_modifier_free_ex ( ModifierData md,
const int  flag 
)

◆ BKE_modifier_free_temporary_data()

void BKE_modifier_free_temporary_data ( ModifierData md)

◆ BKE_modifier_get_evaluated()

struct ModifierData* BKE_modifier_get_evaluated ( Depsgraph depsgraph,
Object object,
ModifierData md 
)

◆ BKE_modifier_get_evaluated_mesh_from_evaluated_object()

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.

Parameters
get_cage_meshReturn 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().

◆ BKE_modifier_get_info()

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().

◆ BKE_modifier_get_last_preview()

ModifierData* BKE_modifier_get_last_preview ( const struct Scene scene,
ModifierData md,
int  required_mode 
)

◆ BKE_modifier_get_original()

ModifierData* BKE_modifier_get_original ( ModifierData md)

◆ BKE_modifier_init()

void BKE_modifier_init ( void  )

◆ BKE_modifier_is_correctable_deformed()

bool BKE_modifier_is_correctable_deformed ( ModifierData md)

◆ BKE_modifier_is_enabled()

bool BKE_modifier_is_enabled ( const struct Scene scene,
ModifierData md,
int  required_mode 
)

◆ BKE_modifier_is_non_geometrical()

bool BKE_modifier_is_non_geometrical ( ModifierData md)

◆ BKE_modifier_is_nonlocal_in_liboverride()

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.

Parameters
mdMay 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.

◆ BKE_modifier_is_preview()

bool BKE_modifier_is_preview ( ModifierData md)

◆ BKE_modifier_is_same_topology()

bool BKE_modifier_is_same_topology ( ModifierData md)

◆ BKE_modifier_modify_mesh()

struct Mesh* BKE_modifier_modify_mesh ( ModifierData md,
const ModifierEvalContext ctx,
struct Mesh me 
)

◆ BKE_modifier_new()

ModifierData* BKE_modifier_new ( int  type)

◆ BKE_modifier_panel_expand()

void BKE_modifier_panel_expand ( ModifierData md)

◆ BKE_modifier_path_init()

void BKE_modifier_path_init ( char *  path,
int  path_maxlen,
const char *  name 
)

◆ BKE_modifier_path_relbase()

const char* BKE_modifier_path_relbase ( Main bmain,
Object ob 
)

◆ BKE_modifier_path_relbase_from_global()

const char* BKE_modifier_path_relbase_from_global ( Object ob)

◆ BKE_modifier_remove_from_list()

void BKE_modifier_remove_from_list ( Object ob,
ModifierData md 
)

◆ BKE_modifier_session_uuid_generate()

void BKE_modifier_session_uuid_generate ( ModifierData md)

◆ BKE_modifier_set_error()

void BKE_modifier_set_error ( const Object ob,
ModifierData md,
const char *  _format,
  ... 
)

◆ BKE_modifier_supports_cage()

bool BKE_modifier_supports_cage ( struct Scene scene,
ModifierData md 
)

◆ BKE_modifier_supports_mapping()

bool BKE_modifier_supports_mapping ( ModifierData md)

◆ BKE_modifier_type_panel_id()

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().

◆ BKE_modifier_unique_name()

bool BKE_modifier_unique_name ( ListBase modifiers,
ModifierData md 
)

◆ BKE_modifiers_clear_errors()

void BKE_modifiers_clear_errors ( Object ob)

◆ BKE_modifiers_findby_name()

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().

◆ BKE_modifiers_findby_type()

ModifierData* BKE_modifiers_findby_type ( const Object ob,
ModifierType  type 
)

◆ BKE_modifiers_foreach_ID_link()

void BKE_modifiers_foreach_ID_link ( Object ob,
IDWalkFunc  walk,
void *  userData 
)

◆ BKE_modifiers_foreach_tex_link()

void BKE_modifiers_foreach_tex_link ( Object ob,
TexWalkFunc  walk,
void *  userData 
)

◆ BKE_modifiers_get_cage_index()

int BKE_modifiers_get_cage_index ( const Scene scene,
Object ob,
int *  r_lastPossibleCageIndex,
bool  is_virtual 
)

◆ BKE_modifiers_get_virtual_modifierlist()

ModifierData* BKE_modifiers_get_virtual_modifierlist ( const Object ob,
VirtualModifierData virtualModifierData 
)

◆ BKE_modifiers_is_cloth_enabled()

bool BKE_modifiers_is_cloth_enabled ( Object ob)

◆ BKE_modifiers_is_correctable_deformed()

bool BKE_modifiers_is_correctable_deformed ( const struct Scene scene,
Object ob 
)

◆ BKE_modifiers_is_deformed_by_armature()

Object* BKE_modifiers_is_deformed_by_armature ( Object ob)

◆ BKE_modifiers_is_deformed_by_curve()

Object* BKE_modifiers_is_deformed_by_curve ( Object ob)

◆ BKE_modifiers_is_deformed_by_lattice()

Object* BKE_modifiers_is_deformed_by_lattice ( Object ob)

◆ BKE_modifiers_is_deformed_by_meshdeform()

Object* BKE_modifiers_is_deformed_by_meshdeform ( Object ob)

◆ BKE_modifiers_is_modifier_enabled()

bool BKE_modifiers_is_modifier_enabled ( Object ob,
int  modifierType 
)

◆ BKE_modifiers_is_particle_enabled()

bool BKE_modifiers_is_particle_enabled ( Object ob)

◆ BKE_modifiers_is_softbody_enabled()

bool BKE_modifiers_is_softbody_enabled ( Object ob)

◆ BKE_modifiers_test_object()

void BKE_modifiers_test_object ( struct Object ob)

◆ BKE_modifiers_uses_armature()

bool BKE_modifiers_uses_armature ( Object ob,
bArmature arm 
)

◆ BKE_modifiers_uses_multires()

bool BKE_modifiers_uses_multires ( Object ob)

◆ BKE_modifiers_uses_subsurf_facedots()

bool BKE_modifiers_uses_subsurf_facedots ( const struct Scene scene,
Object ob 
)

◆ modifier_copy_data_id_us_cb()

static void modifier_copy_data_id_us_cb ( void *  UNUSEDuserData,
Object UNUSEDob,
ID **  idpoin,
int  cb_flag 
)
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().

◆ modifier_ensure_type()

static void modifier_ensure_type ( FluidModifierData fluid_modifier_data,
int  type 
)
static

◆ modifier_free_data_id_us_cb()

static void modifier_free_data_id_us_cb ( void *  UNUSEDuserData,
Object UNUSEDob,
ID **  idpoin,
int  cb_flag 
)
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().

◆ modifier_replace_with_fluid()

static ModifierData* modifier_replace_with_fluid ( BlendDataReader reader,
Object object,
ListBase modifiers,
ModifierData old_modifier_data 
)
static

◆ modwrap_dependsOnNormals()

static void modwrap_dependsOnNormals ( Mesh me)
static

Variable Documentation

◆ LOG

CLG_LogRef LOG = {"bke.modifier"}
static

Definition at line 92 of file blenkernel/intern/modifier.c.

Referenced by BKE_modifier_set_error().

◆ modifier_types

ModifierTypeInfo* modifier_types[NUM_MODIFIER_TYPES] = {NULL}
static

Definition at line 93 of file blenkernel/intern/modifier.c.

Referenced by BKE_modifier_get_info(), and BKE_modifier_init().

◆ virtualModifierCommonData

VirtualModifierData virtualModifierCommonData
static