using OpenCvSharp;
namespace BetterGenshinImpact.GameTask.Common.Map.Maps.Base;
///
/// 独立地图接口
/// 使用 Scene(场景) 命名是和原神内部命名保持一致
/// 每个独立地图都是一个场景
///
public interface ISceneMap
{
///
/// 获取大地图在整张地图上的位置
///
///
///
Point2f GetBigMapPosition(Mat greyBigMapMat);
///
/// 获取大地图在整张地图上的位置(矩形,含缩放信息)
///
///
///
Rect GetBigMapRect(Mat greyBigMapMat);
///
/// 获取小地图在整张地图上的位置
///
///
///
Point2f GetMiniMapPosition(Mat greyMiniMapMat);
///
/// 获取小地图在整张地图上的位置
/// 根据上一个位置的坐标缩小匹配范围,加速获取速度
///
///
///
///
///
Point2f GetMiniMapPosition(Mat greyMiniMapMat, float prevX, float prevY);
#region 坐标系转换
///
/// 地图图像坐标系 -> 原神游戏坐标系
///
///
///
Point2f? ConvertImageCoordinatesToGenshinMapCoordinates(Point2f imageCoordinates);
Rect? ConvertImageCoordinatesToGenshinMapCoordinates(Rect rect);
///
/// 原神游戏坐标系 -> 地图图像坐标系
///
///
///
Point2f ConvertGenshinMapCoordinatesToImageCoordinates(Point2f? genshinMapCoordinates);
Rect ConvertGenshinMapCoordinatesToImageCoordinates(Rect? rect);
#endregion
}