front_processing/extern/TUIO_JAVA/src/TUIO/TuioObject.java
changeset 10 925b7ee746e3
parent 9 0f44b7360c8d
child 28 9ccef81f02ab
--- a/front_processing/extern/TUIO_JAVA/src/TUIO/TuioObject.java	Thu Mar 22 18:15:53 2012 +0100
+++ b/front_processing/extern/TUIO_JAVA/src/TUIO/TuioObject.java	Fri Mar 23 16:24:36 2012 +0100
@@ -1,251 +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;
-    }
-    
-}
+/*
+    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;
+    }
+    
+}