Public Member Functions | Public Attributes | Protected Member Functions | List of all members
Rectangle< T > Struct Template Reference

Rectange defined through lower left and upper right coordinates. More...

#include <Rectangle.h>

Inheritance diagram for Rectangle< T >:
Inheritance graph
[legend]
Collaboration diagram for Rectangle< T >:
Collaboration graph
[legend]

Public Member Functions

 Rectangle (T x=0, T y=0, T x2=0, T y2=0)
 Basic constructor.
 
 Rectangle (const Rectangle &r)
 Copy constructor.
 
 Rectangle (const Point2D< T > &ll, const Point2D< T > &ur)
 Constructor with corner points.
 
Rectangle< T > & operator= (const Rectangle< T > &rect)
 Assign rectangle of the same type.
 
getWidth () const
 Return the difference of X coordinates.
 
getHeight () const
 Return the difference of Y coordinates.
 
getArea () const
 
bool empty () const
 Return true if the area is zero.
 
void getCenter (drain::Point2D< T > &p) const
 Return the center point.
 
bool crop (const Rectangle< T > &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 T &x, const T &y) const
 
bool isOverLapping (const Rectangle &r) const
 
std::vector< T > toVector () const
 Write corner points to a vector [llX, llY, urX, urY].
 
- Public Member Functions inherited from UniTuple< T, 4 >
 UniTuple (const TT &... args)
 
 UniTuple (const UniTuple< T, 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 ()
 

Public Attributes

Point2D< T > lowerLeft
 
Point2D< T > upperRight
 

Protected Member Functions

bool limit (const T &lowerBound, const T &upperBound, T &x)
 Limits x between interval [lowerBound, upperBound].
 
- Protected Member Functions inherited from UniTuple< T, 4 >
 UniTuple (UniTuple< T, N2 > &tuple, size_t i)
 
T & 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, ...)
 

Additional Inherited Members

- Public Types inherited from UniTuple< T, 4 >
typedef T value_type
 
typedef UniTuple< T, N > tuple_t
 
typedef T * iterator
 
typedef const T * 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
 
- Static Public Member Functions inherited from TupleBase< S, N >
static size_t size ()
 Return the number of elements. More...
 
- Static Public Attributes inherited from UniTuple< T, 4 >
static const size_t tuple_size
 
- Static Public Attributes inherited from TupleBase< S, N >
static const size_t storageTypeSize = sizeof(S)
 
- Protected Attributes inherited from UniTuple< T, 4 >
const iterator start
 

Detailed Description

template<class T>
struct drain::Rectangle< T >

Rectange defined through lower left and upper right coordinates.

See also
drain::Range<T>

Member Function Documentation

◆ crop()

bool crop ( const Rectangle< T > &  r)

This becomes the intersection of r and this.

Two way bounds are needed, because cropping max can be lower than this min.

Returns
- true if rectangle was modified.

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