// source: meta.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {missingRequire} reports error on implicit type usages.
 * @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!
/* eslint-disable */
// @ts-nocheck

var jspb = require('google-protobuf');
var goog = jspb;
var global = (function() { return this || window || global || self || Function('return this')(); }).call(null);

var vector_pb = require('./vector_pb.js');
goog.object.extend(proto, vector_pb);
var spatial_pb = require('./spatial_pb.js');
goog.object.extend(proto, spatial_pb);
goog.exportSymbol('proto.Messages.CameraControl', null, global);
goog.exportSymbol('proto.Messages.GraphicsControl', null, global);
goog.exportSymbol('proto.Messages.Meta', null, global);
goog.exportSymbol('proto.Messages.Representation', null, global);
goog.exportSymbol('proto.Messages.SliceControl', null, global);
goog.exportSymbol('proto.Messages.Visual', 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.Messages.GraphicsControl = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.GraphicsControl.repeatedFields_, null);
};
goog.inherits(proto.Messages.GraphicsControl, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.GraphicsControl.displayName = 'proto.Messages.GraphicsControl';
}
/**
 * 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.Messages.Representation = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.Representation.repeatedFields_, null);
};
goog.inherits(proto.Messages.Representation, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.Representation.displayName = 'proto.Messages.Representation';
}
/**
 * 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.Messages.Visual = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.Visual.repeatedFields_, null);
};
goog.inherits(proto.Messages.Visual, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.Visual.displayName = 'proto.Messages.Visual';
}
/**
 * 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.Messages.Meta = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.Meta.repeatedFields_, null);
};
goog.inherits(proto.Messages.Meta, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.Meta.displayName = 'proto.Messages.Meta';
}
/**
 * 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.Messages.SliceControl = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.SliceControl.repeatedFields_, null);
};
goog.inherits(proto.Messages.SliceControl, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.SliceControl.displayName = 'proto.Messages.SliceControl';
}
/**
 * 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.Messages.CameraControl = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.CameraControl.repeatedFields_, null);
};
goog.inherits(proto.Messages.CameraControl, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.CameraControl.displayName = 'proto.Messages.CameraControl';
}

/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.GraphicsControl.repeatedFields_ = [4];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.GraphicsControl.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.GraphicsControl.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.GraphicsControl} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.GraphicsControl.toObject = function(includeInstance, msg) {
  var f, obj = {
    mode: jspb.Message.getFieldWithDefault(msg, 1, 0),
    style: jspb.Message.getFieldWithDefault(msg, 2, 0),
    colorList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 4)) == null ? undefined : f,
    alpha: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0),
    pointWidth: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0.0),
    lineWidth: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),
    visible: jspb.Message.getBooleanFieldWithDefault(msg, 10, false)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.GraphicsControl}
 */
proto.Messages.GraphicsControl.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.GraphicsControl;
  return proto.Messages.GraphicsControl.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.GraphicsControl} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.GraphicsControl}
 */
proto.Messages.GraphicsControl.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setMode(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setStyle(value);
      break;
    case 4:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedFloat() : [reader.readFloat()]);
      for (var i = 0; i < values.length; i++) {
        msg.addColor(values[i]);
      }
      break;
    case 5:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setAlpha(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setPointWidth(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setLineWidth(value);
      break;
    case 10:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setVisible(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.GraphicsControl.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.GraphicsControl.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.GraphicsControl} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.GraphicsControl.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getMode();
  if (f !== 0) {
    writer.writeUint32(
      1,
      f
    );
  }
  f = message.getStyle();
  if (f !== 0) {
    writer.writeUint32(
      2,
      f
    );
  }
  f = message.getColorList();
  if (f.length > 0) {
    writer.writePackedFloat(
      4,
      f
    );
  }
  f = message.getAlpha();
  if (f !== 0.0) {
    writer.writeFloat(
      5,
      f
    );
  }
  f = message.getPointWidth();
  if (f !== 0.0) {
    writer.writeFloat(
      6,
      f
    );
  }
  f = message.getLineWidth();
  if (f !== 0.0) {
    writer.writeFloat(
      7,
      f
    );
  }
  f = message.getVisible();
  if (f) {
    writer.writeBool(
      10,
      f
    );
  }
};


/**
 * optional uint32 mode = 1;
 * @return {number}
 */
proto.Messages.GraphicsControl.prototype.getMode = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.GraphicsControl} returns this
 */
proto.Messages.GraphicsControl.prototype.setMode = function(value) {
  return jspb.Message.setProto3IntField(this, 1, value);
};


/**
 * optional uint32 style = 2;
 * @return {number}
 */
proto.Messages.GraphicsControl.prototype.getStyle = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.GraphicsControl} returns this
 */
proto.Messages.GraphicsControl.prototype.setStyle = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * repeated float color = 4;
 * @return {!Array<number>}
 */
proto.Messages.GraphicsControl.prototype.getColorList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 4));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.GraphicsControl} returns this
 */
proto.Messages.GraphicsControl.prototype.setColorList = function(value) {
  return jspb.Message.setField(this, 4, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.GraphicsControl} returns this
 */
proto.Messages.GraphicsControl.prototype.addColor = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 4, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.GraphicsControl} returns this
 */
proto.Messages.GraphicsControl.prototype.clearColorList = function() {
  return this.setColorList([]);
};


/**
 * optional float alpha = 5;
 * @return {number}
 */
proto.Messages.GraphicsControl.prototype.getAlpha = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.GraphicsControl} returns this
 */
proto.Messages.GraphicsControl.prototype.setAlpha = function(value) {
  return jspb.Message.setProto3FloatField(this, 5, value);
};


/**
 * optional float point_width = 6;
 * @return {number}
 */
proto.Messages.GraphicsControl.prototype.getPointWidth = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.GraphicsControl} returns this
 */
proto.Messages.GraphicsControl.prototype.setPointWidth = function(value) {
  return jspb.Message.setProto3FloatField(this, 6, value);
};


/**
 * optional float line_width = 7;
 * @return {number}
 */
proto.Messages.GraphicsControl.prototype.getLineWidth = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.GraphicsControl} returns this
 */
proto.Messages.GraphicsControl.prototype.setLineWidth = function(value) {
  return jspb.Message.setProto3FloatField(this, 7, value);
};


/**
 * optional bool visible = 10;
 * @return {boolean}
 */
proto.Messages.GraphicsControl.prototype.getVisible = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.GraphicsControl} returns this
 */
proto.Messages.GraphicsControl.prototype.setVisible = function(value) {
  return jspb.Message.setProto3BooleanField(this, 10, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.Representation.repeatedFields_ = [10];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.Representation.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.Representation.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.Representation} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Representation.toObject = function(includeInstance, msg) {
  var f, obj = {
    propertyKey: jspb.Message.getFieldWithDefault(msg, 1, ""),
    colorMap: jspb.Message.getFieldWithDefault(msg, 2, 0),
    component: jspb.Message.getFieldWithDefault(msg, 3, 0),
    autoRange: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
    useDefaultKey: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
    colorOutOfRange: jspb.Message.getBooleanFieldWithDefault(msg, 6, false),
    useMagnitude: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),
    displacementMultiplier: jspb.Message.getFloatingPointFieldWithDefault(msg, 9, 0.0),
    rangeList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 10)) == null ? undefined : 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.Messages.Representation}
 */
proto.Messages.Representation.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.Representation;
  return proto.Messages.Representation.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.Representation} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.Representation}
 */
proto.Messages.Representation.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.setPropertyKey(value);
      break;
    case 2:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setColorMap(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setComponent(value);
      break;
    case 4:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setAutoRange(value);
      break;
    case 5:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setUseDefaultKey(value);
      break;
    case 6:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setColorOutOfRange(value);
      break;
    case 7:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setUseMagnitude(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setDisplacementMultiplier(value);
      break;
    case 10:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedFloat() : [reader.readFloat()]);
      for (var i = 0; i < values.length; i++) {
        msg.addRange(values[i]);
      }
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.Representation.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.Representation.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.Representation} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Representation.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getPropertyKey();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getColorMap();
  if (f !== 0) {
    writer.writeUint32(
      2,
      f
    );
  }
  f = message.getComponent();
  if (f !== 0) {
    writer.writeUint32(
      3,
      f
    );
  }
  f = message.getAutoRange();
  if (f) {
    writer.writeBool(
      4,
      f
    );
  }
  f = message.getUseDefaultKey();
  if (f) {
    writer.writeBool(
      5,
      f
    );
  }
  f = message.getColorOutOfRange();
  if (f) {
    writer.writeBool(
      6,
      f
    );
  }
  f = message.getUseMagnitude();
  if (f) {
    writer.writeBool(
      7,
      f
    );
  }
  f = message.getDisplacementMultiplier();
  if (f !== 0.0) {
    writer.writeFloat(
      9,
      f
    );
  }
  f = message.getRangeList();
  if (f.length > 0) {
    writer.writePackedFloat(
      10,
      f
    );
  }
};


/**
 * optional string property_key = 1;
 * @return {string}
 */
proto.Messages.Representation.prototype.getPropertyKey = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.setPropertyKey = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional uint32 color_map = 2;
 * @return {number}
 */
proto.Messages.Representation.prototype.getColorMap = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.setColorMap = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional uint32 component = 3;
 * @return {number}
 */
proto.Messages.Representation.prototype.getComponent = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.setComponent = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional bool auto_range = 4;
 * @return {boolean}
 */
proto.Messages.Representation.prototype.getAutoRange = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.setAutoRange = function(value) {
  return jspb.Message.setProto3BooleanField(this, 4, value);
};


/**
 * optional bool use_default_key = 5;
 * @return {boolean}
 */
proto.Messages.Representation.prototype.getUseDefaultKey = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.setUseDefaultKey = function(value) {
  return jspb.Message.setProto3BooleanField(this, 5, value);
};


/**
 * optional bool color_out_of_range = 6;
 * @return {boolean}
 */
proto.Messages.Representation.prototype.getColorOutOfRange = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.setColorOutOfRange = function(value) {
  return jspb.Message.setProto3BooleanField(this, 6, value);
};


/**
 * optional bool use_magnitude = 7;
 * @return {boolean}
 */
proto.Messages.Representation.prototype.getUseMagnitude = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.setUseMagnitude = function(value) {
  return jspb.Message.setProto3BooleanField(this, 7, value);
};


/**
 * optional float displacement_multiplier = 9;
 * @return {number}
 */
proto.Messages.Representation.prototype.getDisplacementMultiplier = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 9, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.setDisplacementMultiplier = function(value) {
  return jspb.Message.setProto3FloatField(this, 9, value);
};


/**
 * repeated float range = 10;
 * @return {!Array<number>}
 */
proto.Messages.Representation.prototype.getRangeList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 10));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.setRangeList = function(value) {
  return jspb.Message.setField(this, 10, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.addRange = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 10, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Representation} returns this
 */
proto.Messages.Representation.prototype.clearRangeList = function() {
  return this.setRangeList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.Visual.repeatedFields_ = [5,6,7,8,9,10,15];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.Visual.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.Visual.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.Visual} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Visual.toObject = function(includeInstance, msg) {
  var f, obj = {
    region: (f = msg.getRegion()) && spatial_pb.Zone.toObject(includeInstance, f),
    control: (f = msg.getControl()) && proto.Messages.GraphicsControl.toObject(includeInstance, f),
    representation: (f = msg.getRepresentation()) && proto.Messages.Representation.toObject(includeInstance, f),
    pointsList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f,
    linesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f,
    trianglesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f,
    indicesPerElementList: (f = jspb.Message.getRepeatedField(msg, 8)) == null ? undefined : f,
    elementsToIndicesList: (f = jspb.Message.getRepeatedField(msg, 9)) == null ? undefined : f,
    indicesToElementsList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f,
    extrasList: jspb.Message.toObjectList(msg.getExtrasList(),
    vector_pb.Vector32.toObject, includeInstance)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.Visual}
 */
proto.Messages.Visual.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.Visual;
  return proto.Messages.Visual.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.Visual} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.Visual}
 */
proto.Messages.Visual.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new spatial_pb.Zone;
      reader.readMessage(value,spatial_pb.Zone.deserializeBinaryFromReader);
      msg.setRegion(value);
      break;
    case 2:
      var value = new proto.Messages.GraphicsControl;
      reader.readMessage(value,proto.Messages.GraphicsControl.deserializeBinaryFromReader);
      msg.setControl(value);
      break;
    case 3:
      var value = new proto.Messages.Representation;
      reader.readMessage(value,proto.Messages.Representation.deserializeBinaryFromReader);
      msg.setRepresentation(value);
      break;
    case 5:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addPoints(values[i]);
      }
      break;
    case 6:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addLines(values[i]);
      }
      break;
    case 7:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addTriangles(values[i]);
      }
      break;
    case 8:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addIndicesPerElement(values[i]);
      }
      break;
    case 9:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addElementsToIndices(values[i]);
      }
      break;
    case 10:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addIndicesToElements(values[i]);
      }
      break;
    case 15:
      var value = new vector_pb.Vector32;
      reader.readMessage(value,vector_pb.Vector32.deserializeBinaryFromReader);
      msg.addExtras(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.Visual.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.Visual.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.Visual} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Visual.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getRegion();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      spatial_pb.Zone.serializeBinaryToWriter
    );
  }
  f = message.getControl();
  if (f != null) {
    writer.writeMessage(
      2,
      f,
      proto.Messages.GraphicsControl.serializeBinaryToWriter
    );
  }
  f = message.getRepresentation();
  if (f != null) {
    writer.writeMessage(
      3,
      f,
      proto.Messages.Representation.serializeBinaryToWriter
    );
  }
  f = message.getPointsList();
  if (f.length > 0) {
    writer.writePackedUint32(
      5,
      f
    );
  }
  f = message.getLinesList();
  if (f.length > 0) {
    writer.writePackedUint32(
      6,
      f
    );
  }
  f = message.getTrianglesList();
  if (f.length > 0) {
    writer.writePackedUint32(
      7,
      f
    );
  }
  f = message.getIndicesPerElementList();
  if (f.length > 0) {
    writer.writePackedUint32(
      8,
      f
    );
  }
  f = message.getElementsToIndicesList();
  if (f.length > 0) {
    writer.writePackedUint32(
      9,
      f
    );
  }
  f = message.getIndicesToElementsList();
  if (f.length > 0) {
    writer.writePackedUint32(
      10,
      f
    );
  }
  f = message.getExtrasList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      15,
      f,
      vector_pb.Vector32.serializeBinaryToWriter
    );
  }
};


/**
 * optional Zone region = 1;
 * @return {?proto.Messages.Zone}
 */
proto.Messages.Visual.prototype.getRegion = function() {
  return /** @type{?proto.Messages.Zone} */ (
    jspb.Message.getWrapperField(this, spatial_pb.Zone, 1));
};


/**
 * @param {?proto.Messages.Zone|undefined} value
 * @return {!proto.Messages.Visual} returns this
*/
proto.Messages.Visual.prototype.setRegion = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.clearRegion = function() {
  return this.setRegion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Visual.prototype.hasRegion = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional GraphicsControl control = 2;
 * @return {?proto.Messages.GraphicsControl}
 */
proto.Messages.Visual.prototype.getControl = function() {
  return /** @type{?proto.Messages.GraphicsControl} */ (
    jspb.Message.getWrapperField(this, proto.Messages.GraphicsControl, 2));
};


/**
 * @param {?proto.Messages.GraphicsControl|undefined} value
 * @return {!proto.Messages.Visual} returns this
*/
proto.Messages.Visual.prototype.setControl = function(value) {
  return jspb.Message.setWrapperField(this, 2, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.clearControl = function() {
  return this.setControl(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Visual.prototype.hasControl = function() {
  return jspb.Message.getField(this, 2) != null;
};


/**
 * optional Representation representation = 3;
 * @return {?proto.Messages.Representation}
 */
proto.Messages.Visual.prototype.getRepresentation = function() {
  return /** @type{?proto.Messages.Representation} */ (
    jspb.Message.getWrapperField(this, proto.Messages.Representation, 3));
};


/**
 * @param {?proto.Messages.Representation|undefined} value
 * @return {!proto.Messages.Visual} returns this
*/
proto.Messages.Visual.prototype.setRepresentation = function(value) {
  return jspb.Message.setWrapperField(this, 3, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.clearRepresentation = function() {
  return this.setRepresentation(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Visual.prototype.hasRepresentation = function() {
  return jspb.Message.getField(this, 3) != null;
};


/**
 * repeated uint32 points = 5;
 * @return {!Array<number>}
 */
proto.Messages.Visual.prototype.getPointsList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 5));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.setPointsList = function(value) {
  return jspb.Message.setField(this, 5, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.addPoints = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 5, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.clearPointsList = function() {
  return this.setPointsList([]);
};


/**
 * repeated uint32 lines = 6;
 * @return {!Array<number>}
 */
proto.Messages.Visual.prototype.getLinesList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 6));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.setLinesList = function(value) {
  return jspb.Message.setField(this, 6, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.addLines = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 6, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.clearLinesList = function() {
  return this.setLinesList([]);
};


/**
 * repeated uint32 triangles = 7;
 * @return {!Array<number>}
 */
proto.Messages.Visual.prototype.getTrianglesList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 7));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.setTrianglesList = function(value) {
  return jspb.Message.setField(this, 7, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.addTriangles = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 7, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.clearTrianglesList = function() {
  return this.setTrianglesList([]);
};


/**
 * repeated uint32 indices_per_element = 8;
 * @return {!Array<number>}
 */
proto.Messages.Visual.prototype.getIndicesPerElementList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 8));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.setIndicesPerElementList = function(value) {
  return jspb.Message.setField(this, 8, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.addIndicesPerElement = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 8, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.clearIndicesPerElementList = function() {
  return this.setIndicesPerElementList([]);
};


/**
 * repeated uint32 elements_to_indices = 9;
 * @return {!Array<number>}
 */
proto.Messages.Visual.prototype.getElementsToIndicesList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 9));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.setElementsToIndicesList = function(value) {
  return jspb.Message.setField(this, 9, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.addElementsToIndices = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 9, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.clearElementsToIndicesList = function() {
  return this.setElementsToIndicesList([]);
};


/**
 * repeated uint32 indices_to_elements = 10;
 * @return {!Array<number>}
 */
proto.Messages.Visual.prototype.getIndicesToElementsList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 10));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.setIndicesToElementsList = function(value) {
  return jspb.Message.setField(this, 10, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.addIndicesToElements = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 10, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.clearIndicesToElementsList = function() {
  return this.setIndicesToElementsList([]);
};


/**
 * repeated Vector32 extras = 15;
 * @return {!Array<!proto.Messages.Vector32>}
 */
proto.Messages.Visual.prototype.getExtrasList = function() {
  return /** @type{!Array<!proto.Messages.Vector32>} */ (
    jspb.Message.getRepeatedWrapperField(this, vector_pb.Vector32, 15));
};


/**
 * @param {!Array<!proto.Messages.Vector32>} value
 * @return {!proto.Messages.Visual} returns this
*/
proto.Messages.Visual.prototype.setExtrasList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 15, value);
};


/**
 * @param {!proto.Messages.Vector32=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Vector32}
 */
proto.Messages.Visual.prototype.addExtras = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 15, opt_value, proto.Messages.Vector32, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Visual} returns this
 */
proto.Messages.Visual.prototype.clearExtrasList = function() {
  return this.setExtrasList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.Meta.repeatedFields_ = [25,26,27,28,29,30,31,32,33,34,35];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.Meta.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.Meta.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.Meta} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Meta.toObject = function(includeInstance, msg) {
  var f, obj = {
    name: jspb.Message.getFieldWithDefault(msg, 1, ""),
    uid: jspb.Message.getFieldWithDefault(msg, 2, 0),
    directory: jspb.Message.getFieldWithDefault(msg, 3, ""),
    symbol: jspb.Message.getFieldWithDefault(msg, 4, ""),
    owner: jspb.Message.getFieldWithDefault(msg, 5, ""),
    comments: jspb.Message.getFieldWithDefault(msg, 6, ""),
    series: jspb.Message.getFieldWithDefault(msg, 7, ""),
    sysInfo: jspb.Message.getFieldWithDefault(msg, 8, ""),
    geomInfo: jspb.Message.getFieldWithDefault(msg, 9, ""),
    parent: jspb.Message.getFieldWithDefault(msg, 10, 0),
    created: jspb.Message.getFieldWithDefault(msg, 11, 0),
    saved: jspb.Message.getFieldWithDefault(msg, 12, 0),
    modified: jspb.Message.getFieldWithDefault(msg, 13, 0),
    iteration: jspb.Message.getFieldWithDefault(msg, 14, 0),
    saveInterval: jspb.Message.getFieldWithDefault(msg, 15, 0),
    enabled: jspb.Message.getBooleanFieldWithDefault(msg, 16, false),
    locked: jspb.Message.getBooleanFieldWithDefault(msg, 17, false),
    autoSave: jspb.Message.getBooleanFieldWithDefault(msg, 18, false),
    lightweight: jspb.Message.getBooleanFieldWithDefault(msg, 19, false),
    revision: (f = msg.getRevision()) && vector_pb.Revision.toObject(includeInstance, f),
    version: (f = msg.getVersion()) && vector_pb.Revision.toObject(includeInstance, f),
    bounds: (f = msg.getBounds()) && vector_pb.Extrema.toObject(includeInstance, f),
    url: jspb.Message.getFieldWithDefault(msg, 23, ""),
    appearance: (f = msg.getAppearance()) && proto.Messages.GraphicsControl.toObject(includeInstance, f),
    childrenList: (f = jspb.Message.getRepeatedField(msg, 25)) == null ? undefined : f,
    groupsList: (f = jspb.Message.getRepeatedField(msg, 26)) == null ? undefined : f,
    loopsList: (f = jspb.Message.getRepeatedField(msg, 27)) == null ? undefined : f,
    surfacesList: (f = jspb.Message.getRepeatedField(msg, 28)) == null ? undefined : f,
    volumesList: (f = jspb.Message.getRepeatedField(msg, 29)) == null ? undefined : f,
    globalTransformList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 30)) == null ? undefined : f,
    globalRateList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 31)) == null ? undefined : f,
    globalAccelList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 32)) == null ? undefined : f,
    propertiesList: (f = jspb.Message.getRepeatedField(msg, 33)) == null ? undefined : f,
    mediaList: jspb.Message.toObjectList(msg.getMediaList(),
    proto.Messages.Visual.toObject, includeInstance),
    symbolTransformList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 35)) == null ? undefined : f,
    lengthUnits: jspb.Message.getFieldWithDefault(msg, 40, 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.Messages.Meta}
 */
proto.Messages.Meta.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.Meta;
  return proto.Messages.Meta.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.Meta} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.Meta}
 */
proto.Messages.Meta.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 = /** @type {number} */ (reader.readInt64());
      msg.setUid(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setDirectory(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.setSymbol(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.setOwner(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.setComments(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.setSeries(value);
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.setSysInfo(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.setGeomInfo(value);
      break;
    case 10:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setParent(value);
      break;
    case 11:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setCreated(value);
      break;
    case 12:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setSaved(value);
      break;
    case 13:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setModified(value);
      break;
    case 14:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setIteration(value);
      break;
    case 15:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setSaveInterval(value);
      break;
    case 16:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setEnabled(value);
      break;
    case 17:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setLocked(value);
      break;
    case 18:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setAutoSave(value);
      break;
    case 19:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setLightweight(value);
      break;
    case 20:
      var value = new vector_pb.Revision;
      reader.readMessage(value,vector_pb.Revision.deserializeBinaryFromReader);
      msg.setRevision(value);
      break;
    case 21:
      var value = new vector_pb.Revision;
      reader.readMessage(value,vector_pb.Revision.deserializeBinaryFromReader);
      msg.setVersion(value);
      break;
    case 22:
      var value = new vector_pb.Extrema;
      reader.readMessage(value,vector_pb.Extrema.deserializeBinaryFromReader);
      msg.setBounds(value);
      break;
    case 23:
      var value = /** @type {string} */ (reader.readString());
      msg.setUrl(value);
      break;
    case 24:
      var value = new proto.Messages.GraphicsControl;
      reader.readMessage(value,proto.Messages.GraphicsControl.deserializeBinaryFromReader);
      msg.setAppearance(value);
      break;
    case 25:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt64() : [reader.readInt64()]);
      for (var i = 0; i < values.length; i++) {
        msg.addChildren(values[i]);
      }
      break;
    case 26:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt32() : [reader.readInt32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addGroups(values[i]);
      }
      break;
    case 27:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt32() : [reader.readInt32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addLoops(values[i]);
      }
      break;
    case 28:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt32() : [reader.readInt32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addSurfaces(values[i]);
      }
      break;
    case 29:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt32() : [reader.readInt32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addVolumes(values[i]);
      }
      break;
    case 30:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedDouble() : [reader.readDouble()]);
      for (var i = 0; i < values.length; i++) {
        msg.addGlobalTransform(values[i]);
      }
      break;
    case 31:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedDouble() : [reader.readDouble()]);
      for (var i = 0; i < values.length; i++) {
        msg.addGlobalRate(values[i]);
      }
      break;
    case 32:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedDouble() : [reader.readDouble()]);
      for (var i = 0; i < values.length; i++) {
        msg.addGlobalAccel(values[i]);
      }
      break;
    case 33:
      var value = /** @type {string} */ (reader.readString());
      msg.addProperties(value);
      break;
    case 34:
      var value = new proto.Messages.Visual;
      reader.readMessage(value,proto.Messages.Visual.deserializeBinaryFromReader);
      msg.addMedia(value);
      break;
    case 35:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedFloat() : [reader.readFloat()]);
      for (var i = 0; i < values.length; i++) {
        msg.addSymbolTransform(values[i]);
      }
      break;
    case 40:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setLengthUnits(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.Meta.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.Meta.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.Meta} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Meta.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getUid();
  if (f !== 0) {
    writer.writeInt64(
      2,
      f
    );
  }
  f = message.getDirectory();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getSymbol();
  if (f.length > 0) {
    writer.writeString(
      4,
      f
    );
  }
  f = message.getOwner();
  if (f.length > 0) {
    writer.writeString(
      5,
      f
    );
  }
  f = message.getComments();
  if (f.length > 0) {
    writer.writeString(
      6,
      f
    );
  }
  f = message.getSeries();
  if (f.length > 0) {
    writer.writeString(
      7,
      f
    );
  }
  f = message.getSysInfo();
  if (f.length > 0) {
    writer.writeString(
      8,
      f
    );
  }
  f = message.getGeomInfo();
  if (f.length > 0) {
    writer.writeString(
      9,
      f
    );
  }
  f = message.getParent();
  if (f !== 0) {
    writer.writeInt64(
      10,
      f
    );
  }
  f = message.getCreated();
  if (f !== 0) {
    writer.writeInt64(
      11,
      f
    );
  }
  f = message.getSaved();
  if (f !== 0) {
    writer.writeInt64(
      12,
      f
    );
  }
  f = message.getModified();
  if (f !== 0) {
    writer.writeInt64(
      13,
      f
    );
  }
  f = message.getIteration();
  if (f !== 0) {
    writer.writeUint64(
      14,
      f
    );
  }
  f = message.getSaveInterval();
  if (f !== 0) {
    writer.writeUint64(
      15,
      f
    );
  }
  f = message.getEnabled();
  if (f) {
    writer.writeBool(
      16,
      f
    );
  }
  f = message.getLocked();
  if (f) {
    writer.writeBool(
      17,
      f
    );
  }
  f = message.getAutoSave();
  if (f) {
    writer.writeBool(
      18,
      f
    );
  }
  f = message.getLightweight();
  if (f) {
    writer.writeBool(
      19,
      f
    );
  }
  f = message.getRevision();
  if (f != null) {
    writer.writeMessage(
      20,
      f,
      vector_pb.Revision.serializeBinaryToWriter
    );
  }
  f = message.getVersion();
  if (f != null) {
    writer.writeMessage(
      21,
      f,
      vector_pb.Revision.serializeBinaryToWriter
    );
  }
  f = message.getBounds();
  if (f != null) {
    writer.writeMessage(
      22,
      f,
      vector_pb.Extrema.serializeBinaryToWriter
    );
  }
  f = message.getUrl();
  if (f.length > 0) {
    writer.writeString(
      23,
      f
    );
  }
  f = message.getAppearance();
  if (f != null) {
    writer.writeMessage(
      24,
      f,
      proto.Messages.GraphicsControl.serializeBinaryToWriter
    );
  }
  f = message.getChildrenList();
  if (f.length > 0) {
    writer.writePackedInt64(
      25,
      f
    );
  }
  f = message.getGroupsList();
  if (f.length > 0) {
    writer.writePackedInt32(
      26,
      f
    );
  }
  f = message.getLoopsList();
  if (f.length > 0) {
    writer.writePackedInt32(
      27,
      f
    );
  }
  f = message.getSurfacesList();
  if (f.length > 0) {
    writer.writePackedInt32(
      28,
      f
    );
  }
  f = message.getVolumesList();
  if (f.length > 0) {
    writer.writePackedInt32(
      29,
      f
    );
  }
  f = message.getGlobalTransformList();
  if (f.length > 0) {
    writer.writePackedDouble(
      30,
      f
    );
  }
  f = message.getGlobalRateList();
  if (f.length > 0) {
    writer.writePackedDouble(
      31,
      f
    );
  }
  f = message.getGlobalAccelList();
  if (f.length > 0) {
    writer.writePackedDouble(
      32,
      f
    );
  }
  f = message.getPropertiesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      33,
      f
    );
  }
  f = message.getMediaList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      34,
      f,
      proto.Messages.Visual.serializeBinaryToWriter
    );
  }
  f = message.getSymbolTransformList();
  if (f.length > 0) {
    writer.writePackedFloat(
      35,
      f
    );
  }
  f = message.getLengthUnits();
  if (f !== 0) {
    writer.writeUint32(
      40,
      f
    );
  }
};


/**
 * optional string name = 1;
 * @return {string}
 */
proto.Messages.Meta.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional int64 uid = 2;
 * @return {number}
 */
proto.Messages.Meta.prototype.getUid = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setUid = function(value) {
  return jspb.Message.setProto3IntField(this, 2, value);
};


/**
 * optional string directory = 3;
 * @return {string}
 */
proto.Messages.Meta.prototype.getDirectory = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setDirectory = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional string symbol = 4;
 * @return {string}
 */
proto.Messages.Meta.prototype.getSymbol = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setSymbol = function(value) {
  return jspb.Message.setProto3StringField(this, 4, value);
};


/**
 * optional string owner = 5;
 * @return {string}
 */
proto.Messages.Meta.prototype.getOwner = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setOwner = function(value) {
  return jspb.Message.setProto3StringField(this, 5, value);
};


/**
 * optional string comments = 6;
 * @return {string}
 */
proto.Messages.Meta.prototype.getComments = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setComments = function(value) {
  return jspb.Message.setProto3StringField(this, 6, value);
};


/**
 * optional string series = 7;
 * @return {string}
 */
proto.Messages.Meta.prototype.getSeries = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setSeries = function(value) {
  return jspb.Message.setProto3StringField(this, 7, value);
};


/**
 * optional string sys_info = 8;
 * @return {string}
 */
proto.Messages.Meta.prototype.getSysInfo = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setSysInfo = function(value) {
  return jspb.Message.setProto3StringField(this, 8, value);
};


/**
 * optional string geom_info = 9;
 * @return {string}
 */
proto.Messages.Meta.prototype.getGeomInfo = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setGeomInfo = function(value) {
  return jspb.Message.setProto3StringField(this, 9, value);
};


/**
 * optional int64 parent = 10;
 * @return {number}
 */
proto.Messages.Meta.prototype.getParent = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setParent = function(value) {
  return jspb.Message.setProto3IntField(this, 10, value);
};


/**
 * optional int64 created = 11;
 * @return {number}
 */
proto.Messages.Meta.prototype.getCreated = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setCreated = function(value) {
  return jspb.Message.setProto3IntField(this, 11, value);
};


/**
 * optional int64 saved = 12;
 * @return {number}
 */
proto.Messages.Meta.prototype.getSaved = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 12, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setSaved = function(value) {
  return jspb.Message.setProto3IntField(this, 12, value);
};


/**
 * optional int64 modified = 13;
 * @return {number}
 */
proto.Messages.Meta.prototype.getModified = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 13, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setModified = function(value) {
  return jspb.Message.setProto3IntField(this, 13, value);
};


/**
 * optional uint64 iteration = 14;
 * @return {number}
 */
proto.Messages.Meta.prototype.getIteration = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 14, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setIteration = function(value) {
  return jspb.Message.setProto3IntField(this, 14, value);
};


/**
 * optional uint64 save_interval = 15;
 * @return {number}
 */
proto.Messages.Meta.prototype.getSaveInterval = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setSaveInterval = function(value) {
  return jspb.Message.setProto3IntField(this, 15, value);
};


/**
 * optional bool enabled = 16;
 * @return {boolean}
 */
proto.Messages.Meta.prototype.getEnabled = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 16, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setEnabled = function(value) {
  return jspb.Message.setProto3BooleanField(this, 16, value);
};


/**
 * optional bool locked = 17;
 * @return {boolean}
 */
proto.Messages.Meta.prototype.getLocked = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 17, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setLocked = function(value) {
  return jspb.Message.setProto3BooleanField(this, 17, value);
};


/**
 * optional bool auto_save = 18;
 * @return {boolean}
 */
proto.Messages.Meta.prototype.getAutoSave = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 18, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setAutoSave = function(value) {
  return jspb.Message.setProto3BooleanField(this, 18, value);
};


/**
 * optional bool lightweight = 19;
 * @return {boolean}
 */
proto.Messages.Meta.prototype.getLightweight = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 19, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setLightweight = function(value) {
  return jspb.Message.setProto3BooleanField(this, 19, value);
};


/**
 * optional Revision revision = 20;
 * @return {?proto.Messages.Revision}
 */
proto.Messages.Meta.prototype.getRevision = function() {
  return /** @type{?proto.Messages.Revision} */ (
    jspb.Message.getWrapperField(this, vector_pb.Revision, 20));
};


/**
 * @param {?proto.Messages.Revision|undefined} value
 * @return {!proto.Messages.Meta} returns this
*/
proto.Messages.Meta.prototype.setRevision = function(value) {
  return jspb.Message.setWrapperField(this, 20, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearRevision = function() {
  return this.setRevision(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Meta.prototype.hasRevision = function() {
  return jspb.Message.getField(this, 20) != null;
};


/**
 * optional Revision version = 21;
 * @return {?proto.Messages.Revision}
 */
proto.Messages.Meta.prototype.getVersion = function() {
  return /** @type{?proto.Messages.Revision} */ (
    jspb.Message.getWrapperField(this, vector_pb.Revision, 21));
};


/**
 * @param {?proto.Messages.Revision|undefined} value
 * @return {!proto.Messages.Meta} returns this
*/
proto.Messages.Meta.prototype.setVersion = function(value) {
  return jspb.Message.setWrapperField(this, 21, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearVersion = function() {
  return this.setVersion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Meta.prototype.hasVersion = function() {
  return jspb.Message.getField(this, 21) != null;
};


/**
 * optional Extrema bounds = 22;
 * @return {?proto.Messages.Extrema}
 */
proto.Messages.Meta.prototype.getBounds = function() {
  return /** @type{?proto.Messages.Extrema} */ (
    jspb.Message.getWrapperField(this, vector_pb.Extrema, 22));
};


/**
 * @param {?proto.Messages.Extrema|undefined} value
 * @return {!proto.Messages.Meta} returns this
*/
proto.Messages.Meta.prototype.setBounds = function(value) {
  return jspb.Message.setWrapperField(this, 22, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearBounds = function() {
  return this.setBounds(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Meta.prototype.hasBounds = function() {
  return jspb.Message.getField(this, 22) != null;
};


/**
 * optional string url = 23;
 * @return {string}
 */
proto.Messages.Meta.prototype.getUrl = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 23, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setUrl = function(value) {
  return jspb.Message.setProto3StringField(this, 23, value);
};


/**
 * optional GraphicsControl appearance = 24;
 * @return {?proto.Messages.GraphicsControl}
 */
proto.Messages.Meta.prototype.getAppearance = function() {
  return /** @type{?proto.Messages.GraphicsControl} */ (
    jspb.Message.getWrapperField(this, proto.Messages.GraphicsControl, 24));
};


/**
 * @param {?proto.Messages.GraphicsControl|undefined} value
 * @return {!proto.Messages.Meta} returns this
*/
proto.Messages.Meta.prototype.setAppearance = function(value) {
  return jspb.Message.setWrapperField(this, 24, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearAppearance = function() {
  return this.setAppearance(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Meta.prototype.hasAppearance = function() {
  return jspb.Message.getField(this, 24) != null;
};


/**
 * repeated int64 children = 25;
 * @return {!Array<number>}
 */
proto.Messages.Meta.prototype.getChildrenList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 25));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setChildrenList = function(value) {
  return jspb.Message.setField(this, 25, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.addChildren = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 25, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearChildrenList = function() {
  return this.setChildrenList([]);
};


/**
 * repeated int32 groups = 26;
 * @return {!Array<number>}
 */
proto.Messages.Meta.prototype.getGroupsList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 26));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setGroupsList = function(value) {
  return jspb.Message.setField(this, 26, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.addGroups = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 26, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearGroupsList = function() {
  return this.setGroupsList([]);
};


/**
 * repeated int32 loops = 27;
 * @return {!Array<number>}
 */
proto.Messages.Meta.prototype.getLoopsList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 27));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setLoopsList = function(value) {
  return jspb.Message.setField(this, 27, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.addLoops = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 27, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearLoopsList = function() {
  return this.setLoopsList([]);
};


/**
 * repeated int32 surfaces = 28;
 * @return {!Array<number>}
 */
proto.Messages.Meta.prototype.getSurfacesList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 28));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setSurfacesList = function(value) {
  return jspb.Message.setField(this, 28, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.addSurfaces = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 28, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearSurfacesList = function() {
  return this.setSurfacesList([]);
};


/**
 * repeated int32 volumes = 29;
 * @return {!Array<number>}
 */
proto.Messages.Meta.prototype.getVolumesList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 29));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setVolumesList = function(value) {
  return jspb.Message.setField(this, 29, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.addVolumes = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 29, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearVolumesList = function() {
  return this.setVolumesList([]);
};


/**
 * repeated double global_transform = 30;
 * @return {!Array<number>}
 */
proto.Messages.Meta.prototype.getGlobalTransformList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 30));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setGlobalTransformList = function(value) {
  return jspb.Message.setField(this, 30, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.addGlobalTransform = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 30, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearGlobalTransformList = function() {
  return this.setGlobalTransformList([]);
};


/**
 * repeated double global_rate = 31;
 * @return {!Array<number>}
 */
proto.Messages.Meta.prototype.getGlobalRateList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 31));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setGlobalRateList = function(value) {
  return jspb.Message.setField(this, 31, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.addGlobalRate = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 31, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearGlobalRateList = function() {
  return this.setGlobalRateList([]);
};


/**
 * repeated double global_accel = 32;
 * @return {!Array<number>}
 */
proto.Messages.Meta.prototype.getGlobalAccelList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 32));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setGlobalAccelList = function(value) {
  return jspb.Message.setField(this, 32, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.addGlobalAccel = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 32, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearGlobalAccelList = function() {
  return this.setGlobalAccelList([]);
};


/**
 * repeated string properties = 33;
 * @return {!Array<string>}
 */
proto.Messages.Meta.prototype.getPropertiesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 33));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setPropertiesList = function(value) {
  return jspb.Message.setField(this, 33, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.addProperties = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 33, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearPropertiesList = function() {
  return this.setPropertiesList([]);
};


/**
 * repeated Visual media = 34;
 * @return {!Array<!proto.Messages.Visual>}
 */
proto.Messages.Meta.prototype.getMediaList = function() {
  return /** @type{!Array<!proto.Messages.Visual>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.Messages.Visual, 34));
};


/**
 * @param {!Array<!proto.Messages.Visual>} value
 * @return {!proto.Messages.Meta} returns this
*/
proto.Messages.Meta.prototype.setMediaList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 34, value);
};


/**
 * @param {!proto.Messages.Visual=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Visual}
 */
proto.Messages.Meta.prototype.addMedia = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 34, opt_value, proto.Messages.Visual, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearMediaList = function() {
  return this.setMediaList([]);
};


/**
 * repeated float symbol_transform = 35;
 * @return {!Array<number>}
 */
proto.Messages.Meta.prototype.getSymbolTransformList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 35));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setSymbolTransformList = function(value) {
  return jspb.Message.setField(this, 35, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.addSymbolTransform = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 35, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.clearSymbolTransformList = function() {
  return this.setSymbolTransformList([]);
};


/**
 * optional uint32 length_units = 40;
 * @return {number}
 */
proto.Messages.Meta.prototype.getLengthUnits = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 40, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Meta} returns this
 */
proto.Messages.Meta.prototype.setLengthUnits = function(value) {
  return jspb.Message.setProto3IntField(this, 40, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.SliceControl.repeatedFields_ = [2,3];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.SliceControl.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.SliceControl.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.SliceControl} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.SliceControl.toObject = function(includeInstance, msg) {
  var f, obj = {
    name: jspb.Message.getFieldWithDefault(msg, 1, ""),
    centerList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 2)) == null ? undefined : f,
    normalList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 3)) == null ? undefined : f,
    intersect: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),
    negative: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),
    positive: jspb.Message.getBooleanFieldWithDefault(msg, 6, false)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.SliceControl}
 */
proto.Messages.SliceControl.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.SliceControl;
  return proto.Messages.SliceControl.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.SliceControl} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.SliceControl}
 */
proto.Messages.SliceControl.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 values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedDouble() : [reader.readDouble()]);
      for (var i = 0; i < values.length; i++) {
        msg.addCenter(values[i]);
      }
      break;
    case 3:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedDouble() : [reader.readDouble()]);
      for (var i = 0; i < values.length; i++) {
        msg.addNormal(values[i]);
      }
      break;
    case 4:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIntersect(value);
      break;
    case 5:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setNegative(value);
      break;
    case 6:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setPositive(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.SliceControl.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.SliceControl.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.SliceControl} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.SliceControl.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getCenterList();
  if (f.length > 0) {
    writer.writePackedDouble(
      2,
      f
    );
  }
  f = message.getNormalList();
  if (f.length > 0) {
    writer.writePackedDouble(
      3,
      f
    );
  }
  f = message.getIntersect();
  if (f) {
    writer.writeBool(
      4,
      f
    );
  }
  f = message.getNegative();
  if (f) {
    writer.writeBool(
      5,
      f
    );
  }
  f = message.getPositive();
  if (f) {
    writer.writeBool(
      6,
      f
    );
  }
};


/**
 * optional string name = 1;
 * @return {string}
 */
proto.Messages.SliceControl.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.SliceControl} returns this
 */
proto.Messages.SliceControl.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * repeated double center = 2;
 * @return {!Array<number>}
 */
proto.Messages.SliceControl.prototype.getCenterList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 2));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.SliceControl} returns this
 */
proto.Messages.SliceControl.prototype.setCenterList = function(value) {
  return jspb.Message.setField(this, 2, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.SliceControl} returns this
 */
proto.Messages.SliceControl.prototype.addCenter = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.SliceControl} returns this
 */
proto.Messages.SliceControl.prototype.clearCenterList = function() {
  return this.setCenterList([]);
};


/**
 * repeated double normal = 3;
 * @return {!Array<number>}
 */
proto.Messages.SliceControl.prototype.getNormalList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 3));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.SliceControl} returns this
 */
proto.Messages.SliceControl.prototype.setNormalList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.SliceControl} returns this
 */
proto.Messages.SliceControl.prototype.addNormal = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.SliceControl} returns this
 */
proto.Messages.SliceControl.prototype.clearNormalList = function() {
  return this.setNormalList([]);
};


/**
 * optional bool intersect = 4;
 * @return {boolean}
 */
proto.Messages.SliceControl.prototype.getIntersect = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.SliceControl} returns this
 */
proto.Messages.SliceControl.prototype.setIntersect = function(value) {
  return jspb.Message.setProto3BooleanField(this, 4, value);
};


/**
 * optional bool negative = 5;
 * @return {boolean}
 */
proto.Messages.SliceControl.prototype.getNegative = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.SliceControl} returns this
 */
proto.Messages.SliceControl.prototype.setNegative = function(value) {
  return jspb.Message.setProto3BooleanField(this, 5, value);
};


/**
 * optional bool positive = 6;
 * @return {boolean}
 */
proto.Messages.SliceControl.prototype.getPositive = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.SliceControl} returns this
 */
proto.Messages.SliceControl.prototype.setPositive = function(value) {
  return jspb.Message.setProto3BooleanField(this, 6, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.CameraControl.repeatedFields_ = [1,2,3,13];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.CameraControl.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.CameraControl.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.CameraControl} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.CameraControl.toObject = function(includeInstance, msg) {
  var f, obj = {
    subjectList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 1)) == null ? undefined : f,
    offsetList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 2)) == null ? undefined : f,
    angleList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 3)) == null ? undefined : f,
    sceneTime: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0),
    magnification: jspb.Message.getFloatingPointFieldWithDefault(msg, 5, 0.0),
    timeConstant: jspb.Message.getFloatingPointFieldWithDefault(msg, 6, 0.0),
    panSensitivity: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0),
    rotationSensitivity: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0.0),
    zoomSensitivity: jspb.Message.getFloatingPointFieldWithDefault(msg, 9, 0.0),
    znear: jspb.Message.getFloatingPointFieldWithDefault(msg, 10, 0.0),
    zfar: jspb.Message.getFloatingPointFieldWithDefault(msg, 11, 0.0),
    aov: jspb.Message.getFloatingPointFieldWithDefault(msg, 12, 0.0),
    resolutionList: (f = jspb.Message.getRepeatedField(msg, 13)) == null ? undefined : f,
    perspective: jspb.Message.getBooleanFieldWithDefault(msg, 15, false),
    smooth: jspb.Message.getBooleanFieldWithDefault(msg, 16, false),
    orbit: jspb.Message.getBooleanFieldWithDefault(msg, 17, false),
    follow: jspb.Message.getBooleanFieldWithDefault(msg, 18, false)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.CameraControl}
 */
proto.Messages.CameraControl.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.CameraControl;
  return proto.Messages.CameraControl.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.CameraControl} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.CameraControl}
 */
proto.Messages.CameraControl.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedFloat() : [reader.readFloat()]);
      for (var i = 0; i < values.length; i++) {
        msg.addSubject(values[i]);
      }
      break;
    case 2:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedFloat() : [reader.readFloat()]);
      for (var i = 0; i < values.length; i++) {
        msg.addOffset(values[i]);
      }
      break;
    case 3:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedFloat() : [reader.readFloat()]);
      for (var i = 0; i < values.length; i++) {
        msg.addAngle(values[i]);
      }
      break;
    case 4:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setSceneTime(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setMagnification(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setTimeConstant(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setPanSensitivity(value);
      break;
    case 8:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setRotationSensitivity(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setZoomSensitivity(value);
      break;
    case 10:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setZnear(value);
      break;
    case 11:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setZfar(value);
      break;
    case 12:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setAov(value);
      break;
    case 13:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedUint32() : [reader.readUint32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addResolution(values[i]);
      }
      break;
    case 15:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setPerspective(value);
      break;
    case 16:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setSmooth(value);
      break;
    case 17:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setOrbit(value);
      break;
    case 18:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setFollow(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.CameraControl.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.CameraControl.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.CameraControl} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.CameraControl.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSubjectList();
  if (f.length > 0) {
    writer.writePackedFloat(
      1,
      f
    );
  }
  f = message.getOffsetList();
  if (f.length > 0) {
    writer.writePackedFloat(
      2,
      f
    );
  }
  f = message.getAngleList();
  if (f.length > 0) {
    writer.writePackedFloat(
      3,
      f
    );
  }
  f = message.getSceneTime();
  if (f !== 0.0) {
    writer.writeFloat(
      4,
      f
    );
  }
  f = message.getMagnification();
  if (f !== 0.0) {
    writer.writeFloat(
      5,
      f
    );
  }
  f = message.getTimeConstant();
  if (f !== 0.0) {
    writer.writeFloat(
      6,
      f
    );
  }
  f = message.getPanSensitivity();
  if (f !== 0.0) {
    writer.writeFloat(
      7,
      f
    );
  }
  f = message.getRotationSensitivity();
  if (f !== 0.0) {
    writer.writeFloat(
      8,
      f
    );
  }
  f = message.getZoomSensitivity();
  if (f !== 0.0) {
    writer.writeFloat(
      9,
      f
    );
  }
  f = message.getZnear();
  if (f !== 0.0) {
    writer.writeFloat(
      10,
      f
    );
  }
  f = message.getZfar();
  if (f !== 0.0) {
    writer.writeFloat(
      11,
      f
    );
  }
  f = message.getAov();
  if (f !== 0.0) {
    writer.writeFloat(
      12,
      f
    );
  }
  f = message.getResolutionList();
  if (f.length > 0) {
    writer.writePackedUint32(
      13,
      f
    );
  }
  f = message.getPerspective();
  if (f) {
    writer.writeBool(
      15,
      f
    );
  }
  f = message.getSmooth();
  if (f) {
    writer.writeBool(
      16,
      f
    );
  }
  f = message.getOrbit();
  if (f) {
    writer.writeBool(
      17,
      f
    );
  }
  f = message.getFollow();
  if (f) {
    writer.writeBool(
      18,
      f
    );
  }
};


/**
 * repeated float subject = 1;
 * @return {!Array<number>}
 */
proto.Messages.CameraControl.prototype.getSubjectList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 1));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setSubjectList = function(value) {
  return jspb.Message.setField(this, 1, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.addSubject = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 1, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.clearSubjectList = function() {
  return this.setSubjectList([]);
};


/**
 * repeated float offset = 2;
 * @return {!Array<number>}
 */
proto.Messages.CameraControl.prototype.getOffsetList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 2));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setOffsetList = function(value) {
  return jspb.Message.setField(this, 2, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.addOffset = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.clearOffsetList = function() {
  return this.setOffsetList([]);
};


/**
 * repeated float angle = 3;
 * @return {!Array<number>}
 */
proto.Messages.CameraControl.prototype.getAngleList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 3));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setAngleList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.addAngle = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.clearAngleList = function() {
  return this.setAngleList([]);
};


/**
 * optional float scene_time = 4;
 * @return {number}
 */
proto.Messages.CameraControl.prototype.getSceneTime = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setSceneTime = function(value) {
  return jspb.Message.setProto3FloatField(this, 4, value);
};


/**
 * optional float magnification = 5;
 * @return {number}
 */
proto.Messages.CameraControl.prototype.getMagnification = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 5, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setMagnification = function(value) {
  return jspb.Message.setProto3FloatField(this, 5, value);
};


/**
 * optional float time_constant = 6;
 * @return {number}
 */
proto.Messages.CameraControl.prototype.getTimeConstant = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 6, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setTimeConstant = function(value) {
  return jspb.Message.setProto3FloatField(this, 6, value);
};


/**
 * optional float pan_sensitivity = 7;
 * @return {number}
 */
proto.Messages.CameraControl.prototype.getPanSensitivity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 7, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setPanSensitivity = function(value) {
  return jspb.Message.setProto3FloatField(this, 7, value);
};


/**
 * optional float rotation_sensitivity = 8;
 * @return {number}
 */
proto.Messages.CameraControl.prototype.getRotationSensitivity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setRotationSensitivity = function(value) {
  return jspb.Message.setProto3FloatField(this, 8, value);
};


/**
 * optional float zoom_sensitivity = 9;
 * @return {number}
 */
proto.Messages.CameraControl.prototype.getZoomSensitivity = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 9, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setZoomSensitivity = function(value) {
  return jspb.Message.setProto3FloatField(this, 9, value);
};


/**
 * optional float znear = 10;
 * @return {number}
 */
proto.Messages.CameraControl.prototype.getZnear = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 10, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setZnear = function(value) {
  return jspb.Message.setProto3FloatField(this, 10, value);
};


/**
 * optional float zfar = 11;
 * @return {number}
 */
proto.Messages.CameraControl.prototype.getZfar = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 11, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setZfar = function(value) {
  return jspb.Message.setProto3FloatField(this, 11, value);
};


/**
 * optional float aov = 12;
 * @return {number}
 */
proto.Messages.CameraControl.prototype.getAov = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 12, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setAov = function(value) {
  return jspb.Message.setProto3FloatField(this, 12, value);
};


/**
 * repeated uint32 resolution = 13;
 * @return {!Array<number>}
 */
proto.Messages.CameraControl.prototype.getResolutionList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 13));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setResolutionList = function(value) {
  return jspb.Message.setField(this, 13, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.addResolution = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 13, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.clearResolutionList = function() {
  return this.setResolutionList([]);
};


/**
 * optional bool perspective = 15;
 * @return {boolean}
 */
proto.Messages.CameraControl.prototype.getPerspective = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setPerspective = function(value) {
  return jspb.Message.setProto3BooleanField(this, 15, value);
};


/**
 * optional bool smooth = 16;
 * @return {boolean}
 */
proto.Messages.CameraControl.prototype.getSmooth = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 16, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setSmooth = function(value) {
  return jspb.Message.setProto3BooleanField(this, 16, value);
};


/**
 * optional bool orbit = 17;
 * @return {boolean}
 */
proto.Messages.CameraControl.prototype.getOrbit = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 17, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setOrbit = function(value) {
  return jspb.Message.setProto3BooleanField(this, 17, value);
};


/**
 * optional bool follow = 18;
 * @return {boolean}
 */
proto.Messages.CameraControl.prototype.getFollow = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 18, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.CameraControl} returns this
 */
proto.Messages.CameraControl.prototype.setFollow = function(value) {
  return jspb.Message.setProto3BooleanField(this, 18, value);
};


goog.object.extend(exports, proto.Messages);
