- Targeted applications
BIAS, (B)ogus-(I)nput (A)ction-(S)elector package. A package defining an interface between application event input data (including but not limited to hardware input) and user-defined actions. The idea being that various sorts of input data, mainly that gathered from an user-interaction (e.g., a mouse button being pressed and dragged), may be modeled and reduced into high-level events. Those “bogus” events are then taken as input to implement user-defined actions on application objects (e.g., push that button or select that geometry on the screen and move it close to me).
Depending on whether or not the user defines her own set of actions, targeted applications are:
Action-less applications simple require to reduce input data into a raw BogusEvent.
In this case, the targeted applications for the package are those able to:
- Itemize the application functionality into a list of actions (see Action).
- Reduce input data into a BogusEvent and characterize it with a Shortcut (which are used to bind the user-defined Actions).
- Implement each action item taking as input those (reduced) BogusEvents (see Grabber and BogusEvent).
Observation: Third parties may not always need to implement their own BogusEvents but simply use (depart from) those already conveniently provided here:
- KeyboardEvent, representing any keyboard.
- ClickEvent which stands for a button clicked.
- MotionEvent which represents data gathered from user motion, e.g., the user moves her hand in front of a kinect, or a finger is being dragged on a touch screen surface. MotionEvents were modeled according to their “degrees-of-freedom (DOFs)” (see DOF1Event, DOF2Event, DOF3Event and DOF6Event), not only because they (DOF’s) represent a nice property to classify input devices, but mainly because manipulating stuff on 3D may be performed differently given events carrying different DOF’s. Intuitively, the greater the DOF’s the richer the user experience may be.
These default bogus-event set should serve as a common ground to all sorts of tangible interfaces manipulating geometry on a 2D/3D space.
Usage is simple:
- Instantiate an InputHandler.
- Define your bogus events.
- Define/implement some Agents capable of dealing with your events and register them at the handler (see registerAgent(Agent)).
- Action-driven applications should additionally implement user-defined actions (see performInteraction(BogusEvent)). In this case, to customize the user experience simply bind bogus event Shortcuts (see shortcut()) to user-defined actions using the Agent Profiles.
- Attach a call to handle() at the end of your main event (drawing) loop.
The package is developed as a git subtree
(see also “here”). It should thus be made part of a
bigger (container) project (see Figure 1). The package only dependency is util, package based
on Daniel Bell gwt-hashcode-equals which provides
Java implementations compatible with gwt. Note that UTIL is distributed as another git subtree.
First (and only) time setup. Here
<my_repo> is the project repo where you plan to include the BIAS and UTIL trees.
1 2 3 4 5 6
git push will push the trees into your remote repo. From now on you will be able to use your repo
as any other basic git repo:
1 2 3 4 5
Read-write access setup (only for developers who have been granted read-write access to the trees)
(do the initial setup above first)
Clone the repo and add the remotes:
1 2 3 4
To update your BIAS subtree:
1 2 3
To update your UTIL subtree:
1 2 3
To contribute to the main project:
To contribute to the BIAS subtree:
To contribute to the UTIL subtree: