#pragma region CPL License
/*
Nuclex Native Framework
Copyright (C) 2002-2013 Nuclex Development Labs
This library is free software; you can redistribute it and/or
modify it under the terms of the IBM Common Public License as
published by the IBM Corporation; either version 1.0 of the
License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
IBM Common Public License for more details.
You should have received a copy of the IBM Common Public
License along with this library
*/
#pragma endregion // CPL License
#ifndef NUCLEX_INPUT_DEVICES_AXES_H
#define NUCLEX_INPUT_DEVICES_AXES_H
namespace Nuclex { namespace Input { namespace Devices {
// ------------------------------------------------------------------------------------------- //
namespace Axes { // until C++ enum class support is rolled out
/// Bit mask for the axes a game pad or joystick can have
enum Enum {
/// X-axis, usually the left-right movement of a stick
PositionX = (1 << 0),
/// Y-axis, usually the forward-backward movement of a stick
PositionY = (1 << 1),
/// Z-axis, often the throttle control
PositionZ = (1 << 2),
/// X-axis velocity
VelocityX = (1 << 3),
/// Y-axis velocity
VelocityY = (1 << 4),
/// Z-axis velocity
VelocityZ = (1 << 5),
/// X-axis acceleration
AccelerationX = (1 << 6),
/// Y-axis acceleration
AccelerationY = (1 << 7),
/// Z-axis acceleration
AccelerationZ = (1 << 8),
/// X-axis force
ForceX = (1 << 9),
/// Y-axis force
ForceY = (1 << 10),
/// Z-axis force
ForceZ = (1 << 11),
/// X-axis rotation
RotationX = (1 << 12),
/// Y-axis rotation
RotationY = (1 << 13),
/// Z-axis rotation (often called the rudder)
RotationZ = (1 << 14),
/// X-axis angular velocity
AngularVelocityX = (1 << 15),
/// Y-axis angular velocity
AngularVelocityY = (1 << 16),
/// Z-axis angular velocity
AngularVelocityZ = (1 << 17),
/// X-axis angular acceleration
AngularAccelerationX = (1 << 18),
/// Y-axis angular acceleration
AngularAccelerationY = (1 << 19),
/// Z-axis angular acceleration
AngularAccelerationZ = (1 << 20),
/// X-axis torque
TorqueX = (1 << 21),
/// Y-axis torque
TorqueY = (1 << 22),
/// Z-axis torque
TorqueZ = (1 << 23)
};
} // namespace Axes
// ------------------------------------------------------------------------------------------- //
}}} // namespace Nuclex::Input::Devices
#endif // NUCLEX_INPUT_DEVICES_AXES_H