mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-05 03:15:07 -04:00
device: a few InputDevice API tweaks
find_button() and find_axis() should not error since there is no way to find out whether a button/axis exists or not
This commit is contained in:
parent
2087d8ee84
commit
29170278e9
@ -250,13 +250,8 @@ is_button_known(size_t index) const {
|
|||||||
*/
|
*/
|
||||||
INLINE InputDevice::ButtonState InputDevice::
|
INLINE InputDevice::ButtonState InputDevice::
|
||||||
get_button(size_t index) const {
|
get_button(size_t index) const {
|
||||||
if (index < _buttons.size()) {
|
nassertr_always(index < _buttons.size(), ButtonState());
|
||||||
return _buttons[index];
|
return _buttons[index];
|
||||||
} else {
|
|
||||||
device_cat.error()
|
|
||||||
<< "Index " << index << " was not found in the axes list\n";
|
|
||||||
return ButtonState();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -270,8 +265,6 @@ find_button(ButtonHandle handle) const {
|
|||||||
return _buttons[i];
|
return _buttons[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
device_cat.error()
|
|
||||||
<< "Handle " << handle.get_name() << " was not found in the axes list\n";
|
|
||||||
return ButtonState();
|
return ButtonState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -321,13 +314,8 @@ get_axis_value(size_t index) const {
|
|||||||
*/
|
*/
|
||||||
INLINE InputDevice::AxisState InputDevice::
|
INLINE InputDevice::AxisState InputDevice::
|
||||||
get_axis(size_t index) const {
|
get_axis(size_t index) const {
|
||||||
if (index < _axes.size()) {
|
nassertr_always(index < _axes.size(), AxisState());
|
||||||
return _axes[index];
|
return _axes[index];
|
||||||
} else {
|
|
||||||
device_cat.error()
|
|
||||||
<< "Index " << index << " was not found in the axes list\n";
|
|
||||||
return AxisState();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -341,8 +329,6 @@ find_axis(InputDevice::Axis axis) const {
|
|||||||
return _axes[i];
|
return _axes[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
device_cat.error()
|
|
||||||
<< "Axis " << axis << " was not found in the axes list\n";
|
|
||||||
return AxisState();
|
return AxisState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,6 +142,8 @@ PUBLISHED:
|
|||||||
ALWAYS_INLINE bool is_pressed() const;
|
ALWAYS_INLINE bool is_pressed() const;
|
||||||
|
|
||||||
PUBLISHED:
|
PUBLISHED:
|
||||||
|
operator bool() { return _state != S_unknown; }
|
||||||
|
|
||||||
MAKE_PROPERTY(known, is_known);
|
MAKE_PROPERTY(known, is_known);
|
||||||
MAKE_PROPERTY(pressed, is_pressed);
|
MAKE_PROPERTY(pressed, is_pressed);
|
||||||
|
|
||||||
@ -156,6 +158,8 @@ PUBLISHED:
|
|||||||
constexpr AxisState() = default;
|
constexpr AxisState() = default;
|
||||||
|
|
||||||
PUBLISHED:
|
PUBLISHED:
|
||||||
|
operator bool() { return known && value != 0.0; }
|
||||||
|
|
||||||
Axis axis = Axis::none;
|
Axis axis = Axis::none;
|
||||||
double value = 0.0;
|
double value = 0.0;
|
||||||
bool known = false;
|
bool known = false;
|
||||||
@ -268,6 +272,8 @@ PUBLISHED:
|
|||||||
PT(PointerEventList) get_pointer_events();
|
PT(PointerEventList) get_pointer_events();
|
||||||
|
|
||||||
virtual void output(std::ostream &out) const;
|
virtual void output(std::ostream &out) const;
|
||||||
|
|
||||||
|
public:
|
||||||
static std::string format_device_class(DeviceClass dc);
|
static std::string format_device_class(DeviceClass dc);
|
||||||
static std::string format_axis(Axis axis);
|
static std::string format_axis(Axis axis);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user