extent: add indexing operator
This commit is contained in:
parent
08783ef1a3
commit
791b91420f
45
extent.cpp
45
extent.cpp
@ -90,11 +90,11 @@ util::extent<T>::area (void) const
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
template <typename 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 {
|
||||
w + size.x,
|
||||
h + size.y
|
||||
w + mag.x,
|
||||
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>
|
||||
bool
|
||||
|
@ -50,6 +50,11 @@ namespace util {
|
||||
|
||||
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
|
||||
{ return !(*this == rhs); }
|
||||
|
Loading…
Reference in New Issue
Block a user