using Chernobyl.Graphics;
using Chernobyl.Mathematics.Collision;
using Chernobyl.Mathematics.Geometry;
using Chernobyl.Mathematics.Mechanics;
using Chernobyl.Update;
namespace Chernobyl.Interface.Tool
{
///
/// An interface for working with a cursor that is driven by some input
/// device like a mouse or gamepad. This cursor derives from
/// where the
///
public interface ICursor : IDrawableTransformCollidable2D, IUpdateable
{
///
/// The collision group whose collidables are checked for collisions.
///
ICollidableCollection, Point2D> CollidableCollection { get; }
///
/// The first button on the cursor. This button is used to click on objects,
/// select those objects, choose from lists, etc. This button is often
/// the left mouse button.
///
IButton FirstButton { get; }
///
/// The second button on the cursor. This button is used to open context
/// menus, select secondary actions, etc. This button is often the right
/// mouse button.
///
IButton SecondButton { get; }
///
/// The third button on the cursor. This button is often the middle mouse
/// button.
///
IButton ThirdButton { get; }
}
}