author | Francesco Abbate <francesco.bbt@gmail.com> | 2012年01月05日 16:27:55 +0100 |
---|---|---|
committer | Francesco Abbate <francesco.bbt@gmail.com> | 2012年01月30日 21:26:02 +0100 |
commit | 6a1fc7ce42d752b43aab688c25305098f1525b84 (patch) | |
tree | 75e23e2f476fbb6ef26d38a5963708ad240728ce /agg-plot/utils.h | |
parent | 349fb72c939405efb9a25aea3fbd90da2f10a8f8 (diff) | |
download | gsl-shell-6a1fc7ce42d752b43aab688c25305098f1525b84.tar.gz |
-rw-r--r-- | agg-plot/utils.h | 24 |
diff --git a/agg-plot/utils.h b/agg-plot/utils.h index 311ca5c0..d90febf6 100644 --- a/agg-plot/utils.h +++ b/agg-plot/utils.h @@ -2,6 +2,7 @@ #define AGGPLOT_UTILS_H #include "agg_trans_affine.h" +#include "agg_array.h" #ifdef min #undef min @@ -24,6 +25,29 @@ T max(T a, T b) return (a > b) ? a : b; }; +template <class T> +class ptr_list { +public: + ~ptr_list() { clear(); } + + void add(T* p) { m_list.add(p); } + + T* operator [] (unsigned k) const { return m_list[k]; } + + unsigned size() const { return m_list.size(); } + + void clear() + { + unsigned n = m_list.size(); + for (unsigned k = 0; k < n; k++) + delete m_list[k]; + m_list.clear(); + } + +private: + agg::pod_bvector<T*> m_list; +}; + extern void trans_affine_compose (agg::trans_affine& a, const agg::trans_affine& b); |