148 const int mode = md_eval->
mode;
151 md_eval->
mode = mode;
258 if ((md != exclude) && (md->type ==
type)) {
276 const bool include_orig,
280 ID *ob_data_id = orig_ob->
data;
290 int totfound = include_orig ? 0 : 1;
292 for (ob = bmain->
objects.
first; ob && totfound < users; ob = ob->
id.next) {
293 if (((ob != orig_ob) || include_orig) && (ob->
data == orig_ob->
data)) {
302 else if (include_orig) {
303 return callback(orig_ob, callback_data);
321 int totlevel = *((
char *)totlevel_v);
369 *r_sort_depsgraph =
true;
372 *r_sort_depsgraph =
true;
402 bool sort_depsgraph =
false;
420 bool sort_depsgraph =
false;
500 if (md_index < index) {
502 for (; md_index < index; md_index++) {
510 for (; md_index > index; md_index--) {
581 int totvert = 0, totedge = 0;
583 for (
int a = 0;
a < totpart;
a++) {
593 for (
int a = 0;
a < totchild;
a++) {
622 for (
int a = 0;
a < totpart;
a++) {
625 for (
int k = 0; k <= kmax; k++, key++, cvert++, mvert++) {
628 medge->
v1 = cvert - 1;
641 for (
int a = 0;
a < totchild;
a++) {
644 for (
int k = 0; k <= kmax; k++, key++, cvert++, mvert++) {
647 medge->
v1 = cvert - 1;
668 bool build_shapekey_layers)
673 depsgraph, scene_eval, object_eval, md_eval, build_shapekey_layers);
790 reports,
RPT_ERROR,
"Transform curve to mesh in order to apply constructive modifiers");
796 "Applied modifier only changed CV points, not tessellated/bevel vertices");
819 mti->deformVerts(md_eval, &mectx,
NULL, vertexCos, numVerts);
833 if (ob->particlesystem.first) {
867 "Constructive modifier cannot be applied to multi-res data in sculpt mode");
872 BKE_report(reports,
RPT_INFO,
"Applied modifier was not first, result may not be as expected");
881 int prev_mode = md_eval->
mode;
886 md_eval->
mode = prev_mode;
892 md_eval->
mode = prev_mode;
897 md_eval->
mode = prev_mode;
899 if (!keep_modifier) {
984 group_item = md_item;
1007 ot->
name =
"Add Modifier";
1008 ot->
description =
"Add a procedural operation/effect to the active object";
1009 ot->
idname =
"OBJECT_OT_modifier_add";
1037 const bool is_editmode_allowed,
1038 const bool is_liboverride_allowed)
1047 if (obtype_flag && ((1 << ob->
type) & obtype_flag) == 0) {
1056 C,
"Cannot edit modifiers coming from linked data in a library override");
1090 ot->
srna,
"report",
false,
"Report",
"Create a notification after the operation");
1186 int mode_orig = ob->
mode;
1194 strcpy(name, md->
name);
1205 if (ob ==
OBACT(view_layer)) {
1229 ot->
name =
"Remove Modifier";
1230 ot->
description =
"Remove a modifier from the active object";
1231 ot->
idname =
"OBJECT_OT_modifier_remove";
1275 ot->
name =
"Move Up Modifier";
1277 ot->
idname =
"OBJECT_OT_modifier_move_up";
1320 ot->
name =
"Move Down Modifier";
1322 ot->
idname =
"OBJECT_OT_modifier_move_down";
1363 ot->
name =
"Move Active Modifier to Index";
1365 "Change the modifier's index in the stack so it evaluates after the set number of others";
1366 ot->
idname =
"OBJECT_OT_modifier_move_to_index";
1376 ot->
srna,
"index", 0, 0, INT_MAX,
"Index",
"The index to move the modifier to", 0, INT_MAX);
1408 C,
"Constructive modifier cannot be applied to multi-res data in sculpt mode");
1437 strcpy(name, md->
name);
1476 ot->
name =
"Apply Modifier";
1477 ot->
description =
"Apply modifier and remove from the stack";
1478 ot->
idname =
"OBJECT_OT_modifier_apply";
1525 return BLI_strdup(
"Apply modifier as a new shapekey and keep it in the stack");
1533 ot->
name =
"Apply Modifier as Shape Key";
1534 ot->
description =
"Apply modifier as a new shape key and remove from the stack";
1535 ot->
idname =
"OBJECT_OT_modifier_apply_as_shapekey";
1546 ot->
srna,
"keep_modifier",
false,
"Keep Modifier",
"Do not remove the modifier from stack");
1585 ot->
name =
"Convert Modifier";
1587 ot->
idname =
"OBJECT_OT_modifier_convert";
1632 ot->
name =
"Copy Modifier";
1633 ot->
description =
"Duplicate modifier at the same position in the stack";
1634 ot->
idname =
"OBJECT_OT_modifier_copy";
1675 ot->
name =
"Set Active Modifier";
1676 ot->
description =
"Activate the modifier to use as the context";
1677 ot->
idname =
"OBJECT_OT_modifier_set_active";
1715 "Object '%s' does not support %s modifiers",
1725 "Modifier can only be added once to object '%s'",
1734 "Copying modifier '%s' to object '%s' failed",
1745 if (num_copied > 0) {
1791 bool found_supported_objects =
false;
1799 found_supported_objects =
true;
1803 found_supported_objects =
true;
1809 if (!found_supported_objects) {
1818 ot->
name =
"Copy Modifier to Selected";
1819 ot->
description =
"Copy the modifier from the active object to all selected objects";
1820 ot->
idname =
"OBJECT_OT_modifier_copy_to_selected";
1875 ot->
name =
"Delete Higher Levels";
1876 ot->
description =
"Deletes the higher resolution mesh, potential loss of detail";
1877 ot->
idname =
"OBJECT_OT_multires_higher_levels_delete";
1899 "Create a new level using Catmull-Clark subdivisions"},
1904 "Create a new level using simple subdivisions"},
1909 "Create a new level using linear interpolation of the sculpted displacement"},
1951 ot->
name =
"Multires Subdivide";
1953 ot->
idname =
"OBJECT_OT_multires_subdivide";
1967 "How the mesh is going to be subdivided to create a new level");
1987 if (mmd->
lvl == 0) {
1993 if (selob->type ==
OB_MESH && selob != ob) {
2026 ot->
name =
"Multires Reshape";
2027 ot->
description =
"Copy vertex coordinates from other object";
2028 ot->
idname =
"OBJECT_OT_multires_reshape";
2110 ot->
name =
"Multires Save External";
2112 ot->
idname =
"OBJECT_OT_multires_external_save";
2155 ot->
name =
"Multires Pack External";
2156 ot->
description =
"Pack displacements from an external file";
2157 ot->
idname =
"OBJECT_OT_multires_external_pack";
2205 ot->
name =
"Multires Apply Base";
2206 ot->
description =
"Modify the base mesh to conform to the displaced mesh";
2207 ot->
idname =
"OBJECT_OT_multires_base_apply";
2236 if (new_levels == 0) {
2257 ot->
name =
"Unsubdivide";
2258 ot->
description =
"Rebuild a lower subdivision level of the current base mesh";
2259 ot->
idname =
"OBJECT_OT_multires_unsubdivide";
2288 if (new_levels == 0) {
2313 ot->
name =
"Rebuild Lower Subdivisions";
2315 "Rebuilds all possible subdivisions levels to generate a lower resolution base mesh";
2316 ot->
idname =
"OBJECT_OT_multires_rebuild_subdiv";
2354 return (ob !=
NULL &&
2414 ot->
name =
"Skin Root Mark";
2416 ot->
idname =
"OBJECT_OT_skin_root_mark";
2467 {
SKIN_LOOSE_MARK,
"MARK", 0,
"Mark",
"Mark selected vertices as loose"},
2468 {
SKIN_LOOSE_CLEAR,
"CLEAR", 0,
"Clear",
"Set selected vertices as not loose"},
2472 ot->
name =
"Skin Mark/Clear Loose";
2474 ot->
idname =
"OBJECT_OT_skin_loose_mark_clear";
2514 ot->
name =
"Skin Radii Equalize";
2515 ot->
description =
"Make skin radii of selected vertices equal on each axis";
2516 ot->
idname =
"OBJECT_OT_skin_radii_equalize";
2534 for (
int i = 0; i < emap[parent_v].
count; i++) {
2535 int endx = emap[parent_v].
indices[i];
2536 const MEdge *
e = &medge[endx];
2544 int v = (
e->v1 == parent_v ?
e->v2 :
e->v1);
2548 bone->
parent = parent_bone;
2549 if (parent_bone !=
NULL) {
2613 bone->
head[1] = 1.0f;
2617 if (emap[
v].
count >= 1) {
2676 ot->
name =
"Skin Armature Create";
2677 ot->
description =
"Create an armature that parallels the skin layout";
2678 ot->
idname =
"OBJECT_OT_skin_armature_create";
2753 ot->
name =
"Corrective Smooth Bind";
2754 ot->
description =
"Bind base pose in Corrective Smooth modifier";
2755 ot->
idname =
"OBJECT_OT_correctivesmooth_bind";
2828 ot->
name =
"Mesh Deform Bind";
2829 ot->
description =
"Bind mesh to cage in mesh deform modifier";
2830 ot->
idname =
"OBJECT_OT_meshdeform_bind";
2881 ot->
name =
"Explode Refresh";
2883 ot->
idname =
"OBJECT_OT_explode_refresh";
2931 return (
G.is_break);
3084 ot->
idname =
"OBJECT_OT_ocean_bake";
3160 ot->
name =
"Laplacian Deform Bind";
3161 ot->
description =
"Bind mesh to system in laplacian deform modifier";
3162 ot->
idname =
"OBJECT_OT_laplaciandeform_bind";
3227 ot->
name =
"Surface Deform Bind";
3228 ot->
description =
"Bind mesh to target in surface deform modifier";
3229 ot->
idname =
"OBJECT_OT_surfacedeform_bind";
typedef float(TangentPoint)[2]
AnimationEvalContext BKE_animsys_eval_context_construct(struct Depsgraph *depsgraph, float eval_time)
void BKE_animsys_evaluate_animdata(struct ID *id, struct AnimData *adt, const struct AnimationEvalContext *anim_eval_context, eAnimData_Recalc recalc, const bool flush_to_original)
struct Scene * CTX_data_scene(const bContext *C)
struct Object * CTX_data_edit_object(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
#define CTX_DATA_BEGIN(C, Type, instance, member)
PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
struct Object * CTX_data_active_object(const bContext *C)
struct Depsgraph * CTX_data_depsgraph_pointer(const bContext *C)
void CTX_wm_operator_poll_msg_set(struct bContext *C, const char *msg)
struct Main * CTX_data_main(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
float(* BKE_curve_nurbs_vert_coords_alloc(const struct ListBase *lb, int *r_vert_len))[3]
void BKE_curve_nurbs_vert_coords_apply(struct ListBase *lb, const float(*vert_coords)[3], const bool constrain_2d)
bool CustomData_free_layer_active(struct CustomData *data, int type, int totelem)
bool CustomData_has_layer(const struct CustomData *data, int type)
void CustomData_external_write(struct CustomData *data, struct ID *id, CustomDataMask mask, int totelem, int free)
const CustomData_MeshMasks CD_MASK_BAREMESH
void CustomData_external_add(struct CustomData *data, struct ID *id, int type, int totelem, const char *filename)
void * CustomData_get_layer(const struct CustomData *data, int type)
bool CustomData_external_test(struct CustomData *data, int type)
void * CustomData_bmesh_get(const struct CustomData *data, void *block, int type)
void * CustomData_add_layer(struct CustomData *data, int type, eCDAllocType alloctype, void *layer, int totelem)
void CustomData_external_remove(struct CustomData *data, struct ID *id, int type, int totelem)
int CustomData_get_offset(const struct CustomData *data, int type)
const CustomData_MeshMasks CD_MASK_MESH
display list (or rather multi purpose list) stuff.
void BKE_displist_make_curveTypes(struct Depsgraph *depsgraph, const struct Scene *scene, struct Object *ob, const bool for_render, const bool for_orco)
void BKE_displist_make_mball(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
BMEditMesh * BKE_editmesh_from_object(struct Object *ob)
Return the BMEditMesh for a given object.
struct PartDeflect * BKE_partdeflect_new(int type)
void BKE_gpencil_modifiers_calc(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
General operations for hairs.
void BKE_hair_data_update(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *object)
void BKE_keyblock_convert_from_mesh(struct Mesh *me, struct Key *key, struct KeyBlock *kb)
struct KeyBlock * BKE_keyblock_add(struct Key *key, const char *name)
struct Key * BKE_key_add(struct Main *bmain, struct ID *id)
void BKE_lattice_modifiers_calc(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
float(* BKE_lattice_vert_coords_alloc(const struct Lattice *lt, int *r_vert_len))[3]
void BKE_lattice_vert_coords_apply(struct Lattice *lt, const float(*vert_coords)[3])
void BKE_id_free(struct Main *bmain, void *idv)
const char * BKE_main_blendfile_path(const struct Main *bmain) ATTR_NONNULL()
struct Mesh * BKE_mesh_create_derived_for_modifier(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob_eval, struct ModifierData *md_eval, const bool build_shapekey_layers)
void BKE_mesh_ensure_skin_customdata(struct Mesh *me)
void BKE_mesh_nomain_to_mesh(struct Mesh *mesh_src, struct Mesh *mesh_dst, struct Object *ob, const struct CustomData_MeshMasks *mask, bool take_ownership)
void BKE_mesh_nomain_to_meshkey(struct Mesh *mesh_src, struct Mesh *mesh_dst, struct KeyBlock *kb)
void BKE_mesh_eval_delete(struct Mesh *mesh_eval)
void BKE_mesh_vert_edge_map_create(MeshElemMap **r_map, int **r_mem, const struct MEdge *medge, int totvert, int totedge)
struct Mesh * mesh_get_eval_deform(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, const struct CustomData_MeshMasks *dataMask)
struct Mesh * mesh_create_eval_final(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, const struct CustomData_MeshMasks *dataMask)
void BKE_modifier_copydata(struct ModifierData *md, struct ModifierData *target)
const ModifierTypeInfo * BKE_modifier_get_info(ModifierType type)
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)
@ eModifierTypeFlag_Single
@ eModifierTypeFlag_NoUserAdd
@ eModifierTypeFlag_RequiresOriginalData
void BKE_modifier_free(struct ModifierData *md)
const char * BKE_modifier_path_relbase(struct Main *bmain, struct Object *ob)
struct ModifierData * BKE_modifier_get_evaluated(struct Depsgraph *depsgraph, struct Object *object, struct ModifierData *md)
struct ModifierData * BKE_modifiers_findby_type(const struct Object *ob, ModifierType type)
bool BKE_modifier_is_same_topology(ModifierData *md)
void BKE_modifier_remove_from_list(struct Object *ob, struct ModifierData *md)
struct ModifierData * BKE_modifier_new(int type)
@ eModifierTypeType_OnlyDeform
@ eModifierTypeType_NonGeometrical
@ eModifierTypeType_Constructive
@ eModifierTypeType_Nonconstructive
struct ModifierData * BKE_modifiers_findby_name(const struct Object *ob, const char *name)
bool BKE_modifier_unique_name(struct ListBase *modifiers, struct ModifierData *md)
void multires_set_tot_level(struct Object *ob, struct MultiresModifierData *mmd, int lvl)
void multiresModifier_subdivide(struct Object *object, struct MultiresModifierData *mmd, const eMultiresSubdivideModeType mode)
void multiresModifier_del_levels(struct MultiresModifierData *mmd, struct Scene *scene, struct Object *object, int direction)
void multires_force_sculpt_rebuild(struct Object *object)
struct MultiresModifierData * find_multires_modifier_before(struct Scene *scene, struct ModifierData *lastmd)
void multiresModifier_set_levels_from_disps(struct MultiresModifierData *mmd, struct Object *ob)
void multiresModifier_base_apply(struct Depsgraph *depsgraph, struct Object *object, struct MultiresModifierData *mmd)
void multires_customdata_delete(struct Mesh *me)
bool multiresModifier_reshapeFromObject(struct Depsgraph *depsgraph, struct MultiresModifierData *mmd, struct Object *dst, struct Object *src)
int multiresModifier_rebuild_subdiv(struct Depsgraph *depsgraph, struct Object *object, struct MultiresModifierData *mmd, int rebuild_limit, bool switch_view_to_lower_level)
eMultiresSubdivideModeType
@ MULTIRES_SUBDIVIDE_LINEAR
@ MULTIRES_SUBDIVIDE_CATMULL_CLARK
@ MULTIRES_SUBDIVIDE_SIMPLE
bool multiresModifier_reshapeFromDeformModifier(struct Depsgraph *depsgraph, struct Object *ob, struct MultiresModifierData *mmd, struct ModifierData *deform_md)
General operations, lookup, etc. for blender objects.
bool BKE_object_support_modifier_type_check(const struct Object *ob, int modifier_type)
void BKE_object_modifier_set_active(struct Object *ob, struct ModifierData *md)
void BKE_object_link_modifiers(struct Object *ob_dst, const struct Object *ob_src)
struct Object * BKE_object_add(struct Main *bmain, struct ViewLayer *view_layer, int type, const char *name) ATTR_NONNULL(1
void BKE_object_transform_copy(struct Object *ob_tar, const struct Object *ob_src)
void BKE_object_free_derived_caches(struct Object *ob)
bool BKE_object_supports_modifiers(const struct Object *ob)
bool BKE_object_copy_modifier(struct Main *bmain, struct Scene *scene, struct Object *ob_dst, const struct Object *ob_src, struct ModifierData *md)
bool BKE_object_is_in_editmode(const struct Object *ob)
void BKE_object_eval_reset(struct Object *ob_eval)
void BKE_ocean_bake(struct Ocean *o, struct OceanCache *och, void(*update_cb)(void *, float progress, int *cancel), void *update_cb_data)
struct OceanCache * BKE_ocean_init_cache(const char *bakepath, const char *relbase, int start, int end, float wave_scale, float chop_amount, float foam_coverage, float foam_fade, int resolution)
void BKE_ocean_free_modifier_cache(struct OceanModifierData *omd)
struct Ocean * BKE_ocean_add(void)
void BKE_ocean_free(struct Ocean *oc)
void BKE_ocean_init_from_modifier(struct Ocean *ocean, struct OceanModifierData const *omd, const int resolution)
int BKE_sculpt_mask_layers_ensure(struct Object *ob, struct MultiresModifierData *mmd)
struct ParticleSystem * psys_eval_get(struct Depsgraph *depsgraph, struct Object *object, struct ParticleSystem *psys)
void object_remove_particle_system(struct Main *bmain, struct Scene *scene, struct Object *ob)
struct ModifierData * object_add_particle_system(struct Main *bmain, struct Scene *scene, struct Object *ob, const char *name)
void psys_apply_hair_lattice(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct ParticleSystem *psys)
struct ModifierData * object_copy_particle_system(struct Main *bmain, struct Scene *scene, struct Object *ob, const struct ParticleSystem *psys_orig)
General operations for point-clouds.
void BKE_pointcloud_data_update(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *object)
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
struct SoftBody * sbNew(struct Scene *scene)
void sbFree(struct Object *ob)
void BKE_volume_data_update(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *object)
#define BLI_BITMAP_TEST(_bitmap, _index)
#define BLI_BITMAP_ENABLE(_bitmap, _index)
#define BLI_BITMAP_NEW(_tot, _alloc_string)
GSet * BLI_gset_ptr_new(const char *info)
void BLI_gset_free(GSet *gs, GSetKeyFreeFP keyfreefp)
bool BLI_gset_add(GSet *gs, void *key)
void BLI_kdtree_nd_() free(KDTree *tree)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_insertlinkbefore(struct ListBase *listbase, void *vnextlink, void *vnewlink) ATTR_NONNULL(1)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_listbase_swaplinks(struct ListBase *listbase, void *vlinka, void *vlinkb) ATTR_NONNULL(1
MINLINE void copy_v3_v3(float r[3], const float a[3])
void BLI_path_rel(char *file, const char *relfile) ATTR_NONNULL()
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
struct Depsgraph Depsgraph
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
struct ViewLayer * DEG_get_input_view_layer(const Depsgraph *graph)
struct Object * DEG_get_evaluated_object(const struct Depsgraph *depsgraph, struct Object *object)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
@ ID_RECALC_COPY_ON_WRITE
#define ID_IS_LINKED(_id)
#define ID_REAL_USERS(id)
#define ID_IS_OVERRIDE_LIBRARY(_id)
@ eModifierFlag_OverrideLibrary_Local
@ MOD_LAPLACIANDEFORM_BIND
@ eModifierType_ParticleSystem
@ eModifierType_MeshDeform
@ eModifierType_LaplacianDeform
@ eModifierType_SurfaceDeform
@ eModifierType_CorrectiveSmooth
@ eModifierType_Collision
#define OBACT(_view_layer)
void ED_vgroup_vert_add(struct Object *ob, struct bDeformGroup *dg, int vertnum, float weight, int assignmode)
struct Object * ED_object_active_context(const struct bContext *C)
bool ED_operator_object_active_editable(struct bContext *C)
void ED_sculpt_undo_push_multires_mesh_begin(struct bContext *C, const char *str)
void ED_sculpt_undo_push_multires_mesh_end(struct bContext *C, const char *str)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
void MOD_nodes_init(Main *bmain, NodesModifierData *nmd)
StructRNA RNA_SkinModifier
StructRNA RNA_MultiresModifier
StructRNA RNA_LaplacianDeformModifier
StructRNA RNA_OceanModifier
StructRNA RNA_SurfaceDeformModifier
StructRNA RNA_CorrectiveSmoothModifier
StructRNA RNA_ExplodeModifier
StructRNA RNA_MeshDeformModifier
struct PointerRNA * UI_region_panel_custom_data_under_cursor(const struct bContext *C, const struct wmEvent *event)
@ WM_JOB_TYPE_OBJECT_SIM_OCEAN
#define WM_FILESEL_RELPATH
#define WM_FILESEL_FILEPATH
EditBone * ED_armature_ebone_add(bArmature *arm, const char *name)
void ED_armature_edit_free(struct bArmature *arm)
void ED_armature_from_edit(Main *bmain, bArmature *arm)
#define BM_ELEM_CD_GET_VOID_P(ele, offset)
#define BM_elem_flag_test(ele, hflag)
void BM_data_layer_free(BMesh *bm, CustomData *data, int type)
#define BM_ITER_ELEM(ele, iter, data, itype)
#define BM_ITER_MESH(ele, iter, bm, itype)
ATTR_WARN_UNUSED_RESULT BMesh * bm
BLI_INLINE BMVert * BM_edge_other_vert(BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMVert * v
const Depsgraph * depsgraph
Set< ComponentNode * > visited
DEGForeachIDComponentCallback callback
static const char * modifier_name[LS_MODIFIER_NUM]
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
void ED_mesh_deform_bind_callback(MeshDeformModifierData *mmd, Mesh *cagemesh, float *vertexcos, int totvert, float cagemat[4][4])
bool edit_modifier_invoke_properties_with_hover(bContext *C, wmOperator *op, const wmEvent *event, int *r_retval)
static int laplaciandeform_bind_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void OBJECT_OT_multires_higher_levels_delete(wmOperatorType *ot)
static bool modifier_apply_poll_ex(bContext *C, bool allow_shared)
static int modifier_convert_exec(bContext *C, wmOperator *op)
void OBJECT_OT_modifier_move_to_index(wmOperatorType *ot)
void OBJECT_OT_multires_unsubdivide(wmOperatorType *ot)
static int multires_external_save_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void OBJECT_OT_skin_armature_create(wmOperatorType *ot)
static int modifier_remove_exec(bContext *C, wmOperator *op)
static int ocean_bake_exec(bContext *C, wmOperator *op)
bool ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Depsgraph *depsgraph, ViewLayer *view_layer, Object *ob, ModifierData *md)
static int multires_unsubdivide_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int meshdeform_bind_exec(bContext *C, wmOperator *op)
void OBJECT_OT_modifier_set_active(wmOperatorType *ot)
bool ED_object_multires_update_totlevels_cb(Object *ob, void *totlevel_v)
void OBJECT_OT_ocean_bake(wmOperatorType *ot)
void OBJECT_OT_multires_rebuild_subdiv(wmOperatorType *ot)
static int correctivesmooth_bind_exec(bContext *C, wmOperator *op)
static int modifier_add_exec(bContext *C, wmOperator *op)
void OBJECT_OT_modifier_remove(wmOperatorType *ot)
void OBJECT_OT_modifier_convert(wmOperatorType *ot)
bool ED_object_modifier_copy(ReportList *UNUSED(reports), Main *bmain, Scene *scene, Object *ob, ModifierData *md)
static int modifier_remove_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void oceanbake_startjob(void *customdata, short *stop, short *do_update, float *progress)
static bool modifier_apply_obdata(ReportList *reports, Depsgraph *depsgraph, Scene *scene, Object *ob, ModifierData *md_eval)
static int multires_base_apply_exec(bContext *C, wmOperator *op)
void OBJECT_OT_meshdeform_bind(wmOperatorType *ot)
void OBJECT_OT_explode_refresh(wmOperatorType *ot)
static int modifier_apply_as_shapekey_exec(bContext *C, wmOperator *op)
static bool modifier_apply_shape(Main *bmain, ReportList *reports, Depsgraph *depsgraph, Scene *scene, Object *ob, ModifierData *md_eval)
static int multires_higher_levels_delete_exec(bContext *C, wmOperator *op)
static bool modifier_apply_as_shapekey_poll(bContext *C)
void OBJECT_OT_skin_loose_mark_clear(wmOperatorType *ot)
static int modifier_set_active_exec(bContext *C, wmOperator *op)
static Mesh * modifier_apply_create_mesh_for_modifier(Depsgraph *depsgraph, Object *object, ModifierData *md_eval, bool build_shapekey_layers)
static int multires_subdivide_exec(bContext *C, wmOperator *op)
static int multires_rebuild_subdiv_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static EnumPropertyItem prop_multires_subdivide_mode_type[]
void OBJECT_OT_multires_base_apply(wmOperatorType *ot)
void OBJECT_OT_modifier_move_up(wmOperatorType *ot)
static int modifier_move_up_exec(bContext *C, wmOperator *op)
static bool object_modifier_safe_to_delete(Main *bmain, Object *ob, ModifierData *exclude, ModifierType type)
void ED_object_modifier_clear(Main *bmain, Scene *scene, Object *ob)
void OBJECT_OT_modifier_copy(wmOperatorType *ot)
ModifierData * edit_modifier_property_get(wmOperator *op, Object *ob, int type)
static int meshdeform_bind_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static bool object_modifier_remove(Main *bmain, Scene *scene, Object *ob, ModifierData *md, bool *r_sort_depsgraph)
bool ED_object_iter_other(Main *bmain, Object *orig_ob, const bool include_orig, bool(*callback)(Object *ob, void *callback_data), void *callback_data)
void OBJECT_OT_skin_root_mark(wmOperatorType *ot)
void OBJECT_OT_laplaciandeform_bind(wmOperatorType *ot)
void OBJECT_OT_multires_external_pack(wmOperatorType *ot)
static bool multires_poll(bContext *C)
static int ocean_bake_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int modifier_set_active_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int modifier_move_up_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void OBJECT_OT_modifier_apply_as_shapekey(wmOperatorType *ot)
static int modifier_apply_exec_ex(bContext *C, wmOperator *op, int apply_as, bool keep_modifier)
static int multires_rebuild_subdiv_exec(bContext *C, wmOperator *op)
static int multires_reshape_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void edit_modifier_properties(wmOperatorType *ot)
static int explode_refresh_exec(bContext *C, wmOperator *op)
static int skin_armature_create_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int modifier_apply_exec(bContext *C, wmOperator *op)
void OBJECT_OT_modifier_apply(wmOperatorType *ot)
static Object * modifier_skin_armature_create(Depsgraph *depsgraph, Main *bmain, Object *skin_ob)
static int multires_base_apply_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static bool explode_poll(bContext *C)
static void edit_modifier_report_property(wmOperatorType *ot)
static int multires_subdivide_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static bool surfacedeform_bind_poll(bContext *C)
void OBJECT_OT_multires_reshape(wmOperatorType *ot)
void OBJECT_OT_modifier_copy_to_selected(wmOperatorType *ot)
static int oceanbake_breakjob(void *UNUSED(customdata))
void OBJECT_OT_skin_radii_equalize(wmOperatorType *ot)
static bool ocean_bake_poll(bContext *C)
static int skin_loose_mark_clear_exec(bContext *C, wmOperator *op)
static bool laplaciandeform_poll(bContext *C)
static int modifier_move_to_index_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int modifier_convert_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void ED_object_modifier_link(bContext *C, Object *ob_dst, Object *ob_src)
bool ED_object_modifier_apply(Main *bmain, ReportList *reports, Depsgraph *depsgraph, Scene *scene, Object *ob, ModifierData *md, int mode, bool keep_modifier)
static int skin_armature_create_exec(bContext *C, wmOperator *op)
static int surfacedeform_bind_exec(bContext *C, wmOperator *op)
static bool skin_poll(bContext *C)
bool ED_object_modifier_move_to_index(ReportList *reports, Object *ob, ModifierData *md, const int index)
static bool skin_edit_poll(bContext *C)
static int skin_radii_equalize_exec(bContext *C, wmOperator *UNUSED(op))
static bool correctivesmooth_poll(bContext *C)
static int skin_root_mark_exec(bContext *C, wmOperator *UNUSED(op))
static int explode_refresh_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
bool ED_object_modifier_move_down(ReportList *reports, Object *ob, ModifierData *md)
static int multires_external_pack_exec(bContext *C, wmOperator *UNUSED(op))
static bool modifier_apply_poll(bContext *C)
static int modifier_apply_as_shapekey_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int modifier_copy_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void OBJECT_OT_modifier_move_down(wmOperatorType *ot)
static bool object_has_modifier(const Object *ob, const ModifierData *exclude, ModifierType type)
static void oceanbake_endjob(void *customdata)
static int multires_reshape_exec(bContext *C, wmOperator *op)
static bool object_has_modifier_cb(Object *ob, void *data)
struct OceanBakeJob OceanBakeJob
bool edit_modifier_invoke_properties(bContext *C, wmOperator *op)
static int multires_unsubdivide_exec(bContext *C, wmOperator *op)
void OBJECT_OT_correctivesmooth_bind(wmOperatorType *ot)
void OBJECT_OT_modifier_add(wmOperatorType *ot)
static const EnumPropertyItem * modifier_add_itemf(bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free)
static void object_force_modifier_bind_simple_options(Depsgraph *depsgraph, Object *object, ModifierData *md)
bool ED_object_modifier_remove(ReportList *reports, Main *bmain, Scene *scene, Object *ob, ModifierData *md)
static int multires_higher_levels_delete_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static void oceanbake_free(void *customdata)
bool edit_modifier_poll_generic(bContext *C, StructRNA *rna_type, int obtype_flag, const bool is_editmode_allowed, const bool is_liboverride_allowed)
static int modifier_copy_to_selected_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static bool modifier_copy_to_selected_poll(bContext *C)
static int multires_external_save_exec(bContext *C, wmOperator *op)
static int modifier_move_to_index_exec(bContext *C, wmOperator *op)
static void object_force_modifier_update_for_bind(Depsgraph *depsgraph, Object *ob)
static int modifier_apply_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int modifier_move_down_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int correctivesmooth_bind_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int modifier_copy_to_selected_exec(bContext *C, wmOperator *op)
void ED_object_modifier_copy_to_object(bContext *C, Object *ob_dst, Object *ob_src, ModifierData *md)
void OBJECT_OT_multires_subdivide(wmOperatorType *ot)
static int surfacedeform_bind_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static bool meshdeform_poll(bContext *C)
static bool edit_modifier_poll(bContext *C)
void OBJECT_OT_surfacedeform_bind(wmOperatorType *ot)
static int laplaciandeform_bind_exec(bContext *C, wmOperator *op)
static void skin_root_clear(BMVert *bm_vert, GSet *visited, const int cd_vert_skin_offset)
static void skin_armature_bone_create(Object *skin_ob, MVert *mvert, MEdge *medge, bArmature *arm, BLI_bitmap *edges_visited, const MeshElemMap *emap, EditBone *parent_bone, int parent_v)
static void oceanbake_update(void *customdata, float progress, int *cancel)
static int modifier_copy_exec(bContext *C, wmOperator *op)
static bool edit_modifier_liboverride_allowed_poll(bContext *C)
ModifierData * ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *scene, Object *ob, const char *name, int type)
bool ED_object_modifier_move_up(ReportList *reports, Object *ob, ModifierData *md)
void OBJECT_OT_multires_external_save(wmOperatorType *ot)
static void modifier_skin_customdata_delete(struct Object *ob)
static int modifier_move_down_exec(bContext *C, wmOperator *op)
static char * modifier_apply_as_shapekey_get_description(struct bContext *UNUSED(C), struct wmOperatorType *UNUSED(op), struct PointerRNA *values)
bool RNA_struct_is_a(const StructRNA *type, const StructRNA *srna)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
int RNA_int_get(PointerRNA *ptr, const char *name)
bool RNA_pointer_is_null(const PointerRNA *ptr)
bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
void RNA_enum_item_add(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
void RNA_def_enum_funcs(PropertyRNA *prop, EnumPropertyItemFunc itemfunc)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
const EnumPropertyItem rna_enum_object_modifier_type_items[]
unsigned int bind_coords_num
CorrectiveSmoothDeltaCache delta_cache
struct BMEditMesh * edit_mesh
struct CustomData pdata ldata
struct CustomData vdata edata fdata
struct ModifierData * next
struct ModifierData * prev
bool(* isDisabled)(const struct Scene *scene, struct ModifierData *md, bool userRenderParams)
void(* deformVerts)(struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Mesh *mesh, float(*vertexCos)[3], int numVerts)
struct OceanModifierData * omd
struct OceanCache * oceancache
struct ParticleCacheKey ** childcache
struct ParticleCacheKey ** pathcache
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
char *(* get_description)(struct bContext *C, struct wmOperatorType *, struct PointerRNA *)
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
struct wmOperatorType * type
ccl_device_inline int mod(int x, int m)
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_event_add_fileselect(bContext *C, wmOperator *op)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job)
wmJob * WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag, int job_type)
void WM_jobs_callbacks(wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *))
void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void(*free)(void *))
void WM_jobs_timer(wmJob *wm_job, double timestep, unsigned int note, unsigned int endnote)
void WM_operator_properties_filesel(wmOperatorType *ot, int filter, short type, short action, short flag, short display, short sort)
int WM_menu_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))