FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CastPath.h
1#pragma once
2
23#include <fhsim/ISimObjectLogger.h>
24#include <fhsim_environment/BodyWake.h>
25#include <fhsim_environment/WakeSourceSet.h>
26#include <marenv/wake/WakeRegistry.h> // WakeQuery
27#include <memory>
28#include <string>
29
30namespace environment
31{
32class EnvironmentProvider;
33} // namespace environment
34
35namespace marenv::wake
36{
37class JetField;
38} // namespace marenv::wake
39
41{
42class WakeCaster;
43
49{
50public:
51 virtual ~CastPath() = default;
52
54 virtual const WakeCaster* Engine() const = 0;
55
57 virtual marenv::wake::WakeQuery Query() const = 0;
58
60 virtual const OwnSourceMap* OwnSources() const { return nullptr; }
61
63 virtual int OwnPoint() const { return -1; }
64
74 virtual bool CastBody(double T, const double* X, const WakeCastingObject* body, ISimObjectLogger& logger);
75
84 virtual void CastSet(double T, const double* X, const WakeSourceSet& set, ISimObjectLogger& logger);
85};
86
98std::unique_ptr<CastPath> MakeCastPath(const std::string& name, const BodyWakeSettings& settings, double rho, EnvironmentProvider& environment, const marenv::wake::JetField* ownJet);
99
100} // namespace environment::wake::detail
Definition CastPath.h:49
virtual const OwnSourceMap * OwnSources() const
The own sources of the private field (ReceiverBinding::ownSources); null without them.
Definition CastPath.h:60
virtual void CastSet(double T, const double *X, const WakeSourceSet &set, ISimObjectLogger &logger)
virtual bool CastBody(double T, const double *X, const WakeCastingObject *body, ISimObjectLogger &logger)
virtual marenv::wake::WakeQuery Query() const =0
The query of the object's own flow (its registered field skipped, its private field composed in),...
virtual int OwnPoint() const
The point of the own sources that every sample point leaves out (ReceiverBinding::ownPoint); -1: each...
Definition CastPath.h:63
virtual const WakeCaster * Engine() const =0
The engine shown by the BodyWake: its own WakeCaster, the group's for a member; null when nothing is ...
Definition WakeCaster.h:202
Definition JetField.h:134
The casters behind BodyWake; internal, not for SimObjects (ENV-0102).
Definition CasterStep.h:19
std::unique_ptr< CastPath > MakeCastPath(const std::string &name, const BodyWakeSettings &settings, double rho, EnvironmentProvider &environment, const marenv::wake::JetField *ownJet)
Definition WakeSelection.h:31