[Bf-blender-cvs] [073d8ef31a7] asset-greasepencil: GPencil: Organize code and comments

Antonio Vazquez noreply at git.blender.org
Fri Jul 23 13:34:32 CEST 2021


Commit: 073d8ef31a77d77e00e5aae37f555fb555706985
Author: Antonio Vazquez
Date:   Fri Jul 23 13:34:27 2021 +0200
Branches: asset-greasepencil
https://developer.blender.org/rB073d8ef31a77d77e00e5aae37f555fb555706985

GPencil: Organize code and comments

Full cleanup

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

M	source/blender/editors/gpencil/gpencil_asset.c

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

diff --git a/source/blender/editors/gpencil/gpencil_asset.c b/source/blender/editors/gpencil/gpencil_asset.c
index 66c1a9152b1..3022aa3ca16 100644
--- a/source/blender/editors/gpencil/gpencil_asset.c
+++ b/source/blender/editors/gpencil/gpencil_asset.c
@@ -196,7 +196,7 @@ static bool gpencil_asset_generic_poll(bContext *C)
 }
 
 /* -------------------------------------------------------------------- */
-/** \name Create Grease Pencil Asset operator
+/** \name Create Grease Pencil Datablock Asset operator
  * \{ */
 
 typedef enum eGP_AssetModes {
@@ -235,7 +235,7 @@ static bool gpencil_asset_create(const bContext *C,
   /* Disable Edit mode. */
   gpd->flag &= ~GP_DATA_STROKE_EDITMODE;
 
-  bGPDlayer *gpl_active = BKE_gpencil_layer_active_get(gpd);
+  const bGPDlayer *gpl_active = BKE_gpencil_layer_active_get(gpd);
 
   LISTBASE_FOREACH_MUTABLE (bGPDlayer *, gpl, &gpd->layers) {
     /* If layer is hidden, remove. */
@@ -243,13 +243,15 @@ static bool gpencil_asset_create(const bContext *C,
       BKE_gpencil_layer_delete(gpd, gpl);
       continue;
     }
-    /* If Layer or Active Frame mode, delete non active layers. */
+
+    /* If Active Layer or Active Frame mode, delete non active layers. */
     if ((ELEM(mode, GP_ASSET_MODE_ACTIVE_LAYER, GP_ASSET_MODE_ACTIVE_FRAME)) &&
         (gpl != gpl_active)) {
       BKE_gpencil_layer_delete(gpd, gpl);
       continue;
     }
-    /* For splitting, remove if layer is not equals to parameter. */
+
+    /* For splitting, remove if layer is not equals to filter parameter. */
     if (mode == GP_ASSET_MODE_ALL_LAYERS_SPLIT) {
       if (!STREQ(gpl_filter->info, gpl->info)) {
         BKE_gpencil_layer_delete(gpd, gpl);
@@ -257,7 +259,7 @@ static bool gpencil_asset_create(const bContext *C,
       }
     }
 
-    /* Remove parenting data. */
+    /* Remove parenting data (feature non supported in data block). */
     if (gpl->parent != NULL) {
       gpl->parent = NULL;
       gpl->parsubstr[0] = 0;
@@ -265,7 +267,7 @@ static bool gpencil_asset_create(const bContext *C,
       non_supported_feature = true;
     }
 
-    /* Remove masking. */
+    /* Remove masking (feature non supported in data block). */
     if (gpl->mask_layers.first) {
       bGPDlayer_Mask *mask_next;
       for (bGPDlayer_Mask *mask = gpl->mask_layers.first; mask; mask = mask_next) {
@@ -278,7 +280,7 @@ static bool gpencil_asset_create(const bContext *C,
       non_supported_feature = true;
     }
 
-    bGPDframe *gpf_active = gpl->actframe;
+    const bGPDframe *gpf_active = gpl->actframe;
 
     LISTBASE_FOREACH_MUTABLE (bGPDframe *, gpf, &gpl->frames) {
       /* If Active Frame mode, delete non active frames. */
@@ -288,12 +290,13 @@ static bool gpencil_asset_create(const bContext *C,
         continue;
       }
 
+      /* Remove if Selected frames mode and frame is not selected. */
       if ((mode == GP_ASSET_MODE_SELECTED_FRAMES) && ((gpf->flag & GP_FRAME_SELECT) == 0)) {
         BKE_gpencil_layer_frame_delete(gpl, gpf);
         continue;
       }
 
-      /* Remove any unselected stroke if SELECTED mode. */
+      /* Remove any unselected stroke if selected strokes mode. */
       if (mode == GP_ASSET_MODE_SELECTED_STROKES) {
         LISTBASE_FOREACH_MUTABLE (bGPDstroke *, gps, &gpf->strokes) {
           if ((gps->flag & GP_STROKE_SELECT) == 0) {
@@ -337,8 +340,8 @@ static bool gpencil_asset_create(const bContext *C,
     strcpy(gpl_dst->info, "Asset_Layer");
   }
 
-  if (ED_asset_mark_id(C, &gpd->id)) {
-  }
+  /* Mark as asset. */
+  ED_asset_mark_id(C, &gpd->id);
 
   return non_supported_feature;
 }
@@ -420,6 +423,7 @@ void GPENCIL_OT_asset_create(wmOperatorType *ot)
 }
 
 /** \} */
+
 /* -------------------------------------------------------------------- */
 /** \name Import Grease Pencil Asset into existing datablock operator
  * \{ */
@@ -446,7 +450,6 @@ static void gpencil_2d_cage_calc(tGPDasset *tgpa)
 
   GHashIterator gh_iter;
   GHASH_ITER (gh_iter, tgpa->asset_strokes_layer) {
-    // TODO: All strokes or only active frame?
     bGPDstroke *gps = (bGPDstroke *)BLI_ghashIterator_getKey(&gh_iter);
     bGPDlayer *gpl = (bGPDlayer *)BLI_ghashIterator_getValue(&gh_iter);
     BKE_gpencil_layer_transform_matrix_get(tgpa->depsgraph, tgpa->ob, gpl, diff_mat);
@@ -498,7 +501,7 @@ static void gpencil_2d_cage_calc(tGPDasset *tgpa)
   tgpa->manipulator[7][0] = tgpa->rect_cage.xmin;
   tgpa->manipulator[7][1] = tgpa->rect_cage.ymin +
                             ((tgpa->rect_cage.ymax - tgpa->rect_cage.ymin) * 0.5f);
-  /* Rotation */
+  /* Rotation points. */
   tgpa->manipulator[CAGE_CORNER_ROT_NW][0] = tgpa->rect_cage.xmin - ROTATION_CONTROL_GAP;
   tgpa->manipulator[CAGE_CORNER_ROT_NW][1] = tgpa->rect_cage.ymax + ROTATION_CONTROL_GAP;
 
@@ -519,16 +522,15 @@ static void gpencil_2d_cage_calc(tGPDasset *tgpa)
   sub_v3_v3v3(vec1, co2, co1);
   sub_v3_v3v3(vec2, co3, co2);
 
-  /* Vector orthogonal to polygon plane. */
   cross_v3_v3v3(tgpa->cage_normal, vec1, vec2);
   normalize_v3(tgpa->cage_normal);
 }
 
-/* Draw a cage for manipulate asset */
+/* Draw a cage to manipulate asset. */
 static void gpencil_2d_cage_draw(const tGPDasset *tgpa)
 {
   GPUVertFormat *format = immVertexFormat();
-  uint pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
+  const uint pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
 
   GPU_blend(GPU_BLEND_ALPHA);
 
@@ -555,7 +557,7 @@ static void gpencil_2d_cage_draw(const tGPDasset *tgpa)
   immVertex2f(pos, tgpa->manipulator[CAGE_CORNER_SW][0], tgpa->manipulator[CAGE_CORNER_SW][1]);
   immEnd();
 
-  /* Rotation box */
+  /* Rotation boxes. */
   const float gap = 2.0f;
   for (int i = 0; i < 4; i++) {
     imm_draw_box_wire_2d(pos,
@@ -588,18 +590,20 @@ static void gpencil_2d_cage_draw(const tGPDasset *tgpa)
 
   immUniform1f("size", UI_GetThemeValuef(TH_VERTEX_SIZE) * 1.5f * U.dpi_fac);
 
+  /* Draw only the points of the cage, but not the rotation points. */
   immBegin(GPU_PRIM_POINTS, 8);
   for (int i = 0; i < 8; i++) {
     immVertex2fv(pos, tgpa->manipulator[i]);
   }
   immEnd();
+
   immUnbindProgram();
   GPU_program_point_size(false);
 
   GPU_blend(GPU_BLEND_NONE);
 }
 
-/* Helper: Detect mouse over cage areas. */
+/* Helper: Detect mouse over cage action areas. */
 static void gpencil_2d_cage_area_detect(tGPDasset *tgpa, const int mouse[2])
 {
   const float gap = 5.0f;
@@ -609,7 +613,6 @@ static void gpencil_2d_cage_area_detect(tGPDasset *tgpa, const int mouse[2])
       (float)mouse[0] - gap, (float)mouse[0] + gap, (float)mouse[1] - gap, (float)mouse[1] + gap};
 
   tgpa->manipulator_index = -1;
-  float co1[3], co2[3];
   for (int i = 0; i < 12; i++) {
     if (BLI_rctf_isect_pt(&rect_mouse, tgpa->manipulator[i][0], tgpa->manipulator[i][1])) {
       tgpa->manipulator_index = i;
@@ -651,6 +654,8 @@ static void gpencil_2d_cage_area_detect(tGPDasset *tgpa, const int mouse[2])
         add_v3_fl(tgpa->manipulator_vector, 1.0f);
         return;
       }
+
+      float co1[3], co2[3];
       if (ELEM(tgpa->manipulator_index, CAGE_CORNER_N, CAGE_CORNER_S)) {
         gpencil_point_xy_to_3d(&tgpa->gsc, tgpa->scene, tgpa->manipulator[CAGE_CORNER_S], co1);
         gpencil_point_xy_to_3d(&tgpa->gsc, tgpa->scene, tgpa->manipulator[CAGE_CORNER_N], co2);
@@ -817,7 +822,7 @@ static void gpencil_asset_transform_strokes(tGPDasset *tgpa,
       }
     }
 
-    /* In scale mode recal stroke geometry because fill triangulation can change. */
+    /* In scale mode, recalculate stroke geometry because fill triangulation can change. */
     if (tgpa->mode == GP_ASSET_TRANSFORM_SCALE) {
       BKE_gpencil_stroke_geometry_update(tgpa->gpd, gps);
     }
@@ -832,7 +837,7 @@ static void gpencil_asset_transform_strokes(tGPDasset *tgpa,
     add_v3_v3(tgpa->asset_center, vec);
   }
 
-  /* Update mouse position and transform data to avoid acumulation for next transformation. */
+  /* Update mouse position and transform data to avoid accumulation for the next transformation. */
   copy_v2_v2_int(tgpa->mouse, mouse);
   tgpa->initial_dist = dist;
   copy_v2_v2(tgpa->vinit_rotation, vr);
@@ -852,7 +857,7 @@ static int gpencil_asset_get_first_franum(const bGPdata *gpd)
   return first_fra;
 }
 
-/* Helper: Get a material from the datablock */
+/* Helper: Get a material from the datablock array. */
 static Material *gpencil_asset_material_get_from_id(ID *id, const int slot_index)
 {
   const short *tot_slots_data_ptr = BKE_id_material_len_p(id);
@@ -868,8 +873,8 @@ static Material *gpencil_asset_material_get_from_id(ID *id, const int slot_index
   return material;
 }
 
-/* Helper: Add all strokes from the asset in the target datablock. */
-static void gpencil_asset_add_strokes(tGPDasset *tgpa)
+/* Helper: Append all strokes from the asset in the target datablock. */
+static void gpencil_asset_append_strokes(tGPDasset *tgpa)
 {
   bGPdata *gpd_target = tgpa->gpd;
   bGPdata *gpd_asset = tgpa->gpd_asset;
@@ -894,14 +899,16 @@ static void gpencil_asset_add_strokes(tGPDasset *tgpa)
       BLI_listbase_clear(&gpl_target->frames);
       BLI_addtail(&gpd_target->layers, gpl_target);
 
+      /* Ensure layers hash is ready. */
       if (tgpa->asset_layers == NULL) {
         tgpa->asset_layers = BLI_ghash_ptr_new(__func__);
       }
-      /* Add layer to the hash to remove if operator is canceled. */
+
+      /* Add layer to the hash to remove it if the operator is canceled. */
       BLI_ghash_insert(tgpa->asset_layers, gpl_target, gpl_target);
     }
-    gpl_target->actframe = NULL;
 
+    gpl_target->actframe = NULL;
     LISTBASE_FOREACH (bGPDframe *, gpf_asset, &gpl_asset->frames) {
       /* Check if frame is in target layer. */
       int fra = tgpa->cframe + (gpf_asset->framenum - first_fra);
@@ -912,22 +919,25 @@ static void gpencil_asset_add_strokes(tGPDasset *tgpa)
         BLI_assert(gpf_target != NULL);
         BLI_listbase_clear(&gpf_target->strokes);
 
+        /* Ensure frames hash is ready. */
         if (tgpa->asset_frames == NULL) {
           tgpa->asset_frames = BLI_ghash_ptr_new(__func__);
         }
-        /* Add frame to the hash to remove if operator is canceled. */
+
+        /* Add frame to the hash to remove 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list