5#include <marenv/marenv.h>
6#include <marenv/wake/WakeAccumulator.h>
7#include <marenv/wake/WakeField.h>
58 void Add(
const std::string&
id, std::shared_ptr<WakeField> field);
66 bool Has(
const std::string&
id)
const;
71 std::shared_ptr<WakeField>
Get(
const std::string&
id)
const;
74 std::vector<std::string>
Ids()
const;
106 using Entry = std::pair<std::string, std::shared_ptr<WakeField>>;
108 std::vector<Entry>::const_iterator Find(
const std::string&
id)
const;
110 std::vector<Entry> m_fields;
Definition WakeField.h:50
Definition WakeRegistry.h:50
void Add(const std::string &id, std::shared_ptr< WakeField > field)
std::vector< std::shared_ptr< const WakeField > > SelectReaching(const WakeQueryRegion ®ion, const WakeField *exclude=nullptr) const
bool Has(const std::string &id) const
Whether a field is registered under id.
std::vector< std::string > Ids() const
The identifiers in registration order.
std::shared_ptr< WakeField > Get(const std::string &id) const
void Remove(const std::string &id)
WakeComposition Compose(double time, const double pos[3], const WakeQuery &query={}) const
Policy mixin: this type is neither copyable nor movable.
Definition marenv.h:96
Definition WakeAccumulator.h:15
Definition WakeField.h:17
Definition WakeRegistry.h:24
const WakeField * exclude
A registered field to skip; null skips none.
Definition WakeRegistry.h:25
const WakeField * own
An unregistered field to compose in as well; null adds none.
Definition WakeRegistry.h:26