~ubuntu-branches/ubuntu/trusty/qgis/trusty

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/***************************************************************************
                          HalfEdge.h  -  description
                             -------------------
    copyright            : (C) 2004 by Marco Hugentobler
    email                : mhugent@geo.unizh.ch
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef HALFEDGE_H
#define HALFEDGE_H

class ANALYSIS_EXPORT HalfEdge
{
  protected:
    /**Number of the dual HalfEdge*/
    int mDual;
    /**Number of the next HalfEdge*/
    int mNext;
    /**Number of the point at which this HalfEdge points*/
    int mPoint;
    /**True, if the HalfEdge belongs to a break line, false otherwise*/
    bool mBreak;
    /**True, if the HalfEdge belongs to a constrained edge, false otherwise*/
    bool mForced;

  public:
    /**Default constructor. Values for mDual, mNext, mPoint are set to -10 which means that they are undefined*/
    HalfEdge();
    HalfEdge( int dual, int next, int point, bool mbreak, bool forced );
    ~HalfEdge();
    /**Returns the number of the dual HalfEdge*/
    int getDual() const;
    /**Returns the number of the next HalfEdge*/
    int getNext() const;
    /**Returns the number of the point at which this HalfEdge points*/
    int getPoint() const;
    /**Returns, whether the HalfEdge belongs to a break line or not*/
    bool getBreak() const;
    /**Returns, whether the HalfEdge belongs to a constrained edge or not*/
    bool getForced() const;
    /**Sets the number of the dual HalfEdge*/
    void setDual( int d );
    /**Sets the number of the next HalfEdge*/
    void setNext( int n );
    /**Sets the number of point at which this HalfEdge points*/
    void setPoint( int p );
    /**Sets the break flag*/
    void setBreak( bool b );
    /**Sets the forced flag*/
    void setForced( bool f );
};

inline HalfEdge::HalfEdge(): mDual( -10 ), mNext( -10 ), mPoint( -10 ), mBreak( false ), mForced( false )
{

}

inline HalfEdge::HalfEdge( int dual, int next, int point, bool mbreak, bool forced ): mDual( dual ), mNext( next ), mPoint( point ), mBreak( mbreak ), mForced( forced )
{

}

inline HalfEdge::~HalfEdge()
{

}

inline int HalfEdge::getDual() const
{
  return mDual;
}

inline int HalfEdge::getNext() const
{
  return mNext;
}

inline int HalfEdge::getPoint() const
{
  return mPoint;
}

inline bool HalfEdge::getBreak() const
{
  return mBreak;
}

inline bool HalfEdge::getForced() const
{
  return mForced;
}

inline void HalfEdge::setDual( int d )
{
  mDual = d;
}

inline void HalfEdge::setNext( int n )
{
  mNext = n;
}

inline void HalfEdge::setPoint( int p )
{
  mPoint = p;
}

inline void HalfEdge::setBreak( bool b )
{
  mBreak = b;
}

inline void HalfEdge::setForced( bool f )
{
  mForced = f;
}

#endif