TISCH
From tisch
Contents |
Tangible Interactive Surfaces for Collaboration between Humans
For a high-level overview of libtisch, see [[1]]. The wiki is supposed to provide in-depth developer documentation.
FAQ
Unsorted list of things to watch out for:
Q: My textures don't show up or other weird graphics errors happen!
A: Create the Window object first before you create any widgets or textures. Otherwise, OpenGL is still uninitialized.
Interface Specifications
Here are the specifications for the two clear-text communication protocols used between the layers.
Position Protocol: HAL -> Transformation Layer -> Interpretation Layer
Event Protocol: Interpretation Layer <-> Widget Layer
Layer Descriptions
Hardware Abstraction Layer - basically the drivers which talk to the hardware
Transformation Layer - provides calibration from hardware to screen coordinates
Interpretation Layer - transforms raw input data into gesture events
Widget Layer - registers for gesture events and produces visual output
libTISCH Class Reference
libTISCH is divided into five core libraries. Each of them shall be described briefly, followed by a list of the contained classes and their methods. This section is designed to help developers build applications based on libTISCH. Unless noted otherwise, all classes are available on all three supported operating systems (Linux, MacOS X and Windows).
Note that all classes which need to be transferred between layers at some point, including, e.g. Vector or Region, define stream input/output operators (<< and >>). This allows easy serialisation and unserialisation through any std::iostream object.
touchd Config File Format
The touchd tracking daemon uses a somewhat cryptic configuration file format, which is described here: touchd config file format.
For the libtisch-2.0 we have moved to a XML based file format to configure the touchd. The new structure is described here:
