FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
WakeField.h
1#pragma once
3
4#include <marenv/marenv.h>
5#include <marenv/wake/WakeSampleParts.h>
6#include <marenv/wake/WakeTypes.h>
7
8namespace marenv::wake
9{
17{
18 double centre[3];
19 double radius;
20 double tBegin;
21 double tEnd;
22 double cutoff = 0.0;
23};
24
50{
51public:
52 virtual ~WakeField() = default;
53
80 virtual Status Sample(double t, const double pos[3], WakeSample& out) const = 0;
81
94 virtual WakeSampleParts SampleParts(double t, const double pos[3]) const
95 {
96 WakeSampleParts parts;
97 parts.status = Sample(t, pos, parts.sample);
98 return parts;
99 }
100
115 virtual bool MayReach(const WakeQueryRegion& region) const
116 {
117 (void)region;
118 return true;
119 }
120
121protected:
122 WakeField() = default;
123};
124} // namespace marenv::wake
Definition WakeField.h:50
virtual bool MayReach(const WakeQueryRegion &region) const
Definition WakeField.h:115
virtual WakeSampleParts SampleParts(double t, const double pos[3]) const
Definition WakeField.h:94
virtual Status Sample(double t, const double pos[3], WakeSample &out) const =0
Status
Definition marenv.h:40
Policy mixin: this type is neither copyable nor movable.
Definition marenv.h:96
Definition WakeField.h:17
double radius
Radius of the sphere, m.
Definition WakeField.h:19
double centre[3]
Centre of the sphere, m, NED.
Definition WakeField.h:18
double tEnd
Last query time, s; tEnd >= tBegin.
Definition WakeField.h:21
double cutoff
0: the exact tier (a field may be culled only where d = 0); > 0: the cutoff tier (where d < cutoff).
Definition WakeField.h:22
double tBegin
First query time, s.
Definition WakeField.h:20
Definition WakeSampleParts.h:111
Status status
Not blending: the status of WakeField::Sample() at the sample time.
Definition WakeSampleParts.h:113
WakeSample sample
Not blending: WakeField::Sample() at the sample time.
Definition WakeSampleParts.h:114
Definition WakeTypes.h:21