diff options
Diffstat (limited to 'source/blender/blenkernel/intern/DerivedMesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 4aee616580e..9c4aae7cda5 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -3156,6 +3156,8 @@ DerivedMesh *mesh_create_derived_render(struct Depsgraph *depsgraph, Scene *scen return final; } +#ifdef USE_DERIVEDMESH +/* Deprecated, use `mesh_create_eval_final_index_render` instead. */ DerivedMesh *mesh_create_derived_index_render(struct Depsgraph *depsgraph, Scene *scene, Object *ob, CustomDataMask dataMask, int index) { DerivedMesh *final; @@ -3166,7 +3168,22 @@ DerivedMesh *mesh_create_derived_index_render(struct Depsgraph *depsgraph, Scene return final; } +#endif +struct Mesh *mesh_create_eval_final_index_render( + struct Depsgraph *depsgraph, struct Scene *scene, + struct Object *ob, CustomDataMask dataMask, int index) +{ + Mesh *final; + + mesh_calc_modifiers( + depsgraph, scene, ob, NULL, 1, false, dataMask, index, false, false, false, + NULL, &final); + + return final; +} +#ifdef USE_DERIVEDMESH +/* Deprecated, use `mesh_create_eval_final_view` instead. */ DerivedMesh *mesh_create_derived_view( struct Depsgraph *depsgraph, Scene *scene, Object *ob, CustomDataMask dataMask) @@ -3187,6 +3204,28 @@ DerivedMesh *mesh_create_derived_view( return final; } +#endif + +Mesh *mesh_create_eval_final_view( + struct Depsgraph *depsgraph, Scene *scene, + Object *ob, CustomDataMask dataMask) +{ + Mesh *final; + + /* XXX hack + * psys modifier updates particle state when called during dupli-list generation, + * which can lead to wrong transforms. This disables particle system modifier execution. + */ + ob->transflag |= OB_NO_PSYS_UPDATE; + + mesh_calc_modifiers( + depsgraph, scene, ob, NULL, 1, false, dataMask, -1, false, false, false, + NULL, &final); + + ob->transflag &= ~OB_NO_PSYS_UPDATE; + + return final; +} DerivedMesh *mesh_create_derived_no_deform( struct Depsgraph *depsgraph, Scene *scene, Object *ob, |