Container for geographical extent spanned by lowerLeft(x,y) and upperRight(x,y). Assumes longitude=x and latitude=y .  
 More...
|  | 
|  | BBox (const BBox &bbox) | 
|  | 
|  | BBox (const Rectangle< double > &bbox) | 
|  | 
| bool | isMetric () const | 
|  | Check if this Bounding Box has metric coordinates, instead of degrees. 
 | 
|  | 
|  | Rectangle (double x=0, double y=0, double x2=0, double y2=0) | 
|  | Basic constructor. 
 | 
|  | 
|  | Rectangle (const Rectangle &r) | 
|  | Copy constructor. 
 | 
|  | 
|  | Rectangle (const Point2D< double > &ll, const Point2D< double > &ur) | 
|  | Constructor with corner points. 
 | 
|  | 
| Rectangle< double > & | operator= (const Rectangle< double > &rect) | 
|  | Assign rectangle of the same type. 
 | 
|  | 
| double | getWidth () const | 
|  | Return the difference of X coordinates. 
 | 
|  | 
| double | getHeight () const | 
|  | Return the difference of Y coordinates. 
 | 
|  | 
| double | getArea () const | 
|  | 
| bool | empty () const | 
|  | Return true if the area is zero. 
 | 
|  | 
| void | getCenter (drain::Point2D< double > &p) const | 
|  | Return the center point. 
 | 
|  | 
| bool | crop (const Rectangle< double > &r) | 
|  | This becomes the intersection of r and this. 
 | 
|  | 
| void | extend (const Rectangle &r) | 
|  | The instance extends to its union with r. 
 | 
|  | 
| void | contract (const Rectangle &r) | 
|  | The instance reduces to itse intersection with r. 
 | 
|  | 
| bool | isInside (const double &x, const double &y) const | 
|  | 
| bool | isOverLapping (const Rectangle &r) const | 
|  | 
| std::vector< double > | toVector () const | 
|  | Write corner points to a vector [llX, llY, urX, urY]. 
 | 
|  | 
| template<typename ... TT> | 
|  | UniTuple (const TT &... args) | 
|  | 
|  | UniTuple (const UniTuple< T, N > &t) | 
|  | Copy constructor. 
 | 
|  | 
| template<typename S > | 
|  | UniTuple (std::initializer_list< S > l) | 
|  | 
| tuple_t & | operator= (const tuple_t &t) | 
|  | 
| tuple_t & | operator= (const value_type &value) | 
|  | 
| template<typename S > | 
| tuple_t & | operator= (std::initializer_list< S > l) | 
|  | 
| virtual const_iterator | begin () const override final | 
|  | 
| virtual const_iterator | end () const override final | 
|  | 
| virtual iterator | begin () override final | 
|  | 
| virtual iterator | end () override final | 
|  | 
| const tuple_t & | tuple () const | 
|  | 
| tuple_t & | tuple () | 
|  | 
| template<typename ... TT> | 
| tuple_t & | tuple (const TT &... args) | 
|  | 
| void | debug (std::ostream &ostr) const | 
|  | 
| const S & | at (size_t i) const | 
|  | Return const reference to element i. 
 | 
|  | 
| const S & | operator[] (size_t i) const | 
|  | 
| S & | at (size_t i) | 
|  | Return reference to element i. 
 | 
|  | 
| S & | operator[] (size_t i) | 
|  | 
| bool | operator== (const tuplebase_t &t) const | 
|  | Equality operator. 
 | 
|  | 
| bool | operator== (const value_type &t) const | 
|  | Equality operator against single value. 
 | 
|  | 
| bool | operator!= (const tuplebase_t &t) const | 
|  | Inequality operator. 
 | 
|  | 
| template<class T > | 
| T & | toSequence (T &sequence) const | 
|  | Copy elements to a Sequence, like stl::list, stl::set or stl::vector. 
 | 
|  | 
| void | set (const tuplebase_t &t) | 
|  | 
| template<class T2 , size_t N2 = 2> | 
| void | set (const TupleBase< T2, N2 > &t) | 
|  | Assign tuple of different type and/or size. 
 | 
|  | 
| void | set (const S &arg) | 
|  | 
| template<typename ... SS> | 
| void | set (const S &arg, const SS &... rest) | 
|  | Set element(s). 
 | 
|  | 
| template<typename T > | 
| void | set (std::initializer_list< T > l) | 
|  | 
| template<class T > | 
| tuplebase_t & | assignSequence (T &sequence, bool LENIENT=false) | 
|  | Proposed for tuples only; derived classes should not shadow this. 
 | 
|  | 
| void | fill (S i) | 
|  | Set all the elements to i. 
 | 
|  | 
| void | clear () | 
|  | 
| virtual void | toStreamFormatted (std::ostream &ostr, char separator=',') const | 
|  | 
| virtual void | toStream (std::ostream &ostr) const | 
|  | 
| std::string | toStr (char separator=',') const | 
|  | 
| virtual void | updateTuple () | 
|  | 
|  | 
| typedef T | value_type | 
|  | 
| typedef UniTuple< T, N > | tuple_t | 
|  | 
| typedef T * | iterator | 
|  | 
| typedef const T * | const_iterator | 
|  | 
| typedef TupleBase< S, N > | tuplebase_t | 
|  | 
| typedef S | value_type | 
|  | 
| typedef S * | iterator | 
|  | 
| typedef S const  * | const_iterator | 
|  | 
| Point2D< double > | lowerLeft | 
|  | 
| Point2D< double > | upperRight | 
|  | 
| static const size_t | tuple_size = N | 
|  | 
| static const size_t | storageTypeSize = sizeof(S) | 
|  | 
| bool | limit (const double &lowerBound, const double &upperBound, double &x) | 
|  | Limits x between interval [lowerBound, upperBound]. 
 | 
|  | 
| T & | next () | 
|  | 
| template<size_t N2> | 
|  | UniTuple (UniTuple< T, N2 > &tuple, size_t i) | 
|  | 
| void | setIndexed (size_t i) | 
|  | Argument stack endpoint function; final step of variadic argument set(arg, ...) . 
 | 
|  | 
| template<typename T2 , typename ... TT> | 
| void | setIndexed (size_t i, T2 arg, const TT &... rest) | 
|  | Worker called by set(T2 arg, T2 arg2, ...) 
 | 
|  | 
| const iterator | start | 
|  | 
Container for geographical extent spanned by lowerLeft(x,y) and upperRight(x,y). Assumes longitude=x and latitude=y .