MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
CSisect_list.h
1 /********************************************************************/
2 /* Copyright (c) 2015 DG Technologies Inc. and Yuzi Mizuno */
3 /* All rights reserved. */
4 /********************************************************************/
5 #ifndef _MGCSisect_list_HH_
6 #define _MGCSisect_list_HH_
7 
12 #include <list>
13 #include "mg/CSisect.h"
14 
15 //Forward class declaration.
16 class MGCurve;
17 class MGFSurface;
18 
20 
22 class MG_DLL_DECLR MGCSisect_list{
23 
24 public:
25 
26 typedef std::list<MGCSisect> container_type;
27 
28 typedef container_type::iterator CSiterator;
29 typedef container_type::const_iterator const_CSiterator;
30 
31 typedef container_type::iterator iterator;
32 typedef container_type::const_iterator const_iterator;
33 
35 MG_DLL_DECLR friend std::ostream& operator<< (std::ostream&, const MGCSisect_list& );
36 
38 explicit MGCSisect_list(const MGCurve *crv=NULL, const MGFSurface *srf=NULL);
39 
42 
44 
45 void append(const MGCSisect& isect);
46 void push_back(const MGCSisect& isect){m_CSilist.push_back(isect);};
47 
49 void append(
50  const MGPosition& point,
51  double t,
52  const MGPosition& uv,
55  );
56 
57 void append(const MGCSisect_list& list);
58 
60 CSiterator begin(){return m_CSilist.begin();}
61 const_CSiterator begin() const{return m_CSilist.begin();}
62 
64 void clear(){m_CSilist.clear();}
65 
67 const MGCurve* curve() const {return m_curve;};
68 
70 CSiterator end(){return m_CSilist.end();}
71 const_CSiterator end() const{return m_CSilist.end();}
72 
74 int entries() const{ return size();};
75 int size() const{return int(m_CSilist.size());};
76 
79 CSiterator erase(CSiterator i){return m_CSilist.erase(i);}
80 
83 const MGCSisect& first() const{return front();};
84 const MGCSisect& front() const{return m_CSilist.front();};
85 
87 void insertAt(CSiterator i, const MGCSisect& isect)
88 {m_CSilist.insert(i, isect);};
89 
92 int isEmpty() const{return empty();};
93 int empty() const{return m_CSilist.empty();};
94 
97 const MGCSisect& last() const{return m_CSilist.back();};
98 const MGCSisect& back() const{return m_CSilist.back();};
99 
101 void pop_back(){m_CSilist.pop_back();}
102 
104 void pop_front(){m_CSilist.pop_front();}
105 
107 void prepend(const MGCSisect& param){push_front(param);};
108 void push_front(const MGCSisect& isect){m_CSilist.push_front(isect);};
109 
112 MGCSisect removeAt(CSiterator i);
113 
116 MGCSisect removeFirst();
117 
120 MGCSisect removeLast();
121 
123 const MGFSurface* surface() const {return m_surface;};
124 
125 private:
126  container_type m_CSilist;
127  const MGCurve *m_curve;
128  const MGFSurface *m_surface;
129  double m_errort;
130  double m_erroru;
131  double m_errorv;
132 
133 };
134  // end of IsectContainer group
136 #endif
CSiterator erase(CSiterator i)
Definition: CSisect_list.h:79
MGCurve is an abstract class which represents a whole curve.
Definition: Curve.h:63
container_type::iterator CSiterator
Definition: CSisect_list.h:28
const MGCSisect & first() const
Definition: CSisect_list.h:83
void pop_back()
Erase the last element of m_CSilist if not null.
Definition: CSisect_list.h:101
const_CSiterator begin() const
Definition: CSisect_list.h:61
int size() const
Definition: CSisect_list.h:75
std::ostream & operator<<(std::ostream &ostrm, const MGisect &is)
Debug Function.
Definition: isect.h:95
const MGCurve * curve() const
Return the pointer to the curve.
Definition: CSisect_list.h:67
container_type::iterator iterator
Definition: CSisect_list.h:31
const MGCSisect & back() const
Definition: CSisect_list.h:98
CSiterator begin()
Get the pointer of the first element of the m_CSilist.
Definition: CSisect_list.h:60
void push_back(const MGCSisect &isect)
Definition: CSisect_list.h:46
int entries() const
Return the number of items that are in the list.
Definition: CSisect_list.h:74
CSiterator end()
Get the pointer of the next of the last element of the m_CSilist.
Definition: CSisect_list.h:70
~MGCSisect_list()
Destructor.
Definition: CSisect_list.h:41
One Intersection of curve and surface.
Definition: CSisect.h:26
std::list< MGCSisect > container_type
Definition: CSisect_list.h:26
Represent a positional data.
Definition: Position.h:28
void pop_front()
Erase the first element of m_CSilist if not null.
Definition: CSisect_list.h:104
MGCSisect_list defines linked list of MGCSisect.
Definition: CSisect_list.h:22
int isEmpty() const
Definition: CSisect_list.h:92
const_CSiterator end() const
Definition: CSisect_list.h:71
const MGFSurface * surface() const
Return the pointer to the surface.
Definition: CSisect_list.h:123
int empty() const
Definition: CSisect_list.h:93
MGFSurface is an abstract class to provide the comman interfaces to MGFace and MGSurface.
Definition: FSurface.h:33
Unknown. 未知
Definition: MGCL.h:201
void prepend(const MGCSisect &param)
Adds the parameter to the beginning of the list.
Definition: CSisect_list.h:107
const MGCSisect & front() const
Definition: CSisect_list.h:84
const MGCSisect & last() const
Definition: CSisect_list.h:97
container_type::const_iterator const_CSiterator
Definition: CSisect_list.h:29
void insertAt(CSiterator i, const MGCSisect &isect)
Insert MGCSisect at the iterator i.
Definition: CSisect_list.h:87
void push_front(const MGCSisect &isect)
Definition: CSisect_list.h:108
void clear()
Clear all the elements in m_CSilist.
Definition: CSisect_list.h:64
MGCSRELATION
Relation of curve and surface(曲線と曲面の交点の関係).
Definition: MGCL.h:200
container_type::const_iterator const_iterator
Definition: CSisect_list.h:32