载入中...
搜索中...
未找到
SimulationBackend.h
浏览该文件的文档.
50[[nodiscard]] constexpr std::string_view simulationBackendDomainName(SimulationBackendDomain domain) noexcept {
74[[nodiscard]] constexpr std::string_view simulationBackendKindName(SimulationBackendKind kind) noexcept {
84[[nodiscard]] constexpr std::string_view simulationDeterminismName(SimulationDeterminism determinism) noexcept {
170 virtual eve::Result<void> step(const eve::SimulationStep& step, const SimulationSettings& settings) = 0;
203 eve::DiagnosticCode::Unsupported, "This simulation backend does not support observation restore",
237 virtual eve::Result<std::unique_ptr<ISimulationBackend>> create(SimulationBackendDomain domain, void* state) = 0;
267 AcceleratorBackendProviderRegistration& operator=(const AcceleratorBackendProviderRegistration&) = delete;
270 AcceleratorBackendProviderRegistration(AcceleratorBackendProviderRegistration&& other) noexcept;
272 AcceleratorBackendProviderRegistration& operator=(AcceleratorBackendProviderRegistration&& other) noexcept;
334EVENGINE_API_BACKENDS eve::Result<void> validateSimulationObservation(const SimulationObservation& observation,
346EVENGINE_API_BACKENDS std::unique_ptr<ISimulationBackend> makeBox2DSimulationBackend(b2World* world);
358 void* context, SimulationStepCallback callback, SimulationBackendKind kind, SimulationDeterminism determinism);
Move-only, checked operation results for the common layer.
Common time values and an injectable deterministic simulation clock.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static constexpr StrongUint64 zero() noexcept
Returns the zero value for this strong type.
Definition StrongUint64.h:24
Move-only lifetime token for one independently registered accelerator provider.
Definition SimulationBackend.h:250
AcceleratorBackendProviderRegistration(const AcceleratorBackendProviderRegistration &)=delete
AcceleratorBackendProviderRegistration & operator=(const AcceleratorBackendProviderRegistration &)=delete
Interactive 3D cloth — Verlet particles + distance constraints. Meter space, +Y up,...
Definition Cloth3D.h:32
Optional provider that creates an accelerator backend for domain state.
Definition SimulationBackend.h:216
virtual ~IAcceleratorBackendProvider()=default
Releases the provider; it does not own the domain state.
virtual eve::Result< std::unique_ptr< ISimulationBackend > > create(SimulationBackendDomain domain, void *state)=0
Creates an accelerator backend for a borrowed domain state.
static constexpr const char * capabilityName
Definition SimulationBackend.h:218
virtual bool supports(SimulationBackendDomain domain) const noexcept=0
Reports whether this provider implements a domain.
Minimal observable contract for physics simulation providers.
Definition SimulationBackend.h:158
virtual eve::Result< void > restoreObservation(const SimulationObservation &)
Restores progress metadata after the owner restores its state.
Definition SimulationBackend.h:200
virtual SimulationObservation observation() const noexcept=0
Returns completed-step observables by value.
virtual ~ISimulationBackend()=default
Releases the backend; borrowed domain state is not destroyed.
virtual eve::Result< void > step(const eve::SimulationStep &step, const SimulationSettings &settings)=0
Advances the borrowed solver state by one checked fixed step.
virtual SimulationBackendKind kind() const noexcept=0
Identifies the provider family.
virtual SimulationDeterminism determinism() const noexcept=0
Returns the provider's replay/determinism guarantee.
Renderer-independent particle rope with XPBD stretch and bend constraints.
Definition Rope3D.h:38
Volumetric particle soft body using overlapping shape-matching clusters.
Definition SoftBody3D.h:27
Box3D rigid-body world. Script coordinates are meters (Box3D native), unlike 2D World which uses pixe...
Definition World3D.h:63
constexpr std::string_view simulationBackendDomainName(SimulationBackendDomain domain) noexcept
Returns the stable diagnostic spelling for an accelerated simulation domain.
Definition SimulationBackend.h:50
std::ostream & operator<<(std::ostream &stream, SimulationBackendKind kind)
Writes a backend kind for diagnostics.
Definition SimulationBackend.h:94
void(*)(void *context, const eve::SimulationStep &step, const SimulationSettings &settings) noexcept SimulationStepCallback
Callback used by a domain-owned CPU or test backend adapter.
Definition SimulationBackend.h:301
constexpr std::string_view simulationBackendKindName(SimulationBackendKind kind) noexcept
Returns the stable backend-kind spelling.
Definition SimulationBackend.h:74
SimulationBackendKind
Kind of implementation that owns a simulation step.
Definition SimulationBackend.h:32
@ MockAccelerator
SimulationBackendDomain
Domain state consumed by an accelerator provider.
Definition SimulationBackend.h:39
@ SurfaceFluid
SimulationDeterminism
Determinism guarantee made by a simulation backend.
Definition SimulationBackend.h:64
@ ToleranceBounded
Results are equivalent within a documented numeric tolerance.
@ BitExact
Same inputs produce identical bits under the declared runtime.
@ ExplicitlyNondeterministic
Results may vary and are not suitable for replay equality.
constexpr std::string_view simulationDeterminismName(SimulationDeterminism determinism) noexcept
Returns the stable determinism-contract spelling.
Definition SimulationBackend.h:84
@ Unsupported
Result of choosing an optional accelerator or CPU alternate path.
Definition SimulationBackend.h:288
std::unique_ptr< ISimulationBackend > backend
Owning selected backend; it borrows the supplied domain state.
Definition SimulationBackend.h:290
Observable backend progress shared by CPU and accelerator providers.
Definition SimulationBackend.h:136
eve::Duration simulatedDuration
Accumulated logical simulation time, never wall-clock time.
Definition SimulationBackend.h:142
float lastDeltaSeconds
Duration consumed by the most recently completed step.
Definition SimulationBackend.h:146
double simulatedSeconds
Accumulated logical simulation time in seconds.
Definition SimulationBackend.h:144
eve::SimulationTick lastTick
Tick of the most recently completed step.
Definition SimulationBackend.h:140
std::uint64_t stepCount
Number of completed steps since backend creation.
Definition SimulationBackend.h:138
Validated solver policy for one simulation step.
Definition SimulationBackend.h:120
int positionIterations
Positive rigid-body position iteration count.
Definition SimulationBackend.h:124
int velocityIterations
Positive rigid-body velocity iteration count.
Definition SimulationBackend.h:122