public ReferenceWaypoint(Reference ref) { try { this.reference = Reference.clone(ref); } catch (Exception e) { e.printStackTrace(); } loc = new ManeuverLocation(); loc.setLatitudeRads(ref.getLat()); loc.setLongitudeRads(ref.getLon()); if (ref.getZ() != null) { loc.setZ(ref.getZ().getValue()); loc.setZUnits(ManeuverLocation.Z_UNITS.valueOf(ref.getZ().getZUnits().name())); } boolean defineZ = (ref.getFlags() & Reference.FLAG_Z) != 0; if (!defineZ) loc.setZUnits(ManeuverLocation.Z_UNITS.NONE); loiter = (ref.getFlags() & Reference.FLAG_RADIUS) != 0; this.loiterRadius = ref.getRadius(); this.latitude = loc.getLatitudeAsDoubleValue(); this.longitude = loc.getLongitudeAsDoubleValue(); this.z = loc.getZ(); this.zUnits = loc.getZUnits(); if (ref.getSpeed() != null) { this.speedUnits = ref.getSpeed().getSpeedUnits(); this.speed = ref.getSpeed().getValue(); } defineSpeed = (ref.getFlags() & Reference.FLAG_SPEED) != 0; }
public ManeuverLocation(LocationType loc) { super(loc); if (loc instanceof ManeuverLocation) { ManeuverLocation mloc = (ManeuverLocation) loc; this.setZ(mloc.getZ()); this.setZUnits(mloc.getZUnits()); } }
public ReferenceWaypoint(ManeuverLocation loc, double speed) { loc.convertToAbsoluteLatLonDepth(); this.loc = loc.clone(); this.latitude = loc.getLatitudeAsDoubleValue(); this.longitude = loc.getLongitudeAsDoubleValue(); this.speed = speed; this.speedUnits = SPEED_UNITS.METERS_PS; this.z = loc.getZ(); this.zUnits = loc.getZUnits(); reference = new Reference(); reference.setLat(loc.getLatitudeAsDoubleValueRads()); reference.setLon(loc.getLongitudeAsDoubleValueRads()); reference.setZ(new DesiredZ((float) loc.getZ(), Z_UNITS.valueOf(loc.getZUnits().name()))); reference.setSpeed(new DesiredSpeed(speed, SPEED_UNITS.METERS_PS)); reference.setFlags((short) (Reference.FLAG_LOCATION | Reference.FLAG_SPEED | Reference.FLAG_Z)); }
public void setZ(DesiredZ desiredZ) { if (desiredZ == null) { reference.setFlags((short) (reference.getFlags() ^ Reference.FLAG_Z)); reference.setZ(null); loc.setZUnits(ManeuverLocation.Z_UNITS.NONE); zUnits = ManeuverLocation.Z_UNITS.NONE; } else { reference.setZ(new DesiredZ((float) desiredZ.getValue(), desiredZ.getZUnits())); reference.setFlags((short) (reference.getFlags() | Reference.FLAG_Z)); loc.setZ(desiredZ.getValue()); loc.setZUnits(ManeuverLocation.Z_UNITS.valueOf(desiredZ.getZUnits().name())); zUnits = loc.getZUnits(); z = loc.getZ(); } }
@Override public void propertiesChanged() { loc.setZ(z); loc.setZUnits(zUnits); reference = new Reference(); if (loiter) reference.setRadius(loiterRadius); reference.setLat(loc.getLatitudeAsDoubleValueRads()); reference.setLon(loc.getLongitudeAsDoubleValueRads()); if (loc.getZUnits() != ManeuverLocation.Z_UNITS.NONE) reference.setZ(new DesiredZ((float) loc.getZ(), Z_UNITS.valueOf(loc.getZUnits().name()))); if (defineSpeed) reference.setSpeed(new DesiredSpeed(speed, speedUnits)); reference.setFlags( (short) (Reference.FLAG_LOCATION | (defineSpeed ? Reference.FLAG_SPEED : 0) | (loc.getZUnits() != ManeuverLocation.Z_UNITS.NONE ? Reference.FLAG_Z : 0) | (loiter ? Reference.FLAG_RADIUS : 0))); }
@Override public void setManeuverLocation(ManeuverLocation loc) { location = loc.clone(); setStartZ((float) loc.getZ()); }