MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
CParam_list.h
1 /********************************************************************/
2 /* Copyright (c) 2015 DG Technologies Inc. and Yuzi Mizuno */
3 /* All rights reserved. */
4 /********************************************************************/
5 #ifndef _MGCParam_list_HH_
6 #define _MGCParam_list_HH_
7 
10 #include <list>
11 #include <algorithm>
12 #include "mg/MGCL.h"
13 
14 //Forward class declaration.
15 class MGCurve;
16 
18 class MG_DLL_DECLR MGCParam_list{
19 
20 public:
21 
22 typedef std::list<double> container_type;
23 typedef container_type::iterator Citerator;
24 typedef container_type::const_iterator const_Citerator;
25 typedef container_type::iterator iterator;
26 typedef container_type::const_iterator const_iterator;
27 
29 MG_DLL_DECLR friend std::ostream& operator << (std::ostream&, const MGCParam_list& );
30 
32 
34 explicit MGCParam_list(const MGCurve *curve=0);
35 
36 //Copy Constructor.
37 //MGCParam_list(const MGCParam_list& list);
38 
41 
43 
44 //Assignment.
45 //MGCParam_list& MGCParam_list::operator= (const MGCParam_list&);
46 
48 
50 void append(double param);
51 void push_back(double param){m_CPlist.push_back(param);};
52 
54 void append(const MGCParam_list& lst);
55 
57 Citerator begin(){return m_CPlist.begin();}
58 const_Citerator begin() const{return m_CPlist.begin();}
59 
61 void clear(){m_CPlist.clear();}
62 
64 const MGCurve* curve() const {return m_curve;}
65 
67 Citerator end(){return m_CPlist.end();}
68 const_Citerator end() const{return m_CPlist.end();}
69 
71 int entries() const{return int(size());};
72 int size() const{return int(m_CPlist.size());};
73 
76 Citerator erase(Citerator i){return m_CPlist.erase(i);}
77 
80 double front() const{return m_CPlist.front();};
81 double first() const{return front();};
82 
86 void insertAt(Citerator i, double param){m_CPlist.insert(i, param);};
87 
90 int isEmpty() const{return empty();};
91 int empty() const{return m_CPlist.empty();};
92 
95 double last() const{return back();};
96 double back() const{return m_CPlist.back();};
97 
100 bool lower_bound(double param, double& lowerBound)const{
101  const_Citerator citer = std::lower_bound(m_CPlist.begin(), m_CPlist.end(), param);
102  if(citer == m_CPlist.end())return false;
103  lowerBound = *citer;
104  return true;
105 }
106 
108 void pop_front(){m_CPlist.pop_front();}
109 
111 void pop_back(){m_CPlist.pop_back();}
112 
114 void prepend(double param){push_front(param);};
115 void push_front(double param){m_CPlist.push_front(param);};
116 
119 double removeAt(Citerator i);
120 
123 double removeFirst();
124 
127 double removeLast();
128 
130 void sort(){m_CPlist.sort();};
131 
133 void unique(){m_CPlist.unique();};
134 
135 private:
136  container_type m_CPlist;
137  const MGCurve *m_curve;
138  double m_error;
139 
140 };
141  // end of IsectContainer group
143 #endif
double last() const
Definition: CParam_list.h:95
void push_back(double param)
Definition: CParam_list.h:51
container_type::iterator iterator
Definition: CParam_list.h:25
MGCurve is an abstract class which represents a whole curve.
Definition: Curve.h:63
container_type::const_iterator const_Citerator
Definition: CParam_list.h:24
int isEmpty() const
Definition: CParam_list.h:90
void unique()
erase the same elements as previous element in the sequence.
Definition: CParam_list.h:133
std::ostream & operator<<(std::ostream &ostrm, const MGisect &is)
Debug Function.
Definition: isect.h:95
const MGCurve * curve() const
Returns the pointer to the curve.
Definition: CParam_list.h:64
container_type::iterator Citerator
Definition: CParam_list.h:23
bool lower_bound(double param, double &lowerBound) const
Definition: CParam_list.h:100
double first() const
Definition: CParam_list.h:81
~MGCParam_list()
Definition: CParam_list.h:40
void push_front(double param)
Definition: CParam_list.h:115
container_type::const_iterator const_iterator
Definition: CParam_list.h:26
void prepend(double param)
Adds the parameter to the beginning of the list.
Definition: CParam_list.h:114
int size() const
Definition: CParam_list.h:72
Citerator begin()
Get the pointer of the first element of the m_CPlist.
Definition: CParam_list.h:57
MGParam_Vector provides a list to store parameters of a curve.
Definition: CParam_list.h:18
int entries() const
Returns the number of items that are in the list.
Definition: CParam_list.h:71
void clear()
Clear all the elements in m_CPlist.
Definition: CParam_list.h:61
Citerator erase(Citerator i)
Definition: CParam_list.h:76
const_Citerator begin() const
Definition: CParam_list.h:58
int empty() const
Definition: CParam_list.h:91
void pop_front()
Erase the first element of m_CPlist if not null.
Definition: CParam_list.h:108
double back() const
Definition: CParam_list.h:96
void insertAt(Citerator i, double param)
Definition: CParam_list.h:86
double front() const
Definition: CParam_list.h:80
Citerator end()
Get the pointer of the next of the last element of the m_CPlist.
Definition: CParam_list.h:67
const_Citerator end() const
Definition: CParam_list.h:68
void pop_back()
Erase the last element of m_CPlist if not null.
Definition: CParam_list.h:111
void sort()
Sort the elements in m_CPlist;.
Definition: CParam_list.h:130
std::list< double > container_type
Definition: CParam_list.h:22