extent: add indexing operator

This commit is contained in:
Danny Robson 2015-03-03 00:14:16 +11:00
parent 08783ef1a3
commit 791b91420f
2 changed files with 47 additions and 3 deletions

View File

@ -90,11 +90,11 @@ util::extent<T>::area (void) const
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
template <typename T> template <typename T>
util::extent<T> util::extent<T>
util::extent<T>::expanded (util::vector<2,T> size) const util::extent<T>::expanded (util::vector<2,T> mag) const
{ {
return { return {
w + size.x, w + mag.x,
h + size.y h + mag.y
}; };
} }
@ -126,6 +126,45 @@ util::extent<T>::empty (void) const
} }
///////////////////////////////////////////////////////////////////////////////
template <typename T>
T&
util::extent<T>::operator[] (size_t idx)
{
switch (idx) {
case 0: return w;
case 1: return h;
default:
unreachable ();
}
}
//-----------------------------------------------------------------------------
template <typename T>
const T&
util::extent<T>::operator[] (size_t idx) const
{
switch (idx) {
case 0: return w;
case 1: return h;
default:
unreachable ();
}
}
//-----------------------------------------------------------------------------
template <typename T>
size_t
util::extent<T>::size (void) const
{
return 2u;
}
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
template <typename T> template <typename T>
bool bool

View File

@ -50,6 +50,11 @@ namespace util {
bool empty (void) const; bool empty (void) const;
T& operator[] (size_t idx);
const T& operator[] (size_t idx) const;
size_t size (void) const;
bool operator ==(const extent& rhs) const; bool operator ==(const extent& rhs) const;
bool operator !=(const extent& rhs) const bool operator !=(const extent& rhs) const
{ return !(*this == rhs); } { return !(*this == rhs); }