summaryrefslogtreecommitdiff
path: root/agg/source/agg_line_profile_aa.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'agg/source/agg_line_profile_aa.cpp')
-rwxr-xr-xagg/source/agg_line_profile_aa.cpp117
1 files changed, 0 insertions, 117 deletions
diff --git a/agg/source/agg_line_profile_aa.cpp b/agg/source/agg_line_profile_aa.cpp
deleted file mode 100755
index c880704..0000000
--- a/agg/source/agg_line_profile_aa.cpp
+++ /dev/null
@@ -1,117 +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 "agg_renderer_outline_aa.h"
-
-namespace agg
-{
-
- //---------------------------------------------------------------------
- void line_profile_aa::width(double w)
- {
- if(w < 0.0) w = 0.0;
-
- if(w < m_smoother_width) w += w;
- else w += m_smoother_width;
-
- w *= 0.5;
-
- w -= m_smoother_width;
- double s = m_smoother_width;
- if(w < 0.0)
- {
- s += w;
- w = 0.0;
- }
- set(w, s);
- }
-
-
- //---------------------------------------------------------------------
- line_profile_aa::value_type* line_profile_aa::profile(double w)
- {
- m_subpixel_width = int(w * subpixel_size);
- unsigned size = m_subpixel_width + subpixel_size * 6;
- if(size > m_size)
- {
- delete [] m_profile;
- m_profile = new value_type[m_size = size];
- }
- return m_profile;
- }
-
-
- //---------------------------------------------------------------------
- void line_profile_aa::set(double center_width, double _smoother_width)
- {
- double base_val = 1.0;
- if(center_width == 0.0) center_width = 1.0 / subpixel_size;
- if(_smoother_width == 0.0) _smoother_width = 1.0 / subpixel_size;
-
- double _width = center_width + _smoother_width;
- if(_width < m_min_width)
- {
- double k = _width / m_min_width;
- base_val *= k;
- center_width /= k;
- _smoother_width /= k;
- }
-
- value_type* ch = profile(center_width + _smoother_width);
-
- unsigned subpixel_center_width = unsigned(center_width * subpixel_size);
- unsigned subpixel_smoother_width = unsigned(_smoother_width * subpixel_size);
-
- value_type* ch_center = ch + subpixel_size*2;
- value_type* ch_smoother = ch_center + subpixel_center_width;
-
- unsigned i;
-
- unsigned val = m_gamma[unsigned(base_val * aa_mask)];
- ch = ch_center;
- for(i = 0; i < subpixel_center_width; i++)
- {
- *ch++ = (value_type)val;
- }
-
- for(i = 0; i < subpixel_smoother_width; i++)
- {
- *ch_smoother++ =
- m_gamma[unsigned((base_val -
- base_val *
- (double(i) / subpixel_smoother_width)) * aa_mask)];
- }
-
- unsigned n_smoother = profile_size() -
- subpixel_smoother_width -
- subpixel_center_width -
- subpixel_size*2;
-
- val = m_gamma[0];
- for(i = 0; i < n_smoother; i++)
- {
- *ch_smoother++ = (value_type)val;
- }
-
- ch = ch_center;
- for(i = 0; i < subpixel_size*2; i++)
- {
- *--ch = *ch_center++;
- }
- }
-
-
-}
-