Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
186 Kapitel 10 Implementierung<br />
10.4.2 TUIOServer<br />
Mittels der Methode Connect() erstellt TUIOServer eine UdpClient-Instanz, die die<br />
von der Fingertracking-Software gesendeten TUIO-Daten empfängt <strong>und</strong> an die Methode<br />
ProcessMessage() weiterleitet. ProcessMessage() fügt die so erkannten Blobs in<br />
der Klasse Multitouch durch Aufruf der Methode AddBlob() ein. Ferner trägt die<br />
Methode auch dazu bei, dass beim Verschwinden eines Blobs von der Tischoberfläche<br />
dieser auch wieder aus der Liste der erkannten Finger entfernt wird.<br />
10.4.3 Multitouch<br />
Die wichtigste Funktion der Klasse Multitouch ist die Umwandlung der von<br />
der Fingertracking-Software erkannten Blob-Positionsveränderungen in Gesten <strong>und</strong><br />
daraufhin das Feuern von Events, die diesen Gesten entsprechen.<br />
Im Folgenden werden die erkennbaren Gesten <strong>und</strong> die daraufhin gefeuerten Events<br />
beschrieben.<br />
TouchDown Das TouchDown-Event wird abgefeuert, wenn ein neuer Finger die<br />
Tischoberfläche berührt <strong>und</strong> die darunterliegenden GUI-Elemente keine weiteren<br />
Blobs in BlobsProperty haben. Damit wird gewährleistet, dass eine Berührung<br />
unabhängig von der Fingeranzahl erkannt wird.<br />
TouchEnter Das TouchEnter-Event wird ausgelöst, wenn ein Finger auf der Tischoberfläche<br />
seine Position ändert <strong>und</strong> dabei auf einen Bereich eines GUI-Elements<br />
kommt, dass noch keinen Blob in der BlobsProperty-Liste hat.<br />
TouchUp Ein TouchUp-Event wird gesendet, wenn ein Finger von der Tischoberfläche<br />
abgehoben wird <strong>und</strong> das darunterliegende GUI-Element nur eine Blob-<br />
Objektinstanz in der BlobsProperty hatte. Es wird hierdurch gewährleistet, dass<br />
eine Berührung unabhängig von der Fingeranzahl ist <strong>und</strong> ein TouchUp-Event nur<br />
ausgelöst wird, wenn alle Finger vom entsprechenden GUI-Element abgehoben<br />
wurden.<br />
TouchLeave Das TouchLeave-Event wird abgefeuert, wenn der letzte Finger auf einem<br />
GUI-Element dieses verlässt <strong>und</strong> die BlobsProperty somit leer wird. Hierdurch<br />
wird gewährleistet, dass das TouchLeave-Event von der Fingeranzahl unabhängig<br />
ist.<br />
TouchMove Das TouchMove-Event wird ausgelöst, wenn ein Finger auf der Tischoberfläche<br />
die Position ändert. Für jedes darunterliegende GUI-Element wird