Physics Simulation & Visualization Tool 0.1
A C++ physics simulation engine with real-time 3D visualization
Loading...
Searching...
No Matches
InterceptSolver.h
Go to the documentation of this file.
1#pragma once
2#include "ISolver.h"
3#include <functional>
4
15class InterceptSolver : public ISolver {
16public:
17 // Returns > 0 to continue, <= 0 to stop.
18 using MonitorFunction = std::function<float()>;
19
20 // Returns true to abort (fail/timeout).
21 using TimeoutCondition = std::function<bool()>;
22
29 explicit InterceptSolver(MonitorFunction monitorFunc, TimeoutCondition timeoutFunc = nullptr);
30
37 bool stepFrame() override;
38
39private:
40 MonitorFunction monitorFunc;
41 TimeoutCondition timeoutFunc;
42};
Abstract interface for numerical solvers.
Abstract base class for all numerical solvers.
Definition ISolver.h:59
A linear "monitor" solver that stops simulation when a condition is met.
std::function< float()> MonitorFunction
std::function< bool()> TimeoutCondition
bool stepFrame() override
Checks the current simulation state against the intercept conditions.