Modifiers: add 'cd_flag' parameter to their ID looping callbacks, needed
since some IDs (objects) are not 'refcounted' while others (textures) are... Partial merge from id-remap branch.
This commit is contained in:
@@ -105,8 +105,8 @@ typedef enum {
|
|||||||
} ModifierTypeFlag;
|
} ModifierTypeFlag;
|
||||||
|
|
||||||
/* IMPORTANT! Keep ObjectWalkFunc and IDWalkFunc signatures compatible. */
|
/* IMPORTANT! Keep ObjectWalkFunc and IDWalkFunc signatures compatible. */
|
||||||
typedef void (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin);
|
typedef void (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin, int cd_flag);
|
||||||
typedef void (*IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin);
|
typedef void (*IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin, int cd_flag);
|
||||||
typedef void (*TexWalkFunc)(void *userData, struct Object *ob, struct ModifierData *md, const char *propname);
|
typedef void (*TexWalkFunc)(void *userData, struct Object *ob, struct ModifierData *md, const char *propname);
|
||||||
|
|
||||||
typedef enum ModifierApplyFlag {
|
typedef enum ModifierApplyFlag {
|
||||||
|
@@ -2520,7 +2520,8 @@ void DAG_on_visible_update(Main *bmain, const bool do_time)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dag_id_flush_update__isDependentTexture(void *userData, Object *UNUSED(ob), ID **idpoin)
|
static void dag_id_flush_update__isDependentTexture(
|
||||||
|
void *userData, Object *UNUSED(ob), ID **idpoin, int UNUSED(cd_flag))
|
||||||
{
|
{
|
||||||
struct { ID *id; bool is_dependent; } *data = userData;
|
struct { ID *id; bool is_dependent; } *data = userData;
|
||||||
|
|
||||||
|
@@ -103,11 +103,11 @@ typedef struct LibraryForeachIDData {
|
|||||||
void *user_data;
|
void *user_data;
|
||||||
} LibraryForeachIDData;
|
} LibraryForeachIDData;
|
||||||
|
|
||||||
static void library_foreach_modifiersForeachIDLink(void *user_data, Object *UNUSED(object),
|
static void library_foreach_modifiersForeachIDLink(
|
||||||
ID **id_pointer)
|
void *user_data, Object *UNUSED(object), ID **id_pointer, int cd_flag)
|
||||||
{
|
{
|
||||||
LibraryForeachIDData *data = (LibraryForeachIDData *) user_data;
|
LibraryForeachIDData *data = (LibraryForeachIDData *) user_data;
|
||||||
FOREACH_CALLBACK_INVOKE_ID_PP(data->self_id, id_pointer, data->flag, data->callback, data->user_data, IDWALK_NOP);
|
FOREACH_CALLBACK_INVOKE_ID_PP(data->self_id, id_pointer, data->flag, data->callback, data->user_data, cd_flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void library_foreach_constraintObjectLooper(bConstraint *UNUSED(con), ID **id_pointer,
|
static void library_foreach_constraintObjectLooper(bConstraint *UNUSED(con), ID **id_pointer,
|
||||||
@@ -136,7 +136,6 @@ static void library_foreach_animationData(LibraryForeachIDData *data, AnimData *
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void library_foreach_mtex(LibraryForeachIDData *data, MTex *mtex)
|
static void library_foreach_mtex(LibraryForeachIDData *data, MTex *mtex)
|
||||||
{
|
{
|
||||||
FOREACH_CALLBACK_INVOKE(data->self_id, mtex->object, data->flag, data->callback, data->user_data, IDWALK_NOP);
|
FOREACH_CALLBACK_INVOKE(data->self_id, mtex->object, data->flag, data->callback, data->user_data, IDWALK_NOP);
|
||||||
|
@@ -215,8 +215,7 @@ void modifiers_clearErrors(Object *ob)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void modifiers_foreachObjectLink(Object *ob, ObjectWalkFunc walk,
|
void modifiers_foreachObjectLink(Object *ob, ObjectWalkFunc walk, void *userData)
|
||||||
void *userData)
|
|
||||||
{
|
{
|
||||||
ModifierData *md = ob->modifiers.first;
|
ModifierData *md = ob->modifiers.first;
|
||||||
|
|
||||||
|
@@ -467,7 +467,7 @@ void BKE_object_free(Object *ob)
|
|||||||
BKE_object_free_ex(ob, true);
|
BKE_object_free_ex(ob, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void unlink_object__unlinkModifierLinks(void *userData, Object *ob, Object **obpoin)
|
static void unlink_object__unlinkModifierLinks(void *userData, Object *ob, Object **obpoin, int UNUSED(cd_flag))
|
||||||
{
|
{
|
||||||
Object *unlinkOb = userData;
|
Object *unlinkOb = userData;
|
||||||
|
|
||||||
@@ -1574,8 +1574,7 @@ Object *BKE_object_copy(Object *ob)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void extern_local_object__modifiersForeachIDLink(
|
static void extern_local_object__modifiersForeachIDLink(
|
||||||
void *UNUSED(userData), Object *UNUSED(ob),
|
void *UNUSED(userData), Object *UNUSED(ob), ID **idpoin, int UNUSED(cd_flag))
|
||||||
ID **idpoin)
|
|
||||||
{
|
{
|
||||||
if (*idpoin) {
|
if (*idpoin) {
|
||||||
/* intentionally omit ID_OB */
|
/* intentionally omit ID_OB */
|
||||||
|
@@ -124,6 +124,7 @@
|
|||||||
#include "BKE_global.h" // for G
|
#include "BKE_global.h" // for G
|
||||||
#include "BKE_group.h"
|
#include "BKE_group.h"
|
||||||
#include "BKE_library.h" // for which_libbase
|
#include "BKE_library.h" // for which_libbase
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_idcode.h"
|
#include "BKE_idcode.h"
|
||||||
#include "BKE_material.h"
|
#include "BKE_material.h"
|
||||||
#include "BKE_main.h" // for Main
|
#include "BKE_main.h" // for Main
|
||||||
@@ -4589,15 +4590,15 @@ static void direct_link_latt(FileData *fd, Lattice *lt)
|
|||||||
|
|
||||||
/* ************ READ OBJECT ***************** */
|
/* ************ READ OBJECT ***************** */
|
||||||
|
|
||||||
static void lib_link_modifiers__linkModifiers(void *userData, Object *ob,
|
static void lib_link_modifiers__linkModifiers(
|
||||||
ID **idpoin)
|
void *userData, Object *ob, ID **idpoin, int cd_flag)
|
||||||
{
|
{
|
||||||
FileData *fd = userData;
|
FileData *fd = userData;
|
||||||
|
|
||||||
*idpoin = newlibadr(fd, ob->id.lib, *idpoin);
|
*idpoin = newlibadr(fd, ob->id.lib, *idpoin);
|
||||||
/* hardcoded bad exception; non-object modifier data gets user count (texture, displace) */
|
if (cd_flag & IDWALK_USER) {
|
||||||
if (*idpoin && GS((*idpoin)->name)!=ID_OB)
|
|
||||||
(*idpoin)->us++;
|
(*idpoin)->us++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
static void lib_link_modifiers(FileData *fd, Object *ob)
|
static void lib_link_modifiers(FileData *fd, Object *ob)
|
||||||
{
|
{
|
||||||
@@ -8999,8 +9000,8 @@ static void expand_armature(FileData *fd, Main *mainvar, bArmature *arm)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void expand_object_expandModifiers(void *userData, Object *UNUSED(ob),
|
static void expand_object_expandModifiers(
|
||||||
ID **idpoin)
|
void *userData, Object *UNUSED(ob), ID **idpoin, int UNUSED(cd_flag))
|
||||||
{
|
{
|
||||||
struct { FileData *fd; Main *mainvar; } *data= userData;
|
struct { FileData *fd; Main *mainvar; } *data= userData;
|
||||||
|
|
||||||
|
@@ -45,6 +45,7 @@
|
|||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_lattice.h"
|
#include "BKE_lattice.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
|
|
||||||
#include "MEM_guardedalloc.h"
|
#include "MEM_guardedalloc.h"
|
||||||
@@ -95,7 +96,7 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
ArmatureModifierData *amd = (ArmatureModifierData *) md;
|
ArmatureModifierData *amd = (ArmatureModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &amd->object);
|
walk(userData, ob, &amd->object, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -48,6 +48,7 @@
|
|||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_displist.h"
|
#include "BKE_displist.h"
|
||||||
#include "BKE_curve.h"
|
#include "BKE_curve.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
|
|
||||||
#include "MOD_util.h"
|
#include "MOD_util.h"
|
||||||
@@ -94,10 +95,10 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
ArrayModifierData *amd = (ArrayModifierData *) md;
|
ArrayModifierData *amd = (ArrayModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &amd->start_cap);
|
walk(userData, ob, &amd->start_cap, IDWALK_NOP);
|
||||||
walk(userData, ob, &amd->end_cap);
|
walk(userData, ob, &amd->end_cap, IDWALK_NOP);
|
||||||
walk(userData, ob, &amd->curve_ob);
|
walk(userData, ob, &amd->curve_ob, IDWALK_NOP);
|
||||||
walk(userData, ob, &amd->offset_ob);
|
walk(userData, ob, &amd->offset_ob, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -40,6 +40,7 @@
|
|||||||
#include "BLI_utildefines.h"
|
#include "BLI_utildefines.h"
|
||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
|
|
||||||
#include "depsgraph_private.h"
|
#include "depsgraph_private.h"
|
||||||
@@ -69,7 +70,7 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
BooleanModifierData *bmd = (BooleanModifierData *) md;
|
BooleanModifierData *bmd = (BooleanModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &bmd->object);
|
walk(userData, ob, &bmd->object, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -42,6 +42,7 @@
|
|||||||
|
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
#include "BKE_DerivedMesh.h"
|
#include "BKE_DerivedMesh.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -101,7 +102,7 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
CastModifierData *cmd = (CastModifierData *) md;
|
CastModifierData *cmd = (CastModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &cmd->object);
|
walk(userData, ob, &cmd->object, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -49,6 +49,7 @@
|
|||||||
#include "BKE_effect.h"
|
#include "BKE_effect.h"
|
||||||
#include "BKE_global.h"
|
#include "BKE_global.h"
|
||||||
#include "BKE_key.h"
|
#include "BKE_key.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_pointcache.h"
|
#include "BKE_pointcache.h"
|
||||||
|
|
||||||
@@ -241,11 +242,11 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||||||
ClothModifierData *clmd = (ClothModifierData *) md;
|
ClothModifierData *clmd = (ClothModifierData *) md;
|
||||||
|
|
||||||
if (clmd->coll_parms) {
|
if (clmd->coll_parms) {
|
||||||
walk(userData, ob, (ID **)&clmd->coll_parms->group);
|
walk(userData, ob, (ID **)&clmd->coll_parms->group, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (clmd->sim_parms && clmd->sim_parms->effector_weights) {
|
if (clmd->sim_parms && clmd->sim_parms->effector_weights) {
|
||||||
walk(userData, ob, (ID **)&clmd->sim_parms->effector_weights->group);
|
walk(userData, ob, (ID **)&clmd->sim_parms->effector_weights->group, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -42,6 +42,7 @@
|
|||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_lattice.h"
|
#include "BKE_lattice.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
|
|
||||||
#include "depsgraph_private.h"
|
#include "depsgraph_private.h"
|
||||||
@@ -88,7 +89,7 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
CurveModifierData *cmd = (CurveModifierData *) md;
|
CurveModifierData *cmd = (CurveModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &cmd->object);
|
walk(userData, ob, &cmd->object, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -41,6 +41,7 @@
|
|||||||
#include "BKE_data_transfer.h"
|
#include "BKE_data_transfer.h"
|
||||||
#include "BKE_DerivedMesh.h"
|
#include "BKE_DerivedMesh.h"
|
||||||
#include "BKE_library.h"
|
#include "BKE_library.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_mesh_mapping.h"
|
#include "BKE_mesh_mapping.h"
|
||||||
#include "BKE_mesh_remap.h"
|
#include "BKE_mesh_remap.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
@@ -123,7 +124,7 @@ static void foreachObjectLink(
|
|||||||
ObjectWalkFunc walk, void *userData)
|
ObjectWalkFunc walk, void *userData)
|
||||||
{
|
{
|
||||||
DataTransferModifierData *dtmd = (DataTransferModifierData *) md;
|
DataTransferModifierData *dtmd = (DataTransferModifierData *) md;
|
||||||
walk(userData, ob, &dtmd->ob_source);
|
walk(userData, ob, &dtmd->ob_source, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_library.h"
|
#include "BKE_library.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_mesh.h"
|
#include "BKE_mesh.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_texture.h"
|
#include "BKE_texture.h"
|
||||||
@@ -129,7 +130,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
|
|||||||
{
|
{
|
||||||
DisplaceModifierData *dmd = (DisplaceModifierData *) md;
|
DisplaceModifierData *dmd = (DisplaceModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &dmd->map_object);
|
walk(userData, ob, &dmd->map_object, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||||
@@ -137,7 +138,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||||||
{
|
{
|
||||||
DisplaceModifierData *dmd = (DisplaceModifierData *) md;
|
DisplaceModifierData *dmd = (DisplaceModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, (ID **)&dmd->texture);
|
walk(userData, ob, (ID **)&dmd->texture, IDWALK_USER);
|
||||||
|
|
||||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||||
}
|
}
|
||||||
|
@@ -35,6 +35,7 @@
|
|||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_dynamicpaint.h"
|
#include "BKE_dynamicpaint.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
|
|
||||||
#include "depsgraph_private.h"
|
#include "depsgraph_private.h"
|
||||||
@@ -170,12 +171,12 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||||||
DynamicPaintSurface *surface = pmd->canvas->surfaces.first;
|
DynamicPaintSurface *surface = pmd->canvas->surfaces.first;
|
||||||
|
|
||||||
for (; surface; surface = surface->next) {
|
for (; surface; surface = surface->next) {
|
||||||
walk(userData, ob, (ID **)&surface->brush_group);
|
walk(userData, ob, (ID **)&surface->brush_group, IDWALK_NOP);
|
||||||
walk(userData, ob, (ID **)&surface->init_texture);
|
walk(userData, ob, (ID **)&surface->init_texture, IDWALK_USER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pmd->brush) {
|
if (pmd->brush) {
|
||||||
walk(userData, ob, (ID **)&pmd->brush->mat);
|
walk(userData, ob, (ID **)&pmd->brush->mat, IDWALK_USER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
#include "BKE_action.h"
|
#include "BKE_action.h"
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
#include "BKE_colortools.h"
|
#include "BKE_colortools.h"
|
||||||
@@ -107,7 +108,7 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
HookModifierData *hmd = (HookModifierData *) md;
|
HookModifierData *hmd = (HookModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &hmd->object);
|
walk(userData, ob, &hmd->object, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_lattice.h"
|
#include "BKE_lattice.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
|
|
||||||
#include "depsgraph_private.h"
|
#include "depsgraph_private.h"
|
||||||
@@ -87,7 +88,7 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
LatticeModifierData *lmd = (LatticeModifierData *) md;
|
LatticeModifierData *lmd = (LatticeModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &lmd->object);
|
walk(userData, ob, &lmd->object, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -46,6 +46,7 @@
|
|||||||
|
|
||||||
#include "BKE_action.h" /* BKE_pose_channel_find_name */
|
#include "BKE_action.h" /* BKE_pose_channel_find_name */
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
|
|
||||||
@@ -73,7 +74,7 @@ static void foreachObjectLink(
|
|||||||
ObjectWalkFunc walk, void *userData)
|
ObjectWalkFunc walk, void *userData)
|
||||||
{
|
{
|
||||||
MaskModifierData *mmd = (MaskModifierData *)md;
|
MaskModifierData *mmd = (MaskModifierData *)md;
|
||||||
walk(userData, ob, &mmd->ob_arm);
|
walk(userData, ob, &mmd->ob_arm, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -42,6 +42,7 @@
|
|||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_global.h"
|
#include "BKE_global.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
#include "BKE_editmesh.h"
|
#include "BKE_editmesh.h"
|
||||||
@@ -118,7 +119,7 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
MeshDeformModifierData *mmd = (MeshDeformModifierData *) md;
|
MeshDeformModifierData *mmd = (MeshDeformModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &mmd->object);
|
walk(userData, ob, &mmd->object, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#include "BLI_math.h"
|
#include "BLI_math.h"
|
||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
|
|
||||||
@@ -71,7 +72,7 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
MirrorModifierData *mmd = (MirrorModifierData *) md;
|
MirrorModifierData *mmd = (MirrorModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &mmd->mirror_ob);
|
walk(userData, ob, &mmd->mirror_ob, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -38,6 +38,7 @@
|
|||||||
#include "BLI_bitmap.h"
|
#include "BLI_bitmap.h"
|
||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_mesh.h"
|
#include "BKE_mesh.h"
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
|
|
||||||
@@ -450,7 +451,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
|
|||||||
{
|
{
|
||||||
NormalEditModifierData *smd = (NormalEditModifierData *) md;
|
NormalEditModifierData *smd = (NormalEditModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &smd->target);
|
walk(userData, ob, &smd->target, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
|
static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
|
||||||
|
@@ -46,6 +46,7 @@
|
|||||||
#include "BKE_effect.h"
|
#include "BKE_effect.h"
|
||||||
#include "BKE_global.h"
|
#include "BKE_global.h"
|
||||||
#include "BKE_lattice.h"
|
#include "BKE_lattice.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_particle.h"
|
#include "BKE_particle.h"
|
||||||
#include "BKE_pointcache.h"
|
#include "BKE_pointcache.h"
|
||||||
@@ -144,7 +145,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
|
|||||||
{
|
{
|
||||||
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
|
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &pimd->ob);
|
walk(userData, ob, &pimd->ob, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int particle_skip(ParticleInstanceModifierData *pimd, ParticleSystem *psys, int p)
|
static int particle_skip(ParticleInstanceModifierData *pimd, ParticleSystem *psys, int p)
|
||||||
|
@@ -44,6 +44,7 @@
|
|||||||
#include "BLI_utildefines.h"
|
#include "BLI_utildefines.h"
|
||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
|
|
||||||
#include "depsgraph_private.h"
|
#include "depsgraph_private.h"
|
||||||
#include "DEG_depsgraph_build.h"
|
#include "DEG_depsgraph_build.h"
|
||||||
@@ -1094,7 +1095,7 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
ScrewModifierData *ltmd = (ScrewModifierData *) md;
|
ScrewModifierData *ltmd = (ScrewModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, <md->ob_axis);
|
walk(userData, ob, <md->ob_axis, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
ModifierTypeInfo modifierType_Screw = {
|
ModifierTypeInfo modifierType_Screw = {
|
||||||
|
@@ -41,6 +41,7 @@
|
|||||||
#include "BLI_utildefines.h"
|
#include "BLI_utildefines.h"
|
||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_shrinkwrap.h"
|
#include "BKE_shrinkwrap.h"
|
||||||
|
|
||||||
@@ -100,8 +101,8 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
|
|||||||
{
|
{
|
||||||
ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *) md;
|
ShrinkwrapModifierData *smd = (ShrinkwrapModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &smd->target);
|
walk(userData, ob, &smd->target, IDWALK_NOP);
|
||||||
walk(userData, ob, &smd->auxTarget);
|
walk(userData, ob, &smd->auxTarget, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void deformVerts(ModifierData *md, Object *ob,
|
static void deformVerts(ModifierData *md, Object *ob,
|
||||||
|
@@ -40,6 +40,7 @@
|
|||||||
#include "BLI_utildefines.h"
|
#include "BLI_utildefines.h"
|
||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
|
|
||||||
@@ -284,7 +285,7 @@ static void foreachObjectLink(
|
|||||||
ObjectWalkFunc walk, void *userData)
|
ObjectWalkFunc walk, void *userData)
|
||||||
{
|
{
|
||||||
SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md;
|
SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md;
|
||||||
walk(userData, ob, &smd->origin);
|
walk(userData, ob, &smd->origin, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
static void updateDepgraph(ModifierData *md, DagForest *forest,
|
||||||
|
@@ -48,6 +48,7 @@
|
|||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_library.h"
|
#include "BKE_library.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_main.h"
|
#include "BKE_main.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_smoke.h"
|
#include "BKE_smoke.h"
|
||||||
@@ -339,17 +340,17 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||||||
SmokeModifierData *smd = (SmokeModifierData *) md;
|
SmokeModifierData *smd = (SmokeModifierData *) md;
|
||||||
|
|
||||||
if (smd->type == MOD_SMOKE_TYPE_DOMAIN && smd->domain) {
|
if (smd->type == MOD_SMOKE_TYPE_DOMAIN && smd->domain) {
|
||||||
walk(userData, ob, (ID **)&smd->domain->coll_group);
|
walk(userData, ob, (ID **)&smd->domain->coll_group, IDWALK_NOP);
|
||||||
walk(userData, ob, (ID **)&smd->domain->fluid_group);
|
walk(userData, ob, (ID **)&smd->domain->fluid_group, IDWALK_NOP);
|
||||||
walk(userData, ob, (ID **)&smd->domain->eff_group);
|
walk(userData, ob, (ID **)&smd->domain->eff_group, IDWALK_NOP);
|
||||||
|
|
||||||
if (smd->domain->effector_weights) {
|
if (smd->domain->effector_weights) {
|
||||||
walk(userData, ob, (ID **)&smd->domain->effector_weights->group);
|
walk(userData, ob, (ID **)&smd->domain->effector_weights->group, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (smd->type == MOD_SMOKE_TYPE_FLOW && smd->flow) {
|
if (smd->type == MOD_SMOKE_TYPE_FLOW && smd->flow) {
|
||||||
walk(userData, ob, (ID **)&smd->flow->noise_texture);
|
walk(userData, ob, (ID **)&smd->flow->noise_texture, IDWALK_USER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -45,6 +45,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "BKE_camera.h"
|
#include "BKE_camera.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_mesh.h"
|
#include "BKE_mesh.h"
|
||||||
#include "BKE_DerivedMesh.h"
|
#include "BKE_DerivedMesh.h"
|
||||||
|
|
||||||
@@ -91,7 +92,7 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < MOD_UVPROJECT_MAXPROJECTORS; ++i)
|
for (i = 0; i < MOD_UVPROJECT_MAXPROJECTORS; ++i)
|
||||||
walk(userData, ob, &umd->projectors[i]);
|
walk(userData, ob, &umd->projectors[i], IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||||
@@ -99,7 +100,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||||||
{
|
{
|
||||||
UVProjectModifierData *umd = (UVProjectModifierData *) md;
|
UVProjectModifierData *umd = (UVProjectModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, (ID **)&umd->image);
|
walk(userData, ob, (ID **)&umd->image, IDWALK_USER);
|
||||||
|
|
||||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||||
}
|
}
|
||||||
|
@@ -36,6 +36,7 @@
|
|||||||
#include "BKE_action.h" /* BKE_pose_channel_find_name */
|
#include "BKE_action.h" /* BKE_pose_channel_find_name */
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
|
|
||||||
#include "depsgraph_private.h"
|
#include "depsgraph_private.h"
|
||||||
@@ -200,8 +201,8 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
|
|||||||
{
|
{
|
||||||
UVWarpModifierData *umd = (UVWarpModifierData *) md;
|
UVWarpModifierData *umd = (UVWarpModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &umd->object_dst);
|
walk(userData, ob, &umd->object_dst, IDWALK_NOP);
|
||||||
walk(userData, ob, &umd->object_src);
|
walk(userData, ob, &umd->object_src, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void uv_warp_deps_object_bone(DagForest *forest, DagNode *obNode,
|
static void uv_warp_deps_object_bone(DagForest *forest, DagNode *obNode,
|
||||||
|
@@ -36,6 +36,7 @@
|
|||||||
#include "BLI_utildefines.h"
|
#include "BLI_utildefines.h"
|
||||||
|
|
||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
#include "BKE_texture.h"
|
#include "BKE_texture.h"
|
||||||
@@ -115,16 +116,16 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
|
|||||||
{
|
{
|
||||||
WarpModifierData *wmd = (WarpModifierData *) md;
|
WarpModifierData *wmd = (WarpModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &wmd->object_from);
|
walk(userData, ob, &wmd->object_from, IDWALK_NOP);
|
||||||
walk(userData, ob, &wmd->object_to);
|
walk(userData, ob, &wmd->object_to, IDWALK_NOP);
|
||||||
walk(userData, ob, &wmd->map_object);
|
walk(userData, ob, &wmd->map_object, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
|
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
|
||||||
{
|
{
|
||||||
WarpModifierData *wmd = (WarpModifierData *) md;
|
WarpModifierData *wmd = (WarpModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, (ID **)&wmd->texture);
|
walk(userData, ob, (ID **)&wmd->texture, IDWALK_USER);
|
||||||
|
|
||||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||||
}
|
}
|
||||||
|
@@ -45,6 +45,7 @@
|
|||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
#include "BKE_DerivedMesh.h"
|
#include "BKE_DerivedMesh.h"
|
||||||
#include "BKE_library.h"
|
#include "BKE_library.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_scene.h"
|
#include "BKE_scene.h"
|
||||||
#include "BKE_texture.h"
|
#include "BKE_texture.h"
|
||||||
|
|
||||||
@@ -110,8 +111,8 @@ static void foreachObjectLink(
|
|||||||
{
|
{
|
||||||
WaveModifierData *wmd = (WaveModifierData *) md;
|
WaveModifierData *wmd = (WaveModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, &wmd->objectcenter);
|
walk(userData, ob, &wmd->objectcenter, IDWALK_NOP);
|
||||||
walk(userData, ob, &wmd->map_object);
|
walk(userData, ob, &wmd->map_object, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||||
@@ -119,7 +120,7 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
|||||||
{
|
{
|
||||||
WaveModifierData *wmd = (WaveModifierData *) md;
|
WaveModifierData *wmd = (WaveModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, (ID **)&wmd->texture);
|
walk(userData, ob, (ID **)&wmd->texture, IDWALK_USER);
|
||||||
|
|
||||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||||
}
|
}
|
||||||
|
@@ -42,6 +42,7 @@
|
|||||||
#include "BKE_colortools.h" /* CurveMapping. */
|
#include "BKE_colortools.h" /* CurveMapping. */
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
#include "BKE_library.h"
|
#include "BKE_library.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_texture.h" /* Texture masking. */
|
#include "BKE_texture.h" /* Texture masking. */
|
||||||
|
|
||||||
@@ -125,14 +126,14 @@ static bool dependsOnTime(ModifierData *md)
|
|||||||
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
|
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
|
||||||
{
|
{
|
||||||
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md;
|
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md;
|
||||||
walk(userData, ob, &wmd->mask_tex_map_obj);
|
walk(userData, ob, &wmd->mask_tex_map_obj, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
|
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
|
||||||
{
|
{
|
||||||
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md;
|
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, (ID **)&wmd->mask_texture);
|
walk(userData, ob, (ID **)&wmd->mask_texture, IDWALK_USER);
|
||||||
|
|
||||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||||
}
|
}
|
||||||
|
@@ -39,6 +39,7 @@
|
|||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
#include "BKE_library.h"
|
#include "BKE_library.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_texture.h" /* Texture masking. */
|
#include "BKE_texture.h" /* Texture masking. */
|
||||||
|
|
||||||
@@ -174,14 +175,14 @@ static bool dependsOnTime(ModifierData *md)
|
|||||||
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
|
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
|
||||||
{
|
{
|
||||||
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md;
|
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md;
|
||||||
walk(userData, ob, &wmd->mask_tex_map_obj);
|
walk(userData, ob, &wmd->mask_tex_map_obj, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
|
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
|
||||||
{
|
{
|
||||||
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md;
|
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, (ID **)&wmd->mask_texture);
|
walk(userData, ob, (ID **)&wmd->mask_texture, IDWALK_USER);
|
||||||
|
|
||||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||||
}
|
}
|
||||||
|
@@ -42,6 +42,7 @@
|
|||||||
#include "BKE_cdderivedmesh.h"
|
#include "BKE_cdderivedmesh.h"
|
||||||
#include "BKE_deform.h"
|
#include "BKE_deform.h"
|
||||||
#include "BKE_library.h"
|
#include "BKE_library.h"
|
||||||
|
#include "BKE_library_query.h"
|
||||||
#include "BKE_modifier.h"
|
#include "BKE_modifier.h"
|
||||||
#include "BKE_texture.h" /* Texture masking. */
|
#include "BKE_texture.h" /* Texture masking. */
|
||||||
|
|
||||||
@@ -290,15 +291,15 @@ static bool dependsOnTime(ModifierData *md)
|
|||||||
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
|
static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
|
||||||
{
|
{
|
||||||
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
|
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
|
||||||
walk(userData, ob, &wmd->proximity_ob_target);
|
walk(userData, ob, &wmd->proximity_ob_target, IDWALK_NOP);
|
||||||
walk(userData, ob, &wmd->mask_tex_map_obj);
|
walk(userData, ob, &wmd->mask_tex_map_obj, IDWALK_NOP);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
|
static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
|
||||||
{
|
{
|
||||||
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
|
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
|
||||||
|
|
||||||
walk(userData, ob, (ID **)&wmd->mask_texture);
|
walk(userData, ob, (ID **)&wmd->mask_texture, IDWALK_USER);
|
||||||
|
|
||||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user