text: /**
   * @fileoverview
   * @enhanceable
   * @suppress {messageConventions} JS Compiler reports an error if a variable or
   *     field starts with 'MSG_' and isn't a translatable message.
   * @public
   */
  // GENERATED CODE -- DO NOT EDIT!
  
  var jspb = require('google-protobuf');
  var goog = jspb;
  var global = Function('return this')();
  
  var observor_pb = require('./observor_pb.js');
  var apimessage_pb = require('./apimessage_pb.js');
  goog.exportSymbol('proto.AutoPilotPhase', null, global);
  goog.exportSymbol('proto.CelestialBody', null, global);
  goog.exportSymbol('proto.GetManeuverNodeInfoResponse', null, global);
  goog.exportSymbol('proto.GetReentryInfoResponse', null, global);
  goog.exportSymbol('proto.GetRunwayLandingInfoResponse', null, global);
  goog.exportSymbol('proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse', null, global);
  goog.exportSymbol('proto.GetTargetBodyOrbitInfoResponse', null, global);
  goog.exportSymbol('proto.GetTargetDockingPortInfoResponse', null, global);
  goog.exportSymbol('proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse', null, global);
  goog.exportSymbol('proto.GetTargetVesselOrbitInfoResponse', null, global);
  goog.exportSymbol('proto.GetVerticalLandingInfoResponse', null, global);
  goog.exportSymbol('proto.Orbit', null, global);
  goog.exportSymbol('proto.OrbitTransitionType', null, global);
  goog.exportSymbol('proto.OrbitType', null, global);
  goog.exportSymbol('proto.TargetOrbitInfo', null, global);
  goog.exportSymbol('proto.Vessel', null, global);
  goog.exportSymbol('proto.VesselType', null, global);
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.Vessel = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.Vessel, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.Vessel.displayName = 'proto.Vessel';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.Vessel.prototype.toObject = function(opt_includeInstance) {
    return proto.Vessel.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.Vessel} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.Vessel.toObject = function(includeInstance, msg) {
    var f, obj = {
      id: jspb.Message.getFieldWithDefault(msg, 1, ""),
      name: jspb.Message.getFieldWithDefault(msg, 2, ""),
      type: jspb.Message.getFieldWithDefault(msg, 3, 0),
      situation: jspb.Message.getFieldWithDefault(msg, 4, 0),
      met: +jspb.Message.getFieldWithDefault(msg, 5, 0.0),
      stage: jspb.Message.getFieldWithDefault(msg, 6, 0),
      biome: jspb.Message.getFieldWithDefault(msg, 7, ""),
      recoverable: jspb.Message.getFieldWithDefault(msg, 8, false),
      crewcapacity: jspb.Message.getFieldWithDefault(msg, 9, 0),
      crewcount: jspb.Message.getFieldWithDefault(msg, 10, 0),
      mass: +jspb.Message.getFieldWithDefault(msg, 11, 0.0),
      drymass: +jspb.Message.getFieldWithDefault(msg, 12, 0.0),
      orbitingbody: jspb.Message.getFieldWithDefault(msg, 13, ""),
      sasmode: jspb.Message.getFieldWithDefault(msg, 14, 0),
      totalresourcesMap: (f = msg.getTotalresourcesMap()) ? f.toObject(includeInstance, proto.VesselResource.toObject) : [],
      stageresourcesMap: (f = msg.getStageresourcesMap()) ? f.toObject(includeInstance, proto.VesselResource.toObject) : [],
      orbit: (f = msg.getOrbit()) && proto.Orbit.toObject(includeInstance, f),
      launchtime: +jspb.Message.getFieldWithDefault(msg, 18, 0.0),
      targetname: jspb.Message.getFieldWithDefault(msg, 19, ""),
      targetvesselid: jspb.Message.getFieldWithDefault(msg, 20, ""),
      targetpartid: jspb.Message.getFieldWithDefault(msg, 21, 0),
      targetdirection: (f = msg.getTargetdirection()) && observor_pb.Vector3d.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.Vessel}
   */
  proto.Vessel.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.Vessel;
    return proto.Vessel.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.Vessel} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.Vessel}
   */
  proto.Vessel.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setId(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setName(value);
        break;
      case 3:
        var value = /** @type {!proto.VesselType} */ (reader.readEnum());
        msg.setType(value);
        break;
      case 4:
        var value = /** @type {!proto.VesselSnapshot.VesselSituation} */ (reader.readEnum());
        msg.setSituation(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setMet(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setStage(value);
        break;
      case 7:
        var value = /** @type {string} */ (reader.readString());
        msg.setBiome(value);
        break;
      case 8:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setRecoverable(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setCrewcapacity(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readInt32());
        msg.setCrewcount(value);
        break;
      case 11:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setMass(value);
        break;
      case 12:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setDrymass(value);
        break;
      case 13:
        var value = /** @type {string} */ (reader.readString());
        msg.setOrbitingbody(value);
        break;
      case 14:
        var value = /** @type {!proto.VesselSnapshot.SASMode} */ (reader.readEnum());
        msg.setSasmode(value);
        break;
      case 15:
        var value = msg.getTotalresourcesMap();
        reader.readMessage(value, function(message, reader) {
          jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.VesselResource.deserializeBinaryFromReader, "");
           });
        break;
      case 16:
        var value = msg.getStageresourcesMap();
        reader.readMessage(value, function(message, reader) {
          jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.VesselResource.deserializeBinaryFromReader, "");
           });
        break;
      case 17:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setOrbit(value);
        break;
      case 18:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setLaunchtime(value);
        break;
      case 19:
        var value = /** @type {string} */ (reader.readString());
        msg.setTargetname(value);
        break;
      case 20:
        var value = /** @type {string} */ (reader.readString());
        msg.setTargetvesselid(value);
        break;
      case 21:
        var value = /** @type {number} */ (reader.readInt64());
        msg.setTargetpartid(value);
        break;
      case 22:
        var value = new observor_pb.Vector3d;
        reader.readMessage(value,observor_pb.Vector3d.deserializeBinaryFromReader);
        msg.setTargetdirection(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.Vessel.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.Vessel.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.Vessel} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.Vessel.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getId();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getName();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = message.getType();
    if (f !== 0.0) {
      writer.writeEnum(
        3,
        f
      );
    }
    f = message.getSituation();
    if (f !== 0.0) {
      writer.writeEnum(
        4,
        f
      );
    }
    f = message.getMet();
    if (f !== 0.0) {
      writer.writeDouble(
        5,
        f
      );
    }
    f = message.getStage();
    if (f !== 0) {
      writer.writeInt32(
        6,
        f
      );
    }
    f = message.getBiome();
    if (f.length > 0) {
      writer.writeString(
        7,
        f
      );
    }
    f = message.getRecoverable();
    if (f) {
      writer.writeBool(
        8,
        f
      );
    }
    f = message.getCrewcapacity();
    if (f !== 0) {
      writer.writeInt32(
        9,
        f
      );
    }
    f = message.getCrewcount();
    if (f !== 0) {
      writer.writeInt32(
        10,
        f
      );
    }
    f = message.getMass();
    if (f !== 0.0) {
      writer.writeDouble(
        11,
        f
      );
    }
    f = message.getDrymass();
    if (f !== 0.0) {
      writer.writeDouble(
        12,
        f
      );
    }
    f = message.getOrbitingbody();
    if (f.length > 0) {
      writer.writeString(
        13,
        f
      );
    }
    f = message.getSasmode();
    if (f !== 0.0) {
      writer.writeEnum(
        14,
        f
      );
    }
    f = message.getTotalresourcesMap(true);
    if (f && f.getLength() > 0) {
      f.serializeBinary(15, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.VesselResource.serializeBinaryToWriter);
    }
    f = message.getStageresourcesMap(true);
    if (f && f.getLength() > 0) {
      f.serializeBinary(16, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.VesselResource.serializeBinaryToWriter);
    }
    f = message.getOrbit();
    if (f != null) {
      writer.writeMessage(
        17,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getLaunchtime();
    if (f !== 0.0) {
      writer.writeDouble(
        18,
        f
      );
    }
    f = message.getTargetname();
    if (f.length > 0) {
      writer.writeString(
        19,
        f
      );
    }
    f = message.getTargetvesselid();
    if (f.length > 0) {
      writer.writeString(
        20,
        f
      );
    }
    f = message.getTargetpartid();
    if (f !== 0) {
      writer.writeInt64(
        21,
        f
      );
    }
    f = message.getTargetdirection();
    if (f != null) {
      writer.writeMessage(
        22,
        f,
        observor_pb.Vector3d.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string id = 1;
   * @return {string}
   */
  proto.Vessel.prototype.getId = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.Vessel.prototype.setId = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string name = 2;
   * @return {string}
   */
  proto.Vessel.prototype.getName = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.Vessel.prototype.setName = function(value) {
    jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * optional VesselType type = 3;
   * @return {!proto.VesselType}
   */
  proto.Vessel.prototype.getType = function() {
    return /** @type {!proto.VesselType} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
  };
  
  
  /** @param {!proto.VesselType} value */
  proto.Vessel.prototype.setType = function(value) {
    jspb.Message.setProto3EnumField(this, 3, value);
  };
  
  
  /**
   * optional VesselSnapshot.VesselSituation situation = 4;
   * @return {!proto.VesselSnapshot.VesselSituation}
   */
  proto.Vessel.prototype.getSituation = function() {
    return /** @type {!proto.VesselSnapshot.VesselSituation} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
  };
  
  
  /** @param {!proto.VesselSnapshot.VesselSituation} value */
  proto.Vessel.prototype.setSituation = function(value) {
    jspb.Message.setProto3EnumField(this, 4, value);
  };
  
  
  /**
   * optional double MET = 5;
   * @return {number}
   */
  proto.Vessel.prototype.getMet = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 5, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Vessel.prototype.setMet = function(value) {
    jspb.Message.setProto3FloatField(this, 5, value);
  };
  
  
  /**
   * optional int32 stage = 6;
   * @return {number}
   */
  proto.Vessel.prototype.getStage = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
  };
  
  
  /** @param {number} value */
  proto.Vessel.prototype.setStage = function(value) {
    jspb.Message.setProto3IntField(this, 6, value);
  };
  
  
  /**
   * optional string biome = 7;
   * @return {string}
   */
  proto.Vessel.prototype.getBiome = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
  };
  
  
  /** @param {string} value */
  proto.Vessel.prototype.setBiome = function(value) {
    jspb.Message.setProto3StringField(this, 7, value);
  };
  
  
  /**
   * optional bool recoverable = 8;
   * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
   * You should avoid comparisons like {@code val === true/false} in those cases.
   * @return {boolean}
   */
  proto.Vessel.prototype.getRecoverable = function() {
    return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 8, false));
  };
  
  
  /** @param {boolean} value */
  proto.Vessel.prototype.setRecoverable = function(value) {
    jspb.Message.setProto3BooleanField(this, 8, value);
  };
  
  
  /**
   * optional int32 crewCapacity = 9;
   * @return {number}
   */
  proto.Vessel.prototype.getCrewcapacity = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
  };
  
  
  /** @param {number} value */
  proto.Vessel.prototype.setCrewcapacity = function(value) {
    jspb.Message.setProto3IntField(this, 9, value);
  };
  
  
  /**
   * optional int32 crewCount = 10;
   * @return {number}
   */
  proto.Vessel.prototype.getCrewcount = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
  };
  
  
  /** @param {number} value */
  proto.Vessel.prototype.setCrewcount = function(value) {
    jspb.Message.setProto3IntField(this, 10, value);
  };
  
  
  /**
   * optional double mass = 11;
   * @return {number}
   */
  proto.Vessel.prototype.getMass = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 11, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Vessel.prototype.setMass = function(value) {
    jspb.Message.setProto3FloatField(this, 11, value);
  };
  
  
  /**
   * optional double dryMass = 12;
   * @return {number}
   */
  proto.Vessel.prototype.getDrymass = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 12, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Vessel.prototype.setDrymass = function(value) {
    jspb.Message.setProto3FloatField(this, 12, value);
  };
  
  
  /**
   * optional string orbitingBody = 13;
   * @return {string}
   */
  proto.Vessel.prototype.getOrbitingbody = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, ""));
  };
  
  
  /** @param {string} value */
  proto.Vessel.prototype.setOrbitingbody = function(value) {
    jspb.Message.setProto3StringField(this, 13, value);
  };
  
  
  /**
   * optional VesselSnapshot.SASMode sasMode = 14;
   * @return {!proto.VesselSnapshot.SASMode}
   */
  proto.Vessel.prototype.getSasmode = function() {
    return /** @type {!proto.VesselSnapshot.SASMode} */ (jspb.Message.getFieldWithDefault(this, 14, 0));
  };
  
  
  /** @param {!proto.VesselSnapshot.SASMode} value */
  proto.Vessel.prototype.setSasmode = function(value) {
    jspb.Message.setProto3EnumField(this, 14, value);
  };
  
  
  /**
   * map<string, VesselResource> totalResources = 15;
   * @param {boolean=} opt_noLazyCreate Do not create the map if
   * empty, instead returning `undefined`
   * @return {!jspb.Map<string,!proto.VesselResource>}
   */
  proto.Vessel.prototype.getTotalresourcesMap = function(opt_noLazyCreate) {
    return /** @type {!jspb.Map<string,!proto.VesselResource>} */ (
        jspb.Message.getMapField(this, 15, opt_noLazyCreate,
        proto.VesselResource));
  };
  
  
  proto.Vessel.prototype.clearTotalresourcesMap = function() {
    this.getTotalresourcesMap().clear();
  };
  
  
  /**
   * map<string, VesselResource> stageResources = 16;
   * @param {boolean=} opt_noLazyCreate Do not create the map if
   * empty, instead returning `undefined`
   * @return {!jspb.Map<string,!proto.VesselResource>}
   */
  proto.Vessel.prototype.getStageresourcesMap = function(opt_noLazyCreate) {
    return /** @type {!jspb.Map<string,!proto.VesselResource>} */ (
        jspb.Message.getMapField(this, 16, opt_noLazyCreate,
        proto.VesselResource));
  };
  
  
  proto.Vessel.prototype.clearStageresourcesMap = function() {
    this.getStageresourcesMap().clear();
  };
  
  
  /**
   * optional Orbit orbit = 17;
   * @return {?proto.Orbit}
   */
  proto.Vessel.prototype.getOrbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 17));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.Vessel.prototype.setOrbit = function(value) {
    jspb.Message.setWrapperField(this, 17, value);
  };
  
  
  proto.Vessel.prototype.clearOrbit = function() {
    this.setOrbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.Vessel.prototype.hasOrbit = function() {
    return jspb.Message.getField(this, 17) != null;
  };
  
  
  /**
   * optional double launchTime = 18;
   * @return {number}
   */
  proto.Vessel.prototype.getLaunchtime = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 18, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Vessel.prototype.setLaunchtime = function(value) {
    jspb.Message.setProto3FloatField(this, 18, value);
  };
  
  
  /**
   * optional string targetName = 19;
   * @return {string}
   */
  proto.Vessel.prototype.getTargetname = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 19, ""));
  };
  
  
  /** @param {string} value */
  proto.Vessel.prototype.setTargetname = function(value) {
    jspb.Message.setProto3StringField(this, 19, value);
  };
  
  
  /**
   * optional string targetVesselID = 20;
   * @return {string}
   */
  proto.Vessel.prototype.getTargetvesselid = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 20, ""));
  };
  
  
  /** @param {string} value */
  proto.Vessel.prototype.setTargetvesselid = function(value) {
    jspb.Message.setProto3StringField(this, 20, value);
  };
  
  
  /**
   * optional int64 targetPartID = 21;
   * @return {number}
   */
  proto.Vessel.prototype.getTargetpartid = function() {
    return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0));
  };
  
  
  /** @param {number} value */
  proto.Vessel.prototype.setTargetpartid = function(value) {
    jspb.Message.setProto3IntField(this, 21, value);
  };
  
  
  /**
   * optional Vector3d targetDirection = 22;
   * @return {?proto.Vector3d}
   */
  proto.Vessel.prototype.getTargetdirection = function() {
    return /** @type{?proto.Vector3d} */ (
      jspb.Message.getWrapperField(this, observor_pb.Vector3d, 22));
  };
  
  
  /** @param {?proto.Vector3d|undefined} value */
  proto.Vessel.prototype.setTargetdirection = function(value) {
    jspb.Message.setWrapperField(this, 22, value);
  };
  
  
  proto.Vessel.prototype.clearTargetdirection = function() {
    this.setTargetdirection(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.Vessel.prototype.hasTargetdirection = function() {
    return jspb.Message.getField(this, 22) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.Orbit = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.Orbit, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.Orbit.displayName = 'proto.Orbit';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.Orbit.prototype.toObject = function(opt_includeInstance) {
    return proto.Orbit.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.Orbit} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.Orbit.toObject = function(includeInstance, msg) {
    var f, obj = {
      bodyname: jspb.Message.getFieldWithDefault(msg, 1, ""),
      apoapsis: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),
      periapsis: +jspb.Message.getFieldWithDefault(msg, 3, 0.0),
      apoapsisaltitude: +jspb.Message.getFieldWithDefault(msg, 4, 0.0),
      periapsisaltitude: +jspb.Message.getFieldWithDefault(msg, 5, 0.0),
      semimajoraxis: +jspb.Message.getFieldWithDefault(msg, 6, 0.0),
      semiminoraxis: +jspb.Message.getFieldWithDefault(msg, 7, 0.0),
      radius: +jspb.Message.getFieldWithDefault(msg, 8, 0.0),
      speed: +jspb.Message.getFieldWithDefault(msg, 9, 0.0),
      period: +jspb.Message.getFieldWithDefault(msg, 10, 0.0),
      timetoapoapsis: +jspb.Message.getFieldWithDefault(msg, 11, 0.0),
      timetoperiapsis: +jspb.Message.getFieldWithDefault(msg, 12, 0.0),
      eccentricity: +jspb.Message.getFieldWithDefault(msg, 13, 0.0),
      inclination: +jspb.Message.getFieldWithDefault(msg, 14, 0.0),
      longitudeofascendingnode: +jspb.Message.getFieldWithDefault(msg, 15, 0.0),
      argumentofperiapsis: +jspb.Message.getFieldWithDefault(msg, 16, 0.0),
      meananomalyatepoch: +jspb.Message.getFieldWithDefault(msg, 17, 0.0),
      epoch: +jspb.Message.getFieldWithDefault(msg, 18, 0.0),
      meananomaly: +jspb.Message.getFieldWithDefault(msg, 19, 0.0),
      eccentricanomaly: +jspb.Message.getFieldWithDefault(msg, 20, 0.0),
      trueanomaly: +jspb.Message.getFieldWithDefault(msg, 21, 0.0),
      nextorbit: (f = msg.getNextorbit()) && proto.Orbit.toObject(includeInstance, f),
      orbitalspeed: +jspb.Message.getFieldWithDefault(msg, 23, 0.0),
      type: jspb.Message.getFieldWithDefault(msg, 24, 0),
      timetoan: +jspb.Message.getFieldWithDefault(msg, 25, 0.0),
      timetodn: +jspb.Message.getFieldWithDefault(msg, 26, 0.0),
      starttransitiontype: jspb.Message.getFieldWithDefault(msg, 27, 0),
      endtransitiontype: jspb.Message.getFieldWithDefault(msg, 28, 0),
      timetosoichange: +jspb.Message.getFieldWithDefault(msg, 29, 0.0)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.Orbit}
   */
  proto.Orbit.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.Orbit;
    return proto.Orbit.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.Orbit} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.Orbit}
   */
  proto.Orbit.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setBodyname(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setApoapsis(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setPeriapsis(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setApoapsisaltitude(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setPeriapsisaltitude(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSemimajoraxis(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSemiminoraxis(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setRadius(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSpeed(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setPeriod(value);
        break;
      case 11:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTimetoapoapsis(value);
        break;
      case 12:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTimetoperiapsis(value);
        break;
      case 13:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setEccentricity(value);
        break;
      case 14:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setInclination(value);
        break;
      case 15:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setLongitudeofascendingnode(value);
        break;
      case 16:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setArgumentofperiapsis(value);
        break;
      case 17:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setMeananomalyatepoch(value);
        break;
      case 18:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setEpoch(value);
        break;
      case 19:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setMeananomaly(value);
        break;
      case 20:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setEccentricanomaly(value);
        break;
      case 21:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTrueanomaly(value);
        break;
      case 22:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setNextorbit(value);
        break;
      case 23:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setOrbitalspeed(value);
        break;
      case 24:
        var value = /** @type {!proto.OrbitType} */ (reader.readEnum());
        msg.setType(value);
        break;
      case 25:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTimetoan(value);
        break;
      case 26:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTimetodn(value);
        break;
      case 27:
        var value = /** @type {!proto.OrbitTransitionType} */ (reader.readEnum());
        msg.setStarttransitiontype(value);
        break;
      case 28:
        var value = /** @type {!proto.OrbitTransitionType} */ (reader.readEnum());
        msg.setEndtransitiontype(value);
        break;
      case 29:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTimetosoichange(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.Orbit.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.Orbit.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.Orbit} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.Orbit.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getBodyname();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getApoapsis();
    if (f !== 0.0) {
      writer.writeDouble(
        2,
        f
      );
    }
    f = message.getPeriapsis();
    if (f !== 0.0) {
      writer.writeDouble(
        3,
        f
      );
    }
    f = message.getApoapsisaltitude();
    if (f !== 0.0) {
      writer.writeDouble(
        4,
        f
      );
    }
    f = message.getPeriapsisaltitude();
    if (f !== 0.0) {
      writer.writeDouble(
        5,
        f
      );
    }
    f = message.getSemimajoraxis();
    if (f !== 0.0) {
      writer.writeDouble(
        6,
        f
      );
    }
    f = message.getSemiminoraxis();
    if (f !== 0.0) {
      writer.writeDouble(
        7,
        f
      );
    }
    f = message.getRadius();
    if (f !== 0.0) {
      writer.writeDouble(
        8,
        f
      );
    }
    f = message.getSpeed();
    if (f !== 0.0) {
      writer.writeDouble(
        9,
        f
      );
    }
    f = message.getPeriod();
    if (f !== 0.0) {
      writer.writeDouble(
        10,
        f
      );
    }
    f = message.getTimetoapoapsis();
    if (f !== 0.0) {
      writer.writeDouble(
        11,
        f
      );
    }
    f = message.getTimetoperiapsis();
    if (f !== 0.0) {
      writer.writeDouble(
        12,
        f
      );
    }
    f = message.getEccentricity();
    if (f !== 0.0) {
      writer.writeDouble(
        13,
        f
      );
    }
    f = message.getInclination();
    if (f !== 0.0) {
      writer.writeDouble(
        14,
        f
      );
    }
    f = message.getLongitudeofascendingnode();
    if (f !== 0.0) {
      writer.writeDouble(
        15,
        f
      );
    }
    f = message.getArgumentofperiapsis();
    if (f !== 0.0) {
      writer.writeDouble(
        16,
        f
      );
    }
    f = message.getMeananomalyatepoch();
    if (f !== 0.0) {
      writer.writeDouble(
        17,
        f
      );
    }
    f = message.getEpoch();
    if (f !== 0.0) {
      writer.writeDouble(
        18,
        f
      );
    }
    f = message.getMeananomaly();
    if (f !== 0.0) {
      writer.writeDouble(
        19,
        f
      );
    }
    f = message.getEccentricanomaly();
    if (f !== 0.0) {
      writer.writeDouble(
        20,
        f
      );
    }
    f = message.getTrueanomaly();
    if (f !== 0.0) {
      writer.writeDouble(
        21,
        f
      );
    }
    f = message.getNextorbit();
    if (f != null) {
      writer.writeMessage(
        22,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getOrbitalspeed();
    if (f !== 0.0) {
      writer.writeDouble(
        23,
        f
      );
    }
    f = message.getType();
    if (f !== 0.0) {
      writer.writeEnum(
        24,
        f
      );
    }
    f = message.getTimetoan();
    if (f !== 0.0) {
      writer.writeDouble(
        25,
        f
      );
    }
    f = message.getTimetodn();
    if (f !== 0.0) {
      writer.writeDouble(
        26,
        f
      );
    }
    f = message.getStarttransitiontype();
    if (f !== 0.0) {
      writer.writeEnum(
        27,
        f
      );
    }
    f = message.getEndtransitiontype();
    if (f !== 0.0) {
      writer.writeEnum(
        28,
        f
      );
    }
    f = message.getTimetosoichange();
    if (f !== 0.0) {
      writer.writeDouble(
        29,
        f
      );
    }
  };
  
  
  /**
   * optional string bodyName = 1;
   * @return {string}
   */
  proto.Orbit.prototype.getBodyname = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.Orbit.prototype.setBodyname = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional double apoapsis = 2;
   * @return {number}
   */
  proto.Orbit.prototype.getApoapsis = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setApoapsis = function(value) {
    jspb.Message.setProto3FloatField(this, 2, value);
  };
  
  
  /**
   * optional double periapsis = 3;
   * @return {number}
   */
  proto.Orbit.prototype.getPeriapsis = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setPeriapsis = function(value) {
    jspb.Message.setProto3FloatField(this, 3, value);
  };
  
  
  /**
   * optional double apoapsisAltitude = 4;
   * @return {number}
   */
  proto.Orbit.prototype.getApoapsisaltitude = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setApoapsisaltitude = function(value) {
    jspb.Message.setProto3FloatField(this, 4, value);
  };
  
  
  /**
   * optional double periapsisAltitude = 5;
   * @return {number}
   */
  proto.Orbit.prototype.getPeriapsisaltitude = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 5, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setPeriapsisaltitude = function(value) {
    jspb.Message.setProto3FloatField(this, 5, value);
  };
  
  
  /**
   * optional double semiMajorAxis = 6;
   * @return {number}
   */
  proto.Orbit.prototype.getSemimajoraxis = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 6, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setSemimajoraxis = function(value) {
    jspb.Message.setProto3FloatField(this, 6, value);
  };
  
  
  /**
   * optional double semiMinorAxis = 7;
   * @return {number}
   */
  proto.Orbit.prototype.getSemiminoraxis = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 7, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setSemiminoraxis = function(value) {
    jspb.Message.setProto3FloatField(this, 7, value);
  };
  
  
  /**
   * optional double radius = 8;
   * @return {number}
   */
  proto.Orbit.prototype.getRadius = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 8, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setRadius = function(value) {
    jspb.Message.setProto3FloatField(this, 8, value);
  };
  
  
  /**
   * optional double speed = 9;
   * @return {number}
   */
  proto.Orbit.prototype.getSpeed = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 9, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setSpeed = function(value) {
    jspb.Message.setProto3FloatField(this, 9, value);
  };
  
  
  /**
   * optional double period = 10;
   * @return {number}
   */
  proto.Orbit.prototype.getPeriod = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 10, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setPeriod = function(value) {
    jspb.Message.setProto3FloatField(this, 10, value);
  };
  
  
  /**
   * optional double timeToApoapsis = 11;
   * @return {number}
   */
  proto.Orbit.prototype.getTimetoapoapsis = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 11, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setTimetoapoapsis = function(value) {
    jspb.Message.setProto3FloatField(this, 11, value);
  };
  
  
  /**
   * optional double timeToPeriapsis = 12;
   * @return {number}
   */
  proto.Orbit.prototype.getTimetoperiapsis = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 12, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setTimetoperiapsis = function(value) {
    jspb.Message.setProto3FloatField(this, 12, value);
  };
  
  
  /**
   * optional double eccentricity = 13;
   * @return {number}
   */
  proto.Orbit.prototype.getEccentricity = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 13, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setEccentricity = function(value) {
    jspb.Message.setProto3FloatField(this, 13, value);
  };
  
  
  /**
   * optional double inclination = 14;
   * @return {number}
   */
  proto.Orbit.prototype.getInclination = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 14, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setInclination = function(value) {
    jspb.Message.setProto3FloatField(this, 14, value);
  };
  
  
  /**
   * optional double longitudeOfAscendingNode = 15;
   * @return {number}
   */
  proto.Orbit.prototype.getLongitudeofascendingnode = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 15, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setLongitudeofascendingnode = function(value) {
    jspb.Message.setProto3FloatField(this, 15, value);
  };
  
  
  /**
   * optional double argumentOfPeriapsis = 16;
   * @return {number}
   */
  proto.Orbit.prototype.getArgumentofperiapsis = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 16, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setArgumentofperiapsis = function(value) {
    jspb.Message.setProto3FloatField(this, 16, value);
  };
  
  
  /**
   * optional double meanAnomalyAtEpoch = 17;
   * @return {number}
   */
  proto.Orbit.prototype.getMeananomalyatepoch = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 17, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setMeananomalyatepoch = function(value) {
    jspb.Message.setProto3FloatField(this, 17, value);
  };
  
  
  /**
   * optional double epoch = 18;
   * @return {number}
   */
  proto.Orbit.prototype.getEpoch = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 18, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setEpoch = function(value) {
    jspb.Message.setProto3FloatField(this, 18, value);
  };
  
  
  /**
   * optional double meanAnomaly = 19;
   * @return {number}
   */
  proto.Orbit.prototype.getMeananomaly = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 19, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setMeananomaly = function(value) {
    jspb.Message.setProto3FloatField(this, 19, value);
  };
  
  
  /**
   * optional double eccentricAnomaly = 20;
   * @return {number}
   */
  proto.Orbit.prototype.getEccentricanomaly = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 20, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setEccentricanomaly = function(value) {
    jspb.Message.setProto3FloatField(this, 20, value);
  };
  
  
  /**
   * optional double trueAnomaly = 21;
   * @return {number}
   */
  proto.Orbit.prototype.getTrueanomaly = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 21, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setTrueanomaly = function(value) {
    jspb.Message.setProto3FloatField(this, 21, value);
  };
  
  
  /**
   * optional Orbit nextOrbit = 22;
   * @return {?proto.Orbit}
   */
  proto.Orbit.prototype.getNextorbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 22));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.Orbit.prototype.setNextorbit = function(value) {
    jspb.Message.setWrapperField(this, 22, value);
  };
  
  
  proto.Orbit.prototype.clearNextorbit = function() {
    this.setNextorbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.Orbit.prototype.hasNextorbit = function() {
    return jspb.Message.getField(this, 22) != null;
  };
  
  
  /**
   * optional double orbitalSpeed = 23;
   * @return {number}
   */
  proto.Orbit.prototype.getOrbitalspeed = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 23, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setOrbitalspeed = function(value) {
    jspb.Message.setProto3FloatField(this, 23, value);
  };
  
  
  /**
   * optional OrbitType type = 24;
   * @return {!proto.OrbitType}
   */
  proto.Orbit.prototype.getType = function() {
    return /** @type {!proto.OrbitType} */ (jspb.Message.getFieldWithDefault(this, 24, 0));
  };
  
  
  /** @param {!proto.OrbitType} value */
  proto.Orbit.prototype.setType = function(value) {
    jspb.Message.setProto3EnumField(this, 24, value);
  };
  
  
  /**
   * optional double timeToAN = 25;
   * @return {number}
   */
  proto.Orbit.prototype.getTimetoan = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 25, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setTimetoan = function(value) {
    jspb.Message.setProto3FloatField(this, 25, value);
  };
  
  
  /**
   * optional double timeToDN = 26;
   * @return {number}
   */
  proto.Orbit.prototype.getTimetodn = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 26, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setTimetodn = function(value) {
    jspb.Message.setProto3FloatField(this, 26, value);
  };
  
  
  /**
   * optional OrbitTransitionType startTransitionType = 27;
   * @return {!proto.OrbitTransitionType}
   */
  proto.Orbit.prototype.getStarttransitiontype = function() {
    return /** @type {!proto.OrbitTransitionType} */ (jspb.Message.getFieldWithDefault(this, 27, 0));
  };
  
  
  /** @param {!proto.OrbitTransitionType} value */
  proto.Orbit.prototype.setStarttransitiontype = function(value) {
    jspb.Message.setProto3EnumField(this, 27, value);
  };
  
  
  /**
   * optional OrbitTransitionType endTransitionType = 28;
   * @return {!proto.OrbitTransitionType}
   */
  proto.Orbit.prototype.getEndtransitiontype = function() {
    return /** @type {!proto.OrbitTransitionType} */ (jspb.Message.getFieldWithDefault(this, 28, 0));
  };
  
  
  /** @param {!proto.OrbitTransitionType} value */
  proto.Orbit.prototype.setEndtransitiontype = function(value) {
    jspb.Message.setProto3EnumField(this, 28, value);
  };
  
  
  /**
   * optional double timeToSOIChange = 29;
   * @return {number}
   */
  proto.Orbit.prototype.getTimetosoichange = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 29, 0.0));
  };
  
  
  /** @param {number} value */
  proto.Orbit.prototype.setTimetosoichange = function(value) {
    jspb.Message.setProto3FloatField(this, 29, value);
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.CelestialBody = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, proto.CelestialBody.repeatedFields_, null);
  };
  goog.inherits(proto.CelestialBody, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.CelestialBody.displayName = 'proto.CelestialBody';
  }
  /**
   * List of repeated fields within this message type.
   * @private {!Array<number>}
   * @const
   */
  proto.CelestialBody.repeatedFields_ = [2,16];
  
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.CelestialBody.prototype.toObject = function(opt_includeInstance) {
    return proto.CelestialBody.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.CelestialBody} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.CelestialBody.toObject = function(includeInstance, msg) {
    var f, obj = {
      name: jspb.Message.getFieldWithDefault(msg, 1, ""),
      satellitesList: jspb.Message.toObjectList(msg.getSatellitesList(),
      proto.CelestialBody.toObject, includeInstance),
      mass: +jspb.Message.getFieldWithDefault(msg, 3, 0.0),
      gravitationalparameter: +jspb.Message.getFieldWithDefault(msg, 4, 0.0),
      surfacegravity: +jspb.Message.getFieldWithDefault(msg, 5, 0.0),
      rotationalperiod: +jspb.Message.getFieldWithDefault(msg, 6, 0.0),
      rotationalspeed: +jspb.Message.getFieldWithDefault(msg, 7, 0.0),
      rotationangle: +jspb.Message.getFieldWithDefault(msg, 8, 0.0),
      initialrotation: +jspb.Message.getFieldWithDefault(msg, 9, 0.0),
      equatorialradius: +jspb.Message.getFieldWithDefault(msg, 10, 0.0),
      sphereofinfluence: +jspb.Message.getFieldWithDefault(msg, 11, 0.0),
      orbit: (f = msg.getOrbit()) && proto.Orbit.toObject(includeInstance, f),
      hasatmosphere: jspb.Message.getFieldWithDefault(msg, 13, false),
      atmospheredepth: +jspb.Message.getFieldWithDefault(msg, 14, 0.0),
      hasatmosphericoxygen: jspb.Message.getFieldWithDefault(msg, 15, false),
      biomesList: jspb.Message.getRepeatedField(msg, 16),
      flyinghighaltitudethreshold: +jspb.Message.getFieldWithDefault(msg, 17, 0.0),
      spacehighaltitudethreshold: +jspb.Message.getFieldWithDefault(msg, 18, 0.0),
      attitudeinfo: (f = msg.getAttitudeinfo()) && observor_pb.AttitudeInfo.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.CelestialBody}
   */
  proto.CelestialBody.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.CelestialBody;
    return proto.CelestialBody.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.CelestialBody} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.CelestialBody}
   */
  proto.CelestialBody.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setName(value);
        break;
      case 2:
        var value = new proto.CelestialBody;
        reader.readMessage(value,proto.CelestialBody.deserializeBinaryFromReader);
        msg.addSatellites(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setMass(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setGravitationalparameter(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSurfacegravity(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setRotationalperiod(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setRotationalspeed(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setRotationangle(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setInitialrotation(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setEquatorialradius(value);
        break;
      case 11:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSphereofinfluence(value);
        break;
      case 12:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setOrbit(value);
        break;
      case 13:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setHasatmosphere(value);
        break;
      case 14:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setAtmospheredepth(value);
        break;
      case 15:
        var value = /** @type {boolean} */ (reader.readBool());
        msg.setHasatmosphericoxygen(value);
        break;
      case 16:
        var value = /** @type {string} */ (reader.readString());
        msg.addBiomes(value);
        break;
      case 17:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setFlyinghighaltitudethreshold(value);
        break;
      case 18:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSpacehighaltitudethreshold(value);
        break;
      case 19:
        var value = new observor_pb.AttitudeInfo;
        reader.readMessage(value,observor_pb.AttitudeInfo.deserializeBinaryFromReader);
        msg.setAttitudeinfo(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.CelestialBody.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.CelestialBody.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.CelestialBody} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.CelestialBody.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getName();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getSatellitesList();
    if (f.length > 0) {
      writer.writeRepeatedMessage(
        2,
        f,
        proto.CelestialBody.serializeBinaryToWriter
      );
    }
    f = message.getMass();
    if (f !== 0.0) {
      writer.writeDouble(
        3,
        f
      );
    }
    f = message.getGravitationalparameter();
    if (f !== 0.0) {
      writer.writeDouble(
        4,
        f
      );
    }
    f = message.getSurfacegravity();
    if (f !== 0.0) {
      writer.writeDouble(
        5,
        f
      );
    }
    f = message.getRotationalperiod();
    if (f !== 0.0) {
      writer.writeDouble(
        6,
        f
      );
    }
    f = message.getRotationalspeed();
    if (f !== 0.0) {
      writer.writeDouble(
        7,
        f
      );
    }
    f = message.getRotationangle();
    if (f !== 0.0) {
      writer.writeDouble(
        8,
        f
      );
    }
    f = message.getInitialrotation();
    if (f !== 0.0) {
      writer.writeDouble(
        9,
        f
      );
    }
    f = message.getEquatorialradius();
    if (f !== 0.0) {
      writer.writeDouble(
        10,
        f
      );
    }
    f = message.getSphereofinfluence();
    if (f !== 0.0) {
      writer.writeDouble(
        11,
        f
      );
    }
    f = message.getOrbit();
    if (f != null) {
      writer.writeMessage(
        12,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getHasatmosphere();
    if (f) {
      writer.writeBool(
        13,
        f
      );
    }
    f = message.getAtmospheredepth();
    if (f !== 0.0) {
      writer.writeDouble(
        14,
        f
      );
    }
    f = message.getHasatmosphericoxygen();
    if (f) {
      writer.writeBool(
        15,
        f
      );
    }
    f = message.getBiomesList();
    if (f.length > 0) {
      writer.writeRepeatedString(
        16,
        f
      );
    }
    f = message.getFlyinghighaltitudethreshold();
    if (f !== 0.0) {
      writer.writeDouble(
        17,
        f
      );
    }
    f = message.getSpacehighaltitudethreshold();
    if (f !== 0.0) {
      writer.writeDouble(
        18,
        f
      );
    }
    f = message.getAttitudeinfo();
    if (f != null) {
      writer.writeMessage(
        19,
        f,
        observor_pb.AttitudeInfo.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional string name = 1;
   * @return {string}
   */
  proto.CelestialBody.prototype.getName = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.CelestialBody.prototype.setName = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * repeated CelestialBody satellites = 2;
   * @return {!Array<!proto.CelestialBody>}
   */
  proto.CelestialBody.prototype.getSatellitesList = function() {
    return /** @type{!Array<!proto.CelestialBody>} */ (
      jspb.Message.getRepeatedWrapperField(this, proto.CelestialBody, 2));
  };
  
  
  /** @param {!Array<!proto.CelestialBody>} value */
  proto.CelestialBody.prototype.setSatellitesList = function(value) {
    jspb.Message.setRepeatedWrapperField(this, 2, value);
  };
  
  
  /**
   * @param {!proto.CelestialBody=} opt_value
   * @param {number=} opt_index
   * @return {!proto.CelestialBody}
   */
  proto.CelestialBody.prototype.addSatellites = function(opt_value, opt_index) {
    return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.CelestialBody, opt_index);
  };
  
  
  proto.CelestialBody.prototype.clearSatellitesList = function() {
    this.setSatellitesList([]);
  };
  
  
  /**
   * optional double mass = 3;
   * @return {number}
   */
  proto.CelestialBody.prototype.getMass = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setMass = function(value) {
    jspb.Message.setProto3FloatField(this, 3, value);
  };
  
  
  /**
   * optional double gravitationalParameter = 4;
   * @return {number}
   */
  proto.CelestialBody.prototype.getGravitationalparameter = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setGravitationalparameter = function(value) {
    jspb.Message.setProto3FloatField(this, 4, value);
  };
  
  
  /**
   * optional double surfaceGravity = 5;
   * @return {number}
   */
  proto.CelestialBody.prototype.getSurfacegravity = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 5, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setSurfacegravity = function(value) {
    jspb.Message.setProto3FloatField(this, 5, value);
  };
  
  
  /**
   * optional double rotationalPeriod = 6;
   * @return {number}
   */
  proto.CelestialBody.prototype.getRotationalperiod = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 6, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setRotationalperiod = function(value) {
    jspb.Message.setProto3FloatField(this, 6, value);
  };
  
  
  /**
   * optional double rotationalSpeed = 7;
   * @return {number}
   */
  proto.CelestialBody.prototype.getRotationalspeed = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 7, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setRotationalspeed = function(value) {
    jspb.Message.setProto3FloatField(this, 7, value);
  };
  
  
  /**
   * optional double rotationAngle = 8;
   * @return {number}
   */
  proto.CelestialBody.prototype.getRotationangle = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 8, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setRotationangle = function(value) {
    jspb.Message.setProto3FloatField(this, 8, value);
  };
  
  
  /**
   * optional double initialRotation = 9;
   * @return {number}
   */
  proto.CelestialBody.prototype.getInitialrotation = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 9, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setInitialrotation = function(value) {
    jspb.Message.setProto3FloatField(this, 9, value);
  };
  
  
  /**
   * optional double equatorialRadius = 10;
   * @return {number}
   */
  proto.CelestialBody.prototype.getEquatorialradius = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 10, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setEquatorialradius = function(value) {
    jspb.Message.setProto3FloatField(this, 10, value);
  };
  
  
  /**
   * optional double sphereOfInfluence = 11;
   * @return {number}
   */
  proto.CelestialBody.prototype.getSphereofinfluence = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 11, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setSphereofinfluence = function(value) {
    jspb.Message.setProto3FloatField(this, 11, value);
  };
  
  
  /**
   * optional Orbit orbit = 12;
   * @return {?proto.Orbit}
   */
  proto.CelestialBody.prototype.getOrbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 12));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.CelestialBody.prototype.setOrbit = function(value) {
    jspb.Message.setWrapperField(this, 12, value);
  };
  
  
  proto.CelestialBody.prototype.clearOrbit = function() {
    this.setOrbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.CelestialBody.prototype.hasOrbit = function() {
    return jspb.Message.getField(this, 12) != null;
  };
  
  
  /**
   * optional bool hasAtmosphere = 13;
   * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
   * You should avoid comparisons like {@code val === true/false} in those cases.
   * @return {boolean}
   */
  proto.CelestialBody.prototype.getHasatmosphere = function() {
    return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 13, false));
  };
  
  
  /** @param {boolean} value */
  proto.CelestialBody.prototype.setHasatmosphere = function(value) {
    jspb.Message.setProto3BooleanField(this, 13, value);
  };
  
  
  /**
   * optional double atmosphereDepth = 14;
   * @return {number}
   */
  proto.CelestialBody.prototype.getAtmospheredepth = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 14, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setAtmospheredepth = function(value) {
    jspb.Message.setProto3FloatField(this, 14, value);
  };
  
  
  /**
   * optional bool hasAtmosphericOxygen = 15;
   * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
   * You should avoid comparisons like {@code val === true/false} in those cases.
   * @return {boolean}
   */
  proto.CelestialBody.prototype.getHasatmosphericoxygen = function() {
    return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 15, false));
  };
  
  
  /** @param {boolean} value */
  proto.CelestialBody.prototype.setHasatmosphericoxygen = function(value) {
    jspb.Message.setProto3BooleanField(this, 15, value);
  };
  
  
  /**
   * repeated string biomes = 16;
   * @return {!Array<string>}
   */
  proto.CelestialBody.prototype.getBiomesList = function() {
    return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 16));
  };
  
  
  /** @param {!Array<string>} value */
  proto.CelestialBody.prototype.setBiomesList = function(value) {
    jspb.Message.setField(this, 16, value || []);
  };
  
  
  /**
   * @param {!string} value
   * @param {number=} opt_index
   */
  proto.CelestialBody.prototype.addBiomes = function(value, opt_index) {
    jspb.Message.addToRepeatedField(this, 16, value, opt_index);
  };
  
  
  proto.CelestialBody.prototype.clearBiomesList = function() {
    this.setBiomesList([]);
  };
  
  
  /**
   * optional double flyingHighAltitudeThreshold = 17;
   * @return {number}
   */
  proto.CelestialBody.prototype.getFlyinghighaltitudethreshold = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 17, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setFlyinghighaltitudethreshold = function(value) {
    jspb.Message.setProto3FloatField(this, 17, value);
  };
  
  
  /**
   * optional double spaceHighAltitudeThreshold = 18;
   * @return {number}
   */
  proto.CelestialBody.prototype.getSpacehighaltitudethreshold = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 18, 0.0));
  };
  
  
  /** @param {number} value */
  proto.CelestialBody.prototype.setSpacehighaltitudethreshold = function(value) {
    jspb.Message.setProto3FloatField(this, 18, value);
  };
  
  
  /**
   * optional AttitudeInfo attitudeInfo = 19;
   * @return {?proto.AttitudeInfo}
   */
  proto.CelestialBody.prototype.getAttitudeinfo = function() {
    return /** @type{?proto.AttitudeInfo} */ (
      jspb.Message.getWrapperField(this, observor_pb.AttitudeInfo, 19));
  };
  
  
  /** @param {?proto.AttitudeInfo|undefined} value */
  proto.CelestialBody.prototype.setAttitudeinfo = function(value) {
    jspb.Message.setWrapperField(this, 19, value);
  };
  
  
  proto.CelestialBody.prototype.clearAttitudeinfo = function() {
    this.setAttitudeinfo(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.CelestialBody.prototype.hasAttitudeinfo = function() {
    return jspb.Message.getField(this, 19) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.TargetOrbitInfo = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.TargetOrbitInfo, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.TargetOrbitInfo.displayName = 'proto.TargetOrbitInfo';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.TargetOrbitInfo.prototype.toObject = function(opt_includeInstance) {
    return proto.TargetOrbitInfo.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.TargetOrbitInfo} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.TargetOrbitInfo.toObject = function(includeInstance, msg) {
    var f, obj = {
      closestapproachtime: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),
      timetoclosestapproach: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),
      closestapproachdistance: +jspb.Message.getFieldWithDefault(msg, 3, 0.0),
      trueanomalyatan: +jspb.Message.getFieldWithDefault(msg, 4, 0.0),
      timetotargetan: +jspb.Message.getFieldWithDefault(msg, 5, 0.0),
      trueanomalyatdn: +jspb.Message.getFieldWithDefault(msg, 6, 0.0),
      timetotargetdn: +jspb.Message.getFieldWithDefault(msg, 7, 0.0),
      relativeinclination: +jspb.Message.getFieldWithDefault(msg, 8, 0.0),
      targetrelativespeed: +jspb.Message.getFieldWithDefault(msg, 9, 0.0),
      targetdistance: +jspb.Message.getFieldWithDefault(msg, 10, 0.0)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.TargetOrbitInfo}
   */
  proto.TargetOrbitInfo.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.TargetOrbitInfo;
    return proto.TargetOrbitInfo.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.TargetOrbitInfo} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.TargetOrbitInfo}
   */
  proto.TargetOrbitInfo.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setClosestapproachtime(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTimetoclosestapproach(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setClosestapproachdistance(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTrueanomalyatan(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTimetotargetan(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTrueanomalyatdn(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTimetotargetdn(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setRelativeinclination(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTargetrelativespeed(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTargetdistance(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.TargetOrbitInfo.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.TargetOrbitInfo.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.TargetOrbitInfo} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.TargetOrbitInfo.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getClosestapproachtime();
    if (f !== 0.0) {
      writer.writeDouble(
        1,
        f
      );
    }
    f = message.getTimetoclosestapproach();
    if (f !== 0.0) {
      writer.writeDouble(
        2,
        f
      );
    }
    f = message.getClosestapproachdistance();
    if (f !== 0.0) {
      writer.writeDouble(
        3,
        f
      );
    }
    f = message.getTrueanomalyatan();
    if (f !== 0.0) {
      writer.writeDouble(
        4,
        f
      );
    }
    f = message.getTimetotargetan();
    if (f !== 0.0) {
      writer.writeDouble(
        5,
        f
      );
    }
    f = message.getTrueanomalyatdn();
    if (f !== 0.0) {
      writer.writeDouble(
        6,
        f
      );
    }
    f = message.getTimetotargetdn();
    if (f !== 0.0) {
      writer.writeDouble(
        7,
        f
      );
    }
    f = message.getRelativeinclination();
    if (f !== 0.0) {
      writer.writeDouble(
        8,
        f
      );
    }
    f = message.getTargetrelativespeed();
    if (f !== 0.0) {
      writer.writeDouble(
        9,
        f
      );
    }
    f = message.getTargetdistance();
    if (f !== 0.0) {
      writer.writeDouble(
        10,
        f
      );
    }
  };
  
  
  /**
   * optional double closestApproachTime = 1;
   * @return {number}
   */
  proto.TargetOrbitInfo.prototype.getClosestapproachtime = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));
  };
  
  
  /** @param {number} value */
  proto.TargetOrbitInfo.prototype.setClosestapproachtime = function(value) {
    jspb.Message.setProto3FloatField(this, 1, value);
  };
  
  
  /**
   * optional double timeToClosestApproach = 2;
   * @return {number}
   */
  proto.TargetOrbitInfo.prototype.getTimetoclosestapproach = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));
  };
  
  
  /** @param {number} value */
  proto.TargetOrbitInfo.prototype.setTimetoclosestapproach = function(value) {
    jspb.Message.setProto3FloatField(this, 2, value);
  };
  
  
  /**
   * optional double closestApproachDistance = 3;
   * @return {number}
   */
  proto.TargetOrbitInfo.prototype.getClosestapproachdistance = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));
  };
  
  
  /** @param {number} value */
  proto.TargetOrbitInfo.prototype.setClosestapproachdistance = function(value) {
    jspb.Message.setProto3FloatField(this, 3, value);
  };
  
  
  /**
   * optional double trueAnomalyAtAN = 4;
   * @return {number}
   */
  proto.TargetOrbitInfo.prototype.getTrueanomalyatan = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));
  };
  
  
  /** @param {number} value */
  proto.TargetOrbitInfo.prototype.setTrueanomalyatan = function(value) {
    jspb.Message.setProto3FloatField(this, 4, value);
  };
  
  
  /**
   * optional double timeToTargetAN = 5;
   * @return {number}
   */
  proto.TargetOrbitInfo.prototype.getTimetotargetan = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 5, 0.0));
  };
  
  
  /** @param {number} value */
  proto.TargetOrbitInfo.prototype.setTimetotargetan = function(value) {
    jspb.Message.setProto3FloatField(this, 5, value);
  };
  
  
  /**
   * optional double trueAnomalyAtDN = 6;
   * @return {number}
   */
  proto.TargetOrbitInfo.prototype.getTrueanomalyatdn = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 6, 0.0));
  };
  
  
  /** @param {number} value */
  proto.TargetOrbitInfo.prototype.setTrueanomalyatdn = function(value) {
    jspb.Message.setProto3FloatField(this, 6, value);
  };
  
  
  /**
   * optional double timeToTargetDN = 7;
   * @return {number}
   */
  proto.TargetOrbitInfo.prototype.getTimetotargetdn = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 7, 0.0));
  };
  
  
  /** @param {number} value */
  proto.TargetOrbitInfo.prototype.setTimetotargetdn = function(value) {
    jspb.Message.setProto3FloatField(this, 7, value);
  };
  
  
  /**
   * optional double relativeInclination = 8;
   * @return {number}
   */
  proto.TargetOrbitInfo.prototype.getRelativeinclination = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 8, 0.0));
  };
  
  
  /** @param {number} value */
  proto.TargetOrbitInfo.prototype.setRelativeinclination = function(value) {
    jspb.Message.setProto3FloatField(this, 8, value);
  };
  
  
  /**
   * optional double targetRelativeSpeed = 9;
   * @return {number}
   */
  proto.TargetOrbitInfo.prototype.getTargetrelativespeed = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 9, 0.0));
  };
  
  
  /** @param {number} value */
  proto.TargetOrbitInfo.prototype.setTargetrelativespeed = function(value) {
    jspb.Message.setProto3FloatField(this, 9, value);
  };
  
  
  /**
   * optional double targetDistance = 10;
   * @return {number}
   */
  proto.TargetOrbitInfo.prototype.getTargetdistance = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 10, 0.0));
  };
  
  
  /** @param {number} value */
  proto.TargetOrbitInfo.prototype.setTargetdistance = function(value) {
    jspb.Message.setProto3FloatField(this, 10, value);
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.GetTargetVesselOrbitInfoResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.GetTargetVesselOrbitInfoResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.GetTargetVesselOrbitInfoResponse.displayName = 'proto.GetTargetVesselOrbitInfoResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.GetTargetVesselOrbitInfoResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.GetTargetVesselOrbitInfoResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.GetTargetVesselOrbitInfoResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetTargetVesselOrbitInfoResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      orbit: (f = msg.getOrbit()) && proto.Orbit.toObject(includeInstance, f),
      targetorbit: (f = msg.getTargetorbit()) && proto.Orbit.toObject(includeInstance, f),
      targetorbitinfo: (f = msg.getTargetorbitinfo()) && proto.TargetOrbitInfo.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.GetTargetVesselOrbitInfoResponse}
   */
  proto.GetTargetVesselOrbitInfoResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.GetTargetVesselOrbitInfoResponse;
    return proto.GetTargetVesselOrbitInfoResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.GetTargetVesselOrbitInfoResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.GetTargetVesselOrbitInfoResponse}
   */
  proto.GetTargetVesselOrbitInfoResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setOrbit(value);
        break;
      case 2:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setTargetorbit(value);
        break;
      case 3:
        var value = new proto.TargetOrbitInfo;
        reader.readMessage(value,proto.TargetOrbitInfo.deserializeBinaryFromReader);
        msg.setTargetorbitinfo(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.GetTargetVesselOrbitInfoResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.GetTargetVesselOrbitInfoResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.GetTargetVesselOrbitInfoResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetTargetVesselOrbitInfoResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getOrbit();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getTargetorbit();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getTargetorbitinfo();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        proto.TargetOrbitInfo.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional Orbit orbit = 1;
   * @return {?proto.Orbit}
   */
  proto.GetTargetVesselOrbitInfoResponse.prototype.getOrbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 1));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.GetTargetVesselOrbitInfoResponse.prototype.setOrbit = function(value) {
    jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  proto.GetTargetVesselOrbitInfoResponse.prototype.clearOrbit = function() {
    this.setOrbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetVesselOrbitInfoResponse.prototype.hasOrbit = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * optional Orbit targetOrbit = 2;
   * @return {?proto.Orbit}
   */
  proto.GetTargetVesselOrbitInfoResponse.prototype.getTargetorbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 2));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.GetTargetVesselOrbitInfoResponse.prototype.setTargetorbit = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.GetTargetVesselOrbitInfoResponse.prototype.clearTargetorbit = function() {
    this.setTargetorbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetVesselOrbitInfoResponse.prototype.hasTargetorbit = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  /**
   * optional TargetOrbitInfo targetOrbitInfo = 3;
   * @return {?proto.TargetOrbitInfo}
   */
  proto.GetTargetVesselOrbitInfoResponse.prototype.getTargetorbitinfo = function() {
    return /** @type{?proto.TargetOrbitInfo} */ (
      jspb.Message.getWrapperField(this, proto.TargetOrbitInfo, 3));
  };
  
  
  /** @param {?proto.TargetOrbitInfo|undefined} value */
  proto.GetTargetVesselOrbitInfoResponse.prototype.setTargetorbitinfo = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.GetTargetVesselOrbitInfoResponse.prototype.clearTargetorbitinfo = function() {
    this.setTargetorbitinfo(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetVesselOrbitInfoResponse.prototype.hasTargetorbitinfo = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.GetTargetBodyOrbitInfoResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.GetTargetBodyOrbitInfoResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.GetTargetBodyOrbitInfoResponse.displayName = 'proto.GetTargetBodyOrbitInfoResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.GetTargetBodyOrbitInfoResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.GetTargetBodyOrbitInfoResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.GetTargetBodyOrbitInfoResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetTargetBodyOrbitInfoResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      orbit: (f = msg.getOrbit()) && proto.Orbit.toObject(includeInstance, f),
      targetorbit: (f = msg.getTargetorbit()) && proto.Orbit.toObject(includeInstance, f),
      targetorbitinfo: (f = msg.getTargetorbitinfo()) && proto.TargetOrbitInfo.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.GetTargetBodyOrbitInfoResponse}
   */
  proto.GetTargetBodyOrbitInfoResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.GetTargetBodyOrbitInfoResponse;
    return proto.GetTargetBodyOrbitInfoResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.GetTargetBodyOrbitInfoResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.GetTargetBodyOrbitInfoResponse}
   */
  proto.GetTargetBodyOrbitInfoResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setOrbit(value);
        break;
      case 2:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setTargetorbit(value);
        break;
      case 3:
        var value = new proto.TargetOrbitInfo;
        reader.readMessage(value,proto.TargetOrbitInfo.deserializeBinaryFromReader);
        msg.setTargetorbitinfo(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.GetTargetBodyOrbitInfoResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.GetTargetBodyOrbitInfoResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.GetTargetBodyOrbitInfoResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetTargetBodyOrbitInfoResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getOrbit();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getTargetorbit();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getTargetorbitinfo();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        proto.TargetOrbitInfo.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional Orbit orbit = 1;
   * @return {?proto.Orbit}
   */
  proto.GetTargetBodyOrbitInfoResponse.prototype.getOrbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 1));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.GetTargetBodyOrbitInfoResponse.prototype.setOrbit = function(value) {
    jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  proto.GetTargetBodyOrbitInfoResponse.prototype.clearOrbit = function() {
    this.setOrbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetBodyOrbitInfoResponse.prototype.hasOrbit = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * optional Orbit targetOrbit = 2;
   * @return {?proto.Orbit}
   */
  proto.GetTargetBodyOrbitInfoResponse.prototype.getTargetorbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 2));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.GetTargetBodyOrbitInfoResponse.prototype.setTargetorbit = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.GetTargetBodyOrbitInfoResponse.prototype.clearTargetorbit = function() {
    this.setTargetorbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetBodyOrbitInfoResponse.prototype.hasTargetorbit = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  /**
   * optional TargetOrbitInfo targetOrbitInfo = 3;
   * @return {?proto.TargetOrbitInfo}
   */
  proto.GetTargetBodyOrbitInfoResponse.prototype.getTargetorbitinfo = function() {
    return /** @type{?proto.TargetOrbitInfo} */ (
      jspb.Message.getWrapperField(this, proto.TargetOrbitInfo, 3));
  };
  
  
  /** @param {?proto.TargetOrbitInfo|undefined} value */
  proto.GetTargetBodyOrbitInfoResponse.prototype.setTargetorbitinfo = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.GetTargetBodyOrbitInfoResponse.prototype.clearTargetorbitinfo = function() {
    this.setTargetorbitinfo(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetBodyOrbitInfoResponse.prototype.hasTargetorbitinfo = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.displayName = 'proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      nextorbit: (f = msg.getNextorbit()) && proto.Orbit.toObject(includeInstance, f),
      targetorbit: (f = msg.getTargetorbit()) && proto.Orbit.toObject(includeInstance, f),
      targetorbitinfo: (f = msg.getTargetorbitinfo()) && proto.TargetOrbitInfo.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse}
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse;
    return proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse}
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setNextorbit(value);
        break;
      case 2:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setTargetorbit(value);
        break;
      case 3:
        var value = new proto.TargetOrbitInfo;
        reader.readMessage(value,proto.TargetOrbitInfo.deserializeBinaryFromReader);
        msg.setTargetorbitinfo(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getNextorbit();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getTargetorbit();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getTargetorbitinfo();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        proto.TargetOrbitInfo.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional Orbit nextOrbit = 1;
   * @return {?proto.Orbit}
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.getNextorbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 1));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.setNextorbit = function(value) {
    jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.clearNextorbit = function() {
    this.setNextorbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.hasNextorbit = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * optional Orbit targetOrbit = 2;
   * @return {?proto.Orbit}
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.getTargetorbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 2));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.setTargetorbit = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.clearTargetorbit = function() {
    this.setTargetorbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.hasTargetorbit = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  /**
   * optional TargetOrbitInfo targetOrbitInfo = 3;
   * @return {?proto.TargetOrbitInfo}
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.getTargetorbitinfo = function() {
    return /** @type{?proto.TargetOrbitInfo} */ (
      jspb.Message.getWrapperField(this, proto.TargetOrbitInfo, 3));
  };
  
  
  /** @param {?proto.TargetOrbitInfo|undefined} value */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.setTargetorbitinfo = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.clearTargetorbitinfo = function() {
    this.setTargetorbitinfo(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetVesselOrbitInfoFromManeuverNodeResponse.prototype.hasTargetorbitinfo = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.displayName = 'proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      nextorbit: (f = msg.getNextorbit()) && proto.Orbit.toObject(includeInstance, f),
      targetorbit: (f = msg.getTargetorbit()) && proto.Orbit.toObject(includeInstance, f),
      targetorbitinfo: (f = msg.getTargetorbitinfo()) && proto.TargetOrbitInfo.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse}
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse;
    return proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse}
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setNextorbit(value);
        break;
      case 2:
        var value = new proto.Orbit;
        reader.readMessage(value,proto.Orbit.deserializeBinaryFromReader);
        msg.setTargetorbit(value);
        break;
      case 3:
        var value = new proto.TargetOrbitInfo;
        reader.readMessage(value,proto.TargetOrbitInfo.deserializeBinaryFromReader);
        msg.setTargetorbitinfo(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getNextorbit();
    if (f != null) {
      writer.writeMessage(
        1,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getTargetorbit();
    if (f != null) {
      writer.writeMessage(
        2,
        f,
        proto.Orbit.serializeBinaryToWriter
      );
    }
    f = message.getTargetorbitinfo();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        proto.TargetOrbitInfo.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional Orbit nextOrbit = 1;
   * @return {?proto.Orbit}
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.getNextorbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 1));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.setNextorbit = function(value) {
    jspb.Message.setWrapperField(this, 1, value);
  };
  
  
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.clearNextorbit = function() {
    this.setNextorbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.hasNextorbit = function() {
    return jspb.Message.getField(this, 1) != null;
  };
  
  
  /**
   * optional Orbit targetOrbit = 2;
   * @return {?proto.Orbit}
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.getTargetorbit = function() {
    return /** @type{?proto.Orbit} */ (
      jspb.Message.getWrapperField(this, proto.Orbit, 2));
  };
  
  
  /** @param {?proto.Orbit|undefined} value */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.setTargetorbit = function(value) {
    jspb.Message.setWrapperField(this, 2, value);
  };
  
  
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.clearTargetorbit = function() {
    this.setTargetorbit(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.hasTargetorbit = function() {
    return jspb.Message.getField(this, 2) != null;
  };
  
  
  /**
   * optional TargetOrbitInfo targetOrbitInfo = 3;
   * @return {?proto.TargetOrbitInfo}
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.getTargetorbitinfo = function() {
    return /** @type{?proto.TargetOrbitInfo} */ (
      jspb.Message.getWrapperField(this, proto.TargetOrbitInfo, 3));
  };
  
  
  /** @param {?proto.TargetOrbitInfo|undefined} value */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.setTargetorbitinfo = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.clearTargetorbitinfo = function() {
    this.setTargetorbitinfo(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetBodyOrbitInfoFromManeuverNodeResponse.prototype.hasTargetorbitinfo = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.GetTargetDockingPortInfoResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.GetTargetDockingPortInfoResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.GetTargetDockingPortInfoResponse.displayName = 'proto.GetTargetDockingPortInfoResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.GetTargetDockingPortInfoResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.GetTargetDockingPortInfoResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetTargetDockingPortInfoResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      targetvesselname: jspb.Message.getFieldWithDefault(msg, 1, ""),
      targetpartname: jspb.Message.getFieldWithDefault(msg, 2, ""),
      targetparttag: jspb.Message.getFieldWithDefault(msg, 3, ""),
      relativeangles: (f = msg.getRelativeangles()) && observor_pb.Vector3d.toObject(includeInstance, f),
      relativedistance: (f = msg.getRelativedistance()) && observor_pb.Vector3d.toObject(includeInstance, f),
      relativevelocity: (f = msg.getRelativevelocity()) && observor_pb.Vector3d.toObject(includeInstance, f),
      distance: +jspb.Message.getFieldWithDefault(msg, 7, 0.0),
      relativespeed: +jspb.Message.getFieldWithDefault(msg, 8, 0.0)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.GetTargetDockingPortInfoResponse}
   */
  proto.GetTargetDockingPortInfoResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.GetTargetDockingPortInfoResponse;
    return proto.GetTargetDockingPortInfoResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.GetTargetDockingPortInfoResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.GetTargetDockingPortInfoResponse}
   */
  proto.GetTargetDockingPortInfoResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {string} */ (reader.readString());
        msg.setTargetvesselname(value);
        break;
      case 2:
        var value = /** @type {string} */ (reader.readString());
        msg.setTargetpartname(value);
        break;
      case 3:
        var value = /** @type {string} */ (reader.readString());
        msg.setTargetparttag(value);
        break;
      case 4:
        var value = new observor_pb.Vector3d;
        reader.readMessage(value,observor_pb.Vector3d.deserializeBinaryFromReader);
        msg.setRelativeangles(value);
        break;
      case 5:
        var value = new observor_pb.Vector3d;
        reader.readMessage(value,observor_pb.Vector3d.deserializeBinaryFromReader);
        msg.setRelativedistance(value);
        break;
      case 6:
        var value = new observor_pb.Vector3d;
        reader.readMessage(value,observor_pb.Vector3d.deserializeBinaryFromReader);
        msg.setRelativevelocity(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setDistance(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setRelativespeed(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.GetTargetDockingPortInfoResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.GetTargetDockingPortInfoResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetTargetDockingPortInfoResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getTargetvesselname();
    if (f.length > 0) {
      writer.writeString(
        1,
        f
      );
    }
    f = message.getTargetpartname();
    if (f.length > 0) {
      writer.writeString(
        2,
        f
      );
    }
    f = message.getTargetparttag();
    if (f.length > 0) {
      writer.writeString(
        3,
        f
      );
    }
    f = message.getRelativeangles();
    if (f != null) {
      writer.writeMessage(
        4,
        f,
        observor_pb.Vector3d.serializeBinaryToWriter
      );
    }
    f = message.getRelativedistance();
    if (f != null) {
      writer.writeMessage(
        5,
        f,
        observor_pb.Vector3d.serializeBinaryToWriter
      );
    }
    f = message.getRelativevelocity();
    if (f != null) {
      writer.writeMessage(
        6,
        f,
        observor_pb.Vector3d.serializeBinaryToWriter
      );
    }
    f = message.getDistance();
    if (f !== 0.0) {
      writer.writeDouble(
        7,
        f
      );
    }
    f = message.getRelativespeed();
    if (f !== 0.0) {
      writer.writeDouble(
        8,
        f
      );
    }
  };
  
  
  /**
   * optional string targetVesselName = 1;
   * @return {string}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.getTargetvesselname = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
  };
  
  
  /** @param {string} value */
  proto.GetTargetDockingPortInfoResponse.prototype.setTargetvesselname = function(value) {
    jspb.Message.setProto3StringField(this, 1, value);
  };
  
  
  /**
   * optional string targetPartName = 2;
   * @return {string}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.getTargetpartname = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
  };
  
  
  /** @param {string} value */
  proto.GetTargetDockingPortInfoResponse.prototype.setTargetpartname = function(value) {
    jspb.Message.setProto3StringField(this, 2, value);
  };
  
  
  /**
   * optional string targetPartTag = 3;
   * @return {string}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.getTargetparttag = function() {
    return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
  };
  
  
  /** @param {string} value */
  proto.GetTargetDockingPortInfoResponse.prototype.setTargetparttag = function(value) {
    jspb.Message.setProto3StringField(this, 3, value);
  };
  
  
  /**
   * optional Vector3d relativeAngles = 4;
   * @return {?proto.Vector3d}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.getRelativeangles = function() {
    return /** @type{?proto.Vector3d} */ (
      jspb.Message.getWrapperField(this, observor_pb.Vector3d, 4));
  };
  
  
  /** @param {?proto.Vector3d|undefined} value */
  proto.GetTargetDockingPortInfoResponse.prototype.setRelativeangles = function(value) {
    jspb.Message.setWrapperField(this, 4, value);
  };
  
  
  proto.GetTargetDockingPortInfoResponse.prototype.clearRelativeangles = function() {
    this.setRelativeangles(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.hasRelativeangles = function() {
    return jspb.Message.getField(this, 4) != null;
  };
  
  
  /**
   * optional Vector3d relativeDistance = 5;
   * @return {?proto.Vector3d}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.getRelativedistance = function() {
    return /** @type{?proto.Vector3d} */ (
      jspb.Message.getWrapperField(this, observor_pb.Vector3d, 5));
  };
  
  
  /** @param {?proto.Vector3d|undefined} value */
  proto.GetTargetDockingPortInfoResponse.prototype.setRelativedistance = function(value) {
    jspb.Message.setWrapperField(this, 5, value);
  };
  
  
  proto.GetTargetDockingPortInfoResponse.prototype.clearRelativedistance = function() {
    this.setRelativedistance(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.hasRelativedistance = function() {
    return jspb.Message.getField(this, 5) != null;
  };
  
  
  /**
   * optional Vector3d relativeVelocity = 6;
   * @return {?proto.Vector3d}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.getRelativevelocity = function() {
    return /** @type{?proto.Vector3d} */ (
      jspb.Message.getWrapperField(this, observor_pb.Vector3d, 6));
  };
  
  
  /** @param {?proto.Vector3d|undefined} value */
  proto.GetTargetDockingPortInfoResponse.prototype.setRelativevelocity = function(value) {
    jspb.Message.setWrapperField(this, 6, value);
  };
  
  
  proto.GetTargetDockingPortInfoResponse.prototype.clearRelativevelocity = function() {
    this.setRelativevelocity(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.hasRelativevelocity = function() {
    return jspb.Message.getField(this, 6) != null;
  };
  
  
  /**
   * optional double distance = 7;
   * @return {number}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.getDistance = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 7, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetTargetDockingPortInfoResponse.prototype.setDistance = function(value) {
    jspb.Message.setProto3FloatField(this, 7, value);
  };
  
  
  /**
   * optional double relativeSpeed = 8;
   * @return {number}
   */
  proto.GetTargetDockingPortInfoResponse.prototype.getRelativespeed = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 8, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetTargetDockingPortInfoResponse.prototype.setRelativespeed = function(value) {
    jspb.Message.setProto3FloatField(this, 8, value);
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.GetVerticalLandingInfoResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.GetVerticalLandingInfoResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.GetVerticalLandingInfoResponse.displayName = 'proto.GetVerticalLandingInfoResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.GetVerticalLandingInfoResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.GetVerticalLandingInfoResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.GetVerticalLandingInfoResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetVerticalLandingInfoResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      yaw: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),
      pitch: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),
      velocity: (f = msg.getVelocity()) && observor_pb.Vector3d.toObject(includeInstance, f),
      acceleration: (f = msg.getAcceleration()) && observor_pb.Vector3d.toObject(includeInstance, f),
      surfacealtitude: +jspb.Message.getFieldWithDefault(msg, 5, 0.0),
      surfaceslope: +jspb.Message.getFieldWithDefault(msg, 6, 0.0)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.GetVerticalLandingInfoResponse}
   */
  proto.GetVerticalLandingInfoResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.GetVerticalLandingInfoResponse;
    return proto.GetVerticalLandingInfoResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.GetVerticalLandingInfoResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.GetVerticalLandingInfoResponse}
   */
  proto.GetVerticalLandingInfoResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setYaw(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setPitch(value);
        break;
      case 3:
        var value = new observor_pb.Vector3d;
        reader.readMessage(value,observor_pb.Vector3d.deserializeBinaryFromReader);
        msg.setVelocity(value);
        break;
      case 4:
        var value = new observor_pb.Vector3d;
        reader.readMessage(value,observor_pb.Vector3d.deserializeBinaryFromReader);
        msg.setAcceleration(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSurfacealtitude(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSurfaceslope(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.GetVerticalLandingInfoResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.GetVerticalLandingInfoResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.GetVerticalLandingInfoResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetVerticalLandingInfoResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getYaw();
    if (f !== 0.0) {
      writer.writeDouble(
        1,
        f
      );
    }
    f = message.getPitch();
    if (f !== 0.0) {
      writer.writeDouble(
        2,
        f
      );
    }
    f = message.getVelocity();
    if (f != null) {
      writer.writeMessage(
        3,
        f,
        observor_pb.Vector3d.serializeBinaryToWriter
      );
    }
    f = message.getAcceleration();
    if (f != null) {
      writer.writeMessage(
        4,
        f,
        observor_pb.Vector3d.serializeBinaryToWriter
      );
    }
    f = message.getSurfacealtitude();
    if (f !== 0.0) {
      writer.writeDouble(
        5,
        f
      );
    }
    f = message.getSurfaceslope();
    if (f !== 0.0) {
      writer.writeDouble(
        6,
        f
      );
    }
  };
  
  
  /**
   * optional double yaw = 1;
   * @return {number}
   */
  proto.GetVerticalLandingInfoResponse.prototype.getYaw = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetVerticalLandingInfoResponse.prototype.setYaw = function(value) {
    jspb.Message.setProto3FloatField(this, 1, value);
  };
  
  
  /**
   * optional double pitch = 2;
   * @return {number}
   */
  proto.GetVerticalLandingInfoResponse.prototype.getPitch = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetVerticalLandingInfoResponse.prototype.setPitch = function(value) {
    jspb.Message.setProto3FloatField(this, 2, value);
  };
  
  
  /**
   * optional Vector3d velocity = 3;
   * @return {?proto.Vector3d}
   */
  proto.GetVerticalLandingInfoResponse.prototype.getVelocity = function() {
    return /** @type{?proto.Vector3d} */ (
      jspb.Message.getWrapperField(this, observor_pb.Vector3d, 3));
  };
  
  
  /** @param {?proto.Vector3d|undefined} value */
  proto.GetVerticalLandingInfoResponse.prototype.setVelocity = function(value) {
    jspb.Message.setWrapperField(this, 3, value);
  };
  
  
  proto.GetVerticalLandingInfoResponse.prototype.clearVelocity = function() {
    this.setVelocity(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetVerticalLandingInfoResponse.prototype.hasVelocity = function() {
    return jspb.Message.getField(this, 3) != null;
  };
  
  
  /**
   * optional Vector3d acceleration = 4;
   * @return {?proto.Vector3d}
   */
  proto.GetVerticalLandingInfoResponse.prototype.getAcceleration = function() {
    return /** @type{?proto.Vector3d} */ (
      jspb.Message.getWrapperField(this, observor_pb.Vector3d, 4));
  };
  
  
  /** @param {?proto.Vector3d|undefined} value */
  proto.GetVerticalLandingInfoResponse.prototype.setAcceleration = function(value) {
    jspb.Message.setWrapperField(this, 4, value);
  };
  
  
  proto.GetVerticalLandingInfoResponse.prototype.clearAcceleration = function() {
    this.setAcceleration(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetVerticalLandingInfoResponse.prototype.hasAcceleration = function() {
    return jspb.Message.getField(this, 4) != null;
  };
  
  
  /**
   * optional double surfaceAltitude = 5;
   * @return {number}
   */
  proto.GetVerticalLandingInfoResponse.prototype.getSurfacealtitude = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 5, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetVerticalLandingInfoResponse.prototype.setSurfacealtitude = function(value) {
    jspb.Message.setProto3FloatField(this, 5, value);
  };
  
  
  /**
   * optional double surfaceSlope = 6;
   * @return {number}
   */
  proto.GetVerticalLandingInfoResponse.prototype.getSurfaceslope = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 6, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetVerticalLandingInfoResponse.prototype.setSurfaceslope = function(value) {
    jspb.Message.setProto3FloatField(this, 6, value);
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.GetReentryInfoResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.GetReentryInfoResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.GetReentryInfoResponse.displayName = 'proto.GetReentryInfoResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.GetReentryInfoResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.GetReentryInfoResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.GetReentryInfoResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetReentryInfoResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      surfacealtitude: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),
      airspeed: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),
      mach: +jspb.Message.getFieldWithDefault(msg, 3, 0.0),
      surfacespeed: +jspb.Message.getFieldWithDefault(msg, 4, 0.0),
      terminalspeed: +jspb.Message.getFieldWithDefault(msg, 5, 0.0),
      externaltemperature: +jspb.Message.getFieldWithDefault(msg, 6, 0.0),
      totaltemperature: +jspb.Message.getFieldWithDefault(msg, 7, 0.0),
      statictemperature: +jspb.Message.getFieldWithDefault(msg, 8, 0.0),
      podtemperature: +jspb.Message.getFieldWithDefault(msg, 9, 0.0),
      podskintemperature: +jspb.Message.getFieldWithDefault(msg, 10, 0.0),
      podmaxskintemperature: +jspb.Message.getFieldWithDefault(msg, 11, 0.0),
      shieldtemperature: +jspb.Message.getFieldWithDefault(msg, 12, 0.0),
      shieldskintemperature: +jspb.Message.getFieldWithDefault(msg, 13, 0.0),
      shieldmaxskintemperature: +jspb.Message.getFieldWithDefault(msg, 14, 0.0),
      drag: +jspb.Message.getFieldWithDefault(msg, 15, 0.0),
      dragacc: +jspb.Message.getFieldWithDefault(msg, 16, 0.0),
      ablator: (f = msg.getAblator()) && observor_pb.VesselResource.toObject(includeInstance, f),
      dynamicpressure: +jspb.Message.getFieldWithDefault(msg, 18, 0.0),
      acceleration: (f = msg.getAcceleration()) && observor_pb.Vector3d.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.GetReentryInfoResponse}
   */
  proto.GetReentryInfoResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.GetReentryInfoResponse;
    return proto.GetReentryInfoResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.GetReentryInfoResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.GetReentryInfoResponse}
   */
  proto.GetReentryInfoResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSurfacealtitude(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setAirspeed(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setMach(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSurfacespeed(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTerminalspeed(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setExternaltemperature(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setTotaltemperature(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setStatictemperature(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setPodtemperature(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setPodskintemperature(value);
        break;
      case 11:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setPodmaxskintemperature(value);
        break;
      case 12:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setShieldtemperature(value);
        break;
      case 13:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setShieldskintemperature(value);
        break;
      case 14:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setShieldmaxskintemperature(value);
        break;
      case 15:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setDrag(value);
        break;
      case 16:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setDragacc(value);
        break;
      case 17:
        var value = new observor_pb.VesselResource;
        reader.readMessage(value,observor_pb.VesselResource.deserializeBinaryFromReader);
        msg.setAblator(value);
        break;
      case 18:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setDynamicpressure(value);
        break;
      case 19:
        var value = new observor_pb.Vector3d;
        reader.readMessage(value,observor_pb.Vector3d.deserializeBinaryFromReader);
        msg.setAcceleration(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.GetReentryInfoResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.GetReentryInfoResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.GetReentryInfoResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetReentryInfoResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getSurfacealtitude();
    if (f !== 0.0) {
      writer.writeDouble(
        1,
        f
      );
    }
    f = message.getAirspeed();
    if (f !== 0.0) {
      writer.writeDouble(
        2,
        f
      );
    }
    f = message.getMach();
    if (f !== 0.0) {
      writer.writeDouble(
        3,
        f
      );
    }
    f = message.getSurfacespeed();
    if (f !== 0.0) {
      writer.writeDouble(
        4,
        f
      );
    }
    f = message.getTerminalspeed();
    if (f !== 0.0) {
      writer.writeDouble(
        5,
        f
      );
    }
    f = message.getExternaltemperature();
    if (f !== 0.0) {
      writer.writeDouble(
        6,
        f
      );
    }
    f = message.getTotaltemperature();
    if (f !== 0.0) {
      writer.writeDouble(
        7,
        f
      );
    }
    f = message.getStatictemperature();
    if (f !== 0.0) {
      writer.writeDouble(
        8,
        f
      );
    }
    f = message.getPodtemperature();
    if (f !== 0.0) {
      writer.writeDouble(
        9,
        f
      );
    }
    f = message.getPodskintemperature();
    if (f !== 0.0) {
      writer.writeDouble(
        10,
        f
      );
    }
    f = message.getPodmaxskintemperature();
    if (f !== 0.0) {
      writer.writeDouble(
        11,
        f
      );
    }
    f = message.getShieldtemperature();
    if (f !== 0.0) {
      writer.writeDouble(
        12,
        f
      );
    }
    f = message.getShieldskintemperature();
    if (f !== 0.0) {
      writer.writeDouble(
        13,
        f
      );
    }
    f = message.getShieldmaxskintemperature();
    if (f !== 0.0) {
      writer.writeDouble(
        14,
        f
      );
    }
    f = message.getDrag();
    if (f !== 0.0) {
      writer.writeDouble(
        15,
        f
      );
    }
    f = message.getDragacc();
    if (f !== 0.0) {
      writer.writeDouble(
        16,
        f
      );
    }
    f = message.getAblator();
    if (f != null) {
      writer.writeMessage(
        17,
        f,
        observor_pb.VesselResource.serializeBinaryToWriter
      );
    }
    f = message.getDynamicpressure();
    if (f !== 0.0) {
      writer.writeDouble(
        18,
        f
      );
    }
    f = message.getAcceleration();
    if (f != null) {
      writer.writeMessage(
        19,
        f,
        observor_pb.Vector3d.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional double surfaceAltitude = 1;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getSurfacealtitude = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setSurfacealtitude = function(value) {
    jspb.Message.setProto3FloatField(this, 1, value);
  };
  
  
  /**
   * optional double airSpeed = 2;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getAirspeed = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setAirspeed = function(value) {
    jspb.Message.setProto3FloatField(this, 2, value);
  };
  
  
  /**
   * optional double mach = 3;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getMach = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setMach = function(value) {
    jspb.Message.setProto3FloatField(this, 3, value);
  };
  
  
  /**
   * optional double surfaceSpeed = 4;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getSurfacespeed = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setSurfacespeed = function(value) {
    jspb.Message.setProto3FloatField(this, 4, value);
  };
  
  
  /**
   * optional double terminalSpeed = 5;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getTerminalspeed = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 5, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setTerminalspeed = function(value) {
    jspb.Message.setProto3FloatField(this, 5, value);
  };
  
  
  /**
   * optional double externalTemperature = 6;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getExternaltemperature = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 6, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setExternaltemperature = function(value) {
    jspb.Message.setProto3FloatField(this, 6, value);
  };
  
  
  /**
   * optional double totalTemperature = 7;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getTotaltemperature = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 7, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setTotaltemperature = function(value) {
    jspb.Message.setProto3FloatField(this, 7, value);
  };
  
  
  /**
   * optional double staticTemperature = 8;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getStatictemperature = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 8, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setStatictemperature = function(value) {
    jspb.Message.setProto3FloatField(this, 8, value);
  };
  
  
  /**
   * optional double podTemperature = 9;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getPodtemperature = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 9, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setPodtemperature = function(value) {
    jspb.Message.setProto3FloatField(this, 9, value);
  };
  
  
  /**
   * optional double podSkinTemperature = 10;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getPodskintemperature = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 10, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setPodskintemperature = function(value) {
    jspb.Message.setProto3FloatField(this, 10, value);
  };
  
  
  /**
   * optional double podMaxSkinTemperature = 11;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getPodmaxskintemperature = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 11, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setPodmaxskintemperature = function(value) {
    jspb.Message.setProto3FloatField(this, 11, value);
  };
  
  
  /**
   * optional double shieldTemperature = 12;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getShieldtemperature = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 12, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setShieldtemperature = function(value) {
    jspb.Message.setProto3FloatField(this, 12, value);
  };
  
  
  /**
   * optional double shieldSkinTemperature = 13;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getShieldskintemperature = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 13, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setShieldskintemperature = function(value) {
    jspb.Message.setProto3FloatField(this, 13, value);
  };
  
  
  /**
   * optional double shieldMaxSkinTemperature = 14;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getShieldmaxskintemperature = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 14, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setShieldmaxskintemperature = function(value) {
    jspb.Message.setProto3FloatField(this, 14, value);
  };
  
  
  /**
   * optional double drag = 15;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getDrag = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 15, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setDrag = function(value) {
    jspb.Message.setProto3FloatField(this, 15, value);
  };
  
  
  /**
   * optional double dragAcc = 16;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getDragacc = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 16, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setDragacc = function(value) {
    jspb.Message.setProto3FloatField(this, 16, value);
  };
  
  
  /**
   * optional VesselResource ablator = 17;
   * @return {?proto.VesselResource}
   */
  proto.GetReentryInfoResponse.prototype.getAblator = function() {
    return /** @type{?proto.VesselResource} */ (
      jspb.Message.getWrapperField(this, observor_pb.VesselResource, 17));
  };
  
  
  /** @param {?proto.VesselResource|undefined} value */
  proto.GetReentryInfoResponse.prototype.setAblator = function(value) {
    jspb.Message.setWrapperField(this, 17, value);
  };
  
  
  proto.GetReentryInfoResponse.prototype.clearAblator = function() {
    this.setAblator(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetReentryInfoResponse.prototype.hasAblator = function() {
    return jspb.Message.getField(this, 17) != null;
  };
  
  
  /**
   * optional double dynamicPressure = 18;
   * @return {number}
   */
  proto.GetReentryInfoResponse.prototype.getDynamicpressure = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 18, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetReentryInfoResponse.prototype.setDynamicpressure = function(value) {
    jspb.Message.setProto3FloatField(this, 18, value);
  };
  
  
  /**
   * optional Vector3d acceleration = 19;
   * @return {?proto.Vector3d}
   */
  proto.GetReentryInfoResponse.prototype.getAcceleration = function() {
    return /** @type{?proto.Vector3d} */ (
      jspb.Message.getWrapperField(this, observor_pb.Vector3d, 19));
  };
  
  
  /** @param {?proto.Vector3d|undefined} value */
  proto.GetReentryInfoResponse.prototype.setAcceleration = function(value) {
    jspb.Message.setWrapperField(this, 19, value);
  };
  
  
  proto.GetReentryInfoResponse.prototype.clearAcceleration = function() {
    this.setAcceleration(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetReentryInfoResponse.prototype.hasAcceleration = function() {
    return jspb.Message.getField(this, 19) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.GetManeuverNodeInfoResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.GetManeuverNodeInfoResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.GetManeuverNodeInfoResponse.displayName = 'proto.GetManeuverNodeInfoResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.GetManeuverNodeInfoResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.GetManeuverNodeInfoResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.GetManeuverNodeInfoResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetManeuverNodeInfoResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      ut: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),
      utpe: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),
      utap: +jspb.Message.getFieldWithDefault(msg, 3, 0.0),
      utan: +jspb.Message.getFieldWithDefault(msg, 4, 0.0),
      utdn: +jspb.Message.getFieldWithDefault(msg, 5, 0.0),
      uttargetan: +jspb.Message.getFieldWithDefault(msg, 6, 0.0),
      uttargetdn: +jspb.Message.getFieldWithDefault(msg, 7, 0.0),
      uttargetclosestapproach: +jspb.Message.getFieldWithDefault(msg, 8, 0.0),
      node: (f = msg.getNode()) && apimessage_pb.ManeuverNode.toObject(includeInstance, f)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.GetManeuverNodeInfoResponse}
   */
  proto.GetManeuverNodeInfoResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.GetManeuverNodeInfoResponse;
    return proto.GetManeuverNodeInfoResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.GetManeuverNodeInfoResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.GetManeuverNodeInfoResponse}
   */
  proto.GetManeuverNodeInfoResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setUt(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setUtpe(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setUtap(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setUtan(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setUtdn(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setUttargetan(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setUttargetdn(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setUttargetclosestapproach(value);
        break;
      case 9:
        var value = new apimessage_pb.ManeuverNode;
        reader.readMessage(value,apimessage_pb.ManeuverNode.deserializeBinaryFromReader);
        msg.setNode(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.GetManeuverNodeInfoResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.GetManeuverNodeInfoResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.GetManeuverNodeInfoResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetManeuverNodeInfoResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getUt();
    if (f !== 0.0) {
      writer.writeDouble(
        1,
        f
      );
    }
    f = message.getUtpe();
    if (f !== 0.0) {
      writer.writeDouble(
        2,
        f
      );
    }
    f = message.getUtap();
    if (f !== 0.0) {
      writer.writeDouble(
        3,
        f
      );
    }
    f = message.getUtan();
    if (f !== 0.0) {
      writer.writeDouble(
        4,
        f
      );
    }
    f = message.getUtdn();
    if (f !== 0.0) {
      writer.writeDouble(
        5,
        f
      );
    }
    f = message.getUttargetan();
    if (f !== 0.0) {
      writer.writeDouble(
        6,
        f
      );
    }
    f = message.getUttargetdn();
    if (f !== 0.0) {
      writer.writeDouble(
        7,
        f
      );
    }
    f = message.getUttargetclosestapproach();
    if (f !== 0.0) {
      writer.writeDouble(
        8,
        f
      );
    }
    f = message.getNode();
    if (f != null) {
      writer.writeMessage(
        9,
        f,
        apimessage_pb.ManeuverNode.serializeBinaryToWriter
      );
    }
  };
  
  
  /**
   * optional double ut = 1;
   * @return {number}
   */
  proto.GetManeuverNodeInfoResponse.prototype.getUt = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetManeuverNodeInfoResponse.prototype.setUt = function(value) {
    jspb.Message.setProto3FloatField(this, 1, value);
  };
  
  
  /**
   * optional double utPe = 2;
   * @return {number}
   */
  proto.GetManeuverNodeInfoResponse.prototype.getUtpe = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetManeuverNodeInfoResponse.prototype.setUtpe = function(value) {
    jspb.Message.setProto3FloatField(this, 2, value);
  };
  
  
  /**
   * optional double utAp = 3;
   * @return {number}
   */
  proto.GetManeuverNodeInfoResponse.prototype.getUtap = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetManeuverNodeInfoResponse.prototype.setUtap = function(value) {
    jspb.Message.setProto3FloatField(this, 3, value);
  };
  
  
  /**
   * optional double utAN = 4;
   * @return {number}
   */
  proto.GetManeuverNodeInfoResponse.prototype.getUtan = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetManeuverNodeInfoResponse.prototype.setUtan = function(value) {
    jspb.Message.setProto3FloatField(this, 4, value);
  };
  
  
  /**
   * optional double utDN = 5;
   * @return {number}
   */
  proto.GetManeuverNodeInfoResponse.prototype.getUtdn = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 5, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetManeuverNodeInfoResponse.prototype.setUtdn = function(value) {
    jspb.Message.setProto3FloatField(this, 5, value);
  };
  
  
  /**
   * optional double utTargetAN = 6;
   * @return {number}
   */
  proto.GetManeuverNodeInfoResponse.prototype.getUttargetan = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 6, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetManeuverNodeInfoResponse.prototype.setUttargetan = function(value) {
    jspb.Message.setProto3FloatField(this, 6, value);
  };
  
  
  /**
   * optional double utTargetDN = 7;
   * @return {number}
   */
  proto.GetManeuverNodeInfoResponse.prototype.getUttargetdn = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 7, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetManeuverNodeInfoResponse.prototype.setUttargetdn = function(value) {
    jspb.Message.setProto3FloatField(this, 7, value);
  };
  
  
  /**
   * optional double utTargetClosestApproach = 8;
   * @return {number}
   */
  proto.GetManeuverNodeInfoResponse.prototype.getUttargetclosestapproach = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 8, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetManeuverNodeInfoResponse.prototype.setUttargetclosestapproach = function(value) {
    jspb.Message.setProto3FloatField(this, 8, value);
  };
  
  
  /**
   * optional ManeuverNode node = 9;
   * @return {?proto.ManeuverNode}
   */
  proto.GetManeuverNodeInfoResponse.prototype.getNode = function() {
    return /** @type{?proto.ManeuverNode} */ (
      jspb.Message.getWrapperField(this, apimessage_pb.ManeuverNode, 9));
  };
  
  
  /** @param {?proto.ManeuverNode|undefined} value */
  proto.GetManeuverNodeInfoResponse.prototype.setNode = function(value) {
    jspb.Message.setWrapperField(this, 9, value);
  };
  
  
  proto.GetManeuverNodeInfoResponse.prototype.clearNode = function() {
    this.setNode(undefined);
  };
  
  
  /**
   * Returns whether this field is set.
   * @return {!boolean}
   */
  proto.GetManeuverNodeInfoResponse.prototype.hasNode = function() {
    return jspb.Message.getField(this, 9) != null;
  };
  
  
  
  /**
   * Generated by JsPbCodeGenerator.
   * @param {Array=} opt_data Optional initial data array, typically from a
   * server response, or constructed directly in Javascript. The array is used
   * in place and becomes part of the constructed object. It is not cloned.
   * If no data is provided, the constructed object will be empty, but still
   * valid.
   * @extends {jspb.Message}
   * @constructor
   */
  proto.GetRunwayLandingInfoResponse = function(opt_data) {
    jspb.Message.initialize(this, opt_data, 0, -1, null, null);
  };
  goog.inherits(proto.GetRunwayLandingInfoResponse, jspb.Message);
  if (goog.DEBUG && !COMPILED) {
    proto.GetRunwayLandingInfoResponse.displayName = 'proto.GetRunwayLandingInfoResponse';
  }
  
  
  if (jspb.Message.GENERATE_TO_OBJECT) {
  /**
   * Creates an object representation of this proto suitable for use in Soy templates.
   * Field names that are reserved in JavaScript and will be renamed to pb_name.
   * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
   * For the list of reserved names please see:
   *     com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
   * @param {boolean=} opt_includeInstance Whether to include the JSPB instance
   *     for transitional soy proto support: http://goto/soy-param-migration
   * @return {!Object}
   */
  proto.GetRunwayLandingInfoResponse.prototype.toObject = function(opt_includeInstance) {
    return proto.GetRunwayLandingInfoResponse.toObject(opt_includeInstance, this);
  };
  
  
  /**
   * Static version of the {@see toObject} method.
   * @param {boolean|undefined} includeInstance Whether to include the JSPB
   *     instance for transitional soy proto support:
   *     http://goto/soy-param-migration
   * @param {!proto.GetRunwayLandingInfoResponse} msg The msg instance to transform.
   * @return {!Object}
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetRunwayLandingInfoResponse.toObject = function(includeInstance, msg) {
    var f, obj = {
      altitude: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),
      distance: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),
      yawoffset: +jspb.Message.getFieldWithDefault(msg, 3, 0.0),
      surfacespeed: +jspb.Message.getFieldWithDefault(msg, 4, 0.0),
      forwarderror: +jspb.Message.getFieldWithDefault(msg, 5, 0.0),
      velocityerror: +jspb.Message.getFieldWithDefault(msg, 6, 0.0),
      pitch: +jspb.Message.getFieldWithDefault(msg, 7, 0.0),
      roll: +jspb.Message.getFieldWithDefault(msg, 8, 0.0),
      verticalspeed: +jspb.Message.getFieldWithDefault(msg, 9, 0.0),
      runwaymeanaltitude: +jspb.Message.getFieldWithDefault(msg, 10, 0.0)
    };
  
    if (includeInstance) {
      obj.$jspbMessageInstance = msg;
    }
    return obj;
  };
  }
  
  
  /**
   * Deserializes binary data (in protobuf wire format).
   * @param {jspb.ByteSource} bytes The bytes to deserialize.
   * @return {!proto.GetRunwayLandingInfoResponse}
   */
  proto.GetRunwayLandingInfoResponse.deserializeBinary = function(bytes) {
    var reader = new jspb.BinaryReader(bytes);
    var msg = new proto.GetRunwayLandingInfoResponse;
    return proto.GetRunwayLandingInfoResponse.deserializeBinaryFromReader(msg, reader);
  };
  
  
  /**
   * Deserializes binary data (in protobuf wire format) from the
   * given reader into the given message object.
   * @param {!proto.GetRunwayLandingInfoResponse} msg The message object to deserialize into.
   * @param {!jspb.BinaryReader} reader The BinaryReader to use.
   * @return {!proto.GetRunwayLandingInfoResponse}
   */
  proto.GetRunwayLandingInfoResponse.deserializeBinaryFromReader = function(msg, reader) {
    while (reader.nextField()) {
      if (reader.isEndGroup()) {
        break;
      }
      var field = reader.getFieldNumber();
      switch (field) {
      case 1:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setAltitude(value);
        break;
      case 2:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setDistance(value);
        break;
      case 3:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setYawoffset(value);
        break;
      case 4:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setSurfacespeed(value);
        break;
      case 5:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setForwarderror(value);
        break;
      case 6:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setVelocityerror(value);
        break;
      case 7:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setPitch(value);
        break;
      case 8:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setRoll(value);
        break;
      case 9:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setVerticalspeed(value);
        break;
      case 10:
        var value = /** @type {number} */ (reader.readDouble());
        msg.setRunwaymeanaltitude(value);
        break;
      default:
        reader.skipField();
        break;
      }
    }
    return msg;
  };
  
  
  /**
   * Serializes the message to binary data (in protobuf wire format).
   * @return {!Uint8Array}
   */
  proto.GetRunwayLandingInfoResponse.prototype.serializeBinary = function() {
    var writer = new jspb.BinaryWriter();
    proto.GetRunwayLandingInfoResponse.serializeBinaryToWriter(this, writer);
    return writer.getResultBuffer();
  };
  
  
  /**
   * Serializes the given message to binary data (in protobuf wire
   * format), writing to the given BinaryWriter.
   * @param {!proto.GetRunwayLandingInfoResponse} message
   * @param {!jspb.BinaryWriter} writer
   * @suppress {unusedLocalVariables} f is only used for nested messages
   */
  proto.GetRunwayLandingInfoResponse.serializeBinaryToWriter = function(message, writer) {
    var f = undefined;
    f = message.getAltitude();
    if (f !== 0.0) {
      writer.writeDouble(
        1,
        f
      );
    }
    f = message.getDistance();
    if (f !== 0.0) {
      writer.writeDouble(
        2,
        f
      );
    }
    f = message.getYawoffset();
    if (f !== 0.0) {
      writer.writeDouble(
        3,
        f
      );
    }
    f = message.getSurfacespeed();
    if (f !== 0.0) {
      writer.writeDouble(
        4,
        f
      );
    }
    f = message.getForwarderror();
    if (f !== 0.0) {
      writer.writeDouble(
        5,
        f
      );
    }
    f = message.getVelocityerror();
    if (f !== 0.0) {
      writer.writeDouble(
        6,
        f
      );
    }
    f = message.getPitch();
    if (f !== 0.0) {
      writer.writeDouble(
        7,
        f
      );
    }
    f = message.getRoll();
    if (f !== 0.0) {
      writer.writeDouble(
        8,
        f
      );
    }
    f = message.getVerticalspeed();
    if (f !== 0.0) {
      writer.writeDouble(
        9,
        f
      );
    }
    f = message.getRunwaymeanaltitude();
    if (f !== 0.0) {
      writer.writeDouble(
        10,
        f
      );
    }
  };
  
  
  /**
   * optional double altitude = 1;
   * @return {number}
   */
  proto.GetRunwayLandingInfoResponse.prototype.getAltitude = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetRunwayLandingInfoResponse.prototype.setAltitude = function(value) {
    jspb.Message.setProto3FloatField(this, 1, value);
  };
  
  
  /**
   * optional double distance = 2;
   * @return {number}
   */
  proto.GetRunwayLandingInfoResponse.prototype.getDistance = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetRunwayLandingInfoResponse.prototype.setDistance = function(value) {
    jspb.Message.setProto3FloatField(this, 2, value);
  };
  
  
  /**
   * optional double yawOffset = 3;
   * @return {number}
   */
  proto.GetRunwayLandingInfoResponse.prototype.getYawoffset = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetRunwayLandingInfoResponse.prototype.setYawoffset = function(value) {
    jspb.Message.setProto3FloatField(this, 3, value);
  };
  
  
  /**
   * optional double surfaceSpeed = 4;
   * @return {number}
   */
  proto.GetRunwayLandingInfoResponse.prototype.getSurfacespeed = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetRunwayLandingInfoResponse.prototype.setSurfacespeed = function(value) {
    jspb.Message.setProto3FloatField(this, 4, value);
  };
  
  
  /**
   * optional double forwardError = 5;
   * @return {number}
   */
  proto.GetRunwayLandingInfoResponse.prototype.getForwarderror = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 5, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetRunwayLandingInfoResponse.prototype.setForwarderror = function(value) {
    jspb.Message.setProto3FloatField(this, 5, value);
  };
  
  
  /**
   * optional double velocityError = 6;
   * @return {number}
   */
  proto.GetRunwayLandingInfoResponse.prototype.getVelocityerror = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 6, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetRunwayLandingInfoResponse.prototype.setVelocityerror = function(value) {
    jspb.Message.setProto3FloatField(this, 6, value);
  };
  
  
  /**
   * optional double pitch = 7;
   * @return {number}
   */
  proto.GetRunwayLandingInfoResponse.prototype.getPitch = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 7, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetRunwayLandingInfoResponse.prototype.setPitch = function(value) {
    jspb.Message.setProto3FloatField(this, 7, value);
  };
  
  
  /**
   * optional double roll = 8;
   * @return {number}
   */
  proto.GetRunwayLandingInfoResponse.prototype.getRoll = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 8, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetRunwayLandingInfoResponse.prototype.setRoll = function(value) {
    jspb.Message.setProto3FloatField(this, 8, value);
  };
  
  
  /**
   * optional double verticalSpeed = 9;
   * @return {number}
   */
  proto.GetRunwayLandingInfoResponse.prototype.getVerticalspeed = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 9, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetRunwayLandingInfoResponse.prototype.setVerticalspeed = function(value) {
    jspb.Message.setProto3FloatField(this, 9, value);
  };
  
  
  /**
   * optional double runwayMeanAltitude = 10;
   * @return {number}
   */
  proto.GetRunwayLandingInfoResponse.prototype.getRunwaymeanaltitude = function() {
    return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 10, 0.0));
  };
  
  
  /** @param {number} value */
  proto.GetRunwayLandingInfoResponse.prototype.setRunwaymeanaltitude = function(value) {
    jspb.Message.setProto3FloatField(this, 10, value);
  };
  
  
  /**
   * @enum {number}
   */
  proto.VesselType = {
    DEBRIS: 0,
    SPACEOBJECT: 1,
    UNKNOWN: 2,
    PROBE: 3,
    RELAY: 4,
    ROVER: 5,
    LANDER: 6,
    SHIP: 7,
    PLANE: 8,
    STATION: 9,
    BASE: 10,
    EVA: 11,
    FLAG: 12,
    DEPLOYEDSCIENCECONTROLLER: 13,
    DEPLOYEDSCIENCEPART: 14
  };
  
  /**
   * @enum {number}
   */
  proto.OrbitType = {
    SYNCHRONOUS: 0,
    STATIONARY: 1,
    POLAR: 2,
    EQUATORIAL: 3,
    KOLNIYA: 4,
    TUNDRA: 5,
    RANDOM: 6
  };
  
  /**
   * @enum {number}
   */
  proto.OrbitTransitionType = {
    INITIAL: 0,
    FINAL: 1,
    ENCOUNTER: 2,
    ESCAPE: 3,
    MANEUVER: 4,
    IMPACT: 5
  };
  
  /**
   * @enum {number}
   */
  proto.AutoPilotPhase = {
    INVALID: 0,
    NEW: 1,
    CLEARROLL: 2,
    CLEARPITCHYAW: 3,
    TOTARGET: 4
  };
  
  goog.object.extend(exports, proto);
  