|
| Status | Sample (double t, const double pos[3], Value &out) const override |
| |
| Traits::Parts | SampleParts (double t, const double pos[3]) const override |
| |
| bool | MayReach (const WakeQueryRegion ®ion) const override |
| |
|
std::uint64_t | Revision () const override |
| | The number of publishes (see WakeField::Revision()).
|
| |
|
bool | StaticFrom (double t) const override |
| | No blend at t or later and the published snapshot at rest (see WakeField::StaticFrom()).
|
| |
|
void | SampleMany (double t, std::span< const std::array< double, 3 > > positions, std::span< Value > out, std::span< Status > status) const override |
| | Sample() at every point, the published state loaded once (see WakeField::SampleMany()).
|
| |
|
void | Sketch (double t, FieldSketch &out) const override |
| | Appends the sketch of the snapshot blended to at t (see WakeField::Sketch()); nothing before the first publish.
|
| |
template<class Snapshot, class Traits = WakeFieldTraits>
class marenv::wake::BlendedField< Snapshot, Traits >
A field that publishes immutable snapshots and blends them (CONTEXT.md, Blended field; contract C4).
It owns the WakeBlend of Snapshot and implements the virtuals of the field that only load the state once and forward to the snapshot: Sample(), SampleParts(), MayReach(), Revision(), StaticFrom(), SampleMany() and Sketch(). A derived class adds Publish() and the snapshot, and may sample the snapshot another way through SampleWith() and PartsWith() (SourceSetWake leaves point sources out by tag). Adding a virtual to WakeField (or JetField) means one declaration there and one body here.
Performance contract (MENV-0068, 76dbc01): one atomic Load() per query or batch, and no reference-count update per point.
- Template Parameters
-
template<class Snapshot , class Traits = WakeFieldTraits>
Returns the sample split into the parts the blend weighs (see WakeField::SampleParts(); owner ruling R136).
While the published state blends at t or later, the parts hold the samples of the snapshot blended to and of the snapshot blended from at (t, pos); otherwise Sample(t, pos).