front_processing/extern/TUIO_JAVA/src/TUIO/TuioString.java
author bastiena
Tue, 20 Mar 2012 18:00:55 +0100
changeset 7 8a21bec5d45f
parent 3 92f19af39024
child 9 0f44b7360c8d
permissions -rw-r--r--
Middleware : No proximity bugs anymore. The skeleton disappear if a tracked person is too close or not tracked anymore. Processing : There are no laggs anymore when an user stay too long moving his hands and drawing tons of ellipses. (TUIO Cursors are not taken by their vectors, only the last position of the cursors are caught to be drawn).

/*
Added by alexandre.bastien@iri.centrepompidou.fr
*/

package TUIO;

/**
 * The TuioCursor class encapsulates /tuio/_siP TUIO strings.
 *
 */ 
public class TuioString {

	/**
	 * The unique session ID number that is assigned to each TUIO string.
	 */ 
	protected long session_id;

	/**
	 * The individual string ID number that is assigned to each TuioString.
	 */ 
	protected int string_id;
	
	/**
	 * The individual string message that is assigned to each TuioString.
	 */ 
	protected String message;
	
	/**
	 * The time stamp of the last update represented as TuioTime (time since session start)
	 */
	protected TuioTime currentTime;
	/**
	 * The creation time of this TuioString represented as TuioTime (time since session start)
	 */
	protected TuioTime startTime;
	
	/**
	 * Defines the ADDED state.
	 */ 
	public static final int TUIO_ADDED = 0;
	/**
	 * Defines the REMOVED state.
	 */ 
	public static final int TUIO_REMOVED = 4;
	/**
	 * Reflects the current state of the TuioString
	 */ 
	protected int state;
	
	/**
	 * This constructor takes a TuioTime argument and assigns it along  with the provided 
	 * Session ID, String ID and a message to the newly created TuioString.
	 *
	 * @param	ttime	the TuioTime to assign
	 * @param	si	the Session ID  to assign
	 * @param	sti	the String ID  to assign
	 * @param	msg the message to assign
	 */
	public TuioString (TuioTime ttime, long si, int sti, String msg) {
		this.session_id = si;
		this.string_id = sti;
		this.message = msg;
		currentTime = new TuioTime(ttime);
		startTime = new TuioTime(currentTime);
	}
	
	/**
	 * This constructor takes the provided Session ID, String ID and message 
	 * and assigs these values to the newly created TuioString.
	 *
	 * @param	si	the Session ID  to assign
	 * @param	sti	the String ID  to assign
	 * @param	msg	the message to assign
	 */
	public TuioString (long si, int sti, String msg) {
		this.session_id = si;
		this.string_id = sti;
		this.message = msg;
		currentTime = TuioTime.getSessionTime();
		startTime = new TuioTime(currentTime);
	}
	
	/**
	 * 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 TuioString (TuioString tstr) {
		this.session_id = tstr.getSessionID();
		this.string_id = tstr.getStringID();
		this.message = tstr.getMessage();
		currentTime = new TuioTime(tstr.getCurrentTime());
		startTime = new TuioTime(currentTime);
	}

	/**
	 * Takes a TuioTime argument and assigns it along with the provided 
	 * message to the private TuioString attributes.
	 * The speed and accleration values are calculated accordingly.
	 *
	 * @param	ttime	the TuioTime to assign
	 * @param	message2 the message to assign
	 */
	public void update(TuioTime ttime, String message2) {
		currentTime = new TuioTime(ttime);
		message = message2;
	}
	
	/**
	 * This method is used to update the TuioTime of a TuioString while keeping the same * * * message.
	 */
	public void stop(TuioTime ttime) {
		update(ttime,message);
	}
	
	/**
	 * Takes the atttibutes of the provided TuioString 
	 * and assigs these values to this TuioString.
	 * The TuioTime time stamp of this TuioString remains unchanged.
	 *
	 * @param	tstr	the TuioString to assign
	 */
	public void update (TuioString tstr) {
		message = tstr.getMessage();
	}
	
	/**
	 * Takes the message provided
	 * and assigs its value to this TuioString.
	 * The TuioTime time stamp of this TuioString remains unchanged.
	 *
	 * @param	msg	the message to assign
	 */
	public void update (String msg) {
		message = msg;
	}
	
	/**
	 * Assigns the REMOVE state to this TuioString 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 TuioString.
	 * @return	the Session ID of this TuioString
	 */
	public long getSessionID() {
		return session_id;
	}
	
	/**
	 * Returns the String ID of this TuioString.
	 * @return	the String ID of this TuioString
	 */
	public int getStringID() {
		return string_id;
	}
	
	/**
	 * Returns the Message of this TuioString.
	 * @return	the Message of this TuioString
	 */
	public String getMessage() {
		return message;
	}
	
	/**
	 * Returns the Current Time of this TuioString.
	 * @return	the Current Time of this TuioString
	 */
	public TuioTime getCurrentTime() {
		return currentTime;
	}
	
	/**
	 * Returns the TUIO state of this TuioString.
	 * @return	the TUIO state of this TuioString
	 */
	public int getTuioState() {
		return state;
	}
}