ROADMAP.md

This commit is contained in:
2026-01-09 21:54:43 +00:00
parent 8a02d4985a
commit cecc7efd1c
2 changed files with 59 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
#include "workflow_frame_scene_step.hpp"
#include "workflow_step_io_resolver.hpp"
#include <stdexcept>
namespace sdl3cpp::services::impl {
WorkflowFrameSceneStep::WorkflowFrameSceneStep(std::shared_ptr<ISceneService> sceneService,
std::shared_ptr<ILogger> logger)
: sceneService_(std::move(sceneService)),
logger_(std::move(logger)) {}
std::string WorkflowFrameSceneStep::GetPluginId() const {
return "frame.scene";
}
void WorkflowFrameSceneStep::Execute(const WorkflowStepDefinition& step, WorkflowContext& context) {
if (!sceneService_) {
throw std::runtime_error("frame.scene requires an ISceneService");
}
WorkflowStepIoResolver resolver;
const std::string deltaKey = resolver.GetRequiredInputKey(step, "delta");
const auto* delta = context.TryGet<double>(deltaKey);
if (!delta) {
throw std::runtime_error("frame.scene missing delta input");
}
sceneService_->UpdateScene(static_cast<float>(*delta));
if (logger_) {
logger_->Trace("WorkflowFrameSceneStep", "Execute",
"delta=" + std::to_string(*delta),
"Scene updated");
}
}
} // namespace sdl3cpp::services::impl

View File

@@ -0,0 +1,24 @@
#pragma once
#include "../interfaces/i_workflow_step.hpp"
#include "../interfaces/i_logger.hpp"
#include "../interfaces/i_scene_service.hpp"
#include <memory>
namespace sdl3cpp::services::impl {
class WorkflowFrameSceneStep final : public IWorkflowStep {
public:
WorkflowFrameSceneStep(std::shared_ptr<ISceneService> sceneService,
std::shared_ptr<ILogger> logger);
std::string GetPluginId() const override;
void Execute(const WorkflowStepDefinition& step, WorkflowContext& context) override;
private:
std::shared_ptr<ISceneService> sceneService_;
std::shared_ptr<ILogger> logger_;
};
} // namespace sdl3cpp::services::impl