InputDevice¶
from panda3d.core import InputDevice
-
class
InputDevice
¶ Bases:
TypedReferenceCount
This is a structure representing a single input device. Input devices may have zero or more buttons, pointers, or axes associated with them, and optionally a motion tracker.
These devices are brought under a common interface because there is such a large range of devices out there that may support any number of these types of axes, we couldn’t even begin to cover them with type-specific subclasses.
Use the various has_() and get_num_() methods to determine information about the device capabilities. For instance, has_keyboard() will give an indication that you can receive keystroke events from this device, and
getNumButtons()
will tell you that the device may send button events.There is the DeviceType enumeration, however, which will (if known) contain identification of the general category of devices this fits in, such as keyboard, mouse, gamepad, or flight stick.
New in version 1.10.0.
Inheritance diagram
-
class
Axes
¶ alias of
pvector_AxisState
-
enum
Axis
¶ -
enumerator
none
= 0¶
-
enumerator
x
= 1¶ Generic translational axes
-
enumerator
y
= 2¶
-
enumerator
z
= 3¶
-
enumerator
yaw
= 4¶ Generic rotational axes, used by joysticks and 3D mice
-
enumerator
pitch
= 5¶
-
enumerator
roll
= 6¶
-
enumerator
left_x
= 7¶ Gamepad
-
enumerator
left_y
= 8¶
-
enumerator
left_trigger
= 9¶
-
enumerator
right_x
= 10¶
-
enumerator
right_y
= 11¶
-
enumerator
right_trigger
= 12¶
-
enumerator
throttle
= 13¶ Flight stick specific
-
enumerator
rudder
= 14¶ When available separately from yaw
-
enumerator
wheel
= 15¶ Steering wheel / pedals
-
enumerator
accelerator
= 16¶
-
enumerator
brake
= 17¶
-
enumerator
pressure
= 18¶ Pen pressure
-
enumerator
-
class
AxisState
¶ -
__init__
(param0: AxisState)¶
-
property
axis
→ Axis¶ - Getter
getter for InputDevice::Axis InputDevice::AxisState::axis;
- Setter
setter for InputDevice::Axis InputDevice::AxisState::axis;
-
-
class
BatteryData
¶ -
__init__
()¶
-
__init__
(param0: BatteryData)
-
-
class
ButtonState
¶ -
__init__
(param0: ButtonState)¶
-
property
handle
→ ButtonHandle¶ getter for ButtonHandle InputDevice::ButtonState::handle;
-
-
class
Buttons
¶ alias of
pvector_ButtonState
-
enum
DeviceClass
¶ This enum contains information that can be used to identify the type of input device.
-
enumerator
unknown
= 0¶ It is not known what type of device this is.
-
enumerator
virtual_device
= 1¶ This means that the device doesn’t correspond to a physical device, but rather to a dynamic source of input events.
-
enumerator
keyboard
= 2¶ A physical, alphabetical keyboard.
-
enumerator
mouse
= 3¶
-
enumerator
touch
= 4¶
-
enumerator
gamepad
= 5¶ A gamepad with action buttons, a D-pad, and thumbsticks.
-
enumerator
flight_stick
= 6¶
-
enumerator
steering_wheel
= 7¶
-
enumerator
dance_pad
= 8¶
-
enumerator
hmd
= 9¶ Head-mounted display.
-
enumerator
spatial_mouse
= 10¶ 3D mouse, such as produced by 3Dconnexion.
-
enumerator
digitizer
= 11¶ A graphics tablet with stylus/pen.
-
enumerator
-
enum
Feature
¶ -
enumerator
pointer
= 0¶ The device provides absolute screen coordinates.
-
enumerator
keyboard
= 1¶ The device has an interface for providing text input.
-
enumerator
tracker
= 2¶ The device has a motion tracker, such as an HMD.
-
enumerator
vibration
= 3¶ The device can produce force feedback.
-
enumerator
battery
= 4¶ The device provides information about battery life.
-
enumerator
-
property
_battery_data
→ BatteryData¶ getter for InputDevice::BatteryData InputDevice::_battery_data;
getter for InputDevice::Buttons InputDevice::_buttons;
-
property
_pointer_data
→ PointerData¶ getter for PointerData InputDevice::_pointer_data;
-
property
_tracker_data
→ TrackerData¶ getter for TrackerData InputDevice::_tracker_data;
-
property
axes
→ Sequence[AxisState]¶ Returns the axis state that is set at the given index, or throw an assert if the index was not found in the list.
-
property
battery
→ BatteryData¶ Returns a rough indication of the battery level, ranging from 0 (completely empty battery) to the indicated max_level value.
Make device buttons and axes iterable
Returns the
InputDeviceButtonState
that is set at the given index, or throw an assert if the index was not found in the list.
-
property
connected
→ bool¶ This is false if we know that the device is not currently connected. May report false positives if we can’t know this with certainty.
Returns true if the device is still connected and able to receive data, false otherwise. May return false positives.
-
property
device_class
→ DeviceClass¶ This contains an identification of the general type of device. If this could not be determined, it is set to DC_unknown.
Returns an identification of the general type of device. If this could not be determined, returns DeviceClass.unknown.
-
findAxis
(axis: Axis) → AxisState¶ Returns the first AnalogAxis found with the given axis, or throw an assert if the axis was not found in the list.
-
findButton
(handle: ButtonHandle) → ButtonState¶ Returns the first
InputDeviceButtonState
found with the given axis, or throw an assert if the button handle was not found in the list.
-
getButtonEvents
() → ButtonEventList¶ Returns the list of recently-generated ButtonEvents. The list is also cleared.
-
static
getClassType
() → TypeHandle¶
-
getPointerEvents
() → PointerEventList¶ Returns a
PointerEventList
containing all the recent pointer events. Clears the list.
-
hasButtonEvent
() → bool¶ Returns true if this device has a pending button event (a mouse button or keyboard button down/up), false otherwise. If this returns true, the particular event may be extracted via get_button_event().
-
hasPointerEvent
() → bool¶ Returns true if this device has a pending pointer event (a mouse movement), or false otherwise. If this returns true, the particular event may be extracted via get_pointer_event().
-
property
manufacturer
→ string¶ The device’s manufacturer, or the empty string if not known.
Returns a string containing the manufacturer of the device, if this information is known.
-
mapAxis
(index: int, axis: Axis) → None¶ Associates the indicated Axis with the axis of the indicated index number. Pass Axis::none to turn off any association.
It is not necessary to call this if you simply want to query the state of the various axes by index number.
-
mapButton
(index: int, handle: ButtonHandle) → None¶ Associates the indicated
ButtonHandle
with the button of the indicated index number. When the given button index changes state, a corresponding ButtonEvent will be generated with the givenButtonHandle
. PassButtonHandle.none()
to turn off any association.It is not necessary to call this if you simply want to query the state of the various buttons by index number; this is only necessary in order to generate ButtonEvents when the buttons change state.
-
property
name
→ string¶ The human-readable name of this input device.
Returns a human-readable name for the device. Not necessarily unique.
-
poll
() → None¶ Polls the input device for new activity, to ensure it contains the latest events. This will only have any effect for some types of input devices; others may be updated automatically, and this method will be a no-op.
-
property
product_id
→ int¶ USB product ID of the device, or 0 if not known.
Returns a string containing the USB product ID of the device, if this information is known.
-
property
serial_number
→ string¶ The device’s serial number, or the empty string if not known.
Returns a string containing the serial number of the device, if this information is known.
-
setVibration
(strong: float, weak: float) → None¶ Sets the strength of the vibration effect, if supported. The values are clamped to 0-1 range. The first value axes the low-frequency rumble motor, whereas the second axes the high-frequency motor, if present.
-
property
tracker
→ TrackerData¶ Getters for the various types of device data.
Returns the
TrackerData
associated with the input device’s tracker. This only makes sense ifhasTracker()
also returns true.
-
class