package seabedexplorer.data; /** * LaserReading. Stores an angle, as recorded by a laser camera, as well as a * distance that is a useful property of the laser camera itself. * * @author Dan Lawrence * @version %I%, %G% */ public class LaserReading extends TopographicalMapping{ /** * The recorded angle, in degrees. */ double angle; /** * The distance between the camera and the laser, in meters. */ double distance; /** * Constructor. Is the only way to set the values of the reading, and the * distance. * * @param angleIn The recorded angle, in degrees. * * @param distanceIn The distance between the camera and the laser, in * meters. */ public LaserReading(double angleIn, double distanceIn) { angle = angleIn; distance = distanceIn; calculateDepth(); System.out.println("Laser camera depth reading stored successfully.\n"); } @Override void calculateDepth() { depth = distance / Math.tan(angle / (180/Math.PI)); } /** * Returns the angle, of the same data type it is stored as (double). */ public double getAngle() { return angle; } /** * Returns the distance, of the same data type it is stored as (double). */ public double getDistance() { return distance; } @Override public String toString() { return "Laser camera reading:\n" + " Recorded angle: " + angle + "°\n" + " Determined depth: " + depth + "m\n"; } }