Branch data Line data Source code
1 : : /*************************************************************************** 2 : : HalfEdge.h - description 3 : : ------------------- 4 : : copyright : (C) 2004 by Marco Hugentobler 5 : : email : mhugent@geo.unizh.ch 6 : : ***************************************************************************/ 7 : : 8 : : /*************************************************************************** 9 : : * * 10 : : * This program is free software; you can redistribute it and/or modify * 11 : : * it under the terms of the GNU General Public License as published by * 12 : : * the Free Software Foundation; either version 2 of the License, or * 13 : : * (at your option) any later version. * 14 : : * * 15 : : ***************************************************************************/ 16 : : 17 : : #ifndef HALFEDGE_H 18 : : #define HALFEDGE_H 19 : : 20 : : #include "qgis_analysis.h" 21 : : 22 : : #define SIP_NO_FILE 23 : : 24 : : /** 25 : : * \ingroup analysis 26 : : * \class HalfEdge 27 : : * \brief HalfEdge 28 : : * \note Not available in Python bindings. 29 : : */ 30 : : class ANALYSIS_EXPORT HalfEdge 31 : : { 32 : : protected: 33 : : //! Number of the dual HalfEdge 34 : : int mDual = -10; 35 : : //! Number of the next HalfEdge 36 : : int mNext = -10; 37 : : //! Number of the point at which this HalfEdge points 38 : : int mPoint = -10; 39 : : //! True, if the HalfEdge belongs to a break line, FALSE otherwise 40 : : bool mBreak = false; 41 : : //! True, if the HalfEdge belongs to a constrained edge, FALSE otherwise 42 : : bool mForced = false; 43 : : 44 : : public: 45 : : //! Default constructor. Values for mDual, mNext, mPoint are set to -10 which means that they are undefined 46 : : HalfEdge() = default; 47 : : HalfEdge( int dual, int next, int point, bool mbreak, bool forced ); 48 : : 49 : : //! Returns the number of the dual HalfEdge 50 : : int getDual() const; 51 : : //! Returns the number of the next HalfEdge 52 : : int getNext() const; 53 : : //! Returns the number of the point at which this HalfEdge points 54 : : int getPoint() const; 55 : : //! Returns, whether the HalfEdge belongs to a break line or not 56 : : bool getBreak() const; 57 : : //! Returns, whether the HalfEdge belongs to a constrained edge or not 58 : : bool getForced() const; 59 : : //! Sets the number of the dual HalfEdge 60 : : void setDual( int d ); 61 : : //! Sets the number of the next HalfEdge 62 : : void setNext( int n ); 63 : : //! Sets the number of point at which this HalfEdge points 64 : : void setPoint( int p ); 65 : : //! Sets the break flag 66 : : void setBreak( bool b ); 67 : : //! Sets the forced flag 68 : : void setForced( bool f ); 69 : : }; 70 : : 71 : : #ifndef SIP_RUN 72 : : 73 : 0 : inline HalfEdge::HalfEdge( int dual, int next, int point, bool mbreak, bool forced ): mDual( dual ), mNext( next ), mPoint( point ), mBreak( mbreak ), mForced( forced ) 74 : : { 75 : : 76 : 0 : } 77 : : 78 : 0 : inline int HalfEdge::getDual() const 79 : : { 80 : 0 : return mDual; 81 : : } 82 : : 83 : 0 : inline int HalfEdge::getNext() const 84 : : { 85 : 0 : return mNext; 86 : : } 87 : : 88 : 0 : inline int HalfEdge::getPoint() const 89 : : { 90 : 0 : return mPoint; 91 : : } 92 : : 93 : 0 : inline bool HalfEdge::getBreak() const 94 : : { 95 : 0 : return mBreak; 96 : : } 97 : : 98 : 0 : inline bool HalfEdge::getForced() const 99 : : { 100 : 0 : return mForced; 101 : : } 102 : : 103 : 0 : inline void HalfEdge::setDual( int d ) 104 : : { 105 : 0 : mDual = d; 106 : 0 : } 107 : : 108 : 0 : inline void HalfEdge::setNext( int n ) 109 : : { 110 : 0 : mNext = n; 111 : 0 : } 112 : : 113 : 0 : inline void HalfEdge::setPoint( int p ) 114 : : { 115 : 0 : mPoint = p; 116 : 0 : } 117 : : 118 : 0 : inline void HalfEdge::setBreak( bool b ) 119 : : { 120 : 0 : mBreak = b; 121 : 0 : } 122 : : 123 : 0 : inline void HalfEdge::setForced( bool f ) 124 : : { 125 : 0 : mForced = f; 126 : 0 : } 127 : : 128 : : #endif 129 : : 130 : : #endif