Public Member Functions | Static Public Member Functions | List of all members
BBox Class Reference

Container for geographical extent spanned by lowerLeft(x,y) and upperRight(x,y). Assumes longitude=x and latitude=y . More...

#include <BoundingBox.h>

Inheritance diagram for BBox:
Inheritance graph
[legend]
Collaboration diagram for BBox:
Collaboration graph
[legend]

Public Member Functions

 BBox (const BBox &bbox)
 
 BBox (const Rectangle< double > &bbox)
 
bool isMetric () const
 Check if this Bounding Box has metric coordinates, instead of degrees.
 
- Public Member Functions inherited from Rectangle< double >
 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. More...
 
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].
 
- Public Member Functions inherited from UniTuple< double, 4 >
 UniTuple (const TT &... args)
 
 UniTuple (const UniTuple< double, N > &t)
 Copy constructor.
 
 UniTuple (std::initializer_list< S > l)
 
tuple_toperator= (const tuple_t &t)
 
tuple_toperator= (const value_type &value)
 
tuple_toperator= (std::initializer_list< S > l)
 
virtual const_iterator begin () const override final
 
virtual iterator begin () override final
 
virtual const_iterator end () const override final
 
virtual iterator end () override final
 
tuple_ttuple ()
 
const tuple_ttuple () const
 
void debug (std::ostream &ostr) const
 
- Public Member Functions inherited from TupleBase< S, N >
const S & at (size_t i) const
 Return const reference to element i. More...
 
const S & operator[] (size_t i) const
 
S & at (size_t i)
 Return reference to element i. More...
 
S & operator[] (size_t i)
 
bool operator== (const tuplebase_t &t) const
 Equality operator.
 
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_tassignSequence (T &sequence, bool LENIENT=false)
 Proposed for tuples only; derived classes should not shadow this. More...
 
void fill (S i)
 Set all the elements to i.
 
void clear ()
 
virtual std::ostream & toStream (std::ostream &ostr, char separator=',') const
 
std::string toStr (char separator=',') const
 
virtual void updateTuple ()
 

Static Public Member Functions

static bool isMetric (const Point2D< double > &p)
 Checks if a coordinate (x,y) == (lon,lat) looks like metric, that is, beyond [-90,+90] or [-180,+180]. More...
 
static bool isMetric (double x, double limit)
 Checks if a coordinate looks like metric, that is, beyond [-90,+90] or [-180,+180].
 
- Static Public Member Functions inherited from TupleBase< S, N >
static size_t size ()
 Return the number of elements. More...
 

Additional Inherited Members

- Public Types inherited from UniTuple< double, 4 >
typedef double value_type
 
typedef UniTuple< double, N > tuple_t
 
typedef double * iterator
 
typedef const double * const_iterator
 
- Public Types inherited from TupleBase< S, N >
typedef TupleBase< S, N > tuplebase_t
 
typedef S value_type
 
typedef S * iterator
 
typedef S const * const_iterator
 
- Public Attributes inherited from Rectangle< double >
Point2D< double > lowerLeft
 
Point2D< double > upperRight
 
- Static Public Attributes inherited from UniTuple< double, 4 >
static const size_t tuple_size
 
- Static Public Attributes inherited from TupleBase< S, N >
static const size_t storageTypeSize = sizeof(S)
 
- Protected Member Functions inherited from Rectangle< double >
bool limit (const double &lowerBound, const double &upperBound, double &x)
 Limits x between interval [lowerBound, upperBound].
 
- Protected Member Functions inherited from UniTuple< double, 4 >
 UniTuple (UniTuple< double, N2 > &tuple, size_t i)
 
double & next ()
 
- Protected Member Functions inherited from TupleBase< S, N >
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, ...)
 
- Protected Attributes inherited from UniTuple< double, 4 >
const iterator start
 

Detailed Description

Container for geographical extent spanned by lowerLeft(x,y) and upperRight(x,y). Assumes longitude=x and latitude=y .

Member Function Documentation

◆ isMetric()

static bool isMetric ( const Point2D< double > &  p)
inlinestatic

Checks if a coordinate (x,y) == (lon,lat) looks like metric, that is, beyond [-90,+90] or [-180,+180].

This simple heuristic assumes that user does not need geographical areas of 360m × 180m or smaller.


The documentation for this class was generated from the following file: