MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
CCisect_list.h
1 /********************************************************************/
2 /* Copyright (c) 2015 DG Technologies Inc. and Yuzi Mizuno */
3 /* All rights reserved. */
4 /********************************************************************/
5 #ifndef _MGCCisect_list_HH_
6 #define _MGCCisect_list_HH_
7 
12 #include "mg/CCisect.h"
13 
14 //Forward class declaration.
15 class MGCurve;
16 
18 
20 class MG_DLL_DECLR MGCCisect_list{
21 
22 public:
23 
24 typedef std::list<MGCCisect> container_type;
25 
26 typedef container_type::iterator CCiterator;
27 typedef container_type::const_iterator const_CCiterator;
28 
29 typedef container_type::iterator iterator;
30 typedef container_type::const_iterator const_iterator;
31 
33 MG_DLL_DECLR friend std::ostream& operator<< (std::ostream&, const MGCCisect_list& );
34 
36 explicit MGCCisect_list(const MGCurve *c1=NULL, const MGCurve *c2=NULL);
37 
38 //Copy Constructor.
39 //MGCCisect_list(const MGCCisect_list& list);
40 
43 
45 
46 //Assignment.
47 //MGCCisect_list& MGCCisect_list::operator= (const MGCCisect_list&);
48 
50 
52 void append(
53  const MGCCisect& isect
54 );
55 void push_back(
56  const MGCCisect& isect
57 ){m_CCilist.push_back(isect);};
58 
61 void append(
62  const MGPosition& point,
63  double t1,
64  double t2,
66 );
67 
69 void append(const MGCCisect_list& lst);
70 
72 CCiterator begin(){return m_CCilist.begin();}
73 const_CCiterator begin() const{return m_CCilist.begin();}
74 
76 void clear(){m_CCilist.clear();}
77 
79 const MGCurve* curve1() const {return m_curve1;}
80 
81 const MGCurve* curve2() const {return m_curve2;}
83 
85 CCiterator end(){return m_CCilist.end();}
86 const_CCiterator end() const{return m_CCilist.end();}
87 
89 int entries() const{return int(m_CCilist.size());};
90 int size() const{return int(m_CCilist.size());};
91 
94 CCiterator erase(CCiterator i){return m_CCilist.erase(i);}
95 
98 const MGCCisect& first() const{return m_CCilist.front();};
99 const MGCCisect& front() const{return m_CCilist.front();};
100 
102 void insertAt(CCiterator i, const MGCCisect& isect)
103 {m_CCilist.insert(i, isect);};
104 
107 bool isEmpty() const{return m_CCilist.empty();};
108 bool empty() const{return m_CCilist.empty();};
109 
112 const MGCCisect& last() const{return m_CCilist.back();};
113 const MGCCisect& back() const{return m_CCilist.back();};
114 
116 void pop_front(){m_CCilist.pop_front();}
117 
119 void pop_back(){m_CCilist.pop_back();}
120 
122 void prepend(const MGCCisect& isect){m_CCilist.push_front(isect);};
123 void push_front(const MGCCisect& isect){m_CCilist.push_front(isect);};
124 
127 MGCCisect removeAt(CCiterator i);
128 
131 MGCCisect removeFirst();
132 
135 MGCCisect removeLast();
136 
137 MGCCisect_list& replace12() ;
139 
140 private:
141  std::list<MGCCisect> m_CCilist;
142  const MGCurve* m_curve1;
143  const MGCurve* m_curve2;
144  double m_error;
145 
146 };
147  // end of IsectContainer group
149 #endif
MGCurve is an abstract class which represents a whole curve.
Definition: Curve.h:63
const MGCurve * curve2() const
Definition: CCisect_list.h:81
Is a container of one intersection of two curves.
Definition: CCisect.h:24
container_type::const_iterator const_iterator
Definition: CCisect_list.h:30
const_CCiterator begin() const
Definition: CCisect_list.h:73
~MGCCisect_list()
Definition: CCisect_list.h:42
MGCCRELATION
Relation of curve and curve(曲線と曲線の交点の関係).
Definition: MGCL.h:190
container_type::iterator iterator
Definition: CCisect_list.h:29
int size() const
Definition: CCisect_list.h:90
std::list< MGCCisect > container_type
Definition: CCisect_list.h:24
std::ostream & operator<<(std::ostream &ostrm, const MGisect &is)
Debug Function.
Definition: isect.h:95
bool empty() const
Definition: CCisect_list.h:108
const MGCCisect & front() const
Definition: CCisect_list.h:99
Represent a positional data.
Definition: Position.h:28
const MGCCisect & first() const
Definition: CCisect_list.h:98
const MGCCisect & last() const
Definition: CCisect_list.h:112
void push_front(const MGCCisect &isect)
Definition: CCisect_list.h:123
bool isEmpty() const
Definition: CCisect_list.h:107
Defines a list of MGCCisect(curve to curve intersection).
Definition: CCisect_list.h:20
void insertAt(CCiterator i, const MGCCisect &isect)
Insert MGCCisect at the iterator i.
Definition: CCisect_list.h:102
void pop_back()
Erase the last element of m_CCilist if not null.
Definition: CCisect_list.h:119
int entries() const
Return the number of items that are in the list.
Definition: CCisect_list.h:89
const MGCurve * curve1() const
Return the pointer to curve1.
Definition: CCisect_list.h:79
void clear()
Clear all the elements in m_CCilist.
Definition: CCisect_list.h:76
void pop_front()
Erase the first element of m_CCilist if not null.
Definition: CCisect_list.h:116
container_type::const_iterator const_CCiterator
Definition: CCisect_list.h:27
Definition: MGCL.h:191
const_CCiterator end() const
Definition: CCisect_list.h:86
CCiterator begin()
Get the pointer of the first element of the m_CCilist.
Definition: CCisect_list.h:72
container_type::iterator CCiterator
Definition: CCisect_list.h:26
void push_back(const MGCCisect &isect)
Definition: CCisect_list.h:55
void prepend(const MGCCisect &isect)
Adds the MGCCisect to the beginning of the list.
Definition: CCisect_list.h:122
CCiterator end()
Return the pointer to curve2.
Definition: CCisect_list.h:85
CCiterator erase(CCiterator i)
Definition: CCisect_list.h:94
const MGCCisect & back() const
Definition: CCisect_list.h:113