package com.revolsys.elevation.cloud.las.pointformat;
import com.revolsys.collection.map.MapEx;
import com.revolsys.elevation.cloud.las.LasPointCloud;
import com.revolsys.io.channels.ChannelReader;
import com.revolsys.io.endian.EndianOutput;
public class LasPoint1GpsTime extends LasPoint0Core implements LasPointGpsTime {
private static final long serialVersionUID = 1L;
public static double getCurrentGpsTime() {
return System.currentTimeMillis() / 1000.0 - 315964800;
}
private double gpsTime;
public LasPoint1GpsTime(final LasPointCloud pointCloud) {
super(pointCloud);
this.gpsTime = getCurrentGpsTime();
}
@Override
public double getGpsTime() {
return this.gpsTime;
}
@Override
public LasPointFormat getPointFormat() {
return LasPointFormat.GpsTime;
}
@Override
public void read(final LasPointCloud pointCloud, final ChannelReader reader) {
super.read(pointCloud, reader);
this.gpsTime = reader.getDouble();
}
@Override
public void setGpsTime(final double gpsTime) {
this.gpsTime = gpsTime;
}
@Override
public MapEx toMap() {
final MapEx map = super.toMap();
addToMap(map, "gpsTime", this.gpsTime);
return map;
}
@Override
public void write(final EndianOutput out) {
super.write(out);
out.writeLEDouble(this.gpsTime);
}
}