front_processing/extern/TUIO_JAVA/src/TuioDemoObject.java
author bastiena
Tue, 20 Mar 2012 18:00:55 +0100
changeset 7 8a21bec5d45f
parent 0 6fefd4afe506
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).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     1
/*
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     2
	TUIO Java Demo - part of the reacTIVision project
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     3
	http://reactivision.sourceforge.net/
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     4
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     5
	Copyright (c) 2005-2009 Martin Kaltenbrunner <mkalten@iua.upf.edu>
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     6
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     7
	This program is free software; you can redistribute it and/or modify
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     8
	it under the terms of the GNU General Public License as published by
6fefd4afe506 First Import
bastiena
parents:
diff changeset
     9
	the Free Software Foundation; either version 2 of the License, or
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    10
	(at your option) any later version.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    11
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    12
	This program is distributed in the hope that it will be useful,
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    13
	but WITHOUT ANY WARRANTY; without even the implied warranty of
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    14
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    15
	GNU General Public License for more details.
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    16
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    17
	You should have received a copy of the GNU General Public License
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    18
	along with this program; if not, write to the Free Software
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    19
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    20
*/
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    21
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    22
import javax.swing.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    23
import java.awt.geom.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    24
import java.awt.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    25
import java.awt.event.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    26
import java.util.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    27
import TUIO.*;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    28
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    29
public class TuioDemoObject extends TuioObject {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    30
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    31
	private Shape square;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    32
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    33
	public TuioDemoObject(TuioObject tobj) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    34
		super(tobj);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    35
		int size = TuioDemoComponent.object_size;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    36
		square = new Rectangle2D.Float(-size/2,-size/2,size,size);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    37
		
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    38
		AffineTransform transform = new AffineTransform();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    39
		transform.translate(xpos,ypos);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    40
		transform.rotate(angle,xpos,ypos);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    41
		square = transform.createTransformedShape(square);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    42
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    43
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    44
	public void paint(Graphics2D g, int width, int height) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    45
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    46
		float Xpos = xpos*width;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    47
		float Ypos = ypos*height;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    48
		float scale = height/(float)TuioDemoComponent.table_size;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    49
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    50
		AffineTransform trans = new AffineTransform();
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    51
		trans.translate(-xpos,-ypos);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    52
		trans.translate(Xpos,Ypos);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    53
		trans.scale(scale,scale);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    54
		Shape s = trans.createTransformedShape(square);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    55
	
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    56
		g.setPaint(Color.black);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    57
		g.fill(s);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    58
		g.setPaint(Color.white);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    59
		g.drawString(symbol_id+"",Xpos-10,Ypos);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    60
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    61
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    62
	public void update(TuioObject tobj) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    63
		
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    64
		float dx = tobj.getX() - xpos;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    65
		float dy = tobj.getY() - ypos;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    66
		float da = tobj.getAngle() - angle;
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    67
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    68
		if ((dx!=0) || (dy!=0)) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    69
			AffineTransform trans = AffineTransform.getTranslateInstance(dx,dy);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    70
			square = trans.createTransformedShape(square);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    71
		}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    72
		
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    73
		if (da!=0) {
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    74
			AffineTransform trans = AffineTransform.getRotateInstance(da,tobj.getX(),tobj.getY());
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    75
			square = trans.createTransformedShape(square);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    76
		}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    77
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    78
		super.update(tobj);
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    79
	}
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    80
6fefd4afe506 First Import
bastiena
parents:
diff changeset
    81
}