Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c')
-rw-r--r--source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c32
1 files changed, 30 insertions, 2 deletions
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
index 88ba6b6285d..e766615101a 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencil_util.c
@@ -7,19 +7,21 @@
#include <stdio.h>
-#include "BLI_utildefines.h"
-
+#include "BLI_blenlib.h"
#include "BLI_math_vector.h"
+#include "BLI_utildefines.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_material_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
+#include "DNA_scene_types.h"
#include "BKE_deform.h"
#include "BKE_gpencil_modifier.h"
#include "BKE_material.h"
+#include "BKE_scene.h"
#include "MOD_gpencil_modifiertypes.h"
#include "MOD_gpencil_util.h"
@@ -168,3 +170,29 @@ float get_modifier_point_weight(MDeformVert *dvert, bool inverse, int def_nr)
return weight;
}
+
+void generic_bake_deform_stroke(
+ Depsgraph *depsgraph, GpencilModifierData *md, Object *ob, const bool retime, gpBakeCb bake_cb)
+{
+ Scene *scene = DEG_get_evaluated_scene(depsgraph);
+ bGPdata *gpd = ob->data;
+ int oldframe = (int)DEG_get_ctime(depsgraph);
+
+ LISTBASE_FOREACH (bGPDlayer *, gpl, &gpd->layers) {
+ LISTBASE_FOREACH (bGPDframe *, gpf, &gpl->frames) {
+ if (retime) {
+ CFRA = gpf->framenum;
+ BKE_scene_graph_update_for_newframe(depsgraph);
+ }
+ LISTBASE_FOREACH (bGPDstroke *, gps, &gpf->strokes) {
+ bake_cb(md, depsgraph, ob, gpl, gpf, gps);
+ }
+ }
+ }
+
+ /* Return frame state and DB to original state. */
+ if (retime) {
+ CFRA = oldframe;
+ BKE_scene_graph_update_for_newframe(depsgraph);
+ }
+}