Many approaches to design an abstraction layer for input devices exist. The solution offered by the inVRs framework tries to restrict the application developer as little as possible, by collecting and exposing the gathered data in a generic data structure - the abstract controller - without making any implication on how this data is to be used later on.
All possible input generated by the devices can be split up into logical components resulting in three different categories: buttons, axes and sensors. Each input device can be represented by a combination of these components.
Mapping Physical Devices on an Abstract Controller¶