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; } } }