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// Simple arrowhead/arrowtail generator 17// 18//---------------------------------------------------------------------------- 19#ifndef AGG_ARROWHEAD_INCLUDED 20#define AGG_ARROWHEAD_INCLUDED 21 22#include "agg_basics.h" 23 24namespace agg 25{ 26 27 //===============================================================arrowhead 28 // 29 // See implementation agg_arrowhead.cpp 30 // 31 class arrowhead 32 { 33 public: 34 arrowhead(); 35 36 void head(double d1, double d2, double d3, double d4) 37 { 38 m_head_d1 = d1; 39 m_head_d2 = d2; 40 m_head_d3 = d3; 41 m_head_d4 = d4; 42 m_head_flag = true; 43 } 44 45 void head() { m_head_flag = true; } 46 void no_head() { m_head_flag = false; } 47 48 void tail(double d1, double d2, double d3, double d4) 49 { 50 m_tail_d1 = d1; 51 m_tail_d2 = d2; 52 m_tail_d3 = d3; 53 m_tail_d4 = d4; 54 m_tail_flag = true; 55 } 56 57 void tail() { m_tail_flag = true; } 58 void no_tail() { m_tail_flag = false; } 59 60 void rewind(unsigned path_id); 61 unsigned vertex(double* x, double* y); 62 63 private: 64 double m_head_d1; 65 double m_head_d2; 66 double m_head_d3; 67 double m_head_d4; 68 double m_tail_d1; 69 double m_tail_d2; 70 double m_tail_d3; 71 double m_tail_d4; 72 bool m_head_flag; 73 bool m_tail_flag; 74 double m_coord[16]; 75 unsigned m_cmd[8]; 76 unsigned m_curr_id; 77 unsigned m_curr_coord; 78 }; 79 80} 81 82#endif 83