front_processing/extern/TUIO_JAVA/README.txt
author bastiena
Thu, 22 Mar 2012 18:15:53 +0100
changeset 9 0f44b7360c8d
parent 0 6fefd4afe506
permissions -rw-r--r--
Installer updated files charset set to UTF-8 without tabs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
0f44b7360c8d Installer updated
bastiena
parents: 0
diff changeset
     1
TUIO JAVA LIBRARY AND EXAMPLES
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     2
------------------------------
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     3
Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     4
This software is part of reacTIVision, an open source fiducial
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     5
tracking and multi-touch framework based on computer vision. 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     6
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     7
http://reactivision.sourceforge.net/
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     8
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     9
Demo Applications:
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    10
------------------
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    11
This package contains three demo applications which receive
9
0f44b7360c8d Installer updated
bastiena
parents: 0
diff changeset
    12
TUIO messages from any TUIO enabled tracker or the Simulator.
0f44b7360c8d Installer updated
bastiena
parents: 0
diff changeset
    13
All these applications show how to use the TUIO Java Library 
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    14
in a simple way.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    15
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    16
TuioDemo graphically displays the object and cursor state,
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    17
TuioApplet is a version of TuioDemo for the web browser,
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    18
TuioDump prints the object and cursor state to the console.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    19
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    20
You can use these demo applications for debugging purposes, 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    21
or as a starting point for the development of your own Java 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    22
applications implementing the TUIO protocol. Please refer to
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    23
the source code of the example and the following section.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    24
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    25
Pressing F1 will toggle FullScreen mode with the TuioDemo,
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    26
pressing ESC or closing the Window will end the application.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    27
Hitting the V key will print the TUIO events to the console.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    28
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    29
Keep in mind to make your graphics scalable for the varying
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    30
screen and window resolutions. A reasonable TUIO application
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    31
will run in fullscreen mode, although the windowed mode might
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    32
be useful for debugging purposes or working with the Simulator.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    33
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    34
Application Programming Interface:
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    35
----------------------------------
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    36
First you  need to create an instance of TuioClient. This class 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    37
is listening to TUIO messages on the specified port and generates
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    38
higher level messages based on the object events.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    39
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    40
Your application needs to implement the TuioListener interface,
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    41
and has to be added to the TuioClient in order to receive messages.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    42
9
0f44b7360c8d Installer updated
bastiena
parents: 0
diff changeset
    43
    "class MyApplication implements TuioListener"
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    44
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    45
A simple code snippet for setting up a TUIO session:
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    46
9
0f44b7360c8d Installer updated
bastiena
parents: 0
diff changeset
    47
    MyApplication app = new MyApplication();
0f44b7360c8d Installer updated
bastiena
parents: 0
diff changeset
    48
    TuioClient client = new TuioClient();
0f44b7360c8d Installer updated
bastiena
parents: 0
diff changeset
    49
    client.addTuioListener(app);
0f44b7360c8d Installer updated
bastiena
parents: 0
diff changeset
    50
    client.connect();
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    51
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    52
A TuioListener needs to implement the following methods:
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    53
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    54
* addTuioObject(TuioObject tobj):
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    55
  this is called when an object becomes visible
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    56
* removeTuioObject(TuioObject tobj):
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    57
  an object was removed from the table
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    58
* updateTuioObject(TuioObject tobj):
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    59
  an object was moved on the table surface
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    60
* addTuioCursor(TuioCursor tcur):
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    61
  this is called when a new cursor is detected
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    62
* removeTuioCursor(TuioCursor tcur):
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    63
  a cursor was removed from the table
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    64
* updateTuioCursor(TuioCursor tcur):
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    65
  a cursor was moving on the table surface
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    66
* refresh(TuioTime bundleTime):
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    67
  this method is called after each bundle,
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    68
  use it to repaint your screen for example
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    69
        
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    70
Each object or cursor is identified with a  unique session ID, that is maintained
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    71
over its lifetime. Additionally each object carries symbol ID that corresponds
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    72
to its attached fiducial marker number. The cursor ID of the cursor object is always
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    73
a number in the range of all currently detected cursor blobs.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    74
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    75
The TuioObject and TuioCursor references are updated automatically by the TuioClient
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    76
and are always referencing the same instance over the object lifetime.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    77
All the TuioObject and TuioCursor attributes are encapsulated and can be
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    78
accessed with methods such as getX(), getY() and getAngle() and so on.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    79
TuioObject and TuioCursor also have some additional convenience methods
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    80
for the calculation of distances and angles between objects. The getPath()
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    81
method returns a Vector of TuioPoint representing the movement path of the object.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    82
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    83
Alternatively the TuioClient class contains some methods for the polling
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    84
of the current object and cursor state. There are methods which return
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    85
either a list or individual object and cursor objects. The TuioObject and
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    86
TuioCursor classes have been added as a container which also can be used
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    87
by external classes. 
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    88
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    89
* getTuioObjects() returns a Vector of all currently present TuioObjects
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    90
* getTuioCursors() returns a Vector of all currently present TuioCursors
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    91
* getTuioObject(long s_id) returns a TuioObject or NULL depending on its presence
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    92
* getTuioCursor(long s_id) returns a TuioCursor or NULL depending on its presence
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    93
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    94
License:
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    95
--------
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    96
This program is free software; you can redistribute it and/or modify
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    97
it under the terms of the GNU General Public License as published by
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    98
the Free Software Foundation; either version 2 of the License, or
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    99
(at your option) any later version.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   100
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   101
This program is distributed in the hope that it will be useful,
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   102
but WITHOUT ANY WARRANTY; without even the implied warranty of
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   103
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   104
GNU General Public License for more details.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   105
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   106
You should have received a copy of the GNU General Public License
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   107
along with this program; if not, write to the Free Software
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   108
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   109
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   110
References:
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   111
-----------
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   112
This application uses the JavaOSC OpenSound Control library.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   113
See http://www.mat.ucsb.edu/~c.ramakr/illposed/javaosc.html
6fefd4afe506 First Import
bastiena
parents:
diff changeset
   114
for more information and the source code.