First Import
authorbastiena
Fri, 09 Mar 2012 14:52:11 +0100
changeset 0 6fefd4afe506
child 1 d3bb3934331a
First Import
front_processing/extern/TUIO_JAVA/LICENSE.txt
front_processing/extern/TUIO_JAVA/README.txt
front_processing/extern/TUIO_JAVA/TuioApplet.html
front_processing/extern/TUIO_JAVA/TuioDemo.jar
front_processing/extern/TUIO_JAVA/doc/TUIO/TuioClient.html
front_processing/extern/TUIO_JAVA/doc/TUIO/TuioCursor.html
front_processing/extern/TUIO_JAVA/doc/TUIO/TuioListener.html
front_processing/extern/TUIO_JAVA/doc/TUIO/TuioObject.html
front_processing/extern/TUIO_JAVA/doc/TUIO/TuioPoint.html
front_processing/extern/TUIO_JAVA/doc/TUIO/TuioTime.html
front_processing/extern/TUIO_JAVA/doc/TUIO/package-frame.html
front_processing/extern/TUIO_JAVA/doc/TUIO/package-summary.html
front_processing/extern/TUIO_JAVA/doc/TUIO/package-tree.html
front_processing/extern/TUIO_JAVA/doc/allclasses-frame.html
front_processing/extern/TUIO_JAVA/doc/allclasses-noframe.html
front_processing/extern/TUIO_JAVA/doc/constant-values.html
front_processing/extern/TUIO_JAVA/doc/deprecated-list.html
front_processing/extern/TUIO_JAVA/doc/help-doc.html
front_processing/extern/TUIO_JAVA/doc/index-all.html
front_processing/extern/TUIO_JAVA/doc/index.html
front_processing/extern/TUIO_JAVA/doc/overview-tree.html
front_processing/extern/TUIO_JAVA/doc/package-list
front_processing/extern/TUIO_JAVA/doc/resources/inherit.gif
front_processing/extern/TUIO_JAVA/doc/stylesheet.css
front_processing/extern/TUIO_JAVA/libTUIO.jar
front_processing/extern/TUIO_JAVA/src/TUIO/TuioClient.java
front_processing/extern/TUIO_JAVA/src/TUIO/TuioContainer.java
front_processing/extern/TUIO_JAVA/src/TUIO/TuioCursor.java
front_processing/extern/TUIO_JAVA/src/TUIO/TuioListener.java
front_processing/extern/TUIO_JAVA/src/TUIO/TuioObject.java
front_processing/extern/TUIO_JAVA/src/TUIO/TuioPoint.java
front_processing/extern/TUIO_JAVA/src/TUIO/TuioTime.java
front_processing/extern/TUIO_JAVA/src/TuioApplet.java
front_processing/extern/TUIO_JAVA/src/TuioDemo.java
front_processing/extern/TUIO_JAVA/src/TuioDemoComponent.java
front_processing/extern/TUIO_JAVA/src/TuioDemoObject.java
front_processing/extern/TUIO_JAVA/src/TuioDump.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCBundle.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCCanNotListenException.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCListener.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCMessage.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPacket.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPort.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPortIn.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPortOut.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/utility/OSCByteArrayToJavaConverter.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/utility/OSCJavaToByteArrayConverter.java
front_processing/extern/TUIO_JAVA/src/com/illposed/osc/utility/OSCPacketDispatcher.java
front_processing/extern/TUIO_JAVA/src/compile.bat
front_processing/extern/TUIO_JAVA/src/compile.sh
front_processing/extern/TUIO_JAVA/src/doc.sh
front_processing/extern/TUIO_JAVA/src/manifest.inc
front_processing/src/Trakers/Trakers.pde
front_processing/src/Trakers/code/TUIO.jar
middleware/Trakers.sln
middleware/extern/TuioServer/Libraries/Bespoke.Common.Osc/Bespoke.Common.Osc.dll
middleware/extern/TuioServer/Libraries/Bespoke.Common.Osc/Bespoke.Common.dll
middleware/extern/TuioServer/Tuio.Test/App.xaml
middleware/extern/TuioServer/Tuio.Test/App.xaml.cs
middleware/extern/TuioServer/Tuio.Test/MainWindow.xaml
middleware/extern/TuioServer/Tuio.Test/MainWindow.xaml.cs
middleware/extern/TuioServer/Tuio.Test/Properties/AssemblyInfo.cs
middleware/extern/TuioServer/Tuio.Test/Properties/Resources.Designer.cs
middleware/extern/TuioServer/Tuio.Test/Properties/Resources.resx
middleware/extern/TuioServer/Tuio.Test/Properties/Settings.Designer.cs
middleware/extern/TuioServer/Tuio.Test/Properties/Settings.settings
middleware/extern/TuioServer/Tuio.Test/Tuio.Test.csproj
middleware/extern/TuioServer/TuioServer.sln
middleware/extern/TuioServer/TuioServer.suo
middleware/extern/TuioServer/TuioServer/Properties/AssemblyInfo.cs
middleware/extern/TuioServer/TuioServer/Tuio.csproj
middleware/extern/TuioServer/TuioServer/TuioCursor.cs
middleware/extern/TuioServer/TuioServer/TuioServer.cs
middleware/lib/Bespoke.Common.Osc.dll
middleware/lib/Bespoke.Common.dll
middleware/lib/Coding4Fun.Kinect.Wpf.dll
middleware/lib/Kinect.Toolbox.dll
middleware/lib/Microsoft.Kinect.dll
middleware/src/App.config
middleware/src/Communication/Server.cs
middleware/src/Communication/TuioCursor.cs
middleware/src/Communication/TuioServer.cs
middleware/src/Debug/DebugWindow.xaml
middleware/src/Debug/DebugWindow.xaml.cs
middleware/src/MainClass.cs
middleware/src/Properties/AssemblyInfo.cs
middleware/src/Properties/Resources.Designer.cs
middleware/src/Properties/Resources.resx
middleware/src/Properties/Settings.Designer.cs
middleware/src/Properties/Settings.settings
middleware/src/Tracking/Events/LeftHandQuitEventArgs.cs
middleware/src/Tracking/Events/LeftHandQuitListener.cs
middleware/src/Tracking/Events/LeftHandTrackedEventArgs.cs
middleware/src/Tracking/Events/LeftHandTrackedListener.cs
middleware/src/Tracking/Events/RightHandQuitEventArgs.cs
middleware/src/Tracking/Events/RightHandQuitListener.cs
middleware/src/Tracking/Events/RightHandTrackedEventArgs.cs
middleware/src/Tracking/Events/RightHandTrackedListener.cs
middleware/src/Tracking/Events/SwipeEventArgs.cs
middleware/src/Tracking/Events/SwipeEventListener.cs
middleware/src/Tracking/Gestures/GestureDetector.cs
middleware/src/Tracking/Gestures/SwipeDetector.cs
middleware/src/Tracking/KinectMain.cs
middleware/src/Trakers.csproj
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/LICENSE.txt	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/README.txt	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,114 @@
+TUIO JAVA LIBRARY AND EXAMPLES
+------------------------------
+Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+This software is part of reacTIVision, an open source fiducial
+tracking and multi-touch framework based on computer vision. 
+
+http://reactivision.sourceforge.net/
+
+Demo Applications:
+------------------
+This package contains three demo applications which receive
+TUIO messages from any TUIO enabled tracker or the Simulator.
+All these applications show how to use the TUIO Java Library 
+in a simple way.
+
+TuioDemo graphically displays the object and cursor state,
+TuioApplet is a version of TuioDemo for the web browser,
+TuioDump prints the object and cursor state to the console.
+
+You can use these demo applications for debugging purposes, 
+or as a starting point for the development of your own Java 
+applications implementing the TUIO protocol. Please refer to
+the source code of the example and the following section.
+
+Pressing F1 will toggle FullScreen mode with the TuioDemo,
+pressing ESC or closing the Window will end the application.
+Hitting the V key will print the TUIO events to the console.
+
+Keep in mind to make your graphics scalable for the varying
+screen and window resolutions. A reasonable TUIO application
+will run in fullscreen mode, although the windowed mode might
+be useful for debugging purposes or working with the Simulator.
+
+Application Programming Interface:
+----------------------------------
+First you  need to create an instance of TuioClient. This class 
+is listening to TUIO messages on the specified port and generates
+higher level messages based on the object events.
+
+Your application needs to implement the TuioListener interface,
+and has to be added to the TuioClient in order to receive messages.
+
+	"class MyApplication implements TuioListener"
+
+A simple code snippet for setting up a TUIO session:
+
+	MyApplication app = new MyApplication();
+	TuioClient client = new TuioClient();
+	client.addTuioListener(app);
+	client.connect();
+
+A TuioListener needs to implement the following methods:
+
+* addTuioObject(TuioObject tobj):
+  this is called when an object becomes visible
+* removeTuioObject(TuioObject tobj):
+  an object was removed from the table
+* updateTuioObject(TuioObject tobj):
+  an object was moved on the table surface
+* addTuioCursor(TuioCursor tcur):
+  this is called when a new cursor is detected
+* removeTuioCursor(TuioCursor tcur):
+  a cursor was removed from the table
+* updateTuioCursor(TuioCursor tcur):
+  a cursor was moving on the table surface
+* refresh(TuioTime bundleTime):
+  this method is called after each bundle,
+  use it to repaint your screen for example
+        
+Each object or cursor is identified with a  unique session ID, that is maintained
+over its lifetime. Additionally each object carries symbol ID that corresponds
+to its attached fiducial marker number. The cursor ID of the cursor object is always
+a number in the range of all currently detected cursor blobs.
+
+The TuioObject and TuioCursor references are updated automatically by the TuioClient
+and are always referencing the same instance over the object lifetime.
+All the TuioObject and TuioCursor attributes are encapsulated and can be
+accessed with methods such as getX(), getY() and getAngle() and so on.
+TuioObject and TuioCursor also have some additional convenience methods
+for the calculation of distances and angles between objects. The getPath()
+method returns a Vector of TuioPoint representing the movement path of the object.
+
+Alternatively the TuioClient class contains some methods for the polling
+of the current object and cursor state. There are methods which return
+either a list or individual object and cursor objects. The TuioObject and
+TuioCursor classes have been added as a container which also can be used
+by external classes. 
+
+* getTuioObjects() returns a Vector of all currently present TuioObjects
+* getTuioCursors() returns a Vector of all currently present TuioCursors
+* getTuioObject(long s_id) returns a TuioObject or NULL depending on its presence
+* getTuioCursor(long s_id) returns a TuioCursor or NULL depending on its presence
+
+License:
+--------
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+References:
+-----------
+This application uses the JavaOSC OpenSound Control library.
+See http://www.mat.ucsb.edu/~c.ramakr/illposed/javaosc.html
+for more information and the source code.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/TuioApplet.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,15 @@
+<html>
+<head>
+<title>TuioApplet</title>
+</head>
+<body bgcolor="#EEEEEE">
+<h2>TuioApplet</h2>
+
+<p>
+<applet archive="TuioDemo.jar" code="TuioApplet.class" width="640" height="480" hspace="10" vspace="10">
+<param name="port" value="3333">
+</applet>
+</p>
+
+</body>
+</html>
Binary file front_processing/extern/TUIO_JAVA/TuioDemo.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/TUIO/TuioClient.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,539 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+TuioClient
+</TITLE>
+
+<META NAME="keywords" CONTENT="TUIO.TuioClient class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TuioClient";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../TUIO/TuioCursor.html" title="class in TUIO"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioClient.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioClient.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+TUIO</FONT>
+<BR>
+Class TuioClient</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>TUIO.TuioClient</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD>com.illposed.osc.OSCListener</DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>TuioClient</B><DT>extends java.lang.Object<DT>implements com.illposed.osc.OSCListener</DL>
+</PRE>
+
+<P>
+The TuioClient class is the central TUIO protocol decoder component. It provides a simple callback infrastructure using the <A HREF="../TUIO/TuioListener.html" title="interface in TUIO"><CODE>TuioListener</CODE></A> interface.
+ In order to receive and decode TUIO messages an instance of TuioClient needs to be created. The TuioClient instance then generates TUIO events
+ which are broadcasted to all registered classes that implement the <A HREF="../TUIO/TuioListener.html" title="interface in TUIO"><CODE>TuioListener</CODE></A> interface.<P> 
+ <code>
+ TuioClient client = new TuioClient();<br/>
+ client.addTuioListener(myTuioListener);<br/>
+ client.connect();<br/>
+ </code>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#TuioClient()">TuioClient</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default constructor creates a client that listens to the default TUIO port 3333</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#TuioClient(int)">TuioClient</A></B>(int&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor creates a client that listens to the provided port</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#acceptMessage(java.util.Date, com.illposed.osc.OSCMessage)">acceptMessage</A></B>(java.util.Date&nbsp;date,
+              com.illposed.osc.OSCMessage&nbsp;message)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The OSC callback method where all TUIO messages are received and decoded
+ and where the TUIO event callbacks are dispatched</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#addTuioListener(TUIO.TuioListener)">addTuioListener</A></B>(<A HREF="../TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds the provided TuioListener to the list of registered TUIO event listeners</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#connect()">connect</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The TuioClient starts listening to TUIO messages on the configured UDP port
+ All reveived TUIO messages are decoded and the resulting TUIO events are broadcasted to all registered TuioListeners</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#disconnect()">disconnect</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The TuioClient stops listening to TUIO messages on the configured UDP port</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#getTuioCursor(long)">getTuioCursor</A></B>(long&nbsp;s_id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the TuioCursor corresponding to the provided Session ID
+ or NULL if the Session ID does not refer to an active TuioCursor</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Vector&lt;<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#getTuioCursors()">getTuioCursors</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Vector of all currently active TuioCursors</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#getTuioObject(long)">getTuioObject</A></B>(long&nbsp;s_id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the TuioObject corresponding to the provided Session ID
+ or NULL if the Session ID does not refer to an active TuioObject</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Vector&lt;<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#getTuioObjects()">getTuioObjects</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a Vector of all currently active TuioObjects</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#isConnected()">isConnected</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if this TuioClient is currently connected.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#removeAllTuioListeners()">removeAllTuioListeners</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all TuioListener from the list of registered TUIO event listeners</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioClient.html#removeTuioListener(TUIO.TuioListener)">removeTuioListener</A></B>(<A HREF="../TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the provided TuioListener from the list of registered TUIO event listeners</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TuioClient()"><!-- --></A><H3>
+TuioClient</H3>
+<PRE>
+public <B>TuioClient</B>()</PRE>
+<DL>
+<DD>The default constructor creates a client that listens to the default TUIO port 3333
+<P>
+</DL>
+<HR>
+
+<A NAME="TuioClient(int)"><!-- --></A><H3>
+TuioClient</H3>
+<PRE>
+public <B>TuioClient</B>(int&nbsp;port)</PRE>
+<DL>
+<DD>This constructor creates a client that listens to the provided port
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>port</CODE> - the listening port number</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="connect()"><!-- --></A><H3>
+connect</H3>
+<PRE>
+public void <B>connect</B>()</PRE>
+<DL>
+<DD>The TuioClient starts listening to TUIO messages on the configured UDP port
+ All reveived TUIO messages are decoded and the resulting TUIO events are broadcasted to all registered TuioListeners
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="disconnect()"><!-- --></A><H3>
+disconnect</H3>
+<PRE>
+public void <B>disconnect</B>()</PRE>
+<DL>
+<DD>The TuioClient stops listening to TUIO messages on the configured UDP port
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isConnected()"><!-- --></A><H3>
+isConnected</H3>
+<PRE>
+public boolean <B>isConnected</B>()</PRE>
+<DL>
+<DD>Returns true if this TuioClient is currently connected.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if this TuioClient is currently connected</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addTuioListener(TUIO.TuioListener)"><!-- --></A><H3>
+addTuioListener</H3>
+<PRE>
+public void <B>addTuioListener</B>(<A HREF="../TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD>Adds the provided TuioListener to the list of registered TUIO event listeners
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the TuioListener to add</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeTuioListener(TUIO.TuioListener)"><!-- --></A><H3>
+removeTuioListener</H3>
+<PRE>
+public void <B>removeTuioListener</B>(<A HREF="../TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD>Removes the provided TuioListener from the list of registered TUIO event listeners
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the TuioListener to remove</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeAllTuioListeners()"><!-- --></A><H3>
+removeAllTuioListeners</H3>
+<PRE>
+public void <B>removeAllTuioListeners</B>()</PRE>
+<DL>
+<DD>Removes all TuioListener from the list of registered TUIO event listeners
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTuioObjects()"><!-- --></A><H3>
+getTuioObjects</H3>
+<PRE>
+public java.util.Vector&lt;<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&gt; <B>getTuioObjects</B>()</PRE>
+<DL>
+<DD>Returns a Vector of all currently active TuioObjects
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Vector of all currently active TuioObjects</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTuioCursors()"><!-- --></A><H3>
+getTuioCursors</H3>
+<PRE>
+public java.util.Vector&lt;<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>&gt; <B>getTuioCursors</B>()</PRE>
+<DL>
+<DD>Returns a Vector of all currently active TuioCursors
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a Vector of all currently active TuioCursors</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTuioObject(long)"><!-- --></A><H3>
+getTuioObject</H3>
+<PRE>
+public <A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A> <B>getTuioObject</B>(long&nbsp;s_id)</PRE>
+<DL>
+<DD>Returns the TuioObject corresponding to the provided Session ID
+ or NULL if the Session ID does not refer to an active TuioObject
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an active TuioObject corresponding to the provided Session ID or NULL</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTuioCursor(long)"><!-- --></A><H3>
+getTuioCursor</H3>
+<PRE>
+public <A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A> <B>getTuioCursor</B>(long&nbsp;s_id)</PRE>
+<DL>
+<DD>Returns the TuioCursor corresponding to the provided Session ID
+ or NULL if the Session ID does not refer to an active TuioCursor
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an active TuioCursor corresponding to the provided Session ID or NULL</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="acceptMessage(java.util.Date, com.illposed.osc.OSCMessage)"><!-- --></A><H3>
+acceptMessage</H3>
+<PRE>
+public void <B>acceptMessage</B>(java.util.Date&nbsp;date,
+                          com.illposed.osc.OSCMessage&nbsp;message)</PRE>
+<DL>
+<DD>The OSC callback method where all TUIO messages are received and decoded
+ and where the TUIO event callbacks are dispatched
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>acceptMessage</CODE> in interface <CODE>com.illposed.osc.OSCListener</CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>date</CODE> - the time stamp of the OSC bundle<DD><CODE>message</CODE> - the received OSC message</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../TUIO/TuioCursor.html" title="class in TUIO"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioClient.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioClient.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/TUIO/TuioCursor.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,974 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+TuioCursor
+</TITLE>
+
+<META NAME="keywords" CONTENT="TUIO.TuioCursor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TuioCursor";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../TUIO/TuioClient.html" title="class in TUIO"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../TUIO/TuioListener.html" title="interface in TUIO"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioCursor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioCursor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+TUIO</FONT>
+<BR>
+Class TuioCursor</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TUIO.TuioPoint</A>
+      <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>TUIO.TuioCursor</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>TuioCursor</B><DT>extends <A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></DL>
+</PRE>
+
+<P>
+The TuioCursor class encapsulates /tuio/2Dcur TUIO cursors.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#cursor_id">cursor_id</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The individual cursor ID number that is assigned to each TuioCursor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#motion_accel">motion_accel</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The motion acceleration value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#motion_speed">motion_speed</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The motion speed value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;java.util.Vector&lt;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#path">path</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A Vector of TuioPoints containing all the previous positions of the TUIO component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#session_id">session_id</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The unique session ID number that is assigned to each TUIO object or cursor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#state">state</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reflects the current state of the TuioComponent</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#TUIO_ACCELERATING">TUIO_ACCELERATING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the ACCELERATING state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#TUIO_ADDED">TUIO_ADDED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the ADDED state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#TUIO_DECELERATING">TUIO_DECELERATING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the DECELERATING state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#TUIO_REMOVED">TUIO_REMOVED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the REMOVED state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#TUIO_STOPPED">TUIO_STOPPED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the STOPPED state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#x_speed">x_speed</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The X-axis velocity value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#y_speed">y_speed</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The Y-axis velocity value.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_TUIO.TuioPoint"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from class TUIO.<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../TUIO/TuioPoint.html#currentTime">currentTime</A>, <A HREF="../TUIO/TuioPoint.html#startTime">startTime</A>, <A HREF="../TUIO/TuioPoint.html#xpos">xpos</A>, <A HREF="../TUIO/TuioPoint.html#ypos">ypos</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#TuioCursor(long, int, float, float)">TuioCursor</A></B>(long&nbsp;si,
+           int&nbsp;ci,
+           float&nbsp;xp,
+           float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes the provided Session ID, Cursor ID, X and Y coordinate 
+ and assigs these values to the newly created TuioCursor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#TuioCursor(TUIO.TuioCursor)">TuioCursor</A></B>(<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>&nbsp;tcur)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes the atttibutes of the provided TuioCursor 
+ and assigs these values to the newly created TuioCursor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#TuioCursor(TUIO.TuioTime, long, int, float, float)">TuioCursor</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+           long&nbsp;si,
+           int&nbsp;ci,
+           float&nbsp;xp,
+           float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes a TuioTime argument and assigns it along  with the provided 
+ Session ID, Cursor ID, X and Y coordinate to the newly created TuioCursor.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#getCursorID()">getCursorID</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Cursor ID of this TuioCursor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#getMotionAccel()">getMotionAccel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the motion acceleration of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#getMotionSpeed()">getMotionSpeed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the motion speed of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Vector&lt;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#getPath()">getPath</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the path of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#getPosition()">getPosition</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the position of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#getSessionID()">getSessionID</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Session ID of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#getTuioState()">getTuioState</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the TUIO state of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#getXSpeed()">getXSpeed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the X velocity of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#getYSpeed()">getYSpeed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Y velocity of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#isMoving()">isMoving</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true of this TuioContainer is moving.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#remove(TUIO.TuioTime)">remove</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns the REMOVE state to this TuioContainer and sets
+ its TuioTime time stamp to the provided TuioTime argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#stop(TUIO.TuioTime)">stop</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is used to calculate the speed and acceleration values of
+ TuioContainers with unchanged positions.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#update(float, float, float, float, float)">update</A></B>(float&nbsp;xp,
+       float&nbsp;yp,
+       float&nbsp;xs,
+       float&nbsp;ys,
+       float&nbsp;ma)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns the provided X and Y coordinate, X and Y velocity and acceleration
+ to the private TuioContainer attributes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#update(TUIO.TuioContainer)">update</A></B>(TUIO.TuioContainer&nbsp;tcon)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes the atttibutes of the provided TuioContainer 
+ and assigs these values to this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#update(TUIO.TuioTime, float, float)">update</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+       float&nbsp;xp,
+       float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate to the private TuioContainer attributes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioCursor.html#update(TUIO.TuioTime, float, float, float, float, float)">update</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+       float&nbsp;xp,
+       float&nbsp;yp,
+       float&nbsp;xs,
+       float&nbsp;ys,
+       float&nbsp;ma)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate, X and Y velocity and acceleration
+ to the private TuioContainer attributes.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_TUIO.TuioPoint"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class TUIO.<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../TUIO/TuioPoint.html#getAngle(float, float)">getAngle</A>, <A HREF="../TUIO/TuioPoint.html#getAngle(TUIO.TuioPoint)">getAngle</A>, <A HREF="../TUIO/TuioPoint.html#getAngleDegrees(float, float)">getAngleDegrees</A>, <A HREF="../TUIO/TuioPoint.html#getAngleDegrees(TUIO.TuioPoint)">getAngleDegrees</A>, <A HREF="../TUIO/TuioPoint.html#getDistance(float, float)">getDistance</A>, <A HREF="../TUIO/TuioPoint.html#getDistance(TUIO.TuioPoint)">getDistance</A>, <A HREF="../TUIO/TuioPoint.html#getScreenX(int)">getScreenX</A>, <A HREF="../TUIO/TuioPoint.html#getScreenY(int)">getScreenY</A>, <A HREF="../TUIO/TuioPoint.html#getStartTime()">getStartTime</A>, <A HREF="../TUIO/TuioPoint.html#getTuioTime()">getTuioTime</A>, <A HREF="../TUIO/TuioPoint.html#getX()">getX</A>, <A HREF="../TUIO/TuioPoint.html#getY()">getY</A>, <A HREF="../TUIO/TuioPoint.html#update(float, float)">update</A>, <A HREF="../TUIO/TuioPoint.html#update(TUIO.TuioPoint)">update</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="cursor_id"><!-- --></A><H3>
+cursor_id</H3>
+<PRE>
+protected int <B>cursor_id</B></PRE>
+<DL>
+<DD>The individual cursor ID number that is assigned to each TuioCursor.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="session_id"><!-- --></A><H3>
+session_id</H3>
+<PRE>
+protected long <B>session_id</B></PRE>
+<DL>
+<DD>The unique session ID number that is assigned to each TUIO object or cursor.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="x_speed"><!-- --></A><H3>
+x_speed</H3>
+<PRE>
+protected float <B>x_speed</B></PRE>
+<DL>
+<DD>The X-axis velocity value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="y_speed"><!-- --></A><H3>
+y_speed</H3>
+<PRE>
+protected float <B>y_speed</B></PRE>
+<DL>
+<DD>The Y-axis velocity value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="motion_speed"><!-- --></A><H3>
+motion_speed</H3>
+<PRE>
+protected float <B>motion_speed</B></PRE>
+<DL>
+<DD>The motion speed value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="motion_accel"><!-- --></A><H3>
+motion_accel</H3>
+<PRE>
+protected float <B>motion_accel</B></PRE>
+<DL>
+<DD>The motion acceleration value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="path"><!-- --></A><H3>
+path</H3>
+<PRE>
+protected java.util.Vector&lt;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&gt; <B>path</B></PRE>
+<DL>
+<DD>A Vector of TuioPoints containing all the previous positions of the TUIO component.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_ADDED"><!-- --></A><H3>
+TUIO_ADDED</H3>
+<PRE>
+public static final int <B>TUIO_ADDED</B></PRE>
+<DL>
+<DD>Defines the ADDED state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioCursor.TUIO_ADDED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_ACCELERATING"><!-- --></A><H3>
+TUIO_ACCELERATING</H3>
+<PRE>
+public static final int <B>TUIO_ACCELERATING</B></PRE>
+<DL>
+<DD>Defines the ACCELERATING state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioCursor.TUIO_ACCELERATING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_DECELERATING"><!-- --></A><H3>
+TUIO_DECELERATING</H3>
+<PRE>
+public static final int <B>TUIO_DECELERATING</B></PRE>
+<DL>
+<DD>Defines the DECELERATING state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioCursor.TUIO_DECELERATING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_STOPPED"><!-- --></A><H3>
+TUIO_STOPPED</H3>
+<PRE>
+public static final int <B>TUIO_STOPPED</B></PRE>
+<DL>
+<DD>Defines the STOPPED state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioCursor.TUIO_STOPPED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_REMOVED"><!-- --></A><H3>
+TUIO_REMOVED</H3>
+<PRE>
+public static final int <B>TUIO_REMOVED</B></PRE>
+<DL>
+<DD>Defines the REMOVED state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioCursor.TUIO_REMOVED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="state"><!-- --></A><H3>
+state</H3>
+<PRE>
+protected int <B>state</B></PRE>
+<DL>
+<DD>Reflects the current state of the TuioComponent
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TuioCursor(TUIO.TuioTime, long, int, float, float)"><!-- --></A><H3>
+TuioCursor</H3>
+<PRE>
+public <B>TuioCursor</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+                  long&nbsp;si,
+                  int&nbsp;ci,
+                  float&nbsp;xp,
+                  float&nbsp;yp)</PRE>
+<DL>
+<DD>This constructor takes a TuioTime argument and assigns it along  with the provided 
+ Session ID, Cursor ID, X and Y coordinate to the newly created TuioCursor.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign<DD><CODE>si</CODE> - the Session ID  to assign<DD><CODE>ci</CODE> - the Cursor ID  to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign</DL>
+</DL>
+<HR>
+
+<A NAME="TuioCursor(long, int, float, float)"><!-- --></A><H3>
+TuioCursor</H3>
+<PRE>
+public <B>TuioCursor</B>(long&nbsp;si,
+                  int&nbsp;ci,
+                  float&nbsp;xp,
+                  float&nbsp;yp)</PRE>
+<DL>
+<DD>This constructor takes the provided Session ID, Cursor ID, X and Y coordinate 
+ and assigs these values to the newly created TuioCursor.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>si</CODE> - the Session ID  to assign<DD><CODE>ci</CODE> - the Cursor ID  to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign</DL>
+</DL>
+<HR>
+
+<A NAME="TuioCursor(TUIO.TuioCursor)"><!-- --></A><H3>
+TuioCursor</H3>
+<PRE>
+public <B>TuioCursor</B>(<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>&nbsp;tcur)</PRE>
+<DL>
+<DD>This constructor takes the atttibutes of the provided TuioCursor 
+ and assigs these values to the newly created TuioCursor.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>tcur</CODE> - the TuioCursor to assign</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getCursorID()"><!-- --></A><H3>
+getCursorID</H3>
+<PRE>
+public int <B>getCursorID</B>()</PRE>
+<DL>
+<DD>Returns the Cursor ID of this TuioCursor.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the Cursor ID of this TuioCursor</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(TUIO.TuioTime, float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+                   float&nbsp;xp,
+                   float&nbsp;yp)</PRE>
+<DL>
+<DD>Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate to the private TuioContainer attributes.
+ The speed and accleration values are calculated accordingly.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../TUIO/TuioPoint.html#update(TUIO.TuioTime, float, float)">update</A></CODE> in class <CODE><A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="stop(TUIO.TuioTime)"><!-- --></A><H3>
+stop</H3>
+<PRE>
+public void <B>stop</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</PRE>
+<DL>
+<DD>This method is used to calculate the speed and acceleration values of
+ TuioContainers with unchanged positions.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(TUIO.TuioTime, float, float, float, float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+                   float&nbsp;xp,
+                   float&nbsp;yp,
+                   float&nbsp;xs,
+                   float&nbsp;ys,
+                   float&nbsp;ma)</PRE>
+<DL>
+<DD>Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate, X and Y velocity and acceleration
+ to the private TuioContainer attributes.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign<DD><CODE>xs</CODE> - the X velocity to assign<DD><CODE>ys</CODE> - the Y velocity to assign<DD><CODE>ma</CODE> - the acceleration to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(float, float, float, float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(float&nbsp;xp,
+                   float&nbsp;yp,
+                   float&nbsp;xs,
+                   float&nbsp;ys,
+                   float&nbsp;ma)</PRE>
+<DL>
+<DD>Assigns the provided X and Y coordinate, X and Y velocity and acceleration
+ to the private TuioContainer attributes. The TuioTime time stamp remains unchanged.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign<DD><CODE>xs</CODE> - the X velocity to assign<DD><CODE>ys</CODE> - the Y velocity to assign<DD><CODE>ma</CODE> - the acceleration to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(TUIO.TuioContainer)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(TUIO.TuioContainer&nbsp;tcon)</PRE>
+<DL>
+<DD>Takes the atttibutes of the provided TuioContainer 
+ and assigs these values to this TuioContainer.
+ The TuioTime time stamp of this TuioContainer remains unchanged.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tcon</CODE> - the TuioContainer to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(TUIO.TuioTime)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</PRE>
+<DL>
+<DD>Assigns the REMOVE state to this TuioContainer and sets
+ its TuioTime time stamp to the provided TuioTime argument.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSessionID()"><!-- --></A><H3>
+getSessionID</H3>
+<PRE>
+public long <B>getSessionID</B>()</PRE>
+<DL>
+<DD>Returns the Session ID of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the Session ID of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getXSpeed()"><!-- --></A><H3>
+getXSpeed</H3>
+<PRE>
+public float <B>getXSpeed</B>()</PRE>
+<DL>
+<DD>Returns the X velocity of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the X velocity of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getYSpeed()"><!-- --></A><H3>
+getYSpeed</H3>
+<PRE>
+public float <B>getYSpeed</B>()</PRE>
+<DL>
+<DD>Returns the Y velocity of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the Y velocity of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPosition()"><!-- --></A><H3>
+getPosition</H3>
+<PRE>
+public <A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A> <B>getPosition</B>()</PRE>
+<DL>
+<DD>Returns the position of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the position of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPath()"><!-- --></A><H3>
+getPath</H3>
+<PRE>
+public java.util.Vector&lt;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&gt; <B>getPath</B>()</PRE>
+<DL>
+<DD>Returns the path of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the path of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMotionSpeed()"><!-- --></A><H3>
+getMotionSpeed</H3>
+<PRE>
+public float <B>getMotionSpeed</B>()</PRE>
+<DL>
+<DD>Returns the motion speed of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the motion speed of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMotionAccel()"><!-- --></A><H3>
+getMotionAccel</H3>
+<PRE>
+public float <B>getMotionAccel</B>()</PRE>
+<DL>
+<DD>Returns the motion acceleration of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the motion acceleration of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTuioState()"><!-- --></A><H3>
+getTuioState</H3>
+<PRE>
+public int <B>getTuioState</B>()</PRE>
+<DL>
+<DD>Returns the TUIO state of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the TUIO state of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isMoving()"><!-- --></A><H3>
+isMoving</H3>
+<PRE>
+public boolean <B>isMoving</B>()</PRE>
+<DL>
+<DD>Returns true of this TuioContainer is moving.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true of this TuioContainer is moving</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../TUIO/TuioClient.html" title="class in TUIO"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../TUIO/TuioListener.html" title="interface in TUIO"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioCursor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioCursor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/TUIO/TuioListener.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,342 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+TuioListener
+</TITLE>
+
+<META NAME="keywords" CONTENT="TUIO.TuioListener interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TuioListener";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../TUIO/TuioCursor.html" title="class in TUIO"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../TUIO/TuioObject.html" title="class in TUIO"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+TUIO</FONT>
+<BR>
+Interface TuioListener</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>TuioListener</B></DL>
+</PRE>
+
+<P>
+The TuioListener interface provides a simple callback infrastructure which is used by the <A HREF="../TUIO/TuioClient.html" title="class in TUIO"><CODE>TuioClient</CODE></A> class 
+ to dispatch TUIO events to all registered instances of classes that implement the TuioListener interface defined here.<P> 
+ Any class that implements the TuioListener interface is required to implement all of the callback methods defined here.
+ The <A HREF="../TUIO/TuioClient.html" title="class in TUIO"><CODE>TuioClient</CODE></A> makes use of these interface methods in order to dispatch TUIO events to all registered TuioListener implementations.<P>
+ <code>
+ public class MyTuioListener implements TuioListener<br/>
+ ...</code><p><code>
+ MyTuioListener listener = new MyTuioListener();<br/>
+ TuioClient client = new TuioClient();<br/>
+ client.addTuioListener(listener);<br/>
+ client.start();<br/>
+ </code>
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioListener.html#addTuioCursor(TUIO.TuioCursor)">addTuioCursor</A></B>(<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>&nbsp;tcur)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This callback method is invoked by the TuioClient when a new TuioCursor is added to the session.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioListener.html#addTuioObject(TUIO.TuioObject)">addTuioObject</A></B>(<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&nbsp;tobj)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This callback method is invoked by the TuioClient when a new TuioObject is added to the session.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioListener.html#refresh(TUIO.TuioTime)">refresh</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ftime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This callback method is invoked by the TuioClient to mark the end of a received TUIO message bundle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioListener.html#removeTuioCursor(TUIO.TuioCursor)">removeTuioCursor</A></B>(<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>&nbsp;tcur)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This callback method is invoked by the TuioClient when an existing TuioCursor is removed from the session.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioListener.html#removeTuioObject(TUIO.TuioObject)">removeTuioObject</A></B>(<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&nbsp;tobj)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This callback method is invoked by the TuioClient when an existing TuioObject is removed from the session.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioListener.html#updateTuioCursor(TUIO.TuioCursor)">updateTuioCursor</A></B>(<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>&nbsp;tcur)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This callback method is invoked by the TuioClient when an existing TuioCursor is updated during the session.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioListener.html#updateTuioObject(TUIO.TuioObject)">updateTuioObject</A></B>(<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&nbsp;tobj)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This callback method is invoked by the TuioClient when an existing TuioObject is updated during the session.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="addTuioObject(TUIO.TuioObject)"><!-- --></A><H3>
+addTuioObject</H3>
+<PRE>
+void <B>addTuioObject</B>(<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&nbsp;tobj)</PRE>
+<DL>
+<DD>This callback method is invoked by the TuioClient when a new TuioObject is added to the session.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tobj</CODE> - the TuioObject reference associated to the addTuioObject event</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="updateTuioObject(TUIO.TuioObject)"><!-- --></A><H3>
+updateTuioObject</H3>
+<PRE>
+void <B>updateTuioObject</B>(<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&nbsp;tobj)</PRE>
+<DL>
+<DD>This callback method is invoked by the TuioClient when an existing TuioObject is updated during the session.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tobj</CODE> - the TuioObject reference associated to the updateTuioObject event</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeTuioObject(TUIO.TuioObject)"><!-- --></A><H3>
+removeTuioObject</H3>
+<PRE>
+void <B>removeTuioObject</B>(<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&nbsp;tobj)</PRE>
+<DL>
+<DD>This callback method is invoked by the TuioClient when an existing TuioObject is removed from the session.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tobj</CODE> - the TuioObject reference associated to the removeTuioObject event</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addTuioCursor(TUIO.TuioCursor)"><!-- --></A><H3>
+addTuioCursor</H3>
+<PRE>
+void <B>addTuioCursor</B>(<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>&nbsp;tcur)</PRE>
+<DL>
+<DD>This callback method is invoked by the TuioClient when a new TuioCursor is added to the session.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tcur</CODE> - the TuioCursor reference associated to the addTuioCursor event</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="updateTuioCursor(TUIO.TuioCursor)"><!-- --></A><H3>
+updateTuioCursor</H3>
+<PRE>
+void <B>updateTuioCursor</B>(<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>&nbsp;tcur)</PRE>
+<DL>
+<DD>This callback method is invoked by the TuioClient when an existing TuioCursor is updated during the session.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tcur</CODE> - the TuioCursor reference associated to the updateTuioCursor event</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeTuioCursor(TUIO.TuioCursor)"><!-- --></A><H3>
+removeTuioCursor</H3>
+<PRE>
+void <B>removeTuioCursor</B>(<A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>&nbsp;tcur)</PRE>
+<DL>
+<DD>This callback method is invoked by the TuioClient when an existing TuioCursor is removed from the session.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tcur</CODE> - the TuioCursor reference associated to the removeTuioCursor event</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="refresh(TUIO.TuioTime)"><!-- --></A><H3>
+refresh</H3>
+<PRE>
+void <B>refresh</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ftime)</PRE>
+<DL>
+<DD>This callback method is invoked by the TuioClient to mark the end of a received TUIO message bundle.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ftime</CODE> - the TuioTime associated to the current TUIO message bundle</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../TUIO/TuioCursor.html" title="class in TUIO"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../TUIO/TuioObject.html" title="class in TUIO"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioListener.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/TUIO/TuioObject.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,1285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+TuioObject
+</TITLE>
+
+<META NAME="keywords" CONTENT="TUIO.TuioObject class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TuioObject";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../TUIO/TuioListener.html" title="interface in TUIO"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+TUIO</FONT>
+<BR>
+Class TuioObject</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../resources/inherit.gif" ALT="extended by "><A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TUIO.TuioPoint</A>
+      <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>TUIO.TuioObject</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>TuioObject</B><DT>extends <A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></DL>
+</PRE>
+
+<P>
+The TuioObject class encapsulates /tuio/2Dobj TUIO objects.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#angle">angle</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The rotation angle value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#motion_accel">motion_accel</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The motion acceleration value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#motion_speed">motion_speed</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The motion speed value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;java.util.Vector&lt;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#path">path</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A Vector of TuioPoints containing all the previous positions of the TUIO component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#rotation_accel">rotation_accel</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The rotation acceleration value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#rotation_speed">rotation_speed</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The rotation speed value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#session_id">session_id</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The unique session ID number that is assigned to each TUIO object or cursor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#state">state</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reflects the current state of the TuioComponent</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#symbol_id">symbol_id</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The individual symbol ID number that is assigned to each TuioObject.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#TUIO_ACCELERATING">TUIO_ACCELERATING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the ACCELERATING state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#TUIO_ADDED">TUIO_ADDED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the ADDED state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#TUIO_DECELERATING">TUIO_DECELERATING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the DECELERATING state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#TUIO_REMOVED">TUIO_REMOVED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the REMOVED state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#TUIO_ROTATING">TUIO_ROTATING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the ROTATING state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#TUIO_STOPPED">TUIO_STOPPED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defines the STOPPED state.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#x_speed">x_speed</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The X-axis velocity value.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#y_speed">y_speed</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The Y-axis velocity value.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_TUIO.TuioPoint"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from class TUIO.<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../TUIO/TuioPoint.html#currentTime">currentTime</A>, <A HREF="../TUIO/TuioPoint.html#startTime">startTime</A>, <A HREF="../TUIO/TuioPoint.html#xpos">xpos</A>, <A HREF="../TUIO/TuioPoint.html#ypos">ypos</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#TuioObject(long, int, float, float, float)">TuioObject</A></B>(long&nbsp;si,
+           int&nbsp;sym,
+           float&nbsp;xp,
+           float&nbsp;yp,
+           float&nbsp;a)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes the provided Session ID, Symbol ID, X and Y coordinate 
+ and angle, and assigs these values to the newly created TuioObject.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#TuioObject(TUIO.TuioObject)">TuioObject</A></B>(<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&nbsp;tobj)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes the atttibutes of the provided TuioObject 
+ and assigs these values to the newly created TuioObject.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#TuioObject(TUIO.TuioTime, long, int, float, float, float)">TuioObject</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+           long&nbsp;si,
+           int&nbsp;sym,
+           float&nbsp;xp,
+           float&nbsp;yp,
+           float&nbsp;a)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes a TuioTime argument and assigns it along with the provided 
+ Session ID, Symbol ID, X and Y coordinate and angle to the newly created TuioObject.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getAngle()">getAngle</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the rotation angle of this TuioObject.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getAngleDegrees()">getAngleDegrees</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the rotation angle in degrees of this TuioObject.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getMotionAccel()">getMotionAccel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the motion acceleration of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getMotionSpeed()">getMotionSpeed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the motion speed of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;java.util.Vector&lt;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&gt;</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getPath()">getPath</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the path of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getPosition()">getPosition</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the position of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getRotationAccel()">getRotationAccel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the rotation acceleration of this TuioObject.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getRotationSpeed()">getRotationSpeed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the rotation speed of this TuioObject.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getSessionID()">getSessionID</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Session ID of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getSymbolID()">getSymbolID</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the symbol ID of this TuioObject.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getTuioState()">getTuioState</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the TUIO state of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getXSpeed()">getXSpeed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the X velocity of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#getYSpeed()">getYSpeed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Y velocity of this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#isMoving()">isMoving</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true of this TuioObject is moving.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#remove(TUIO.TuioTime)">remove</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns the REMOVE state to this TuioContainer and sets
+ its TuioTime time stamp to the provided TuioTime argument.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#stop(TUIO.TuioTime)">stop</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is used to calculate the speed and acceleration values of a
+ TuioObject with unchanged position and angle.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#update(float, float, float, float, float)">update</A></B>(float&nbsp;xp,
+       float&nbsp;yp,
+       float&nbsp;xs,
+       float&nbsp;ys,
+       float&nbsp;ma)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns the provided X and Y coordinate, X and Y velocity and acceleration
+ to the private TuioContainer attributes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#update(float, float, float, float, float, float, float, float)">update</A></B>(float&nbsp;xp,
+       float&nbsp;yp,
+       float&nbsp;a,
+       float&nbsp;xs,
+       float&nbsp;ys,
+       float&nbsp;rs,
+       float&nbsp;ma,
+       float&nbsp;ra)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assigns the provided X and Y coordinate, angle, X and Y velocity, motion acceleration
+ rotation velocity and rotation acceleration to the private TuioContainer attributes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#update(TUIO.TuioContainer)">update</A></B>(TUIO.TuioContainer&nbsp;tcon)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes the atttibutes of the provided TuioContainer 
+ and assigs these values to this TuioContainer.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#update(TUIO.TuioObject)">update</A></B>(<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&nbsp;tobj)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes the atttibutes of the provided TuioObject 
+ and assigs these values to this TuioObject.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#update(TUIO.TuioTime, float, float)">update</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+       float&nbsp;xp,
+       float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate to the private TuioContainer attributes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#update(TUIO.TuioTime, float, float, float)">update</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+       float&nbsp;xp,
+       float&nbsp;yp,
+       float&nbsp;a)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate and angle to the private TuioObject attributes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#update(TUIO.TuioTime, float, float, float, float, float)">update</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+       float&nbsp;xp,
+       float&nbsp;yp,
+       float&nbsp;xs,
+       float&nbsp;ys,
+       float&nbsp;ma)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate, X and Y velocity and acceleration
+ to the private TuioContainer attributes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioObject.html#update(TUIO.TuioTime, float, float, float, float, float, float, float, float)">update</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+       float&nbsp;xp,
+       float&nbsp;yp,
+       float&nbsp;a,
+       float&nbsp;xs,
+       float&nbsp;ys,
+       float&nbsp;rs,
+       float&nbsp;ma,
+       float&nbsp;ra)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate, angle, X and Y velocity, motion acceleration,
+ rotation speed and rotation acceleration to the private TuioObject attributes.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_TUIO.TuioPoint"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class TUIO.<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../TUIO/TuioPoint.html#getAngle(float, float)">getAngle</A>, <A HREF="../TUIO/TuioPoint.html#getAngle(TUIO.TuioPoint)">getAngle</A>, <A HREF="../TUIO/TuioPoint.html#getAngleDegrees(float, float)">getAngleDegrees</A>, <A HREF="../TUIO/TuioPoint.html#getAngleDegrees(TUIO.TuioPoint)">getAngleDegrees</A>, <A HREF="../TUIO/TuioPoint.html#getDistance(float, float)">getDistance</A>, <A HREF="../TUIO/TuioPoint.html#getDistance(TUIO.TuioPoint)">getDistance</A>, <A HREF="../TUIO/TuioPoint.html#getScreenX(int)">getScreenX</A>, <A HREF="../TUIO/TuioPoint.html#getScreenY(int)">getScreenY</A>, <A HREF="../TUIO/TuioPoint.html#getStartTime()">getStartTime</A>, <A HREF="../TUIO/TuioPoint.html#getTuioTime()">getTuioTime</A>, <A HREF="../TUIO/TuioPoint.html#getX()">getX</A>, <A HREF="../TUIO/TuioPoint.html#getY()">getY</A>, <A HREF="../TUIO/TuioPoint.html#update(float, float)">update</A>, <A HREF="../TUIO/TuioPoint.html#update(TUIO.TuioPoint)">update</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="symbol_id"><!-- --></A><H3>
+symbol_id</H3>
+<PRE>
+protected int <B>symbol_id</B></PRE>
+<DL>
+<DD>The individual symbol ID number that is assigned to each TuioObject.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="angle"><!-- --></A><H3>
+angle</H3>
+<PRE>
+protected float <B>angle</B></PRE>
+<DL>
+<DD>The rotation angle value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="rotation_speed"><!-- --></A><H3>
+rotation_speed</H3>
+<PRE>
+protected float <B>rotation_speed</B></PRE>
+<DL>
+<DD>The rotation speed value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="rotation_accel"><!-- --></A><H3>
+rotation_accel</H3>
+<PRE>
+protected float <B>rotation_accel</B></PRE>
+<DL>
+<DD>The rotation acceleration value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_ROTATING"><!-- --></A><H3>
+TUIO_ROTATING</H3>
+<PRE>
+public static final int <B>TUIO_ROTATING</B></PRE>
+<DL>
+<DD>Defines the ROTATING state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioObject.TUIO_ROTATING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="session_id"><!-- --></A><H3>
+session_id</H3>
+<PRE>
+protected long <B>session_id</B></PRE>
+<DL>
+<DD>The unique session ID number that is assigned to each TUIO object or cursor.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="x_speed"><!-- --></A><H3>
+x_speed</H3>
+<PRE>
+protected float <B>x_speed</B></PRE>
+<DL>
+<DD>The X-axis velocity value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="y_speed"><!-- --></A><H3>
+y_speed</H3>
+<PRE>
+protected float <B>y_speed</B></PRE>
+<DL>
+<DD>The Y-axis velocity value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="motion_speed"><!-- --></A><H3>
+motion_speed</H3>
+<PRE>
+protected float <B>motion_speed</B></PRE>
+<DL>
+<DD>The motion speed value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="motion_accel"><!-- --></A><H3>
+motion_accel</H3>
+<PRE>
+protected float <B>motion_accel</B></PRE>
+<DL>
+<DD>The motion acceleration value.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="path"><!-- --></A><H3>
+path</H3>
+<PRE>
+protected java.util.Vector&lt;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&gt; <B>path</B></PRE>
+<DL>
+<DD>A Vector of TuioPoints containing all the previous positions of the TUIO component.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_ADDED"><!-- --></A><H3>
+TUIO_ADDED</H3>
+<PRE>
+public static final int <B>TUIO_ADDED</B></PRE>
+<DL>
+<DD>Defines the ADDED state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioObject.TUIO_ADDED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_ACCELERATING"><!-- --></A><H3>
+TUIO_ACCELERATING</H3>
+<PRE>
+public static final int <B>TUIO_ACCELERATING</B></PRE>
+<DL>
+<DD>Defines the ACCELERATING state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioObject.TUIO_ACCELERATING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_DECELERATING"><!-- --></A><H3>
+TUIO_DECELERATING</H3>
+<PRE>
+public static final int <B>TUIO_DECELERATING</B></PRE>
+<DL>
+<DD>Defines the DECELERATING state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioObject.TUIO_DECELERATING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_STOPPED"><!-- --></A><H3>
+TUIO_STOPPED</H3>
+<PRE>
+public static final int <B>TUIO_STOPPED</B></PRE>
+<DL>
+<DD>Defines the STOPPED state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioObject.TUIO_STOPPED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TUIO_REMOVED"><!-- --></A><H3>
+TUIO_REMOVED</H3>
+<PRE>
+public static final int <B>TUIO_REMOVED</B></PRE>
+<DL>
+<DD>Defines the REMOVED state.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../constant-values.html#TUIO.TuioObject.TUIO_REMOVED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="state"><!-- --></A><H3>
+state</H3>
+<PRE>
+protected int <B>state</B></PRE>
+<DL>
+<DD>Reflects the current state of the TuioComponent
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TuioObject(TUIO.TuioTime, long, int, float, float, float)"><!-- --></A><H3>
+TuioObject</H3>
+<PRE>
+public <B>TuioObject</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+                  long&nbsp;si,
+                  int&nbsp;sym,
+                  float&nbsp;xp,
+                  float&nbsp;yp,
+                  float&nbsp;a)</PRE>
+<DL>
+<DD>This constructor takes a TuioTime argument and assigns it along with the provided 
+ Session ID, Symbol ID, X and Y coordinate and angle to the newly created TuioObject.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign<DD><CODE>si</CODE> - the Session ID  to assign<DD><CODE>sym</CODE> - the Symbol ID  to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign<DD><CODE>a</CODE> - the angle to assign</DL>
+</DL>
+<HR>
+
+<A NAME="TuioObject(long, int, float, float, float)"><!-- --></A><H3>
+TuioObject</H3>
+<PRE>
+public <B>TuioObject</B>(long&nbsp;si,
+                  int&nbsp;sym,
+                  float&nbsp;xp,
+                  float&nbsp;yp,
+                  float&nbsp;a)</PRE>
+<DL>
+<DD>This constructor takes the provided Session ID, Symbol ID, X and Y coordinate 
+ and angle, and assigs these values to the newly created TuioObject.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>si</CODE> - the Session ID  to assign<DD><CODE>sym</CODE> - the Symbol ID  to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign<DD><CODE>a</CODE> - the angle to assign</DL>
+</DL>
+<HR>
+
+<A NAME="TuioObject(TUIO.TuioObject)"><!-- --></A><H3>
+TuioObject</H3>
+<PRE>
+public <B>TuioObject</B>(<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&nbsp;tobj)</PRE>
+<DL>
+<DD>This constructor takes the atttibutes of the provided TuioObject 
+ and assigs these values to the newly created TuioObject.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>tobj</CODE> - the TuioObject to assign</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="update(TUIO.TuioTime, float, float, float, float, float, float, float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+                   float&nbsp;xp,
+                   float&nbsp;yp,
+                   float&nbsp;a,
+                   float&nbsp;xs,
+                   float&nbsp;ys,
+                   float&nbsp;rs,
+                   float&nbsp;ma,
+                   float&nbsp;ra)</PRE>
+<DL>
+<DD>Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate, angle, X and Y velocity, motion acceleration,
+ rotation speed and rotation acceleration to the private TuioObject attributes.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign<DD><CODE>a</CODE> - the angle coordinate to assign<DD><CODE>xs</CODE> - the X velocity to assign<DD><CODE>ys</CODE> - the Y velocity to assign<DD><CODE>rs</CODE> - the rotation velocity to assign<DD><CODE>ma</CODE> - the motion acceleration to assign<DD><CODE>ra</CODE> - the rotation acceleration to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(float, float, float, float, float, float, float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(float&nbsp;xp,
+                   float&nbsp;yp,
+                   float&nbsp;a,
+                   float&nbsp;xs,
+                   float&nbsp;ys,
+                   float&nbsp;rs,
+                   float&nbsp;ma,
+                   float&nbsp;ra)</PRE>
+<DL>
+<DD>Assigns the provided X and Y coordinate, angle, X and Y velocity, motion acceleration
+ rotation velocity and rotation acceleration to the private TuioContainer attributes.
+ The TuioTime time stamp remains unchanged.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign<DD><CODE>a</CODE> - the angle coordinate to assign<DD><CODE>xs</CODE> - the X velocity to assign<DD><CODE>ys</CODE> - the Y velocity to assign<DD><CODE>rs</CODE> - the rotation velocity to assign<DD><CODE>ma</CODE> - the motion acceleration to assign<DD><CODE>ra</CODE> - the rotation acceleration to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(TUIO.TuioTime, float, float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+                   float&nbsp;xp,
+                   float&nbsp;yp,
+                   float&nbsp;a)</PRE>
+<DL>
+<DD>Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate and angle to the private TuioObject attributes.
+ The speed and accleration values are calculated accordingly.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign<DD><CODE>a</CODE> - the angle coordinate to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(TUIO.TuioObject)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(<A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>&nbsp;tobj)</PRE>
+<DL>
+<DD>Takes the atttibutes of the provided TuioObject 
+ and assigs these values to this TuioObject.
+ The TuioTime time stamp of this TuioContainer remains unchanged.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tobj</CODE> - the TuioContainer to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="stop(TUIO.TuioTime)"><!-- --></A><H3>
+stop</H3>
+<PRE>
+public void <B>stop</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</PRE>
+<DL>
+<DD>This method is used to calculate the speed and acceleration values of a
+ TuioObject with unchanged position and angle.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSymbolID()"><!-- --></A><H3>
+getSymbolID</H3>
+<PRE>
+public int <B>getSymbolID</B>()</PRE>
+<DL>
+<DD>Returns the symbol ID of this TuioObject.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the symbol ID of this TuioObject</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAngle()"><!-- --></A><H3>
+getAngle</H3>
+<PRE>
+public float <B>getAngle</B>()</PRE>
+<DL>
+<DD>Returns the rotation angle of this TuioObject.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the rotation angle of this TuioObject</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAngleDegrees()"><!-- --></A><H3>
+getAngleDegrees</H3>
+<PRE>
+public float <B>getAngleDegrees</B>()</PRE>
+<DL>
+<DD>Returns the rotation angle in degrees of this TuioObject.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the rotation angle in degrees of this TuioObject</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getRotationSpeed()"><!-- --></A><H3>
+getRotationSpeed</H3>
+<PRE>
+public float <B>getRotationSpeed</B>()</PRE>
+<DL>
+<DD>Returns the rotation speed of this TuioObject.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the rotation speed of this TuioObject</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getRotationAccel()"><!-- --></A><H3>
+getRotationAccel</H3>
+<PRE>
+public float <B>getRotationAccel</B>()</PRE>
+<DL>
+<DD>Returns the rotation acceleration of this TuioObject.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the rotation acceleration of this TuioObject</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isMoving()"><!-- --></A><H3>
+isMoving</H3>
+<PRE>
+public boolean <B>isMoving</B>()</PRE>
+<DL>
+<DD>Returns true of this TuioObject is moving.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true of this TuioObject is moving</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(TUIO.TuioTime, float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+                   float&nbsp;xp,
+                   float&nbsp;yp)</PRE>
+<DL>
+<DD>Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate to the private TuioContainer attributes.
+ The speed and accleration values are calculated accordingly.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../TUIO/TuioPoint.html#update(TUIO.TuioTime, float, float)">update</A></CODE> in class <CODE><A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(TUIO.TuioTime, float, float, float, float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+                   float&nbsp;xp,
+                   float&nbsp;yp,
+                   float&nbsp;xs,
+                   float&nbsp;ys,
+                   float&nbsp;ma)</PRE>
+<DL>
+<DD>Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate, X and Y velocity and acceleration
+ to the private TuioContainer attributes.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign<DD><CODE>xs</CODE> - the X velocity to assign<DD><CODE>ys</CODE> - the Y velocity to assign<DD><CODE>ma</CODE> - the acceleration to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(float, float, float, float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(float&nbsp;xp,
+                   float&nbsp;yp,
+                   float&nbsp;xs,
+                   float&nbsp;ys,
+                   float&nbsp;ma)</PRE>
+<DL>
+<DD>Assigns the provided X and Y coordinate, X and Y velocity and acceleration
+ to the private TuioContainer attributes. The TuioTime time stamp remains unchanged.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign<DD><CODE>xs</CODE> - the X velocity to assign<DD><CODE>ys</CODE> - the Y velocity to assign<DD><CODE>ma</CODE> - the acceleration to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(TUIO.TuioContainer)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(TUIO.TuioContainer&nbsp;tcon)</PRE>
+<DL>
+<DD>Takes the atttibutes of the provided TuioContainer 
+ and assigs these values to this TuioContainer.
+ The TuioTime time stamp of this TuioContainer remains unchanged.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tcon</CODE> - the TuioContainer to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(TUIO.TuioTime)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</PRE>
+<DL>
+<DD>Assigns the REMOVE state to this TuioContainer and sets
+ its TuioTime time stamp to the provided TuioTime argument.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSessionID()"><!-- --></A><H3>
+getSessionID</H3>
+<PRE>
+public long <B>getSessionID</B>()</PRE>
+<DL>
+<DD>Returns the Session ID of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the Session ID of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getXSpeed()"><!-- --></A><H3>
+getXSpeed</H3>
+<PRE>
+public float <B>getXSpeed</B>()</PRE>
+<DL>
+<DD>Returns the X velocity of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the X velocity of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getYSpeed()"><!-- --></A><H3>
+getYSpeed</H3>
+<PRE>
+public float <B>getYSpeed</B>()</PRE>
+<DL>
+<DD>Returns the Y velocity of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the Y velocity of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPosition()"><!-- --></A><H3>
+getPosition</H3>
+<PRE>
+public <A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A> <B>getPosition</B>()</PRE>
+<DL>
+<DD>Returns the position of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the position of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPath()"><!-- --></A><H3>
+getPath</H3>
+<PRE>
+public java.util.Vector&lt;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&gt; <B>getPath</B>()</PRE>
+<DL>
+<DD>Returns the path of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the path of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMotionSpeed()"><!-- --></A><H3>
+getMotionSpeed</H3>
+<PRE>
+public float <B>getMotionSpeed</B>()</PRE>
+<DL>
+<DD>Returns the motion speed of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the motion speed of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMotionAccel()"><!-- --></A><H3>
+getMotionAccel</H3>
+<PRE>
+public float <B>getMotionAccel</B>()</PRE>
+<DL>
+<DD>Returns the motion acceleration of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the motion acceleration of this TuioContainer</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTuioState()"><!-- --></A><H3>
+getTuioState</H3>
+<PRE>
+public int <B>getTuioState</B>()</PRE>
+<DL>
+<DD>Returns the TUIO state of this TuioContainer.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the TUIO state of this TuioContainer</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../TUIO/TuioListener.html" title="interface in TUIO"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioObject.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioObject.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/TUIO/TuioPoint.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,747 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+TuioPoint
+</TITLE>
+
+<META NAME="keywords" CONTENT="TUIO.TuioPoint class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TuioPoint";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../TUIO/TuioObject.html" title="class in TUIO"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+TUIO</FONT>
+<BR>
+Class TuioPoint</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>TUIO.TuioPoint</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>, <A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>TuioPoint</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The TuioPoint class on the one hand is a simple container and utility class to handle TUIO positions in general, 
+ on the other hand the TuioPoint is the base class for the TuioCursor and TuioObject classes.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#currentTime">currentTime</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The time stamp of the last update represented as TuioTime (time since session start)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#startTime">startTime</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The creation time of this TuioPoint represented as TuioTime (time since session start)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#xpos">xpos</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X coordinate, representated as a floating point value in a range of 0..1</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#ypos">ypos</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Y coordinate, representated as a floating point value in a range of 0..1</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#TuioPoint()">TuioPoint</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default constructor takes no arguments and sets   
+ its coordinate attributes to zero and its time stamp to the current session time.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#TuioPoint(float, float)">TuioPoint</A></B>(float&nbsp;xp,
+          float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes two floating point coordinate arguments and sets   
+ its coordinate attributes to these values and its time stamp to the current session time.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#TuioPoint(TUIO.TuioPoint)">TuioPoint</A></B>(<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&nbsp;tpoint)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes a TuioPoint argument and sets its coordinate attributes 
+ to the coordinates of the provided TuioPoint and its time stamp to the current session time.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#TuioPoint(TUIO.TuioTime, float, float)">TuioPoint</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+          float&nbsp;xp,
+          float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes a TuioTime object and two floating point coordinate arguments and sets   
+ its coordinate attributes to these values and its time stamp to the provided TUIO time object.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getAngle(float, float)">getAngle</A></B>(float&nbsp;xp,
+         float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the angle to the provided coordinates</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getAngle(TUIO.TuioPoint)">getAngle</A></B>(<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&nbsp;tpoint)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the angle to the provided TuioPoint</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getAngleDegrees(float, float)">getAngleDegrees</A></B>(float&nbsp;xp,
+                float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the angle in degrees to the provided coordinates</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getAngleDegrees(TUIO.TuioPoint)">getAngleDegrees</A></B>(<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&nbsp;tpoint)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the angle in degrees to the provided TuioPoint</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getDistance(float, float)">getDistance</A></B>(float&nbsp;xp,
+            float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the distance to the provided coordinates</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getDistance(TUIO.TuioPoint)">getDistance</A></B>(<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&nbsp;tpoint)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the distance to the provided TuioPoint</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getScreenX(int)">getScreenX</A></B>(int&nbsp;width)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the X coordinate in pixels relative to the provided screen width.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getScreenY(int)">getScreenY</A></B>(int&nbsp;height)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Y coordinate in pixels relative to the provided screen height.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getStartTime()">getStartTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the start time of this TuioPoint as TuioTime.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getTuioTime()">getTuioTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the time stamp of this TuioPoint as TuioTime.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getX()">getX</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the X coordinate of this TuioPoint.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#getY()">getY</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Y coordinate of this TuioPoint.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#update(float, float)">update</A></B>(float&nbsp;xp,
+       float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes two floating point coordinate arguments and updates its coordinate attributes 
+ to the coordinates of the provided TuioPoint and leaves its time stamp unchanged.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#update(TUIO.TuioPoint)">update</A></B>(<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&nbsp;tpoint)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes a TuioPoint argument and updates its coordinate attributes 
+ to the coordinates of the provided TuioPoint and leaves its time stamp unchanged.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioPoint.html#update(TUIO.TuioTime, float, float)">update</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+       float&nbsp;xp,
+       float&nbsp;yp)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes a TuioTime object and two floating point coordinate arguments and updates its coordinate attributes 
+ to the coordinates of the provided TuioPoint and its time stamp to the provided TUIO time object.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="xpos"><!-- --></A><H3>
+xpos</H3>
+<PRE>
+protected float <B>xpos</B></PRE>
+<DL>
+<DD>X coordinate, representated as a floating point value in a range of 0..1
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="ypos"><!-- --></A><H3>
+ypos</H3>
+<PRE>
+protected float <B>ypos</B></PRE>
+<DL>
+<DD>Y coordinate, representated as a floating point value in a range of 0..1
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="currentTime"><!-- --></A><H3>
+currentTime</H3>
+<PRE>
+protected <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>currentTime</B></PRE>
+<DL>
+<DD>The time stamp of the last update represented as TuioTime (time since session start)
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="startTime"><!-- --></A><H3>
+startTime</H3>
+<PRE>
+protected <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>startTime</B></PRE>
+<DL>
+<DD>The creation time of this TuioPoint represented as TuioTime (time since session start)
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TuioPoint()"><!-- --></A><H3>
+TuioPoint</H3>
+<PRE>
+public <B>TuioPoint</B>()</PRE>
+<DL>
+<DD>The default constructor takes no arguments and sets   
+ its coordinate attributes to zero and its time stamp to the current session time.
+<P>
+</DL>
+<HR>
+
+<A NAME="TuioPoint(float, float)"><!-- --></A><H3>
+TuioPoint</H3>
+<PRE>
+public <B>TuioPoint</B>(float&nbsp;xp,
+                 float&nbsp;yp)</PRE>
+<DL>
+<DD>This constructor takes two floating point coordinate arguments and sets   
+ its coordinate attributes to these values and its time stamp to the current session time.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign</DL>
+</DL>
+<HR>
+
+<A NAME="TuioPoint(TUIO.TuioPoint)"><!-- --></A><H3>
+TuioPoint</H3>
+<PRE>
+public <B>TuioPoint</B>(<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&nbsp;tpoint)</PRE>
+<DL>
+<DD>This constructor takes a TuioPoint argument and sets its coordinate attributes 
+ to the coordinates of the provided TuioPoint and its time stamp to the current session time.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>tpoint</CODE> - the TuioPoint to assign</DL>
+</DL>
+<HR>
+
+<A NAME="TuioPoint(TUIO.TuioTime, float, float)"><!-- --></A><H3>
+TuioPoint</H3>
+<PRE>
+public <B>TuioPoint</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+                 float&nbsp;xp,
+                 float&nbsp;yp)</PRE>
+<DL>
+<DD>This constructor takes a TuioTime object and two floating point coordinate arguments and sets   
+ its coordinate attributes to these values and its time stamp to the provided TUIO time object.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="update(TUIO.TuioPoint)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&nbsp;tpoint)</PRE>
+<DL>
+<DD>Takes a TuioPoint argument and updates its coordinate attributes 
+ to the coordinates of the provided TuioPoint and leaves its time stamp unchanged.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tpoint</CODE> - the TuioPoint to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(float&nbsp;xp,
+                   float&nbsp;yp)</PRE>
+<DL>
+<DD>Takes two floating point coordinate arguments and updates its coordinate attributes 
+ to the coordinates of the provided TuioPoint and leaves its time stamp unchanged.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="update(TUIO.TuioTime, float, float)"><!-- --></A><H3>
+update</H3>
+<PRE>
+public void <B>update</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime,
+                   float&nbsp;xp,
+                   float&nbsp;yp)</PRE>
+<DL>
+<DD>Takes a TuioTime object and two floating point coordinate arguments and updates its coordinate attributes 
+ to the coordinates of the provided TuioPoint and its time stamp to the provided TUIO time object.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to assign<DD><CODE>xp</CODE> - the X coordinate to assign<DD><CODE>yp</CODE> - the Y coordinate to assign</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getX()"><!-- --></A><H3>
+getX</H3>
+<PRE>
+public float <B>getX</B>()</PRE>
+<DL>
+<DD>Returns the X coordinate of this TuioPoint.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the X coordinate of this TuioPoint</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getY()"><!-- --></A><H3>
+getY</H3>
+<PRE>
+public float <B>getY</B>()</PRE>
+<DL>
+<DD>Returns the Y coordinate of this TuioPoint.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the Y coordinate of this TuioPoint</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDistance(float, float)"><!-- --></A><H3>
+getDistance</H3>
+<PRE>
+public float <B>getDistance</B>(float&nbsp;xp,
+                         float&nbsp;yp)</PRE>
+<DL>
+<DD>Returns the distance to the provided coordinates
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xp</CODE> - the X coordinate of the distant point<DD><CODE>yp</CODE> - the Y coordinate of the distant point
+<DT><B>Returns:</B><DD>the distance to the provided coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDistance(TUIO.TuioPoint)"><!-- --></A><H3>
+getDistance</H3>
+<PRE>
+public float <B>getDistance</B>(<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&nbsp;tpoint)</PRE>
+<DL>
+<DD>Returns the distance to the provided TuioPoint
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tpoint</CODE> - the distant TuioPoint
+<DT><B>Returns:</B><DD>the distance to the provided TuioPoint</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAngle(float, float)"><!-- --></A><H3>
+getAngle</H3>
+<PRE>
+public float <B>getAngle</B>(float&nbsp;xp,
+                      float&nbsp;yp)</PRE>
+<DL>
+<DD>Returns the angle to the provided coordinates
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xp</CODE> - the X coordinate of the distant point<DD><CODE>yp</CODE> - the Y coordinate of the distant point
+<DT><B>Returns:</B><DD>the angle to the provided coordinates</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAngle(TUIO.TuioPoint)"><!-- --></A><H3>
+getAngle</H3>
+<PRE>
+public float <B>getAngle</B>(<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&nbsp;tpoint)</PRE>
+<DL>
+<DD>Returns the angle to the provided TuioPoint
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tpoint</CODE> - the distant TuioPoint
+<DT><B>Returns:</B><DD>the angle to the provided TuioPoint</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAngleDegrees(float, float)"><!-- --></A><H3>
+getAngleDegrees</H3>
+<PRE>
+public float <B>getAngleDegrees</B>(float&nbsp;xp,
+                             float&nbsp;yp)</PRE>
+<DL>
+<DD>Returns the angle in degrees to the provided coordinates
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>xp</CODE> - the X coordinate of the distant point<DD><CODE>yp</CODE> - the Y coordinate of the distant point
+<DT><B>Returns:</B><DD>the angle in degrees to the provided TuioPoint</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getAngleDegrees(TUIO.TuioPoint)"><!-- --></A><H3>
+getAngleDegrees</H3>
+<PRE>
+public float <B>getAngleDegrees</B>(<A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>&nbsp;tpoint)</PRE>
+<DL>
+<DD>Returns the angle in degrees to the provided TuioPoint
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>tpoint</CODE> - the distant TuioPoint
+<DT><B>Returns:</B><DD>the angle in degrees to the provided TuioPoint</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getScreenX(int)"><!-- --></A><H3>
+getScreenX</H3>
+<PRE>
+public int <B>getScreenX</B>(int&nbsp;width)</PRE>
+<DL>
+<DD>Returns the X coordinate in pixels relative to the provided screen width.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>width</CODE> - the screen width
+<DT><B>Returns:</B><DD>the X coordinate of this TuioPoint in pixels relative to the provided screen width</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getScreenY(int)"><!-- --></A><H3>
+getScreenY</H3>
+<PRE>
+public int <B>getScreenY</B>(int&nbsp;height)</PRE>
+<DL>
+<DD>Returns the Y coordinate in pixels relative to the provided screen height.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>height</CODE> - the screen height
+<DT><B>Returns:</B><DD>the Y coordinate of this TuioPoint in pixels relative to the provided screen height</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTuioTime()"><!-- --></A><H3>
+getTuioTime</H3>
+<PRE>
+public <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>getTuioTime</B>()</PRE>
+<DL>
+<DD>Returns the time stamp of this TuioPoint as TuioTime.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the time stamp of this TuioPoint as TuioTime</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStartTime()"><!-- --></A><H3>
+getStartTime</H3>
+<PRE>
+public <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>getStartTime</B>()</PRE>
+<DL>
+<DD>Returns the start time of this TuioPoint as TuioTime.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the start time of this TuioPoint as TuioTime</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../TUIO/TuioObject.html" title="class in TUIO"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioPoint.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioPoint.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/TUIO/TuioTime.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,584 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+TuioTime
+</TITLE>
+
+<META NAME="keywords" CONTENT="TUIO.TuioTime class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TuioTime";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioTime.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioTime.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+TUIO</FONT>
+<BR>
+Class TuioTime</H2>
+<PRE>
+java.lang.Object
+  <IMG SRC="../resources/inherit.gif" ALT="extended by "><B>TUIO.TuioTime</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>TuioTime</B><DT>extends java.lang.Object</DL>
+</PRE>
+
+<P>
+The TuioTime class is a simple structure that is used to reprent the time that has elapsed since the session start.
+ The time is internally represented as seconds and fractions of microseconds which should be more than sufficient for gesture related timing requirements.
+ Therefore at the beginning of a typical TUIO session the static method initSession() will set the reference time for the session. 
+ Another important static method getSessionTime will return a TuioTime object representing the time elapsed since the session start.
+ The class also provides various addtional convience method, which allow some simple time arithmetics.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#TuioTime()">TuioTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default constructor takes no arguments and sets   
+ the Seconds and Microseconds attributes of the newly created TuioTime both to zero.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#TuioTime(long)">TuioTime</A></B>(long&nbsp;msec)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes the provided time represented in total Milliseconds 
+ and assigs this value to the newly created TuioTime.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#TuioTime(long, long)">TuioTime</A></B>(long&nbsp;sec,
+         long&nbsp;usec)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes the provided time represented in Seconds and Microseconds   
+ and assigs these value to the newly created TuioTime.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#TuioTime(TUIO.TuioTime)">TuioTime</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This constructor takes the provided TuioTime   
+ and assigs its Seconds and Microseconds values to the newly created TuioTime.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#add(long)">add</A></B>(long&nbsp;us)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sums the provided time value represented in total Microseconds to this TuioTime.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#add(TUIO.TuioTime)">add</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sums the provided TuioTime to the private Seconds and Microseconds attributes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#equals(TUIO.TuioTime)">equals</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Takes a TuioTime argument and compares the provided TuioTime to the private Seconds and Microseconds attributes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#getMicroseconds()">getMicroseconds</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the TuioTime Microseconds component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#getSeconds()">getSeconds</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the TuioTime Seconds component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#getSessionTime()">getSessionTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the present TuioTime representing the time since session start.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#getStartTime()">getStartTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolut TuioTime representing the session start.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#getSystemTime()">getSystemTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the absolut TuioTime representing the current system time.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#getTotalMilliseconds()">getTotalMilliseconds</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the total TuioTime in Milliseconds.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#initSession()">initSession</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This static method globally resets the TUIO session time.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#reset()">reset</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resets the seconds and micro_seconds attributes to zero.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#subtract(long)">subtract</A></B>(long&nbsp;us)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subtracts the provided time represented in Microseconds from the private Seconds and Microseconds attributes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../TUIO/TuioTime.html#subtract(TUIO.TuioTime)">subtract</A></B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subtracts the provided TuioTime from the private Seconds and Microseconds attributes.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="TuioTime()"><!-- --></A><H3>
+TuioTime</H3>
+<PRE>
+public <B>TuioTime</B>()</PRE>
+<DL>
+<DD>The default constructor takes no arguments and sets   
+ the Seconds and Microseconds attributes of the newly created TuioTime both to zero.
+<P>
+</DL>
+<HR>
+
+<A NAME="TuioTime(long)"><!-- --></A><H3>
+TuioTime</H3>
+<PRE>
+public <B>TuioTime</B>(long&nbsp;msec)</PRE>
+<DL>
+<DD>This constructor takes the provided time represented in total Milliseconds 
+ and assigs this value to the newly created TuioTime.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>msec</CODE> - the total time in Millseconds</DL>
+</DL>
+<HR>
+
+<A NAME="TuioTime(long, long)"><!-- --></A><H3>
+TuioTime</H3>
+<PRE>
+public <B>TuioTime</B>(long&nbsp;sec,
+                long&nbsp;usec)</PRE>
+<DL>
+<DD>This constructor takes the provided time represented in Seconds and Microseconds   
+ and assigs these value to the newly created TuioTime.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>sec</CODE> - the total time in seconds<DD><CODE>usec</CODE> - the microseconds time component</DL>
+</DL>
+<HR>
+
+<A NAME="TuioTime(TUIO.TuioTime)"><!-- --></A><H3>
+TuioTime</H3>
+<PRE>
+public <B>TuioTime</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</PRE>
+<DL>
+<DD>This constructor takes the provided TuioTime   
+ and assigs its Seconds and Microseconds values to the newly created TuioTime.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime used to copy</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="add(long)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>add</B>(long&nbsp;us)</PRE>
+<DL>
+<DD>Sums the provided time value represented in total Microseconds to this TuioTime.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>us</CODE> - the total time to add in Microseconds
+<DT><B>Returns:</B><DD>the sum of this TuioTime with the provided argument in microseconds</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="add(TUIO.TuioTime)"><!-- --></A><H3>
+add</H3>
+<PRE>
+public <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>add</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</PRE>
+<DL>
+<DD>Sums the provided TuioTime to the private Seconds and Microseconds attributes.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to add
+<DT><B>Returns:</B><DD>the sum of this TuioTime with the provided TuioTime argument</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="subtract(long)"><!-- --></A><H3>
+subtract</H3>
+<PRE>
+public <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>subtract</B>(long&nbsp;us)</PRE>
+<DL>
+<DD>Subtracts the provided time represented in Microseconds from the private Seconds and Microseconds attributes.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>us</CODE> - the total time to subtract in Microseconds
+<DT><B>Returns:</B><DD>the subtraction result of this TuioTime minus the provided time in Microseconds</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="subtract(TUIO.TuioTime)"><!-- --></A><H3>
+subtract</H3>
+<PRE>
+public <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>subtract</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</PRE>
+<DL>
+<DD>Subtracts the provided TuioTime from the private Seconds and Microseconds attributes.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to subtract
+<DT><B>Returns:</B><DD>the subtraction result of this TuioTime minus the provided TuioTime</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(TUIO.TuioTime)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(<A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>&nbsp;ttime)</PRE>
+<DL>
+<DD>Takes a TuioTime argument and compares the provided TuioTime to the private Seconds and Microseconds attributes.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>ttime</CODE> - the TuioTime to compare
+<DT><B>Returns:</B><DD>true if the two TuioTime have equal Seconds and Microseconds attributes</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reset()"><!-- --></A><H3>
+reset</H3>
+<PRE>
+public void <B>reset</B>()</PRE>
+<DL>
+<DD>Resets the seconds and micro_seconds attributes to zero.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSeconds()"><!-- --></A><H3>
+getSeconds</H3>
+<PRE>
+public long <B>getSeconds</B>()</PRE>
+<DL>
+<DD>Returns the TuioTime Seconds component.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the TuioTime Seconds component</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMicroseconds()"><!-- --></A><H3>
+getMicroseconds</H3>
+<PRE>
+public long <B>getMicroseconds</B>()</PRE>
+<DL>
+<DD>Returns the TuioTime Microseconds component.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the TuioTime Microseconds component</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTotalMilliseconds()"><!-- --></A><H3>
+getTotalMilliseconds</H3>
+<PRE>
+public long <B>getTotalMilliseconds</B>()</PRE>
+<DL>
+<DD>Returns the total TuioTime in Milliseconds.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the total TuioTime in Milliseconds</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="initSession()"><!-- --></A><H3>
+initSession</H3>
+<PRE>
+public static void <B>initSession</B>()</PRE>
+<DL>
+<DD>This static method globally resets the TUIO session time.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSessionTime()"><!-- --></A><H3>
+getSessionTime</H3>
+<PRE>
+public static <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>getSessionTime</B>()</PRE>
+<DL>
+<DD>Returns the present TuioTime representing the time since session start.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the present TuioTime representing the time since session start</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStartTime()"><!-- --></A><H3>
+getStartTime</H3>
+<PRE>
+public static <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>getStartTime</B>()</PRE>
+<DL>
+<DD>Returns the absolut TuioTime representing the session start.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the absolut TuioTime representing the session start</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSystemTime()"><!-- --></A><H3>
+getSystemTime</H3>
+<PRE>
+public static <A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A> <B>getSystemTime</B>()</PRE>
+<DL>
+<DD>Returns the absolut TuioTime representing the current system time.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the absolut TuioTime representing the current system time</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../TUIO/TuioPoint.html" title="class in TUIO"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/TuioTime.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TuioTime.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/TUIO/package-frame.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+TUIO
+</TITLE>
+
+<META NAME="keywords" CONTENT="TUIO package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../TUIO/package-summary.html" target="classFrame">TUIO</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="TuioListener.html" title="interface in TUIO" target="classFrame"><I>TuioListener</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="TuioClient.html" title="class in TUIO" target="classFrame">TuioClient</A>
+<BR>
+<A HREF="TuioCursor.html" title="class in TUIO" target="classFrame">TuioCursor</A>
+<BR>
+<A HREF="TuioObject.html" title="class in TUIO" target="classFrame">TuioObject</A>
+<BR>
+<A HREF="TuioPoint.html" title="class in TUIO" target="classFrame">TuioPoint</A>
+<BR>
+<A HREF="TuioTime.html" title="class in TUIO" target="classFrame">TuioTime</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/TUIO/package-summary.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+TUIO
+</TITLE>
+
+<META NAME="keywords" CONTENT="TUIO package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TUIO";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package TUIO
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A></B></TD>
+<TD>The TuioListener interface provides a simple callback infrastructure which is used by the <A HREF="../TUIO/TuioClient.html" title="class in TUIO"><CODE>TuioClient</CODE></A> class 
+ to dispatch TUIO events to all registered instances of classes that implement the TuioListener interface defined here.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../TUIO/TuioClient.html" title="class in TUIO">TuioClient</A></B></TD>
+<TD>The TuioClient class is the central TUIO protocol decoder component.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A></B></TD>
+<TD>The TuioCursor class encapsulates /tuio/2Dcur TUIO cursors.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../TUIO/TuioObject.html" title="class in TUIO">TuioObject</A></B></TD>
+<TD>The TuioObject class encapsulates /tuio/2Dobj TUIO objects.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A></B></TD>
+<TD>The TuioPoint class on the one hand is a simple container and utility class to handle TUIO positions in general, 
+ on the other hand the TuioPoint is the base class for the TuioCursor and TuioObject classes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../TUIO/TuioTime.html" title="class in TUIO">TuioTime</A></B></TD>
+<TD>The TuioTime class is a simple structure that is used to reprent the time that has elapsed since the session start.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;NEXT PACKAGE</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/TUIO/package-tree.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+TUIO Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TUIO Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package TUIO
+</H2>
+</CENTER>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">TUIO.<A HREF="../TUIO/TuioClient.html" title="class in TUIO"><B>TuioClient</B></A> (implements com.illposed.osc.OSCListener)
+<LI TYPE="circle">TUIO.<A HREF="../TUIO/TuioPoint.html" title="class in TUIO"><B>TuioPoint</B></A><UL>
+<LI TYPE="circle">TUIO.<A HREF="../TUIO/TuioCursor.html" title="class in TUIO"><B>TuioCursor</B></A><LI TYPE="circle">TUIO.<A HREF="../TUIO/TuioObject.html" title="class in TUIO"><B>TuioObject</B></A></UL>
+<LI TYPE="circle">TUIO.<A HREF="../TUIO/TuioTime.html" title="class in TUIO"><B>TuioTime</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">TUIO.<A HREF="../TUIO/TuioListener.html" title="interface in TUIO"><B>TuioListener</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../index.html?TUIO/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/allclasses-frame.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="TUIO/TuioClient.html" title="class in TUIO" target="classFrame">TuioClient</A>
+<BR>
+<A HREF="TUIO/TuioCursor.html" title="class in TUIO" target="classFrame">TuioCursor</A>
+<BR>
+<A HREF="TUIO/TuioListener.html" title="interface in TUIO" target="classFrame"><I>TuioListener</I></A>
+<BR>
+<A HREF="TUIO/TuioObject.html" title="class in TUIO" target="classFrame">TuioObject</A>
+<BR>
+<A HREF="TUIO/TuioPoint.html" title="class in TUIO" target="classFrame">TuioPoint</A>
+<BR>
+<A HREF="TUIO/TuioTime.html" title="class in TUIO" target="classFrame">TuioTime</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/allclasses-noframe.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+All Classes
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<BR>
+<A HREF="TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>
+<BR>
+<A HREF="TUIO/TuioListener.html" title="interface in TUIO"><I>TuioListener</I></A>
+<BR>
+<A HREF="TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<BR>
+<A HREF="TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<BR>
+<A HREF="TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/constant-values.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+Constant Field Values
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Constant Field Values";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+Constant Field Values</H1>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+<LI><A HREF="#TUIO">TUIO.*</A>
+</UL>
+
+<A NAME="TUIO"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left"><FONT SIZE="+2">
+TUIO.*</FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">TUIO.<A HREF="TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioCursor.TUIO_ACCELERATING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE>TUIO_ACCELERATING</CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioCursor.TUIO_ADDED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE>TUIO_ADDED</CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioCursor.TUIO_DECELERATING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE>TUIO_DECELERATING</CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioCursor.TUIO_REMOVED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE>TUIO_REMOVED</CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioCursor.TUIO_STOPPED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE>TUIO_STOPPED</CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">TUIO.<A HREF="TUIO/TuioObject.html" title="class in TUIO">TuioObject</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioObject.TUIO_ACCELERATING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE>TUIO_ACCELERATING</CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioObject.TUIO_ADDED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE>TUIO_ADDED</CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioObject.TUIO_DECELERATING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE>TUIO_DECELERATING</CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioObject.TUIO_REMOVED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE>TUIO_REMOVED</CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioObject.TUIO_ROTATING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="TUIO/TuioObject.html#TUIO_ROTATING">TUIO_ROTATING</A></CODE></TD>
+<TD ALIGN="right"><CODE>5</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="TUIO.TuioObject.TUIO_STOPPED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE>TUIO_STOPPED</CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/deprecated-list.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+Deprecated List
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Deprecated List";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Deprecated API</B></H2>
+</CENTER>
+<HR SIZE="4" NOSHADE>
+<B>Contents</B><UL>
+</UL>
+
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/help-doc.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,205 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+API Help
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="API Help";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H1>
+How This API Document Is Organized</H1>
+</CENTER>
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
+Package</H3>
+<BLOCKQUOTE>
+
+<P>
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
+<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
+</BLOCKQUOTE>
+<H3>
+Class/Interface</H3>
+<BLOCKQUOTE>
+
+<P>
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
+<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
+<P>
+<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
+<P>
+<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Annotation Type</H3>
+<BLOCKQUOTE>
+
+<P>
+Each annotation type has its own separate page with the following sections:<UL>
+<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
+</BLOCKQUOTE>
+</BLOCKQUOTE>
+<H3>
+Enum</H3>
+<BLOCKQUOTE>
+
+<P>
+Each enum has its own separate page with the following sections:<UL>
+<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
+</BLOCKQUOTE>
+<H3>
+Tree (Class Hierarchy)</H3>
+<BLOCKQUOTE>
+There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
+<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
+</BLOCKQUOTE>
+<H3>
+Deprecated API</H3>
+<BLOCKQUOTE>
+The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
+<H3>
+Index</H3>
+<BLOCKQUOTE>
+The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
+<H3>
+Prev/Next</H3>
+These links take you to the next or previous class, interface, package, or related page.<H3>
+Frames/No Frames</H3>
+These links show and hide the HTML frames.  All pages are available with or without frames.
+<P>
+<H3>
+Serialized Form</H3>
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+<P>
+<H3>
+Constant Field Values</H3>
+The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
+<P>
+<FONT SIZE="-1">
+<EM>
+This help file applies to API documentation generated using the standard doclet.</EM>
+</FONT>
+<BR>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/index-all.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,470 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+Index
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Index";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./TUIO/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<A HREF="#_A_">A</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_G_">G</A> <A HREF="#_I_">I</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> <HR>
+<A NAME="_A_"><!-- --></A><H2>
+<B>A</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioClient.html#acceptMessage(java.util.Date, com.illposed.osc.OSCMessage)"><B>acceptMessage(Date, OSCMessage)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>The OSC callback method where all TUIO messages are received and decoded
+ and where the TUIO event callbacks are dispatched
+<DT><A HREF="./TUIO/TuioTime.html#add(long)"><B>add(long)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Sums the provided time value represented in total Microseconds to this TuioTime.
+<DT><A HREF="./TUIO/TuioTime.html#add(TUIO.TuioTime)"><B>add(TuioTime)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Sums the provided TuioTime to the private Seconds and Microseconds attributes.
+<DT><A HREF="./TUIO/TuioListener.html#addTuioCursor(TUIO.TuioCursor)"><B>addTuioCursor(TuioCursor)</B></A> - 
+Method in interface TUIO.<A HREF="./TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>
+<DD>This callback method is invoked by the TuioClient when a new TuioCursor is added to the session.
+<DT><A HREF="./TUIO/TuioClient.html#addTuioListener(TUIO.TuioListener)"><B>addTuioListener(TuioListener)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>Adds the provided TuioListener to the list of registered TUIO event listeners
+<DT><A HREF="./TUIO/TuioListener.html#addTuioObject(TUIO.TuioObject)"><B>addTuioObject(TuioObject)</B></A> - 
+Method in interface TUIO.<A HREF="./TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>
+<DD>This callback method is invoked by the TuioClient when a new TuioObject is added to the session.
+<DT><A HREF="./TUIO/TuioObject.html#angle"><B>angle</B></A> - 
+Variable in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>The rotation angle value.
+</DL>
+<HR>
+<A NAME="_C_"><!-- --></A><H2>
+<B>C</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioClient.html#connect()"><B>connect()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>The TuioClient starts listening to TUIO messages on the configured UDP port
+ All reveived TUIO messages are decoded and the resulting TUIO events are broadcasted to all registered TuioListeners
+<DT><A HREF="./TUIO/TuioPoint.html#currentTime"><B>currentTime</B></A> - 
+Variable in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>The time stamp of the last update represented as TuioTime (time since session start)
+<DT><A HREF="./TUIO/TuioCursor.html#cursor_id"><B>cursor_id</B></A> - 
+Variable in class TUIO.<A HREF="./TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>
+<DD>The individual cursor ID number that is assigned to each TuioCursor.
+</DL>
+<HR>
+<A NAME="_D_"><!-- --></A><H2>
+<B>D</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioClient.html#disconnect()"><B>disconnect()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>The TuioClient stops listening to TUIO messages on the configured UDP port
+</DL>
+<HR>
+<A NAME="_E_"><!-- --></A><H2>
+<B>E</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioTime.html#equals(TUIO.TuioTime)"><B>equals(TuioTime)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Takes a TuioTime argument and compares the provided TuioTime to the private Seconds and Microseconds attributes.
+</DL>
+<HR>
+<A NAME="_G_"><!-- --></A><H2>
+<B>G</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioObject.html#getAngle()"><B>getAngle()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Returns the rotation angle of this TuioObject.
+<DT><A HREF="./TUIO/TuioPoint.html#getAngle(float, float)"><B>getAngle(float, float)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the angle to the provided coordinates
+<DT><A HREF="./TUIO/TuioPoint.html#getAngle(TUIO.TuioPoint)"><B>getAngle(TuioPoint)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the angle to the provided TuioPoint
+<DT><A HREF="./TUIO/TuioObject.html#getAngleDegrees()"><B>getAngleDegrees()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Returns the rotation angle in degrees of this TuioObject.
+<DT><A HREF="./TUIO/TuioPoint.html#getAngleDegrees(float, float)"><B>getAngleDegrees(float, float)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the angle in degrees to the provided coordinates
+<DT><A HREF="./TUIO/TuioPoint.html#getAngleDegrees(TUIO.TuioPoint)"><B>getAngleDegrees(TuioPoint)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the angle in degrees to the provided TuioPoint
+<DT><A HREF="./TUIO/TuioCursor.html#getCursorID()"><B>getCursorID()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>
+<DD>Returns the Cursor ID of this TuioCursor.
+<DT><A HREF="./TUIO/TuioPoint.html#getDistance(float, float)"><B>getDistance(float, float)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the distance to the provided coordinates
+<DT><A HREF="./TUIO/TuioPoint.html#getDistance(TUIO.TuioPoint)"><B>getDistance(TuioPoint)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the distance to the provided TuioPoint
+<DT><A HREF="./TUIO/TuioTime.html#getMicroseconds()"><B>getMicroseconds()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Returns the TuioTime Microseconds component.
+<DT><A HREF="./TUIO/TuioObject.html#getRotationAccel()"><B>getRotationAccel()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Returns the rotation acceleration of this TuioObject.
+<DT><A HREF="./TUIO/TuioObject.html#getRotationSpeed()"><B>getRotationSpeed()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Returns the rotation speed of this TuioObject.
+<DT><A HREF="./TUIO/TuioPoint.html#getScreenX(int)"><B>getScreenX(int)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the X coordinate in pixels relative to the provided screen width.
+<DT><A HREF="./TUIO/TuioPoint.html#getScreenY(int)"><B>getScreenY(int)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the Y coordinate in pixels relative to the provided screen height.
+<DT><A HREF="./TUIO/TuioTime.html#getSeconds()"><B>getSeconds()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Returns the TuioTime Seconds component.
+<DT><A HREF="./TUIO/TuioTime.html#getSessionTime()"><B>getSessionTime()</B></A> - 
+Static method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Returns the present TuioTime representing the time since session start.
+<DT><A HREF="./TUIO/TuioPoint.html#getStartTime()"><B>getStartTime()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the start time of this TuioPoint as TuioTime.
+<DT><A HREF="./TUIO/TuioTime.html#getStartTime()"><B>getStartTime()</B></A> - 
+Static method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Returns the absolut TuioTime representing the session start.
+<DT><A HREF="./TUIO/TuioObject.html#getSymbolID()"><B>getSymbolID()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Returns the symbol ID of this TuioObject.
+<DT><A HREF="./TUIO/TuioTime.html#getSystemTime()"><B>getSystemTime()</B></A> - 
+Static method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Returns the absolut TuioTime representing the current system time.
+<DT><A HREF="./TUIO/TuioTime.html#getTotalMilliseconds()"><B>getTotalMilliseconds()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Returns the total TuioTime in Milliseconds.
+<DT><A HREF="./TUIO/TuioClient.html#getTuioCursor(long)"><B>getTuioCursor(long)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>Returns the TuioCursor corresponding to the provided Session ID
+ or NULL if the Session ID does not refer to an active TuioCursor
+<DT><A HREF="./TUIO/TuioClient.html#getTuioCursors()"><B>getTuioCursors()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>Returns a Vector of all currently active TuioCursors
+<DT><A HREF="./TUIO/TuioClient.html#getTuioObject(long)"><B>getTuioObject(long)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>Returns the TuioObject corresponding to the provided Session ID
+ or NULL if the Session ID does not refer to an active TuioObject
+<DT><A HREF="./TUIO/TuioClient.html#getTuioObjects()"><B>getTuioObjects()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>Returns a Vector of all currently active TuioObjects
+<DT><A HREF="./TUIO/TuioPoint.html#getTuioTime()"><B>getTuioTime()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the time stamp of this TuioPoint as TuioTime.
+<DT><A HREF="./TUIO/TuioPoint.html#getX()"><B>getX()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the X coordinate of this TuioPoint.
+<DT><A HREF="./TUIO/TuioPoint.html#getY()"><B>getY()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Returns the Y coordinate of this TuioPoint.
+</DL>
+<HR>
+<A NAME="_I_"><!-- --></A><H2>
+<B>I</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioTime.html#initSession()"><B>initSession()</B></A> - 
+Static method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>This static method globally resets the TUIO session time.
+<DT><A HREF="./TUIO/TuioClient.html#isConnected()"><B>isConnected()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>Returns true if this TuioClient is currently connected.
+<DT><A HREF="./TUIO/TuioObject.html#isMoving()"><B>isMoving()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Returns true of this TuioObject is moving.
+</DL>
+<HR>
+<A NAME="_R_"><!-- --></A><H2>
+<B>R</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioListener.html#refresh(TUIO.TuioTime)"><B>refresh(TuioTime)</B></A> - 
+Method in interface TUIO.<A HREF="./TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>
+<DD>This callback method is invoked by the TuioClient to mark the end of a received TUIO message bundle.
+<DT><A HREF="./TUIO/TuioClient.html#removeAllTuioListeners()"><B>removeAllTuioListeners()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>Removes all TuioListener from the list of registered TUIO event listeners
+<DT><A HREF="./TUIO/TuioListener.html#removeTuioCursor(TUIO.TuioCursor)"><B>removeTuioCursor(TuioCursor)</B></A> - 
+Method in interface TUIO.<A HREF="./TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>
+<DD>This callback method is invoked by the TuioClient when an existing TuioCursor is removed from the session.
+<DT><A HREF="./TUIO/TuioClient.html#removeTuioListener(TUIO.TuioListener)"><B>removeTuioListener(TuioListener)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>Removes the provided TuioListener from the list of registered TUIO event listeners
+<DT><A HREF="./TUIO/TuioListener.html#removeTuioObject(TUIO.TuioObject)"><B>removeTuioObject(TuioObject)</B></A> - 
+Method in interface TUIO.<A HREF="./TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>
+<DD>This callback method is invoked by the TuioClient when an existing TuioObject is removed from the session.
+<DT><A HREF="./TUIO/TuioTime.html#reset()"><B>reset()</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Resets the seconds and micro_seconds attributes to zero.
+<DT><A HREF="./TUIO/TuioObject.html#rotation_accel"><B>rotation_accel</B></A> - 
+Variable in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>The rotation acceleration value.
+<DT><A HREF="./TUIO/TuioObject.html#rotation_speed"><B>rotation_speed</B></A> - 
+Variable in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>The rotation speed value.
+</DL>
+<HR>
+<A NAME="_S_"><!-- --></A><H2>
+<B>S</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioPoint.html#startTime"><B>startTime</B></A> - 
+Variable in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>The creation time of this TuioPoint represented as TuioTime (time since session start)
+<DT><A HREF="./TUIO/TuioObject.html#stop(TUIO.TuioTime)"><B>stop(TuioTime)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>This method is used to calculate the speed and acceleration values of a
+ TuioObject with unchanged position and angle.
+<DT><A HREF="./TUIO/TuioTime.html#subtract(long)"><B>subtract(long)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Subtracts the provided time represented in Microseconds from the private Seconds and Microseconds attributes.
+<DT><A HREF="./TUIO/TuioTime.html#subtract(TUIO.TuioTime)"><B>subtract(TuioTime)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>Subtracts the provided TuioTime from the private Seconds and Microseconds attributes.
+<DT><A HREF="./TUIO/TuioObject.html#symbol_id"><B>symbol_id</B></A> - 
+Variable in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>The individual symbol ID number that is assigned to each TuioObject.
+</DL>
+<HR>
+<A NAME="_T_"><!-- --></A><H2>
+<B>T</B></H2>
+<DL>
+<DT><A HREF="./TUIO/package-summary.html"><B>TUIO</B></A> - package TUIO<DD>&nbsp;<DT><A HREF="./TUIO/TuioObject.html#TUIO_ROTATING"><B>TUIO_ROTATING</B></A> - 
+Static variable in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Defines the ROTATING state.
+<DT><A HREF="./TUIO/TuioClient.html" title="class in TUIO"><B>TuioClient</B></A> - Class in <A HREF="./TUIO/package-summary.html">TUIO</A><DD>The TuioClient class is the central TUIO protocol decoder component.<DT><A HREF="./TUIO/TuioClient.html#TuioClient()"><B>TuioClient()</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>The default constructor creates a client that listens to the default TUIO port 3333
+<DT><A HREF="./TUIO/TuioClient.html#TuioClient(int)"><B>TuioClient(int)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioClient.html" title="class in TUIO">TuioClient</A>
+<DD>This constructor creates a client that listens to the provided port
+<DT><A HREF="./TUIO/TuioCursor.html" title="class in TUIO"><B>TuioCursor</B></A> - Class in <A HREF="./TUIO/package-summary.html">TUIO</A><DD>The TuioCursor class encapsulates /tuio/2Dcur TUIO cursors.<DT><A HREF="./TUIO/TuioCursor.html#TuioCursor(TUIO.TuioTime, long, int, float, float)"><B>TuioCursor(TuioTime, long, int, float, float)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>
+<DD>This constructor takes a TuioTime argument and assigns it along  with the provided 
+ Session ID, Cursor ID, X and Y coordinate to the newly created TuioCursor.
+<DT><A HREF="./TUIO/TuioCursor.html#TuioCursor(long, int, float, float)"><B>TuioCursor(long, int, float, float)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>
+<DD>This constructor takes the provided Session ID, Cursor ID, X and Y coordinate 
+ and assigs these values to the newly created TuioCursor.
+<DT><A HREF="./TUIO/TuioCursor.html#TuioCursor(TUIO.TuioCursor)"><B>TuioCursor(TuioCursor)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioCursor.html" title="class in TUIO">TuioCursor</A>
+<DD>This constructor takes the atttibutes of the provided TuioCursor 
+ and assigs these values to the newly created TuioCursor.
+<DT><A HREF="./TUIO/TuioListener.html" title="interface in TUIO"><B>TuioListener</B></A> - Interface in <A HREF="./TUIO/package-summary.html">TUIO</A><DD>The TuioListener interface provides a simple callback infrastructure which is used by the <A HREF="./TUIO/TuioClient.html" title="class in TUIO"><CODE>TuioClient</CODE></A> class 
+ to dispatch TUIO events to all registered instances of classes that implement the TuioListener interface defined here.<DT><A HREF="./TUIO/TuioObject.html" title="class in TUIO"><B>TuioObject</B></A> - Class in <A HREF="./TUIO/package-summary.html">TUIO</A><DD>The TuioObject class encapsulates /tuio/2Dobj TUIO objects.<DT><A HREF="./TUIO/TuioObject.html#TuioObject(TUIO.TuioTime, long, int, float, float, float)"><B>TuioObject(TuioTime, long, int, float, float, float)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>This constructor takes a TuioTime argument and assigns it along with the provided 
+ Session ID, Symbol ID, X and Y coordinate and angle to the newly created TuioObject.
+<DT><A HREF="./TUIO/TuioObject.html#TuioObject(long, int, float, float, float)"><B>TuioObject(long, int, float, float, float)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>This constructor takes the provided Session ID, Symbol ID, X and Y coordinate 
+ and angle, and assigs these values to the newly created TuioObject.
+<DT><A HREF="./TUIO/TuioObject.html#TuioObject(TUIO.TuioObject)"><B>TuioObject(TuioObject)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>This constructor takes the atttibutes of the provided TuioObject 
+ and assigs these values to the newly created TuioObject.
+<DT><A HREF="./TUIO/TuioPoint.html" title="class in TUIO"><B>TuioPoint</B></A> - Class in <A HREF="./TUIO/package-summary.html">TUIO</A><DD>The TuioPoint class on the one hand is a simple container and utility class to handle TUIO positions in general, 
+ on the other hand the TuioPoint is the base class for the TuioCursor and TuioObject classes.<DT><A HREF="./TUIO/TuioPoint.html#TuioPoint()"><B>TuioPoint()</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>The default constructor takes no arguments and sets   
+ its coordinate attributes to zero and its time stamp to the current session time.
+<DT><A HREF="./TUIO/TuioPoint.html#TuioPoint(float, float)"><B>TuioPoint(float, float)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>This constructor takes two floating point coordinate arguments and sets   
+ its coordinate attributes to these values and its time stamp to the current session time.
+<DT><A HREF="./TUIO/TuioPoint.html#TuioPoint(TUIO.TuioPoint)"><B>TuioPoint(TuioPoint)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>This constructor takes a TuioPoint argument and sets its coordinate attributes 
+ to the coordinates of the provided TuioPoint and its time stamp to the current session time.
+<DT><A HREF="./TUIO/TuioPoint.html#TuioPoint(TUIO.TuioTime, float, float)"><B>TuioPoint(TuioTime, float, float)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>This constructor takes a TuioTime object and two floating point coordinate arguments and sets   
+ its coordinate attributes to these values and its time stamp to the provided TUIO time object.
+<DT><A HREF="./TUIO/TuioTime.html" title="class in TUIO"><B>TuioTime</B></A> - Class in <A HREF="./TUIO/package-summary.html">TUIO</A><DD>The TuioTime class is a simple structure that is used to reprent the time that has elapsed since the session start.<DT><A HREF="./TUIO/TuioTime.html#TuioTime()"><B>TuioTime()</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>The default constructor takes no arguments and sets   
+ the Seconds and Microseconds attributes of the newly created TuioTime both to zero.
+<DT><A HREF="./TUIO/TuioTime.html#TuioTime(long)"><B>TuioTime(long)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>This constructor takes the provided time represented in total Milliseconds 
+ and assigs this value to the newly created TuioTime.
+<DT><A HREF="./TUIO/TuioTime.html#TuioTime(long, long)"><B>TuioTime(long, long)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>This constructor takes the provided time represented in Seconds and Microseconds   
+ and assigs these value to the newly created TuioTime.
+<DT><A HREF="./TUIO/TuioTime.html#TuioTime(TUIO.TuioTime)"><B>TuioTime(TuioTime)</B></A> - 
+Constructor for class TUIO.<A HREF="./TUIO/TuioTime.html" title="class in TUIO">TuioTime</A>
+<DD>This constructor takes the provided TuioTime   
+ and assigs its Seconds and Microseconds values to the newly created TuioTime.
+</DL>
+<HR>
+<A NAME="_U_"><!-- --></A><H2>
+<B>U</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioObject.html#update(TUIO.TuioTime, float, float, float, float, float, float, float, float)"><B>update(TuioTime, float, float, float, float, float, float, float, float)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate, angle, X and Y velocity, motion acceleration,
+ rotation speed and rotation acceleration to the private TuioObject attributes.
+<DT><A HREF="./TUIO/TuioObject.html#update(float, float, float, float, float, float, float, float)"><B>update(float, float, float, float, float, float, float, float)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Assigns the provided X and Y coordinate, angle, X and Y velocity, motion acceleration
+ rotation velocity and rotation acceleration to the private TuioContainer attributes.
+<DT><A HREF="./TUIO/TuioObject.html#update(TUIO.TuioTime, float, float, float)"><B>update(TuioTime, float, float, float)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Takes a TuioTime argument and assigns it along with the provided 
+ X and Y coordinate and angle to the private TuioObject attributes.
+<DT><A HREF="./TUIO/TuioObject.html#update(TUIO.TuioObject)"><B>update(TuioObject)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioObject.html" title="class in TUIO">TuioObject</A>
+<DD>Takes the atttibutes of the provided TuioObject 
+ and assigs these values to this TuioObject.
+<DT><A HREF="./TUIO/TuioPoint.html#update(TUIO.TuioPoint)"><B>update(TuioPoint)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Takes a TuioPoint argument and updates its coordinate attributes 
+ to the coordinates of the provided TuioPoint and leaves its time stamp unchanged.
+<DT><A HREF="./TUIO/TuioPoint.html#update(float, float)"><B>update(float, float)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Takes two floating point coordinate arguments and updates its coordinate attributes 
+ to the coordinates of the provided TuioPoint and leaves its time stamp unchanged.
+<DT><A HREF="./TUIO/TuioPoint.html#update(TUIO.TuioTime, float, float)"><B>update(TuioTime, float, float)</B></A> - 
+Method in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Takes a TuioTime object and two floating point coordinate arguments and updates its coordinate attributes 
+ to the coordinates of the provided TuioPoint and its time stamp to the provided TUIO time object.
+<DT><A HREF="./TUIO/TuioListener.html#updateTuioCursor(TUIO.TuioCursor)"><B>updateTuioCursor(TuioCursor)</B></A> - 
+Method in interface TUIO.<A HREF="./TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>
+<DD>This callback method is invoked by the TuioClient when an existing TuioCursor is updated during the session.
+<DT><A HREF="./TUIO/TuioListener.html#updateTuioObject(TUIO.TuioObject)"><B>updateTuioObject(TuioObject)</B></A> - 
+Method in interface TUIO.<A HREF="./TUIO/TuioListener.html" title="interface in TUIO">TuioListener</A>
+<DD>This callback method is invoked by the TuioClient when an existing TuioObject is updated during the session.
+</DL>
+<HR>
+<A NAME="_X_"><!-- --></A><H2>
+<B>X</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioPoint.html#xpos"><B>xpos</B></A> - 
+Variable in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>X coordinate, representated as a floating point value in a range of 0..1
+</DL>
+<HR>
+<A NAME="_Y_"><!-- --></A><H2>
+<B>Y</B></H2>
+<DL>
+<DT><A HREF="./TUIO/TuioPoint.html#ypos"><B>ypos</B></A> - 
+Variable in class TUIO.<A HREF="./TUIO/TuioPoint.html" title="class in TUIO">TuioPoint</A>
+<DD>Y coordinate, representated as a floating point value in a range of 0..1
+</DL>
+<HR>
+<A HREF="#_A_">A</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_G_">G</A> <A HREF="#_I_">I</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> 
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./TUIO/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/index.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Mon May 18 10:30:51 CEST 2009-->
+<TITLE>
+Generated Documentation (Untitled)
+</TITLE>
+<SCRIPT type="text/javascript">
+    targetPage = "" + window.location.search;
+    if (targetPage != "" && targetPage != "undefined")
+        targetPage = targetPage.substring(1);
+    if (targetPage.indexOf(":") != -1)
+        targetPage = "undefined";
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+</HEAD>
+<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
+<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+<FRAME src="TUIO/package-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<NOFRAMES>
+<H2>
+Frame Alert</H2>
+
+<P>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<BR>
+Link to<A HREF="TUIO/package-summary.html">Non-frame version.</A>
+</NOFRAMES>
+</FRAMESET>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/overview-tree.html	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_16) on Mon May 18 10:30:51 CEST 2009 -->
+<TITLE>
+Class Hierarchy
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Class Hierarchy";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For All Packages</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="TUIO/package-tree.html">TUIO</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.Object<UL>
+<LI TYPE="circle">TUIO.<A HREF="TUIO/TuioClient.html" title="class in TUIO"><B>TuioClient</B></A> (implements com.illposed.osc.OSCListener)
+<LI TYPE="circle">TUIO.<A HREF="TUIO/TuioPoint.html" title="class in TUIO"><B>TuioPoint</B></A><UL>
+<LI TYPE="circle">TUIO.<A HREF="TUIO/TuioCursor.html" title="class in TUIO"><B>TuioCursor</B></A><LI TYPE="circle">TUIO.<A HREF="TUIO/TuioObject.html" title="class in TUIO"><B>TuioObject</B></A></UL>
+<LI TYPE="circle">TUIO.<A HREF="TUIO/TuioTime.html" title="class in TUIO"><B>TuioTime</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">TUIO.<A HREF="TUIO/TuioListener.html" title="interface in TUIO"><B>TuioListener</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="TUIO/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/package-list	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,1 @@
+TUIO
Binary file front_processing/extern/TUIO_JAVA/doc/resources/inherit.gif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/doc/stylesheet.css	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,29 @@
+/* Javadoc style sheet */
+
+/* Define colors, fonts and other style attributes here to override the defaults */
+
+/* Page background color */
+body { background-color: #FFFFFF }
+
+/* Headings */
+h1 { font-size: 145% }
+
+/* Table colors */
+.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */
+.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */
+.TableRowColor         { background: #FFFFFF } /* White */
+
+/* Font used in left-hand frame lists */
+.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif }
+.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }
+.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }
+
+/* Navigation bar fonts and colors */
+.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */
+.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */
+.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}
+.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
+
+.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
+
Binary file front_processing/extern/TUIO_JAVA/libTUIO.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TUIO/TuioClient.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,463 @@
+/*
+	TUIO Java backend - part of the reacTIVision project
+	http://reactivision.sourceforge.net/
+
+	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+package TUIO;
+
+import com.illposed.osc.*;
+import java.util.*;
+
+/**
+ * The TuioClient class is the central TUIO protocol decoder component. It provides a simple callback infrastructure using the {@link TuioListener} interface.
+ * In order to receive and decode TUIO messages an instance of TuioClient needs to be created. The TuioClient instance then generates TUIO events
+ * which are broadcasted to all registered classes that implement the {@link TuioListener} interface.<P> 
+ * <code>
+ * TuioClient client = new TuioClient();<br/>
+ * client.addTuioListener(myTuioListener);<br/>
+ * client.connect();<br/>
+ * </code>
+ *
+ * @author Martin Kaltenbrunner
+ * @version 1.4
+ */ 
+public class TuioClient implements OSCListener {
+	
+	private int port = 3333;
+	private OSCPortIn oscPort;
+	private boolean connected = false;
+	private Hashtable<Long,TuioObject> objectList = new Hashtable<Long,TuioObject>();
+	private Vector<Long> aliveObjectList = new Vector<Long>();
+	private Vector<Long> newObjectList = new Vector<Long>();
+	private Hashtable<Long,TuioCursor> cursorList = new Hashtable<Long,TuioCursor>();
+	private Vector<Long> aliveCursorList = new Vector<Long>();
+	private Vector<Long> newCursorList = new Vector<Long>();
+
+	private Vector<TuioObject> frameObjects = new Vector<TuioObject>();
+	private Vector<TuioCursor> frameCursors = new Vector<TuioCursor>();
+
+	private Vector<TuioCursor> freeCursorList = new Vector<TuioCursor>();
+	private int maxCursorID = -1;
+	
+	private long currentFrame = 0;
+	private TuioTime currentTime;
+
+	private Vector<TuioListener> listenerList = new Vector<TuioListener>();
+	
+	/**
+	 * The default constructor creates a client that listens to the default TUIO port 3333
+	 */
+	public TuioClient() {}
+
+	/**
+	 * This constructor creates a client that listens to the provided port
+	 *
+	 * @param  port  the listening port number
+	 */
+	public TuioClient(int port) {
+		this.port = port;
+	}
+		
+	/**
+	 * The TuioClient starts listening to TUIO messages on the configured UDP port
+	 * All reveived TUIO messages are decoded and the resulting TUIO events are broadcasted to all registered TuioListeners
+	 */
+	public void connect() {
+
+		TuioTime.initSession();
+		currentTime = new TuioTime();
+		currentTime.reset();
+		
+		try {
+			oscPort = new OSCPortIn(port);
+			oscPort.addListener("/tuio/2Dobj",this);
+			oscPort.addListener("/tuio/2Dcur",this);
+			oscPort.startListening();
+			connected = true;
+		} catch (Exception e) {
+			System.out.println("TuioClient: failed to connect to port "+port);
+			connected = false;
+		}		
+	}
+	
+	/**
+	 * The TuioClient stops listening to TUIO messages on the configured UDP port
+	 */
+	public void disconnect() {
+		oscPort.stopListening();
+		try { Thread.sleep(100); }
+		catch (Exception e) {};
+		oscPort.close();
+		connected = false;
+	}
+
+	/**
+	 * Returns true if this TuioClient is currently connected.
+	 * @return	true if this TuioClient is currently connected
+	 */
+	public boolean isConnected() { return connected; }
+
+	/**
+	 * Adds the provided TuioListener to the list of registered TUIO event listeners
+	 *
+	 * @param  listener  the TuioListener to add
+	 */
+	public void addTuioListener(TuioListener listener) {
+		listenerList.addElement(listener);
+	}
+	
+	/**
+	 * Removes the provided TuioListener from the list of registered TUIO event listeners
+	 *
+	 * @param  listener  the TuioListener to remove
+	 */
+	public void removeTuioListener(TuioListener listener) {	
+		listenerList.removeElement(listener);
+	}
+
+	/**
+	 * Removes all TuioListener from the list of registered TUIO event listeners
+	 */
+	public void removeAllTuioListeners() {	
+		listenerList.clear();
+	}
+	
+	/**
+	 * Returns a Vector of all currently active TuioObjects
+	 *
+	 * @return  a Vector of all currently active TuioObjects
+	 */
+	public Vector<TuioObject> getTuioObjects() {
+		return new Vector<TuioObject>(objectList.values());
+	}
+	
+	/**
+	 * Returns a Vector of all currently active TuioCursors
+	 *
+	 * @return  a Vector of all currently active TuioCursors
+	 */
+	public Vector<TuioCursor> getTuioCursors() {
+		return new Vector<TuioCursor>(cursorList.values());
+	}	
+
+	/**
+	 * Returns the TuioObject corresponding to the provided Session ID
+	 * or NULL if the Session ID does not refer to an active TuioObject
+	 *
+	 * @return  an active TuioObject corresponding to the provided Session ID or NULL
+	 */
+	public TuioObject getTuioObject(long s_id) {
+		return objectList.get(s_id);
+	}
+	
+	/**
+	 * Returns the TuioCursor corresponding to the provided Session ID
+	 * or NULL if the Session ID does not refer to an active TuioCursor
+	 *
+	 * @return  an active TuioCursor corresponding to the provided Session ID or NULL
+	 */
+	public TuioCursor getTuioCursor(long s_id) {
+		return cursorList.get(s_id);
+	}	
+
+	/**
+	 * The OSC callback method where all TUIO messages are received and decoded
+	 * and where the TUIO event callbacks are dispatched
+	 *
+	 * @param  date	the time stamp of the OSC bundle
+	 * @param  message	the received OSC message
+	 */
+	public void acceptMessage(Date date, OSCMessage message) {
+	
+		Object[] args = message.getArguments();
+		String command = (String)args[0];
+		String address = message.getAddress();
+
+		if (address.equals("/tuio/2Dobj")) {
+
+			if (command.equals("set")) {
+				
+				long s_id  = ((Integer)args[1]).longValue();
+				int c_id  = ((Integer)args[2]).intValue();
+				float xpos = ((Float)args[3]).floatValue();
+				float ypos = ((Float)args[4]).floatValue();
+				float angle = ((Float)args[5]).floatValue();
+				float xspeed = ((Float)args[6]).floatValue();
+				float yspeed = ((Float)args[7]).floatValue();
+				float rspeed = ((Float)args[8]).floatValue();
+				float maccel = ((Float)args[9]).floatValue();
+				float raccel = ((Float)args[10]).floatValue();
+				
+				if (objectList.get(s_id) == null) {
+				
+					TuioObject addObject = new TuioObject(s_id,c_id,xpos,ypos,angle);
+					frameObjects.addElement(addObject);
+					
+				} else {
+				
+					TuioObject tobj = objectList.get(s_id);
+					if (tobj==null) return;
+					if ((tobj.xpos!=xpos) || (tobj.ypos!=ypos) || (tobj.angle!=angle) || (tobj.x_speed!=xspeed) || (tobj.y_speed!=yspeed) || (tobj.rotation_speed!=rspeed) || (tobj.motion_accel!=maccel) || (tobj.rotation_accel!=raccel)) {
+						
+						TuioObject updateObject = new TuioObject(s_id,c_id,xpos,ypos,angle);
+						updateObject.update(xpos,ypos,angle,xspeed,yspeed,rspeed,maccel,raccel);
+						frameObjects.addElement(updateObject);
+					}
+				
+				}
+				
+			} else if (command.equals("alive")) {
+	
+				newObjectList.clear();
+				for (int i=1;i<args.length;i++) {
+					// get the message content
+					long s_id = ((Integer)args[i]).longValue();
+					newObjectList.addElement(s_id);
+					// reduce the object list to the lost objects
+					if (aliveObjectList.contains(s_id))
+						 aliveObjectList.removeElement(s_id);
+				}
+				
+				// remove the remaining objects
+				for (int i=0;i<aliveObjectList.size();i++) {
+					TuioObject removeObject = objectList.get(aliveObjectList.elementAt(i));
+					if (removeObject==null) continue;
+					removeObject.remove(currentTime);
+					frameObjects.addElement(removeObject);
+				}
+					
+			} else if (command.equals("fseq")) {
+				
+				long fseq = ((Integer)args[1]).longValue();
+				boolean lateFrame = false;
+				
+				if (fseq>0) {
+					if (fseq>currentFrame) currentTime = TuioTime.getSessionTime();
+					if ((fseq>=currentFrame) || ((currentFrame-fseq)>100)) currentFrame=fseq;
+					else lateFrame = true;
+				} else if (TuioTime.getSessionTime().subtract(currentTime).getTotalMilliseconds()>100) {
+					currentTime = TuioTime.getSessionTime();
+				}
+				
+				if (!lateFrame) {
+					Enumeration<TuioObject> frameEnum = frameObjects.elements();
+					while(frameEnum.hasMoreElements()) {
+						TuioObject tobj = frameEnum.nextElement();
+						
+						switch (tobj.getTuioState()) {
+							case TuioObject.TUIO_REMOVED:
+								TuioObject removeObject = tobj;
+								removeObject.remove(currentTime);
+								for (int i=0;i<listenerList.size();i++) {
+									TuioListener listener = (TuioListener)listenerList.elementAt(i);
+									if (listener!=null) listener.removeTuioObject(removeObject);
+								}								
+								objectList.remove(removeObject.getSessionID());
+								break;
+
+							case TuioObject.TUIO_ADDED:
+								TuioObject addObject = new TuioObject(currentTime,tobj.getSessionID(),tobj.getSymbolID(),tobj.getX(),tobj.getY(),tobj.getAngle());
+								objectList.put(addObject.getSessionID(),addObject);
+								for (int i=0;i<listenerList.size();i++) {
+									TuioListener listener = (TuioListener)listenerList.elementAt(i);
+									if (listener!=null) listener.addTuioObject(addObject);
+								}
+								break;
+																
+							default:
+								TuioObject updateObject = objectList.get(tobj.getSessionID());
+								if ( (tobj.getX()!=updateObject.getX() && tobj.getXSpeed()==0) || (tobj.getY()!=updateObject.getY() && tobj.getYSpeed()==0) )
+									updateObject.update(currentTime,tobj.getX(),tobj.getY(),tobj.getAngle());
+								else
+									updateObject.update(currentTime,tobj.getX(),tobj.getY(),tobj.getAngle(),tobj.getXSpeed(),tobj.getYSpeed(),tobj.getRotationSpeed(),tobj.getMotionAccel(),tobj.getRotationAccel());
+
+								for (int i=0;i<listenerList.size();i++) {
+									TuioListener listener = (TuioListener)listenerList.elementAt(i);
+									if (listener!=null) listener.updateTuioObject(updateObject);
+								}
+						}
+					}
+					
+					for (int i=0;i<listenerList.size();i++) {
+						TuioListener listener = (TuioListener)listenerList.elementAt(i);
+						if (listener!=null) listener.refresh(new TuioTime(currentTime));
+					}
+					
+					Vector<Long> buffer = aliveObjectList;
+					aliveObjectList = newObjectList;
+					// recycling the vector
+					newObjectList = buffer;					
+				}
+				frameObjects.clear();
+			}
+		} else if (address.equals("/tuio/2Dcur")) {
+
+			if (command.equals("set")) {
+
+				long s_id  = ((Integer)args[1]).longValue();
+				float xpos = ((Float)args[2]).floatValue();
+				float ypos = ((Float)args[3]).floatValue();
+				float xspeed = ((Float)args[4]).floatValue();
+				float yspeed = ((Float)args[5]).floatValue();
+				float maccel = ((Float)args[6]).floatValue();
+				
+				if (cursorList.get(s_id) == null) {
+									
+					TuioCursor addCursor = new TuioCursor(s_id, -1 ,xpos,ypos);
+					frameCursors.addElement(addCursor);
+					
+				} else {
+				
+					TuioCursor tcur = cursorList.get(s_id);
+					if (tcur==null) return;
+					if ((tcur.xpos!=xpos) || (tcur.ypos!=ypos) || (tcur.x_speed!=xspeed) || (tcur.y_speed!=yspeed) || (tcur.motion_accel!=maccel)) {
+
+						TuioCursor updateCursor = new TuioCursor(s_id,tcur.getCursorID(),xpos,ypos);
+						updateCursor.update(xpos,ypos,xspeed,yspeed,maccel);
+						frameCursors.addElement(updateCursor);
+					}
+				}
+				
+				//System.out.println("set cur " + s_id+" "+xpos+" "+ypos+" "+xspeed+" "+yspeed+" "+maccel);
+				
+			} else if (command.equals("alive")) {
+	
+				newCursorList.clear();
+				for (int i=1;i<args.length;i++) {
+					// get the message content
+					long s_id = ((Integer)args[i]).longValue();
+					newCursorList.addElement(s_id);
+					// reduce the cursor list to the lost cursors
+					if (aliveCursorList.contains(s_id)) 
+						aliveCursorList.removeElement(s_id);
+				}
+				
+				// remove the remaining cursors
+				for (int i=0;i<aliveCursorList.size();i++) {
+					TuioCursor removeCursor = cursorList.get(aliveCursorList.elementAt(i));
+					if (removeCursor==null) continue;
+					removeCursor.remove(currentTime);
+					frameCursors.addElement(removeCursor);
+				}
+								
+			} else if (command.equals("fseq")) {
+				long fseq = ((Integer)args[1]).longValue();
+				boolean lateFrame = false;
+				
+				if (fseq>0) {
+					if (fseq>currentFrame) currentTime = TuioTime.getSessionTime();
+					if ((fseq>=currentFrame) || ((currentFrame-fseq)>100)) currentFrame = fseq;
+					else lateFrame = true;
+				} else if (TuioTime.getSessionTime().subtract(currentTime).getTotalMilliseconds()>100) {
+					currentTime = TuioTime.getSessionTime();
+				}
+				if (!lateFrame) {
+
+					Enumeration<TuioCursor> frameEnum = frameCursors.elements();
+					while(frameEnum.hasMoreElements()) {
+						TuioCursor tcur = frameEnum.nextElement();
+						
+						switch (tcur.getTuioState()) {
+							case TuioCursor.TUIO_REMOVED:
+							
+								TuioCursor removeCursor = tcur;
+								removeCursor.remove(currentTime);
+								
+								for (int i=0;i<listenerList.size();i++) {
+									TuioListener listener = (TuioListener)listenerList.elementAt(i);
+									if (listener!=null) listener.removeTuioCursor(removeCursor);
+								}
+
+								cursorList.remove(removeCursor.getSessionID());
+
+								if (removeCursor.getCursorID()==maxCursorID) {
+									maxCursorID = -1;
+									if (cursorList.size()>0) {
+										Enumeration<TuioCursor> clist = cursorList.elements();
+										while (clist.hasMoreElements()) {
+											int c_id = clist.nextElement().getCursorID();
+											if (c_id>maxCursorID) maxCursorID=c_id;
+										}
+										
+										Enumeration<TuioCursor> flist = freeCursorList.elements();
+										while (flist.hasMoreElements()) {
+											int c_id = flist.nextElement().getCursorID();
+											if (c_id>=maxCursorID) freeCursorList.removeElement(c_id);
+										}
+									} else freeCursorList.clear();
+								} else if (removeCursor.getCursorID()<maxCursorID) {
+									freeCursorList.addElement(removeCursor);
+								}
+								
+								break;
+
+							case TuioCursor.TUIO_ADDED:
+
+								int c_id = cursorList.size();
+								if ((cursorList.size()<=maxCursorID) && (freeCursorList.size()>0)) {
+									TuioCursor closestCursor = freeCursorList.firstElement();
+									Enumeration<TuioCursor> testList = freeCursorList.elements();
+									while (testList.hasMoreElements()) {
+										TuioCursor testCursor = testList.nextElement();
+										if (testCursor.getDistance(tcur)<closestCursor.getDistance(tcur)) closestCursor = testCursor;
+									}
+									c_id = closestCursor.getCursorID();
+									freeCursorList.removeElement(closestCursor);
+								} else maxCursorID = c_id;		
+								
+								TuioCursor addCursor = new TuioCursor(currentTime,tcur.getSessionID(),c_id,tcur.getX(),tcur.getY());
+								cursorList.put(addCursor.getSessionID(),addCursor);
+								
+								for (int i=0;i<listenerList.size();i++) {
+									TuioListener listener = (TuioListener)listenerList.elementAt(i);
+									if (listener!=null) listener.addTuioCursor(addCursor);
+								}
+								break;
+								
+							default:
+								
+								TuioCursor updateCursor = cursorList.get(tcur.getSessionID());
+								if ( (tcur.getX()!=updateCursor.getX() && tcur.getXSpeed()==0) || (tcur.getY()!=updateCursor.getY() && tcur.getYSpeed()==0) )
+									updateCursor.update(currentTime,tcur.getX(),tcur.getY());
+								else 
+									updateCursor.update(currentTime,tcur.getX(),tcur.getY(),tcur.getXSpeed(),tcur.getYSpeed(),tcur.getMotionAccel());
+									
+								for (int i=0;i<listenerList.size();i++) {
+									TuioListener listener = (TuioListener)listenerList.elementAt(i);
+									if (listener!=null) listener.updateTuioCursor(updateCursor);
+								}
+						}
+					}
+					
+					for (int i=0;i<listenerList.size();i++) {
+						TuioListener listener = (TuioListener)listenerList.elementAt(i);
+						if (listener!=null) listener.refresh(new TuioTime(currentTime));
+					}
+					
+					Vector<Long> buffer = aliveCursorList;
+					aliveCursorList = newCursorList;
+					// recycling the vector
+					newCursorList = buffer;				
+				}
+				
+				frameCursors.clear();
+			} 
+
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TUIO/TuioContainer.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,335 @@
+/*
+ TUIO Java backend - part of the reacTIVision project
+ http://reactivision.sourceforge.net/
+ 
+ Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+ 
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ 
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+package TUIO;
+
+import java.util.*;
+
+/**
+ * The abstract TuioContainer class defines common attributes that apply to both subclasses {@link TuioObject} and {@link TuioCursor}.
+ *
+ * @author Martin Kaltenbrunner
+ * @version 1.4
+ */ 
+abstract class TuioContainer extends TuioPoint {
+	
+	/**
+	 * The unique session ID number that is assigned to each TUIO object or cursor.
+	 */ 
+	protected long session_id;
+	/**
+	 * The X-axis velocity value.
+	 */ 
+	protected float x_speed;
+	/**
+	 * The Y-axis velocity value.
+	 */ 
+	protected float y_speed;
+	/**
+	 * The motion speed value.
+	 */ 
+	protected float motion_speed;	
+	/**
+	 * The motion acceleration value.
+	 */ 
+	protected float motion_accel;		
+	/**
+	 * A Vector of TuioPoints containing all the previous positions of the TUIO component.
+	 */ 
+	protected Vector<TuioPoint> path;
+	/**
+	 * Defines the ADDED state.
+	 */ 
+	public static final int TUIO_ADDED = 0;
+	/**
+	 * Defines the ACCELERATING state.
+	 */ 
+	public static final int TUIO_ACCELERATING = 1;
+	/**
+	 * Defines the DECELERATING state.
+	 */ 
+	public static final int TUIO_DECELERATING = 2;
+	/**
+	 * Defines the STOPPED state.
+	 */ 
+	public static final int TUIO_STOPPED = 3;
+	/**
+	 * Defines the REMOVED state.
+	 */ 
+	public static final int TUIO_REMOVED = 4;
+	/**
+	 * Reflects the current state of the TuioComponent
+	 */ 
+	protected int state;
+	
+	/**
+	 * This constructor takes a TuioTime argument and assigns it along with the provided 
+	 * Session ID, X and Y coordinate to the newly created TuioContainer.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 * @param	si	the Session ID to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 */
+	TuioContainer(TuioTime ttime, long si, float xp, float yp) {
+		super(ttime,xp,yp);
+		
+		session_id = si;
+		x_speed = 0.0f;
+		y_speed = 0.0f;
+		motion_speed = 0.0f;
+		motion_accel = 0.0f;
+		
+		path = new Vector<TuioPoint>();
+		path.addElement(new TuioPoint(currentTime,xpos,ypos));
+		state = TUIO_ADDED;
+	}
+	
+	/**
+	 * This constructor takes the provided Session ID, X and Y coordinate 
+	 * and assigs these values to the newly created TuioContainer.
+	 *
+	 * @param	si	the Session ID to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 */
+	TuioContainer(long si, float xp, float yp) {
+		super(xp,yp);
+		
+		session_id = si;
+		x_speed = 0.0f;
+		y_speed = 0.0f;
+		motion_speed = 0.0f;
+		motion_accel = 0.0f;
+		
+		path = new Vector<TuioPoint>();
+		path.addElement(new TuioPoint(currentTime,xpos,ypos));
+		state = TUIO_ADDED;
+	}
+	
+	/**
+	 * This constructor takes the atttibutes of the provided TuioContainer 
+	 * and assigs these values to the newly created TuioContainer.
+	 *
+	 * @param	tcon	the TuioContainer to assign
+	 */
+	TuioContainer(TuioContainer tcon) {
+		super(tcon);
+		
+		session_id = tcon.getSessionID();
+		x_speed = 0.0f;
+		y_speed = 0.0f;
+		motion_speed = 0.0f;
+		motion_accel = 0.0f;
+		
+		path = new Vector<TuioPoint>();
+		path.addElement(new TuioPoint(currentTime,xpos,ypos));
+		state = TUIO_ADDED;
+	}
+	
+	/**
+	 * Takes a TuioTime argument and assigns it along with the provided 
+	 * X and Y coordinate to the private TuioContainer attributes.
+	 * The speed and accleration values are calculated accordingly.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 */
+	public void update(TuioTime ttime, float xp, float yp) {
+		TuioPoint lastPoint = path.lastElement();
+		super.update(ttime,xp,yp);
+		
+		TuioTime diffTime = currentTime.subtract(lastPoint.getTuioTime());
+		float dt = diffTime.getTotalMilliseconds()/1000.0f;
+		float dx = this.xpos - lastPoint.getX();
+		float dy = this.ypos - lastPoint.getY();
+		float dist = (float)Math.sqrt(dx*dx+dy*dy);
+		float last_motion_speed = this.motion_speed;
+		
+		this.x_speed = dx/dt;
+		this.y_speed = dy/dt;
+		this.motion_speed = dist/dt;
+		this.motion_accel = (motion_speed - last_motion_speed)/dt;
+		
+		path.addElement(new TuioPoint(currentTime,xpos,ypos));
+		if (motion_accel>0) state = TUIO_ACCELERATING;
+		else if (motion_accel<0) state = TUIO_DECELERATING;
+		else state = TUIO_STOPPED;
+	}
+	
+	/**
+	 * This method is used to calculate the speed and acceleration values of
+	 * TuioContainers with unchanged positions.
+	 */
+	public void stop(TuioTime ttime) {
+		update(ttime,xpos,ypos);
+	}
+	
+	/**
+	 * Takes a TuioTime argument and assigns it along with the provided 
+	 * X and Y coordinate, X and Y velocity and acceleration
+	 * to the private TuioContainer attributes.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 * @param	xs	the X velocity to assign
+	 * @param	ys	the Y velocity to assign
+	 * @param	ma	the acceleration to assign
+	 */
+	public void update(TuioTime ttime, float xp, float yp , float xs, float ys, float ma) {
+		super.update(ttime,xp,yp);
+		x_speed = xs;
+		y_speed = ys;
+		motion_speed = (float)Math.sqrt(x_speed*x_speed+y_speed*y_speed);
+		motion_accel = ma;
+		path.addElement(new TuioPoint(currentTime,xpos,ypos));
+		if (motion_accel>0) state = TUIO_ACCELERATING;
+		else if (motion_accel<0) state = TUIO_DECELERATING;
+		else state = TUIO_STOPPED;
+	}
+	
+	/**
+	 * Assigns the provided X and Y coordinate, X and Y velocity and acceleration
+	 * to the private TuioContainer attributes. The TuioTime time stamp remains unchanged.
+	 *
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 * @param	xs	the X velocity to assign
+	 * @param	ys	the Y velocity to assign
+	 * @param	ma	the acceleration to assign
+	 */
+	public void update(float xp, float yp,float xs,float ys,float ma) {
+		super.update(xp,yp);
+		x_speed = xs;
+		y_speed = ys;
+		motion_speed = (float)Math.sqrt(x_speed*x_speed+y_speed*y_speed);
+		motion_accel = ma;
+		path.addElement(new TuioPoint(currentTime,xpos,ypos));
+		if (motion_accel>0) state = TUIO_ACCELERATING;
+		else if (motion_accel<0) state = TUIO_DECELERATING;
+		else state = TUIO_STOPPED;
+	}
+	
+	/**
+	 * Takes the atttibutes of the provided TuioContainer 
+	 * and assigs these values to this TuioContainer.
+	 * The TuioTime time stamp of this TuioContainer remains unchanged.
+	 *
+	 * @param	tcon	the TuioContainer to assign
+	 */
+	public void update (TuioContainer tcon) {
+		super.update(tcon);
+		x_speed = tcon.getXSpeed();
+		y_speed = tcon.getYSpeed();
+		motion_speed = tcon.getMotionSpeed();
+		motion_accel = tcon.getMotionAccel();
+		path.addElement(new TuioPoint(currentTime,xpos,ypos));
+		if (motion_accel>0) state = TUIO_ACCELERATING;
+		else if (motion_accel<0) state = TUIO_DECELERATING;
+		else state = TUIO_STOPPED;
+	}
+	
+	/**
+	 * Assigns the REMOVE state to this TuioContainer and sets
+	 * its TuioTime time stamp to the provided TuioTime argument.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 */
+	public void remove(TuioTime ttime) {
+		currentTime = new TuioTime(ttime);
+		state = TUIO_REMOVED;
+	}
+	
+	/**
+	 * Returns the Session ID of this TuioContainer.
+	 * @return	the Session ID of this TuioContainer
+	 */
+	public long getSessionID() {
+		return session_id;
+	}
+	
+	/**
+	 * Returns the X velocity of this TuioContainer.
+	 * @return	the X velocity of this TuioContainer
+	 */
+	public float getXSpeed() {
+		return x_speed;
+	}
+	
+	/**
+	 * Returns the Y velocity of this TuioContainer.
+	 * @return	the Y velocity of this TuioContainer
+	 */
+	public float getYSpeed() {
+		return y_speed;
+	}
+	
+	/**
+	 * Returns the position of this TuioContainer.
+	 * @return	the position of this TuioContainer
+	 */
+	public TuioPoint getPosition() {
+		return new TuioPoint(xpos,ypos);
+	}
+	
+	/**
+	 * Returns the path of this TuioContainer.
+	 * @return	the path of this TuioContainer
+	 */
+	public Vector<TuioPoint> getPath() {
+		return path;
+	}
+	
+	/**
+	 * Returns the motion speed of this TuioContainer.
+	 * @return	the motion speed of this TuioContainer
+	 */
+	public float getMotionSpeed() {
+		return motion_speed;
+	}
+	
+	/**
+	 * Returns the motion acceleration of this TuioContainer.
+	 * @return	the motion acceleration of this TuioContainer
+	 */
+	public float getMotionAccel() {
+		return motion_accel;
+	}
+	
+	/**
+	 * Returns the TUIO state of this TuioContainer.
+	 * @return	the TUIO state of this TuioContainer
+	 */
+	public int getTuioState() {
+		return state;
+	}
+	
+	/**
+	 * Returns true of this TuioContainer is moving.
+	 * @return	true of this TuioContainer is moving
+	 */
+	public boolean isMoving() { 
+		if ((state==TUIO_ACCELERATING) || (state==TUIO_DECELERATING)) return true;
+		else return false;
+	}
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TUIO/TuioCursor.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,84 @@
+/*
+	TUIO Java backend - part of the reacTIVision project
+	http://reactivision.sourceforge.net/
+
+	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+package TUIO;
+
+/**
+ * The TuioCursor class encapsulates /tuio/2Dcur TUIO cursors.
+ *
+ * @author Martin Kaltenbrunner
+ * @version 1.4
+ */ 
+public class TuioCursor extends TuioContainer {
+
+	/**
+	 * The individual cursor ID number that is assigned to each TuioCursor.
+	 */ 
+	protected int cursor_id;
+	
+	/**
+	 * This constructor takes a TuioTime argument and assigns it along  with the provided 
+	 * Session ID, Cursor ID, X and Y coordinate to the newly created TuioCursor.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 * @param	si	the Session ID  to assign
+	 * @param	ci	the Cursor ID  to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 */
+	public TuioCursor (TuioTime ttime, long si, int ci, float xp, float yp) {
+		super(ttime, si,xp,yp);
+		this.cursor_id = ci;
+	}
+	
+	/**
+	 * This constructor takes the provided Session ID, Cursor ID, X and Y coordinate 
+	 * and assigs these values to the newly created TuioCursor.
+	 *
+	 * @param	si	the Session ID  to assign
+	 * @param	ci	the Cursor ID  to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 */
+	public TuioCursor (long si, int ci, float xp, float yp) {
+		super(si,xp,yp);
+		this.cursor_id = ci;
+	}
+
+	/**
+	 * This constructor takes the atttibutes of the provided TuioCursor 
+	 * and assigs these values to the newly created TuioCursor.
+	 *
+	 * @param	tcur	the TuioCursor to assign
+	 */
+	public TuioCursor (TuioCursor tcur) {
+		super(tcur);
+		this.cursor_id = tcur.getCursorID();
+	}
+	
+	/**
+	 * Returns the Cursor ID of this TuioCursor.
+	 * @return	the Cursor ID of this TuioCursor
+	 */
+	public int getCursorID() {
+		return cursor_id;
+	}
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TUIO/TuioListener.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,90 @@
+/*
+ TUIO Java backend - part of the reacTIVision project
+ http://reactivision.sourceforge.net/
+ 
+ Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+ 
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ 
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+package TUIO;
+
+/**
+ * The TuioListener interface provides a simple callback infrastructure which is used by the {@link TuioClient} class 
+ * to dispatch TUIO events to all registered instances of classes that implement the TuioListener interface defined here.<P> 
+ * Any class that implements the TuioListener interface is required to implement all of the callback methods defined here.
+ * The {@link TuioClient} makes use of these interface methods in order to dispatch TUIO events to all registered TuioListener implementations.<P>
+ * <code>
+ * public class MyTuioListener implements TuioListener<br/>
+ * ...</code><p><code>
+ * MyTuioListener listener = new MyTuioListener();<br/>
+ * TuioClient client = new TuioClient();<br/>
+ * client.addTuioListener(listener);<br/>
+ * client.start();<br/>
+ * </code>
+ *
+ * @author Martin Kaltenbrunner
+ * @version 1.4
+ */
+public interface TuioListener {
+	
+	/**
+	 * This callback method is invoked by the TuioClient when a new TuioObject is added to the session.   
+	 *
+	 * @param  tobj  the TuioObject reference associated to the addTuioObject event
+	 */
+	public void addTuioObject(TuioObject tobj);
+
+	/**
+	 * This callback method is invoked by the TuioClient when an existing TuioObject is updated during the session.   
+	 *
+	 * @param  tobj  the TuioObject reference associated to the updateTuioObject event
+	 */
+	public void updateTuioObject(TuioObject tobj);
+
+	/**
+	 * This callback method is invoked by the TuioClient when an existing TuioObject is removed from the session.   
+	 *
+	 * @param  tobj  the TuioObject reference associated to the removeTuioObject event
+	 */
+	public void removeTuioObject(TuioObject tobj);
+	
+	/**
+	 * This callback method is invoked by the TuioClient when a new TuioCursor is added to the session.   
+	 *
+	 * @param  tcur  the TuioCursor reference associated to the addTuioCursor event
+	 */
+	public void addTuioCursor(TuioCursor tcur);
+
+	/**
+	 * This callback method is invoked by the TuioClient when an existing TuioCursor is updated during the session.   
+	 *
+	 * @param  tcur  the TuioCursor reference associated to the updateTuioCursor event
+	 */
+	public void updateTuioCursor(TuioCursor tcur);
+
+	/**
+	 * This callback method is invoked by the TuioClient when an existing TuioCursor is removed from the session.   
+	 *
+	 * @param  tcur  the TuioCursor reference associated to the removeTuioCursor event
+	 */
+	public void removeTuioCursor(TuioCursor tcur);
+	
+	/**
+	 * This callback method is invoked by the TuioClient to mark the end of a received TUIO message bundle.   
+	 *
+	 * @param  ftime  the TuioTime associated to the current TUIO message bundle
+	 */
+	public void refresh(TuioTime ftime);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TUIO/TuioObject.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,251 @@
+/*
+	TUIO Java backend - part of the reacTIVision project
+	http://reactivision.sourceforge.net/
+
+	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+package TUIO;
+
+/**
+ * The TuioObject class encapsulates /tuio/2Dobj TUIO objects.
+ *
+ * @author Martin Kaltenbrunner
+ * @version 1.4
+ */ 
+public class TuioObject extends TuioContainer {
+	
+	/**
+	 * The individual symbol ID number that is assigned to each TuioObject.
+	 */ 
+	protected int symbol_id;
+	/**
+	 * The rotation angle value.
+	 */ 
+	protected float angle;
+	/**
+	 * The rotation speed value.
+	 */ 
+	protected float rotation_speed;
+	/**
+	 * The rotation acceleration value.
+	 */ 
+	protected float rotation_accel;
+	/**
+	 * Defines the ROTATING state.
+	 */ 
+	public static final int TUIO_ROTATING = 5;
+	
+	/**
+	 * This constructor takes a TuioTime argument and assigns it along with the provided 
+	 * Session ID, Symbol ID, X and Y coordinate and angle to the newly created TuioObject.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 * @param	si	the Session ID  to assign
+	 * @param	sym	the Symbol ID  to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 * @param	a	the angle to assign
+	 */
+	public TuioObject (TuioTime ttime, long si, int sym, float xp, float yp, float a) {
+		super(ttime, si,xp,yp);
+		symbol_id = sym;
+		angle = a;
+		rotation_speed = 0.0f;
+		rotation_accel = 0.0f;
+	}
+
+	/**
+	 * This constructor takes the provided Session ID, Symbol ID, X and Y coordinate 
+	 * and angle, and assigs these values to the newly created TuioObject.
+	 *
+	 * @param	si	the Session ID  to assign
+	 * @param	sym	the Symbol ID  to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 * @param	a	the angle to assign
+	 */	
+	public TuioObject (long si, int sym, float xp, float yp, float a) {
+		super(si,xp,yp);
+		symbol_id = sym;
+		angle = angle;
+		rotation_speed = 0.0f;
+		rotation_accel = 0.0f;
+	}
+
+	/**
+	 * This constructor takes the atttibutes of the provided TuioObject 
+	 * and assigs these values to the newly created TuioObject.
+	 *
+	 * @param	tobj	the TuioObject to assign
+	 */
+	public TuioObject (TuioObject tobj) {
+		super(tobj);
+		symbol_id = tobj.getSymbolID();
+		angle = tobj.getAngle();
+		rotation_speed = 0.0f;
+		rotation_accel = 0.0f;
+	}
+
+	/**
+	 * Takes a TuioTime argument and assigns it along with the provided 
+	 * X and Y coordinate, angle, X and Y velocity, motion acceleration,
+	 * rotation speed and rotation acceleration to the private TuioObject attributes.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 * @param	a	the angle coordinate to assign
+	 * @param	xs	the X velocity to assign
+	 * @param	ys	the Y velocity to assign
+	 * @param	rs	the rotation velocity to assign
+	 * @param	ma	the motion acceleration to assign
+	 * @param	ra	the rotation acceleration to assign
+	 */
+	public void update (TuioTime ttime, float xp, float yp, float a, float xs, float ys, float rs, float ma, float ra) {
+		super.update(ttime,xp,yp,xs,ys,ma);
+		angle = a;
+		rotation_speed = rs;
+		rotation_accel = ra;
+		if ((rotation_accel!=0) && (state!=TUIO_STOPPED)) state = TUIO_ROTATING;
+	}
+
+	/**
+	 * Assigns the provided X and Y coordinate, angle, X and Y velocity, motion acceleration
+	 * rotation velocity and rotation acceleration to the private TuioContainer attributes.
+	 * The TuioTime time stamp remains unchanged.
+	 *
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 * @param	a	the angle coordinate to assign
+	 * @param	xs	the X velocity to assign
+	 * @param	ys	the Y velocity to assign
+	 * @param	rs	the rotation velocity to assign
+	 * @param	ma	the motion acceleration to assign
+	 * @param	ra	the rotation acceleration to assign
+	 */
+	public void update (float xp, float yp, float a, float xs, float ys, float rs, float ma, float ra) {
+		super.update(xp,yp,xs,ys,ma);
+		angle = a;
+		rotation_speed = rs;
+		rotation_accel = ra;
+		if ((rotation_accel!=0) && (state!=TUIO_STOPPED)) state = TUIO_ROTATING;
+	}
+	
+	/**
+	 * Takes a TuioTime argument and assigns it along with the provided 
+	 * X and Y coordinate and angle to the private TuioObject attributes.
+	 * The speed and accleration values are calculated accordingly.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 * @param	a	the angle coordinate to assign
+	 */
+	public void update (TuioTime ttime, float xp, float yp, float a) {
+		TuioPoint lastPoint = path.lastElement();
+		super.update(ttime,xp,yp);
+
+		TuioTime diffTime = currentTime.subtract(lastPoint.getTuioTime());
+		float dt = diffTime.getTotalMilliseconds()/1000.0f;
+		float last_angle = angle;
+		float last_rotation_speed = rotation_speed;
+		angle = a;
+		
+		float da = (this.angle-last_angle)/(2.0f*(float)Math.PI);
+		if (da>0.75f) da-=1.0f;
+		else if (da<-0.75f) da+=1.0f;
+		
+		rotation_speed = da/dt;
+		rotation_accel = (rotation_speed - last_rotation_speed)/dt;
+		if ((rotation_accel!=0) && (state!=TUIO_STOPPED)) state = TUIO_ROTATING;
+	}
+	
+	/**
+	 * Takes the atttibutes of the provided TuioObject 
+	 * and assigs these values to this TuioObject.
+	 * The TuioTime time stamp of this TuioContainer remains unchanged.
+	 *
+	 * @param	tobj	the TuioContainer to assign
+	 */	
+	public void update (TuioObject tobj) {
+		super.update(tobj);
+		angle = tobj.getAngle();
+		rotation_speed = tobj.getRotationSpeed();
+		rotation_accel = tobj.getRotationAccel();
+		if ((rotation_accel!=0) && (state!=TUIO_STOPPED)) state = TUIO_ROTATING;
+	}
+	
+	/**
+	 * This method is used to calculate the speed and acceleration values of a
+	 * TuioObject with unchanged position and angle.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 */
+	public void stop (TuioTime ttime) {
+		update(ttime,xpos,ypos, angle);
+	}
+
+	/**
+	 * Returns the symbol ID of this TuioObject.
+	 * @return	the symbol ID of this TuioObject
+	 */
+	public int getSymbolID() {
+		return symbol_id;
+	}
+		
+	/**
+	 * Returns the rotation angle of this TuioObject.
+	 * @return	the rotation angle of this TuioObject
+	 */
+	public float getAngle() {
+		return angle;
+	}
+
+	/**
+	 * Returns the rotation angle in degrees of this TuioObject.
+	 * @return	the rotation angle in degrees of this TuioObject
+	 */
+	public float getAngleDegrees() {
+		return angle/(float)Math.PI*180.0f;
+	}
+	
+	/**
+	 * Returns the rotation speed of this TuioObject.
+	 * @return	the rotation speed of this TuioObject
+	 */
+	public float getRotationSpeed() {
+		return rotation_speed;
+	}
+		
+	/**
+	 * Returns the rotation acceleration of this TuioObject.
+	 * @return	the rotation acceleration of this TuioObject
+	 */
+	public float getRotationAccel() {
+		return rotation_accel;
+	}
+
+	/**
+	 * Returns true of this TuioObject is moving.
+	 * @return	true of this TuioObject is moving
+	 */
+	public boolean isMoving() { 
+		if ((state==TUIO_ACCELERATING) || (state==TUIO_DECELERATING) || (state==TUIO_ROTATING)) return true;
+		else return false;
+	}
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TUIO/TuioPoint.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,266 @@
+/*
+	TUIO Java backend - part of the reacTIVision project
+	http://reactivision.sourceforge.net/
+
+	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+package TUIO;
+
+/**
+ * The TuioPoint class on the one hand is a simple container and utility class to handle TUIO positions in general, 
+ * on the other hand the TuioPoint is the base class for the TuioCursor and TuioObject classes.
+ *
+ * @author Martin Kaltenbrunner
+ * @version 1.4
+ */ 
+public class TuioPoint {
+	
+	/**
+	 * X coordinate, representated as a floating point value in a range of 0..1  
+	 */
+	protected float xpos;
+	/**
+	 * Y coordinate, representated as a floating point value in a range of 0..1  
+	 */
+	protected float ypos;
+	/**
+	 * The time stamp of the last update represented as TuioTime (time since session start)
+	 */
+	protected TuioTime currentTime;
+	/**
+	 * The creation time of this TuioPoint represented as TuioTime (time since session start)
+	 */
+	protected TuioTime startTime;
+	
+	/**
+	 * The default constructor takes no arguments and sets   
+	 * its coordinate attributes to zero and its time stamp to the current session time.
+	 */
+	public TuioPoint() {
+		xpos = 0.0f;
+		ypos = 0.0f;
+		currentTime = TuioTime.getSessionTime();
+		startTime = new TuioTime(currentTime);
+	}
+	
+	/**
+	 * This constructor takes two floating point coordinate arguments and sets   
+	 * its coordinate attributes to these values and its time stamp to the current session time.
+	 *
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 */
+	public TuioPoint(float xp, float yp) {
+		xpos = xp;
+		ypos = yp;
+		currentTime = TuioTime.getSessionTime();
+		startTime = new TuioTime(currentTime);
+	}
+
+	/**
+	 * This constructor takes a TuioPoint argument and sets its coordinate attributes 
+	 * to the coordinates of the provided TuioPoint and its time stamp to the current session time.
+	 *
+	 * @param	tpoint	the TuioPoint to assign
+	 */
+	public TuioPoint(TuioPoint tpoint) {
+		xpos = tpoint.getX();
+		ypos = tpoint.getY();
+		currentTime = TuioTime.getSessionTime();
+		startTime = new TuioTime(currentTime);
+	}
+	
+	/**
+	 * This constructor takes a TuioTime object and two floating point coordinate arguments and sets   
+	 * its coordinate attributes to these values and its time stamp to the provided TUIO time object.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 */
+	public TuioPoint(TuioTime ttime, float xp, float yp) {
+		xpos = xp;
+		ypos = yp;
+		currentTime = new TuioTime(ttime);
+		startTime = new TuioTime(currentTime);
+	}
+	
+	/**
+	 * Takes a TuioPoint argument and updates its coordinate attributes 
+	 * to the coordinates of the provided TuioPoint and leaves its time stamp unchanged.
+	 *
+	 * @param	tpoint	the TuioPoint to assign
+	 */
+	public void update(TuioPoint tpoint) {
+		xpos = tpoint.getX();
+		ypos = tpoint.getY();
+	}
+
+	/**
+	 * Takes two floating point coordinate arguments and updates its coordinate attributes 
+	 * to the coordinates of the provided TuioPoint and leaves its time stamp unchanged.
+	 *
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 */
+	public void update(float xp, float yp) {
+		xpos = xp;
+		ypos = yp;
+	}
+	
+	/**
+	 * Takes a TuioTime object and two floating point coordinate arguments and updates its coordinate attributes 
+	 * to the coordinates of the provided TuioPoint and its time stamp to the provided TUIO time object.
+	 *
+	 * @param	ttime	the TuioTime to assign
+	 * @param	xp	the X coordinate to assign
+	 * @param	yp	the Y coordinate to assign
+	 */
+	public void update(TuioTime ttime, float xp, float yp) {
+		xpos = xp;
+		ypos = yp;
+		currentTime = new TuioTime(ttime);
+	}
+	
+	/**
+	 * Returns the X coordinate of this TuioPoint. 
+	 * @return	the X coordinate of this TuioPoint
+	 */
+	public float getX() {
+		return xpos;
+	}
+	
+	/**
+	 * Returns the Y coordinate of this TuioPoint. 
+	 * @return	the Y coordinate of this TuioPoint
+	 */
+	public float getY() {
+		return ypos;
+	}
+	
+	/**
+	 * Returns the distance to the provided coordinates 
+	 *
+	 * @param	xp	the X coordinate of the distant point
+	 * @param	yp	the Y coordinate of the distant point
+	 * @return	the distance to the provided coordinates
+	 */
+	public float getDistance(float xp, float yp) {
+		float dx = xpos-xp;
+		float dy = ypos-yp;
+		return (float)Math.sqrt(dx*dx+dy*dy);
+	}
+
+	/**
+	 * Returns the distance to the provided TuioPoint 
+	 *
+	 * @param	tpoint	the distant TuioPoint
+	 * @return	the distance to the provided TuioPoint
+	 */
+	public float getDistance(TuioPoint tpoint) {
+		return getDistance(tpoint.getX(),tpoint.getY());
+	}
+
+	/**
+	 * Returns the angle to the provided coordinates 
+	 *
+	 * @param	xp	the X coordinate of the distant point
+	 * @param	yp	the Y coordinate of the distant point
+	 * @return	the angle to the provided coordinates
+	 */
+	public float getAngle(float xp, float yp) {
+		
+		float side = xpos-xp;
+		float height = ypos-yp;
+		float distance = getDistance(xp,yp);
+		
+		float angle = (float)(Math.asin(side/distance)+Math.PI/2);
+		if (height<0) angle = 2.0f*(float)Math.PI-angle;
+		
+		return angle;
+	}
+	
+	/**
+	 * Returns the angle to the provided TuioPoint 
+	 *
+	 * @param	tpoint	the distant TuioPoint
+	 * @return	the angle to the provided TuioPoint
+	 */
+	public float getAngle(TuioPoint tpoint) {						
+		return getAngle(tpoint.getX(),tpoint.getY());
+	}
+
+	/**
+	 * Returns the angle in degrees to the provided coordinates 
+	 *
+	 * @param	xp	the X coordinate of the distant point
+	 * @param	yp	the Y coordinate of the distant point
+	 * @return	the angle in degrees to the provided TuioPoint
+	 */
+	public float getAngleDegrees(float xp, float yp) {		
+		return (getAngle(xp,yp)/(float)Math.PI)*180.0f;
+	}
+	
+	/**
+	 * Returns the angle in degrees to the provided TuioPoint 
+	 *
+	 * @param	tpoint	the distant TuioPoint
+	 * @return	the angle in degrees to the provided TuioPoint
+	 */
+	public float getAngleDegrees(TuioPoint tpoint) {		
+		return (getAngle(tpoint)/(float)Math.PI)*180.0f;
+	}
+	
+	/**
+	 * Returns the X coordinate in pixels relative to the provided screen width. 
+	 *
+	 * @param	width	the screen width
+	 * @return	the X coordinate of this TuioPoint in pixels relative to the provided screen width
+	 */
+	public int getScreenX(int width) {
+		return (int)Math.round(xpos*width);
+	}
+	
+	/**
+	 * Returns the Y coordinate in pixels relative to the provided screen height. 
+	 *
+	 * @param	height	the screen height
+	 * @return	the Y coordinate of this TuioPoint in pixels relative to the provided screen height
+	 */
+	public int getScreenY(int height) {
+		return (int)Math.round(ypos*height);
+	}
+	
+	/**
+	 * Returns the time stamp of this TuioPoint as TuioTime. 
+	 *
+	 * @return	the time stamp of this TuioPoint as TuioTime
+	 */
+	public TuioTime getTuioTime() {
+		return new TuioTime(currentTime);
+	}
+	
+	/**
+	 * Returns the start time of this TuioPoint as TuioTime. 
+	 *
+	 * @return	the start time of this TuioPoint as TuioTime
+	 */
+	public TuioTime getStartTime() {
+		return new TuioTime(startTime);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TUIO/TuioTime.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,236 @@
+/*
+	TUIO Java backend - part of the reacTIVision project
+	http://reactivision.sourceforge.net/
+
+	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+package TUIO;
+
+/**
+ * The TuioTime class is a simple structure that is used to reprent the time that has elapsed since the session start.
+ * The time is internally represented as seconds and fractions of microseconds which should be more than sufficient for gesture related timing requirements.
+ * Therefore at the beginning of a typical TUIO session the static method initSession() will set the reference time for the session. 
+ * Another important static method getSessionTime will return a TuioTime object representing the time elapsed since the session start.
+ * The class also provides various addtional convience method, which allow some simple time arithmetics.
+ *
+ * @author Martin Kaltenbrunner
+ * @version 1.4
+ */ 
+public class TuioTime {
+
+	/**
+	 * the time since session start in seconds  
+	 */ 
+	private long seconds = 0;
+	/**
+	 * time fraction in microseconds  
+	 */ 
+	private long  micro_seconds = 0;
+	/**
+	 * the session start time in seconds
+	 */ 
+	private static long start_seconds = 0;
+	/**
+	 * start time fraction in microseconds
+	 */ 
+	private static long start_micro_seconds = 0;
+	
+	/**
+	 * The default constructor takes no arguments and sets   
+	 * the Seconds and Microseconds attributes of the newly created TuioTime both to zero.
+	 */
+	public TuioTime () {
+		this.seconds = 0;
+		this.micro_seconds = 0;
+	}
+	
+	/**
+	 * This constructor takes the provided time represented in total Milliseconds 
+	 * and assigs this value to the newly created TuioTime.
+	 *
+	 * @param  msec  the total time in Millseconds
+	 */
+	public TuioTime (long msec) {
+		this.seconds = msec/1000;
+		this.micro_seconds = 1000*(msec%1000);
+	}
+	
+	/**
+	 * This constructor takes the provided time represented in Seconds and Microseconds   
+	 * and assigs these value to the newly created TuioTime.
+	 *
+	 * @param  sec  the total time in seconds
+	 * @param  usec	the microseconds time component
+	 */	
+	public TuioTime (long sec, long usec) {
+		this.seconds = sec;
+		this.micro_seconds = usec;
+	}
+
+	/**
+	 * This constructor takes the provided TuioTime   
+	 * and assigs its Seconds and Microseconds values to the newly created TuioTime.
+	 *
+	 * @param  ttime  the TuioTime used to copy
+	 */	
+	public TuioTime (TuioTime ttime) {
+		this.seconds = ttime.getSeconds();
+		this.micro_seconds = ttime.getMicroseconds();
+	}
+	
+	/**
+	 * Sums the provided time value represented in total Microseconds to this TuioTime.
+	 *
+	 * @param  us	the total time to add in Microseconds
+	 * @return the sum of this TuioTime with the provided argument in microseconds
+	*/	
+	public TuioTime add(long us) {
+		long sec = seconds + us/1000000;
+		long usec = micro_seconds + us%1000000;
+		return new TuioTime(sec,usec);
+	}
+
+	/**
+	 * Sums the provided TuioTime to the private Seconds and Microseconds attributes.  
+	 *
+	 * @param  ttime	the TuioTime to add
+	 * @return the sum of this TuioTime with the provided TuioTime argument
+	 */
+	public TuioTime add(TuioTime ttime) {
+		long sec = seconds + ttime.getSeconds();
+		long usec = micro_seconds + ttime.getMicroseconds();
+		sec += usec/1000000;
+		usec = usec%1000000;
+		return new TuioTime(sec,usec);
+	}
+
+	/**
+	 * Subtracts the provided time represented in Microseconds from the private Seconds and Microseconds attributes.
+	 *
+	 * @param  us	the total time to subtract in Microseconds
+	 * @return the subtraction result of this TuioTime minus the provided time in Microseconds
+	 */		
+	public TuioTime subtract(long us) {
+		long sec = seconds - us/1000000;
+		long usec = micro_seconds - us%1000000;
+		
+		if (usec<0) {
+			usec += 1000000;
+			sec--;
+		}			
+		
+		return new TuioTime(sec,usec);
+	}
+
+	/**
+	 * Subtracts the provided TuioTime from the private Seconds and Microseconds attributes.
+	 *
+	 * @param  ttime	the TuioTime to subtract
+	 * @return the subtraction result of this TuioTime minus the provided TuioTime
+	 */	
+	public TuioTime subtract(TuioTime ttime) {
+		long sec = seconds - ttime.getSeconds();
+		long usec = micro_seconds - ttime.getMicroseconds();
+		
+		if (usec<0) {
+			usec += 1000000;
+			sec--;
+		}
+		
+		return new TuioTime(sec,usec);
+	}
+
+	/**
+	 * Takes a TuioTime argument and compares the provided TuioTime to the private Seconds and Microseconds attributes.
+	 *
+	 * @param  ttime	the TuioTime to compare
+	 * @return true if the two TuioTime have equal Seconds and Microseconds attributes
+	 */	
+	public boolean equals(TuioTime ttime) {
+		if ((seconds==ttime.getSeconds()) && (micro_seconds==ttime.getMicroseconds())) return true;
+		else return false;
+	}
+
+	/**
+	 * Resets the seconds and micro_seconds attributes to zero.
+	 */
+	public void reset() {
+		seconds = 0;
+		micro_seconds = 0;
+	}
+
+	/**
+	 * Returns the TuioTime Seconds component.
+	 * @return the TuioTime Seconds component
+	 */	
+	public long getSeconds() {
+		return seconds;
+	}
+
+	/**
+	 * Returns the TuioTime Microseconds component.
+	 * @return the TuioTime Microseconds component
+	 */	
+	public long getMicroseconds() {
+		return micro_seconds;
+	}
+
+	/**
+	 * Returns the total TuioTime in Milliseconds.
+	 * @return the total TuioTime in Milliseconds
+	 */	
+	public long getTotalMilliseconds() {
+		return seconds*1000+micro_seconds/1000;
+	}
+
+	/**
+	 * This static method globally resets the TUIO session time.
+	 */		
+	public static void initSession() {
+		TuioTime startTime = getSystemTime();
+		start_seconds = startTime.getSeconds();
+		start_micro_seconds = startTime.getMicroseconds();
+	}
+
+	/**
+	 * Returns the present TuioTime representing the time since session start.
+	 * @return the present TuioTime representing the time since session start
+	 */	
+	public static TuioTime getSessionTime() {
+		TuioTime sessionTime = getSystemTime().subtract(getStartTime());
+		return sessionTime;
+	
+	}
+
+	/**
+	 * Returns the absolut TuioTime representing the session start.
+	 * @return the absolut TuioTime representing the session start
+	 */	
+	public static TuioTime getStartTime() {
+		return new TuioTime(start_seconds,start_micro_seconds);
+	}
+		
+	/**
+	 * Returns the absolut TuioTime representing the current system time.
+	 * @return the absolut TuioTime representing the current system time
+	 */	
+	public static TuioTime getSystemTime() {
+		long usec = System.nanoTime()/1000;
+		return new TuioTime(usec/1000000,usec%1000000);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TuioApplet.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,67 @@
+/*
+	 TUIO Java Demo - part of the reacTIVision project
+	 http://reactivision.sourceforge.net/
+	 
+	 Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+	 
+	 This program is free software; you can redistribute it and/or modify
+	 it under the terms of the GNU General Public License as published by
+	 the Free Software Foundation; either version 2 of the License, or
+	 (at your option) any later version.
+	 
+	 This program is distributed in the hope that it will be useful,
+	 but WITHOUT ANY WARRANTY; without even the implied warranty of
+	 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+	 GNU General Public License for more details.
+	 
+	 You should have received a copy of the GNU General Public License
+	 along with this program; if not, write to the Free Software
+	 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+import java.applet.*;
+import java.awt.*;
+import javax.swing.*;
+import java.io.*;
+import java.net.*;
+import TUIO.*;
+
+public class TuioApplet extends JApplet {
+	
+	TuioDemoComponent demo;
+	TuioClient client;
+	int port = 3333;
+	
+	public void init() {
+		try {
+			port = Integer.parseInt(getParameter("port"));
+		} catch (Exception e) {}
+		
+		Dimension size = this.getSize();
+		
+		TuioDemoComponent demo = new TuioDemoComponent();
+		demo.setSize(size.width,size.height);
+	
+		client = new TuioClient();
+		client.addTuioListener(demo);
+		
+		add(demo);
+		repaint();
+	}
+
+	public void start() {
+		if (!client.isConnected()) client.connect();
+	}
+
+	public void stop() {
+		if (client.isConnected()) client.disconnect();
+	}
+
+	public void destroy() {
+		if (client.isConnected()) client.disconnect();
+		client = null;
+	}
+
+	public void paint( Graphics g ) {
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TuioDemo.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,143 @@
+/*
+	TUIO Java Demo - part of the reacTIVision project
+	http://reactivision.sourceforge.net/
+
+	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+import java.awt.*;
+import java.awt.geom.*;
+import java.awt.event.*;
+import java.awt.image.*;
+import java.util.*;
+import javax.swing.*;
+import TUIO.*;
+
+public class TuioDemo  {
+
+	private final int window_width  = 640;
+	private final int window_height = 480;
+
+	private boolean fullscreen = false;
+	
+	private TuioDemoComponent demo;
+	private JFrame frame;
+	private GraphicsDevice device;
+	
+	public TuioDemo() {
+		demo = new TuioDemoComponent();
+		device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
+		setupWindow();
+		showWindow();
+	}
+	
+	public TuioListener getTuioListener() {
+		return demo;
+	}
+	
+	public void setupWindow() {
+	
+		frame = new JFrame();
+		frame.add(demo);
+
+		frame.setTitle("TuioDemo");
+		frame.setResizable(false);
+
+		frame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent evt) {
+				System.exit(0);
+			} });
+		
+		frame.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent evt) {
+			if (evt.getKeyCode()==KeyEvent.VK_ESCAPE) System.exit(0);
+			else if (evt.getKeyCode()==KeyEvent.VK_F1) {
+				destroyWindow();
+				setupWindow();
+				fullscreen = !fullscreen;
+				showWindow();
+			}
+			else if (evt.getKeyCode()==KeyEvent.VK_V) demo.verbose=!demo.verbose;
+		} });
+	}
+	
+	public void destroyWindow() {
+	
+		frame.setVisible(false);
+		if (fullscreen) {
+			device.setFullScreenWindow(null);		
+		}
+		frame = null;
+	}
+	
+	public void showWindow() {
+	
+		if (fullscreen) {
+			int width  = (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
+			int height = (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
+			demo.setSize(width,height);
+
+			frame.setSize(width,height);
+			frame.setUndecorated(true);
+			device.setFullScreenWindow(frame);		
+		} else {
+			int width  = window_width;
+			int height = window_height;
+			demo.setSize(width,height);
+			
+			frame.pack();
+			Insets insets = frame.getInsets();			
+			frame.setSize(width,height +insets.top);
+			
+		}
+		
+		frame.setVisible(true);
+		frame.repaint();
+
+	}
+	
+	public static void main(String argv[]) {
+		
+		TuioDemo demo = new TuioDemo();
+		TuioClient client = null;
+ 
+		switch (argv.length) {
+			case 1:
+				try { 
+					client = new TuioClient( Integer.parseInt(argv[0])); 
+				} catch (Exception e) {
+					System.out.println("usage: java TuioDemo [port]");
+					System.exit(0);
+				}
+				break;
+			case 0:
+				client = new TuioClient();
+				break;
+			default: 
+				System.out.println("usage: java TuioDemo [port]");
+				System.exit(0);
+				break;
+		}
+		
+		if (client!=null) {
+			client.addTuioListener(demo.getTuioListener());
+			client.connect();
+		} else {
+			System.out.println("usage: java TuioDemo [port]");
+			System.exit(0);
+		}
+	}
+	
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TuioDemoComponent.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,153 @@
+/*
+	TUIO Java Demo - part of the reacTIVision project
+	http://reactivision.sourceforge.net/
+
+	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+import java.awt.*;
+import java.awt.geom.*;
+import java.awt.event.*;
+import java.awt.image.*;
+import java.util.*;
+import javax.swing.*;
+import TUIO.*;
+
+public class TuioDemoComponent extends JComponent implements TuioListener {
+
+	private Hashtable<Long,TuioDemoObject> objectList = new Hashtable<Long,TuioDemoObject>();
+	private Hashtable<Long,TuioCursor> cursorList = new Hashtable<Long,TuioCursor>();
+
+	public static final int finger_size = 15;
+	public static final int object_size = 60;
+	public static final int table_size = 760;
+	
+	public static int width, height;
+	private float scale = 1.0f;
+	public boolean verbose = false;
+			
+	public void setSize(int w, int h) {
+		super.setSize(w,h);
+		width = w;
+		height = h;
+		scale  = height/(float)TuioDemoComponent.table_size;	
+	}
+	
+	public void addTuioObject(TuioObject tobj) {
+		TuioDemoObject demo = new TuioDemoObject(tobj);
+		objectList.put(tobj.getSessionID(),demo);
+
+		if (verbose) 
+			System.out.println("add obj "+tobj.getSymbolID()+" ("+tobj.getSessionID()+") "+tobj.getX()+" "+tobj.getY()+" "+tobj.getAngle());	
+	}
+
+	public void updateTuioObject(TuioObject tobj) {
+
+		TuioDemoObject demo = (TuioDemoObject)objectList.get(tobj.getSessionID());
+		demo.update(tobj);
+		
+		if (verbose) 
+			System.out.println("set obj "+tobj.getSymbolID()+" ("+tobj.getSessionID()+") "+tobj.getX()+" "+tobj.getY()+" "+tobj.getAngle()+" "+tobj.getMotionSpeed()+" "+tobj.getRotationSpeed()+" "+tobj.getMotionAccel()+" "+tobj.getRotationAccel()); 	
+	}
+	
+	public void removeTuioObject(TuioObject tobj) {
+		objectList.remove(tobj.getSessionID());
+		
+		if (verbose) 
+			System.out.println("del obj "+tobj.getSymbolID()+" ("+tobj.getSessionID()+")");	
+	}
+
+	public void addTuioCursor(TuioCursor tcur) {
+	
+		if (!cursorList.containsKey(tcur.getSessionID())) {
+			cursorList.put(tcur.getSessionID(), tcur);
+			repaint();
+		}
+		
+		if (verbose) 
+			System.out.println("add cur "+tcur.getCursorID()+" ("+tcur.getSessionID()+") "+tcur.getX()+" "+tcur.getY());	
+	}
+
+	public void updateTuioCursor(TuioCursor tcur) {
+
+		repaint();
+		
+		if (verbose) 
+			System.out.println("set cur "+tcur.getCursorID()+" ("+tcur.getSessionID()+") "+tcur.getX()+" "+tcur.getY()+" "+tcur.getMotionSpeed()+" "+tcur.getMotionAccel()); 
+	}
+	
+	public void removeTuioCursor(TuioCursor tcur) {
+	
+		cursorList.remove(tcur.getSessionID());	
+		repaint();
+		
+		if (verbose) 
+			System.out.println("del cur "+tcur.getCursorID()+" ("+tcur.getSessionID()+")"); 
+	}
+
+	public void refresh(TuioTime frameTime) {
+		repaint();
+	}
+	
+	public void paint(Graphics g) {
+		update(g);
+	}
+
+	public void update(Graphics g) {
+	
+		Graphics2D g2 = (Graphics2D)g;
+		g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+		g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
+	
+		g2.setColor(Color.white);
+		g2.fillRect(0,0,width,height);
+	
+		int w = (int)Math.round(width-scale*finger_size/2.0f);
+		int h = (int)Math.round(height-scale*finger_size/2.0f);
+		
+		Enumeration<TuioCursor> cursors = cursorList.elements();
+		while (cursors.hasMoreElements()) {
+			TuioCursor tcur = cursors.nextElement();
+			if (tcur==null) continue;
+			Vector<TuioPoint> path = tcur.getPath();
+			TuioPoint current_point = path.elementAt(0);
+			if (current_point!=null) {
+				// draw the cursor path
+				g2.setPaint(Color.blue);
+				for (int i=0;i<path.size();i++) {
+					TuioPoint next_point = path.elementAt(i);
+					g2.drawLine(current_point.getScreenX(w), current_point.getScreenY(h), next_point.getScreenX(w), next_point.getScreenY(h));
+					current_point = next_point;
+				}
+			}
+			
+			// draw the finger tip
+			g2.setPaint(Color.lightGray);
+			int s = (int)(scale*finger_size);
+			g2.fillOval(current_point.getScreenX(w-s/2),current_point.getScreenY(h-s/2),s,s);
+			g2.setPaint(Color.black);
+			g2.drawString(tcur.getCursorID()+"",current_point.getScreenX(w),current_point.getScreenY(h));
+		}
+
+		// draw the objects
+		Enumeration<TuioDemoObject> objects = objectList.elements();
+		while (objects.hasMoreElements()) {
+			TuioDemoObject tobj = objects.nextElement();
+			if (tobj!=null) tobj.paint(g2, width,height);
+		}		
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TuioDemoObject.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,81 @@
+/*
+	TUIO Java Demo - part of the reacTIVision project
+	http://reactivision.sourceforge.net/
+
+	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+
+	This program is free software; you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation; either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program; if not, write to the Free Software
+	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+import javax.swing.*;
+import java.awt.geom.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import TUIO.*;
+
+public class TuioDemoObject extends TuioObject {
+
+	private Shape square;
+
+	public TuioDemoObject(TuioObject tobj) {
+		super(tobj);
+		int size = TuioDemoComponent.object_size;
+		square = new Rectangle2D.Float(-size/2,-size/2,size,size);
+		
+		AffineTransform transform = new AffineTransform();
+		transform.translate(xpos,ypos);
+		transform.rotate(angle,xpos,ypos);
+		square = transform.createTransformedShape(square);
+	}
+	
+	public void paint(Graphics2D g, int width, int height) {
+	
+		float Xpos = xpos*width;
+		float Ypos = ypos*height;
+		float scale = height/(float)TuioDemoComponent.table_size;
+
+		AffineTransform trans = new AffineTransform();
+		trans.translate(-xpos,-ypos);
+		trans.translate(Xpos,Ypos);
+		trans.scale(scale,scale);
+		Shape s = trans.createTransformedShape(square);
+	
+		g.setPaint(Color.black);
+		g.fill(s);
+		g.setPaint(Color.white);
+		g.drawString(symbol_id+"",Xpos-10,Ypos);
+	}
+
+	public void update(TuioObject tobj) {
+		
+		float dx = tobj.getX() - xpos;
+		float dy = tobj.getY() - ypos;
+		float da = tobj.getAngle() - angle;
+
+		if ((dx!=0) || (dy!=0)) {
+			AffineTransform trans = AffineTransform.getTranslateInstance(dx,dy);
+			square = trans.createTransformedShape(square);
+		}
+		
+		if (da!=0) {
+			AffineTransform trans = AffineTransform.getRotateInstance(da,tobj.getX(),tobj.getY());
+			square = trans.createTransformedShape(square);
+		}
+
+		super.update(tobj);
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/TuioDump.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,74 @@
+/*
+	TUIO Java Example - part of the reacTIVision project
+	http://reactivision.sourceforge.net/
+
+	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
+
+	This program is free software;you can redistribute it and/or modify
+	it under the terms of the GNU General Public License as published by
+	the Free Software Foundation;either version 2 of the License, or
+	(at your option) any later version.
+
+	This program is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY;without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+	GNU General Public License for more details.
+
+	You should have received a copy of the GNU General Public License
+	along with this program;if not, write to the Free Software
+	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+import javax.swing.*;
+import java.awt.geom.*;
+import java.awt.*;
+import java.awt.event.*;
+import TUIO.*;
+
+public class TuioDump implements TuioListener {
+	
+	public void addTuioObject(TuioObject tobj) {
+		System.out.println("add obj "+tobj.getSymbolID()+" ("+tobj.getSessionID()+") "+tobj.getX()+" "+tobj.getY()+" "+tobj.getAngle());	
+	}
+
+	public void updateTuioObject(TuioObject tobj) {
+		System.out.println("set obj "+tobj.getSymbolID()+" ("+tobj.getSessionID()+") "+tobj.getX()+" "+tobj.getY()+" "+tobj.getAngle()+" "+tobj.getMotionSpeed()+" "+tobj.getRotationSpeed()+" "+tobj.getMotionAccel()+" "+tobj.getRotationAccel());
+	}
+	
+	public void removeTuioObject(TuioObject tobj) {
+		System.out.println("del obj "+tobj.getSymbolID()+" ("+tobj.getSessionID()+")");	
+	}
+
+	public void addTuioCursor(TuioCursor tcur) {
+		System.out.println("add cur "+tcur.getCursorID()+" ("+tcur.getSessionID()+") "+tcur.getX()+" "+tcur.getY());	
+	}
+
+	public void updateTuioCursor(TuioCursor tcur) {
+		System.out.println("set cur "+tcur.getCursorID()+" ("+tcur.getSessionID()+") "+tcur.getX()+" "+tcur.getY()+" "+tcur.getMotionSpeed()+" "+tcur.getMotionAccel());
+	}
+	
+	public void removeTuioCursor(TuioCursor tcur) {
+		System.out.println("del cur "+tcur.getCursorID()+" ("+tcur.getSessionID()+")");	
+	}
+	
+	public void refresh(TuioTime frameTime) {
+		//System.out.println("refresh "+frameTime.getTotalMilliseconds());
+	}
+
+	public static void main(String argv[]) {
+	
+		int port = 3333;
+
+		if (argv.length==1) {
+			try { port = Integer.parseInt(argv[0]); }
+			catch (Exception e) { System.out.println("usage: java TuioDump [port]"); }
+		}
+
+		TuioDump demo = new TuioDump();
+		TuioClient client = new TuioClient(port);
+
+		System.out.println("listening to TUIO messages at port "+port);
+		client.addTuioListener(demo);
+		client.connect();
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCBundle.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,140 @@
+
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2003, C. Ramakrishnan / Illposed Software
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ * 
+ *
+ * OscBundle represents a collection of OscPackets.
+ *
+ * Use this when you want to send a bunch of OscPackets
+ * in one go.
+ *
+ * Internally, I use Vector to maintain jdk1.1 compatability
+ */
+
+package com.illposed.osc;
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.GregorianCalendar;
+import java.util.Vector;
+
+import com.illposed.osc.utility.*;
+
+public class OSCBundle extends OSCPacket {
+
+	protected Date timestamp;
+	//	protected OSCPacket[] packets;
+	protected Vector<OSCPacket> packets;
+	public static final BigInteger SECONDS_FROM_1900_to_1970 =
+		new BigInteger("2208988800");
+	// 17 leap years
+
+	/**
+	 * Create a new OSCBundle, with a timestamp of now.
+	 * You can add packets to the bundle with addPacket()
+	 */
+	public OSCBundle() {
+		this(null, GregorianCalendar.getInstance().getTime());
+	}
+	
+	/**
+	 * Create an OSCBundle with the specified timestamp
+	 * @param timestamp
+	 */
+	public OSCBundle(Date timestamp) {
+		this(null, timestamp);
+	}
+
+	/**
+	 * @param newPackets Array of OSCPackets to initialize this object with
+	 */
+	public OSCBundle(OSCPacket[] newPackets) {
+		this(newPackets, GregorianCalendar.getInstance().getTime());
+	}
+
+	/**
+	 * @param newPackets OscPacket[]
+	 * @param time java.lang.Time
+	 */
+	public OSCBundle(OSCPacket[] newPackets, Date newTimestamp) {
+		super();
+		if (null != newPackets) {
+			packets = new Vector<OSCPacket>(newPackets.length);
+			for (int i = 0; i < newPackets.length; i++) {
+				packets.add(newPackets[i]);
+			}
+		} else
+			packets = new Vector<OSCPacket>();
+		timestamp = newTimestamp;
+		init();
+	}
+	
+	/**
+	 * Return the timestamp for this bundle
+	 * @return a Date
+	 */
+	public Date getTimestamp() {
+		return timestamp;
+	}
+	
+	/**
+	 * Set the timestamp for this bundle
+	 * @param timestamp
+	 */
+	public void setTimestamp(Date timestamp) {
+		this.timestamp = timestamp;
+	}
+	
+	/**
+	 * Add a packet to the list of packets in this bundle
+	 * @param packet
+	 */
+	public void addPacket(OSCPacket packet) {
+		packets.add(packet);
+	}
+	
+	/**
+	 * Get the packets contained in this bundle
+	 * @return an array of packets
+	 */
+	public OSCPacket[] getPackets() {
+		OSCPacket[] packetArray = new OSCPacket[packets.size()];
+		packets.toArray(packetArray);
+		return packetArray;
+	}
+
+	protected void computeTimeTagByteArray(OSCJavaToByteArrayConverter stream) {
+		long millisecs = timestamp.getTime();
+		long secsSince1970 = (long) (millisecs / 1000);
+		long secs = secsSince1970 + SECONDS_FROM_1900_to_1970.longValue();
+		long picosecs = (long) (millisecs - (secsSince1970 * 1000)) * 1000;
+		
+		stream.write((int) secs);
+		stream.write((int) picosecs);
+
+	}
+
+	/**
+	 * @param stream OscPacketByteArrayConverter
+	 */
+	protected void computeByteArray(OSCJavaToByteArrayConverter stream) {
+		stream.write("#bundle");
+		computeTimeTagByteArray(stream);
+		Enumeration enm = packets.elements();
+		OSCPacket nextElement;
+		byte[] packetBytes;
+		while (enm.hasMoreElements()) {
+			nextElement = (OSCPacket) enm.nextElement();
+			packetBytes = nextElement.getByteArray();
+			stream.write(packetBytes.length);
+			stream.write(packetBytes);
+		}
+		byteArray = stream.toByteArray();
+	}
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCCanNotListenException.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,49 @@
+/* $Id: OSCCanNotListenException.java,v 1.1.1.1 2006/11/13 14:47:21 modin Exp $
+ * Created on 21.02.2004
+ */
+package com.illposed.osc;
+
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2004, C. Ramakrishnan / Auracle
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ */
+public class OSCCanNotListenException extends Exception {
+
+	/**
+	 * 
+	 */
+	public OSCCanNotListenException() {
+		super();
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * @param message
+	 */
+	public OSCCanNotListenException(String message) {
+		super(message);
+		// TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * @param message
+	 * @param cause
+	 */
+/*	public OSCCanNotListenException(String message, Throwable cause) {
+		super(message, cause);
+		// TODO Auto-generated constructor stub
+	}
+*/
+	/**
+	 * @param cause
+	 */
+/*	public OSCCanNotListenException(Throwable cause) {
+		super(cause);
+		// TODO Auto-generated constructor stub
+	}
+*/
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCListener.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,27 @@
+/* $Id: OSCListener.java,v 1.1.1.1 2006/11/13 14:47:21 modin Exp $
+ * Created on 28.10.2003
+ */
+package com.illposed.osc;
+
+import java.util.Date;
+
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2003, C. Ramakrishnan / Auracle
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ * 
+ * Interface for things that listen for incoming OSC Messages
+ */
+public interface OSCListener {
+	
+	/**
+	 * Accept an incoming OSCMessage
+	 * @param time     the time this message is to be executed. null means execute now
+	 * @param message  the message
+	 */
+	public void acceptMessage(Date time, OSCMessage message);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCMessage.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,118 @@
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2003, C. Ramakrishnan / Illposed Software
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ * 
+ * 
+ * An simple (non-bundle) OSC message. An OSC message is made up of 
+ *     an address (who is this message sent to)
+ *     and arguments (what is the contents of this message).
+ */
+
+package com.illposed.osc;
+
+import java.util.Enumeration;
+import java.util.Vector;
+
+import com.illposed.osc.utility.*;
+
+public class OSCMessage extends OSCPacket {
+
+	protected String address;
+	protected Vector<Object> arguments;
+
+	/**
+	 * Create an empty OSC Message
+	 * In order to send this osc message, you need to set the address
+	 * and, perhaps, some arguments.
+	 */
+	public OSCMessage() {
+		super();
+		arguments = new Vector<Object>();
+	}
+
+	/**
+	 * Create an OSCMessage with an address already initialized
+	 * @param newAddress The recepient of this OSC message
+	 */
+	public OSCMessage(String newAddress) {
+		this(newAddress, null);
+	}
+
+	/**
+	 * Create an OSCMessage with an address and arguments already initialized
+	 * @param newAddress    The recepient of this OSC message
+	 * @param newArguments  The data sent to the receiver
+	 */
+	public OSCMessage(String newAddress, Object[] newArguments) {
+		super();
+		address = newAddress;
+		if (null != newArguments) {
+			arguments = new Vector<Object>(newArguments.length);
+			for (int i = 0; i < newArguments.length; i++) {
+				arguments.add(newArguments[i]);
+			}
+		} else
+			arguments = new Vector<Object>();
+		init();
+	}
+	
+	/**
+	 * @return the address of this OSC Message
+	 */
+	public String getAddress() {
+		return address;
+	}
+	
+	/**
+	 * Set the address of this messsage
+	 * @param anAddress
+	 */
+	public void setAddress(String anAddress) {
+		address = anAddress;
+	}
+	
+	public void addArgument(Object argument) {
+		arguments.add(argument);
+	}
+	
+	public Object[] getArguments() {
+		return arguments.toArray();
+	}
+
+	/**
+	 * @param stream OscPacketByteArrayConverter
+	 */
+	protected void computeAddressByteArray(OSCJavaToByteArrayConverter stream) {
+		stream.write(address);
+	}
+
+	/**
+	 * @param stream OscPacketByteArrayConverter
+	 */
+	protected void computeArgumentsByteArray(OSCJavaToByteArrayConverter stream) {
+		// SC starting at version 2.2.10 wants a comma at the beginning
+		// of the arguments array.
+		stream.write(',');
+		if (null == arguments)
+			return;
+		stream.writeTypes(arguments);
+		Enumeration enm = arguments.elements();
+		while (enm.hasMoreElements()) {
+			stream.write(enm.nextElement());
+		}
+	}
+
+	/**
+	 * @param stream OscPacketByteArrayConverter
+	 */
+	protected void computeByteArray(OSCJavaToByteArrayConverter stream) {
+		computeAddressByteArray(stream);
+		computeArgumentsByteArray(stream);
+		byteArray = stream.toByteArray();
+	}
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPacket.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,60 @@
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2003, C. Ramakrishnan / Illposed Software
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ * 
+ * 
+ * OscPacket is the abstract superclass for the various
+ * kinds of OSC Messages. Its direct subclasses are:
+ *  OscMessage, OscBundle
+ *
+ * Subclasses need to know how to produce a byte array
+ * in the format specified by the OSC spec (or SuperCollider
+ * documentation, as the case may be).
+ *
+ * This implementation is based on Markus Gaelli and
+ * Iannis Zannos' OSC implementation in Squeak:
+ * http://www.emergent.de/Goodies/
+ */
+
+package com.illposed.osc;
+
+import com.illposed.osc.utility.*;
+
+public abstract class OSCPacket {
+
+	protected byte[] byteArray;
+
+	public OSCPacket() {
+		super();
+	}
+
+	protected void computeByteArray() {
+		OSCJavaToByteArrayConverter stream = new OSCJavaToByteArrayConverter();
+		computeByteArray(stream);
+	}
+
+	/**
+	 * @param stream OscPacketByteArrayConverter
+	 *
+	 * Subclasses should implement this method to product a byte array
+	 * formatted according to the OSC/SuperCollider specification.
+	 */
+	protected abstract void computeByteArray(OSCJavaToByteArrayConverter stream);
+
+	/**
+	 * @return byte[]
+	 */
+	public byte[] getByteArray() {
+		computeByteArray();
+		return byteArray;
+	}
+
+	protected void init() {
+		
+	}
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPort.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,51 @@
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2004, C. Ramakrishnan / Illposed Software
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ * 
+ * 
+ * OSCPort is an abstract superclass. To send OSC messages, use OSCPortOut. 
+ * To listen for OSC messages, use OSCPortIn.
+ *
+ */
+
+package com.illposed.osc;
+
+import java.net.*;
+import java.io.IOException;
+
+public abstract class OSCPort {
+
+	protected DatagramSocket socket;
+	protected int port;
+	
+	/**
+	 * The port that the SuperCollider synth engine ususally listens too
+	 */
+	public static final int defaultSCOSCPort = 57110;
+	
+	/**
+	 * The port that the SuperCollider language engine ususally listens too
+	 */
+	public static final int defaultSCLangOSCPort = 57120;
+	
+	/**
+	 * @see java.lang.Object#finalize()
+	 */
+	protected void finalize() throws Throwable {
+		super.finalize();
+		socket.close();
+	}
+	
+	/**
+	 * Close the socket and free-up resources. It's recommended that clients call
+	 * this when they are done with the port.
+	 */
+	public void close() {
+		socket.close();
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPortIn.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,114 @@
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2004, C. Ramakrishnan / Illposed Software
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ * 
+ * 
+ * OSCPortIn is the class that listens for OSC messages.
+ *	 
+ * To receive OSC, you need to construct the OSCPort with a 
+ *
+ * An example based on com.illposed.osc.test.OSCPortTest::testReceiving() :
+ 
+		receiver = new OSCPort(OSCPort.defaultSCOSCPort());
+		OSCListener listener = new OSCListener() {
+			public void acceptMessage(java.util.Date time, OSCMessage message) {
+				System.out.println("Message received!");
+			}
+		};
+		receiver.addListener("/message/receiving", listener);
+		receiver.startListening();
+		
+ * Then, using a program such as SuperCollider or sendOSC, send a message
+ * to this computer, port 57110 (defaultSCOSCPort), with the address /message/receiving
+ */
+
+package com.illposed.osc;
+
+import java.net.*;
+import java.io.IOException;
+import com.illposed.osc.utility.OSCByteArrayToJavaConverter;
+import com.illposed.osc.utility.OSCPacketDispatcher;
+
+public class OSCPortIn extends OSCPort implements Runnable {
+
+	// state for listening
+	protected boolean isListening;
+	protected OSCByteArrayToJavaConverter converter = new OSCByteArrayToJavaConverter();
+	protected OSCPacketDispatcher dispatcher = new OSCPacketDispatcher();
+	
+	/**
+	 * Create an OSCPort that listens on port
+	 * @param port
+	 * @throws SocketException
+	 */
+	public OSCPortIn(int port) throws SocketException {
+		socket = new DatagramSocket(port);
+		this.port = port;
+	}
+
+	/**
+	 * @see java.lang.Runnable#run()
+	 */
+	public void run() {
+		//maximum UDP packet size
+		byte[] buffer = new byte[65536];
+		DatagramPacket packet = new DatagramPacket(buffer, 65536);
+		while (isListening) {
+			try {
+				packet.setLength(65536);
+				socket.receive(packet);
+				OSCPacket oscPacket = converter.convert(buffer, packet.getLength());
+				dispatcher.dispatchPacket(oscPacket);
+			} catch (java.net.SocketException e) {
+				if (isListening) e.printStackTrace();
+			} catch (IOException e) {
+				if (isListening) e.printStackTrace();
+			} 
+		}
+	}
+	
+	/**
+	 * Start listening for incoming OSCPackets
+	 */
+	public void startListening() {
+		isListening = true;
+		Thread thread = new Thread(this);
+		thread.start();
+	}
+	
+	/**
+	 * Stop listening for incoming OSCPackets
+	 */
+	public void stopListening() {
+		isListening = false;
+	}
+	
+	/**
+	 * Am I listening for packets?
+	 */
+	public boolean isListening() {
+		return isListening;
+	}
+	
+	/**
+	 * Register the listener for incoming OSCPackets addressed to an Address
+	 * @param anAddress  the address to listen for
+	 * @param listener   the object to invoke when a message comes in
+	 */
+	public void addListener(String anAddress, OSCListener listener) {
+		dispatcher.addListener(anAddress, listener);
+	}
+	
+	/**
+	 * Close the socket and free-up resources. It's recommended that clients call
+	 * this when they are done with the port.
+	 */
+	public void close() {
+		socket.close();
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/OSCPortOut.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,79 @@
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2004, C. Ramakrishnan / Illposed Software
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ * 
+ * 
+ * OSCPortOut is the class that sends OSC messages.
+ *
+ * To send OSC, in your code you should instantiate and hold onto an OSCPort
+ * pointing at the address and port number for the receiver.
+ *
+ * When you want to send an OSC message, call send().
+ *
+ * An example based on com.illposed.osc.test.OSCPortTest::testMessageWithArgs() :
+		OSCPort sender = new OSCPort();
+		Object args[] = new Object[2];
+		args[0] = new Integer(3);
+		args[1] = "hello";
+		OSCMessage msg = new OSCMessage("/sayhello", args);
+		 try {
+			sender.send(msg);
+		 } catch (Exception e) {
+			 showError("Couldn't send");
+		 }
+ */
+
+package com.illposed.osc;
+
+import java.net.*;
+import java.io.IOException;
+import com.illposed.osc.utility.OSCByteArrayToJavaConverter;
+
+public class OSCPortOut extends OSCPort {
+
+	protected InetAddress address;
+
+	/**
+	 * Create an OSCPort that sends to newAddress, newPort
+	 * @param newAddress InetAddress
+	 * @param newPort int
+	 */
+	public OSCPortOut(InetAddress newAddress, int newPort) throws SocketException {
+		socket = new DatagramSocket();
+		address = newAddress;
+		port = newPort;
+	}
+
+	/**
+	 * Create an OSCPort that sends to newAddress, on the standard SuperCollider port
+	 * @param newAddress InetAddress
+	 *
+	 * Default the port to the standard one for SuperCollider
+	 */
+	public OSCPortOut(InetAddress newAddress) throws SocketException {
+		this(newAddress, defaultSCOSCPort);
+	}
+
+	/**
+	 * Create an OSCPort that sends to localhost, on the standard SuperCollider port
+	 * Default the address to localhost
+	 * Default the port to the standard one for SuperCollider
+	 */
+	public OSCPortOut() throws UnknownHostException, SocketException {
+		this(InetAddress.getLocalHost(), defaultSCOSCPort);
+	}
+	
+	/**
+	 * @param aPacket OSCPacket
+	 */
+	public void send(OSCPacket aPacket) throws IOException {
+		byte[] byteArray = aPacket.getByteArray();
+		DatagramPacket packet = 
+			new DatagramPacket(byteArray, byteArray.length,address,port);
+		socket.send(packet);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/utility/OSCByteArrayToJavaConverter.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,280 @@
+/* $Id: OSCByteArrayToJavaConverter.java,v 1.1.1.1 2006/11/13 14:47:22 modin Exp $
+ * Created on 28.10.2003
+ */
+package com.illposed.osc.utility;
+
+import java.math.BigInteger;
+import java.util.Date;
+
+import com.illposed.osc.*;
+
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2003, C. Ramakrishnan / Auracle
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ */
+public class OSCByteArrayToJavaConverter {
+
+	byte[] bytes;
+	int bytesLength;
+	int streamPosition;
+
+	private byte[] intBytes   = new byte[4];
+	private byte[] floatBytes = new byte[4];
+
+	private	byte[] secondBytes = new byte[8];
+	private	byte[] picosecBytes = new byte[8];
+
+	/**
+	 * Helper object for converting from a byte array to Java objects
+	 */
+	/*public OSCByteArrayToJavaConverter() {
+		super();
+	}*/
+
+	public OSCPacket convert(byte[] byteArray, int bytesLength) {
+		bytes = byteArray;
+		this.bytesLength = bytesLength;
+		streamPosition = 0;
+		if (isBundle())
+			return convertBundle();
+		else
+			return convertMessage();
+	}
+
+	private boolean isBundle() {
+		// only need the first 7 to check if it is a bundle
+		String bytesAsString = new String(bytes, 0, 7);
+		return bytesAsString.startsWith("#bundle");
+	}                               
+                               
+	private OSCBundle convertBundle() {
+		// skip the "#bundle " stuff
+		streamPosition = 8;
+		Date timestamp = readTimeTag();
+		OSCBundle bundle = new OSCBundle(timestamp);
+		OSCByteArrayToJavaConverter myConverter = new OSCByteArrayToJavaConverter();
+		while (streamPosition < bytesLength) {
+			// recursively read through the stream and convert packets you find
+			int packetLength = ((Integer) readInteger()).intValue();
+			byte[] packetBytes = new byte[packetLength];
+			//streamPosition++;
+			System.arraycopy(bytes,streamPosition,packetBytes,0,packetLength);
+			streamPosition+=packetLength;
+			//for (int i = 0; i < packetLength; i++)
+			//	packetBytes[i] = bytes[streamPosition++];
+			OSCPacket packet = myConverter.convert(packetBytes, packetLength);
+			bundle.addPacket(packet);
+		}
+		return bundle;
+	}
+
+	private OSCMessage convertMessage() {
+		OSCMessage message = new OSCMessage();
+		message.setAddress(readString());
+		char[] types = readTypes();
+		if (null == types) {
+			// we are done
+			return message;
+		}
+		moveToFourByteBoundry();
+		for (int i = 0; i < types.length; i++) {
+			if ('[' == types[i]) {
+				// we're looking at an array -- read it in
+				message.addArgument(readArray(types, i));
+				// then increment i to the end of the array
+				while (']' != types[i])
+					i++;
+			} else
+				message.addArgument(readArgument(types[i]));
+		}
+		return message;
+	}
+
+	private String readString() {
+		int strLen = lengthOfCurrentString();
+		char[] stringChars = new char[strLen];
+		//System.arraycopy(bytes,streamPosition,stringChars,0,strLen);
+		//streamPosition+=strLen;
+		for (int i = 0; i < strLen; i++)
+			stringChars[i] = (char) bytes[streamPosition++];
+		moveToFourByteBoundry();
+		return new String(stringChars);
+	}
+
+	/**
+	 * @return a char array with the types of the arguments
+	 */
+	private char[] readTypes() {
+		// the next byte should be a ","
+		if (bytes[streamPosition] != 0x2C)
+			return null;
+		streamPosition++;
+		// find out how long the list of types is
+		int typesLen = lengthOfCurrentString();
+		if (0 == typesLen) {
+			return null;
+		}
+		// read in the types
+		char[] typesChars = new char[typesLen];
+		for (int i = 0; i < typesLen; i++) {
+			typesChars[i] = (char) bytes[streamPosition++];
+		}
+		return typesChars;
+	}
+
+	/**
+	 * @param c type of argument
+	 * @return a Java representation of the argument
+	 */
+	private Object readArgument(char c) {
+		switch (c) {
+			case 'i' :
+				return readInteger();
+			case 'h' :
+				return readBigInteger();
+			case 'f' :
+				return readFloat();
+			case 'd' :
+				return readDouble();
+			case 's' :
+				return readString();
+			case 'c' :
+				return readChar();
+			case 'T' :
+				return Boolean.TRUE;
+			case 'F' :
+				return Boolean.FALSE;
+		}
+
+		return null;
+	}
+
+	/**
+	 * @return a Character
+	 */
+	private Object readChar() {
+		return new Character((char) bytes[streamPosition++]);
+	}
+
+	/**
+	 * @return a Double
+	 */
+	private Object readDouble() {
+		return readFloat();
+	}
+
+	/**
+	 * @return a Float
+	 */
+	private Object readFloat() {
+		//byte[] floatBytes = new byte[4];
+		floatBytes[0] = bytes[streamPosition++];
+		floatBytes[1] = bytes[streamPosition++];
+		floatBytes[2] = bytes[streamPosition++];
+		floatBytes[3] = bytes[streamPosition++];
+
+		int floatBits = 
+			((floatBytes[3] & 0xFF) ) +
+			((floatBytes[2] & 0xFF) << 8) +
+			((floatBytes[1] & 0xFF) << 16) +
+			((floatBytes[0] & 0xFF) << 24);
+		
+		return new Float(Float.intBitsToFloat(floatBits));
+	}
+
+	/**
+	 * @return a BigInteger
+	 */
+	private Object readBigInteger() {
+		//byte[] intBytes = new byte[4];
+		intBytes[0] = bytes[streamPosition++];
+		intBytes[1] = bytes[streamPosition++];
+		intBytes[2] = bytes[streamPosition++];
+		intBytes[3] = bytes[streamPosition++];
+
+		int intBits = 
+			((intBytes[3] & 0xFF) ) +
+			((intBytes[2] & 0xFF) << 8) +
+			((intBytes[1] & 0xFF) << 16) +
+			((intBytes[0] & 0xFF) << 24);
+		
+		return new Integer(intBits);
+	}
+
+	/**
+	 * @return an Integer
+	 */
+	private Object readInteger() {
+		//byte[] intBytes = new byte[4];
+		intBytes[0] = bytes[streamPosition++];
+		intBytes[1] = bytes[streamPosition++];
+		intBytes[2] = bytes[streamPosition++];
+		intBytes[3] = bytes[streamPosition++];
+
+		int intBits = 
+			((intBytes[3] & 0xFF) ) +
+			((intBytes[2] & 0xFF) << 8) +
+			((intBytes[1] & 0xFF) << 16) +
+			((intBytes[0] & 0xFF) << 24);
+		
+		return new Integer(intBits);
+	}
+	
+	/**
+	 * @return a Date
+	 */
+	private Date readTimeTag() {
+		//byte[] secondBytes = new byte[8];
+		//byte[] picosecBytes = new byte[8];
+		/*for (int i = 4; i < 8; i++)
+			secondBytes[i] = bytes[streamPosition++];
+		for (int i = 4; i < 8; i++)
+			picosecBytes[i] = bytes[streamPosition++];*/
+		System.arraycopy(bytes,streamPosition,secondBytes,4,4);
+		streamPosition+=4;
+		System.arraycopy(bytes,streamPosition,picosecBytes,4,4);
+		streamPosition+=4;
+		
+		BigInteger secsSince1900 = new BigInteger(secondBytes);
+		long secsSince1970 =  secsSince1900.longValue() - OSCBundle.SECONDS_FROM_1900_to_1970.longValue();
+		if (secsSince1970 < 0) secsSince1970 = 0; // no point maintaining times in the distant past
+		BigInteger picosecs = new BigInteger(picosecBytes);
+		long millisecs = (secsSince1970 * 1000) + (picosecs.longValue() / 1000);
+		return new Date(millisecs);
+	}
+
+	/**
+	 * @param types
+	 * @param i
+	 * @return an Array
+	 */
+	private Object[] readArray(char[] types, int i) {
+		int arrayLen = 0;
+		while (types[i + arrayLen] != ']')
+			arrayLen++;
+		Object[] array = new Object[arrayLen];
+		for (int j = 0; i < arrayLen; j++) {
+			array[j] = readArgument(types[i + j]);
+		}
+		return array;
+	}
+
+	private int lengthOfCurrentString() {
+		int i = 0;
+		while (bytes[streamPosition + i] != 0)
+			i++;
+		return i;
+	}
+
+	private void moveToFourByteBoundry() {
+		// If i'm already at a 4 byte boundry, I need to move to the next one
+		int mod = streamPosition % 4;
+		streamPosition += (4 - mod);
+	}
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/utility/OSCJavaToByteArrayConverter.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,310 @@
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2003, C. Ramakrishnan / Illposed Software
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ * 
+ * 
+ * OSCJavaToByteArrayConverter is a helper class that translates
+ * from Java types to the format the OSC spec specifies for those
+ * types.
+ *
+ * This implementation is based on Markus Gaelli and
+ * Iannis Zannos' OSC implementation in Squeak:
+ * http://www.emergent.de/Goodies/
+ */
+
+package com.illposed.osc.utility;
+
+import java.io.IOException;
+import java.io.ByteArrayOutputStream;
+import java.math.BigInteger;
+import java.util.Enumeration;
+import java.util.Vector;
+
+
+public class OSCJavaToByteArrayConverter {
+
+	protected ByteArrayOutputStream stream = new ByteArrayOutputStream();
+	private byte[] intBytes = new byte[4];
+
+	/*public OSCJavaToByteArrayConverter() {
+		super();
+	}*/
+
+	/**
+	 * Creation date: (2/23/2001 2:43:25 AM)
+	 * @param anArray java.lang.Object[]
+	 *
+	 */
+	public void appendNullCharToAlignStream() {
+		int mod = stream.size() % 4;
+		int pad = 4 - mod;
+		for (int i = 0; i < pad; i++)
+			stream.write(0);
+	}
+
+	/**
+	 * Creation date: (2/23/2001 2:21:53 AM)
+	 * @return byte[]
+	 */
+	public byte[] toByteArray() {
+		return stream.toByteArray();
+	}
+
+	/**
+	 * Creation date: (2/23/2001 2:14:23 AM)
+	 * @param bytes byte[]
+	 */
+	public void write(byte[] bytes) {
+		writeBigEndToFourByteBoundry(bytes);
+	}
+
+	/**
+	 * Creation date: (2/23/2001 2:21:04 AM)
+	 * @param i int
+	 */
+	public void write(int i) {
+		writeIntegerToByteArray(i);
+	}
+
+	/**
+	 * Creation date: (2/23/2001 2:03:57 AM)
+	 * @param f java.lang.Float
+	 */
+	public void write(Float f) {
+		writeIntegerToByteArray(Float.floatToIntBits(f.floatValue()));
+	}
+
+	/**
+	 * Creation date: (2/23/2001 2:08:36 AM)
+	 * @param i java.lang.Integer
+	 */
+	public void write(Integer i) {
+		writeIntegerToByteArray(i.intValue());
+	}
+
+	/**
+	 * Creation date: (2/23/2001 1:57:35 AM)
+	 * @param str java.lang.String
+	 */
+	public void write(String str) {
+		writeLittleEndToFourByteBoundry(str.getBytes());
+	}
+
+	/**
+	 * Creation date: (2/23/2001 2:08:36 AM)
+	 * @param c char
+	 */
+	public void write(char c) {
+		stream.write(c);
+	}
+
+	/**
+	 * Creation date: (2/23/2001 2:02:54 AM)
+	 * @param anObject java.lang.Object
+	 */
+	public void write(Object anObject) {
+		// Can't do switch on class
+		if (null == anObject)
+			return;
+		if (anObject instanceof Float) {
+			write((Float) anObject);
+			return;
+		}
+		if (anObject instanceof String) {
+			write((String) anObject);
+			return;
+		}
+		if (anObject instanceof Integer) {
+			write((Integer) anObject);
+			return;
+		}
+	}
+
+	/**
+	 * Creation date: (2/23/2001 2:43:25 AM)
+	 * @param aClass Class
+	 */
+	public void writeType(Class c) {
+		// A big ol' case statement -- what's polymorphism mean, again?
+		// I really wish I could extend the base classes!
+
+		// use the appropriate flags to tell SuperCollider what kind of 
+		// thing it is looking at
+
+		if (Integer.class.equals(c)) {
+			stream.write('i');
+			return;
+		}
+		if (java.math.BigInteger.class.equals(c)) {
+			stream.write('h');
+			return;
+		}
+		if (Float.class.equals(c)) {
+			stream.write('f');
+			return;
+		}
+		if (Double.class.equals(c)) {
+			stream.write('d');
+			return;
+		}
+		if (String.class.equals(c)) {
+			stream.write('s');
+			return;
+		}
+		if (Character.class.equals(c)) {
+			stream.write('c');
+			return;
+		}
+	}
+
+	/**
+	 * Creation date: (2/23/2001 2:43:25 AM)
+	 * @param anArray java.lang.Object[]
+	 */
+	public void writeTypesArray(Object[] array) {
+		// A big ol' case statement in a for loop -- what's polymorphism mean, again?
+		// I really wish I could extend the base classes!
+
+		for (int i = 0; i < array.length; i++) {
+			if (null == array[i])
+				continue;
+			// if the array at i is a type of array write a [
+			// This is used for nested arguments
+			if (array[i].getClass().isArray()) {
+				stream.write('[');
+				// fill the [] with the SuperCollider types corresponding to the object
+				// (i.e. Object of type String needs -s).
+				writeTypesArray((Object[]) array[i]);
+				// close the array
+				stream.write(']');
+				continue;
+			}
+			// Create a way to deal with Boolean type objects
+			if (Boolean.TRUE.equals(array[i])) {
+				stream.write('T');
+				continue;
+			}
+			if (Boolean.FALSE.equals(array[i])) {
+				stream.write('F');
+				continue;
+			}
+			// go through the array and write the superCollider types as shown in the 
+			// above method. the Classes derived here are used as the arg to the above method
+			writeType(array[i].getClass());
+		}
+		// align the stream with padded bytes
+		appendNullCharToAlignStream();
+	}
+	
+	/**
+	 * Same as writeSuperColliderTypes(Object[]), just that it takes a vector (for jdk1.1
+	 * compatibility), rather than an array.
+	 * @param vector  the collection I am to write out types for
+	 */
+	public void writeTypes(Vector vector) {
+		// A big ol' case statement in a for loop -- what's polymorphism mean, again?
+		// I really wish I could extend the base classes!
+
+		Enumeration enm = vector.elements();
+		Object nextObject;
+		while (enm.hasMoreElements()) {
+			nextObject = enm.nextElement();
+			if (null == nextObject)
+				continue;
+			// if the array at i is a type of array write a [
+			// This is used for nested arguments
+			if (nextObject.getClass().isArray()) {
+				stream.write('[');
+				// fill the [] with the SuperCollider types corresponding to the object
+				// (e.g., Object of type String needs -s).
+				writeTypesArray((Object[]) nextObject);
+				// close the array
+				stream.write(']');
+				continue;
+			}
+			// Create a way to deal with Boolean type objects
+			if (Boolean.TRUE.equals(nextObject)) {
+				stream.write('T');
+				continue;
+			}
+			if (Boolean.FALSE.equals(nextObject)) {
+				stream.write('F');
+				continue;
+			}
+			// go through the array and write the superCollider types as shown in the 
+			// above method. the Classes derived here are used as the arg to the above method
+			writeType(nextObject.getClass());
+		}
+		// align the stream with padded bytes
+		appendNullCharToAlignStream();
+	}
+
+	/**
+	 * convert an integer to byte array
+	 *
+	 * @param value int
+	 */
+	private void writeIntegerToByteArray(int value) {
+		byte[] intBytes = new byte[4];
+
+		intBytes[3] = (byte)value; value>>>=8;
+		intBytes[2] = (byte)value; value>>>=8;
+		intBytes[1] = (byte)value; value>>>=8;
+		intBytes[0] = (byte)value;
+
+		try {
+			stream.write(intBytes);
+		} catch (IOException e) {
+			throw new RuntimeException("You're screwed: IOException writing to a ByteArrayOutputStream");
+		}
+	}
+	
+	/**
+	 * Line up the BigEnd of the bytes to a 4 byte boundry
+	 *
+	 * @param bytes byte[]
+	 */
+	private void writeBigEndToFourByteBoundry(byte[] bytes) {
+		int mod = bytes.length % 4;
+		// if the remainder == 0 write the bytes
+		if (mod == 0) {
+			try { stream.write(bytes); } catch (IOException e)
+			{ throw new RuntimeException("You're screwed: IOException writing to a ByteArrayOutputStream"); }
+			return;
+		}
+		// pad the bytes to lineup correctly
+		int pad = 4 - mod;
+		byte[] newBytes = new byte[pad + bytes.length];
+		System.arraycopy(bytes,0,newBytes,pad,bytes.length);
+
+		try { stream.write(newBytes); } catch (IOException e)
+		{ throw new RuntimeException("You're screwed: IOException writing to a ByteArrayOutputStream"); }
+	}
+
+	/**
+	 * Line up the LittleEnd of the bytes to a 4 byte boundry
+	 * 
+	 * @param bytes byte[]
+	 */
+	private void writeLittleEndToFourByteBoundry(byte[] bytes) {
+		int mod = bytes.length % 4;
+		// if the remainder == 0 write the bytes
+		if (mod == 4) {
+			try { stream.write(bytes); } catch (IOException e)
+			{ throw new RuntimeException("You're screwed: IOException writing to a ByteArrayOutputStream"); }
+			return;
+		}
+		// pad the bytes to lineup correctly
+		int pad = 4 - mod;
+		byte[] newBytes = new byte[pad + bytes.length];
+		System.arraycopy(bytes,0,newBytes,0,bytes.length);
+
+		try { stream.write(newBytes); } catch (IOException e)
+		{ throw new RuntimeException("You're screwed: IOException writing to a ByteArrayOutputStream"); }
+	}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/com/illposed/osc/utility/OSCPacketDispatcher.java	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,77 @@
+/* $Id: OSCPacketDispatcher.java,v 1.2 2008/07/01 15:29:46 modin Exp $
+ * Created on 28.10.2003
+ */
+package com.illposed.osc.utility;
+
+import com.illposed.osc.*;
+
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.Hashtable;
+
+/**
+ * @author cramakrishnan
+ *
+ * Copyright (C) 2003, C. Ramakrishnan / Auracle
+ * All rights reserved.
+ * 
+ * See license.txt (or license.rtf) for license information.
+ * 
+ * Dispatches OSCMessages to registered listeners.
+ * 
+ */
+
+public class OSCPacketDispatcher {
+	private Hashtable<String,OSCListener> addressToClassTable = new Hashtable<String,OSCListener>();
+	
+	/**
+	 * 
+	 */
+	public OSCPacketDispatcher() {
+		super();
+	}
+
+	public void addListener(String address, OSCListener listener) {
+		addressToClassTable.put(address, listener);
+	}
+	
+	public void dispatchPacket(OSCPacket packet) {
+		if (packet instanceof OSCBundle)
+			dispatchBundle((OSCBundle) packet);
+		else
+			dispatchMessage((OSCMessage) packet);
+	}
+	
+	public void dispatchPacket(OSCPacket packet, Date timestamp) {
+		if (packet instanceof OSCBundle)
+			dispatchBundle((OSCBundle) packet);
+		else
+			dispatchMessage((OSCMessage) packet, timestamp);
+	}
+	
+	private void dispatchBundle(OSCBundle bundle) {
+		Date timestamp = bundle.getTimestamp();
+		OSCPacket[] packets = bundle.getPackets();
+		for (int i = 0; i < packets.length; i++) {
+			dispatchPacket(packets[i], timestamp);
+		}
+	}
+	
+	private void dispatchMessage(OSCMessage message) {
+		dispatchMessage(message, null);
+	}
+	
+	private void dispatchMessage(OSCMessage message, Date time) {
+		Enumeration keys = addressToClassTable.keys();
+		while (keys.hasMoreElements()) {
+			String key = (String) keys.nextElement();
+			// this supports the OSC regexp facility, but it
+			// only works in JDK 1.4, so don't support it right now
+			// if (key.matches(message.getAddress())) {
+			if (key.equals(message.getAddress())) {
+				OSCListener listener = (OSCListener) addressToClassTable.get(key);
+				listener.acceptMessage(time, message);
+			}
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/compile.bat	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,6 @@
+cd src
+javac -O -source 1.5 -target 1.5 -cp . *.java TUIO\*.java com\illposed\osc\*.java
+jar cfm ..\TuioDemo.jar manifest.inc *.class TUIO\*.class com\illposed\osc\*.class com\illposed\osc\utility\*.class
+jar cf ..\libTUIO.jar TUIO\*.class com\illposed\osc\*.class com\illposed\osc\utility\*.class
+del *.class TUIO\*.class com\illposed\osc\*.class com\illposed\osc\utility\*.class
+cd ..
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/compile.sh	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,7 @@
+#!/bin/sh
+cd src
+javac -Xlint:unchecked -O -source 1.5 -target 1.5 -cp . *.java TUIO/*.java com/illposed/osc/*.java
+jar cfm ../TuioDemo.jar manifest.inc *.class TUIO/*.class com/illposed/osc/*.class com/illposed/osc/utility/*.class
+jar cf ../libTUIO.jar TUIO/*.class com/illposed/osc/*.class com/illposed/osc/utility/*.class
+rm -f *.class TUIO/*.class com/illposed/osc/*.class com/illposed/osc/utility/*.class
+cd ..
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/doc.sh	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,3 @@
+#!/bin/sh
+javadoc -d doc -sourcepath src TUIO
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/extern/TUIO_JAVA/src/manifest.inc	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,3 @@
+Main-Class: TuioDemo
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/front_processing/src/Trakers/Trakers.pde	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,117 @@
+import TUIO.*;
+TuioProcessing tuioClient;
+boolean oneHandLeft;
+
+/*FONCTION D'INITIALISATION
+Entrée :
+Sortie : Création de la fenêtre et du client TUIO*/
+void setup()
+{
+    size (640, 480);
+    background(255);
+    tuioClient = new TuioProcessing(this, 80);
+    textAlign(CENTER);
+    imageMode(CENTER);
+    smooth();
+}
+
+/*FONCTION DE DESSIN
+Entrée :
+Sortie : Appel à la fonction de traitement d'input du serveur toutes les n millisecondes*/
+void draw()
+{
+    fill(0);
+    tuioInput();
+    noStroke();
+}
+
+/*FONCTION DE RECEPTION DES MESSAGES OSC
+Entrée :
+Sortie : Appel aux différentes fonctions de dessin si un message est reçu*/
+void tuioInput()
+{
+    noFill();
+    rect(0, 0, 50, 50);
+  
+    Vector tuioCursorList = tuioClient.getTuioCursors();
+    
+    if(tuioCursorList.size() == 1)
+        handleOneHand((TuioCursor)tuioCursorList.elementAt(0));
+    else if(tuioCursorList.size() == 2)
+        handleBothHands(tuioCursorList);
+}
+
+/*FONCTION DE GESTION DES COURBES POUR UNE MAIN DETECTEE
+Entrée : Un curseur TUIO
+Sortie : Appel aux différentes fonctions de dessin si un message est reçu*/
+void handleOneHand(TuioCursor handCursor)
+{
+    fill(0, 0, 255);
+    rect(0, 0, 50, 50);
+    
+    Vector pointList = handCursor.getPath();
+    for (int j=0;j<pointList.size();j++)
+    {
+        TuioPoint pt = (TuioPoint)pointList.get(j);
+        fill(0);
+        drawEllipse(pt.getX(), pt.getY(), pt.getZ(), !oneHandLeft);
+        
+        if(tuioClient.getTuioCursors().size() == 2)
+            break;
+    }
+}
+
+/*FONCTION DE GESTION DES COURBES POUR DEUX MAINS DETECTEES
+Entrée : La liste des curseurs TUIO
+Sortie : Appel aux différentes fonctions de dessin si un message est reçu*/
+void handleBothHands(Vector tuioCursorList)
+{
+    fill(0);
+    rect(0, 0, 50, 50);
+    
+    TuioCursor handLeftCursor = (TuioCursor)tuioCursorList.elementAt(0);
+    TuioCursor rightLeftCursor = (TuioCursor)tuioCursorList.elementAt(1);
+    Vector handLeftPointList = handLeftCursor.getPath();
+    Vector handRightPointList = rightLeftCursor.getPath();
+    TuioPoint pt;
+    
+    for(int j = 0, k = 0 ; j < handLeftPointList.size() || k < handRightPointList.size() ; j++, k++)
+    {
+        if(j < handLeftPointList.size())
+        {
+            pt = (TuioPoint)handLeftPointList.get(j);
+            drawEllipse(pt.getX(), pt.getY(), pt.getZ(), true);
+        }
+        if(k < handRightPointList.size())
+        {
+            pt = (TuioPoint)handRightPointList.get(k);
+            drawEllipse(pt.getX(), pt.getY(), pt.getZ(), false);
+        }
+        
+        if(tuioCursorList.size() == 1)
+        {
+            if(j == handLeftPointList.size())
+                oneHandLeft = false;
+            else if(k == handRightPointList.size())
+                oneHandLeft = true;
+            //fill(0, 255, 0);
+            break;
+        }
+    }
+}
+
+/*FONCTION DE DESSIN D'UN POINT DE COURBE
+Entrée : Coordonnées X, Y et Z d'un point
+Sortie : Le point est dessiné avec une épaisseur et une luminosité dépendant de Z*/
+void drawEllipse(float x, float y, float z, boolean leftHand)
+{
+    float weight = map(z, 1, 2, 50, 1);
+    float redColor = map(z, 1, 2, 255, 80);
+    if(leftHand)
+        fill(redColor,0,0);
+    else
+        fill(0,redColor,0);
+    ellipse(x, y, weight, weight);
+}
+ 
+
Binary file front_processing/src/Trakers/code/TUIO.jar has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/Trakers.sln	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Trakers", "src\Trakers.csproj", "{09EF8613-2F1B-4F1D-B6B1-22938EBB529A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x86 = Debug|x86
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{09EF8613-2F1B-4F1D-B6B1-22938EBB529A}.Debug|x86.ActiveCfg = Debug|x86
+		{09EF8613-2F1B-4F1D-B6B1-22938EBB529A}.Debug|x86.Build.0 = Debug|x86
+		{09EF8613-2F1B-4F1D-B6B1-22938EBB529A}.Release|x86.ActiveCfg = Release|x86
+		{09EF8613-2F1B-4F1D-B6B1-22938EBB529A}.Release|x86.Build.0 = Release|x86
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Binary file middleware/extern/TuioServer/Libraries/Bespoke.Common.Osc/Bespoke.Common.Osc.dll has changed
Binary file middleware/extern/TuioServer/Libraries/Bespoke.Common.Osc/Bespoke.Common.dll has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/Tuio.Test/App.xaml	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,8 @@
+<Application x:Class="Tuio.Test.App"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             StartupUri="MainWindow.xaml">
+    <Application.Resources>
+         
+    </Application.Resources>
+</Application>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/Tuio.Test/App.xaml.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Windows;
+
+namespace Tuio.Test
+{
+    /// <summary>
+    /// Interaction logic for App.xaml
+    /// </summary>
+    public partial class App : Application
+    {
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/Tuio.Test/MainWindow.xaml	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,9 @@
+<Window x:Class="Tuio.Test.MainWindow"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        Title="MainWindow" Height="480" Width="640"
+        MouseDown="Window_MouseDown" MouseMove="Window_MouseMove" MouseUp="Window_MouseUp">
+    <Grid>
+        
+    </Grid>
+</Window>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/Tuio.Test/MainWindow.xaml.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,66 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+using Tuio;
+
+namespace Tuio.Test
+{
+    /// <summary>
+    /// Interaction logic for MainWindow.xaml
+    /// </summary>
+    public partial class MainWindow : Window
+    {
+        private TuioServer _server;
+
+        public MainWindow()
+        {
+            InitializeComponent();
+            _server = new TuioServer();
+            ThreadPool.QueueUserWorkItem(ThreadPoolCallback);
+        }
+
+        private void Window_MouseDown(object sender, MouseButtonEventArgs e)
+        {
+            _server.AddTuioCursor(0, AbsoluteToRelativePosition(e.GetPosition(this)));            
+        }
+
+        private void Window_MouseMove(object sender, MouseEventArgs e)
+        {
+            _server.UpdateTuioCursor(0, AbsoluteToRelativePosition(e.GetPosition(this)));
+        }
+
+        private void Window_MouseUp(object sender, MouseButtonEventArgs e)
+        {
+            _server.DeleteTuioCursor(0);
+        }
+
+        private System.Drawing.PointF AbsoluteToRelativePosition(Point p)
+        {
+            return new System.Drawing.PointF(
+                (float)(p.X / Width),
+                (float)(p.Y / Height));
+        }
+
+        private void ThreadPoolCallback(Object threadContext)
+        {
+            while (true)
+            {
+                _server.InitFrame();
+                _server.CommitFrame();
+                Thread.Sleep(25);
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/Tuio.Test/Properties/AssemblyInfo.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Tuio.Test")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Tuio.Test")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+//In order to begin building localizable applications, set 
+//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
+//inside a <PropertyGroup>.  For example, if you are using US english
+//in your source files, set the <UICulture> to en-US.  Then uncomment
+//the NeutralResourceLanguage attribute below.  Update the "en-US" in
+//the line below to match the UICulture setting in the project file.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+    //(used if a resource is not found in the page, 
+    // or application resource dictionaries)
+    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+    //(used if a resource is not found in the page, 
+    // app, or any theme specific resource dictionaries)
+)]
+
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/Tuio.Test/Properties/Resources.Designer.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.1
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tuio.Test.Properties
+{
+
+
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources
+    {
+
+        private static global::System.Resources.ResourceManager resourceMan;
+
+        private static global::System.Globalization.CultureInfo resourceCulture;
+
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources()
+        {
+        }
+
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager
+        {
+            get
+            {
+                if ((resourceMan == null))
+                {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tuio.Test.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture
+        {
+            get
+            {
+                return resourceCulture;
+            }
+            set
+            {
+                resourceCulture = value;
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/Tuio.Test/Properties/Resources.resx	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/Tuio.Test/Properties/Settings.Designer.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.1
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tuio.Test.Properties
+{
+
+
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+    {
+
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+        public static Settings Default
+        {
+            get
+            {
+                return defaultInstance;
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/Tuio.Test/Properties/Settings.settings	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/Tuio.Test/Tuio.Test.csproj	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{9DE22EEA-1230-4A72-B356-714ACB5CEF78}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Tuio.Test</RootNamespace>
+    <AssemblyName>Tuio.Test</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Xml" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Xaml">
+      <RequiredTargetFramework>4.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="WindowsBase" />
+    <Reference Include="PresentationCore" />
+    <Reference Include="PresentationFramework" />
+  </ItemGroup>
+  <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </ApplicationDefinition>
+    <Page Include="MainWindow.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="MainWindow.xaml.cs">
+      <DependentUpon>MainWindow.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <AppDesigner Include="Properties\" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\TuioServer\Tuio.csproj">
+      <Project>{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}</Project>
+      <Name>Tuio</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/TuioServer.sln	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,42 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tuio", "TuioServer\Tuio.csproj", "{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tuio.Test", "Tuio.Test\Tuio.Test.csproj", "{9DE22EEA-1230-4A72-B356-714ACB5CEF78}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|Mixed Platforms = Debug|Mixed Platforms
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|Mixed Platforms = Release|Mixed Platforms
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}.Release|x86.ActiveCfg = Release|Any CPU
+		{9DE22EEA-1230-4A72-B356-714ACB5CEF78}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{9DE22EEA-1230-4A72-B356-714ACB5CEF78}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{9DE22EEA-1230-4A72-B356-714ACB5CEF78}.Debug|Mixed Platforms.Build.0 = Debug|x86
+		{9DE22EEA-1230-4A72-B356-714ACB5CEF78}.Debug|x86.ActiveCfg = Debug|x86
+		{9DE22EEA-1230-4A72-B356-714ACB5CEF78}.Debug|x86.Build.0 = Debug|x86
+		{9DE22EEA-1230-4A72-B356-714ACB5CEF78}.Release|Any CPU.ActiveCfg = Release|x86
+		{9DE22EEA-1230-4A72-B356-714ACB5CEF78}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{9DE22EEA-1230-4A72-B356-714ACB5CEF78}.Release|Mixed Platforms.Build.0 = Release|x86
+		{9DE22EEA-1230-4A72-B356-714ACB5CEF78}.Release|x86.ActiveCfg = Release|x86
+		{9DE22EEA-1230-4A72-B356-714ACB5CEF78}.Release|x86.Build.0 = Release|x86
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Binary file middleware/extern/TuioServer/TuioServer.suo has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/TuioServer/Properties/AssemblyInfo.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("TuioServer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("TuioServer")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2010")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("218d7cf4-1caa-48da-b5a6-6ede92db690d")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/TuioServer/Tuio.csproj	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{A86F5BCA-F196-40D0-967B-FD8C63AE85CE}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>TuioServer</RootNamespace>
+    <AssemblyName>TuioServer</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Bespoke.Common.Osc">
+      <HintPath>..\Libraries\Bespoke.Common.Osc\Bespoke.Common.Osc.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="TuioCursor.cs" />
+    <Compile Include="TuioServer.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/TuioServer/TuioCursor.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+
+namespace Tuio
+{
+    /// <summary>
+    /// TUIO cursor.
+    /// 
+    /// (c) 2010 by Dominik Schmidt (schmidtd@comp.lancs.ac.uk)
+    /// </summary>
+    public class TuioCursor
+    {
+        #region properties
+
+        public int Id { get; private set; }
+
+        public PointF Location { get; set; }
+
+        public PointF Speed { get; set; }
+
+        public float MotionAcceleration { get; set; }
+
+        #endregion
+
+        #region constructors
+
+        public TuioCursor(int id, PointF location)
+        {
+            Id = id;
+            Location = location;
+        }
+
+        #endregion
+
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/extern/TuioServer/TuioServer/TuioServer.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,186 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Net;
+using System.Text;
+
+using Bespoke.Common.Osc;
+
+namespace Tuio
+{
+    /// <summary>
+    /// Simple, still uncomplete implementation of a TUIO server in C#.
+    /// 
+    /// Current shortcomings:
+    /// Object support missing.
+    /// Does not implement frame times.
+    /// Only supports external TUIO cursors.
+    /// Allways commits all cursors.
+    /// 
+    /// (c) 2010 by Dominik Schmidt (schmidtd@comp.lancs.ac.uk)
+    /// </summary>
+    public class TuioServer
+    {
+        #region constants
+        
+        private const string _cursorAddressPattern = "/tuio/2Dcur";
+
+        private const string _objectAddressPattern = "/tuio/2Dobj"; 
+
+        #endregion
+
+        #region fields
+
+        private IPEndPoint _ipEndPoint;
+
+        private Dictionary<int, TuioCursor> _cursors;
+
+        private int _currentFrame;
+
+        #endregion
+
+        #region constructors
+
+        /// <summary>
+        /// Creates a new server with and endpoint at localhost, port 3333.
+        /// </summary>
+        public TuioServer() : this("127.0.0.1", 3333) { }
+
+        /// <summary>
+        /// Creates a new server.
+        /// </summary>
+        /// <param name="host">Endpoint host</param>
+        /// <param name="port">Endpoint port</param>
+        public TuioServer(string host, int port)
+        {
+            _cursors = new Dictionary<int, TuioCursor>();
+            _ipEndPoint = new IPEndPoint(IPAddress.Parse(host), port);
+            _currentFrame = 0;
+        }
+
+        #endregion
+
+        #region frame related methods
+
+        /// <summary>
+        /// Initialized a new frame and increases the frame counter.
+        /// </summary>
+        public void InitFrame()
+        {
+            _currentFrame++;
+        }
+
+        /// <summary>
+        /// Commits the current frame.
+        /// </summary>
+        public void CommitFrame()
+        {
+            GetFrameBundle().Send(_ipEndPoint);
+        }
+
+        #endregion
+
+        #region cursor related methods
+        
+        /// <summary>
+        /// Adds a TUIO cursor. A new id, not used before, must be provided.
+        /// </summary>
+        /// <param name="id">New id</param>
+        /// <param name="location">Location</param>
+        public void AddTuioCursor(int id, PointF location)
+        {
+            lock(_cursors)
+                if(!_cursors.ContainsKey(id))
+                    _cursors.Add(id, new TuioCursor(id, location));
+        }
+
+        /// <summary>
+        /// Updates a TUIO cursor. An id of an existing cursor must be provided.
+        /// </summary>
+        /// <param name="id">Id</param>
+        /// <param name="location">Location</param>
+        public void UpdateTuioCursor(int id, PointF location)
+        {
+            TuioCursor cursor;
+            if(_cursors.TryGetValue(id, out cursor))
+                cursor.Location = location;
+        }
+
+        /// <summary>
+        /// Deletes a TUIO cursor. An id of an existing cursor must be provided.
+        /// </summary>
+        /// <param name="id">Id</param>
+        public void DeleteTuioCursor(int id)
+        {
+            lock (_cursors)
+                _cursors.Remove(id);
+        }
+
+        #endregion
+
+        #region osc message assembly
+
+        private OscBundle GetFrameBundle()
+        {
+            OscBundle bundle = new OscBundle(_ipEndPoint);
+
+            bundle.Append(GetAliveMessage());
+            foreach (OscMessage msg in GetCursorMessages())
+                bundle.Append(msg);
+            bundle.Append(GetSequenceMessage());
+
+            return bundle;
+        }
+
+        private OscMessage GetAliveMessage()
+        {
+            OscMessage msg = new OscMessage(_ipEndPoint, _cursorAddressPattern);
+
+            msg.Append("alive");
+            lock (_cursors)
+                foreach (TuioCursor cursor in _cursors.Values)
+                    msg.Append((Int32)cursor.Id);
+
+            return msg;
+        }
+
+        private OscMessage GetSequenceMessage()
+        {
+            OscMessage msg = new OscMessage(_ipEndPoint, _cursorAddressPattern);
+
+            msg.Append("fseq");
+            msg.Append((Int32)_currentFrame);
+
+            return msg;
+        }
+
+        private OscMessage GetCursorMessage(TuioCursor cursor)
+        {
+            OscMessage msg = new OscMessage(_ipEndPoint, _cursorAddressPattern);
+
+            msg.Append("set");
+            msg.Append((Int32)cursor.Id);
+            msg.Append(cursor.Location.X);
+            msg.Append(cursor.Location.Y);
+            msg.Append(cursor.Speed.X);
+            msg.Append(cursor.Speed.Y);
+            msg.Append(cursor.MotionAcceleration);
+
+            return msg;
+        }
+
+        private IEnumerable<OscMessage> GetCursorMessages()
+        {
+            List<OscMessage> msgs = new List<OscMessage>();
+
+            lock (_cursors)
+                foreach (TuioCursor cursor in _cursors.Values)
+                    msgs.Add(GetCursorMessage(cursor));
+
+            return msgs.AsEnumerable();
+        }
+
+        #endregion
+    }
+}
Binary file middleware/lib/Bespoke.Common.Osc.dll has changed
Binary file middleware/lib/Bespoke.Common.dll has changed
Binary file middleware/lib/Coding4Fun.Kinect.Wpf.dll has changed
Binary file middleware/lib/Kinect.Toolbox.dll has changed
Binary file middleware/lib/Microsoft.Kinect.dll has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/App.config	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+  <appSettings>
+    <add key="searchMinDistance" value="1"/>
+    <add key="searchMaxDistance" value="2"/>
+  </appSettings>
+</configuration>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Communication/Server.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,150 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Communication
+ * Classe : Server
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Reçoit des notifications du module sous-module Tracking.
+ * Traduit les notifications sous forme de messages OSC et les envoie au Front Atelier.
+ * Forme des messages :
+ * - Notification de main dans le champ de recherche : Point3D indiquant la position de la main dans l'espace.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.IO;
+using System.Net;
+using System.Net.Sockets;
+using System.Threading;
+using Tuio;
+using System.Windows;
+using Microsoft.Kinect;
+using Trakers.Tracking;
+using System.Windows.Media.Media3D;
+using Trakers.Tracking.Events;
+
+namespace Trakers.Communication
+{
+    public class Server
+    {
+        //Serveur TUIO, provenant de la DLL TuioServer créé par Bespoke.
+        private TuioServer server;
+
+        //Permet de savoir si un curseur pour la main gauche/droite a été créé.
+        private bool leftHandCursorCreated;
+        private bool rightHandCursorCreated;
+
+        /*
+        * Constructeur : On initialise le serveur avec une adresse et un port, au début les curseurs
+        * ne sont pas créés et on indique au ThreadPool une fonction de callback de manière à vérifier
+        * s'il reçoit des notifications.
+        */
+        public Server(String host, int port)
+        {
+            server = new TuioServer(host, port);
+            leftHandCursorCreated = false;
+            rightHandCursorCreated = false;
+            ThreadPool.QueueUserWorkItem(ThreadPoolCallback);
+        }
+
+        /*
+        * Getter du serveur.
+        */
+        public TuioServer getServer()
+        {
+            return server;
+        }
+
+        /*
+        * Méthode appelée lors d'une notification de type : main gauche entrée dans le champ.
+        */
+        public void LeftHandTracked(object sender, LeftHandTrackedEventArgs e)
+        {
+            //Si le curseur de la main gauche n'est pas créé, alors on le crée.
+            if (!leftHandCursorCreated)
+            {
+                server.AddTuioCursor(0, SkeletonPointToPoint3D(e.handJoint.Position));
+                leftHandCursorCreated = true;
+            }
+            //S'il existe, on le met simplement à jour.
+            else
+            {
+                server.UpdateTuioCursor(0, SkeletonPointToPoint3D(e.handJoint.Position));
+            }
+        }
+
+        /*
+        * Méthode appelée lors d'une notification de type : main droite entrée dans le champ.
+        */
+        public void RightHandTracked(object sender, RightHandTrackedEventArgs e)
+        {
+            //Si le curseur de la main droite n'est pas créé, alors on le crée.
+            if (!rightHandCursorCreated)
+            {
+                server.AddTuioCursor(1, SkeletonPointToPoint3D(e.handJoint.Position));
+                rightHandCursorCreated = true;
+            }
+            //S'il existe, on le met simplement à jour.
+            else
+            {
+                server.UpdateTuioCursor(1, SkeletonPointToPoint3D(e.handJoint.Position));
+            }
+        }
+
+        /*
+        * Méthode appelée lors d'une notification de type : main gauche sortie du champ.
+        */
+        public void LeftHandQuit(object sender, LeftHandQuitEventArgs e)
+        {
+            //Si le curseur de la main gauche existe, alors on le supprime.
+            if (leftHandCursorCreated)
+            {
+                server.DeleteTuioCursor(0);
+                leftHandCursorCreated = false;
+            }
+        }
+
+        /*
+        * Méthode appelée lors d'une notification de type : main droite sortie du champ.
+        */
+        public void RightHandQuit(object sender, RightHandQuitEventArgs e)
+        {
+            //Si le curseur de la main droite existe, alors on le supprime.
+            if (rightHandCursorCreated)
+            {
+                server.DeleteTuioCursor(1);
+                rightHandCursorCreated = false;
+            }
+        }
+
+        /*
+        * Permet de convertir un point de position de noeud en Point3D.
+        */
+        private Point3D SkeletonPointToPoint3D(SkeletonPoint p)
+        {
+            return new Point3D((double)p.X, (double)p.Y, (double)p.Z);
+        }
+
+        /*
+        * Méthode de callback vérifiant toutes les 25 ms les nouvelles notifications.
+        * Il est à noter que si le temps de rafraîchissement des trop rapide, les messages n'ont pas
+        * le temps d'être envoyés.
+        */
+        private void ThreadPoolCallback(Object threadContext)
+        {
+            while (true)
+            {
+                //On initialise le message OSC.
+                server.InitFrame();
+                //On l'envoie au client (au host et au port spécifiés dans le constructeur).
+                server.CommitFrame();
+                //On attend 25 ms.
+                Thread.Sleep(25);
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Communication/TuioCursor.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+
+namespace Tuio
+{
+    /// <summary>
+    /// TUIO cursor.
+    /// 
+    /// (c) 2010 by Dominik Schmidt (schmidtd@comp.lancs.ac.uk)
+    /// </summary>
+    public class TuioCursor
+    {
+        #region properties
+
+        public int Id { get; private set; }
+
+        public PointF Location { get; set; }
+
+        public PointF Speed { get; set; }
+
+        public float MotionAcceleration { get; set; }
+
+        #endregion
+
+        #region constructors
+
+        public TuioCursor(int id, PointF location)
+        {
+            Id = id;
+            Location = location;
+        }
+
+        #endregion
+
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Communication/TuioServer.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,186 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Net;
+using System.Text;
+
+using Bespoke.Common.Osc;
+
+namespace Tuio
+{
+    /// <summary>
+    /// Simple, still uncomplete implementation of a TUIO server in C#.
+    /// 
+    /// Current shortcomings:
+    /// Object support missing.
+    /// Does not implement frame times.
+    /// Only supports external TUIO cursors.
+    /// Allways commits all cursors.
+    /// 
+    /// (c) 2010 by Dominik Schmidt (schmidtd@comp.lancs.ac.uk)
+    /// </summary>
+    public class TuioServer
+    {
+        #region constants
+        
+        private const string _cursorAddressPattern = "/tuio/2Dcur";
+
+        private const string _objectAddressPattern = "/tuio/2Dobj"; 
+
+        #endregion
+
+        #region fields
+
+        private IPEndPoint _ipEndPoint;
+
+        private Dictionary<int, TuioCursor> _cursors;
+
+        private int _currentFrame;
+
+        #endregion
+
+        #region constructors
+
+        /// <summary>
+        /// Creates a new server with and endpoint at localhost, port 3333.
+        /// </summary>
+        public TuioServer() : this("127.0.0.1", 3333) { }
+
+        /// <summary>
+        /// Creates a new server.
+        /// </summary>
+        /// <param name="host">Endpoint host</param>
+        /// <param name="port">Endpoint port</param>
+        public TuioServer(string host, int port)
+        {
+            _cursors = new Dictionary<int, TuioCursor>();
+            _ipEndPoint = new IPEndPoint(IPAddress.Parse(host), port);
+            _currentFrame = 0;
+        }
+
+        #endregion
+
+        #region frame related methods
+
+        /// <summary>
+        /// Initialized a new frame and increases the frame counter.
+        /// </summary>
+        public void InitFrame()
+        {
+            _currentFrame++;
+        }
+
+        /// <summary>
+        /// Commits the current frame.
+        /// </summary>
+        public void CommitFrame()
+        {
+            GetFrameBundle().Send(_ipEndPoint);
+        }
+
+        #endregion
+
+        #region cursor related methods
+        
+        /// <summary>
+        /// Adds a TUIO cursor. A new id, not used before, must be provided.
+        /// </summary>
+        /// <param name="id">New id</param>
+        /// <param name="location">Location</param>
+        public void AddTuioCursor(int id, PointF location)
+        {
+            lock(_cursors)
+                if(!_cursors.ContainsKey(id))
+                    _cursors.Add(id, new TuioCursor(id, location));
+        }
+
+        /// <summary>
+        /// Updates a TUIO cursor. An id of an existing cursor must be provided.
+        /// </summary>
+        /// <param name="id">Id</param>
+        /// <param name="location">Location</param>
+        public void UpdateTuioCursor(int id, PointF location)
+        {
+            TuioCursor cursor;
+            if(_cursors.TryGetValue(id, out cursor))
+                cursor.Location = location;
+        }
+
+        /// <summary>
+        /// Deletes a TUIO cursor. An id of an existing cursor must be provided.
+        /// </summary>
+        /// <param name="id">Id</param>
+        public void DeleteTuioCursor(int id)
+        {
+            lock (_cursors)
+                _cursors.Remove(id);
+        }
+
+        #endregion
+
+        #region osc message assembly
+
+        private OscBundle GetFrameBundle()
+        {
+            OscBundle bundle = new OscBundle(_ipEndPoint);
+
+            bundle.Append(GetAliveMessage());
+            foreach (OscMessage msg in GetCursorMessages())
+                bundle.Append(msg);
+            bundle.Append(GetSequenceMessage());
+
+            return bundle;
+        }
+
+        private OscMessage GetAliveMessage()
+        {
+            OscMessage msg = new OscMessage(_ipEndPoint, _cursorAddressPattern);
+
+            msg.Append("alive");
+            lock (_cursors)
+                foreach (TuioCursor cursor in _cursors.Values)
+                    msg.Append((Int32)cursor.Id);
+
+            return msg;
+        }
+
+        private OscMessage GetSequenceMessage()
+        {
+            OscMessage msg = new OscMessage(_ipEndPoint, _cursorAddressPattern);
+
+            msg.Append("fseq");
+            msg.Append((Int32)_currentFrame);
+
+            return msg;
+        }
+
+        private OscMessage GetCursorMessage(TuioCursor cursor)
+        {
+            OscMessage msg = new OscMessage(_ipEndPoint, _cursorAddressPattern);
+
+            msg.Append("set");
+            msg.Append((Int32)cursor.Id);
+            msg.Append(cursor.Location.X);
+            msg.Append(cursor.Location.Y);
+            msg.Append(cursor.Speed.X);
+            msg.Append(cursor.Speed.Y);
+            msg.Append(cursor.MotionAcceleration);
+
+            return msg;
+        }
+
+        private IEnumerable<OscMessage> GetCursorMessages()
+        {
+            List<OscMessage> msgs = new List<OscMessage>();
+
+            lock (_cursors)
+                foreach (TuioCursor cursor in _cursors.Values)
+                    msgs.Add(GetCursorMessage(cursor));
+
+            return msgs.AsEnumerable();
+        }
+
+        #endregion
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Debug/DebugWindow.xaml	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,66 @@
+<!--
+Projet : KINECT PROJECTS
+Module : MIDDLEWARE
+Sous-Module : Debug
+Classe : Debug
+
+Auteur : alexandre.bastien@iri.centrepompidou.fr
+
+Fonctionnalités : Affiche le rendu visuel du Middleware : Le squelette, la détection/position des mains, 
+les exceptions et la distance de l'utilisateur.
+-->
+    
+<Window x:Class="Trakers.Debug.DebugWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="DebugWindow" Height="480" Width="640" Closed="Window_Closed">
+    <Grid>
+        <Grid.RowDefinitions>
+            <RowDefinition />
+            <RowDefinition Height="30" />
+        </Grid.RowDefinitions>
+        <Grid.ColumnDefinitions>
+            <ColumnDefinition />
+            <ColumnDefinition Width="85" />
+        </Grid.ColumnDefinitions>
+
+        <!-- Ceci est le rendu visuel qui se met à jour lorsque la Kinect est allumée. -->
+        <Canvas Name="DebugCanvas" Background="Transparent">
+            <Image Name="DebugImage" Opacity="1" Grid.Row="0" Grid.Column="0"/>
+        </Canvas>
+
+        <Grid Grid.Row="0" Grid.Column="0">
+            <Grid.RowDefinitions>
+                <RowDefinition Height="40" />
+                <RowDefinition />
+            </Grid.RowDefinitions>
+            <Grid Grid.Row="0">
+                <Grid.ColumnDefinitions>
+                    <ColumnDefinition />
+                    <ColumnDefinition />
+                </Grid.ColumnDefinitions>
+
+                <!-- Cette partie permet d'afficher les mains se trouvant dans le champ de recherche. -->
+                <Label Name="LeftHand" Grid.Column="0" Background="DarkGray" FontSize="14" FontWeight="Bold" />
+                <Label Name="RightHand" Grid.Column="1" Background="DarkGray" FontSize="14" FontWeight="Bold" />
+            </Grid>
+            <!-- Cette partie permet d'afficher les erreurs survenant dans le programme. -->
+            <Label Name="ExceptionLbl" Height="30" VerticalAlignment="Bottom" Grid.Row="1" Content="" HorizontalContentAlignment="Center" />
+        </Grid>
+
+        <!-- Ce bouton permet d'allumer/éteindre la Kinect. -->
+        <Button Name="Switch" Content="ON"  Grid.Row="1" Grid.Column="0" Width="30" Click="Switch_Click" />
+
+        <!-- Ce panneau affiche la distance actuelle de l'utilisateur à la Kinect et indique une couleur pour chaque mètre. -->
+        <!-- 0-1 m : Rouge. 1-2 : Orange. 2-3 : Jaune. 3-4 : Blanc. -->
+        <StackPanel Grid.Row="0" Grid.Column="1" Name="List">
+            <Label Name="DistanceLbl" Content="Distance :" />
+            <Label Name="D1" Content="0 &lt; D &lt; 1" />
+            <Rectangle Name="R1" Height="70" Fill="DarkGray" />
+            <Label Name="D2" Content="1 &lt; D &lt; 2" />
+            <Rectangle Name="R2" Height="70" Fill="DarkGray" />
+            <Label Name="D3" Content="2 &lt; D &lt; 3" />
+            <Rectangle Name="R3" Height="70" Fill="DarkGray" />
+            <Label Name="D4" Content="3 &lt; D &lt; 4" />
+            <Rectangle Name="R4" Height="70" Fill="DarkGray" />
+        </StackPanel>
+    </Grid>
+</Window>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Debug/DebugWindow.xaml.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,315 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Debug
+ * Classe : DebugWindow
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Reçoit des notifications des sous-modules Tracking, Communication et Exception.
+ * Intéragit avec la fenêtre XAML de debug de façon à afficher un rendu visuel.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Drawing;
+using System.Windows.Media.Media3D;
+using Microsoft.Kinect;
+
+using Coding4Fun.Kinect.Wpf;
+
+using Trakers.Tracking;
+using System.Threading;
+
+namespace Trakers.Debug
+{
+    public partial class DebugWindow : Window
+    {
+        //Membre permettant d'atteindre la classe KinectMain du sous-module Tracking.
+        private KinectMain kinectMain;
+        //Tableau contenant une image en couleurs.
+        private byte[] colorPixelData;
+        //Indique si la kinect est allumée/éteinte.
+        private bool on;
+        //Indique si la fenêtre de debug est actuellement en cours de fermeture.
+        private bool closing;
+
+        /*
+        * Constructeur : Affiche la fenêtre de debug en lui passant en paramètre une instanciation de la
+        * classe KinectMain.
+        * Au départ, la kinect est éteinte.
+        */
+        public DebugWindow(KinectMain main)
+        {
+            InitializeComponent();
+            kinectMain = main;
+            on = false;
+            closing = false;
+        }
+
+        /*
+        * Getter pour le membre indiquant la fermeture de la fenêtre de debug.
+        */
+        public bool isClosing()
+        {
+            return closing;
+        }
+
+        /*
+        * Est appelée à la fermeture de la fenêtre.
+        */
+        private void Window_Closed(object sender, EventArgs e)
+        {
+            closing = true;
+            //On éteint la Kinect (pour éviter qu'elle reste allumée même lorsque le programme est éteint).
+            kinectMain.KinectClose();
+        }
+
+        /*
+        * Bouton ON/OFF.
+        */
+        private void Switch_Click(object sender, RoutedEventArgs e)
+        {
+            //S'il valait faux, il vaut vrai maintenant et inversement.
+            on = !on;
+            //Si la kinect est allumée.
+            if (on)
+            {
+                //Il affiche OFF (pour éteindre la kinect).
+                Switch.Content = "OFF";
+                //On vide le label des exceptions.
+                ExceptionLbl.Content = "";
+                //On initialise la Kinect.
+                kinectMain.KinectInitialization();
+            }
+            else
+            {
+                //Il affiche ON (pour allumer la kinect).
+                Switch.Content = "ON";
+                //On remet à zéro tous les éléments du retour visuel.
+                R1.Fill = System.Windows.Media.Brushes.DarkGray;
+                R2.Fill = System.Windows.Media.Brushes.DarkGray;
+                R3.Fill = System.Windows.Media.Brushes.DarkGray;
+                R4.Fill = System.Windows.Media.Brushes.DarkGray;
+                DistanceLbl.Content = "Distance :";
+                LeftHand.Background = System.Windows.Media.Brushes.DarkGray;
+                LeftHand.Content = "";
+                RightHand.Background = System.Windows.Media.Brushes.DarkGray;
+                RightHand.Content = "";
+                DebugCanvas.Children.RemoveRange(1, DebugCanvas.Children.Count - 1);
+                //On éteint la Kinect.
+                kinectMain.KinectClose();
+            }
+        }
+
+        /*
+        *  Récupère le flux video et met à jour le rendu visuel de debug.
+        */
+        public void RefreshVideo(AllFramesReadyEventArgs e)
+        {
+            bool receivedData = false;
+            ColorImageFrame colorImageFrameData;
+            using (colorImageFrameData = e.OpenColorImageFrame())
+            {
+                //Si on ne reçoit pas de trames de la kinect.
+                if (colorImageFrameData == null)
+                {
+                    //L'image est supprimée.
+                    DebugImage.Source = null;
+                }
+                //Si le tableau stockant l'image en cours est nul.
+                if (colorPixelData == null)
+                    //On alloue un nouveau tableau.
+                    colorPixelData = new byte[colorImageFrameData.PixelDataLength];
+                else
+                {
+                    //Sinon on met à jour le tableau en copiant le contenu de la trame dans le tableau.
+                    colorImageFrameData.CopyPixelDataTo(colorPixelData);
+                    receivedData = true;
+                }
+            }
+            //Si on a des données dans le tableau et que la kinect est allumée.
+            if (receivedData && on)
+            {
+                //On met à jour l'image de la caméra.
+                DebugImage.Source = BitmapSource.Create(colorImageFrameData.Width, colorImageFrameData.Height, 96, 96, PixelFormats.Bgr32, null, colorPixelData, colorImageFrameData.Width * colorImageFrameData.BytesPerPixel);
+                DebugImage.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
+                DebugImage.VerticalAlignment = System.Windows.VerticalAlignment.Center;
+                DebugImage.Stretch = Stretch.Fill;
+            }
+        }
+
+        /*
+        * Affiche la distance de l'utilisateur dans le rendu visuel.
+        * Sous forme de nombre en m et de rectangles changeant de couleur en fonction de la distance.
+        */
+        public void showDistance(float distance)
+        {
+            DistanceLbl.Content = "Distance : " + distance;
+
+            if (distance > 0 && distance < 1)
+            {
+                R1.Fill = System.Windows.Media.Brushes.Red;
+                R2.Fill = System.Windows.Media.Brushes.DarkGray;
+                R3.Fill = System.Windows.Media.Brushes.DarkGray;
+                R4.Fill = System.Windows.Media.Brushes.DarkGray;
+            }
+            else if (distance > 1 && distance < 2)
+            {
+                R1.Fill = System.Windows.Media.Brushes.DarkGray;
+                R2.Fill = System.Windows.Media.Brushes.Orange;
+                R3.Fill = System.Windows.Media.Brushes.DarkGray;
+                R4.Fill = System.Windows.Media.Brushes.DarkGray;
+            }
+            else if (distance > 2 && distance < 3)
+            {
+                R1.Fill = System.Windows.Media.Brushes.DarkGray;
+                R2.Fill = System.Windows.Media.Brushes.DarkGray;
+                R3.Fill = System.Windows.Media.Brushes.Yellow;
+                R4.Fill = System.Windows.Media.Brushes.DarkGray;
+            }
+            else if (distance > 3 && distance < 4)
+            {
+                R1.Fill = System.Windows.Media.Brushes.DarkGray;
+                R2.Fill = System.Windows.Media.Brushes.DarkGray;
+                R3.Fill = System.Windows.Media.Brushes.DarkGray;
+                R4.Fill = System.Windows.Media.Brushes.White;
+            }
+        }
+
+        /*
+        * Affiche la détection de la main droite via un label.
+        */
+        public void showRightHandRect(bool show)
+        {
+            if (show)
+                RightHand.Background = System.Windows.Media.Brushes.Blue;
+            else
+                RightHand.Background = System.Windows.Media.Brushes.DarkGray;
+        }
+
+        /*
+        * Affiche la détection de la main gauche via un label.
+        */
+        public void showLeftHandRect(bool show)
+        {
+            if (show)
+                LeftHand.Background = System.Windows.Media.Brushes.Blue;
+            else
+                LeftHand.Background = System.Windows.Media.Brushes.DarkGray;
+        }
+
+        /*
+        * Dessine les noeuds du squelette dans le rendu visuel.
+        */
+        public void drawJoints(JointCollection joints, Skeleton first)
+        {
+            //On enlève tout élément du Canvas à part l'image, de manière à mettre à jour la position du squelette. 
+            DebugCanvas.Children.RemoveRange(1, DebugCanvas.Children.Count - 1);
+
+            //Pour chaque noeud.
+            foreach (Joint joint in first.Joints)
+            {
+                //On crée une ellipse de taille 20 et de largeur 20.
+                Ellipse node = new Ellipse();
+                node.Height = 20;
+                node.Width = 20;
+
+                //S'il s'agit d'un noeud de tête, on le colorie en rouge, sinon en bleu.
+                if (joint.JointType == JointType.Head)
+                    node.Fill = System.Windows.Media.Brushes.Red;
+                else if(joint.JointType == JointType.ShoulderCenter)
+                    node.Fill = System.Windows.Media.Brushes.Green;
+                else if(joint.JointType == JointType.HipCenter)
+                    node.Fill = System.Windows.Media.Brushes.Green;
+                else if (joint.JointType == JointType.HandRight)
+                    node.Fill = System.Windows.Media.Brushes.Red;
+                else
+                    node.Fill = System.Windows.Media.Brushes.Blue;
+
+                //On met à la bonne échelle les coordonnées des positions des noeuds.
+                Joint scaledJoint = Coding4Fun.Kinect.Wpf.SkeletalExtensions.ScaleTo(joint, 600, 400, 0.75f, 0.75f);
+
+                //On positionne le noeud dans le Canvas, et on l'ajoute.
+                Canvas.SetLeft(node, scaledJoint.Position.X);
+                Canvas.SetTop(node, scaledJoint.Position.Y);
+                DebugCanvas.Children.Add(node);
+            }
+        }
+
+        /*
+        * Dessine un os, en ayant en paramètres deux noeuds.
+        */
+        public void drawBone(Joint j1, Joint j2)
+        {
+            //On crée une nouvelle ligne verte d'épaisseur 8 entre les deux noeuds et on l'ajoute au Canvas.
+            Line line = new Line();
+            line.Stroke = System.Windows.Media.Brushes.Green;
+            line.X1 = j1.Position.X;
+            line.X2 = j2.Position.X;
+            line.Y1 = j1.Position.Y;
+            line.Y2 = j2.Position.Y;
+            line.StrokeThickness = 8;
+            DebugCanvas.Children.Add(line);
+        }
+
+        /*
+        * Dessine le squelette (ensemble des os), en ayant en paramètres tous les noeuds.
+        */
+        public void showSkeleton(Joint hipCenter, Joint spine, Joint shoulderCenter, Joint head, Joint shoulderLeft, Joint elbowLeft, Joint wristLeft, Joint handLeft, Joint shoulderRight, Joint elbowRight, Joint wristRight, Joint handRight, Joint hipLeft, Joint kneeLeft, Joint ankleLeft, Joint footLeft, Joint hipRight, Joint kneeRight, Joint ankleRight, Joint footRight)
+        {
+            //On met les noeuds deux par deux en fonction de leur position dans le squelette.
+            drawBone(head, shoulderCenter);
+            drawBone(shoulderCenter, shoulderLeft);
+            drawBone(shoulderLeft, elbowLeft);
+            drawBone(elbowLeft, wristLeft);
+            drawBone(wristLeft, handLeft);
+            drawBone(shoulderCenter, shoulderRight);
+            drawBone(shoulderRight, elbowRight);
+            drawBone(elbowRight, wristRight);
+            drawBone(wristRight, handRight);
+            drawBone(shoulderCenter, spine);
+            drawBone(spine, hipCenter);
+            drawBone(hipCenter, hipLeft);
+            drawBone(hipLeft, kneeLeft);
+            drawBone(kneeLeft, ankleLeft);
+            drawBone(ankleLeft, footLeft);
+            drawBone(hipCenter, hipRight);
+            drawBone(hipRight, kneeRight);
+            drawBone(kneeRight, ankleRight);
+            drawBone(ankleRight, footRight);
+        }
+
+        /*
+        * Affiche la position de la main gauche dans le rendu visuel.
+        */
+        public void showLeftHandCoord(String coord)
+        {
+            LeftHand.Content = coord;
+        }
+
+        /*
+        * Affiche la position de la main gauche dans le rendu visuel.
+        */
+        public void showRightHandCoord(String coord)
+        {
+            RightHand.Content = coord;
+        }
+
+        public void showSwipe()
+        {
+            ExceptionLbl.Background = System.Windows.Media.Brushes.Red;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/MainClass.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,35 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Classe : MainClass
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Classe principale du Middleware, elle lance le sous-module Tracking en instanciant la classe
+ * KinectMain.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using Trakers.Debug;
+using Trakers.Tracking;
+using Trakers.Communication;
+using System.Windows.Media.Media3D;
+using System.Drawing;
+using System.Threading;
+using System.IO;
+
+namespace Trakers
+{
+    public class MainClass
+    {
+        [STAThread]
+        public static void Main()
+        {
+            KinectMain kinectMain = new KinectMain();
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Properties/AssemblyInfo.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Mid-Dist")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Mid-Dist")]
+[assembly: AssemblyCopyright("Copyright ©  2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+//In order to begin building localizable applications, set 
+//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
+//inside a <PropertyGroup>.  For example, if you are using US english
+//in your source files, set the <UICulture> to en-US.  Then uncomment
+//the NeutralResourceLanguage attribute below.  Update the "en-US" in
+//the line below to match the UICulture setting in the project file.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+    ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+    //(used if a resource is not found in the page, 
+    // or application resource dictionaries)
+    ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+    //(used if a resource is not found in the page, 
+    // app, or any theme specific resource dictionaries)
+)]
+
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Properties/Resources.Designer.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.239
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Trakers.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Trakers.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Properties/Resources.resx	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Properties/Settings.Designer.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.239
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Trakers.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Properties/Settings.settings	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Events/LeftHandQuitEventArgs.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,40 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Tracking
+ * Classe : LeftHandQuitEventArgs
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Cette classe contient les membres utilisés lors de l'appel au listener correspondant
+ * à l'événement : La main gauche est sortie du champ.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Kinect;
+using Trakers.Communication;
+
+namespace Trakers.Tracking.Events
+{
+    public class LeftHandQuitEventArgs : EventArgs
+    {
+        public readonly Joint handJoint;
+        public readonly float position;
+        public readonly Debug.DebugWindow debug;
+        public readonly Server server;
+
+        /*
+        * Constructeur : Il prend le noeud de la main, sa position, l'affichage de debug et le serveur TUIO.
+        */
+        public LeftHandQuitEventArgs(Joint joint, float pos, Debug.DebugWindow _debug, Server _server)
+        {
+            handJoint = joint;
+            position = pos;
+            debug = _debug;
+            server = _server;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Events/LeftHandQuitListener.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,39 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Tracking
+ * Classe : LeftHandQuitListener
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Ce listener écoute l'événement du type : La main gauche est sortie du champ.
+ * Il contient le code a être éxecuté au cas cet événement survient, à savoir :
+ * - On affiche un visuel dans le debug.
+ * - On notifie le serveur TUIO.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Kinect;
+
+namespace Trakers.Tracking.Events
+{
+    public class LeftHandQuitListener
+    {
+        /*
+        * Méthode appelée lorsque on a l'événement : La main gauche est sortie du champ.
+        */
+        public void ShowOnScreen(object o, LeftHandQuitEventArgs e)
+        {
+            Joint handJoint = e.handJoint;
+            //On l'indique dans le debug.
+            e.debug.showLeftHandRect(false);
+            e.debug.showLeftHandCoord("");
+            e.debug.ExceptionLbl.Background = System.Windows.Media.Brushes.Transparent;
+            //On notifie le serveur TUIO.
+            e.server.LeftHandQuit(o, e);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Events/LeftHandTrackedEventArgs.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,40 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Tracking
+ * Classe : LeftHandTrackedEventArgs
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Cette classe contient les membres utilisés lors de l'appel au listener correspondant
+ * à l'événement : La main gauche est entrée dans le champ.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Kinect;
+using Trakers.Communication;
+
+namespace Trakers.Tracking.Events
+{
+    public class LeftHandTrackedEventArgs : EventArgs
+    {
+        public readonly Joint handJoint;
+        public readonly float position;
+        public readonly Debug.DebugWindow debug;
+        public readonly Server server;
+
+        /*
+        * Constructeur : Il prend le noeud de la main, sa position, l'affichage de debug et le serveur TUIO.
+        */
+        public LeftHandTrackedEventArgs(Joint joint, float pos, Debug.DebugWindow _debug, Server _server)
+        {
+            handJoint = joint;
+            position = pos;
+            debug = _debug;
+            server = _server;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Events/LeftHandTrackedListener.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,38 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Tracking
+ * Classe : LeftHandTrackedListener
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Ce listener écoute l'événement du type : La main gauche est entrée dans le champ.
+ * Il contient le code a être éxecuté au cas cet événement survient, à savoir :
+ * - On affiche un visuel dans le debug.
+ * - On notifie le serveur TUIO.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Kinect;
+
+namespace Trakers.Tracking.Events
+{
+    public class LeftHandTrackedListener
+    {
+        /*
+        * Méthode appelée lorsque on a l'événement : La main gauche est entrée dans le champ.
+        */
+        public void ShowOnScreen(object o, LeftHandTrackedEventArgs e)
+        {
+            Joint handJoint = e.handJoint;
+            //On l'indique dans le debug.
+            e.debug.showLeftHandRect(true);
+            e.debug.showLeftHandCoord("(" + handJoint.Position.X + ";" + handJoint.Position.Y + ")");
+            //On notifie le serveur TUIO.
+            e.server.LeftHandTracked(o, e);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Events/RightHandQuitEventArgs.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,40 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Tracking
+ * Classe : RightHandQuitEventArgs
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Cette classe contient les membres utilisés lors de l'appel au listener correspondant
+ * à l'événement : La main droite est sortie du champ.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Kinect;
+using Trakers.Communication;
+
+namespace Trakers.Tracking.Events
+{
+    public class RightHandQuitEventArgs : EventArgs
+    {
+        public readonly Joint handJoint;
+        public readonly float position;
+        public readonly Debug.DebugWindow debug;
+        public readonly Server server;
+
+        /*
+        * Constructeur : Il prend le noeud de la main, sa position, l'affichage de debug et le serveur TUIO.
+        */
+        public RightHandQuitEventArgs(Joint joint, float pos, Debug.DebugWindow _debug, Server _server)
+        {
+            handJoint = joint;
+            position = pos;
+            debug = _debug;
+            server = _server;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Events/RightHandQuitListener.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,38 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Tracking
+ * Classe : RightHandQuitListener
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Ce listener écoute l'événement du type : La main droite est sortie du champ.
+ * Il contient le code a être éxecuté au cas cet événement survient, à savoir :
+ * - On affiche un visuel dans le debug.
+ * - On notifie le serveur TUIO.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Kinect;
+
+namespace Trakers.Tracking.Events
+{
+    public class RightHandQuitListener
+    {
+        /*
+        * Méthode appelée lorsque on a l'événement : La main droite est sortie du champ.
+        */
+        public void ShowOnScreen(object o, RightHandQuitEventArgs e)
+        {
+            Joint handJoint = e.handJoint;
+            //On l'indique dans le debug.
+            e.debug.showRightHandRect(false);
+            e.debug.showRightHandCoord("");
+            //On notifie le serveur TUIO.
+            e.server.RightHandQuit(o, e);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Events/RightHandTrackedEventArgs.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,40 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Tracking
+ * Classe : RightHandTrackedEventArgs
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Cette classe contient les membres utilisés lors de l'appel au listener correspondant
+ * à l'événement : La main droite est entrée dans le champ.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Kinect;
+using Trakers.Communication;
+
+namespace Trakers.Tracking.Events
+{
+    public class RightHandTrackedEventArgs : EventArgs
+    {
+        public readonly Joint handJoint;
+        public readonly float position;
+        public readonly Debug.DebugWindow debug;
+        public readonly Server server;
+
+        /*
+        * Constructeur : Il prend le noeud de la main, sa position, l'affichage de debug et le serveur TUIO.
+        */
+        public RightHandTrackedEventArgs(Joint joint, float pos, Debug.DebugWindow _debug, Server _server)
+        {
+            handJoint = joint;
+            position = pos;
+            debug = _debug;
+            server = _server;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Events/RightHandTrackedListener.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,38 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Tracking
+ * Classe : RightHandTrackedListener
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Ce listener écoute l'événement du type : La main droite est entrée dans le champ.
+ * Il contient le code a être éxecuté au cas cet événement survient, à savoir :
+ * - On affiche un visuel dans le debug.
+ * - On notifie le serveur TUIO.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Kinect;
+
+namespace Trakers.Tracking.Events
+{
+    public class RightHandTrackedListener
+    {
+        /*
+        * Méthode appelée lorsque on a l'événement : La main droite est entrée dans le champ.
+        */
+        public void ShowOnScreen(object o, RightHandTrackedEventArgs e)
+        {
+            Joint handJoint = e.handJoint;
+            //On l'indique dans le debug.
+            e.debug.showRightHandRect(true);
+            e.debug.showRightHandCoord("(" + handJoint.Position.X + ";" + handJoint.Position.Y + ")");
+            //On notifie le serveur TUIO.
+            e.server.RightHandTracked(o, e);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Events/SwipeEventArgs.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Trakers.Communication;
+using Trakers.Tracking.Gestures;
+
+namespace Trakers.Tracking.Events
+{
+    public class SwipeEventArgs : EventArgs
+    {
+        //Fenêtre de debug.
+        public readonly Debug.DebugWindow debug;
+        //Serveur TUIO.
+        public readonly Server server;
+        //Direction du swipe.
+        public readonly SwipeDetector.Direction direction;
+
+        /*
+        * Constructeur : Il prend l'affichage de debug, le serveur TUIO et la direction du swipe.
+        */
+        public SwipeEventArgs(Debug.DebugWindow _debug, Server _server, SwipeDetector.Direction _direction)
+        {
+            debug = _debug;
+            server = _server;
+            direction = _direction;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Events/SwipeEventListener.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+
+namespace Trakers.Tracking.Events
+{
+    public class SwipeEventListener
+    {
+        /*
+        * Méthode appelée lorsque on a l'événement : L'utilisateur a effectué un swipe.
+        */
+        public void ShowOnScreen(object o, SwipeEventArgs e)
+        {
+            //On l'indique dans le debug.
+            e.debug.showSwipe();
+            //e.debug.ExceptionLbl.Content = "SWIPE";
+            //On notifie le serveur TUIO.
+            //e.server.LeftHandQuit(o, e);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Gestures/GestureDetector.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,139 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Kinect;
+using System.Drawing;
+
+namespace Trakers.Tracking.Gestures
+{
+    public class GestureDetector
+    {
+        //Historique des positions du squelette.
+        protected List<List<Joint>> history = new List<List<Joint>>();
+        //protected JointCollection previousSkeleton;
+
+        //Voici les ID des noeuds d'un squelette.
+        protected int hipCenterID = 0, spineID = 1, shoulderCenterID = 2, headID = 3;
+        protected int shoulderLeftID = 4, elbowLeftID = 5, wristLeftID = 6, handLeftID = 7;
+        protected int shoulderRightID = 8, elbowRightID = 9, wristRightID = 10, handRightID = 11;
+        protected int hipLeftID = 12, kneeLeftID = 13, ankleLeftID = 14, footLeftID = 15;
+        protected int hipRightID = 16, kneeRightID = 17, ankleRightID = 18, footRightID = 19;
+
+        //Elements nécessaires à la reconnaissance du geste :
+        //Distance du parcours du geste (va dépendre de la distance de l'utilisateur).
+        protected float refDistance;
+        //Position de départ pour le geste.
+        protected SkeletonPoint startPoint;
+        //Estimation du temps que prend la gesture (en s).
+        protected float gesturePeriod = 1;
+        //Estimation du nombre d'indexes par seconde (framerate).
+        protected int indexesPerSecond = 30;
+        //Estimation du nombre de positions du squelette à vérifier dans l'historique.
+        protected int indexesToCheck;// = gesturePeriod * indexesPerSecond;
+
+        public GestureDetector()
+        {
+            
+        }
+
+        //Setters.
+        public void setRefDistance(float _refDistance)
+        {
+            refDistance = _refDistance;
+        }
+        public void setStartPoint(SkeletonPoint _startPoint)
+        {
+            startPoint = _startPoint;
+        }
+        public void setGesturePeriod(float _gesturePeriod)
+        {
+            gesturePeriod = _gesturePeriod;
+        }
+        public void setIndexesPerSecond(int _indexesPerSecond)
+        {
+            indexesPerSecond = _indexesPerSecond;
+        }
+        public void setIndexesToCheck(int _indexesToCheck)
+        {
+            indexesToCheck = _indexesToCheck;
+        }
+
+        //Getters.
+        public float getRefDistance()
+        {
+            return refDistance;
+        }
+        public SkeletonPoint getStartPoint()
+        {
+            return startPoint;
+        }
+        public float getGesturePeriod()
+        {
+            return gesturePeriod;
+        }
+        public int getIndexesPerSecond()
+        {
+            return indexesPerSecond;
+        }
+        public int getIndexesToCheck()
+        {
+            return indexesToCheck;
+        } 
+
+        //Stocke les gestes du skelette pour ~3 seconds (si on prend en compte que le framerate de la Kinect
+        //est de ~30 fps.
+        public void UpdateSkeletonHistory(List<Joint> latestSkeleton)
+        {
+            /*if (previousSkeleton == null)
+                previousSkeleton = latestSkeleton;
+            else if (previousSkeleton != latestSkeleton)
+            {*/
+                history.Add(latestSkeleton);
+                /*if (history.Count > 3)
+                {
+                    System.Console.WriteLine(history[0][0].Position.X + " " + history[1][0].Position.X + " " + history[2][0].Position.X);
+                }*/
+                if (history.Count > 90)
+                {
+                    history.RemoveAt(0);
+                }
+            //}
+        }
+
+        /*public bool CheckForHandWave()
+        {
+            //Crée un historique de squelette local, puisque l'historique est mis à jour toutes les ~1/30 s.
+            List<Skeleton> history = new List<Skeleton>(history);
+            //Si il n'y a pas assez de positions dans l'historique local pour vérifier le geste.
+            if (history.Count < indexesToCheck)
+                return false;
+
+            float refDistance = Math.Abs(history[0].Joints.ElementAt(spineID).Position.Y - history[0].Joints.ElementAt(hipCenterID).Position.Y);
+            float startPos = history[history.Count - indexesToCheck].Joints.ElementAt(handRightID).Position.X;
+            bool movedRight = false;
+            for (int i = history.Count - indexesToCheck + 1; i < history.Count; i++)
+            {
+                // Throughout the gesture period, right hand should be above theelbow, below the head and hand should be higher than the wrist
+                if (!(history[i].Joints[JointID.HandRight].Position.Y > history[i].Joints[JointID.ElbowRight].Position.Y + refDistance &&
+                history[i].Joints[JointID.HandRight].Position.Y < history[i].Joints[JointID.Head].Position.Y &&
+                history[i].Joints[JointID.HandRight].Position.Y > history[i].Joints[JointID.WristRight].Position.Y + refDistance / 4))
+                {
+                    return false;
+                }
+                // If the previous condition was met, check if the hand has moved to the right
+                if (history[i].Joints[JointID.HandRight].Position.X >= startPos + refDistance / 2 && !movedRight)
+                {
+                    movedRight = true;
+                }
+                // If the hand did move to the right, check if it returned near the original position
+                if (movedRight && history[i].Joints[JointID.HandRight].Position.X <= startPos + refDistance / 5)
+                {
+                    skeletonHistory.Clear();
+                    return true;
+                }
+            }
+                return false;
+        }*/
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/Gestures/SwipeDetector.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Kinect;
+
+namespace Trakers.Tracking.Gestures
+{
+    public class SwipeDetector : GestureDetector
+    {
+        public enum Direction {LEFT, RIGHT, TOP, DOWN};
+
+        public SwipeDetector() : base()
+        {
+            gesturePeriod = (float)0.5;
+            indexesPerSecond = 30;
+            indexesToCheck = (int)(gesturePeriod * indexesPerSecond);
+        }
+
+        /*
+         * Lit les noeuds de l'historique du squelette afin de détecter un Swipe left.
+         * Règles :
+         * Se fait avec la main droite.
+         * Chaque nouvelle position de la main doit être à la gauche de la précédente.
+         * Chaque nouvelle position de la main ne doit pas s'éloigner verticalement de plus d'une certaine distance.
+         * Le geste doit mesurer horizontalement une certaine distance.
+         */
+        public bool CheckForSwipeLeft()
+        {
+            //Crée un historique de squelette local, puisque l'historique est mis à jour toutes les ~1/30 s.
+            //List<Skeleton> history = new List<Skeleton>(history);
+
+            /*for (int i = 0; i < history.Count; i++)
+                System.Console.Out.WriteLine(history[i].Joints.ElementAt(handRightID).Position.X);
+            System.Console.Out.WriteLine("========================");*/
+
+            //Si il n'y a pas assez de positions dans l'historique local pour vérifier le geste.
+            if (history.Count < indexesToCheck+1)
+                return false;
+            //Console.ReadLine();
+
+            //La distance de référence est ici la distance entre le milieu du dos et le milieu des épaules.
+            refDistance = Math.Abs(history[0][spineID].Position.Y - history[0][shoulderCenterID].Position.Y);
+            //On commence la position pour les indexesToCheck dernières postures (celle à l'index 0 étant la dernière).
+            startPoint = history[history.Count - indexesToCheck][handRightID].Position;
+
+            //De la position p1 à pn, on suit l'algorithme.
+            Console.Out.WriteLine("=================================");
+            for (int i = history.Count - indexesToCheck + 1; i < history.Count; i++)
+            {
+                System.Console.Out.WriteLine("hand:head " + history[i][handRightID].Position.Y + " <= " + history[i][headID].Position.Y + " && "
+                + "hand:hip " + history[i][handRightID].Position.Y + " >= " + history[i][hipCenterID].Position.Y + " && "
+                + "handX:handX-1 " + history[i][handRightID].Position.X + " <= " + history[i - 1][handRightID].Position.X + " && "
+                + "hand0:handN " + Math.Abs(history[i][handRightID].Position.Y - startPoint.Y) + " <= " + refDistance / 2);
+
+                //Si la position Y de la main est supérieure à celle de l'épaule
+                //OU si la position Y de la main est inférieure à celle de la hanche
+                //OU si la nouvelle position X de la main est à droite de la précédente
+                //OU si la nouvelle position Y de la main est plus éloignée de la distance N par rapport à la première position Y
+                //Alors on retourne faux.
+                if (history[i][handRightID].Position.Y > history[i][headID].Position.Y ||
+                history[i][handRightID].Position.Y < history[i][hipCenterID].Position.Y ||
+                history[i][handRightID].Position.X > history[i - 1][handRightID].Position.X ||
+                Math.Abs(history[i][handRightID].Position.Y - startPoint.Y) > refDistance/2)
+                    return false;
+            }
+            Console.Out.WriteLine("=================================");
+            Console.ReadLine();
+            //Si la distance horizontale du geste a été plus courte que la distance N
+            //Alors on retourne faux.
+            float dist = (history[history.Count - 1][handRightID].Position.X - history[history.Count - indexesToCheck][handRightID].Position.X);
+            
+            //System.Console.Out.WriteLine(history[0].Joints.ElementAt(handRightID).Position.X + " " + history[1].Joints.ElementAt(handRightID).Position.X + " " + history[2].Joints.ElementAt(handRightID).Position.X);
+            //System.Console.Out.WriteLine(history[0].Joints.ElementAt(handRightID).Position.X + " " + history[1].Joints.ElementAt(handRightID).Position.X + " " + history[2].Joints.ElementAt(handRightID).Position.X);
+            System.Console.Out.WriteLine(Math.Abs(history[0][handRightID].Position.X - history[history.Count - indexesToCheck][handRightID].Position.X) + " < " + refDistance*1.5);
+            if (Math.Abs(history[0][handRightID].Position.X - history[history.Count - indexesToCheck][handRightID].Position.X) < refDistance*1.5)
+                return false;
+
+            history.Clear();
+            Console.Out.WriteLine("SWIPE LEF");
+            Console.ReadLine();
+            return true;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Tracking/KinectMain.cs	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,455 @@
+/*
+ * Projet : KINECT PROJECTS
+ * Module : MIDDLEWARE
+ * Sous-Module : Tracking
+ * Classe : KinectMain
+ * 
+ * Auteur : alexandre.bastien@iri.centrepompidou.fr
+ * 
+ * Fonctionnalités : Récupère les trames de données de la Kinect, les squelettes détectés via le SDK 1.0 de Microsoft.
+ * Interprète ces trames de façon à afficher le flux vidéo couleurs, et récupérer la distance de l'utilisateur et les
+ * noeuds de son squelette. Lance des événements lorsque la main gauche/droite entre dans/quitte le champ.
+ * Envoie des données au sous-module de debug de manière a afficher un retour visuel sur la position de l'utilisateur,
+ * son squelette, la détection de ses mains.
+ */
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Drawing;
+using System.Windows.Media.Media3D;
+using Microsoft.Kinect;
+
+using Coding4Fun.Kinect.Wpf;
+using System.ComponentModel;
+
+using Trakers.Debug;
+using Tuio;
+using Trakers.Communication;
+using System.IO;
+using Trakers.Tracking.Gestures;
+using Trakers.Tracking.Events;
+using System.Configuration;
+using Kinect.Toolbox;
+
+namespace Trakers.Tracking
+{
+    //Il s'agit des fonctions permettant d'appeler les fonctions des événements Main droite/gauche entre/quitte le champ.
+    public delegate void LeftHandTrackedHandler(object o, LeftHandTrackedEventArgs e);
+    public delegate void RightHandTrackedHandler(object o, RightHandTrackedEventArgs e);
+    public delegate void LeftHandQuitHandler(object o, LeftHandQuitEventArgs e);
+    public delegate void RightHandQuitHandler(object o, RightHandQuitEventArgs e);
+    //Il s'agit des fonctions permettant d'appeler les fonctions des événements Swipe left/right/up/down.
+    public delegate void SwipeHandler(object o, SwipeEventArgs e);
+
+    public class KinectMain
+    {
+        //Fenêtre de debug.
+        private Debug.DebugWindow debug;
+        //Squelettes (Il y en a 6 par défaut).
+        private Skeleton[] skeletons;
+        //Caméra infrarouge (sensor) de la Kinect.
+        private KinectSensor kinectSensor;
+
+        //Détecteur de gestes.
+        private SwipeDetector swipeDetector;
+
+        //Distances min/max délimitant le champ de recherche.
+        private float minDistHands;
+        private float maxDistHands;
+
+        //Serveur TUIO pour la connexion du Middleware vers le Front Atelier.
+        private Server server;
+
+        //Les événements des mains pour la recherche.
+        public static event LeftHandTrackedHandler LeftHandTrackedEvent;
+        public static event RightHandTrackedHandler RightHandTrackedEvent;
+        public static event LeftHandQuitHandler LeftHandQuitEvent;
+        public static event RightHandQuitHandler RightHandQuitEvent;
+        //Les événements swipe.
+        public static event SwipeHandler SwipeEvent;
+            
+        //Voici les ID des noeuds d'un squelette.
+        private int hipCenterID = 0, spineID = 1, shoulderCenterID = 2, headID = 3;
+        private int shoulderLeftID = 4, elbowLeftID = 5, wristLeftID = 6, handLeftID = 7;
+        private int shoulderRightID = 8, elbowRightID = 9, wristRightID = 10, handRightID = 11;
+        private int hipLeftID = 12, kneeLeftID = 13, ankleLeftID = 14, footLeftID = 15;
+        private int hipRightID = 16, kneeRightID = 17, ankleRightID = 18, footRightID = 19;
+
+        /*
+        *  Initialisation de la classe principale.
+        *  Affiche l'écran de debug dans lequel on voit la distance à la Kinect,
+        *  les mains détectées et le squelette de l'utilisateur.
+        */
+        public KinectMain()
+        {
+            //On crée la fenêtre de debug.
+            debug = new Debug.DebugWindow(this);
+            
+            //On crée le détecteur de gestes.
+            swipeDetector = new SwipeDetector();
+
+            //On tente de charger les paramètres du fichier params.ini.
+            //Si on n'y arrive pas, on affiche une erreur et on charge les paramètres par défaut.
+            if (!loadParameters())
+            {
+                debug.ExceptionLbl.Content = "Impossible de charger les paramètres. Paramètres par défaut.";
+                //Distances de détection des mains par défaut pour la recherche (ici de 1m à 2m de la Kinect).
+                minDistHands = (float)1.0;
+                maxDistHands = (float)1.5;
+            }
+            else if (maxDistHands <= 0 || minDistHands <= 0 || maxDistHands > 4 || minDistHands > 4 || minDistHands >= maxDistHands)
+            {
+                debug.ExceptionLbl.Content = "Paramètres incorrects. Paramètres par défaut.";
+                //Distances de détection des mains par défaut pour la recherche (ici de 1m à 2m de la Kinect).
+                minDistHands = (float)1.0;
+                maxDistHands = (float)1.5;
+            }
+
+            //On affiche la fenêtre de debug.
+            try
+            {
+                debug.ShowDialog();
+            }
+            catch(Exception){}
+        }
+
+        /*
+        *  Initialisation du sensor de la Kinect.
+        */
+        public void KinectInitialization()
+        {
+            try
+            {
+                //On sélectionne la première kinect détectée.
+                kinectSensor = KinectSensor.KinectSensors.FirstOrDefault(s => s.Status == KinectStatus.Connected);
+                //La caméra couleur est activée avec une résolution 640x480 et un framerate de 30 FPS.
+                kinectSensor.ColorStream.Enable(ColorImageFormat.RgbResolution640x480Fps30);
+                //La caméra de profondeur est activée.
+                kinectSensor.DepthStream.Enable();
+                //Le squelette est activé.
+                kinectSensor.SkeletonStream.Enable();
+
+                //Quand le Middleware reçoit des trames de la Kinect, on va dans cette fonction.
+                kinectSensor.AllFramesReady += new EventHandler<AllFramesReadyEventArgs>(AllFramesReady);
+
+                //On démarre la Kinect.
+                kinectSensor.Start();
+                debug.ExceptionLbl.Content = "";
+            }
+            catch (System.Exception)
+            {
+                debug.ExceptionLbl.Content = "Kinect non connectée.";
+            }
+
+            //Pour les événements main gauche/droite entre dans/quitte le champ, on a 4 listeners.
+            //Fonction appelée lorsque la main gauche entre dans le champ de recherche.
+            LeftHandTrackedListener leftHandTrackedListener = new LeftHandTrackedListener();
+            LeftHandTrackedEvent += new LeftHandTrackedHandler(leftHandTrackedListener.ShowOnScreen);
+
+            //Fonction appelée lorsque la main droite entre dans le champ de recherche.
+            RightHandTrackedListener rightHandTrackedListener = new RightHandTrackedListener();
+            RightHandTrackedEvent += new RightHandTrackedHandler(rightHandTrackedListener.ShowOnScreen);
+
+            //Fonction appelée lorsque la main gauche quitte le champ de recherche.
+            LeftHandQuitListener leftHandQuitListener = new LeftHandQuitListener();
+            LeftHandQuitEvent += new LeftHandQuitHandler(leftHandQuitListener.ShowOnScreen);
+
+            //Fonction appelée lorsque la main droite quitte le champ de recherche.
+            RightHandQuitListener rightHandQuitListener = new RightHandQuitListener();
+            RightHandQuitEvent += new RightHandQuitHandler(rightHandQuitListener.ShowOnScreen);
+
+            //Fonction appelée lorsque l'utilisateur effectue un swipe right.
+            SwipeEventListener swipeListener = new SwipeEventListener();
+            SwipeEvent += new SwipeHandler(swipeListener.ShowOnScreen);
+
+            //On connecte le serveur à l'adresse locale sur le port 80.
+            server = new Server("127.0.0.1", 80);
+        }
+
+        /*
+        *  Fermeture du sensor de la Kinect.
+        */
+        public void KinectClose()
+        {
+            try
+            {
+                //On stoppe la Kinect.
+                kinectSensor.Stop();
+                //On met a zero l'image d'affichage et le serveur.
+                debug.DebugImage.Source = null;
+                //server = null;
+                debug.ExceptionLbl.Content = "";
+            }
+            catch (System.Exception)
+            {
+                debug.ExceptionLbl.Content = "Kinect non connectée.";
+            }
+        }
+
+        /*
+        *  Récupère le premier squelette.
+        */
+        Skeleton GetFirstSkeleton(AllFramesReadyEventArgs e)
+        {
+            using (SkeletonFrame skeletonFrameData = e.OpenSkeletonFrame())
+            {
+                if (skeletonFrameData == null)
+                    return null;
+                if ((skeletons == null) || (skeletons.Length != skeletonFrameData.SkeletonArrayLength))
+                    skeletons = new Skeleton[skeletonFrameData.SkeletonArrayLength];
+                skeletonFrameData.CopySkeletonDataTo(skeletons);
+
+                //On obtient le premier skelette.
+                Skeleton first = (from s in skeletons where s.TrackingState == SkeletonTrackingState.Tracked select s).FirstOrDefault();
+
+                return first;
+            }
+        }
+
+        /*
+        *  Récupère le squelette le plus proche.
+        */
+        Skeleton GetNearestSkeleton(AllFramesReadyEventArgs e)
+        {
+            using (SkeletonFrame skeletonFrameData = e.OpenSkeletonFrame())
+            {
+                if (skeletonFrameData == null)
+                    return null;
+                if ((skeletons == null) || (skeletons.Length != skeletonFrameData.SkeletonArrayLength))
+                    skeletons = new Skeleton[skeletonFrameData.SkeletonArrayLength];
+                skeletonFrameData.CopySkeletonDataTo(skeletons);
+
+                Skeleton s;
+                float minDist = (float)-1.0;
+                int minID = 0;
+                    
+                //Pour tous les squelettes.
+                for(int i = 0 ; i < skeletons.Count() ; i++)
+                {
+                    s = skeletons.ElementAt(i);
+                    //S'il est tracké.
+                    if(s.TrackingState == SkeletonTrackingState.Tracked)
+                    {
+                        //On récupère sa position et on obtient la distance min et l'ID du squelette qui est à la distance min.
+                        float dist = skeletons.ElementAt(i).Position.Z;
+                        if (minDist == -1)
+                        {
+                            minDist = dist;
+                            minID = i;
+                        }
+                        else if(minDist > dist)
+                        {
+                            minDist = dist;
+                            minID = i;
+                        }
+                    }
+                }
+
+                //On renvoie le skelette le plus proche.
+                return skeletons.ElementAt(minID);
+            }
+        }
+
+        /*
+        *  Récupère le squelette le plus proche.
+        */
+        private void AllFramesReady(object sender, AllFramesReadyEventArgs e)
+        {
+            //On ne calcule rien si la fenêtre de debug se ferme.
+            if (debug.isClosing())
+                return;
+
+            //On met à jour la vidéo de debug.
+            debug.RefreshVideo(e);
+            //On récupère le premier squelette tracké.
+            //Skeleton first = GetFirstSkeleton(e);
+            //On récupère le plus proche squelette tracké.
+            Skeleton first = GetNearestSkeleton(e);
+            //Si celui-ci n’est pas nul
+            if (first == null)
+                return;
+
+            //Si ce squelette est tracké (donc suivi et reconnu par la camera)
+            if (first.TrackingState == SkeletonTrackingState.Tracked)
+            {
+                //Ensemble des noeuds du squelette.
+                Joint hipCenter = getJoint(first, hipCenterID), spine = getJoint(first, spineID), shoulderCenter = getJoint(first, shoulderCenterID), head = getJoint(first, headID);
+                Joint shoulderLeft = getJoint(first, shoulderLeftID), elbowLeft = getJoint(first, elbowLeftID), wristLeft = getJoint(first, wristLeftID), handLeft = getJoint(first, handLeftID);
+                Joint shoulderRight = getJoint(first, shoulderRightID), elbowRight = getJoint(first, elbowRightID), wristRight = getJoint(first, wristRightID), handRight = getJoint(first, handRightID);
+                Joint hipLeft = getJoint(first, hipLeftID), kneeLeft = getJoint(first, kneeLeftID), ankleLeft = getJoint(first, ankleLeftID), footLeft = getJoint(first, footLeftID);
+                Joint hipRight = getJoint(first, hipRightID), kneeRight = getJoint(first, kneeRightID), ankleRight = getJoint(first, ankleRightID), footRight = getJoint(first, footRightID);
+
+                //On construit l'historique des postures.
+                /*List<Joint> joints = new List<Joint>();
+                joints.Clear();
+                joints.Add(footRight);
+                joints.Add(ankleRight);
+                joints.Add(kneeRight);
+                joints.Add(hipRight);
+                joints.Add(footLeft);
+                joints.Add(ankleLeft);
+                joints.Add(kneeLeft);
+                joints.Add(hipLeft);
+                joints.Add(handRight);
+                joints.Add(wristRight);
+                joints.Add(elbowRight);
+                joints.Add(shoulderRight);
+                joints.Add(handLeft);
+                joints.Add(wristLeft);
+                joints.Add(elbowLeft);
+                joints.Add(shoulderLeft);
+                joints.Add(head);
+                joints.Add(shoulderCenter);
+                joints.Add(spine);
+                joints.Add(hipCenter);
+                swipeDetector.UpdateSkeletonHistory(joints);*/
+
+                SkeletonDisplayManager sdm = new SkeletonDisplayManager(kinectSensor, debug.DebugCanvas);
+                //sdm.Draw();
+
+                //On obtient sa distance à la Kinect.
+                float distance = first.Position.Z;
+
+                //On affiche la distance dans le debug.
+                debug.showDistance(distance);
+
+                //Si la main gauche est dans le champ, on lance l'événement approprié.
+                if (handLeft.Position.Z < maxDistHands && handLeft.Position.Z > minDistHands)
+                {
+                    LeftHandTrackedEventArgs leftHandTrackedEvent = new LeftHandTrackedEventArgs(handLeft, handLeft.Position.Z, debug, server);
+                    OnLeftHandTrackedEvent(leftHandTrackedEvent);
+                }
+                //Si la main gauche quitte le champ, on lance l'événement approprié.
+                else
+                {
+                    LeftHandQuitEventArgs leftHandQuitEvent = new LeftHandQuitEventArgs(handLeft, handLeft.Position.Z, debug, server);
+                    OnLeftHandQuitEvent(leftHandQuitEvent);
+                }
+                //Si la main droite est dans le champ, on lance l'événement approprié.
+                if (handRight.Position.Z < maxDistHands && handRight.Position.Z > minDistHands)
+                {
+                    RightHandTrackedEventArgs rightHandTrackedEvent = new RightHandTrackedEventArgs(handRight, handRight.Position.Z, debug, server);
+                    OnRightHandTrackedEvent(rightHandTrackedEvent);
+                }
+                //Si la main droite quitte le champ, on lance l'événement approprié.
+                else
+                {
+                    RightHandQuitEventArgs rightHandQuitEvent = new RightHandQuitEventArgs(handRight, handRight.Position.Z, debug, server);
+                    OnRightHandQuitEvent(rightHandQuitEvent);
+                }
+                
+                //Si l'utilisateur effectue un swipe left.
+                if (swipeDetector.CheckForSwipeLeft())
+                {
+                    SwipeEventArgs swipeEvent = new SwipeEventArgs(debug, server, SwipeDetector.Direction.LEFT);
+                    OnSwipeEvent(swipeEvent);
+                }
+
+
+                //Dessine le squelette dans le debug.
+                //debug.drawJoints(first.Joints, first);
+                //debug.showSkeleton(hipCenter, spine, shoulderCenter, head, shoulderLeft, elbowLeft, wristLeft, handLeft, shoulderRight, elbowRight, wristRight, handRight, hipLeft, kneeLeft, ankleLeft, footLeft, hipRight, kneeRight, ankleRight, footRight);
+            }
+        }
+
+        /*
+        *  Change l'échelle des coordonnées d'un noeud pour qu'en X et Y il corresponde à la résolution et en Z à la distance à la Kinect.
+        */
+        public Joint getJoint(Skeleton ske, int jointID)
+        {
+            return Coding4Fun.Kinect.Wpf.SkeletalExtensions.ScaleTo(ske.Joints.ElementAt(jointID), 600, 400, 0.75f, 0.75f);
+        }
+
+        /*
+        *  Initialise l'événement et fait appel aux fonctions du listener quand la main gauche entre dans le champ.
+        */
+        public static void OnLeftHandTrackedEvent(LeftHandTrackedEventArgs e)
+        {
+            if (LeftHandTrackedEvent != null)
+                LeftHandTrackedEvent(new object(), e);
+        }
+
+        /*
+        *  Initialise l'événement et fait appel aux fonctions du listener quand la main droite entre dans le champ.
+        */
+        public static void OnRightHandTrackedEvent(RightHandTrackedEventArgs e)
+        {
+            if (RightHandTrackedEvent != null)
+                RightHandTrackedEvent(new object(), e);
+        }
+
+        /*
+        *  Initialise l'événement et fait appel aux fonctions du listener quand la main gauche quitte le champ.
+        */
+        public static void OnLeftHandQuitEvent(LeftHandQuitEventArgs e)
+        {
+            if (LeftHandQuitEvent != null)
+                LeftHandQuitEvent(new object(), e);
+        }
+
+        /*
+        *  Initialise l'événement et fait appel aux fonctions du listener quand la main droite quitte le champ.
+        */
+        public static void OnRightHandQuitEvent(RightHandQuitEventArgs e)
+        {
+            if (RightHandQuitEvent != null)
+                RightHandQuitEvent(new object(), e);
+        }
+
+        /*
+        *  Initialise l'événement et fait appel aux fonctions du listener quand l'utilisateur effectue un swipe right.
+        */
+        public static void OnSwipeEvent(SwipeEventArgs e)
+        {
+            if (SwipeEvent != null)
+                SwipeEvent(new object(), e);
+        }
+
+        /*
+        *  Initialise l'événement et fait appel aux fonctions du listener quand l'utilisateur effectue un swipe up.
+        */
+        /*public static void OnSwipeUpEvent(SwipeUpEventArgs e)
+        {
+            if (SwipeUpEvent != null)
+                SwipeUpEvent(new object(), e);
+        }*/
+
+        /*
+        *  Initialise l'événement et fait appel aux fonctions du listener quand l'utilisateur effectue un swipe down.
+        */
+        /*public static void OnSwipeDownEvent(SwipeDownEventArgs e)
+        {
+            if (SwipeDownEvent != null)
+                SwipeDownEvent(new object(), e);
+        }*/
+
+        /*
+        *  Méthode de chargement des paramètres (position du champ de recherche...).
+        */
+        public bool loadParameters()
+        {
+            try
+            {
+                minDistHands = float.Parse(ConfigurationManager.AppSettings["searchMinDistance"]);
+                maxDistHands = float.Parse(ConfigurationManager.AppSettings["searchMaxDistance"]);
+            }
+            catch (Exception)
+            {
+                return false;
+            }
+
+            return true;
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/middleware/src/Trakers.csproj	Fri Mar 09 14:52:11 2012 +0100
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{09EF8613-2F1B-4F1D-B6B1-22938EBB529A}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Trakers</RootNamespace>
+    <AssemblyName>Trakers</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <StartupObject />
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Accessibility">
+      <EmbedInteropTypes>True</EmbedInteropTypes>
+    </Reference>
+    <Reference Include="Bespoke.Common">
+      <HintPath>..\lib\Bespoke.Common.dll</HintPath>
+    </Reference>
+    <Reference Include="Bespoke.Common.Osc">
+      <HintPath>..\lib\Bespoke.Common.Osc.dll</HintPath>
+    </Reference>
+    <Reference Include="Coding4Fun.Kinect.Wpf, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\lib\Coding4Fun.Kinect.Wpf.dll</HintPath>
+    </Reference>
+    <Reference Include="Kinect.Toolbox">
+      <HintPath>..\lib\Kinect.Toolbox.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.Kinect, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\lib\Microsoft.Kinect.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.configuration" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Xml" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Xaml">
+      <RequiredTargetFramework>4.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="TuioServer">
+      <HintPath>..\lib\TuioServer.dll</HintPath>
+    </Reference>
+    <Reference Include="WindowsBase" />
+    <Reference Include="PresentationCore" />
+    <Reference Include="PresentationFramework" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Communication\Server.cs" />
+    <Compile Include="Debug\DebugWindow.xaml.cs">
+      <DependentUpon>DebugWindow.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="MainClass.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+    <Compile Include="Tracking\Events\SwipeEventListener.cs" />
+    <Compile Include="Tracking\Events\SwipeEventArgs.cs" />
+    <Compile Include="Tracking\Gestures\GestureDetector.cs" />
+    <Compile Include="Tracking\Gestures\SwipeDetector.cs" />
+    <Compile Include="Tracking\KinectMain.cs" />
+    <Compile Include="Tracking\Events\LeftHandQuitEventArgs.cs" />
+    <Compile Include="Tracking\Events\LeftHandQuitListener.cs" />
+    <Compile Include="Tracking\Events\LeftHandTrackedEventArgs.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Tracking\Events\LeftHandTrackedListener.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Tracking\Events\RightHandQuitEventArgs.cs" />
+    <Compile Include="Tracking\Events\RightHandQuitListener.cs" />
+    <Compile Include="Tracking\Events\RightHandTrackedEventArgs.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Tracking\Events\RightHandTrackedListener.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <None Include="App.config" />
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <AppDesigner Include="Properties\" />
+  </ItemGroup>
+  <ItemGroup />
+  <ItemGroup>
+    <Page Include="Debug\DebugWindow.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file