[Bf-blender-cvs] [af29a17c325] temp-lineart-contained: LineArt: use name lineart_get_bounding_area_deep() to clarify.

YimingWu noreply at git.blender.org
Fri Mar 12 05:29:28 CET 2021


Commit: af29a17c3250dd4c3b64e7c09b17b14df9279e1a
Author: YimingWu
Date:   Fri Mar 12 12:29:03 2021 +0800
Branches: temp-lineart-contained
https://developer.blender.org/rBaf29a17c3250dd4c3b64e7c09b17b14df9279e1a

LineArt: use name lineart_get_bounding_area_deep() to clarify.

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

M	source/blender/gpencil_modifiers/intern/lineart/ED_lineart.h
M	source/blender/gpencil_modifiers/intern/lineart/lineart_chain.c
M	source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c

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

diff --git a/source/blender/gpencil_modifiers/intern/lineart/ED_lineart.h b/source/blender/gpencil_modifiers/intern/lineart/ED_lineart.h
index 6e403eb497a..c9dac052397 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/ED_lineart.h
+++ b/source/blender/gpencil_modifiers/intern/lineart/ED_lineart.h
@@ -517,9 +517,9 @@ LineartBoundingArea *ED_lineart_get_point_bounding_area_rb(LineartRenderBuffer *
                                                            double x,
                                                            double y);
 
-LineartBoundingArea *ED_lineart_get_point_bounding_area_recursive_rb(LineartRenderBuffer *rb,
-                                                                     double x,
-                                                                     double y);
+LineartBoundingArea *ED_lineart_get_point_bounding_area_deep_rb(LineartRenderBuffer *rb,
+                                                                double x,
+                                                                double y);
 
 struct bGPDlayer;
 struct bGPDframe;
diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_chain.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_chain.c
index 41fdfc8b1ad..02fd3553658 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_chain.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_chain.c
@@ -230,7 +230,7 @@ void ED_lineart_chain_feature_lines(LineartRenderBuffer *rb)
     }
 
     /*  step 1: grow left. */
-    ba = ED_lineart_get_point_bounding_area_recursive_rb(rb, rl->l->fbcoord[0], rl->l->fbcoord[1]);
+    ba = ED_lineart_get_point_bounding_area_deep_rb(rb, rl->l->fbcoord[0], rl->l->fbcoord[1]);
     new_rv = rl->l;
     rls = rl->segments.first;
     VERT_COORD_TO_FLOAT(new_rv);
@@ -317,8 +317,7 @@ void ED_lineart_chain_feature_lines(LineartRenderBuffer *rb)
                                  last_transparency,
                                  new_rl->r_obindex);
       }
-      ba = ED_lineart_get_point_bounding_area_recursive_rb(
-          rb, new_rv->fbcoord[0], new_rv->fbcoord[1]);
+      ba = ED_lineart_get_point_bounding_area_deep_rb(rb, new_rv->fbcoord[0], new_rv->fbcoord[1]);
     }
 
     /* Restore normal value. */
@@ -370,7 +369,7 @@ void ED_lineart_chain_feature_lines(LineartRenderBuffer *rb)
                                rl->r_obindex);
 
     /*  step 3: grow right. */
-    ba = ED_lineart_get_point_bounding_area_recursive_rb(rb, rl->r->fbcoord[0], rl->r->fbcoord[1]);
+    ba = ED_lineart_get_point_bounding_area_deep_rb(rb, rl->r->fbcoord[0], rl->r->fbcoord[1]);
     new_rv = rl->r;
     /*  below already done in step 2. */
     /*  lineart_chain_push_point(rb,rlc,new_rv->fbcoord[0],new_rv->fbcoord[1],rl->flags,0);
@@ -457,8 +456,7 @@ void ED_lineart_chain_feature_lines(LineartRenderBuffer *rb)
                                    last_transparency,
                                    new_rl->r_obindex);
       }
-      ba = ED_lineart_get_point_bounding_area_recursive_rb(
-          rb, new_rv->fbcoord[0], new_rv->fbcoord[1]);
+      ba = ED_lineart_get_point_bounding_area_deep_rb(rb, new_rv->fbcoord[0], new_rv->fbcoord[1]);
     }
     if (rb->fuzzy_everything) {
       rlc->type = LRT_EDGE_FLAG_CONTOUR;
diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
index 478bb0170a6..02f9f8e1dbb 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -3167,16 +3167,57 @@ LineartBoundingArea *ED_lineart_get_point_bounding_area_rb(LineartRenderBuffer *
   return &rb->initial_bounding_areas[row * 4 + col];
 }
 
-static LineartBoundingArea *lineart_get_bounding_area(LineartRenderBuffer *rb, double x, double y);
+static LineartBoundingArea *lineart_get_bounding_area_deep(LineartRenderBuffer *rb,
+                                                           double x,
+                                                           double y)
+{
+  LineartBoundingArea *iba;
+  double sp_w = rb->width_per_tile, sp_h = rb->height_per_tile;
+  int c = (int)((x + 1.0) / sp_w);
+  int r = rb->tile_count_y - (int)((y + 1.0) / sp_h) - 1;
+  if (r < 0) {
+    r = 0;
+  }
+  if (c < 0) {
+    c = 0;
+  }
+  if (r >= rb->tile_count_y) {
+    r = rb->tile_count_y - 1;
+  }
+  if (c >= rb->tile_count_x) {
+    c = rb->tile_count_x - 1;
+  }
+
+  iba = &rb->initial_bounding_areas[r * 4 + c];
+  while (iba->child) {
+    if (x > iba->cx) {
+      if (y > iba->cy) {
+        iba = &iba->child[0];
+      }
+      else {
+        iba = &iba->child[3];
+      }
+    }
+    else {
+      if (y > iba->cy) {
+        iba = &iba->child[1];
+      }
+      else {
+        iba = &iba->child[2];
+      }
+    }
+  }
+  return iba;
+}
 
 /* Wrapper for more convenience. */
-LineartBoundingArea *ED_lineart_get_point_bounding_area_recursive_rb(LineartRenderBuffer *rb,
-                                                                     double x,
-                                                                     double y)
+LineartBoundingArea *ED_lineart_get_point_bounding_area_deep_rb(LineartRenderBuffer *rb,
+                                                                double x,
+                                                                double y)
 {
   LineartBoundingArea *ba;
   if ((ba = ED_lineart_get_point_bounding_area_rb(rb, x, y)) != NULL) {
-    return lineart_get_bounding_area(rb, x, y);
+    return lineart_get_bounding_area_deep(rb, x, y);
   }
   return NULL;
 }
@@ -3435,48 +3476,6 @@ static LineartBoundingArea *lineart_bounding_area_next(LineartBoundingArea *this
   return 0;
 }
 
-/* FIXME: Duplicated? */
-static LineartBoundingArea *lineart_get_bounding_area(LineartRenderBuffer *rb, double x, double y)
-{
-  LineartBoundingArea *iba;
-  double sp_w = rb->width_per_tile, sp_h = rb->height_per_tile;
-  int c = (int)((x + 1.0) / sp_w);
-  int r = rb->tile_count_y - (int)((y + 1.0) / sp_h) - 1;
-  if (r < 0) {
-    r = 0;
-  }
-  if (c < 0) {
-    c = 0;
-  }
-  if (r >= rb->tile_count_y) {
-    r = rb->tile_count_y - 1;
-  }
-  if (c >= rb->tile_count_x) {
-    c = rb->tile_count_x - 1;
-  }
-
-  iba = &rb->initial_bounding_areas[r * 4 + c];
-  while (iba->child) {
-    if (x > iba->cx) {
-      if (y > iba->cy) {
-        iba = &iba->child[0];
-      }
-      else {
-        iba = &iba->child[3];
-      }
-    }
-    else {
-      if (y > iba->cy) {
-        iba = &iba->child[1];
-      }
-      else {
-        iba = &iba->child[2];
-      }
-    }
-  }
-  return iba;
-}
-
 static LineartBoundingArea *lineart_line_first_bounding_area(LineartRenderBuffer *rb,
                                                              LineartRenderLine *rl)
 {
@@ -3485,7 +3484,7 @@ static LineartBoundingArea *lineart_line_first_bounding_area(LineartRenderBuffer
   double r = 1, sr = 1;
 
   if (data[0] > -1 && data[0] < 1 && data[1] > -1 && data[1] < 1) {
-    return lineart_get_bounding_area(rb, data[0], data[1]);
+    return lineart_get_bounding_area_deep(rb, data[0], data[1]);
   }
 
   if (lineart_LineIntersectTest2d(rl->l->fbcoord, rl->r->fbcoord, LU, RU, &sr) && sr < r &&
@@ -3506,7 +3505,7 @@ static LineartBoundingArea *lineart_line_first_bounding_area(LineartRenderBuffer
   }
   interp_v2_v2v2_db(data, rl->l->fbcoord, rl->r->fbcoord, r);
 
-  return lineart_get_bounding_area(rb, data[0], data[1]);
+  return lineart_get_bounding_area_deep(rb, data[0], data[1]);
 }
 
 /* Calculations. */



More information about the Bf-blender-cvs mailing list