An abstract base class for a family of client device interfaces–including trackers, buttons, dials, and other analog inputs.
This provides a common interface to connect to such devices and extract their data; it is used by
TrackerNodeetc. to put these devices in the data graph.
bool fork_asynchronous_thread(double poll_time)
Forks a separate thread to do all the polling of connected devices. The forked thread will poll after every poll_time seconds has elapsed. Returns true if the fork was successful, or false otherwise (for instance, because we were already forked, or because asynchronous threads are disabled).
static TypeHandle get_class_type(void)
CoordinateSystem get_coordinate_system(void) const
Returns the coordinate system that all devices associated with this client will operate in. Normally, this is CS_default.
double get_last_poll_time(void) const
Returns the time (according to the global ClockObject’s get_real_time() method) of the last device poll.
bool is_forked(void) const
Returns true if the
ClientBasehas been forked (and, therefore,
poll()does not need to be called), false otherwise.
Initiates a poll of the client devices, if we are not forked and if we have not already polled this frame. Returns true if the poll occurred, or false if it did not.
void set_coordinate_system(CoordinateSystem cs)
Specifies the coordinate system that all devices associated with this client will operate in. Normally, this is CS_default.
- bool fork_asynchronous_thread(double poll_time)