[Bf-blender-cvs] [9f4d79d02ad] lanpr-under-gp: LineArt: Adjacent triangle hack.

YimingWu noreply at git.blender.org
Wed Jul 29 09:09:34 CEST 2020


Commit: 9f4d79d02ade3eaa520429ef728bf7bf4bea0c4d
Author: YimingWu
Date:   Wed Jul 29 14:29:51 2020 +0800
Branches: lanpr-under-gp
https://developer.blender.org/rB9f4d79d02ade3eaa520429ef728bf7bf4bea0c4d

LineArt: Adjacent triangle hack.

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

M	source/blender/editors/lineart/lineart_cpu.c

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

diff --git a/source/blender/editors/lineart/lineart_cpu.c b/source/blender/editors/lineart/lineart_cpu.c
index 7ff1cc76949..6373c567104 100644
--- a/source/blender/editors/lineart/lineart_cpu.c
+++ b/source/blender/editors/lineart/lineart_cpu.c
@@ -1870,37 +1870,19 @@ static int lineart_triangle_line_imagespace_intersection_v2(SpinLock *UNUSED(spl
   return 1;
 }
 
-static LineartRenderLine *lineart_triangle_share_edge(const LineartRenderTriangle *l,
-                                                      const LineartRenderTriangle *r)
+static bool *lineart_triangle_share_edge(const LineartRenderTriangle *l,
+                                         const LineartRenderTriangle *r)
 {
-  if (l->rl[0] == r->rl[0]) {
-    return r->rl[0];
+  if (l->rl[0]->tl == r || l->rl[0]->tr == r || l->rl[1]->tl == r || l->rl[1]->tr == r ||
+      l->rl[1]->tl == r || l->rl[1]->tr == r) {
+    return true;
   }
-  if (l->rl[0] == r->rl[1]) {
-    return r->rl[1];
+  if (l->rl[0] == r->rl[0] || l->rl[0] == r->rl[1] || l->rl[0] == r->rl[2] ||
+      l->rl[1] == r->rl[0] || l->rl[1] == r->rl[1] || l->rl[1] == r->rl[2] ||
+      l->rl[2] == r->rl[0] || l->rl[2] == r->rl[1] || l->rl[2] == r->rl[2]) {
+    return true;
   }
-  if (l->rl[0] == r->rl[2]) {
-    return r->rl[2];
-  }
-  if (l->rl[1] == r->rl[0]) {
-    return r->rl[0];
-  }
-  if (l->rl[1] == r->rl[1]) {
-    return r->rl[1];
-  }
-  if (l->rl[1] == r->rl[2]) {
-    return r->rl[2];
-  }
-  if (l->rl[2] == r->rl[0]) {
-    return r->rl[0];
-  }
-  if (l->rl[2] == r->rl[1]) {
-    return r->rl[1];
-  }
-  if (l->rl[2] == r->rl[2]) {
-    return r->rl[2];
-  }
-  return 0;
+  return false;
 }
 
 static LineartRenderVert *lineart_triangle_share_point(const LineartRenderTriangle *l,



More information about the Bf-blender-cvs mailing list