Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
BKE_modifier.h File Reference
#include "BKE_customdata.h"
#include "BLI_compiler_attrs.h"
#include "DNA_modifier_types.h"

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
}
 

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 (struct ModifierData *md)
 
struct ModifierDataBKE_modifier_new (int type)
 
void BKE_modifier_free_ex (struct ModifierData *md, int flag)
 
void BKE_modifier_free (struct ModifierData *md)
 
void BKE_modifier_remove_from_list (struct Object *ob, struct ModifierData *md)
 
void BKE_modifier_session_uuid_generate (struct ModifierData *md)
 
bool BKE_modifier_unique_name (struct ListBase *modifiers, struct ModifierData *md)
 
struct ModifierDataBKE_modifier_copy_ex (const struct ModifierData *md, int flag)
 
void BKE_modifier_copydata_generic (const struct ModifierData *md, struct ModifierData *md_dst, int flag)
 
void BKE_modifier_copydata (const struct ModifierData *md, struct ModifierData *target)
 
void BKE_modifier_copydata_ex (const struct ModifierData *md, struct ModifierData *target, int flag)
 
bool BKE_modifier_depends_ontime (struct Scene *scene, struct ModifierData *md)
 
bool BKE_modifier_supports_mapping (struct ModifierData *md)
 
bool BKE_modifier_supports_cage (struct Scene *scene, struct ModifierData *md)
 
bool BKE_modifier_couldbe_cage (struct Scene *scene, struct ModifierData *md)
 
bool BKE_modifier_is_correctable_deformed (struct ModifierData *md)
 
bool BKE_modifier_is_same_topology (ModifierData *md)
 
bool BKE_modifier_is_non_geometrical (ModifierData *md)
 
bool BKE_modifier_is_enabled (const struct Scene *scene, struct ModifierData *md, int required_mode)
 
bool BKE_modifier_is_nonlocal_in_liboverride (const struct Object *ob, const struct ModifierData *md)
 
void BKE_modifier_set_error (const struct Object *ob, struct ModifierData *md, const char *format,...) ATTR_PRINTF_FORMAT(3
 
void void BKE_modifier_set_warning (const struct Object *ob, struct ModifierData *md, const char *format,...) ATTR_PRINTF_FORMAT(3
 
void void bool BKE_modifier_is_preview (struct ModifierData *md)
 
void BKE_modifiers_foreach_ID_link (struct Object *ob, IDWalkFunc walk, void *userData)
 
void BKE_modifiers_foreach_tex_link (struct Object *ob, TexWalkFunc walk, void *userData)
 
struct ModifierDataBKE_modifiers_findby_type (const struct Object *ob, ModifierType type)
 
struct ModifierDataBKE_modifiers_findby_name (const struct Object *ob, const char *name)
 
struct ModifierDataBKE_modifiers_findby_session_uuid (const struct Object *ob, const SessionUUID *session_uuid)
 
void BKE_modifiers_clear_errors (struct Object *ob)
 
int BKE_modifiers_get_cage_index (const struct Scene *scene, struct Object *ob, int *r_lastPossibleCageIndex, bool is_virtual)
 
bool BKE_modifiers_is_modifier_enabled (struct Object *ob, int modifierType)
 
bool BKE_modifiers_is_softbody_enabled (struct Object *ob)
 
bool BKE_modifiers_is_cloth_enabled (struct Object *ob)
 
bool BKE_modifiers_is_particle_enabled (struct Object *ob)
 
struct ObjectBKE_modifiers_is_deformed_by_armature (struct Object *ob)
 
struct ObjectBKE_modifiers_is_deformed_by_meshdeform (struct Object *ob)
 
struct ObjectBKE_modifiers_is_deformed_by_lattice (struct Object *ob)
 
struct ObjectBKE_modifiers_is_deformed_by_curve (struct Object *ob)
 
bool BKE_modifiers_uses_multires (struct Object *ob)
 
bool BKE_modifiers_uses_armature (struct Object *ob, struct bArmature *arm)
 
bool BKE_modifiers_is_correctable_deformed (const struct Scene *scene, struct Object *ob)
 
void BKE_modifier_free_temporary_data (struct ModifierData *md)
 
struct CDMaskLinkBKE_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)
 
struct ModifierDataBKE_modifier_get_last_preview (const struct Scene *scene, struct ModifierData *md, int required_mode)
 
struct ModifierDataBKE_modifiers_get_virtual_modifierlist (const struct Object *ob, struct VirtualModifierData *data)
 
void BKE_modifiers_test_object (struct Object *ob)
 
void BKE_modifier_mdef_compact_influences (struct ModifierData *md)
 
void BKE_modifier_path_init (char *path, int path_maxlen, const char *name)
 
const char * BKE_modifier_path_relbase (struct Main *bmain, struct Object *ob)
 
const char * BKE_modifier_path_relbase_from_global (struct Object *ob)
 
struct ModifierDataBKE_modifier_get_original (const struct Object *object, struct ModifierData *md)
 
struct ModifierDataBKE_modifier_get_evaluated (struct Depsgraph *depsgraph, struct Object *object, struct ModifierData *md)
 
struct MeshBKE_modifier_modify_mesh (ModifierData *md, const struct ModifierEvalContext *ctx, struct Mesh *me)
 
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)
 
struct MeshBKE_modifier_get_evaluated_mesh_from_evaluated_object (struct Object *ob_eval)
 
void BKE_modifier_check_uuids_unique_and_report (const struct Object *object)
 
void BKE_modifier_blend_write (struct BlendWriter *writer, const struct ID *id_owner, struct ListBase *modbase)
 
void BKE_modifier_blend_read_data (struct BlendDataReader *reader, struct ListBase *lb, struct Object *ob)
 
void BKE_modifier_blend_read_lib (struct BlendLibReader *reader, struct Object *ob)
 

Macro Definition Documentation

◆ MODIFIER_TYPE_PANEL_PREFIX

#define MODIFIER_TYPE_PANEL_PREFIX   "MOD_PT_"

Definition at line 381 of file BKE_modifier.h.

Typedef Documentation

◆ CDMaskLink

typedef struct CDMaskLink CDMaskLink

◆ IDWalkFunc

typedef void(* IDWalkFunc) (void *userData, struct Object *ob, struct ID **idpoin, int cb_flag)

Definition at line 107 of file BKE_modifier.h.

◆ ModifierApplyFlag

◆ ModifierEvalContext

◆ ModifierTypeInfo

◆ ModifierUpdateDepsgraphContext

◆ TexWalkFunc

typedef void(* TexWalkFunc) (void *userData, struct Object *ob, struct ModifierData *md, const char *propname)

Definition at line 108 of file BKE_modifier.h.

◆ VirtualModifierData

Enumeration Type Documentation

◆ 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 OBJECT_OT_modifier_apply operator.

Definition at line 113 of file BKE_modifier.h.

◆ 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.

◆ 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.

Function Documentation

◆ BKE_modifier_blend_read_data()

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

◆ BKE_modifier_blend_read_lib()

void BKE_modifier_blend_read_lib ( struct BlendLibReader reader,
struct Object ob 
)

◆ BKE_modifier_blend_write()

void BKE_modifier_blend_write ( struct BlendWriter writer,
const struct ID id_owner,
struct ListBase modbase 
)

Referenced by object_blend_write().

◆ BKE_modifier_calc_data_masks()

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

◆ BKE_modifier_check_uuids_unique_and_report()

void BKE_modifier_check_uuids_unique_and_report ( const struct Object object)

◆ BKE_modifier_copy_ex()

struct ModifierData* BKE_modifier_copy_ex ( const struct ModifierData md,
int  flag 
)

◆ BKE_modifier_copydata()

void BKE_modifier_copydata ( const struct ModifierData md,
struct ModifierData target 
)

◆ BKE_modifier_copydata_ex()

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

◆ BKE_modifier_copydata_generic()

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

◆ BKE_modifier_couldbe_cage()

bool BKE_modifier_couldbe_cage ( struct Scene scene,
struct ModifierData md 
)

◆ BKE_modifier_deform_verts()

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

◆ BKE_modifier_deform_vertsEM()

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

◆ BKE_modifier_depends_ontime()

bool BKE_modifier_depends_ontime ( struct Scene scene,
struct ModifierData md 
)

◆ BKE_modifier_free()

void BKE_modifier_free ( struct ModifierData md)

◆ BKE_modifier_free_ex()

void BKE_modifier_free_ex ( struct ModifierData md,
int  flag 
)

◆ BKE_modifier_free_temporary_data()

void BKE_modifier_free_temporary_data ( struct ModifierData md)

◆ BKE_modifier_get_evaluated()

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

◆ BKE_modifier_get_evaluated_mesh_from_evaluated_object()

struct Mesh* BKE_modifier_get_evaluated_mesh_from_evaluated_object ( struct Object ob_eval)

◆ BKE_modifier_get_info()

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

◆ BKE_modifier_get_last_preview()

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

◆ BKE_modifier_get_original()

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

◆ BKE_modifier_init()

void BKE_modifier_init ( void  )

◆ BKE_modifier_is_correctable_deformed()

bool BKE_modifier_is_correctable_deformed ( struct ModifierData md)

◆ BKE_modifier_is_enabled()

bool BKE_modifier_is_enabled ( const struct Scene scene,
struct 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 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.

Parameters
mdMay be NULL, in which case we consider it as a non-local modifier case.

Referenced by edit_modifier_poll_generic().

◆ BKE_modifier_is_preview()

void void bool BKE_modifier_is_preview ( struct ModifierData md)

◆ BKE_modifier_is_same_topology()

bool BKE_modifier_is_same_topology ( ModifierData md)

◆ BKE_modifier_mdef_compact_influences()

void BKE_modifier_mdef_compact_influences ( struct ModifierData md)

◆ BKE_modifier_modify_mesh()

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

◆ BKE_modifier_new()

struct ModifierData* BKE_modifier_new ( int  type)

◆ BKE_modifier_panel_expand()

void BKE_modifier_panel_expand ( struct ModifierData md)

◆ BKE_modifier_path_init()

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

◆ BKE_modifier_path_relbase()

const char* BKE_modifier_path_relbase ( struct Main bmain,
struct Object ob 
)

◆ BKE_modifier_path_relbase_from_global()

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

◆ BKE_modifier_remove_from_list()

void BKE_modifier_remove_from_list ( struct Object ob,
struct ModifierData md 
)

◆ BKE_modifier_session_uuid_generate()

void BKE_modifier_session_uuid_generate ( struct ModifierData md)

◆ BKE_modifier_set_error()

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

◆ BKE_modifier_set_warning()

void void BKE_modifier_set_warning ( const struct Object ob,
struct ModifierData md,
const char *  format,
  ... 
)

◆ BKE_modifier_supports_cage()

bool BKE_modifier_supports_cage ( struct Scene scene,
struct ModifierData md 
)

◆ BKE_modifier_supports_mapping()

bool BKE_modifier_supports_mapping ( struct 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 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().

◆ BKE_modifier_unique_name()

bool BKE_modifier_unique_name ( struct ListBase modifiers,
struct ModifierData md 
)

◆ BKE_modifiers_clear_errors()

void BKE_modifiers_clear_errors ( struct Object ob)

◆ BKE_modifiers_findby_name()

struct ModifierData* BKE_modifiers_findby_name ( const struct Object ob,
const char *  name 
)

◆ BKE_modifiers_findby_session_uuid()

struct ModifierData* BKE_modifiers_findby_session_uuid ( const struct Object ob,
const SessionUUID session_uuid 
)

◆ BKE_modifiers_findby_type()

struct ModifierData* BKE_modifiers_findby_type ( const struct Object ob,
ModifierType  type 
)

◆ BKE_modifiers_foreach_ID_link()

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

◆ BKE_modifiers_foreach_tex_link()

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

◆ BKE_modifiers_get_cage_index()

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

◆ BKE_modifiers_get_virtual_modifierlist()

struct ModifierData* BKE_modifiers_get_virtual_modifierlist ( const struct Object ob,
struct VirtualModifierData data 
)

◆ BKE_modifiers_is_cloth_enabled()

bool BKE_modifiers_is_cloth_enabled ( struct Object ob)

◆ BKE_modifiers_is_correctable_deformed()

bool BKE_modifiers_is_correctable_deformed ( const struct Scene scene,
struct Object ob 
)

◆ BKE_modifiers_is_deformed_by_armature()

struct Object* BKE_modifiers_is_deformed_by_armature ( struct Object ob)

◆ BKE_modifiers_is_deformed_by_curve()

struct Object* BKE_modifiers_is_deformed_by_curve ( struct Object ob)

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

◆ BKE_modifiers_is_deformed_by_lattice()

struct Object* BKE_modifiers_is_deformed_by_lattice ( struct Object ob)

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

◆ BKE_modifiers_is_deformed_by_meshdeform()

struct Object* BKE_modifiers_is_deformed_by_meshdeform ( struct Object ob)

◆ BKE_modifiers_is_modifier_enabled()

bool BKE_modifiers_is_modifier_enabled ( struct Object ob,
int  modifierType 
)

◆ BKE_modifiers_is_particle_enabled()

bool BKE_modifiers_is_particle_enabled ( struct Object ob)

◆ BKE_modifiers_is_softbody_enabled()

bool BKE_modifiers_is_softbody_enabled ( struct Object ob)

◆ BKE_modifiers_test_object()

void BKE_modifiers_test_object ( struct Object ob)

◆ BKE_modifiers_uses_armature()

bool BKE_modifiers_uses_armature ( struct Object ob,
struct bArmature arm 
)

◆ BKE_modifiers_uses_multires()

bool BKE_modifiers_uses_multires ( struct Object ob)