[Bf-blender-cvs] [cdd980e0830] greasepencil-object: GPencil: Cleanup SVG exporter code

Antonio Vazquez noreply at git.blender.org
Fri Aug 14 20:27:15 CEST 2020


Commit: cdd980e083076b43efdb19ed50212c8be01bc887
Author: Antonio Vazquez
Date:   Fri Aug 14 20:02:08 2020 +0200
Branches: greasepencil-object
https://developer.blender.org/rBcdd980e083076b43efdb19ed50212c8be01bc887

GPencil: Cleanup SVG exporter code

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

M	source/blender/io/gpencil/gpencil_io_exporter.h
M	source/blender/io/gpencil/intern/gpencil_io_capi.cc
M	source/blender/io/gpencil/intern/gpencil_io_export_base.cc
M	source/blender/io/gpencil/intern/gpencil_io_export_base.h
M	source/blender/io/gpencil/intern/gpencil_io_export_svg.cc
M	source/blender/io/gpencil/intern/gpencil_io_export_svg.h

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

diff --git a/source/blender/io/gpencil/gpencil_io_exporter.h b/source/blender/io/gpencil/gpencil_io_exporter.h
index e4e91dd6bcc..51a5f1a6547 100644
--- a/source/blender/io/gpencil/gpencil_io_exporter.h
+++ b/source/blender/io/gpencil/gpencil_io_exporter.h
@@ -62,6 +62,7 @@ struct GpencilExportParams {
   short text_type;
 };
 
+/* GpencilExportParams->flag. */
 typedef enum eGpencilExportParams_Flag {
   /* Use Storyboard format. */
   GP_EXPORT_STORYBOARD_MODE = (1 << 0),
@@ -79,14 +80,17 @@ typedef enum eGpencilExportParams_Flag {
 
 typedef enum eGpencilExport_Modes {
   GP_EXPORT_TO_SVG = 0,
+  /* Add new export formats here. */
 } eGpencilExport_Modes;
 
+/* Object to be exported. */
 typedef enum eGpencilExportSelect {
   GP_EXPORT_ACTIVE = 0,
   GP_EXPORT_SELECTED = 1,
   GP_EXPORT_VISIBLE = 2,
 } eGpencilExportSelect;
 
+/** Document orientation. */
 typedef enum eGpencilExportPaper {
   GP_EXPORT_PAPER_LANDSCAPE = 0,
   GP_EXPORT_PAPER_PORTRAIT = 1,
diff --git a/source/blender/io/gpencil/intern/gpencil_io_capi.cc b/source/blender/io/gpencil/intern/gpencil_io_capi.cc
index 93213f2781e..2bf1e33bae2 100644
--- a/source/blender/io/gpencil/intern/gpencil_io_capi.cc
+++ b/source/blender/io/gpencil/intern/gpencil_io_capi.cc
@@ -74,7 +74,7 @@ static bool is_keyframe_empty(bContext *C, bGPdata *gpd, int framenum, bool use_
 }
 
 /* Export current frame. */
-static bool gpencil_io_export_frame(GpencilExporterSVG *writter,
+static bool gpencil_io_export_frame(GpencilExporterSVG *exporter,
                                     const GpencilExportParams *iparams,
                                     float frame_offset[2],
                                     const bool newpage,
@@ -85,12 +85,21 @@ static bool gpencil_io_export_frame(GpencilExporterSVG *writter,
   bool result = false;
   switch (iparams->mode) {
     case GP_EXPORT_TO_SVG: {
-      writter->set_frame_number(iparams->framenum);
-      writter->set_frame_offset(frame_offset);
+      exporter->set_frame_number(iparams->framenum);
+      exporter->set_frame_offset(frame_offset);
       std::string subfix = iparams->file_subfix;
-      result = writter->write(subfix, newpage, body, savepage);
+      if (newpage) {
+        exporter->add_newpage();
+      }
+      if (body) {
+        exporter->add_body();
+      }
+      if (savepage) {
+        result = exporter->write(subfix);
+      }
       break;
     }
+    /* Add new export formats here. */
     default:
       break;
   }
@@ -106,13 +115,13 @@ static bool gpencil_export_storyboard(
   bGPdata *gpd_eval = (bGPdata *)ob_eval_->data;
   bool done = false;
 
-  GpencilExporterSVG *writter = new GpencilExporterSVG(iparams);
+  GpencilExporterSVG *exporter = new GpencilExporterSVG(iparams);
 
   /* Storyboard only works in camera view. */
   RegionView3D *rv3d = (RegionView3D *)iparams->region->regiondata;
   if ((rv3d == NULL) || (rv3d->persp != RV3D_CAMOB)) {
     printf("Storyboard only allowed in camera view.\n");
-    delete writter;
+    delete exporter;
     return false;
   }
 
@@ -147,13 +156,13 @@ static bool gpencil_export_storyboard(
       continue;
     }
     shot++;
-    writter->set_shot(shot);
+    exporter->set_shot(shot);
 
     if (header) {
-      writter->set_frame_box(frame_box);
-      writter->set_frame_ratio(render_ratio);
+      exporter->set_frame_box(frame_box);
+      exporter->set_frame_ratio(render_ratio);
 
-      pending_save |= gpencil_io_export_frame(writter, iparams, frame_offset, true, false, false);
+      pending_save |= gpencil_io_export_frame(exporter, iparams, frame_offset, true, false, false);
       header = false;
     }
 
@@ -162,7 +171,7 @@ static bool gpencil_export_storyboard(
     sprintf(iparams->file_subfix, "%04d", page);
     iparams->framenum = i;
 
-    pending_save |= gpencil_io_export_frame(writter, iparams, frame_offset, false, true, false);
+    pending_save |= gpencil_io_export_frame(exporter, iparams, frame_offset, false, true, false);
     col++;
 
     if (col > blocks[0]) {
@@ -179,7 +188,7 @@ static bool gpencil_export_storyboard(
     }
 
     if (row > blocks[1]) {
-      done |= gpencil_io_export_frame(writter, iparams, frame_offset, false, false, true);
+      done |= gpencil_io_export_frame(exporter, iparams, frame_offset, false, false, true);
       page++;
       header = true;
       pending_save = false;
@@ -187,16 +196,16 @@ static bool gpencil_export_storyboard(
       copy_v2_v2(frame_offset, gap);
 
       /* Create a new class object per page. */
-      delete writter;
-      writter = new GpencilExporterSVG(iparams);
+      delete exporter;
+      exporter = new GpencilExporterSVG(iparams);
     }
   }
 
   if (pending_save) {
-    done |= gpencil_io_export_frame(writter, iparams, frame_offset, false, false, true);
+    done |= gpencil_io_export_frame(exporter, iparams, frame_offset, false, false, true);
   }
 
-  delete writter;
+  delete exporter;
 
   return done;
 }
diff --git a/source/blender/io/gpencil/intern/gpencil_io_export_base.cc b/source/blender/io/gpencil/intern/gpencil_io_export_base.cc
index 9f1dc0d5b98..a4b64c0038b 100644
--- a/source/blender/io/gpencil/intern/gpencil_io_export_base.cc
+++ b/source/blender/io/gpencil/intern/gpencil_io_export_base.cc
@@ -118,9 +118,9 @@ GpencilExporter::GpencilExporter(const struct GpencilExportParams *iparams)
       offset_[0] = 0.0f;
       offset_[1] = 0.0f;
 
-      selected_objects_boundbox();
+      selected_objects_boundbox_set();
       rctf boundbox;
-      get_select_boundbox(&boundbox);
+      selected_objects_boundbox_get(&boundbox);
 
       render_x_ = boundbox.xmax - boundbox.xmin;
       render_y_ = boundbox.ymax - boundbox.ymin;
@@ -319,7 +319,7 @@ float GpencilExporter::stroke_point_radius_get(struct bGPDstroke *gps)
  * \param color: Original RGB color
  * \return String with the conversion
  */
-std::string GpencilExporter::rgb_to_hex(float color[3])
+std::string GpencilExporter::rgb_to_hexstr(float color[3])
 {
   int r = color[0] * 255.0f;
   int g = color[1] * 255.0f;
@@ -430,17 +430,17 @@ struct MaterialGPencilStyle *GpencilExporter::gp_style_current_get(void)
   return gp_style;
 }
 
-bool GpencilExporter::gp_style_is_stroke(void)
+bool GpencilExporter::material_is_stroke(void)
 {
   return is_stroke;
 }
 
-bool GpencilExporter::gp_style_is_fill(void)
+bool GpencilExporter::material_is_fill(void)
 {
   return is_fill;
 }
 
-float GpencilExporter::stroke_average_opacity(void)
+float GpencilExporter::stroke_average_opacity_get(void)
 {
   return avg_opacity;
 }
@@ -451,7 +451,7 @@ bool GpencilExporter::is_camera_mode(void)
 }
 
 /* Calc selected strokes boundbox. */
-void GpencilExporter::selected_objects_boundbox(void)
+void GpencilExporter::selected_objects_boundbox_set(void)
 {
   const float gap = 10.0f;
   const bGPDspoint *pt;
@@ -500,7 +500,7 @@ void GpencilExporter::selected_objects_boundbox(void)
   select_box.ymax = r_max[1];
 }
 
-void GpencilExporter::get_select_boundbox(rctf *boundbox)
+void GpencilExporter::selected_objects_boundbox_get(rctf *boundbox)
 {
   boundbox->xmin = select_box.xmin;
   boundbox->xmax = select_box.xmax;
diff --git a/source/blender/io/gpencil/intern/gpencil_io_export_base.h b/source/blender/io/gpencil/intern/gpencil_io_export_base.h
index b6519806a84..991aa97da21 100644
--- a/source/blender/io/gpencil/intern/gpencil_io_export_base.h
+++ b/source/blender/io/gpencil/intern/gpencil_io_export_base.h
@@ -44,10 +44,9 @@ class GpencilExporter {
 
  public:
   GpencilExporter(const struct GpencilExportParams *iparams);
-  virtual bool write(std::string subfix,
-                     const bool newpage,
-                     const bool body,
-                     const bool savepage) = 0;
+  virtual void add_newpage(void) = 0;
+  virtual void add_body(void) = 0;
+  virtual bool write(std::string subfix) = 0;
 
   void set_out_filename(const char *filename);
   void set_frame_number(int value);
@@ -57,9 +56,10 @@ class GpencilExporter {
   void set_shot(int value);
 
  protected:
+  GpencilExportParams params_;
+
   bool invert_axis_[2];
   float diff_mat_[4][4];
-  GpencilExportParams params_;
   char out_filename_[FILE_MAX];
 
   /* Used for sorting objects. */
@@ -68,6 +68,7 @@ class GpencilExporter {
     struct Object *ob;
   };
 
+  /** List of included objects. */
   std::list<ObjectZ> ob_list_;
 
   /* Data for easy access. */
@@ -80,8 +81,8 @@ class GpencilExporter {
   int winx_, winy_;
   int render_x_, render_y_;
   float camera_ratio_;
-  float offset_[2];
   rctf camera_rect_;
+  float offset_[2];
   float frame_box_[2];
   float frame_offset_[2];
   float frame_ratio_[2];
@@ -93,30 +94,32 @@ class GpencilExporter {
   /* Geometry functions. */
   bool gpencil_3d_point_to_screen_space(const float co[3], float r_co[2]);
 
-  bool is_stroke_thickness_constant(struct bGPDstroke *gps);
   float stroke_average_pressure_get(struct bGPDstroke *gps);
   float stroke_point_radius_get(struct bGPDstroke *gps);
-  void selected_objects_boundbox(void);
   void create_object_list(void);
 
-  std::string rgb_to_hex(float color[3]);
+  std::string rgb_to_hexstr(float color[3]);
   void rgb_to_grayscale(float color[3]);
   std::string to_lower_string(char *input_text);
 
-  struct bGPDlayer *gpl_current_get(void);
-  struct bGPDframe *gpf_current_get(void);
-  struct bGPDstroke *gps_current_get(void);
   struct MaterialGPencilStyle *gp_style_current_get(void);
-  bool gp_style_is_stroke(void);
-  bool gp_style_is_fill(void);
-  float stroke_average_opacity(void);
+  bool material_is_stroke(void);
+  bool material_is_fill(void);
+
+  bool is_stroke_thickness_constant(struct bGPDstroke *gps);
   bool is_camera_mode(void);
 
+  float stroke_average_opacity_get(void);
+
+  struct bGPDlayer *gpl_current_get(void);
+  struct bGPDframe *gpf_current_get(void);
+  struct bGPDstroke *gps_current_get(void);
   void gpl_current_set(struct bGPDlayer *gpl);
   void gpf_current_set(struct bGPDframe *gpf);
   void gps_current_set(struct Object *ob, struct bGPDstroke *gps, const bool set_colors);
 
-  void get_select_boundbox(rctf *boundbox);
+  void selected_objects_boundbox_set(void);
+  void selected_objects_boundbox_get(rctf *boundbox);
 
  private:
   struct bGPDlayer *

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list