using Robust.Client.Graphics;
using Robust.Shared.Map;
using Robust.Shared.Maths;
namespace Robust.Client.UserInterface.CustomControls
{
///
/// Base interface for controls that display a viewport.
///
///
/// This has to be implemented for correct handling of input,
/// you do not strictly need to implement this otherwise.
///
public interface IViewportControl
{
IClydeWindow? Window { get; }
///
/// Converts a point on the screen to map coordinates.
///
///
/// The coordinates, in ABSOLUTE SCREEN PIXEL COORDINATES. NOT CONTROL-RELATIVE COORDINATES.
///
MapCoordinates ScreenToMap(Vector2 coords);
///
/// Converts a point on the map to screen coordinates.
///
///
/// The coordinates, in ABSOLUTE SCREEN PIXEL COORDINATES. NOT CONTROL-RELATIVE COORDINATES.
///
Vector2 WorldToScreen(Vector2 map);
}
}