]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Wed, 30 May 2018 20:21:33 +0000 (16:21 -0400)
committerCristy <urban-warrior@imagemagick.org>
Wed, 30 May 2018 20:21:33 +0000 (16:21 -0400)
MagickCore/draw.c

index bfb1e7932a7b1f68c54baa2840673f5378b1bbbf..f6433e619ef91eb0f058ec8b2a6c6efb913cc83c 100644 (file)
@@ -417,8 +417,17 @@ extern "C" {
 
 static int CompareEdges(const void *p_edge,const void *q_edge)
 {
-  double
-    delta;
+#define DrawCompareEdge(p,q) \
+{ \
+  double \
+    delta; \
+ \
+  delta=(p)-(q); \
+  if (delta < 0.0) \
+    return(-1); \
+  if (delta > 0.0) \
+    return(1); \
+}
 
   register const PointInfo
     *p,
@@ -429,41 +438,12 @@ static int CompareEdges(const void *p_edge,const void *q_edge)
   */
   p=((const EdgeInfo *) p_edge)->points;
   q=((const EdgeInfo *) q_edge)->points;
-  delta=p[0].y-q[0].y;
-  if (delta < 0.0)
-    return(-1);
-  if (delta > 0.0)
-    return(1);
-  delta=p[0].x-q[0].x;
-  if (delta < 0.0)
-    return(-1);
-  if (delta > 0.0)
-    return(1);
-  delta=(p[1].x-p[0].x)*(q[1].y-q[0].y)-(p[1].y-p[0].y)*(q[1].x-q[0].x);
-  if (delta < 0.0)
-    return(-1);
-  if (delta > 0.0)
-    return(1);
-  delta=p[0].y-q[0].y;
-  if (delta < 0.0)
-    return(-1);
-  if (delta > 0.0)
-    return(1);
-  delta=p[0].x-q[0].x;
-  if (delta < 0.0)
-    return(-1);
-  if (delta > 0.0)
-    return(1);
-  delta=p[1].y-q[1].y;
-  if (delta < 0.0)
-    return(-1);
-  if (delta > 0.0)
-    return(1);
-  delta=p[1].x-q[1].x;
-  if (delta < 0.0)
-    return(-1);
-  if (delta > 0.0)
-    return(1);
+  DrawCompareEdge(p[0].y,q[0].y);
+  DrawCompareEdge(p[0].x,q[0].x);
+  DrawCompareEdge((p[1].x-p[0].x)*(q[1].y-q[0].y),(p[1].y-p[0].y)*
+    (q[1].x-q[0].x));
+  DrawCompareEdge(p[1].y,q[1].y);
+  DrawCompareEdge(p[1].x,q[1].x);
   return(0);
 }