edu.harvard.seas.iis.abilities.analysis
Class Movement

java.lang.Object
  extended by edu.harvard.seas.iis.abilities.analysis.Movement
All Implemented Interfaces:
java.io.Serializable

public class Movement
extends java.lang.Object
implements java.io.Serializable

See Also:
Serialized Form

Constructor Summary
Movement(java.awt.Point home, double startTime, double movementTime)
           
 
Method Summary
 void addClickEvent(int x, int y, double timeStamp, boolean hit, java.lang.String targetType, int targetX, int targetY, int targetCenterX, int targetCenterY, int targetWidth, int targetHeight)
          Record a click event.
 void addMissedClickEvent(int x, int y, double timeStamp)
          Record a click event that occurred outside the target
 void addMovementPoint(double x, double y, double timeStamp, boolean insideTarget)
          Add new intermediate movement to the trajectory
static java.lang.String detailedReport(java.util.List<Movement> movements)
           
static void detailedReportToFile(java.util.List<Movement> movements, java.io.File file, boolean append)
           
 double getAccelerationAtTime(double time)
           
 java.lang.Object getAdditionalMetaData(java.lang.String key)
          Retrieves additional meta data
 double getDistanceOfFirstAcquisitionAttemptFromTarget()
           
 double getEndTime()
           
 double getJerkAtTime(double time)
           
 MovementPoint getLastMovementPoint()
           
 double getMovementAmplitude()
           
 double getMovementDistance()
          Returns the actual distance traveled (not necessary in a straight line)
 double getMovementDuration()
           
 java.util.Hashtable<java.lang.String,java.lang.Object> getMovementFeatures()
           
 double[] getRawPositionAtTime(double time)
           
 double getSpeedAtTime(double time)
           
 double getStartTime()
           
static java.lang.String getSummaryHeadings()
           
static java.lang.String[] getSummaryHeadingsNew()
           
 java.lang.String getTargetType()
           
 java.lang.Object setAdditionalMetaData(java.lang.String key, java.lang.Object value)
          Allows additional meta data to be stored with this movement
static java.lang.String summaryReport(java.util.List<Movement> movements, boolean includeHeader)
           
 java.lang.String toDetailedString(boolean includeHeader)
           
 java.lang.String toString()
           
 java.lang.String toSummaryString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Movement

public Movement(java.awt.Point home,
                double startTime,
                double movementTime)
Method Detail

addMissedClickEvent

public void addMissedClickEvent(int x,
                                int y,
                                double timeStamp)
Record a click event that occurred outside the target

Parameters:
x -
y -
timeStamp -

addClickEvent

public void addClickEvent(int x,
                          int y,
                          double timeStamp,
                          boolean hit,
                          java.lang.String targetType,
                          int targetX,
                          int targetY,
                          int targetCenterX,
                          int targetCenterY,
                          int targetWidth,
                          int targetHeight)
Record a click event. Information about the target is only relevant if the click was a hit (i.e., if it occurred inside the target)

Parameters:
x - x-coordinate of the click event
y - y-coordinate of the click event
timeStamp -
hit - true if click occurred on the target; false otherwise
targetType - arbitrary annotation
targetX - x-coordinate of the upper-left corner of the target
targetY - y-coordinate of the upper-left corner of the target
targetCenterX -
targetCenterY -
targetWidth -
targetHeight -

addMovementPoint

public void addMovementPoint(double x,
                             double y,
                             double timeStamp,
                             boolean insideTarget)
Add new intermediate movement to the trajectory

Parameters:
x -
y -
timeStamp -
insideTarget - set true if this point is known to be inside the target

getDistanceOfFirstAcquisitionAttemptFromTarget

public double getDistanceOfFirstAcquisitionAttemptFromTarget()

getRawPositionAtTime

public double[] getRawPositionAtTime(double time)

getSpeedAtTime

public double getSpeedAtTime(double time)

getAccelerationAtTime

public double getAccelerationAtTime(double time)

getJerkAtTime

public double getJerkAtTime(double time)

getTargetType

public java.lang.String getTargetType()

getStartTime

public double getStartTime()

getEndTime

public double getEndTime()

getLastMovementPoint

public MovementPoint getLastMovementPoint()

getMovementDuration

public double getMovementDuration()

getMovementDistance

public double getMovementDistance()
Returns the actual distance traveled (not necessary in a straight line)

Returns:

getMovementAmplitude

public double getMovementAmplitude()

setAdditionalMetaData

public java.lang.Object setAdditionalMetaData(java.lang.String key,
                                              java.lang.Object value)
Allows additional meta data to be stored with this movement

Parameters:
key -
value -
Returns:
old value for the key (or null, if nothing was stored under that key before)

getAdditionalMetaData

public java.lang.Object getAdditionalMetaData(java.lang.String key)
Retrieves additional meta data

Parameters:
key -
Returns:

getSummaryHeadingsNew

public static java.lang.String[] getSummaryHeadingsNew()

getMovementFeatures

public java.util.Hashtable<java.lang.String,java.lang.Object> getMovementFeatures()

getSummaryHeadings

public static java.lang.String getSummaryHeadings()

toSummaryString

public java.lang.String toSummaryString()

toDetailedString

public java.lang.String toDetailedString(boolean includeHeader)

detailedReport

public static java.lang.String detailedReport(java.util.List<Movement> movements)

detailedReportToFile

public static void detailedReportToFile(java.util.List<Movement> movements,
                                        java.io.File file,
                                        boolean append)
                                 throws java.io.IOException
Throws:
java.io.IOException

summaryReport

public static java.lang.String summaryReport(java.util.List<Movement> movements,
                                             boolean includeHeader)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object