"""Adapter for camera stage.""" from typing import Any from engine.pipeline.core import DataType, PipelineContext, Stage class CameraStage(Stage): """Adapter wrapping Camera as a Stage.""" def __init__(self, camera, name: str = "vertical"): self._camera = camera self.name = name self.category = "camera" self.optional = True @property def stage_type(self) -> str: return "camera" @property def capabilities(self) -> set[str]: return {"camera"} @property def dependencies(self) -> set[str]: return {"render.output"} @property def inlet_types(self) -> set: return {DataType.TEXT_BUFFER} @property def outlet_types(self) -> set: return {DataType.TEXT_BUFFER} def process(self, data: Any, ctx: PipelineContext) -> Any: """Apply camera transformation to items.""" if data is None: return data # Apply camera offset to items if hasattr(self._camera, "apply"): # Extract viewport dimensions from context params viewport_width = ctx.params.viewport_width if ctx.params else 80 viewport_height = ctx.params.viewport_height if ctx.params else 24 return self._camera.apply(data, viewport_width, viewport_height) return data