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:
authorAntonioya <blendergit@gmail.com>2019-08-08 17:12:13 +0300
committerAntonioya <blendergit@gmail.com>2019-08-08 17:43:54 +0300
commit179e886ab3d6f8b762ff66c5bb2cb203a4adcb62 (patch)
tree3586e7f51fe1b28156604f4f6b20ee86c81f95e6 /source/blender/gpencil_modifiers
parent5ca3bc7a145f8ac1740cbf46e4701fee3a245b14 (diff)
GPencil: New Simplify modifier mode Sample and operator
This mode simplify the stroke doing a resampling of the points and generate new geometry at the distance defined. Sample function developed by @NicksBest New Resample Stroke operator This operator recreates the stroke geometry with a predefined length between points. The operator uses the same code used in Simplify modifier. Reviewers: @mendio
Diffstat (limited to 'source/blender/gpencil_modifiers')
-rw-r--r--source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
index 746a689c08e..06f6f012818 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
@@ -66,7 +66,7 @@ static void deformStroke(GpencilModifierData *md,
mmd->layername,
mmd->pass_index,
mmd->layer_pass,
- 4,
+ mmd->mode == GP_SIMPLIFY_SAMPLE ? 3 : 4,
gpl,
gps,
mmd->flag & GP_SIMPLIFY_INVERT_LAYER,
@@ -75,14 +75,25 @@ static void deformStroke(GpencilModifierData *md,
return;
}
- if (mmd->mode == GP_SIMPLIFY_FIXED) {
- for (int i = 0; i < mmd->step; i++) {
- BKE_gpencil_simplify_fixed(gps);
+ /* Select simplification mode. */
+ switch (mmd->mode) {
+ case GP_SIMPLIFY_FIXED: {
+ for (int i = 0; i < mmd->step; i++) {
+ BKE_gpencil_simplify_fixed(gps);
+ }
+ break;
}
- }
- else {
- /* simplify stroke using Ramer-Douglas-Peucker algorithm */
- BKE_gpencil_simplify_stroke(gps, mmd->factor);
+ case GP_SIMPLIFY_ADAPTIVE: {
+ /* simplify stroke using Ramer-Douglas-Peucker algorithm */
+ BKE_gpencil_simplify_stroke(gps, mmd->factor);
+ break;
+ }
+ case GP_SIMPLIFY_SAMPLE: {
+ BKE_gpencil_sample_stroke(gps, mmd->length, false);
+ break;
+ }
+ default:
+ break;
}
}