MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
LCisect_vector.h
1 /********************************************************************/
2 /* Copyright (c) 2015 DG Technologies Inc. and Yuzi Mizuno */
3 /* All rights reserved. */
4 /********************************************************************/
5 #ifndef _MGLCisect_vector_HH_
6 #define _MGLCisect_vector_HH_
7 
12 #include <vector>
13 #include "topo/LCisect.h"
14 
15 //Forward class declaration.
16 class MGCurve;
17 class MGLoop;
18 class MGInterval;
19 
21 
23 class MG_DLL_DECLR MGLCisect_vector{
24 
25 public:
26 
27 typedef std::vector<MGLCisect>::iterator LCiterator;
28 typedef std::vector<MGLCisect>::const_iterator const_LCiterator;
29 typedef std::vector<MGLCisect>::iterator iterator;
30 typedef std::vector<MGLCisect>::const_iterator const_iterator;
31 
32 public:
33 
35 MG_DLL_DECLR friend std::ostream& operator<< (std::ostream&, const MGLCisect_vector& );
36 
39 MGLCisect_vector(const MGLoop& loop);
40 
41 // Operator overload.
42 
43 const MGLCisect& operator[](int i)const{return m_lcisects[i];};
44 MGLCisect& operator[](int i){return m_lcisects[i];};
45 
47 
48 iterator begin(){return m_lcisects.begin();};
49 const_iterator begin()const{return m_lcisects.begin();};
50 iterator end(){return m_lcisects.end();};
51 const_iterator end()const{return m_lcisects.end();};
52 
54 void append(const MGLCisect& lcisect);
55 
56 void append(
57  const MGLEPoint& lp,
58  double t,
59  const MGPosition& uv
60 );
61 
63 void append(const MGLCisect_vector& list);
64 
66 int entries() const{return (int)m_lcisects.size();};
67 
70 const MGLCisect& first() const{return m_lcisects.front();};
71 
73 void insertAt(LCiterator i, const MGLCisect& lcisect)
74 {m_lcisects.insert(i, lcisect);};
75 
77 bool empty() const{return m_lcisects.empty();};
78 
81 const MGLCisect& last() const{return m_lcisects.back();};
82 
84 const MGLoop* loop() const {return m_loop;};
85 
92 void update_lepoint(
93  const MGLEPoint& lep
94 );
95 
96 private:
97  std::vector<MGLCisect> m_lcisects;
98  const MGLoop* m_loop;
99  double m_error_square;
100 
102 };
103  // end of IsectContainer group
105 #endif
MGLCisect_vector defines linked list of MGLCisect.
Definition: LCisect_vector.h:23
MGCurve is an abstract class which represents a whole curve.
Definition: Curve.h:63
const_iterator begin() const
Definition: LCisect_vector.h:49
std::vector< MGLCisect >::const_iterator const_iterator
Definition: LCisect_vector.h:30
const MGLCisect & operator[](int i) const
Loop.
Definition: LCisect_vector.h:43
const MGLoop * loop() const
Return the pointer to loop.
Definition: LCisect_vector.h:84
void insertAt(LCiterator i, const MGLCisect &lcisect)
Insert MGLCisect at the position i.
Definition: LCisect_vector.h:73
const MGLCisect & first() const
Definition: LCisect_vector.h:70
std::ostream & operator<<(std::ostream &ostrm, const MGisect &is)
Debug Function.
Definition: isect.h:95
MGLCisect is to represent Loop and curve intersection point of a parent face parameter space...
Definition: LCisect.h:25
MGLCisect & operator[](int i)
Definition: LCisect_vector.h:44
Interval of 1 dimension, i.e. MGInterval is a real line.
Definition: Interval.h:22
Represent a positional data.
Definition: Position.h:28
iterator end()
Definition: LCisect_vector.h:50
Is to represent a Loop's point.
Definition: LEPoint.h:28
const_iterator end() const
Definition: LCisect_vector.h:51
MGLoop is a boundary of a face, a boundary of 2D manifold cell.
Definition: Loop.h:44
std::vector< MGLCisect >::iterator LCiterator
Definition: LCisect_vector.h:27
const MGLCisect & last() const
Definition: LCisect_vector.h:81
int entries() const
Return the number of items that are in the list.
Definition: LCisect_vector.h:66
iterator begin()
Member Function.
Definition: LCisect_vector.h:48
bool empty() const
Return true if there are no items in the list, false otherwise.
Definition: LCisect_vector.h:77
std::vector< MGLCisect >::iterator iterator
Definition: LCisect_vector.h:29
std::vector< MGLCisect >::const_iterator const_LCiterator
Definition: LCisect_vector.h:28