public interface TargetMotionInformation
Modifier and Type  Method and Description 

GpsData 
getBeamLatLong(LatLong localised)
Calculate the beam latitude and longitude.

long 
getBeamTime(GpsData beamPos)
Calculate the beam time.

java.util.ArrayList<PamDetection> 
getCurrentDetections()
Returns the pamDetections which will be used for this target motion localisation.

PamQuaternion[] 
getEulerAngles()
Get the Euler angles for each detection.

LatLong 
getGPSReference()
The GPS point which corresponds to (0,0,0).

java.util.ArrayList<java.util.ArrayList<javax.vecmath.Point3f>> 
getHydrophonePos()
Returns the positions of the hydrophones, relative to (0,0,0) for every pamDetection

int 
getNDetections()
The number of detections to be used in this target motion.

PamVector[] 
getOrigins()
Returns the origin of the hydrophone array for each detection point this is in meters relative to 0,0,0;

int 
getReferenceHydrophones() 
java.util.ArrayList<java.util.ArrayList<java.lang.Double>> 
getTimeDelayErrors()
Returns the time delay errors for each detection.

java.util.ArrayList<java.util.ArrayList<java.lang.Double>> 
getTimeDelays()
Returns the time delays for each detection.

java.lang.Long 
getTimeMillis()
Get a time for the detection (usually an average of all the individual detectiopns)

PamVector[][] 
getWorldVectors()
The real world vectors for each detection.

PamVector 
latLongToMetres(LatLong ll) 
LatLong 
metresToLatLong(PamVector pt)
Convert a point in your cartesian coordinate frame

java.util.ArrayList<PamDetection> getCurrentDetections()
int getNDetections()
java.util.ArrayList<java.util.ArrayList<java.lang.Double>> getTimeDelays()
java.util.ArrayList<java.util.ArrayList<java.lang.Double>> getTimeDelayErrors()
PamVector[] getOrigins()
PamVector[][] getWorldVectors()
PamQuaternion[] getEulerAngles()
Note on Euler Angles:
We need to know the position and depth of the array but we also must know the rotation of the array. It would be nice to store the rotation as vector, however a unit vector cannot describe fully the rotation of the array. e.g say we have the unit vector (0.71 0.0 0.71), this would describe a heading of 270 and pitch of 45 degrees. However this unit vector tells us nothing about the roll (tilt) of the array. This is because we had to start off with a unit vector (0,1,0) to rotate to begin with. We can transform coordinate systems all we want but a unit vector will only ever tell us two Euler angles. Hence we have to store euler angles as a PamQuaternion not a PamVector.
PamQuaternion
java.util.ArrayList<java.util.ArrayList<javax.vecmath.Point3f>> getHydrophonePos()
LatLong getGPSReference()
PamVector latLongToMetres(LatLong ll)
ll
 the GPS CoOrdinaterotate
 LatLong metresToLatLong(PamVector pt)
pt
 isRotated
 int getReferenceHydrophones()
java.lang.Long getTimeMillis()
GpsData getBeamLatLong(LatLong localised)
localised
 localisation result to find beam lat long for.long getBeamTime(GpsData beamPos)
beamPos
 the beam lat long.