using System;
using Chernobyl.Event;
namespace Chernobyl.Mathematics.Mechanics
{
///
/// A mechanism that can be moved in a negative or positive direction in 1
/// dimension.
///
public interface IAxis
{
///
/// The amount the axis was in a certain direction (the previous value
/// of ).
///
float PreviousValue { get; }
///
/// The amount the axis is in a certain direction currently.
///
float CurrentValue { get; }
///
/// The amount of change, from the axis' to
/// its .
///
float ChangeAmount { get; }
///
/// The sensitivity of this axis. A sensitivity of 1 is the default.
/// A lower sensitivity (between 0.0 and 1.0) causes this axis to report
/// a smaller number for it's current value while a greater sensitivity
/// (greater than 1.0) causes the value reported to be greater.
///
float Sensitivity { get; set; }
///
/// Invoked when this axis moves.
///
event EventHandler> OnMove;
///
/// Invoked when this axis moves up.
///
event EventHandler> OnUp;
///
/// Invoked when this axis moves down.
///
event EventHandler> OnDown;
}
}