IEnvironment is not stepable
Dear all,
`IEnvironment` does currently not mandate a `Step()` function cf. [`environmentInterface.h`](https://gitlab.eclipse.org/eclipse/simopenpass/opSimulation/-/blob/openscenarioengine-prototyping/sim/include/environmentInterface.h#L24).
Is there a reason it should not be stepable?
Consider the following usage example:
```c++
std::shared_ptr<IEnvironment> m_environment;
std::shared_ptr<IScenarioEngine> m_scenario_engine;
SimulatorImpl::SimulatorImpl()
{
m_environment = std::make_shared<EnvironmentImpl>();
m_scenario_engine = std::make_shared<ScenarioEngineImpl>(m_environment);
...
}
void SimulatorImpl::Step()
{
m_environment->Step();
m_scenario_engine->Step();
...
}
```
If we agreed on making `IEnvironment` stepable, we could derive from `IStepable` e.g.:
```c++
struct IStepable
{
virtual ~IStepable() = default;
virtual bool PreStep() = 0;
virtual bool Step() = 0;
virtual bool PostStep() = 0;
};
```
The need for `PreStep()` and `PostStep()` would need to be discussed as well.
Cheers,
Martin
Martin Stump <martin.stump@mercedes-benz.com> on behalf of Mercedes-Benz Tech Innovation GmbH, [Provider Information](https://github.com/mercedes-benz/foss/blob/master/PROVIDER_INFORMATION.md)
issue