Files
gps-denied-onboard/components/route_chunk_manager/base.py
T
Oleksandr Bezdieniezhnykh abc26d5c20 initial structure implemented
docs -> _docs
2025-12-01 14:20:56 +02:00

66 lines
1.5 KiB
Python

from abc import ABC, abstractmethod
from typing import Optional
from models.chunks import ChunkHandle, ChunkBounds, Sim3Transform
from models.core import GPSPoint
from models.processing import ChunkAlignmentResult
class RouteChunkManagerBase(ABC):
@abstractmethod
async def create_chunk(
self, flight_id: str, start_frame_id: int
) -> ChunkHandle:
pass
@abstractmethod
async def add_frame_to_chunk(
self, chunk_id: str, frame_id: int
) -> bool:
pass
@abstractmethod
async def finalize_chunk(self, chunk_id: str) -> bool:
pass
@abstractmethod
async def get_chunk(self, chunk_id: str) -> Optional[ChunkHandle]:
pass
@abstractmethod
async def get_active_chunk(
self, flight_id: str
) -> Optional[ChunkHandle]:
pass
@abstractmethod
async def get_flight_chunks(
self, flight_id: str
) -> list[ChunkHandle]:
pass
@abstractmethod
async def estimate_chunk_bounds(
self, chunk_id: str
) -> ChunkBounds:
pass
@abstractmethod
async def anchor_chunk(
self, chunk_id: str, frame_id: int, gps: GPSPoint
) -> bool:
pass
@abstractmethod
async def match_chunk_to_satellite(
self, chunk_id: str
) -> Optional[ChunkAlignmentResult]:
pass
@abstractmethod
async def apply_transform_to_chunk(
self, chunk_id: str, transform: Sim3Transform
) -> bool:
pass