[Bf-blender-cvs] [b00bc42dd00] greasepencil-object: GPencil: Add sampling parameter to SVG export

Antonio Vazquez noreply at git.blender.org
Sat Aug 1 20:53:51 CEST 2020


Commit: b00bc42dd00ee83d6599720a996fd171252f529a
Author: Antonio Vazquez
Date:   Sat Aug 1 20:53:43 2020 +0200
Branches: greasepencil-object
https://developer.blender.org/rBb00bc42dd00ee83d6599720a996fd171252f529a

GPencil: Add sampling parameter to SVG export

===================================================================

M	source/blender/editors/io/io_gpencil.c
M	source/blender/io/gpencil/gpencil_io_exporter.h
M	source/blender/io/gpencil/intern/gpencil_io_base.cc
M	source/blender/io/gpencil/intern/gpencil_io_svg.cc

===================================================================

diff --git a/source/blender/editors/io/io_gpencil.c b/source/blender/editors/io/io_gpencil.c
index d24d9236add..75a7cf52735 100644
--- a/source/blender/editors/io/io_gpencil.c
+++ b/source/blender/editors/io/io_gpencil.c
@@ -188,6 +188,7 @@ static int wm_gpencil_export_exec(bContext *C, wmOperator *op)
       .frame_start = RNA_int_get(op->ptr, "start"),
       .frame_end = RNA_int_get(op->ptr, "end"),
       .flag = flag,
+      .stroke_sample = RNA_float_get(op->ptr, "stroke_sample"),
   };
   /* Take some defaults from the scene, if not specified explicitly. */
   Scene *scene = CTX_data_scene(C);
@@ -269,6 +270,7 @@ static void ui_gpencil_export_settings(uiLayout *layout, PointerRNA *imfptr)
   uiItemR(sub, imfptr, "use_fill", 0, NULL, ICON_NONE);
   uiItemR(sub, imfptr, "use_normalized_thickness", 0, NULL, ICON_NONE);
   uiItemR(sub, imfptr, "use_clip_camera", 0, NULL, ICON_NONE);
+  uiItemR(sub, imfptr, "stroke_sample", 0, NULL, ICON_NONE);
 }
 
 static void wm_gpencil_export_draw(bContext *C, wmOperator *op)
@@ -385,6 +387,15 @@ void WM_OT_gpencil_export(wmOperatorType *ot)
                   false,
                   "Clip Camera",
                   "Clip drawings to camera size when export in camera view");
+  RNA_def_float(ot->srna,
+                "stroke_sample",
+                0.03f,
+                0.0f,
+                100.0f,
+                "Sampling",
+                "Precision of sampling stroke, set to zero to disable",
+                0.0f,
+                100.0f);
 
   /* This dummy prop is used to check whether we need to init the start and
    * end frame values to that of the scene's, otherwise they are reset at
diff --git a/source/blender/io/gpencil/gpencil_io_exporter.h b/source/blender/io/gpencil/gpencil_io_exporter.h
index 7cbd0b460d5..cfcb7fc1296 100644
--- a/source/blender/io/gpencil/gpencil_io_exporter.h
+++ b/source/blender/io/gpencil/gpencil_io_exporter.h
@@ -49,6 +49,8 @@ struct GpencilExportParams {
   char frame[5];
   /** Flags. */
   int flag;
+  /** Stroke sampling. */
+  float stroke_sample;
 };
 
 typedef enum eGpencilExportParams_Flag {
diff --git a/source/blender/io/gpencil/intern/gpencil_io_base.cc b/source/blender/io/gpencil/intern/gpencil_io_base.cc
index 320bf18b294..8d5255c2942 100644
--- a/source/blender/io/gpencil/intern/gpencil_io_base.cc
+++ b/source/blender/io/gpencil/intern/gpencil_io_base.cc
@@ -67,6 +67,7 @@ GpencilExporter::GpencilExporter(const struct GpencilExportParams *iparams)
   params_.filename = iparams->filename;
   params_.mode = iparams->mode;
   params_.flag = iparams->flag;
+  params_.stroke_sample = iparams->stroke_sample;
 
   /* Easy access data. */
   bmain = CTX_data_main(params_.C);
diff --git a/source/blender/io/gpencil/intern/gpencil_io_svg.cc b/source/blender/io/gpencil/intern/gpencil_io_svg.cc
index 10bf8c7973a..395cdd9915f 100644
--- a/source/blender/io/gpencil/intern/gpencil_io_svg.cc
+++ b/source/blender/io/gpencil/intern/gpencil_io_svg.cc
@@ -218,7 +218,9 @@ void GpencilExporterSVG::export_layers(void)
               gps_current_set(ob, gps_perimeter, false);
 
               /* Sample stroke. */
-              BKE_gpencil_stroke_sample(gps_perimeter, 0.03f, false);
+              if (params_.stroke_sample > 0.0f) {
+                BKE_gpencil_stroke_sample(gps_perimeter, params_.stroke_sample, false);
+              }
 
               export_stroke_path(gpl_node, false);



More information about the Bf-blender-cvs mailing list