1//----------------------------------------------------------------------------
2// Anti-Grain Geometry - Version 2.4
3// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
4//
5// Permission to copy, use, modify, sell and distribute this software
6// is granted provided this copyright notice appears in all copies.
7// This software is provided "as is" without express or implied
8// warranty, and with no claim as to its suitability for any purpose.
9//
10//----------------------------------------------------------------------------
11// Contact: mcseem@antigrain.com
12//          mcseemagg@yahoo.com
13//          http://www.antigrain.com
14//----------------------------------------------------------------------------
15
16#ifndef AGG_WARP_MAGNIFIER_INCLUDED
17#define AGG_WARP_MAGNIFIER_INCLUDED
18
19
20namespace agg
21{
22
23    //----------------------------------------------------trans_warp_magnifier
24    //
25    // See Inmplementation agg_trans_warp_magnifier.cpp
26    //
27    class trans_warp_magnifier
28    {
29    public:
30        trans_warp_magnifier() : m_xc(0.0), m_yc(0.0), m_magn(1.0), m_radius(1.0) {}
31
32        void center(double x, double y) { m_xc = x; m_yc = y; }
33        void magnification(double m)    { m_magn = m;         }
34        void radius(double r)           { m_radius = r;       }
35
36        void transform(double* x, double* y) const;
37        void inverse_transform(double* x, double* y) const;
38
39    private:
40        double m_xc;
41        double m_yc;
42        double m_magn;
43        double m_radius;
44    };
45
46
47}
48
49
50#endif
51
52