Skip to content
floe edited this page Apr 26, 2013 · 9 revisions

Note: this Wiki has been transferred from the old Sourceforge Wiki and is currently being updated.

Table of Contents

Tangible Interactive Surfaces for Collaboration between Humans

For a high-level overview of libtisch, see http://tisch.sourceforge.net. 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: