Changeset View
Changeset View
Standalone View
Standalone View
source/blender/modifiers/intern/MOD_dynamicpaint.c
| Show All 29 Lines | |||||
| #include "DNA_dynamicpaint_types.h" | #include "DNA_dynamicpaint_types.h" | ||||
| #include "DNA_object_types.h" | #include "DNA_object_types.h" | ||||
| #include "DNA_object_force_types.h" | #include "DNA_object_force_types.h" | ||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| #include "DNA_mesh_types.h" | #include "DNA_mesh_types.h" | ||||
| #include "BLI_utildefines.h" | #include "BLI_utildefines.h" | ||||
| #include "BKE_cdderivedmesh.h" | |||||
| #include "BKE_dynamicpaint.h" | #include "BKE_dynamicpaint.h" | ||||
| #include "BKE_layer.h" | #include "BKE_layer.h" | ||||
| #include "BKE_library.h" | #include "BKE_library.h" | ||||
| #include "BKE_library_query.h" | #include "BKE_library_query.h" | ||||
| #include "BKE_mesh.h" | |||||
| #include "BKE_modifier.h" | #include "BKE_modifier.h" | ||||
| #include "DEG_depsgraph.h" | #include "DEG_depsgraph.h" | ||||
| #include "DEG_depsgraph_build.h" | #include "DEG_depsgraph_build.h" | ||||
| #include "DEG_depsgraph_physics.h" | #include "DEG_depsgraph_physics.h" | ||||
| #include "DEG_depsgraph_query.h" | #include "DEG_depsgraph_query.h" | ||||
| #include "MOD_modifiertypes.h" | #include "MOD_modifiertypes.h" | ||||
| ▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | for (; surface; surface = surface->next) { | ||||
| if (surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) { | if (surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) { | ||||
| dataMask |= CD_MASK_MDEFORMVERT; | dataMask |= CD_MASK_MDEFORMVERT; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| return dataMask; | return dataMask; | ||||
| } | } | ||||
| static DerivedMesh *applyModifier_DM( | static Mesh *applyModifier( | ||||
| ModifierData *md, const ModifierEvalContext *ctx, | ModifierData *md, const ModifierEvalContext *ctx, | ||||
| DerivedMesh *dm) | Mesh *mesh) | ||||
| { | { | ||||
| DynamicPaintModifierData *pmd = (DynamicPaintModifierData *) md; | DynamicPaintModifierData *pmd = (DynamicPaintModifierData *) md; | ||||
| /* dont apply dynamic paint on orco dm stack */ | /* dont apply dynamic paint on orco mesh stack */ | ||||
| if (!(ctx->flag & MOD_APPLY_ORCO)) { | if (!(ctx->flag & MOD_APPLY_ORCO)) { | ||||
| Scene *scene = DEG_get_evaluated_scene(ctx->depsgraph); | Scene *scene = DEG_get_evaluated_scene(ctx->depsgraph); | ||||
| return dynamicPaint_Modifier_do(pmd, ctx->depsgraph, scene, ctx->object, dm); | return dynamicPaint_Modifier_do(pmd, ctx->depsgraph, scene, ctx->object, mesh); | ||||
| } | } | ||||
| return dm; | return mesh; | ||||
| } | } | ||||
| applyModifier_DM_wrapper(applyModifier, applyModifier_DM) | |||||
| static bool is_brush_cb(Object *UNUSED(ob), ModifierData *pmd) | static bool is_brush_cb(Object *UNUSED(ob), ModifierData *pmd) | ||||
| { | { | ||||
| return ((DynamicPaintModifierData *)pmd)->brush != NULL; | return ((DynamicPaintModifierData *)pmd)->brush != NULL; | ||||
| } | } | ||||
| static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx) | static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx) | ||||
| { | { | ||||
| DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md; | DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md; | ||||
| ▲ Show 20 Lines • Show All 82 Lines • Show Last 20 Lines | |||||