org.jmol.multitouch.sparshui
Class TwoPointGesture

java.lang.Object
  extended by org.jmol.multitouch.sparshui.TwoPointGesture
All Implemented Interfaces:
com.sparshui.gestures.Gesture

public class TwoPointGesture
extends Object
implements com.sparshui.gestures.Gesture

TWO_POINT_GESTURE This gesture requires two points of contact, but its type is not initially defined. Instead, its type is determined on-the-fly to be one of ZOOM, ROTATE, or 2-point DRAG based on the direction of motion and relative positions of the starting points. Two traces are obtained, assuming nothing about the ID of the incoming points from the input device but instead operating from position on the screen. v00 from pt(1,0) to pt(2,0) ZOOM IN: <---- x -----> (at any angle) ZOOM OUT: ----> x <----- (at any angle) ROTATE CW: ^ | | x | (at any angle, not implemented) | V ROTATE CCW: | ^ | x | (at any angle, not implemented) V | 2-point drag: ---------> x (any direction) ---------> Bob Hanson 12/13/2009


Field Summary
private  int _id1
           
private  int _id2
           
private  int _myType
           
private  int _nTraces
           
protected  com.sparshui.common.Location _offset
           
protected  com.sparshui.common.Location _offsetCentroid
           
private  float _rotation
           
private  float _scale
           
private  List _traces1
           
private  List _traces2
           
private  long time
           
 
Constructor Summary
TwoPointGesture()
           
 
Method Summary
private  void checkType()
           
 int getGestureType()
          Get the integer value of this gesture type.
 String getName()
          Get the name of this gesture.
protected  List processBirth(com.sparshui.server.TouchPoint touchPoint)
           
 List processChange(List touchPoints, com.sparshui.server.TouchPoint changedPoint)
          Process a touch point change in the gesture.
private  List processChangeSync(List touchPoints, com.sparshui.server.TouchPoint changedPoint)
           
protected  List processDeath(com.sparshui.server.TouchPoint touchPoint)
           
protected  List processMove(com.sparshui.server.TouchPoint touchPoint)
           
private  boolean updateLocations(com.sparshui.server.TouchPoint touchPoint)
           
private  boolean updateParameters()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_myType

private int _myType

_offset

protected com.sparshui.common.Location _offset

_offsetCentroid

protected com.sparshui.common.Location _offsetCentroid

_traces1

private List _traces1

_traces2

private List _traces2

_id1

private int _id1

_id2

private int _id2

_nTraces

private int _nTraces

_scale

private float _scale

_rotation

private float _rotation

time

private long time
Constructor Detail

TwoPointGesture

public TwoPointGesture()
Method Detail

getName

public String getName()
Description copied from interface: com.sparshui.gestures.Gesture
Get the name of this gesture.

Specified by:
getName in interface com.sparshui.gestures.Gesture
Returns:
The name of this gesture.

getGestureType

public int getGestureType()
Description copied from interface: com.sparshui.gestures.Gesture
Get the integer value of this gesture type. Gesture values are defined in GestureType.java.

Specified by:
getGestureType in interface com.sparshui.gestures.Gesture
Returns:
The gesture type.

processChange

public List processChange(List touchPoints,
                          com.sparshui.server.TouchPoint changedPoint)
Description copied from interface: com.sparshui.gestures.Gesture
Process a touch point change in the gesture.

Specified by:
processChange in interface com.sparshui.gestures.Gesture
Parameters:
touchPoints - The list of touch points that currently belong to this gesture.
changedPoint - The touch point that has changed.
Returns:
A vector of events that will be delivered to the client.

processChangeSync

private List processChangeSync(List touchPoints,
                               com.sparshui.server.TouchPoint changedPoint)

processBirth

protected List processBirth(com.sparshui.server.TouchPoint touchPoint)

processDeath

protected List processDeath(com.sparshui.server.TouchPoint touchPoint)

processMove

protected List processMove(com.sparshui.server.TouchPoint touchPoint)

updateLocations

private boolean updateLocations(com.sparshui.server.TouchPoint touchPoint)

checkType

private void checkType()

updateParameters

private boolean updateParameters()