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// Rounded rectangle vertex generator 17// 18//---------------------------------------------------------------------------- 19 20#ifndef AGG_ROUNDED_RECT_INCLUDED 21#define AGG_ROUNDED_RECT_INCLUDED 22 23#include "agg_basics.h" 24#include "agg_arc.h" 25 26namespace agg 27{ 28 //------------------------------------------------------------rounded_rect 29 // 30 // See Implemantation agg_rounded_rect.cpp 31 // 32 class rounded_rect 33 { 34 public: 35 rounded_rect() {} 36 rounded_rect(double x1, double y1, double x2, double y2, double r); 37 38 void rect(double x1, double y1, double x2, double y2); 39 void radius(double r); 40 void radius(double rx, double ry); 41 void radius(double rx_bottom, double ry_bottom, double rx_top, double ry_top); 42 void radius(double rx1, double ry1, double rx2, double ry2, 43 double rx3, double ry3, double rx4, double ry4); 44 void normalize_radius(); 45 46 void approximation_scale(double s) { m_arc.approximation_scale(s); } 47 double approximation_scale() const { return m_arc.approximation_scale(); } 48 49 void rewind(unsigned); 50 unsigned vertex(double* x, double* y); 51 52 private: 53 double m_x1; 54 double m_y1; 55 double m_x2; 56 double m_y2; 57 double m_rx1; 58 double m_ry1; 59 double m_rx2; 60 double m_ry2; 61 double m_rx3; 62 double m_ry3; 63 double m_rx4; 64 double m_ry4; 65 unsigned m_status; 66 arc m_arc; 67 }; 68 69} 70 71#endif 72 73