5#include <marenv/marenv.h>
6#include <marenv/wake/JetField.h>
7#include <marenv/wake/WakeField.h>
8#include <marenv/wake/WakeSelection.h>
55 void Add(
const std::string&
id, std::shared_ptr<WakeField> field);
63 void AddJet(
const std::string&
id, std::shared_ptr<JetField> field);
68 std::shared_ptr<JetField>
GetJet(
const std::string&
id)
const;
76 bool Has(
const std::string&
id)
const;
81 std::shared_ptr<WakeField>
Get(
const std::string&
id)
const;
84 std::vector<std::string>
Ids()
const;
87 std::vector<std::string>
JetIds()
const;
149 using Entry = std::pair<std::string, std::shared_ptr<WakeField>>;
150 using JetEntry = std::pair<std::string, std::shared_ptr<JetField>>;
152 std::vector<Entry>::const_iterator Find(
const std::string&
id)
const;
154 std::vector<JetEntry>::const_iterator FindJet(
const std::string&
id)
const;
157 bool IsTaken(
const std::string&
id)
const;
159 std::vector<Entry> m_fields;
160 std::vector<JetEntry> m_jets;
161 std::vector<const WakeField*> m_fieldPointers;
162 std::vector<const JetField*> m_jetPointers;
163 std::uint64_t m_registrations = 0;
Definition WakeRegistry.h:47
std::vector< std::string > JetIds() const
The identifiers of the jet fields (AddJet()), in registration order.
void Add(const std::string &id, std::shared_ptr< WakeField > field)
std::shared_ptr< JetField > GetJet(const std::string &id) const
bool StaticFrom(double t) const
std::uint64_t Revision() const
bool Has(const std::string &id) const
Whether a wake field is registered under id.
std::vector< std::string > Ids() const
The identifiers in registration order.
WakeSelection Select(const WakeQueryRegion ®ion, const WakeQuery &query={}, const WaterVelocityParts &parts={}) const
std::shared_ptr< WakeField > Get(const std::string &id) const
void AddJet(const std::string &id, std::shared_ptr< JetField > field)
void ComposeMany(double time, std::span< const std::array< double, 3 > > positions, const WakeQuery &query, std::span< WakeComposition > out, const WaterVelocityParts &parts={}) const
void Remove(const std::string &id)
WakeComposition Compose(double time, const double pos[3], const WakeQuery &query={}, const WaterVelocityParts &parts={}) const
Definition WakeSelection.h:119
Policy mixin: this type is neither copyable nor movable.
Definition marenv.h:96
Definition WaterVelocity.h:33
Definition WakeTypes.h:138
Definition WakeField.h:23
Definition WakeSelection.h:33