@vertexvis/viewer 0.18.1 → 0.18.2-testing.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/_commonjsHelpers.js +41 -0
- package/dist/components/_commonjsHelpers.js.map +1 -0
- package/dist/components/browser.esm.js +3173 -0
- package/dist/components/browser.esm.js.map +1 -0
- package/dist/components/bundle.esm.js +2250 -0
- package/dist/components/bundle.esm.js.map +1 -0
- package/dist/components/bundle.esm2.js +39740 -0
- package/dist/components/bundle.esm2.js.map +1 -0
- package/dist/components/config.js +81 -0
- package/dist/components/config.js.map +1 -0
- package/dist/components/controller.js +7627 -0
- package/dist/components/controller.js.map +1 -0
- package/dist/components/controller2.js +124 -0
- package/dist/components/controller2.js.map +1 -0
- package/dist/components/controller3.js +111 -0
- package/dist/components/controller3.js.map +1 -0
- package/dist/components/cursors.js +110 -0
- package/dist/components/cursors.js.map +1 -0
- package/dist/components/dom.js +43 -0
- package/dist/components/dom.js.map +1 -0
- package/dist/components/dom2.js +10 -0
- package/dist/components/dom2.js.map +1 -0
- package/dist/components/elementRectObserver.js +25 -0
- package/dist/components/elementRectObserver.js.map +1 -0
- package/dist/components/entities.js +179 -0
- package/dist/components/entities.js.map +1 -0
- package/dist/components/errors.js +80 -0
- package/dist/components/errors.js.map +1 -0
- package/dist/components/events.js +11 -0
- package/dist/components/events.js.map +1 -0
- package/dist/components/index.d.ts +26 -0
- package/dist/components/index.js +365 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index2.js +63 -0
- package/dist/components/index2.js.map +1 -0
- package/dist/components/interactions.js +236 -0
- package/dist/components/interactions.js.map +1 -0
- package/dist/components/mapper.js +9811 -0
- package/dist/components/mapper.js.map +1 -0
- package/dist/components/markup.js +33 -0
- package/dist/components/markup.js.map +1 -0
- package/dist/components/model.js +134 -0
- package/dist/components/model.js.map +1 -0
- package/dist/components/model2.js +157 -0
- package/dist/components/model2.js.map +1 -0
- package/dist/components/overlays.js +76 -0
- package/dist/components/overlays.js.map +1 -0
- package/dist/components/png-decoder.js +2405 -0
- package/dist/components/png-decoder.js.map +1 -0
- package/dist/components/regl-component.js +12582 -0
- package/dist/components/regl-component.js.map +1 -0
- package/dist/components/results.js +24 -0
- package/dist/components/results.js.map +1 -0
- package/dist/components/row.js +32 -0
- package/dist/components/row.js.map +1 -0
- package/dist/components/scene-tree-search.js +146 -0
- package/dist/components/scene-tree-search.js.map +1 -0
- package/dist/components/scene-tree-table-layout.js +928 -0
- package/dist/components/scene-tree-table-layout.js.map +1 -0
- package/dist/components/scene-tree-toolbar.js +35 -0
- package/dist/components/scene-tree-toolbar.js.map +1 -0
- package/dist/components/scene.js +1508 -0
- package/dist/components/scene.js.map +1 -0
- package/dist/components/stencil.js +25 -0
- package/dist/components/stencil.js.map +1 -0
- package/dist/components/streamAttributes.js +40833 -0
- package/dist/components/streamAttributes.js.map +1 -0
- package/dist/components/templates.js +36 -0
- package/dist/components/templates.js.map +1 -0
- package/dist/components/tslib.es6.js +125 -0
- package/dist/components/tslib.es6.js.map +1 -0
- package/dist/components/vertex-scene-tree-search.d.ts +11 -0
- package/dist/components/vertex-scene-tree-search.js +11 -0
- package/dist/components/vertex-scene-tree-search.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-cell.d.ts +11 -0
- package/dist/components/vertex-scene-tree-table-cell.js +209 -0
- package/dist/components/vertex-scene-tree-table-cell.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-column.d.ts +11 -0
- package/dist/components/vertex-scene-tree-table-column.js +42 -0
- package/dist/components/vertex-scene-tree-table-column.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-header.d.ts +11 -0
- package/dist/components/vertex-scene-tree-table-header.js +38 -0
- package/dist/components/vertex-scene-tree-table-header.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-layout.d.ts +11 -0
- package/dist/components/vertex-scene-tree-table-layout.js +11 -0
- package/dist/components/vertex-scene-tree-table-layout.js.map +1 -0
- package/dist/components/vertex-scene-tree-table-resize-divider.d.ts +11 -0
- package/dist/components/vertex-scene-tree-table-resize-divider.js +57 -0
- package/dist/components/vertex-scene-tree-table-resize-divider.js.map +1 -0
- package/dist/components/vertex-scene-tree-toolbar-group.d.ts +11 -0
- package/dist/components/vertex-scene-tree-toolbar-group.js +38 -0
- package/dist/components/vertex-scene-tree-toolbar-group.js.map +1 -0
- package/dist/components/vertex-scene-tree-toolbar.d.ts +11 -0
- package/dist/components/vertex-scene-tree-toolbar.js +11 -0
- package/dist/components/vertex-scene-tree-toolbar.js.map +1 -0
- package/dist/components/vertex-scene-tree.d.ts +11 -0
- package/dist/components/vertex-scene-tree.js +803 -0
- package/dist/components/vertex-scene-tree.js.map +1 -0
- package/dist/components/vertex-viewer-box-query-tool.d.ts +11 -0
- package/dist/components/vertex-viewer-box-query-tool.js +352 -0
- package/dist/components/vertex-viewer-box-query-tool.js.map +1 -0
- package/dist/components/vertex-viewer-button.d.ts +11 -0
- package/dist/components/vertex-viewer-button.js +11 -0
- package/dist/components/vertex-viewer-button.js.map +1 -0
- package/dist/components/vertex-viewer-default-toolbar.d.ts +11 -0
- package/dist/components/vertex-viewer-default-toolbar.js +99 -0
- package/dist/components/vertex-viewer-default-toolbar.js.map +1 -0
- package/dist/components/vertex-viewer-dom-element.d.ts +11 -0
- package/dist/components/vertex-viewer-dom-element.js +11 -0
- package/dist/components/vertex-viewer-dom-element.js.map +1 -0
- package/dist/components/vertex-viewer-dom-group.d.ts +11 -0
- package/dist/components/vertex-viewer-dom-group.js +11 -0
- package/dist/components/vertex-viewer-dom-group.js.map +1 -0
- package/dist/components/vertex-viewer-dom-renderer.d.ts +11 -0
- package/dist/components/vertex-viewer-dom-renderer.js +11 -0
- package/dist/components/vertex-viewer-dom-renderer.js.map +1 -0
- package/dist/components/vertex-viewer-hit-result-indicator.d.ts +11 -0
- package/dist/components/vertex-viewer-hit-result-indicator.js +335 -0
- package/dist/components/vertex-viewer-hit-result-indicator.js.map +1 -0
- package/dist/components/vertex-viewer-icon.d.ts +11 -0
- package/dist/components/vertex-viewer-icon.js +11 -0
- package/dist/components/vertex-viewer-icon.js.map +1 -0
- package/dist/components/vertex-viewer-layer.d.ts +11 -0
- package/dist/components/vertex-viewer-layer.js +11 -0
- package/dist/components/vertex-viewer-layer.js.map +1 -0
- package/dist/components/vertex-viewer-markup-arrow.d.ts +11 -0
- package/dist/components/vertex-viewer-markup-arrow.js +11 -0
- package/dist/components/vertex-viewer-markup-arrow.js.map +1 -0
- package/dist/components/vertex-viewer-markup-circle.d.ts +11 -0
- package/dist/components/vertex-viewer-markup-circle.js +11 -0
- package/dist/components/vertex-viewer-markup-circle.js.map +1 -0
- package/dist/components/vertex-viewer-markup-freeform.d.ts +11 -0
- package/dist/components/vertex-viewer-markup-freeform.js +11 -0
- package/dist/components/vertex-viewer-markup-freeform.js.map +1 -0
- package/dist/components/vertex-viewer-markup-tool.d.ts +11 -0
- package/dist/components/vertex-viewer-markup-tool.js +257 -0
- package/dist/components/vertex-viewer-markup-tool.js.map +1 -0
- package/dist/components/vertex-viewer-markup.d.ts +11 -0
- package/dist/components/vertex-viewer-markup.js +362 -0
- package/dist/components/vertex-viewer-markup.js.map +1 -0
- package/dist/components/vertex-viewer-measurement-details.d.ts +11 -0
- package/dist/components/vertex-viewer-measurement-details.js +307 -0
- package/dist/components/vertex-viewer-measurement-details.js.map +1 -0
- package/dist/components/vertex-viewer-measurement-distance.d.ts +11 -0
- package/dist/components/vertex-viewer-measurement-distance.js +1067 -0
- package/dist/components/vertex-viewer-measurement-distance.js.map +1 -0
- package/dist/components/vertex-viewer-measurement-line.d.ts +11 -0
- package/dist/components/vertex-viewer-measurement-line.js +11 -0
- package/dist/components/vertex-viewer-measurement-line.js.map +1 -0
- package/dist/components/vertex-viewer-measurement-overlays.d.ts +11 -0
- package/dist/components/vertex-viewer-measurement-overlays.js +11 -0
- package/dist/components/vertex-viewer-measurement-overlays.js.map +1 -0
- package/dist/components/vertex-viewer-measurement-precise.d.ts +11 -0
- package/dist/components/vertex-viewer-measurement-precise.js +362 -0
- package/dist/components/vertex-viewer-measurement-precise.js.map +1 -0
- package/dist/components/vertex-viewer-pin-group.d.ts +11 -0
- package/dist/components/vertex-viewer-pin-group.js +11 -0
- package/dist/components/vertex-viewer-pin-group.js.map +1 -0
- package/dist/components/vertex-viewer-pin-label-line.d.ts +11 -0
- package/dist/components/vertex-viewer-pin-label-line.js +11 -0
- package/dist/components/vertex-viewer-pin-label-line.js.map +1 -0
- package/dist/components/vertex-viewer-pin-label.d.ts +11 -0
- package/dist/components/vertex-viewer-pin-label.js +11 -0
- package/dist/components/vertex-viewer-pin-label.js.map +1 -0
- package/dist/components/vertex-viewer-pin-tool.d.ts +11 -0
- package/dist/components/vertex-viewer-pin-tool.js +430 -0
- package/dist/components/vertex-viewer-pin-tool.js.map +1 -0
- package/dist/components/vertex-viewer-spinner.d.ts +11 -0
- package/dist/components/vertex-viewer-spinner.js +11 -0
- package/dist/components/vertex-viewer-spinner.js.map +1 -0
- package/dist/components/vertex-viewer-toolbar-group.d.ts +11 -0
- package/dist/components/vertex-viewer-toolbar-group.js +11 -0
- package/dist/components/vertex-viewer-toolbar-group.js.map +1 -0
- package/dist/components/vertex-viewer-toolbar.d.ts +11 -0
- package/dist/components/vertex-viewer-toolbar.js +11 -0
- package/dist/components/vertex-viewer-toolbar.js.map +1 -0
- package/dist/components/vertex-viewer-transform-widget.d.ts +11 -0
- package/dist/components/vertex-viewer-transform-widget.js +838 -0
- package/dist/components/vertex-viewer-transform-widget.js.map +1 -0
- package/dist/components/vertex-viewer-view-cube.d.ts +11 -0
- package/dist/components/vertex-viewer-view-cube.js +270 -0
- package/dist/components/vertex-viewer-view-cube.js.map +1 -0
- package/dist/components/vertex-viewer.d.ts +11 -0
- package/dist/components/vertex-viewer.js +3543 -0
- package/dist/components/vertex-viewer.js.map +1 -0
- package/dist/components/viewer-button.js +35 -0
- package/dist/components/viewer-button.js.map +1 -0
- package/dist/components/viewer-dom-element.js +250 -0
- package/dist/components/viewer-dom-element.js.map +1 -0
- package/dist/components/viewer-dom-group.js +214 -0
- package/dist/components/viewer-dom-group.js.map +1 -0
- package/dist/components/viewer-dom-renderer.js +295 -0
- package/dist/components/viewer-dom-renderer.js.map +1 -0
- package/dist/components/viewer-icon.js +87 -0
- package/dist/components/viewer-icon.js.map +1 -0
- package/dist/components/viewer-layer.js +46 -0
- package/dist/components/viewer-layer.js.map +1 -0
- package/dist/components/viewer-markup-arrow.js +235 -0
- package/dist/components/viewer-markup-arrow.js.map +1 -0
- package/dist/components/viewer-markup-circle-components.js +42 -0
- package/dist/components/viewer-markup-circle-components.js.map +1 -0
- package/dist/components/viewer-markup-circle.js +201 -0
- package/dist/components/viewer-markup-circle.js.map +1 -0
- package/dist/components/viewer-markup-freeform.js +251 -0
- package/dist/components/viewer-markup-freeform.js.map +1 -0
- package/dist/components/viewer-measurement-line.js +77 -0
- package/dist/components/viewer-measurement-line.js.map +1 -0
- package/dist/components/viewer-measurement-overlays.js +184 -0
- package/dist/components/viewer-measurement-overlays.js.map +1 -0
- package/dist/components/viewer-pin-group.js +207 -0
- package/dist/components/viewer-pin-group.js.map +1 -0
- package/dist/components/viewer-pin-label-line.js +43 -0
- package/dist/components/viewer-pin-label-line.js.map +1 -0
- package/dist/components/viewer-pin-label.js +427 -0
- package/dist/components/viewer-pin-label.js.map +1 -0
- package/dist/components/viewer-spinner.js +53 -0
- package/dist/components/viewer-spinner.js.map +1 -0
- package/dist/components/viewer-toolbar-group.js +42 -0
- package/dist/components/viewer-toolbar-group.js.map +1 -0
- package/dist/components/viewer-toolbar.js +61 -0
- package/dist/components/viewer-toolbar.js.map +1 -0
- package/dist/components/viewport.js +188 -0
- package/dist/components/viewport.js.map +1 -0
- package/dist/components/wrappers_pb.js +1926 -0
- package/dist/components/wrappers_pb.js.map +1 -0
- package/package.json +7 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"mapper.js","mappings":"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","names":["jspb","core_protos_uuid_pb","google_protobuf_any_pb","core_protos_geometry_pb","core_protos_model_entity_pb","core_protos_measurement_pb","google_protobuf_wrappers_pb","M"],"sources":["../../node_modules/@vertexvis/scene-view-protos/core/protos/uuid_pb.js","../../node_modules/google-protobuf/google/protobuf/any_pb.js","../../node_modules/@vertexvis/scene-view-protos/core/protos/model_entity_pb.js","../../node_modules/@vertexvis/scene-view-protos/core/protos/geometry_pb.js","../../node_modules/@vertexvis/scene-view-protos/core/protos/aws_pb.js","../../node_modules/@vertexvis/scene-view-protos/core/protos/measurement_pb.js","../../node_modules/@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb.js","./src/lib/measurement/mapper.ts"],"sourcesContent":["/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Uuid', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Uuid2l', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Uuid = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Uuid, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Uuid.displayName = 'proto.vertexvis.protobuf.core.Uuid';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Uuid.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Uuid.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Uuid} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid.toObject = function(includeInstance, msg) {\n var f, obj = {\n hex: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.core.Uuid.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Uuid;\n return proto.vertexvis.protobuf.core.Uuid.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Uuid} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.core.Uuid.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setHex(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Uuid.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Uuid.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Uuid} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHex();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string hex = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Uuid.prototype.getHex = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Uuid.prototype.setHex = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Uuid2l = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Uuid2l, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Uuid2l.displayName = 'proto.vertexvis.protobuf.core.Uuid2l';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Uuid2l.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Uuid2l} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid2l.toObject = function(includeInstance, msg) {\n var f, obj = {\n msb: jspb.Message.getFieldWithDefault(msg, 1, \"0\"),\n lsb: jspb.Message.getFieldWithDefault(msg, 2, \"0\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Uuid2l}\n */\nproto.vertexvis.protobuf.core.Uuid2l.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Uuid2l;\n return proto.vertexvis.protobuf.core.Uuid2l.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Uuid2l} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Uuid2l}\n */\nproto.vertexvis.protobuf.core.Uuid2l.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readSfixed64String());\n msg.setMsb(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readSfixed64String());\n msg.setLsb(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Uuid2l.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Uuid2l} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Uuid2l.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMsb();\n if (parseInt(f, 10) !== 0) {\n writer.writeSfixed64String(\n 1,\n f\n );\n }\n f = message.getLsb();\n if (parseInt(f, 10) !== 0) {\n writer.writeSfixed64String(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional sfixed64 msb = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.getMsb = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"0\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.setMsb = function(value) {\n jspb.Message.setProto3StringIntField(this, 1, value);\n};\n\n\n/**\n * optional sfixed64 lsb = 2;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.getLsb = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"0\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.Uuid2l.prototype.setLsb = function(value) {\n jspb.Message.setProto3StringIntField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.core);\n","// source: google/protobuf/any.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = (function() {\n if (this) { return this; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n if (typeof self !== 'undefined') { return self; }\n return Function('return this')();\n}.call(null));\n\ngoog.exportSymbol('proto.google.protobuf.Any', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.google.protobuf.Any = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.google.protobuf.Any, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.google.protobuf.Any.displayName = 'proto.google.protobuf.Any';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.google.protobuf.Any.prototype.toObject = function(opt_includeInstance) {\n return proto.google.protobuf.Any.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.google.protobuf.Any} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.google.protobuf.Any.toObject = function(includeInstance, msg) {\n var f, obj = {\n typeUrl: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n value: msg.getValue_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.google.protobuf.Any}\n */\nproto.google.protobuf.Any.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.google.protobuf.Any;\n return proto.google.protobuf.Any.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.google.protobuf.Any} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.google.protobuf.Any}\n */\nproto.google.protobuf.Any.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setTypeUrl(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setValue(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.google.protobuf.Any.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.google.protobuf.Any.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.google.protobuf.Any} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.google.protobuf.Any.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTypeUrl();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getValue_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string type_url = 1;\n * @return {string}\n */\nproto.google.protobuf.Any.prototype.getTypeUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.google.protobuf.Any} returns this\n */\nproto.google.protobuf.Any.prototype.setTypeUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bytes value = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.google.protobuf.Any.prototype.getValue = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes value = 2;\n * This is a type-conversion wrapper around `getValue()`\n * @return {string}\n */\nproto.google.protobuf.Any.prototype.getValue_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getValue()));\n};\n\n\n/**\n * optional bytes value = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getValue()`\n * @return {!Uint8Array}\n */\nproto.google.protobuf.Any.prototype.getValue_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getValue()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.google.protobuf.Any} returns this\n */\nproto.google.protobuf.Any.prototype.setValue = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.google.protobuf);\n/* This code will be inserted into generated code for\n * google/protobuf/any.proto. */\n\n/**\n * Returns the type name contained in this instance, if any.\n * @return {string|undefined}\n */\nproto.google.protobuf.Any.prototype.getTypeName = function() {\n return this.getTypeUrl().split('/').pop();\n};\n\n\n/**\n * Packs the given message instance into this Any.\n * For binary format usage only.\n * @param {!Uint8Array} serialized The serialized data to pack.\n * @param {string} name The type name of this message object.\n * @param {string=} opt_typeUrlPrefix the type URL prefix.\n */\nproto.google.protobuf.Any.prototype.pack = function(serialized, name,\n opt_typeUrlPrefix) {\n if (!opt_typeUrlPrefix) {\n opt_typeUrlPrefix = 'type.googleapis.com/';\n }\n\n if (opt_typeUrlPrefix.substr(-1) != '/') {\n this.setTypeUrl(opt_typeUrlPrefix + '/' + name);\n } else {\n this.setTypeUrl(opt_typeUrlPrefix + name);\n }\n\n this.setValue(serialized);\n};\n\n\n/**\n * @template T\n * Unpacks this Any into the given message object.\n * @param {function(Uint8Array):T} deserialize Function that will deserialize\n * the binary data properly.\n * @param {string} name The expected type name of this message object.\n * @return {?T} If the name matched the expected name, returns the deserialized\n * object, otherwise returns null.\n */\nproto.google.protobuf.Any.prototype.unpack = function(deserialize, name) {\n if (this.getTypeName() == name) {\n return deserialize(this.getValue_asU8());\n } else {\n return null;\n }\n};\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar core_protos_uuid_pb = require('../../core/protos/uuid_pb.js');\nvar google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js');\ngoog.exportSymbol('proto.vertexvis.protobuf.core.ModelEntity', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.ModelEntity = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.core.ModelEntity.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.ModelEntity, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.ModelEntity.displayName = 'proto.vertexvis.protobuf.core.ModelEntity';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.core.ModelEntity.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.ModelEntity.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.ModelEntity.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.ModelEntity} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.ModelEntity.toObject = function(includeInstance, msg) {\n var f, obj = {\n entityId: jspb.Message.getFieldWithDefault(msg, 1, 0),\n sceneItemId: (f = msg.getSceneItemId()) && core_protos_uuid_pb.Uuid.toObject(includeInstance, f),\n detailsList: jspb.Message.toObjectList(msg.getDetailsList(),\n google_protobuf_any_pb.Any.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.ModelEntity}\n */\nproto.vertexvis.protobuf.core.ModelEntity.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.ModelEntity;\n return proto.vertexvis.protobuf.core.ModelEntity.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.ModelEntity} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.ModelEntity}\n */\nproto.vertexvis.protobuf.core.ModelEntity.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setEntityId(value);\n break;\n case 2:\n var value = new core_protos_uuid_pb.Uuid;\n reader.readMessage(value,core_protos_uuid_pb.Uuid.deserializeBinaryFromReader);\n msg.setSceneItemId(value);\n break;\n case 3:\n var value = new google_protobuf_any_pb.Any;\n reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);\n msg.addDetails(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.ModelEntity.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.ModelEntity.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.ModelEntity} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.ModelEntity.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEntityId();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getSceneItemId();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_uuid_pb.Uuid.serializeBinaryToWriter\n );\n }\n f = message.getDetailsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 3,\n f,\n google_protobuf_any_pb.Any.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional int64 entity_id = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.ModelEntity.prototype.getEntityId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.ModelEntity.prototype.setEntityId = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional Uuid scene_item_id = 2;\n * @return {?proto.vertexvis.protobuf.core.Uuid}\n */\nproto.vertexvis.protobuf.core.ModelEntity.prototype.getSceneItemId = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Uuid} */ (\n jspb.Message.getWrapperField(this, core_protos_uuid_pb.Uuid, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Uuid|undefined} value */\nproto.vertexvis.protobuf.core.ModelEntity.prototype.setSceneItemId = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.ModelEntity.prototype.clearSceneItemId = function() {\n this.setSceneItemId(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.ModelEntity.prototype.hasSceneItemId = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * repeated google.protobuf.Any details = 3;\n * @return {!Array<!proto.google.protobuf.Any>}\n */\nproto.vertexvis.protobuf.core.ModelEntity.prototype.getDetailsList = function() {\n return /** @type{!Array<!proto.google.protobuf.Any>} */ (\n jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 3));\n};\n\n\n/** @param {!Array<!proto.google.protobuf.Any>} value */\nproto.vertexvis.protobuf.core.ModelEntity.prototype.setDetailsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.google.protobuf.Any=} opt_value\n * @param {number=} opt_index\n * @return {!proto.google.protobuf.Any}\n */\nproto.vertexvis.protobuf.core.ModelEntity.prototype.addDetails = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.google.protobuf.Any, opt_index);\n};\n\n\nproto.vertexvis.protobuf.core.ModelEntity.prototype.clearDetailsList = function() {\n this.setDetailsList([]);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.core);\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\ngoog.exportSymbol('proto.vertexvis.protobuf.core.AffineMatrix4d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.AffineMatrix4f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.AffineTransform2d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.AffineTransform2f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.AffineTransform3d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.AffineTransform3f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.BBox2d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.BBox2f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.BBox3d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.BBox3f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.BoundingBox3f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Dimension2i', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Indexed3DTriangleSet', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.IndexedVector3fArray', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.LinearTransform2d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.LinearTransform2f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.LinearTransform3d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.LinearTransform3f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Matrix4x4d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Matrix4x4f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Plane', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Point2i', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Vector2d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Vector2f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Vector3d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Vector3f', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Vector4d', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.Vector4f', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Vector2f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Vector2f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Vector2f.displayName = 'proto.vertexvis.protobuf.core.Vector2f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Vector2f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Vector2f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Vector2f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector2f.toObject = function(includeInstance, msg) {\n var f, obj = {\n x: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),\n y: +jspb.Message.getFieldWithDefault(msg, 2, 0.0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Vector2f}\n */\nproto.vertexvis.protobuf.core.Vector2f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Vector2f;\n return proto.vertexvis.protobuf.core.Vector2f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Vector2f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Vector2f}\n */\nproto.vertexvis.protobuf.core.Vector2f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setX(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setY(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Vector2f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Vector2f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Vector2f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector2f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getX();\n if (f !== 0.0) {\n writer.writeFloat(\n 1,\n f\n );\n }\n f = message.getY();\n if (f !== 0.0) {\n writer.writeFloat(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional float x = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector2f.prototype.getX = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector2f.prototype.setX = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional float y = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector2f.prototype.getY = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector2f.prototype.setY = function(value) {\n jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Vector2d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Vector2d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Vector2d.displayName = 'proto.vertexvis.protobuf.core.Vector2d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Vector2d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Vector2d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Vector2d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector2d.toObject = function(includeInstance, msg) {\n var f, obj = {\n x: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),\n y: +jspb.Message.getFieldWithDefault(msg, 2, 0.0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Vector2d}\n */\nproto.vertexvis.protobuf.core.Vector2d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Vector2d;\n return proto.vertexvis.protobuf.core.Vector2d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Vector2d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Vector2d}\n */\nproto.vertexvis.protobuf.core.Vector2d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setX(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setY(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Vector2d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Vector2d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Vector2d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector2d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getX();\n if (f !== 0.0) {\n writer.writeDouble(\n 1,\n f\n );\n }\n f = message.getY();\n if (f !== 0.0) {\n writer.writeDouble(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional double x = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector2d.prototype.getX = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector2d.prototype.setX = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional double y = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector2d.prototype.getY = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector2d.prototype.setY = function(value) {\n jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Vector3f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Vector3f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Vector3f.displayName = 'proto.vertexvis.protobuf.core.Vector3f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Vector3f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Vector3f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Vector3f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector3f.toObject = function(includeInstance, msg) {\n var f, obj = {\n x: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),\n y: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),\n z: +jspb.Message.getFieldWithDefault(msg, 3, 0.0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.Vector3f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Vector3f;\n return proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Vector3f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setX(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setY(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setZ(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Vector3f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Vector3f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getX();\n if (f !== 0.0) {\n writer.writeFloat(\n 1,\n f\n );\n }\n f = message.getY();\n if (f !== 0.0) {\n writer.writeFloat(\n 2,\n f\n );\n }\n f = message.getZ();\n if (f !== 0.0) {\n writer.writeFloat(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional float x = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector3f.prototype.getX = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector3f.prototype.setX = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional float y = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector3f.prototype.getY = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector3f.prototype.setY = function(value) {\n jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n\n/**\n * optional float z = 3;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector3f.prototype.getZ = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector3f.prototype.setZ = function(value) {\n jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Vector3d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Vector3d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Vector3d.displayName = 'proto.vertexvis.protobuf.core.Vector3d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Vector3d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Vector3d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Vector3d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector3d.toObject = function(includeInstance, msg) {\n var f, obj = {\n x: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),\n y: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),\n z: +jspb.Message.getFieldWithDefault(msg, 3, 0.0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.Vector3d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Vector3d;\n return proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Vector3d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setX(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setY(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setZ(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Vector3d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Vector3d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getX();\n if (f !== 0.0) {\n writer.writeDouble(\n 1,\n f\n );\n }\n f = message.getY();\n if (f !== 0.0) {\n writer.writeDouble(\n 2,\n f\n );\n }\n f = message.getZ();\n if (f !== 0.0) {\n writer.writeDouble(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional double x = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector3d.prototype.getX = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector3d.prototype.setX = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional double y = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector3d.prototype.getY = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector3d.prototype.setY = function(value) {\n jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n\n/**\n * optional double z = 3;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector3d.prototype.getZ = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector3d.prototype.setZ = function(value) {\n jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Vector4f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Vector4f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Vector4f.displayName = 'proto.vertexvis.protobuf.core.Vector4f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Vector4f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Vector4f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Vector4f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector4f.toObject = function(includeInstance, msg) {\n var f, obj = {\n x: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),\n y: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),\n z: +jspb.Message.getFieldWithDefault(msg, 3, 0.0),\n w: +jspb.Message.getFieldWithDefault(msg, 4, 0.0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Vector4f}\n */\nproto.vertexvis.protobuf.core.Vector4f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Vector4f;\n return proto.vertexvis.protobuf.core.Vector4f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Vector4f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Vector4f}\n */\nproto.vertexvis.protobuf.core.Vector4f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setX(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setY(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setZ(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setW(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Vector4f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Vector4f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Vector4f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector4f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getX();\n if (f !== 0.0) {\n writer.writeFloat(\n 1,\n f\n );\n }\n f = message.getY();\n if (f !== 0.0) {\n writer.writeFloat(\n 2,\n f\n );\n }\n f = message.getZ();\n if (f !== 0.0) {\n writer.writeFloat(\n 3,\n f\n );\n }\n f = message.getW();\n if (f !== 0.0) {\n writer.writeFloat(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional float x = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector4f.prototype.getX = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector4f.prototype.setX = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional float y = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector4f.prototype.getY = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector4f.prototype.setY = function(value) {\n jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n\n/**\n * optional float z = 3;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector4f.prototype.getZ = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector4f.prototype.setZ = function(value) {\n jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n\n/**\n * optional float w = 4;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector4f.prototype.getW = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector4f.prototype.setW = function(value) {\n jspb.Message.setProto3FloatField(this, 4, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Vector4d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Vector4d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Vector4d.displayName = 'proto.vertexvis.protobuf.core.Vector4d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Vector4d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Vector4d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Vector4d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector4d.toObject = function(includeInstance, msg) {\n var f, obj = {\n x: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),\n y: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),\n z: +jspb.Message.getFieldWithDefault(msg, 3, 0.0),\n w: +jspb.Message.getFieldWithDefault(msg, 4, 0.0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Vector4d}\n */\nproto.vertexvis.protobuf.core.Vector4d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Vector4d;\n return proto.vertexvis.protobuf.core.Vector4d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Vector4d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Vector4d}\n */\nproto.vertexvis.protobuf.core.Vector4d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setX(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setY(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setZ(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setW(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Vector4d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Vector4d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Vector4d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Vector4d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getX();\n if (f !== 0.0) {\n writer.writeDouble(\n 1,\n f\n );\n }\n f = message.getY();\n if (f !== 0.0) {\n writer.writeDouble(\n 2,\n f\n );\n }\n f = message.getZ();\n if (f !== 0.0) {\n writer.writeDouble(\n 3,\n f\n );\n }\n f = message.getW();\n if (f !== 0.0) {\n writer.writeDouble(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional double x = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector4d.prototype.getX = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector4d.prototype.setX = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional double y = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector4d.prototype.getY = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector4d.prototype.setY = function(value) {\n jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n\n/**\n * optional double z = 3;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector4d.prototype.getZ = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector4d.prototype.setZ = function(value) {\n jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n\n/**\n * optional double w = 4;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Vector4d.prototype.getW = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Vector4d.prototype.setW = function(value) {\n jspb.Message.setProto3FloatField(this, 4, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.BoundingBox3f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.BoundingBox3f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.BoundingBox3f.displayName = 'proto.vertexvis.protobuf.core.BoundingBox3f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.BoundingBox3f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.BoundingBox3f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.toObject = function(includeInstance, msg) {\n var f, obj = {\n xmin: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),\n xmax: +jspb.Message.getFieldWithDefault(msg, 2, 0.0),\n ymin: +jspb.Message.getFieldWithDefault(msg, 3, 0.0),\n ymax: +jspb.Message.getFieldWithDefault(msg, 4, 0.0),\n zmin: +jspb.Message.getFieldWithDefault(msg, 5, 0.0),\n zmax: +jspb.Message.getFieldWithDefault(msg, 6, 0.0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.BoundingBox3f}\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.BoundingBox3f;\n return proto.vertexvis.protobuf.core.BoundingBox3f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.BoundingBox3f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.BoundingBox3f}\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setXmin(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setXmax(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setYmin(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setYmax(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setZmin(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setZmax(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.BoundingBox3f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.BoundingBox3f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getXmin();\n if (f !== 0.0) {\n writer.writeFloat(\n 1,\n f\n );\n }\n f = message.getXmax();\n if (f !== 0.0) {\n writer.writeFloat(\n 2,\n f\n );\n }\n f = message.getYmin();\n if (f !== 0.0) {\n writer.writeFloat(\n 3,\n f\n );\n }\n f = message.getYmax();\n if (f !== 0.0) {\n writer.writeFloat(\n 4,\n f\n );\n }\n f = message.getZmin();\n if (f !== 0.0) {\n writer.writeFloat(\n 5,\n f\n );\n }\n f = message.getZmax();\n if (f !== 0.0) {\n writer.writeFloat(\n 6,\n f\n );\n }\n};\n\n\n/**\n * optional float xmin = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.getXmin = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.setXmin = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional float xmax = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.getXmax = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.setXmax = function(value) {\n jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n\n/**\n * optional float ymin = 3;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.getYmin = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 3, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.setYmin = function(value) {\n jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n\n/**\n * optional float ymax = 4;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.getYmax = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.setYmax = function(value) {\n jspb.Message.setProto3FloatField(this, 4, value);\n};\n\n\n/**\n * optional float zmin = 5;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.getZmin = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 5, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.setZmin = function(value) {\n jspb.Message.setProto3FloatField(this, 5, value);\n};\n\n\n/**\n * optional float zmax = 6;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.getZmax = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 6, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.BoundingBox3f.prototype.setZmax = function(value) {\n jspb.Message.setProto3FloatField(this, 6, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.AffineMatrix4f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.AffineMatrix4f.displayName = 'proto.vertexvis.protobuf.core.AffineMatrix4f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.AffineMatrix4f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.AffineMatrix4f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.toObject = function(includeInstance, msg) {\n var f, obj = {\n basisX: (f = msg.getBasisX()) && proto.vertexvis.protobuf.core.Vector3f.toObject(includeInstance, f),\n basisY: (f = msg.getBasisY()) && proto.vertexvis.protobuf.core.Vector3f.toObject(includeInstance, f),\n xlate: (f = msg.getXlate()) && proto.vertexvis.protobuf.core.Vector3f.toObject(includeInstance, f),\n scale: +jspb.Message.getFieldWithDefault(msg, 4, 0.0),\n basisZ: (f = msg.getBasisZ()) && proto.vertexvis.protobuf.core.Vector3f.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.AffineMatrix4f}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.AffineMatrix4f;\n return proto.vertexvis.protobuf.core.AffineMatrix4f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.AffineMatrix4f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.AffineMatrix4f}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.setBasisX(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.setBasisY(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.setXlate(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setScale(value);\n break;\n case 5:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.setBasisZ(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.AffineMatrix4f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.AffineMatrix4f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getBasisX();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n f = message.getBasisY();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n f = message.getXlate();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n f = message.getScale();\n if (f !== 0.0) {\n writer.writeFloat(\n 4,\n f\n );\n }\n f = message.getBasisZ();\n if (f != null) {\n writer.writeMessage(\n 5,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector3f basis_x = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.getBasisX = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.setBasisX = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.clearBasisX = function() {\n this.setBasisX(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.hasBasisX = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector3f basis_y = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.getBasisY = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.setBasisY = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.clearBasisY = function() {\n this.setBasisY(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.hasBasisY = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Vector3f xlate = 3;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.getXlate = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.setXlate = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.clearXlate = function() {\n this.setXlate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.hasXlate = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional float scale = 4;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.getScale = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.setScale = function(value) {\n jspb.Message.setProto3FloatField(this, 4, value);\n};\n\n\n/**\n * optional Vector3f basis_z = 5;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.getBasisZ = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 5));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.setBasisZ = function(value) {\n jspb.Message.setWrapperField(this, 5, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.clearBasisZ = function() {\n this.setBasisZ(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4f.prototype.hasBasisZ = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.AffineMatrix4d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.AffineMatrix4d.displayName = 'proto.vertexvis.protobuf.core.AffineMatrix4d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.AffineMatrix4d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.AffineMatrix4d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.toObject = function(includeInstance, msg) {\n var f, obj = {\n basisX: (f = msg.getBasisX()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f),\n basisY: (f = msg.getBasisY()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f),\n xlate: (f = msg.getXlate()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f),\n scale: +jspb.Message.getFieldWithDefault(msg, 4, 0.0),\n basisZ: (f = msg.getBasisZ()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.AffineMatrix4d}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.AffineMatrix4d;\n return proto.vertexvis.protobuf.core.AffineMatrix4d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.AffineMatrix4d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.AffineMatrix4d}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setBasisX(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setBasisY(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setXlate(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setScale(value);\n break;\n case 5:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setBasisZ(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.AffineMatrix4d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.AffineMatrix4d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getBasisX();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n f = message.getBasisY();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n f = message.getXlate();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n f = message.getScale();\n if (f !== 0.0) {\n writer.writeDouble(\n 4,\n f\n );\n }\n f = message.getBasisZ();\n if (f != null) {\n writer.writeMessage(\n 5,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector3d basis_x = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.getBasisX = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.setBasisX = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.clearBasisX = function() {\n this.setBasisX(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.hasBasisX = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector3d basis_y = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.getBasisY = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.setBasisY = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.clearBasisY = function() {\n this.setBasisY(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.hasBasisY = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Vector3d xlate = 3;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.getXlate = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.setXlate = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.clearXlate = function() {\n this.setXlate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.hasXlate = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional double scale = 4;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.getScale = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 4, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.setScale = function(value) {\n jspb.Message.setProto3FloatField(this, 4, value);\n};\n\n\n/**\n * optional Vector3d basis_z = 5;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.getBasisZ = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 5));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.setBasisZ = function(value) {\n jspb.Message.setWrapperField(this, 5, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.clearBasisZ = function() {\n this.setBasisZ(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineMatrix4d.prototype.hasBasisZ = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.core.IndexedVector3fArray.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.IndexedVector3fArray, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.IndexedVector3fArray.displayName = 'proto.vertexvis.protobuf.core.IndexedVector3fArray';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.repeatedFields_ = [1,2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.IndexedVector3fArray.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.IndexedVector3fArray} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.toObject = function(includeInstance, msg) {\n var f, obj = {\n valuesList: jspb.Message.toObjectList(msg.getValuesList(),\n proto.vertexvis.protobuf.core.Vector3f.toObject, includeInstance),\n indicesList: jspb.Message.getRepeatedField(msg, 2)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.IndexedVector3fArray}\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.IndexedVector3fArray;\n return proto.vertexvis.protobuf.core.IndexedVector3fArray.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.IndexedVector3fArray} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.IndexedVector3fArray}\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.addValues(value);\n break;\n case 2:\n var value = /** @type {!Array<number>} */ (reader.readPackedUint32());\n msg.setIndicesList(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.IndexedVector3fArray.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.IndexedVector3fArray} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getValuesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n f = message.getIndicesList();\n if (f.length > 0) {\n writer.writePackedUint32(\n 2,\n f\n );\n }\n};\n\n\n/**\n * repeated Vector3f values = 1;\n * @return {!Array<!proto.vertexvis.protobuf.core.Vector3f>}\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.prototype.getValuesList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.core.Vector3f>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.core.Vector3f>} value */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.prototype.setValuesList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.core.Vector3f=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.prototype.addValues = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.core.Vector3f, opt_index);\n};\n\n\nproto.vertexvis.protobuf.core.IndexedVector3fArray.prototype.clearValuesList = function() {\n this.setValuesList([]);\n};\n\n\n/**\n * repeated uint32 indices = 2;\n * @return {!Array<number>}\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.prototype.getIndicesList = function() {\n return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/** @param {!Array<number>} value */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.prototype.setIndicesList = function(value) {\n jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {!number} value\n * @param {number=} opt_index\n */\nproto.vertexvis.protobuf.core.IndexedVector3fArray.prototype.addIndices = function(value, opt_index) {\n jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\nproto.vertexvis.protobuf.core.IndexedVector3fArray.prototype.clearIndicesList = function() {\n this.setIndicesList([]);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Indexed3DTriangleSet, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Indexed3DTriangleSet.displayName = 'proto.vertexvis.protobuf.core.Indexed3DTriangleSet';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Indexed3DTriangleSet.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Indexed3DTriangleSet} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.toObject = function(includeInstance, msg) {\n var f, obj = {\n vertices: (f = msg.getVertices()) && proto.vertexvis.protobuf.core.IndexedVector3fArray.toObject(includeInstance, f),\n normals: (f = msg.getNormals()) && proto.vertexvis.protobuf.core.IndexedVector3fArray.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Indexed3DTriangleSet}\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Indexed3DTriangleSet;\n return proto.vertexvis.protobuf.core.Indexed3DTriangleSet.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Indexed3DTriangleSet} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Indexed3DTriangleSet}\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.IndexedVector3fArray;\n reader.readMessage(value,proto.vertexvis.protobuf.core.IndexedVector3fArray.deserializeBinaryFromReader);\n msg.setVertices(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.IndexedVector3fArray;\n reader.readMessage(value,proto.vertexvis.protobuf.core.IndexedVector3fArray.deserializeBinaryFromReader);\n msg.setNormals(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Indexed3DTriangleSet.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Indexed3DTriangleSet} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getVertices();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.IndexedVector3fArray.serializeBinaryToWriter\n );\n }\n f = message.getNormals();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.IndexedVector3fArray.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional IndexedVector3fArray vertices = 1;\n * @return {?proto.vertexvis.protobuf.core.IndexedVector3fArray}\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.prototype.getVertices = function() {\n return /** @type{?proto.vertexvis.protobuf.core.IndexedVector3fArray} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.IndexedVector3fArray, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.IndexedVector3fArray|undefined} value */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.prototype.setVertices = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.prototype.clearVertices = function() {\n this.setVertices(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.prototype.hasVertices = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional IndexedVector3fArray normals = 2;\n * @return {?proto.vertexvis.protobuf.core.IndexedVector3fArray}\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.prototype.getNormals = function() {\n return /** @type{?proto.vertexvis.protobuf.core.IndexedVector3fArray} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.IndexedVector3fArray, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.IndexedVector3fArray|undefined} value */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.prototype.setNormals = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.prototype.clearNormals = function() {\n this.setNormals(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Indexed3DTriangleSet.prototype.hasNormals = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Matrix4x4f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Matrix4x4f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Matrix4x4f.displayName = 'proto.vertexvis.protobuf.core.Matrix4x4f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Matrix4x4f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Matrix4x4f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.toObject = function(includeInstance, msg) {\n var f, obj = {\n r0: (f = msg.getR0()) && proto.vertexvis.protobuf.core.Vector4f.toObject(includeInstance, f),\n r1: (f = msg.getR1()) && proto.vertexvis.protobuf.core.Vector4f.toObject(includeInstance, f),\n r2: (f = msg.getR2()) && proto.vertexvis.protobuf.core.Vector4f.toObject(includeInstance, f),\n r3: (f = msg.getR3()) && proto.vertexvis.protobuf.core.Vector4f.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Matrix4x4f}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Matrix4x4f;\n return proto.vertexvis.protobuf.core.Matrix4x4f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Matrix4x4f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Matrix4x4f}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector4f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector4f.deserializeBinaryFromReader);\n msg.setR0(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector4f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector4f.deserializeBinaryFromReader);\n msg.setR1(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.core.Vector4f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector4f.deserializeBinaryFromReader);\n msg.setR2(value);\n break;\n case 4:\n var value = new proto.vertexvis.protobuf.core.Vector4f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector4f.deserializeBinaryFromReader);\n msg.setR3(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Matrix4x4f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Matrix4x4f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getR0();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector4f.serializeBinaryToWriter\n );\n }\n f = message.getR1();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector4f.serializeBinaryToWriter\n );\n }\n f = message.getR2();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.vertexvis.protobuf.core.Vector4f.serializeBinaryToWriter\n );\n }\n f = message.getR3();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n proto.vertexvis.protobuf.core.Vector4f.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector4f r0 = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector4f}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.getR0 = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector4f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector4f, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector4f|undefined} value */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.setR0 = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.clearR0 = function() {\n this.setR0(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.hasR0 = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector4f r1 = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector4f}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.getR1 = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector4f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector4f, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector4f|undefined} value */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.setR1 = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.clearR1 = function() {\n this.setR1(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.hasR1 = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Vector4f r2 = 3;\n * @return {?proto.vertexvis.protobuf.core.Vector4f}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.getR2 = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector4f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector4f, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector4f|undefined} value */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.setR2 = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.clearR2 = function() {\n this.setR2(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.hasR2 = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Vector4f r3 = 4;\n * @return {?proto.vertexvis.protobuf.core.Vector4f}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.getR3 = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector4f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector4f, 4));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector4f|undefined} value */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.setR3 = function(value) {\n jspb.Message.setWrapperField(this, 4, value);\n};\n\n\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.clearR3 = function() {\n this.setR3(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Matrix4x4f.prototype.hasR3 = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Matrix4x4d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Matrix4x4d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Matrix4x4d.displayName = 'proto.vertexvis.protobuf.core.Matrix4x4d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Matrix4x4d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Matrix4x4d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.toObject = function(includeInstance, msg) {\n var f, obj = {\n r0: (f = msg.getR0()) && proto.vertexvis.protobuf.core.Vector4d.toObject(includeInstance, f),\n r1: (f = msg.getR1()) && proto.vertexvis.protobuf.core.Vector4d.toObject(includeInstance, f),\n r2: (f = msg.getR2()) && proto.vertexvis.protobuf.core.Vector4d.toObject(includeInstance, f),\n r3: (f = msg.getR3()) && proto.vertexvis.protobuf.core.Vector4d.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Matrix4x4d}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Matrix4x4d;\n return proto.vertexvis.protobuf.core.Matrix4x4d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Matrix4x4d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Matrix4x4d}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector4d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector4d.deserializeBinaryFromReader);\n msg.setR0(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector4d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector4d.deserializeBinaryFromReader);\n msg.setR1(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.core.Vector4d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector4d.deserializeBinaryFromReader);\n msg.setR2(value);\n break;\n case 4:\n var value = new proto.vertexvis.protobuf.core.Vector4d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector4d.deserializeBinaryFromReader);\n msg.setR3(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Matrix4x4d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Matrix4x4d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getR0();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector4d.serializeBinaryToWriter\n );\n }\n f = message.getR1();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector4d.serializeBinaryToWriter\n );\n }\n f = message.getR2();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.vertexvis.protobuf.core.Vector4d.serializeBinaryToWriter\n );\n }\n f = message.getR3();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n proto.vertexvis.protobuf.core.Vector4d.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector4d r0 = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector4d}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.getR0 = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector4d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector4d, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector4d|undefined} value */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.setR0 = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.clearR0 = function() {\n this.setR0(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.hasR0 = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector4d r1 = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector4d}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.getR1 = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector4d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector4d, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector4d|undefined} value */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.setR1 = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.clearR1 = function() {\n this.setR1(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.hasR1 = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Vector4d r2 = 3;\n * @return {?proto.vertexvis.protobuf.core.Vector4d}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.getR2 = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector4d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector4d, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector4d|undefined} value */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.setR2 = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.clearR2 = function() {\n this.setR2(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.hasR2 = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Vector4d r3 = 4;\n * @return {?proto.vertexvis.protobuf.core.Vector4d}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.getR3 = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector4d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector4d, 4));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector4d|undefined} value */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.setR3 = function(value) {\n jspb.Message.setWrapperField(this, 4, value);\n};\n\n\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.clearR3 = function() {\n this.setR3(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Matrix4x4d.prototype.hasR3 = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Dimension2i = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Dimension2i, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Dimension2i.displayName = 'proto.vertexvis.protobuf.core.Dimension2i';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Dimension2i.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Dimension2i.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Dimension2i} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Dimension2i.toObject = function(includeInstance, msg) {\n var f, obj = {\n width: jspb.Message.getFieldWithDefault(msg, 1, 0),\n height: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Dimension2i}\n */\nproto.vertexvis.protobuf.core.Dimension2i.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Dimension2i;\n return proto.vertexvis.protobuf.core.Dimension2i.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Dimension2i} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Dimension2i}\n */\nproto.vertexvis.protobuf.core.Dimension2i.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setWidth(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setHeight(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Dimension2i.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Dimension2i.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Dimension2i} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Dimension2i.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getWidth();\n if (f !== 0) {\n writer.writeInt32(\n 1,\n f\n );\n }\n f = message.getHeight();\n if (f !== 0) {\n writer.writeInt32(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional int32 width = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Dimension2i.prototype.getWidth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Dimension2i.prototype.setWidth = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int32 height = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Dimension2i.prototype.getHeight = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Dimension2i.prototype.setHeight = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Point2i = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Point2i, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Point2i.displayName = 'proto.vertexvis.protobuf.core.Point2i';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Point2i.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Point2i.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Point2i} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Point2i.toObject = function(includeInstance, msg) {\n var f, obj = {\n dx: jspb.Message.getFieldWithDefault(msg, 1, 0),\n dy: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Point2i}\n */\nproto.vertexvis.protobuf.core.Point2i.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Point2i;\n return proto.vertexvis.protobuf.core.Point2i.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Point2i} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Point2i}\n */\nproto.vertexvis.protobuf.core.Point2i.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setDx(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setDy(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Point2i.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Point2i.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Point2i} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Point2i.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDx();\n if (f !== 0) {\n writer.writeInt32(\n 1,\n f\n );\n }\n f = message.getDy();\n if (f !== 0) {\n writer.writeInt32(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional int32 dx = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Point2i.prototype.getDx = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Point2i.prototype.setDx = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int32 dy = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Point2i.prototype.getDy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Point2i.prototype.setDy = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.BBox2f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.BBox2f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.BBox2f.displayName = 'proto.vertexvis.protobuf.core.BBox2f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.BBox2f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.BBox2f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.BBox2f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.BBox2f.toObject = function(includeInstance, msg) {\n var f, obj = {\n min: (f = msg.getMin()) && proto.vertexvis.protobuf.core.Vector2f.toObject(includeInstance, f),\n max: (f = msg.getMax()) && proto.vertexvis.protobuf.core.Vector2f.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.BBox2f}\n */\nproto.vertexvis.protobuf.core.BBox2f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.BBox2f;\n return proto.vertexvis.protobuf.core.BBox2f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.BBox2f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.BBox2f}\n */\nproto.vertexvis.protobuf.core.BBox2f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector2f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector2f.deserializeBinaryFromReader);\n msg.setMin(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector2f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector2f.deserializeBinaryFromReader);\n msg.setMax(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.BBox2f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.BBox2f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.BBox2f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.BBox2f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMin();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector2f.serializeBinaryToWriter\n );\n }\n f = message.getMax();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector2f.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector2f min = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector2f}\n */\nproto.vertexvis.protobuf.core.BBox2f.prototype.getMin = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector2f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector2f, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector2f|undefined} value */\nproto.vertexvis.protobuf.core.BBox2f.prototype.setMin = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.BBox2f.prototype.clearMin = function() {\n this.setMin(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.BBox2f.prototype.hasMin = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector2f max = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector2f}\n */\nproto.vertexvis.protobuf.core.BBox2f.prototype.getMax = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector2f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector2f, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector2f|undefined} value */\nproto.vertexvis.protobuf.core.BBox2f.prototype.setMax = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.BBox2f.prototype.clearMax = function() {\n this.setMax(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.BBox2f.prototype.hasMax = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.BBox2d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.BBox2d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.BBox2d.displayName = 'proto.vertexvis.protobuf.core.BBox2d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.BBox2d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.BBox2d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.BBox2d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.BBox2d.toObject = function(includeInstance, msg) {\n var f, obj = {\n min: (f = msg.getMin()) && proto.vertexvis.protobuf.core.Vector2d.toObject(includeInstance, f),\n max: (f = msg.getMax()) && proto.vertexvis.protobuf.core.Vector2d.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.BBox2d}\n */\nproto.vertexvis.protobuf.core.BBox2d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.BBox2d;\n return proto.vertexvis.protobuf.core.BBox2d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.BBox2d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.BBox2d}\n */\nproto.vertexvis.protobuf.core.BBox2d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector2d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector2d.deserializeBinaryFromReader);\n msg.setMin(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector2d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector2d.deserializeBinaryFromReader);\n msg.setMax(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.BBox2d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.BBox2d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.BBox2d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.BBox2d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMin();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector2d.serializeBinaryToWriter\n );\n }\n f = message.getMax();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector2d.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector2d min = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector2d}\n */\nproto.vertexvis.protobuf.core.BBox2d.prototype.getMin = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector2d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector2d, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector2d|undefined} value */\nproto.vertexvis.protobuf.core.BBox2d.prototype.setMin = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.BBox2d.prototype.clearMin = function() {\n this.setMin(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.BBox2d.prototype.hasMin = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector2d max = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector2d}\n */\nproto.vertexvis.protobuf.core.BBox2d.prototype.getMax = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector2d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector2d, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector2d|undefined} value */\nproto.vertexvis.protobuf.core.BBox2d.prototype.setMax = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.BBox2d.prototype.clearMax = function() {\n this.setMax(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.BBox2d.prototype.hasMax = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.BBox3f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.BBox3f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.BBox3f.displayName = 'proto.vertexvis.protobuf.core.BBox3f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.BBox3f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.BBox3f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.BBox3f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.BBox3f.toObject = function(includeInstance, msg) {\n var f, obj = {\n min: (f = msg.getMin()) && proto.vertexvis.protobuf.core.Vector3f.toObject(includeInstance, f),\n max: (f = msg.getMax()) && proto.vertexvis.protobuf.core.Vector3f.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.BBox3f}\n */\nproto.vertexvis.protobuf.core.BBox3f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.BBox3f;\n return proto.vertexvis.protobuf.core.BBox3f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.BBox3f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.BBox3f}\n */\nproto.vertexvis.protobuf.core.BBox3f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.setMin(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.setMax(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.BBox3f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.BBox3f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.BBox3f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.BBox3f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMin();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n f = message.getMax();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector3f min = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.BBox3f.prototype.getMin = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.core.BBox3f.prototype.setMin = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.BBox3f.prototype.clearMin = function() {\n this.setMin(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.BBox3f.prototype.hasMin = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector3f max = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.BBox3f.prototype.getMax = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.core.BBox3f.prototype.setMax = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.BBox3f.prototype.clearMax = function() {\n this.setMax(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.BBox3f.prototype.hasMax = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.BBox3d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.BBox3d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.BBox3d.displayName = 'proto.vertexvis.protobuf.core.BBox3d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.BBox3d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.BBox3d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.BBox3d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.BBox3d.toObject = function(includeInstance, msg) {\n var f, obj = {\n min: (f = msg.getMin()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f),\n max: (f = msg.getMax()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.BBox3d}\n */\nproto.vertexvis.protobuf.core.BBox3d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.BBox3d;\n return proto.vertexvis.protobuf.core.BBox3d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.BBox3d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.BBox3d}\n */\nproto.vertexvis.protobuf.core.BBox3d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setMin(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setMax(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.BBox3d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.BBox3d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.BBox3d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.BBox3d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMin();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n f = message.getMax();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector3d min = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.BBox3d.prototype.getMin = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.BBox3d.prototype.setMin = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.BBox3d.prototype.clearMin = function() {\n this.setMin(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.BBox3d.prototype.hasMin = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector3d max = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.BBox3d.prototype.getMax = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.BBox3d.prototype.setMax = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.BBox3d.prototype.clearMax = function() {\n this.setMax(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.BBox3d.prototype.hasMax = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.LinearTransform2f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.LinearTransform2f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.LinearTransform2f.displayName = 'proto.vertexvis.protobuf.core.LinearTransform2f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.LinearTransform2f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.LinearTransform2f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.LinearTransform2f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.LinearTransform2f.toObject = function(includeInstance, msg) {\n var f, obj = {\n basisX: (f = msg.getBasisX()) && proto.vertexvis.protobuf.core.Vector2f.toObject(includeInstance, f),\n basisY: (f = msg.getBasisY()) && proto.vertexvis.protobuf.core.Vector2f.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.LinearTransform2f}\n */\nproto.vertexvis.protobuf.core.LinearTransform2f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.LinearTransform2f;\n return proto.vertexvis.protobuf.core.LinearTransform2f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.LinearTransform2f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.LinearTransform2f}\n */\nproto.vertexvis.protobuf.core.LinearTransform2f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector2f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector2f.deserializeBinaryFromReader);\n msg.setBasisX(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector2f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector2f.deserializeBinaryFromReader);\n msg.setBasisY(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.LinearTransform2f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.LinearTransform2f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.LinearTransform2f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.LinearTransform2f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getBasisX();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector2f.serializeBinaryToWriter\n );\n }\n f = message.getBasisY();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector2f.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector2f basis_x = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector2f}\n */\nproto.vertexvis.protobuf.core.LinearTransform2f.prototype.getBasisX = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector2f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector2f, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector2f|undefined} value */\nproto.vertexvis.protobuf.core.LinearTransform2f.prototype.setBasisX = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.LinearTransform2f.prototype.clearBasisX = function() {\n this.setBasisX(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.LinearTransform2f.prototype.hasBasisX = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector2f basis_y = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector2f}\n */\nproto.vertexvis.protobuf.core.LinearTransform2f.prototype.getBasisY = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector2f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector2f, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector2f|undefined} value */\nproto.vertexvis.protobuf.core.LinearTransform2f.prototype.setBasisY = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.LinearTransform2f.prototype.clearBasisY = function() {\n this.setBasisY(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.LinearTransform2f.prototype.hasBasisY = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.LinearTransform2d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.LinearTransform2d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.LinearTransform2d.displayName = 'proto.vertexvis.protobuf.core.LinearTransform2d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.LinearTransform2d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.LinearTransform2d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.LinearTransform2d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.LinearTransform2d.toObject = function(includeInstance, msg) {\n var f, obj = {\n basisX: (f = msg.getBasisX()) && proto.vertexvis.protobuf.core.Vector2d.toObject(includeInstance, f),\n basisY: (f = msg.getBasisY()) && proto.vertexvis.protobuf.core.Vector2d.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.LinearTransform2d}\n */\nproto.vertexvis.protobuf.core.LinearTransform2d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.LinearTransform2d;\n return proto.vertexvis.protobuf.core.LinearTransform2d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.LinearTransform2d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.LinearTransform2d}\n */\nproto.vertexvis.protobuf.core.LinearTransform2d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector2d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector2d.deserializeBinaryFromReader);\n msg.setBasisX(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector2d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector2d.deserializeBinaryFromReader);\n msg.setBasisY(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.LinearTransform2d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.LinearTransform2d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.LinearTransform2d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.LinearTransform2d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getBasisX();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector2d.serializeBinaryToWriter\n );\n }\n f = message.getBasisY();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector2d.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector2d basis_x = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector2d}\n */\nproto.vertexvis.protobuf.core.LinearTransform2d.prototype.getBasisX = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector2d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector2d, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector2d|undefined} value */\nproto.vertexvis.protobuf.core.LinearTransform2d.prototype.setBasisX = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.LinearTransform2d.prototype.clearBasisX = function() {\n this.setBasisX(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.LinearTransform2d.prototype.hasBasisX = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector2d basis_y = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector2d}\n */\nproto.vertexvis.protobuf.core.LinearTransform2d.prototype.getBasisY = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector2d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector2d, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector2d|undefined} value */\nproto.vertexvis.protobuf.core.LinearTransform2d.prototype.setBasisY = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.LinearTransform2d.prototype.clearBasisY = function() {\n this.setBasisY(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.LinearTransform2d.prototype.hasBasisY = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.LinearTransform3f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.LinearTransform3f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.LinearTransform3f.displayName = 'proto.vertexvis.protobuf.core.LinearTransform3f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.LinearTransform3f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.LinearTransform3f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.toObject = function(includeInstance, msg) {\n var f, obj = {\n basisX: (f = msg.getBasisX()) && proto.vertexvis.protobuf.core.Vector3f.toObject(includeInstance, f),\n basisY: (f = msg.getBasisY()) && proto.vertexvis.protobuf.core.Vector3f.toObject(includeInstance, f),\n basisZ: (f = msg.getBasisZ()) && proto.vertexvis.protobuf.core.Vector3f.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.LinearTransform3f}\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.LinearTransform3f;\n return proto.vertexvis.protobuf.core.LinearTransform3f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.LinearTransform3f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.LinearTransform3f}\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.setBasisX(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.setBasisY(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.setBasisZ(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.LinearTransform3f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.LinearTransform3f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getBasisX();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n f = message.getBasisY();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n f = message.getBasisZ();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector3f basis_x = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.getBasisX = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.setBasisX = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.clearBasisX = function() {\n this.setBasisX(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.hasBasisX = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector3f basis_y = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.getBasisY = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.setBasisY = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.clearBasisY = function() {\n this.setBasisY(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.hasBasisY = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Vector3f basis_z = 3;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.getBasisZ = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.setBasisZ = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.clearBasisZ = function() {\n this.setBasisZ(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.LinearTransform3f.prototype.hasBasisZ = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.LinearTransform3d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.LinearTransform3d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.LinearTransform3d.displayName = 'proto.vertexvis.protobuf.core.LinearTransform3d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.LinearTransform3d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.LinearTransform3d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.toObject = function(includeInstance, msg) {\n var f, obj = {\n basisX: (f = msg.getBasisX()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f),\n basisY: (f = msg.getBasisY()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f),\n basisZ: (f = msg.getBasisZ()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.LinearTransform3d}\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.LinearTransform3d;\n return proto.vertexvis.protobuf.core.LinearTransform3d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.LinearTransform3d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.LinearTransform3d}\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setBasisX(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setBasisY(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setBasisZ(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.LinearTransform3d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.LinearTransform3d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getBasisX();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n f = message.getBasisY();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n f = message.getBasisZ();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Vector3d basis_x = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.getBasisX = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.setBasisX = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.clearBasisX = function() {\n this.setBasisX(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.hasBasisX = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector3d basis_y = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.getBasisY = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.setBasisY = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.clearBasisY = function() {\n this.setBasisY(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.hasBasisY = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Vector3d basis_z = 3;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.getBasisZ = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.setBasisZ = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.clearBasisZ = function() {\n this.setBasisZ(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.LinearTransform3d.prototype.hasBasisZ = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.AffineTransform2f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.AffineTransform2f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.AffineTransform2f.displayName = 'proto.vertexvis.protobuf.core.AffineTransform2f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.AffineTransform2f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.AffineTransform2f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.AffineTransform2f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineTransform2f.toObject = function(includeInstance, msg) {\n var f, obj = {\n transform: (f = msg.getTransform()) && proto.vertexvis.protobuf.core.LinearTransform2f.toObject(includeInstance, f),\n pos: (f = msg.getPos()) && proto.vertexvis.protobuf.core.Vector2f.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.AffineTransform2f}\n */\nproto.vertexvis.protobuf.core.AffineTransform2f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.AffineTransform2f;\n return proto.vertexvis.protobuf.core.AffineTransform2f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.AffineTransform2f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.AffineTransform2f}\n */\nproto.vertexvis.protobuf.core.AffineTransform2f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.LinearTransform2f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.LinearTransform2f.deserializeBinaryFromReader);\n msg.setTransform(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector2f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector2f.deserializeBinaryFromReader);\n msg.setPos(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.AffineTransform2f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.AffineTransform2f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.AffineTransform2f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineTransform2f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTransform();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.LinearTransform2f.serializeBinaryToWriter\n );\n }\n f = message.getPos();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector2f.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional LinearTransform2f transform = 1;\n * @return {?proto.vertexvis.protobuf.core.LinearTransform2f}\n */\nproto.vertexvis.protobuf.core.AffineTransform2f.prototype.getTransform = function() {\n return /** @type{?proto.vertexvis.protobuf.core.LinearTransform2f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.LinearTransform2f, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.LinearTransform2f|undefined} value */\nproto.vertexvis.protobuf.core.AffineTransform2f.prototype.setTransform = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineTransform2f.prototype.clearTransform = function() {\n this.setTransform(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineTransform2f.prototype.hasTransform = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector2f pos = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector2f}\n */\nproto.vertexvis.protobuf.core.AffineTransform2f.prototype.getPos = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector2f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector2f, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector2f|undefined} value */\nproto.vertexvis.protobuf.core.AffineTransform2f.prototype.setPos = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineTransform2f.prototype.clearPos = function() {\n this.setPos(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineTransform2f.prototype.hasPos = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.AffineTransform2d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.AffineTransform2d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.AffineTransform2d.displayName = 'proto.vertexvis.protobuf.core.AffineTransform2d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.AffineTransform2d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.AffineTransform2d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.AffineTransform2d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineTransform2d.toObject = function(includeInstance, msg) {\n var f, obj = {\n transform: (f = msg.getTransform()) && proto.vertexvis.protobuf.core.LinearTransform2d.toObject(includeInstance, f),\n pos: (f = msg.getPos()) && proto.vertexvis.protobuf.core.Vector2d.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.AffineTransform2d}\n */\nproto.vertexvis.protobuf.core.AffineTransform2d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.AffineTransform2d;\n return proto.vertexvis.protobuf.core.AffineTransform2d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.AffineTransform2d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.AffineTransform2d}\n */\nproto.vertexvis.protobuf.core.AffineTransform2d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.LinearTransform2d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.LinearTransform2d.deserializeBinaryFromReader);\n msg.setTransform(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector2d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector2d.deserializeBinaryFromReader);\n msg.setPos(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.AffineTransform2d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.AffineTransform2d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.AffineTransform2d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineTransform2d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTransform();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.LinearTransform2d.serializeBinaryToWriter\n );\n }\n f = message.getPos();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector2d.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional LinearTransform2d transform = 1;\n * @return {?proto.vertexvis.protobuf.core.LinearTransform2d}\n */\nproto.vertexvis.protobuf.core.AffineTransform2d.prototype.getTransform = function() {\n return /** @type{?proto.vertexvis.protobuf.core.LinearTransform2d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.LinearTransform2d, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.LinearTransform2d|undefined} value */\nproto.vertexvis.protobuf.core.AffineTransform2d.prototype.setTransform = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineTransform2d.prototype.clearTransform = function() {\n this.setTransform(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineTransform2d.prototype.hasTransform = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector2d pos = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector2d}\n */\nproto.vertexvis.protobuf.core.AffineTransform2d.prototype.getPos = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector2d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector2d, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector2d|undefined} value */\nproto.vertexvis.protobuf.core.AffineTransform2d.prototype.setPos = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineTransform2d.prototype.clearPos = function() {\n this.setPos(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineTransform2d.prototype.hasPos = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.AffineTransform3f = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.AffineTransform3f, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.AffineTransform3f.displayName = 'proto.vertexvis.protobuf.core.AffineTransform3f';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.AffineTransform3f.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.AffineTransform3f.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.AffineTransform3f} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineTransform3f.toObject = function(includeInstance, msg) {\n var f, obj = {\n transform: (f = msg.getTransform()) && proto.vertexvis.protobuf.core.LinearTransform3f.toObject(includeInstance, f),\n pos: (f = msg.getPos()) && proto.vertexvis.protobuf.core.Vector3f.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.AffineTransform3f}\n */\nproto.vertexvis.protobuf.core.AffineTransform3f.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.AffineTransform3f;\n return proto.vertexvis.protobuf.core.AffineTransform3f.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.AffineTransform3f} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.AffineTransform3f}\n */\nproto.vertexvis.protobuf.core.AffineTransform3f.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.LinearTransform3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.LinearTransform3f.deserializeBinaryFromReader);\n msg.setTransform(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector3f;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3f.deserializeBinaryFromReader);\n msg.setPos(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.AffineTransform3f.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.AffineTransform3f.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.AffineTransform3f} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineTransform3f.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTransform();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.LinearTransform3f.serializeBinaryToWriter\n );\n }\n f = message.getPos();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector3f.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional LinearTransform3f transform = 1;\n * @return {?proto.vertexvis.protobuf.core.LinearTransform3f}\n */\nproto.vertexvis.protobuf.core.AffineTransform3f.prototype.getTransform = function() {\n return /** @type{?proto.vertexvis.protobuf.core.LinearTransform3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.LinearTransform3f, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.LinearTransform3f|undefined} value */\nproto.vertexvis.protobuf.core.AffineTransform3f.prototype.setTransform = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineTransform3f.prototype.clearTransform = function() {\n this.setTransform(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineTransform3f.prototype.hasTransform = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector3f pos = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.core.AffineTransform3f.prototype.getPos = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3f, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.core.AffineTransform3f.prototype.setPos = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineTransform3f.prototype.clearPos = function() {\n this.setPos(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineTransform3f.prototype.hasPos = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.AffineTransform3d = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.AffineTransform3d, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.AffineTransform3d.displayName = 'proto.vertexvis.protobuf.core.AffineTransform3d';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.AffineTransform3d.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.AffineTransform3d.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.AffineTransform3d} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineTransform3d.toObject = function(includeInstance, msg) {\n var f, obj = {\n transform: (f = msg.getTransform()) && proto.vertexvis.protobuf.core.LinearTransform3d.toObject(includeInstance, f),\n pos: (f = msg.getPos()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.AffineTransform3d}\n */\nproto.vertexvis.protobuf.core.AffineTransform3d.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.AffineTransform3d;\n return proto.vertexvis.protobuf.core.AffineTransform3d.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.AffineTransform3d} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.AffineTransform3d}\n */\nproto.vertexvis.protobuf.core.AffineTransform3d.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.LinearTransform3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.LinearTransform3d.deserializeBinaryFromReader);\n msg.setTransform(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setPos(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.AffineTransform3d.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.AffineTransform3d.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.AffineTransform3d} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.AffineTransform3d.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTransform();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.LinearTransform3d.serializeBinaryToWriter\n );\n }\n f = message.getPos();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional LinearTransform3d transform = 1;\n * @return {?proto.vertexvis.protobuf.core.LinearTransform3d}\n */\nproto.vertexvis.protobuf.core.AffineTransform3d.prototype.getTransform = function() {\n return /** @type{?proto.vertexvis.protobuf.core.LinearTransform3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.LinearTransform3d, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.LinearTransform3d|undefined} value */\nproto.vertexvis.protobuf.core.AffineTransform3d.prototype.setTransform = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineTransform3d.prototype.clearTransform = function() {\n this.setTransform(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineTransform3d.prototype.hasTransform = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Vector3d pos = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.AffineTransform3d.prototype.getPos = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.AffineTransform3d.prototype.setPos = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.AffineTransform3d.prototype.clearPos = function() {\n this.setPos(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.AffineTransform3d.prototype.hasPos = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.Plane = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.Plane, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.Plane.displayName = 'proto.vertexvis.protobuf.core.Plane';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.Plane.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.Plane.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.Plane} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Plane.toObject = function(includeInstance, msg) {\n var f, obj = {\n normal: (f = msg.getNormal()) && proto.vertexvis.protobuf.core.Vector3d.toObject(includeInstance, f),\n d: +jspb.Message.getFieldWithDefault(msg, 2, 0.0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.Plane}\n */\nproto.vertexvis.protobuf.core.Plane.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.Plane;\n return proto.vertexvis.protobuf.core.Plane.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.Plane} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.Plane}\n */\nproto.vertexvis.protobuf.core.Plane.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.Vector3d;\n reader.readMessage(value,proto.vertexvis.protobuf.core.Vector3d.deserializeBinaryFromReader);\n msg.setNormal(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setD(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.Plane.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.Plane.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.Plane} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.Plane.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNormal();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.Vector3d.serializeBinaryToWriter\n );\n }\n f = message.getD();\n if (f !== 0.0) {\n writer.writeDouble(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional Vector3d normal = 1;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.Plane.prototype.getNormal = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.Vector3d, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.Plane.prototype.setNormal = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.Plane.prototype.clearNormal = function() {\n this.setNormal(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.Plane.prototype.hasNormal = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional double d = 2;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.Plane.prototype.getD = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 2, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.Plane.prototype.setD = function(value) {\n jspb.Message.setProto3FloatField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.core);\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\ngoog.exportSymbol('proto.vertexvis.protobuf.core.S3FileLocation', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.S3FileLocation = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.S3FileLocation, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.S3FileLocation.displayName = 'proto.vertexvis.protobuf.core.S3FileLocation';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.S3FileLocation.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.S3FileLocation.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.S3FileLocation} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.S3FileLocation.toObject = function(includeInstance, msg) {\n var f, obj = {\n bucket: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n key: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.S3FileLocation}\n */\nproto.vertexvis.protobuf.core.S3FileLocation.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.S3FileLocation;\n return proto.vertexvis.protobuf.core.S3FileLocation.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.S3FileLocation} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.S3FileLocation}\n */\nproto.vertexvis.protobuf.core.S3FileLocation.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setBucket(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setKey(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.S3FileLocation.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.S3FileLocation.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.S3FileLocation} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.S3FileLocation.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getBucket();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getKey();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string bucket = 1;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.S3FileLocation.prototype.getBucket = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.S3FileLocation.prototype.setBucket = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string key = 2;\n * @return {string}\n */\nproto.vertexvis.protobuf.core.S3FileLocation.prototype.getKey = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.vertexvis.protobuf.core.S3FileLocation.prototype.setKey = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.core);\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar core_protos_aws_pb = require('../../core/protos/aws_pb.js');\nvar core_protos_uuid_pb = require('../../core/protos/uuid_pb.js');\nvar core_protos_geometry_pb = require('../../core/protos/geometry_pb.js');\ngoog.exportSymbol('proto.vertexvis.protobuf.core.MeasurementOutcome', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.MeasurementResult', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.MinimumDistanceResult', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.PlanarAngleResult', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.PlanarDistanceResult', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.PlanePair', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.core.SurfaceAreaResult', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.PlanePair = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.PlanePair, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.PlanePair.displayName = 'proto.vertexvis.protobuf.core.PlanePair';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.PlanePair.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.PlanePair.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.PlanePair} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.PlanePair.toObject = function(includeInstance, msg) {\n var f, obj = {\n start: (f = msg.getStart()) && core_protos_geometry_pb.Plane.toObject(includeInstance, f),\n end: (f = msg.getEnd()) && core_protos_geometry_pb.Plane.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.PlanePair}\n */\nproto.vertexvis.protobuf.core.PlanePair.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.PlanePair;\n return proto.vertexvis.protobuf.core.PlanePair.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.PlanePair} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.PlanePair}\n */\nproto.vertexvis.protobuf.core.PlanePair.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_geometry_pb.Plane;\n reader.readMessage(value,core_protos_geometry_pb.Plane.deserializeBinaryFromReader);\n msg.setStart(value);\n break;\n case 2:\n var value = new core_protos_geometry_pb.Plane;\n reader.readMessage(value,core_protos_geometry_pb.Plane.deserializeBinaryFromReader);\n msg.setEnd(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.PlanePair.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.PlanePair.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.PlanePair} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.PlanePair.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getStart();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_geometry_pb.Plane.serializeBinaryToWriter\n );\n }\n f = message.getEnd();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_geometry_pb.Plane.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Plane start = 1;\n * @return {?proto.vertexvis.protobuf.core.Plane}\n */\nproto.vertexvis.protobuf.core.PlanePair.prototype.getStart = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Plane} */ (\n jspb.Message.getWrapperField(this, core_protos_geometry_pb.Plane, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Plane|undefined} value */\nproto.vertexvis.protobuf.core.PlanePair.prototype.setStart = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.core.PlanePair.prototype.clearStart = function() {\n this.setStart(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.PlanePair.prototype.hasStart = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Plane end = 2;\n * @return {?proto.vertexvis.protobuf.core.Plane}\n */\nproto.vertexvis.protobuf.core.PlanePair.prototype.getEnd = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Plane} */ (\n jspb.Message.getWrapperField(this, core_protos_geometry_pb.Plane, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Plane|undefined} value */\nproto.vertexvis.protobuf.core.PlanePair.prototype.setEnd = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.PlanePair.prototype.clearEnd = function() {\n this.setEnd(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.PlanePair.prototype.hasEnd = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.PlanarDistanceResult = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.PlanarDistanceResult, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.PlanarDistanceResult.displayName = 'proto.vertexvis.protobuf.core.PlanarDistanceResult';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.PlanarDistanceResult.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.PlanarDistanceResult} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.toObject = function(includeInstance, msg) {\n var f, obj = {\n distance: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),\n planes: (f = msg.getPlanes()) && proto.vertexvis.protobuf.core.PlanePair.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.PlanarDistanceResult}\n */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.PlanarDistanceResult;\n return proto.vertexvis.protobuf.core.PlanarDistanceResult.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.PlanarDistanceResult} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.PlanarDistanceResult}\n */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setDistance(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.PlanePair;\n reader.readMessage(value,proto.vertexvis.protobuf.core.PlanePair.deserializeBinaryFromReader);\n msg.setPlanes(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.PlanarDistanceResult.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.PlanarDistanceResult} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDistance();\n if (f !== 0.0) {\n writer.writeDouble(\n 1,\n f\n );\n }\n f = message.getPlanes();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.PlanePair.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional double distance = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.prototype.getDistance = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.prototype.setDistance = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional PlanePair planes = 2;\n * @return {?proto.vertexvis.protobuf.core.PlanePair}\n */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.prototype.getPlanes = function() {\n return /** @type{?proto.vertexvis.protobuf.core.PlanePair} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.PlanePair, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.PlanePair|undefined} value */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.prototype.setPlanes = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.PlanarDistanceResult.prototype.clearPlanes = function() {\n this.setPlanes(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.PlanarDistanceResult.prototype.hasPlanes = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.MinimumDistanceResult, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.MinimumDistanceResult.displayName = 'proto.vertexvis.protobuf.core.MinimumDistanceResult';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.MinimumDistanceResult.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.MinimumDistanceResult} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.toObject = function(includeInstance, msg) {\n var f, obj = {\n distance: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),\n closestPoint1: (f = msg.getClosestPoint1()) && core_protos_geometry_pb.Vector3d.toObject(includeInstance, f),\n closestPoint2: (f = msg.getClosestPoint2()) && core_protos_geometry_pb.Vector3d.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.MinimumDistanceResult}\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.MinimumDistanceResult;\n return proto.vertexvis.protobuf.core.MinimumDistanceResult.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.MinimumDistanceResult} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.MinimumDistanceResult}\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setDistance(value);\n break;\n case 2:\n var value = new core_protos_geometry_pb.Vector3d;\n reader.readMessage(value,core_protos_geometry_pb.Vector3d.deserializeBinaryFromReader);\n msg.setClosestPoint1(value);\n break;\n case 3:\n var value = new core_protos_geometry_pb.Vector3d;\n reader.readMessage(value,core_protos_geometry_pb.Vector3d.deserializeBinaryFromReader);\n msg.setClosestPoint2(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.MinimumDistanceResult.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.MinimumDistanceResult} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDistance();\n if (f !== 0.0) {\n writer.writeDouble(\n 1,\n f\n );\n }\n f = message.getClosestPoint1();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_geometry_pb.Vector3d.serializeBinaryToWriter\n );\n }\n f = message.getClosestPoint2();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n core_protos_geometry_pb.Vector3d.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional double distance = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.getDistance = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.setDistance = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional Vector3d closest_point_1 = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.getClosestPoint1 = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, core_protos_geometry_pb.Vector3d, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.setClosestPoint1 = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.clearClosestPoint1 = function() {\n this.setClosestPoint1(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.hasClosestPoint1 = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Vector3d closest_point_2 = 3;\n * @return {?proto.vertexvis.protobuf.core.Vector3d}\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.getClosestPoint2 = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3d} */ (\n jspb.Message.getWrapperField(this, core_protos_geometry_pb.Vector3d, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3d|undefined} value */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.setClosestPoint2 = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.clearClosestPoint2 = function() {\n this.setClosestPoint2(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.MinimumDistanceResult.prototype.hasClosestPoint2 = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.PlanarAngleResult = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.PlanarAngleResult, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.PlanarAngleResult.displayName = 'proto.vertexvis.protobuf.core.PlanarAngleResult';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.PlanarAngleResult.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.PlanarAngleResult.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.PlanarAngleResult} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.PlanarAngleResult.toObject = function(includeInstance, msg) {\n var f, obj = {\n angleInRadians: +jspb.Message.getFieldWithDefault(msg, 1, 0.0),\n planes: (f = msg.getPlanes()) && proto.vertexvis.protobuf.core.PlanePair.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.PlanarAngleResult}\n */\nproto.vertexvis.protobuf.core.PlanarAngleResult.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.PlanarAngleResult;\n return proto.vertexvis.protobuf.core.PlanarAngleResult.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.PlanarAngleResult} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.PlanarAngleResult}\n */\nproto.vertexvis.protobuf.core.PlanarAngleResult.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setAngleInRadians(value);\n break;\n case 5:\n var value = new proto.vertexvis.protobuf.core.PlanePair;\n reader.readMessage(value,proto.vertexvis.protobuf.core.PlanePair.deserializeBinaryFromReader);\n msg.setPlanes(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.PlanarAngleResult.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.PlanarAngleResult.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.PlanarAngleResult} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.PlanarAngleResult.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAngleInRadians();\n if (f !== 0.0) {\n writer.writeDouble(\n 1,\n f\n );\n }\n f = message.getPlanes();\n if (f != null) {\n writer.writeMessage(\n 5,\n f,\n proto.vertexvis.protobuf.core.PlanePair.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional double angle_in_radians = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.PlanarAngleResult.prototype.getAngleInRadians = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.PlanarAngleResult.prototype.setAngleInRadians = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional PlanePair planes = 5;\n * @return {?proto.vertexvis.protobuf.core.PlanePair}\n */\nproto.vertexvis.protobuf.core.PlanarAngleResult.prototype.getPlanes = function() {\n return /** @type{?proto.vertexvis.protobuf.core.PlanePair} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.PlanePair, 5));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.PlanePair|undefined} value */\nproto.vertexvis.protobuf.core.PlanarAngleResult.prototype.setPlanes = function(value) {\n jspb.Message.setWrapperField(this, 5, value);\n};\n\n\nproto.vertexvis.protobuf.core.PlanarAngleResult.prototype.clearPlanes = function() {\n this.setPlanes(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.PlanarAngleResult.prototype.hasPlanes = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.SurfaceAreaResult = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.SurfaceAreaResult, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.SurfaceAreaResult.displayName = 'proto.vertexvis.protobuf.core.SurfaceAreaResult';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.SurfaceAreaResult.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.SurfaceAreaResult.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.SurfaceAreaResult} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.SurfaceAreaResult.toObject = function(includeInstance, msg) {\n var f, obj = {\n area: +jspb.Message.getFieldWithDefault(msg, 1, 0.0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.SurfaceAreaResult}\n */\nproto.vertexvis.protobuf.core.SurfaceAreaResult.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.SurfaceAreaResult;\n return proto.vertexvis.protobuf.core.SurfaceAreaResult.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.SurfaceAreaResult} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.SurfaceAreaResult}\n */\nproto.vertexvis.protobuf.core.SurfaceAreaResult.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setArea(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.SurfaceAreaResult.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.SurfaceAreaResult.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.SurfaceAreaResult} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.SurfaceAreaResult.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getArea();\n if (f !== 0.0) {\n writer.writeDouble(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional double area = 1;\n * @return {number}\n */\nproto.vertexvis.protobuf.core.SurfaceAreaResult.prototype.getArea = function() {\n return /** @type {number} */ (+jspb.Message.getFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.vertexvis.protobuf.core.SurfaceAreaResult.prototype.setArea = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.MeasurementResult = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.vertexvis.protobuf.core.MeasurementResult.oneofGroups_);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.MeasurementResult, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.MeasurementResult.displayName = 'proto.vertexvis.protobuf.core.MeasurementResult';\n}\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.vertexvis.protobuf.core.MeasurementResult.oneofGroups_ = [[1,2,3,4]];\n\n/**\n * @enum {number}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.DetailsCase = {\n DETAILS_NOT_SET: 0,\n PLANAR_DISTANCE: 1,\n PLANAR_ANGLE: 2,\n MINIMUM_DISTANCE: 3,\n TOTAL_SURFACE_AREA: 4\n};\n\n/**\n * @return {proto.vertexvis.protobuf.core.MeasurementResult.DetailsCase}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.getDetailsCase = function() {\n return /** @type {proto.vertexvis.protobuf.core.MeasurementResult.DetailsCase} */(jspb.Message.computeOneofCase(this, proto.vertexvis.protobuf.core.MeasurementResult.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.MeasurementResult.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.MeasurementResult} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.MeasurementResult.toObject = function(includeInstance, msg) {\n var f, obj = {\n planarDistance: (f = msg.getPlanarDistance()) && proto.vertexvis.protobuf.core.PlanarDistanceResult.toObject(includeInstance, f),\n planarAngle: (f = msg.getPlanarAngle()) && proto.vertexvis.protobuf.core.PlanarAngleResult.toObject(includeInstance, f),\n minimumDistance: (f = msg.getMinimumDistance()) && proto.vertexvis.protobuf.core.MinimumDistanceResult.toObject(includeInstance, f),\n totalSurfaceArea: (f = msg.getTotalSurfaceArea()) && proto.vertexvis.protobuf.core.SurfaceAreaResult.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.MeasurementResult}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.MeasurementResult;\n return proto.vertexvis.protobuf.core.MeasurementResult.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.MeasurementResult} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.MeasurementResult}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.PlanarDistanceResult;\n reader.readMessage(value,proto.vertexvis.protobuf.core.PlanarDistanceResult.deserializeBinaryFromReader);\n msg.setPlanarDistance(value);\n break;\n case 2:\n var value = new proto.vertexvis.protobuf.core.PlanarAngleResult;\n reader.readMessage(value,proto.vertexvis.protobuf.core.PlanarAngleResult.deserializeBinaryFromReader);\n msg.setPlanarAngle(value);\n break;\n case 3:\n var value = new proto.vertexvis.protobuf.core.MinimumDistanceResult;\n reader.readMessage(value,proto.vertexvis.protobuf.core.MinimumDistanceResult.deserializeBinaryFromReader);\n msg.setMinimumDistance(value);\n break;\n case 4:\n var value = new proto.vertexvis.protobuf.core.SurfaceAreaResult;\n reader.readMessage(value,proto.vertexvis.protobuf.core.SurfaceAreaResult.deserializeBinaryFromReader);\n msg.setTotalSurfaceArea(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.MeasurementResult.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.MeasurementResult} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.MeasurementResult.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getPlanarDistance();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.PlanarDistanceResult.serializeBinaryToWriter\n );\n }\n f = message.getPlanarAngle();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.vertexvis.protobuf.core.PlanarAngleResult.serializeBinaryToWriter\n );\n }\n f = message.getMinimumDistance();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.vertexvis.protobuf.core.MinimumDistanceResult.serializeBinaryToWriter\n );\n }\n f = message.getTotalSurfaceArea();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n proto.vertexvis.protobuf.core.SurfaceAreaResult.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional PlanarDistanceResult planar_distance = 1;\n * @return {?proto.vertexvis.protobuf.core.PlanarDistanceResult}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.getPlanarDistance = function() {\n return /** @type{?proto.vertexvis.protobuf.core.PlanarDistanceResult} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.PlanarDistanceResult, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.PlanarDistanceResult|undefined} value */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.setPlanarDistance = function(value) {\n jspb.Message.setOneofWrapperField(this, 1, proto.vertexvis.protobuf.core.MeasurementResult.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.clearPlanarDistance = function() {\n this.setPlanarDistance(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.hasPlanarDistance = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional PlanarAngleResult planar_angle = 2;\n * @return {?proto.vertexvis.protobuf.core.PlanarAngleResult}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.getPlanarAngle = function() {\n return /** @type{?proto.vertexvis.protobuf.core.PlanarAngleResult} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.PlanarAngleResult, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.PlanarAngleResult|undefined} value */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.setPlanarAngle = function(value) {\n jspb.Message.setOneofWrapperField(this, 2, proto.vertexvis.protobuf.core.MeasurementResult.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.clearPlanarAngle = function() {\n this.setPlanarAngle(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.hasPlanarAngle = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional MinimumDistanceResult minimum_distance = 3;\n * @return {?proto.vertexvis.protobuf.core.MinimumDistanceResult}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.getMinimumDistance = function() {\n return /** @type{?proto.vertexvis.protobuf.core.MinimumDistanceResult} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.MinimumDistanceResult, 3));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.MinimumDistanceResult|undefined} value */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.setMinimumDistance = function(value) {\n jspb.Message.setOneofWrapperField(this, 3, proto.vertexvis.protobuf.core.MeasurementResult.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.clearMinimumDistance = function() {\n this.setMinimumDistance(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.hasMinimumDistance = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional SurfaceAreaResult total_surface_area = 4;\n * @return {?proto.vertexvis.protobuf.core.SurfaceAreaResult}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.getTotalSurfaceArea = function() {\n return /** @type{?proto.vertexvis.protobuf.core.SurfaceAreaResult} */ (\n jspb.Message.getWrapperField(this, proto.vertexvis.protobuf.core.SurfaceAreaResult, 4));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.SurfaceAreaResult|undefined} value */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.setTotalSurfaceArea = function(value) {\n jspb.Message.setOneofWrapperField(this, 4, proto.vertexvis.protobuf.core.MeasurementResult.oneofGroups_[0], value);\n};\n\n\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.clearTotalSurfaceArea = function() {\n this.setTotalSurfaceArea(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.core.MeasurementResult.prototype.hasTotalSurfaceArea = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.core.MeasurementOutcome.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.core.MeasurementOutcome, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.core.MeasurementOutcome.displayName = 'proto.vertexvis.protobuf.core.MeasurementOutcome';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.core.MeasurementOutcome.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.core.MeasurementOutcome} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome.toObject = function(includeInstance, msg) {\n var f, obj = {\n resultsList: jspb.Message.toObjectList(msg.getResultsList(),\n proto.vertexvis.protobuf.core.MeasurementResult.toObject, includeInstance),\n isApproximate: jspb.Message.getFieldWithDefault(msg, 2, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.core.MeasurementOutcome}\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.core.MeasurementOutcome;\n return proto.vertexvis.protobuf.core.MeasurementOutcome.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.core.MeasurementOutcome} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.core.MeasurementOutcome}\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.core.MeasurementResult;\n reader.readMessage(value,proto.vertexvis.protobuf.core.MeasurementResult.deserializeBinaryFromReader);\n msg.addResults(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsApproximate(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.core.MeasurementOutcome.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.core.MeasurementOutcome} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getResultsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.vertexvis.protobuf.core.MeasurementResult.serializeBinaryToWriter\n );\n }\n f = message.getIsApproximate();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * repeated MeasurementResult results = 1;\n * @return {!Array<!proto.vertexvis.protobuf.core.MeasurementResult>}\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome.prototype.getResultsList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.core.MeasurementResult>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.core.MeasurementResult, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.core.MeasurementResult>} value */\nproto.vertexvis.protobuf.core.MeasurementOutcome.prototype.setResultsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.core.MeasurementResult=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.core.MeasurementResult}\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome.prototype.addResults = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.core.MeasurementResult, opt_index);\n};\n\n\nproto.vertexvis.protobuf.core.MeasurementOutcome.prototype.clearResultsList = function() {\n this.setResultsList([]);\n};\n\n\n/**\n * optional bool is_approximate = 2;\n * Note that Boolean fields may be set to 0/1 when serialized from a Java server.\n * You should avoid comparisons like {@code val === true/false} in those cases.\n * @return {boolean}\n */\nproto.vertexvis.protobuf.core.MeasurementOutcome.prototype.getIsApproximate = function() {\n return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 2, false));\n};\n\n\n/** @param {boolean} value */\nproto.vertexvis.protobuf.core.MeasurementOutcome.prototype.setIsApproximate = function(value) {\n jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.core);\n","/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar core_protos_geometry_pb = require('../../core/protos/geometry_pb.js');\nvar core_protos_model_entity_pb = require('../../core/protos/model_entity_pb.js');\nvar core_protos_measurement_pb = require('../../core/protos/measurement_pb.js');\nvar google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js');\ngoog.exportSymbol('proto.vertexvis.protobuf.sceneview.v1.MeasureEntity', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.sceneview.v1.MeasureRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.sceneview.v1.MeasureResponse', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest', null, global);\ngoog.exportSymbol('proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse', null, global);\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.sceneview.v1.MeasureRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.sceneview.v1.MeasureRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.sceneview.v1.MeasureRequest.displayName = 'proto.vertexvis.protobuf.sceneview.v1.MeasureRequest';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.sceneview.v1.MeasureRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.sceneview.v1.MeasureRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n entitiesList: jspb.Message.toObjectList(msg.getEntitiesList(),\n proto.vertexvis.protobuf.sceneview.v1.MeasureEntity.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.MeasureRequest}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.sceneview.v1.MeasureRequest;\n return proto.vertexvis.protobuf.sceneview.v1.MeasureRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.MeasureRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.MeasureRequest}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.sceneview.v1.MeasureEntity;\n reader.readMessage(value,proto.vertexvis.protobuf.sceneview.v1.MeasureEntity.deserializeBinaryFromReader);\n msg.addEntities(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.sceneview.v1.MeasureRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.MeasureRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEntitiesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.vertexvis.protobuf.sceneview.v1.MeasureEntity.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated MeasureEntity entities = 1;\n * @return {!Array<!proto.vertexvis.protobuf.sceneview.v1.MeasureEntity>}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.prototype.getEntitiesList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.sceneview.v1.MeasureEntity>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.sceneview.v1.MeasureEntity, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.sceneview.v1.MeasureEntity>} value */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.prototype.setEntitiesList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.sceneview.v1.MeasureEntity=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.sceneview.v1.MeasureEntity}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.prototype.addEntities = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.sceneview.v1.MeasureEntity, opt_index);\n};\n\n\nproto.vertexvis.protobuf.sceneview.v1.MeasureRequest.prototype.clearEntitiesList = function() {\n this.setEntitiesList([]);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.sceneview.v1.MeasureEntity, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.sceneview.v1.MeasureEntity.displayName = 'proto.vertexvis.protobuf.sceneview.v1.MeasureEntity';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.sceneview.v1.MeasureEntity.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.sceneview.v1.MeasureEntity} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.toObject = function(includeInstance, msg) {\n var f, obj = {\n modelEntity: (f = msg.getModelEntity()) && core_protos_model_entity_pb.ModelEntity.toObject(includeInstance, f),\n point: (f = msg.getPoint()) && core_protos_geometry_pb.Vector3f.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.MeasureEntity}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.sceneview.v1.MeasureEntity;\n return proto.vertexvis.protobuf.sceneview.v1.MeasureEntity.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.MeasureEntity} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.MeasureEntity}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_model_entity_pb.ModelEntity;\n reader.readMessage(value,core_protos_model_entity_pb.ModelEntity.deserializeBinaryFromReader);\n msg.setModelEntity(value);\n break;\n case 2:\n var value = new core_protos_geometry_pb.Vector3f;\n reader.readMessage(value,core_protos_geometry_pb.Vector3f.deserializeBinaryFromReader);\n msg.setPoint(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.sceneview.v1.MeasureEntity.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.MeasureEntity} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getModelEntity();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_model_entity_pb.ModelEntity.serializeBinaryToWriter\n );\n }\n f = message.getPoint();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n core_protos_geometry_pb.Vector3f.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.ModelEntity model_entity = 1;\n * @return {?proto.vertexvis.protobuf.core.ModelEntity}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.prototype.getModelEntity = function() {\n return /** @type{?proto.vertexvis.protobuf.core.ModelEntity} */ (\n jspb.Message.getWrapperField(this, core_protos_model_entity_pb.ModelEntity, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.ModelEntity|undefined} value */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.prototype.setModelEntity = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.prototype.clearModelEntity = function() {\n this.setModelEntity(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.prototype.hasModelEntity = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional vertexvis.protobuf.core.Vector3f point = 2;\n * @return {?proto.vertexvis.protobuf.core.Vector3f}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.prototype.getPoint = function() {\n return /** @type{?proto.vertexvis.protobuf.core.Vector3f} */ (\n jspb.Message.getWrapperField(this, core_protos_geometry_pb.Vector3f, 2));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.Vector3f|undefined} value */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.prototype.setPoint = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.prototype.clearPoint = function() {\n this.setPoint(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureEntity.prototype.hasPoint = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.sceneview.v1.MeasureResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.sceneview.v1.MeasureResponse.displayName = 'proto.vertexvis.protobuf.sceneview.v1.MeasureResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.sceneview.v1.MeasureResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.sceneview.v1.MeasureResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n outcome: (f = msg.getOutcome()) && core_protos_measurement_pb.MeasurementOutcome.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.MeasureResponse}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.sceneview.v1.MeasureResponse;\n return proto.vertexvis.protobuf.sceneview.v1.MeasureResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.MeasureResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.MeasureResponse}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_measurement_pb.MeasurementOutcome;\n reader.readMessage(value,core_protos_measurement_pb.MeasurementOutcome.deserializeBinaryFromReader);\n msg.setOutcome(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.sceneview.v1.MeasureResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.MeasureResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOutcome();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_measurement_pb.MeasurementOutcome.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.MeasurementOutcome outcome = 1;\n * @return {?proto.vertexvis.protobuf.core.MeasurementOutcome}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse.prototype.getOutcome = function() {\n return /** @type{?proto.vertexvis.protobuf.core.MeasurementOutcome} */ (\n jspb.Message.getWrapperField(this, core_protos_measurement_pb.MeasurementOutcome, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.MeasurementOutcome|undefined} value */\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse.prototype.setOutcome = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse.prototype.clearOutcome = function() {\n this.setOutcome(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.sceneview.v1.MeasureResponse.prototype.hasOutcome = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.displayName = 'proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest';\n}\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n updatesList: jspb.Message.toObjectList(msg.getUpdatesList(),\n proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest}\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest;\n return proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest}\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate;\n reader.readMessage(value,proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.deserializeBinaryFromReader);\n msg.addUpdates(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getUpdatesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated ModelEntityUpdate updates = 1;\n * @return {!Array<!proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate>}\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.prototype.getUpdatesList = function() {\n return /** @type{!Array<!proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate, 1));\n};\n\n\n/** @param {!Array<!proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate>} value */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.prototype.setUpdatesList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate=} opt_value\n * @param {number=} opt_index\n * @return {!proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate}\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.prototype.addUpdates = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate, opt_index);\n};\n\n\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesRequest.prototype.clearUpdatesList = function() {\n this.setUpdatesList([]);\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.displayName = 'proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.toObject = function(includeInstance, msg) {\n var f, obj = {\n modelEntity: (f = msg.getModelEntity()) && core_protos_model_entity_pb.ModelEntity.toObject(includeInstance, f),\n highlight: (f = msg.getHighlight()) && google_protobuf_wrappers_pb.BoolValue.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate}\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate;\n return proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate}\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new core_protos_model_entity_pb.ModelEntity;\n reader.readMessage(value,core_protos_model_entity_pb.ModelEntity.deserializeBinaryFromReader);\n msg.setModelEntity(value);\n break;\n case 2:\n var value = new google_protobuf_wrappers_pb.BoolValue;\n reader.readMessage(value,google_protobuf_wrappers_pb.BoolValue.deserializeBinaryFromReader);\n msg.setHighlight(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getModelEntity();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n core_protos_model_entity_pb.ModelEntity.serializeBinaryToWriter\n );\n }\n f = message.getHighlight();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n google_protobuf_wrappers_pb.BoolValue.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional vertexvis.protobuf.core.ModelEntity model_entity = 1;\n * @return {?proto.vertexvis.protobuf.core.ModelEntity}\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.prototype.getModelEntity = function() {\n return /** @type{?proto.vertexvis.protobuf.core.ModelEntity} */ (\n jspb.Message.getWrapperField(this, core_protos_model_entity_pb.ModelEntity, 1));\n};\n\n\n/** @param {?proto.vertexvis.protobuf.core.ModelEntity|undefined} value */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.prototype.setModelEntity = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.prototype.clearModelEntity = function() {\n this.setModelEntity(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.prototype.hasModelEntity = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional google.protobuf.BoolValue highlight = 2;\n * @return {?proto.google.protobuf.BoolValue}\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.prototype.getHighlight = function() {\n return /** @type{?proto.google.protobuf.BoolValue} */ (\n jspb.Message.getWrapperField(this, google_protobuf_wrappers_pb.BoolValue, 2));\n};\n\n\n/** @param {?proto.google.protobuf.BoolValue|undefined} value */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.prototype.setHighlight = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.prototype.clearHighlight = function() {\n this.setHighlight(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {!boolean}\n */\nproto.vertexvis.protobuf.sceneview.v1.ModelEntityUpdate.prototype.hasHighlight = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse.displayName = 'proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse';\n}\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto suitable for use in Soy templates.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.\n * @param {boolean=} opt_includeInstance Whether to include the JSPB instance\n * for transitional soy proto support: http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Whether to include the JSPB\n * instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse}\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse;\n return proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse}\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.vertexvis.protobuf.sceneview.v1.UpdateModelEntitiesResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\ngoog.object.extend(exports, proto.vertexvis.protobuf.sceneview.v1);\n","import { Plane } from '@vertexvis/geometry';\nimport type {\n MeasurementResult as PbMeasurementResult,\n MinimumDistanceResult as PbMinimumDistanceResult,\n PlanarAngleResult as PbPlanarAngleResult,\n PlanarDistanceResult as PbPlanarDistanceResult,\n PlanePair as PbPlanePair,\n SurfaceAreaResult as PbSurfaceAreaResult,\n} from '@vertexvis/scene-view-protos/core/protos/measurement_pb';\nimport type { MeasureResponse as PbMeasureResponse } from '@vertexvis/scene-view-protos/sceneview/protos/scene_view_api_pb';\nimport { Mapper as M } from '@vertexvis/utils';\n\nimport { fromPbPlane, fromPbVector3f } from '../mappers';\nimport { MeasurementOutcome } from './outcomes';\nimport {\n MeasurementResult,\n MinimumDistanceMeasurementResult,\n PlanarAngleMeasurementResult,\n PlanarDistanceMeasurementResult,\n SurfaceAreaMeasurementResult,\n} from './results';\n\nconst mapPlanePair: M.Func<\n PbPlanePair.AsObject,\n { start: Plane.Plane; end: Plane.Plane }\n> = M.defineMapper(\n M.read(\n M.mapRequiredProp('start', fromPbPlane),\n M.mapRequiredProp('end', fromPbPlane)\n ),\n ([start, end]) => ({ start, end })\n);\n\nconst mapPlanarDistance: M.Func<\n PbPlanarDistanceResult.AsObject,\n PlanarDistanceMeasurementResult\n> = M.defineMapper(\n M.read(\n M.getProp('distance'),\n M.mapRequiredProp(\n 'planes',\n M.compose(mapPlanePair, M.requiredProp('start'))\n ),\n M.mapRequiredProp('planes', M.compose(mapPlanePair, M.requiredProp('end')))\n ),\n ([distance, plane1, plane2]) => ({\n type: 'planar-distance',\n distance,\n plane1,\n plane2,\n })\n);\n\nconst mapPlanarAngle: M.Func<\n PbPlanarAngleResult.AsObject,\n PlanarAngleMeasurementResult\n> = M.defineMapper(\n M.read(\n M.getProp('angleInRadians'),\n M.mapRequiredProp(\n 'planes',\n M.compose(mapPlanePair, M.requiredProp('start'))\n ),\n M.mapRequiredProp('planes', M.compose(mapPlanePair, M.requiredProp('end')))\n ),\n ([angle, plane1, plane2]) => ({\n type: 'planar-angle',\n angle,\n plane1,\n plane2,\n })\n);\n\nconst mapMinimumDistance: M.Func<\n PbMinimumDistanceResult.AsObject,\n MinimumDistanceMeasurementResult\n> = M.defineMapper(\n M.read(\n M.getProp('distance'),\n M.mapRequiredProp('closestPoint1', fromPbVector3f),\n M.mapRequiredProp('closestPoint2', fromPbVector3f)\n ),\n ([distance, point1, point2]) => ({\n type: 'minimum-distance',\n distance,\n point1,\n point2,\n })\n);\n\nconst mapSurfaceArea: M.Func<\n PbSurfaceAreaResult.AsObject,\n SurfaceAreaMeasurementResult\n> = M.defineMapper(M.read(M.getProp('area')), ([area]) => ({\n type: 'surface-area',\n area,\n}));\n\nconst mapPlanarDistanceFromResult: M.Func<\n PbMeasurementResult.AsObject,\n PlanarDistanceMeasurementResult | undefined | null\n> = M.mapProp('planarDistance', M.ifDefined(mapPlanarDistance));\n\nconst mapPlanarAngleFromResult: M.Func<\n PbMeasurementResult.AsObject,\n PlanarAngleMeasurementResult | undefined | null\n> = M.mapProp('planarAngle', M.ifDefined(mapPlanarAngle));\n\nconst mapMinimumDistanceFromResult: M.Func<\n PbMeasurementResult.AsObject,\n MinimumDistanceMeasurementResult | undefined | null\n> = M.mapProp('minimumDistance', M.ifDefined(mapMinimumDistance));\n\nconst mapSurfaceAreaFromResult: M.Func<\n PbMeasurementResult.AsObject,\n SurfaceAreaMeasurementResult | undefined | null\n> = M.mapProp('totalSurfaceArea', M.ifDefined(mapSurfaceArea));\n\nconst mapMeasurementResult: M.Func<\n PbMeasurementResult.AsObject,\n MeasurementResult\n> = M.compose(\n M.pickFirst(\n mapPlanarDistanceFromResult,\n mapPlanarAngleFromResult,\n mapMinimumDistanceFromResult,\n mapSurfaceAreaFromResult\n ),\n M.required('Result field')\n);\n\nexport const mapMeasureResponse: M.Func<\n PbMeasureResponse.AsObject,\n MeasurementOutcome\n> = M.defineMapper(\n M.read(\n M.mapRequiredProp(\n 'outcome',\n M.mapRequiredProp('resultsList', M.mapArray(mapMeasurementResult))\n ),\n M.mapRequiredProp('outcome', M.getProp('isApproximate'))\n ),\n ([results, isApproximate]) => ({ results, isApproximate })\n);\n\nexport const mapMeasureResponseOrThrow = M.ifInvalidThrow(mapMeasureResponse);\n"],"version":3}
|