Our library currently supports:
- TUIO 1.1
- Cursors, Objects and Blobs in 2D, 25D & 3D
- Binary data stream via TCP & LocalConnection
- Callbacks & legacy TouchEvents
- Fully implemented OSC parser
The goal of this library is to deliver a very modular, fast and open as3 Tuio framework that can be easily extended and reused. Another very important aspect is the backwardscompatiblity to make porting of existing Tuio Flash projects as easy as possible.
The diagram below should provide a pretty good overview of the library's key components.
In the following article most of these components will be explained bottom up following the dataflow.
Our library supports all Tuio trackers that implement Tuio 1.0 or 1.1 and can deliver their tracking data via TCP and LocalConnection in a raw binary stream.
A Bridge can be used to convert UDP Packets into a TCP stream or a LocalConnection.
Connectors implement the IOSCConnector interface so other connection types can be easily added. The interface is designed to also allow outgoing streams so the OSC package may also be used in the near future to send OSC commands from Flash to an OSC Server but the currently available IOSCConnectors don't fully implement that part yet.
LocalConnection: This method delivers the best performance in local environment.
TCP: This is currently the only way to directly receive data from a tracker on another computer.
The library sports a fully featured OSC parser implemented in the OSCManager class that can also be used for other osc based protocols. The OSCManager currently isn't able to send OSC commands but this will be added in the near future when the actual TUIO part of the library is feature complete.
The TuioClient implementation is oriented interface wise on the original Tuio Java implementation and uses a callback listener model outside of as3's original eventmodel in order to guarantee the best performance for modules that build upon this api.
The legacy package is a collection of classes that make use of the TuioClients Callback model to offer interfaces that are compatible with the interfaces used in earlier Flash/TUIO libraries. e.g. the TouchEvent of the Tuio/XML library.
The new eventmodel is currently still worked on but will basically be a combination of the old TouchEvent and the callbacks of the TuioClient.
As already mentioned before this callback model is very similar to the one used in Java and is simply used by implementing the ITuioListener Interface and attaching an instance as a listener to the TuioClient. You can find more on that topic in our Guide section in the article Using the TuioClient.