using Avalonia.Input;
using Avalonia.Media;
using TraceCad.Core.Geometry;

namespace TraceCad.App.Tools;

public interface ISketchTool
{
    string Name { get; }

    string Prompt { get; }

    void PointerDown(ToolContext context, Point2 modelPoint);

    void PointerMove(ToolContext context, Point2 modelPoint);

    void PointerUp(ToolContext context, Point2 modelPoint);

    void KeyDown(ToolContext context, Key key);

    void Cancel(ToolContext context);

    void RenderOverlay(DrawingContext context, ToolRenderContext renderContext);
}
