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 java.lang.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  java.util.List<com.sparshui.common.Location> _traces1
           
private  java.util.List<com.sparshui.common.Location> _traces2
           
private  long time
           
 
Constructor Summary
TwoPointGesture()
           
 
Method Summary
private  void checkType()
           
 int getGestureType()
          Get the integer value of this gesture type.
 java.lang.String getName()
          Get the name of this gesture.
protected  java.util.List<com.sparshui.common.Event> processBirth(com.sparshui.server.TouchPoint touchPoint)
           
 java.util.List<com.sparshui.common.Event> processChange(java.util.List<com.sparshui.server.TouchPoint> touchPoints, com.sparshui.server.TouchPoint changedPoint)
          Process a touch point change in the gesture.
private  java.util.List<com.sparshui.common.Event> processChangeSync(com.sparshui.server.TouchPoint changedPoint)
           
protected  java.util.List<com.sparshui.common.Event> processDeath(com.sparshui.server.TouchPoint touchPoint)
           
protected  java.util.List<com.sparshui.common.Event> 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 java.util.List<com.sparshui.common.Location> _traces1

_traces2

private java.util.List<com.sparshui.common.Location> _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 java.lang.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 java.util.List<com.sparshui.common.Event> processChange(java.util.List<com.sparshui.server.TouchPoint> 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:
An ArrayList of events that will be delivered to the client.

processChangeSync

private java.util.List<com.sparshui.common.Event> processChangeSync(com.sparshui.server.TouchPoint changedPoint)

processBirth

protected java.util.List<com.sparshui.common.Event> processBirth(com.sparshui.server.TouchPoint touchPoint)

processDeath

protected java.util.List<com.sparshui.common.Event> processDeath(com.sparshui.server.TouchPoint touchPoint)

processMove

protected java.util.List<com.sparshui.common.Event> processMove(com.sparshui.server.TouchPoint touchPoint)

updateLocations

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

checkType

private void checkType()

updateParameters

private boolean updateParameters()