diff options
Diffstat (limited to 'core/src/fxge/agg/agg23/agg_shorten_path.h')
-rw-r--r-- | core/src/fxge/agg/agg23/agg_shorten_path.h | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/core/src/fxge/agg/agg23/agg_shorten_path.h b/core/src/fxge/agg/agg23/agg_shorten_path.h deleted file mode 100644 index d7eb4be018..0000000000 --- a/core/src/fxge/agg/agg23/agg_shorten_path.h +++ /dev/null @@ -1,57 +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 -//---------------------------------------------------------------------------- -#ifndef AGG_SHORTEN_PATH_INCLUDED -#define AGG_SHORTEN_PATH_INCLUDED -#include "agg_basics.h" -#include "agg_vertex_sequence.h" -namespace agg -{ -template<class VertexSequence> -void shorten_path(VertexSequence& vs, FX_FLOAT s, unsigned closed = 0) -{ - typedef typename VertexSequence::value_type vertex_type; - if(s > 0 && vs.size() > 1) { - FX_FLOAT d; - int n = int(vs.size() - 2); - while(n) { - d = vs[n].dist; - if(d > s) { - break; - } - vs.remove_last(); - s -= d; - --n; - } - if(vs.size() < 2) { - vs.remove_all(); - } else { - n = vs.size() - 1; - vertex_type& prev = vs[n - 1]; - vertex_type& last = vs[n]; - d = (prev.dist - s) / prev.dist; - FX_FLOAT x = prev.x + (last.x - prev.x) * d; - FX_FLOAT y = prev.y + (last.y - prev.y) * d; - last.x = x; - last.y = y; - if(!prev(last)) { - vs.remove_last(); - } - vs.close(closed != 0); - } - } -} -} -#endif |