template<typename T, typename U>
class walberla::selectable::SetSelectableObject< T, U >
Implementation of SelectableObject using objects of type SetSelectionPair (see "SetSelectionPair.h") as selection attributes, and objects of type Set (see "Set.h") as selector.
SetSelectableObject is an implementation of SelectableObject that stores objects of type T which are attached with selection attributes of type SetSelectionPair<U>
. Every object of type SetSelectionPair<U>
contains two sets of type Set<U>
- one "include" and one "exclude" set. For information on which objects are selected given a certain selection request see the documentation of the function "select".
|
| SetSelectableObject ()=default |
|
| SetSelectableObject (const T &object, const Set< U > &include, const Set< U > &exclude, const std::string &identifier=std::string()) |
|
| ~SetSelectableObject () override=default |
|
void | add (const T &object, const Set< U > &include, const Set< U > &exclude, const std::string &identifier=std::string()) |
|
virtual | ~SelectableObject ()=default |
|
void | add (const T &object, const SetSelectionPair< U > &attributes, const std::string &identifier=std::string()) |
| This function is used to add an object together with its selection attributes stored in "attributes". More...
|
|
iterator | begin () |
|
const_iterator | begin () const |
|
iterator | end () |
|
const_iterator | end () const |
|
size_t | getNumberOfMatching (const Set< U > &selector) const |
| Returns the number of objects matching the specified "selector". More...
|
|
size_t | get (T &object, const Set< U > &selector) const |
| This function can be used to retrieve the one object whose attributes match with "selector". More...
|
|
void | get (std::vector< T > &object, const Set< U > &selector) const |
| This function can be used to retrieve all objects whose attributes match with the selector "selector". More...
|
|
size_t | get (T &object, std::string &identifier, const Set< U > &selector) const |
| This function can be used to retrieve the one object whose attributes match with "selector". More...
|
|
void | get (std::vector< T > &object, std::vector< std::string > &identifier, const Set< U > &selector) const |
| This function can be used to retrieve all objects whose attributes match with the selector "selector". More...
|
|
T * | getUnique (const Set< U > &selector) |
| Non-const version of getUnique(). More...
|
|
const T * | getUnique (const Set< U > &selector) const |
| This function can be used to retrieve a pointer (!) to the object whose attributes match with "selector". More...
|
|
T * | getUnique (const Set< U > &selector, std::string &identifierOut) |
| Non-const version of getUnique(const S&, std::string& ). More...
|
|
const T * | getUnique (const Set< U > &selector, std::string &identifierOut) const |
| This function is similar to getUnique(const S &selector) but takes an additional output parameter identifier, which is set to the string identifier of the selected object, if a non-zero pointer is returned, otherwise the identifier string is not changed. More...
|
|
void | toStream (std::ostream &os) const |
|
std::string | toString () const |
|
size_t | size () const |
|
bool | empty () const |
|
template<typename T , typename U >
|
inlineoverrideprivatevirtual |
Given a certain selection request 'R' (= "selector" [set of objects of type U]), this function returns the index 'i' of every attribute 'A_i' (A_0 <=> attributes_[0], A_1 <=> attributes_[1], etc.) that matches the request 'R'.
Possible candidates are all A_i ...
- ... whose "include" sets are completely contained within the set R and ...
- ... whose "exclude" sets do not intersect with R.
Out of these possible candidates, the attribute A_x whose "include" set contains most elements is chosen. Additionally, out of all candidates, every A_i whose "include" set contains as many elements as A_x is also chosen.
Implements walberla::selectable::SelectableObject< T, SetSelectionPair< U >, Set< U > >.