summaryrefslogtreecommitdiff
path: root/agg/source/agg_line_aa_basics.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'agg/source/agg_line_aa_basics.cpp')
-rwxr-xr-xagg/source/agg_line_aa_basics.cpp82
1 files changed, 0 insertions, 82 deletions
diff --git a/agg/source/agg_line_aa_basics.cpp b/agg/source/agg_line_aa_basics.cpp
deleted file mode 100755
index 34103178d7b7..000000000000
--- a/agg/source/agg_line_aa_basics.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//----------------------------------------------------------------------------
-// Anti-Grain Geometry - Version 2.3
-// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
-//
-// Permission to copy, use, modify, sell and distribute this software
-// is granted provided this copyright notice appears in all copies.
-// This software is provided "as is" without express or implied
-// warranty, and with no claim as to its suitability for any purpose.
-//
-//----------------------------------------------------------------------------
-// Contact: mcseem@antigrain.com
-// mcseemagg@yahoo.com
-// http://www.antigrain.com
-//----------------------------------------------------------------------------
-
-#include <math.h>
-#include "agg_line_aa_basics.h"
-
-namespace agg
-{
- //-------------------------------------------------------------------------
- // The number of the octant is determined as a 3-bit value as follows:
- // bit 0 = vertical flag
- // bit 1 = sx < 0
- // bit 2 = sy < 0
- //
- // [N] shows the number of the orthogonal quadrant
- // <M> shows the number of the diagonal quadrant
- // <1>
- // [1] | [0]
- // . (3)011 | 001(1) .
- // . | .
- // . | .
- // . | .
- // (2)010 .|. 000(0)
- // <2> ----------.+.----------- <0>
- // (6)110 . | . 100(4)
- // . | .
- // . | .
- // . | .
- // (7)111 | 101(5)
- // [2] | [3]
- // <3>
- // 0,1,2,3,4,5,6,7
- int8u line_parameters::s_orthogonal_quadrant[8] = { 0,0,1,1,3,3,2,2 };
- int8u line_parameters::s_diagonal_quadrant[8] = { 0,1,2,1,0,3,2,3 };
-
-
-
- //-------------------------------------------------------------------------
- void bisectrix(const line_parameters& l1,
- const line_parameters& l2,
- int* x, int* y)
- {
- double k = double(l2.len) / double(l1.len);
- double tx = l2.x2 - (l2.x1 - l1.x1) * k;
- double ty = l2.y2 - (l2.y1 - l1.y1) * k;
-
- //All bisectrices must be on the right of the line
- //If the next point is on the left (l1 => l2.2)
- //then the bisectix should be rotated by 180 degrees.
- if(double(l2.x2 - l2.x1) * double(l2.y1 - l1.y1) <
- double(l2.y2 - l2.y1) * double(l2.x1 - l1.x1) + 100.0)
- {
- tx -= (tx - l2.x1) * 2.0;
- ty -= (ty - l2.y1) * 2.0;
- }
-
- // Check if the bisectrix is too short
- double dx = tx - l2.x1;
- double dy = ty - l2.y1;
- if((int)sqrt(dx * dx + dy * dy) < line_subpixel_size)
- {
- *x = (l2.x1 + l2.x1 + (l2.y1 - l1.y1) + (l2.y2 - l2.y1)) >> 1;
- *y = (l2.y1 + l2.y1 - (l2.x1 - l1.x1) - (l2.x2 - l2.x1)) >> 1;
- return;
- }
- *x = int(tx);
- *y = int(ty);
- }
-
-}