Gorgon Game Engine
Gorgon::Containers Namespace Reference

This namespace contains containers that are missing from STL or specifically crafted for game or GUI development. More...

Classes

class  basic_Image
 This class is a container for image data. More...
 
class  Collection
 Collection is a container for reference typed objects. More...
 
class  GarbageCollection
 This class acts like a regular collection, however, it performs garbage collection over its elements. More...
 
class  Hashmap
 This class is a reference based hashmap. More...
 
class  Iterator
 Generic iterator interface. More...
 
class  ValueIterator
 Generic iterator interface. More...
 
class  Wave
 This class is a container for wave data. More...
 

Typedefs

using Image = basic_Image< Byte >
 

Functions

template<class C_ , class I_ >
void AddCopy (C_ &target, const I_ &begin, const I_ &end)
 This function copies the contents of the given iterator to the given iterator into the given container using Add method. More...
 
template<class C_ , class I_ >
void AddCopy (C_ &target, const I_ &it)
 This function copies the contents of the given iterator as long as it can be dereferenced to the given container using Add method. More...
 
template<class T_ , class I_ , class A_ >
void AddCopy (std::vector< T_, A_ > &target, const I_ &begin, const I_ &end)
 This function copies the contents of the given iterator as long as it can be dereferenced into the given vector using push_back method. More...
 
template<class T_ , class I_ , class A_ >
void AddCopy (std::vector< T_, A_ > &target, const I_ &it)
 This function copies the contents of the given iterator to the given iterator into the given vector using push_back method. More...
 
template<class I_ >
void Delete (const I_ &first, const I_ &end)
 This function works with collection iterators. More...
 
template<class I_ , class T_ >
I_ Find (const I_ &first, const I_ &end, const T_ &item)
 This function works with collection iterators. More...
 
template<class T_ , class V_ , class P_ >
void PushBackOrUpdate (V_ &vector, const T_ &val, P_ pred)
 This function push_backs an item to the given vector if the item does not exists in the vector using the given predicate, if the item is found, it will be updated. More...
 
template<class T_ , class V_ >
void PushBackOrUpdate (V_ &vector, T_ &&val)
 This function push_backs an item to the given vector if the item does not exists in the vector, if the item is found, it will be updated. More...
 
template<class T_ , class V_ , class P_ >
void PushBackUnique (V_ &vector, const T_ &val, P_ pred)
 This function push_backs an item to the given vector if the item does not exists in the vector using the given predicate. More...
 
template<class T_ , class V_ >
void PushBackUnique (V_ &vector, T_ &&val)
 This function push_backs an item to the given vector if the item does not exists in the vector. More...
 
template<class I_ >
void Remove (const I_ &first, const I_ &end)
 This function works with collection iterators. More...
 
template<class T_ >
void swap (basic_Image< T_ > &l, basic_Image< T_ > &r)
 Swaps two images. Should be used unqualified for ADL. More...
 
template<class T_ >
void swap (Collection< T_ > &l, Collection< T_ > &r)
 Swaps two collections. More...
 
template<class K_ , class T_ , K_(KeyFn)(const T_ &) = nullptr, template< class ... > class M_ = std::map, class C_ = std::less<K_>>
void swap (Hashmap< K_, T_, KeyFn, M_, C_ > &left, Hashmap< K_, T_, KeyFn, M_, C_ > &right)
 
void swap (Wave &l, Wave &r)
 Swaps two waves. Should be used unqualified for ADL. More...
 

Detailed Description

This namespace contains containers that are missing from STL or specifically crafted for game or GUI development.

Typedef Documentation

◆ Image

Function Documentation

◆ AddCopy() [1/4]

void Gorgon::Containers::AddCopy ( C_ &  target,
const I_ &  begin,
const I_ &  end 
)

This function copies the contents of the given iterator to the given iterator into the given container using Add method.

References Gorgon::begin(), and Gorgon::end().

◆ AddCopy() [2/4]

void Gorgon::Containers::AddCopy ( C_ &  target,
const I_ &  it 
)

This function copies the contents of the given iterator as long as it can be dereferenced to the given container using Add method.

◆ AddCopy() [3/4]

void Gorgon::Containers::AddCopy ( std::vector< T_, A_ > &  target,
const I_ &  begin,
const I_ &  end 
)

This function copies the contents of the given iterator as long as it can be dereferenced into the given vector using push_back method.

References Gorgon::begin(), and Gorgon::end().

◆ AddCopy() [4/4]

void Gorgon::Containers::AddCopy ( std::vector< T_, A_ > &  target,
const I_ &  it 
)

This function copies the contents of the given iterator to the given iterator into the given vector using push_back method.

◆ Delete()

void Gorgon::Containers::Delete ( const I_ &  first,
const I_ &  end 
)

This function works with collection iterators.

References Gorgon::end().

◆ Find()

I_ Gorgon::Containers::Find ( const I_ &  first,
const I_ &  end,
const T_ &  item 
)

This function works with collection iterators.

References Gorgon::end().

◆ PushBackOrUpdate() [1/2]

void Gorgon::Containers::PushBackOrUpdate ( V_ &  vector,
const T_ &  val,
P_  pred 
)

This function push_backs an item to the given vector if the item does not exists in the vector using the given predicate, if the item is found, it will be updated.

◆ PushBackOrUpdate() [2/2]

void Gorgon::Containers::PushBackOrUpdate ( V_ &  vector,
T_ &&  val 
)

This function push_backs an item to the given vector if the item does not exists in the vector, if the item is found, it will be updated.

◆ PushBackUnique() [1/2]

void Gorgon::Containers::PushBackUnique ( V_ &  vector,
const T_ &  val,
P_  pred 
)

This function push_backs an item to the given vector if the item does not exists in the vector using the given predicate.

◆ PushBackUnique() [2/2]

void Gorgon::Containers::PushBackUnique ( V_ &  vector,
T_ &&  val 
)

This function push_backs an item to the given vector if the item does not exists in the vector.

◆ Remove()

void Gorgon::Containers::Remove ( const I_ &  first,
const I_ &  end 
)

This function works with collection iterators.

References Gorgon::end().

◆ swap() [1/4]

void Gorgon::Containers::swap ( basic_Image< T_ > &  l,
basic_Image< T_ > &  r 
)

Swaps two images. Should be used unqualified for ADL.

References basic_Image< T_ >::Swap().

◆ swap() [2/4]

void Gorgon::Containers::swap ( Collection< T_ > &  l,
Collection< T_ > &  r 
)

Swaps two collections.

References Collection< T_ >::Swap().

◆ swap() [3/4]

void Gorgon::Containers::swap ( Hashmap< K_, T_, KeyFn, M_, C_ > &  left,
Hashmap< K_, T_, KeyFn, M_, C_ > &  right 
)

◆ swap() [4/4]

void Gorgon::Containers::swap ( Wave l,
Wave r 
)

Swaps two waves. Should be used unqualified for ADL.

References Wave::Swap().