@vertexvis/stream-api 0.15.2-canary.18 → 0.15.2-canary.20

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.
@@ -5456,6 +5456,166 @@ const vertexvis = $root.vertexvis = (() => {
5456
5456
  return AllQuery;
5457
5457
  })();
5458
5458
 
5459
+ stream.RootQuery = (function() {
5460
+
5461
+ /**
5462
+ * Properties of a RootQuery.
5463
+ * @memberof vertexvis.protobuf.stream
5464
+ * @interface IRootQuery
5465
+ */
5466
+
5467
+ /**
5468
+ * Constructs a new RootQuery.
5469
+ * @memberof vertexvis.protobuf.stream
5470
+ * @classdesc Represents a RootQuery.
5471
+ * @implements IRootQuery
5472
+ * @constructor
5473
+ * @param {vertexvis.protobuf.stream.IRootQuery=} [properties] Properties to set
5474
+ */
5475
+ function RootQuery(properties) {
5476
+ if (properties)
5477
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
5478
+ if (properties[keys[i]] != null)
5479
+ this[keys[i]] = properties[keys[i]];
5480
+ }
5481
+
5482
+ /**
5483
+ * Creates a new RootQuery instance using the specified properties.
5484
+ * @function create
5485
+ * @memberof vertexvis.protobuf.stream.RootQuery
5486
+ * @static
5487
+ * @param {vertexvis.protobuf.stream.IRootQuery=} [properties] Properties to set
5488
+ * @returns {vertexvis.protobuf.stream.RootQuery} RootQuery instance
5489
+ */
5490
+ RootQuery.create = function create(properties) {
5491
+ return new RootQuery(properties);
5492
+ };
5493
+
5494
+ /**
5495
+ * Encodes the specified RootQuery message. Does not implicitly {@link vertexvis.protobuf.stream.RootQuery.verify|verify} messages.
5496
+ * @function encode
5497
+ * @memberof vertexvis.protobuf.stream.RootQuery
5498
+ * @static
5499
+ * @param {vertexvis.protobuf.stream.IRootQuery} message RootQuery message or plain object to encode
5500
+ * @param {$protobuf.Writer} [writer] Writer to encode to
5501
+ * @returns {$protobuf.Writer} Writer
5502
+ */
5503
+ RootQuery.encode = function encode(message, writer) {
5504
+ if (!writer)
5505
+ writer = $Writer.create();
5506
+ return writer;
5507
+ };
5508
+
5509
+ /**
5510
+ * Encodes the specified RootQuery message, length delimited. Does not implicitly {@link vertexvis.protobuf.stream.RootQuery.verify|verify} messages.
5511
+ * @function encodeDelimited
5512
+ * @memberof vertexvis.protobuf.stream.RootQuery
5513
+ * @static
5514
+ * @param {vertexvis.protobuf.stream.IRootQuery} message RootQuery message or plain object to encode
5515
+ * @param {$protobuf.Writer} [writer] Writer to encode to
5516
+ * @returns {$protobuf.Writer} Writer
5517
+ */
5518
+ RootQuery.encodeDelimited = function encodeDelimited(message, writer) {
5519
+ return this.encode(message, writer).ldelim();
5520
+ };
5521
+
5522
+ /**
5523
+ * Decodes a RootQuery message from the specified reader or buffer.
5524
+ * @function decode
5525
+ * @memberof vertexvis.protobuf.stream.RootQuery
5526
+ * @static
5527
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
5528
+ * @param {number} [length] Message length if known beforehand
5529
+ * @returns {vertexvis.protobuf.stream.RootQuery} RootQuery
5530
+ * @throws {Error} If the payload is not a reader or valid buffer
5531
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
5532
+ */
5533
+ RootQuery.decode = function decode(reader, length) {
5534
+ if (!(reader instanceof $Reader))
5535
+ reader = $Reader.create(reader);
5536
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vertexvis.protobuf.stream.RootQuery();
5537
+ while (reader.pos < end) {
5538
+ let tag = reader.uint32();
5539
+ switch (tag >>> 3) {
5540
+ default:
5541
+ reader.skipType(tag & 7);
5542
+ break;
5543
+ }
5544
+ }
5545
+ return message;
5546
+ };
5547
+
5548
+ /**
5549
+ * Decodes a RootQuery message from the specified reader or buffer, length delimited.
5550
+ * @function decodeDelimited
5551
+ * @memberof vertexvis.protobuf.stream.RootQuery
5552
+ * @static
5553
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
5554
+ * @returns {vertexvis.protobuf.stream.RootQuery} RootQuery
5555
+ * @throws {Error} If the payload is not a reader or valid buffer
5556
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
5557
+ */
5558
+ RootQuery.decodeDelimited = function decodeDelimited(reader) {
5559
+ if (!(reader instanceof $Reader))
5560
+ reader = new $Reader(reader);
5561
+ return this.decode(reader, reader.uint32());
5562
+ };
5563
+
5564
+ /**
5565
+ * Verifies a RootQuery message.
5566
+ * @function verify
5567
+ * @memberof vertexvis.protobuf.stream.RootQuery
5568
+ * @static
5569
+ * @param {Object.<string,*>} message Plain object to verify
5570
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
5571
+ */
5572
+ RootQuery.verify = function verify(message) {
5573
+ if (typeof message !== "object" || message === null)
5574
+ return "object expected";
5575
+ return null;
5576
+ };
5577
+
5578
+ /**
5579
+ * Creates a RootQuery message from a plain object. Also converts values to their respective internal types.
5580
+ * @function fromObject
5581
+ * @memberof vertexvis.protobuf.stream.RootQuery
5582
+ * @static
5583
+ * @param {Object.<string,*>} object Plain object
5584
+ * @returns {vertexvis.protobuf.stream.RootQuery} RootQuery
5585
+ */
5586
+ RootQuery.fromObject = function fromObject(object) {
5587
+ if (object instanceof $root.vertexvis.protobuf.stream.RootQuery)
5588
+ return object;
5589
+ return new $root.vertexvis.protobuf.stream.RootQuery();
5590
+ };
5591
+
5592
+ /**
5593
+ * Creates a plain object from a RootQuery message. Also converts values to other types if specified.
5594
+ * @function toObject
5595
+ * @memberof vertexvis.protobuf.stream.RootQuery
5596
+ * @static
5597
+ * @param {vertexvis.protobuf.stream.RootQuery} message RootQuery
5598
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
5599
+ * @returns {Object.<string,*>} Plain object
5600
+ */
5601
+ RootQuery.toObject = function toObject() {
5602
+ return {};
5603
+ };
5604
+
5605
+ /**
5606
+ * Converts this RootQuery to JSON.
5607
+ * @function toJSON
5608
+ * @memberof vertexvis.protobuf.stream.RootQuery
5609
+ * @instance
5610
+ * @returns {Object.<string,*>} JSON object
5611
+ */
5612
+ RootQuery.prototype.toJSON = function toJSON() {
5613
+ return this.constructor.toObject(this, minimal.util.toJSONOptions);
5614
+ };
5615
+
5616
+ return RootQuery;
5617
+ })();
5618
+
5459
5619
  stream.PointQuery = (function() {
5460
5620
 
5461
5621
  /**
@@ -8702,35 +8862,31 @@ const vertexvis = $root.vertexvis = (() => {
8702
8862
  return OperationType;
8703
8863
  })();
8704
8864
 
8705
- stream.SceneOperation = (function() {
8865
+ stream.QueryOperand = (function() {
8706
8866
 
8707
8867
  /**
8708
- * Properties of a SceneOperation.
8868
+ * Properties of a QueryOperand.
8709
8869
  * @memberof vertexvis.protobuf.stream
8710
- * @interface ISceneOperation
8711
- * @property {vertexvis.protobuf.stream.IItemQuery|null} [item] SceneOperation item
8712
- * @property {vertexvis.protobuf.stream.IQueryCollection|null} [or] SceneOperation or
8713
- * @property {vertexvis.protobuf.stream.IQueryCollection|null} [and] SceneOperation and
8714
- * @property {vertexvis.protobuf.stream.IAllQuery|null} [all] SceneOperation all
8715
- * @property {vertexvis.protobuf.stream.IPointQuery|null} [point] SceneOperation point
8716
- * @property {vertexvis.protobuf.stream.ISceneTreeRangeQuery|null} [sceneTreeRange] SceneOperation sceneTreeRange
8717
- * @property {vertexvis.protobuf.stream.IMetadataFilterQuery|null} [metadata] SceneOperation metadata
8718
- * @property {vertexvis.protobuf.stream.IOverrideQuery|null} [override] SceneOperation override
8719
- * @property {vertexvis.protobuf.stream.IVolumeIntersectionQuery|null} [volume] SceneOperation volume
8720
- * @property {vertexvis.protobuf.stream.IQueryCollection|null} [not] SceneOperation not
8721
- * @property {Array.<vertexvis.protobuf.stream.IOperationType>|null} [operationTypes] SceneOperation operationTypes
8870
+ * @interface IQueryOperand
8871
+ * @property {vertexvis.protobuf.stream.IMetadataFilterQuery|null} [metadata] QueryOperand metadata
8872
+ * @property {vertexvis.protobuf.stream.IItemQuery|null} [item] QueryOperand item
8873
+ * @property {vertexvis.protobuf.stream.IRootQuery|null} [root] QueryOperand root
8874
+ * @property {vertexvis.protobuf.stream.IPointQuery|null} [point] QueryOperand point
8875
+ * @property {vertexvis.protobuf.stream.ISceneTreeRangeQuery|null} [sceneTreeRange] QueryOperand sceneTreeRange
8876
+ * @property {vertexvis.protobuf.stream.IOverrideQuery|null} [override] QueryOperand override
8877
+ * @property {vertexvis.protobuf.stream.IVolumeIntersectionQuery|null} [volume] QueryOperand volume
8878
+ * @property {vertexvis.protobuf.stream.IQueryCollection|null} [itemCollection] QueryOperand itemCollection
8722
8879
  */
8723
8880
 
8724
8881
  /**
8725
- * Constructs a new SceneOperation.
8882
+ * Constructs a new QueryOperand.
8726
8883
  * @memberof vertexvis.protobuf.stream
8727
- * @classdesc Represents a SceneOperation.
8728
- * @implements ISceneOperation
8884
+ * @classdesc Represents a QueryOperand.
8885
+ * @implements IQueryOperand
8729
8886
  * @constructor
8730
- * @param {vertexvis.protobuf.stream.ISceneOperation=} [properties] Properties to set
8887
+ * @param {vertexvis.protobuf.stream.IQueryOperand=} [properties] Properties to set
8731
8888
  */
8732
- function SceneOperation(properties) {
8733
- this.operationTypes = [];
8889
+ function QueryOperand(properties) {
8734
8890
  if (properties)
8735
8891
  for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
8736
8892
  if (properties[keys[i]] != null)
@@ -8738,222 +8894,1634 @@ const vertexvis = $root.vertexvis = (() => {
8738
8894
  }
8739
8895
 
8740
8896
  /**
8741
- * SceneOperation item.
8742
- * @member {vertexvis.protobuf.stream.IItemQuery|null|undefined} item
8743
- * @memberof vertexvis.protobuf.stream.SceneOperation
8744
- * @instance
8745
- */
8746
- SceneOperation.prototype.item = null;
8747
-
8748
- /**
8749
- * SceneOperation or.
8750
- * @member {vertexvis.protobuf.stream.IQueryCollection|null|undefined} or
8751
- * @memberof vertexvis.protobuf.stream.SceneOperation
8897
+ * QueryOperand metadata.
8898
+ * @member {vertexvis.protobuf.stream.IMetadataFilterQuery|null|undefined} metadata
8899
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8752
8900
  * @instance
8753
8901
  */
8754
- SceneOperation.prototype.or = null;
8902
+ QueryOperand.prototype.metadata = null;
8755
8903
 
8756
8904
  /**
8757
- * SceneOperation and.
8758
- * @member {vertexvis.protobuf.stream.IQueryCollection|null|undefined} and
8759
- * @memberof vertexvis.protobuf.stream.SceneOperation
8905
+ * QueryOperand item.
8906
+ * @member {vertexvis.protobuf.stream.IItemQuery|null|undefined} item
8907
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8760
8908
  * @instance
8761
8909
  */
8762
- SceneOperation.prototype.and = null;
8910
+ QueryOperand.prototype.item = null;
8763
8911
 
8764
8912
  /**
8765
- * SceneOperation all.
8766
- * @member {vertexvis.protobuf.stream.IAllQuery|null|undefined} all
8767
- * @memberof vertexvis.protobuf.stream.SceneOperation
8913
+ * QueryOperand root.
8914
+ * @member {vertexvis.protobuf.stream.IRootQuery|null|undefined} root
8915
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8768
8916
  * @instance
8769
8917
  */
8770
- SceneOperation.prototype.all = null;
8918
+ QueryOperand.prototype.root = null;
8771
8919
 
8772
8920
  /**
8773
- * SceneOperation point.
8921
+ * QueryOperand point.
8774
8922
  * @member {vertexvis.protobuf.stream.IPointQuery|null|undefined} point
8775
- * @memberof vertexvis.protobuf.stream.SceneOperation
8923
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8776
8924
  * @instance
8777
8925
  */
8778
- SceneOperation.prototype.point = null;
8926
+ QueryOperand.prototype.point = null;
8779
8927
 
8780
8928
  /**
8781
- * SceneOperation sceneTreeRange.
8929
+ * QueryOperand sceneTreeRange.
8782
8930
  * @member {vertexvis.protobuf.stream.ISceneTreeRangeQuery|null|undefined} sceneTreeRange
8783
- * @memberof vertexvis.protobuf.stream.SceneOperation
8784
- * @instance
8785
- */
8786
- SceneOperation.prototype.sceneTreeRange = null;
8787
-
8788
- /**
8789
- * SceneOperation metadata.
8790
- * @member {vertexvis.protobuf.stream.IMetadataFilterQuery|null|undefined} metadata
8791
- * @memberof vertexvis.protobuf.stream.SceneOperation
8931
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8792
8932
  * @instance
8793
8933
  */
8794
- SceneOperation.prototype.metadata = null;
8934
+ QueryOperand.prototype.sceneTreeRange = null;
8795
8935
 
8796
8936
  /**
8797
- * SceneOperation override.
8937
+ * QueryOperand override.
8798
8938
  * @member {vertexvis.protobuf.stream.IOverrideQuery|null|undefined} override
8799
- * @memberof vertexvis.protobuf.stream.SceneOperation
8939
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8800
8940
  * @instance
8801
8941
  */
8802
- SceneOperation.prototype.override = null;
8942
+ QueryOperand.prototype.override = null;
8803
8943
 
8804
8944
  /**
8805
- * SceneOperation volume.
8945
+ * QueryOperand volume.
8806
8946
  * @member {vertexvis.protobuf.stream.IVolumeIntersectionQuery|null|undefined} volume
8807
- * @memberof vertexvis.protobuf.stream.SceneOperation
8808
- * @instance
8809
- */
8810
- SceneOperation.prototype.volume = null;
8811
-
8812
- /**
8813
- * SceneOperation not.
8814
- * @member {vertexvis.protobuf.stream.IQueryCollection|null|undefined} not
8815
- * @memberof vertexvis.protobuf.stream.SceneOperation
8947
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8816
8948
  * @instance
8817
8949
  */
8818
- SceneOperation.prototype.not = null;
8950
+ QueryOperand.prototype.volume = null;
8819
8951
 
8820
8952
  /**
8821
- * SceneOperation operationTypes.
8822
- * @member {Array.<vertexvis.protobuf.stream.IOperationType>} operationTypes
8823
- * @memberof vertexvis.protobuf.stream.SceneOperation
8953
+ * QueryOperand itemCollection.
8954
+ * @member {vertexvis.protobuf.stream.IQueryCollection|null|undefined} itemCollection
8955
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8824
8956
  * @instance
8825
8957
  */
8826
- SceneOperation.prototype.operationTypes = $util.emptyArray;
8958
+ QueryOperand.prototype.itemCollection = null;
8827
8959
 
8828
8960
  // OneOf field names bound to virtual getters and setters
8829
8961
  let $oneOfFields;
8830
8962
 
8831
8963
  /**
8832
- * SceneOperation query.
8833
- * @member {"item"|"or"|"and"|"all"|"point"|"sceneTreeRange"|"metadata"|"override"|"volume"|"not"|undefined} query
8834
- * @memberof vertexvis.protobuf.stream.SceneOperation
8964
+ * QueryOperand operand.
8965
+ * @member {"metadata"|"item"|"root"|"point"|"sceneTreeRange"|"override"|"volume"|"itemCollection"|undefined} operand
8966
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8835
8967
  * @instance
8836
8968
  */
8837
- Object.defineProperty(SceneOperation.prototype, "query", {
8838
- get: $util.oneOfGetter($oneOfFields = ["item", "or", "and", "all", "point", "sceneTreeRange", "metadata", "override", "volume", "not"]),
8969
+ Object.defineProperty(QueryOperand.prototype, "operand", {
8970
+ get: $util.oneOfGetter($oneOfFields = ["metadata", "item", "root", "point", "sceneTreeRange", "override", "volume", "itemCollection"]),
8839
8971
  set: $util.oneOfSetter($oneOfFields)
8840
8972
  });
8841
8973
 
8842
8974
  /**
8843
- * Creates a new SceneOperation instance using the specified properties.
8975
+ * Creates a new QueryOperand instance using the specified properties.
8844
8976
  * @function create
8845
- * @memberof vertexvis.protobuf.stream.SceneOperation
8977
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8846
8978
  * @static
8847
- * @param {vertexvis.protobuf.stream.ISceneOperation=} [properties] Properties to set
8848
- * @returns {vertexvis.protobuf.stream.SceneOperation} SceneOperation instance
8979
+ * @param {vertexvis.protobuf.stream.IQueryOperand=} [properties] Properties to set
8980
+ * @returns {vertexvis.protobuf.stream.QueryOperand} QueryOperand instance
8849
8981
  */
8850
- SceneOperation.create = function create(properties) {
8851
- return new SceneOperation(properties);
8982
+ QueryOperand.create = function create(properties) {
8983
+ return new QueryOperand(properties);
8852
8984
  };
8853
8985
 
8854
8986
  /**
8855
- * Encodes the specified SceneOperation message. Does not implicitly {@link vertexvis.protobuf.stream.SceneOperation.verify|verify} messages.
8987
+ * Encodes the specified QueryOperand message. Does not implicitly {@link vertexvis.protobuf.stream.QueryOperand.verify|verify} messages.
8856
8988
  * @function encode
8857
- * @memberof vertexvis.protobuf.stream.SceneOperation
8989
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8858
8990
  * @static
8859
- * @param {vertexvis.protobuf.stream.ISceneOperation} message SceneOperation message or plain object to encode
8991
+ * @param {vertexvis.protobuf.stream.IQueryOperand} message QueryOperand message or plain object to encode
8860
8992
  * @param {$protobuf.Writer} [writer] Writer to encode to
8861
8993
  * @returns {$protobuf.Writer} Writer
8862
8994
  */
8863
- SceneOperation.encode = function encode(message, writer) {
8995
+ QueryOperand.encode = function encode(message, writer) {
8864
8996
  if (!writer)
8865
8997
  writer = $Writer.create();
8998
+ if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata"))
8999
+ $root.vertexvis.protobuf.stream.MetadataFilterQuery.encode(message.metadata, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
8866
9000
  if (message.item != null && Object.hasOwnProperty.call(message, "item"))
8867
- $root.vertexvis.protobuf.stream.ItemQuery.encode(message.item, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
8868
- if (message.or != null && Object.hasOwnProperty.call(message, "or"))
8869
- $root.vertexvis.protobuf.stream.QueryCollection.encode(message.or, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
8870
- if (message.and != null && Object.hasOwnProperty.call(message, "and"))
8871
- $root.vertexvis.protobuf.stream.QueryCollection.encode(message.and, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
8872
- if (message.operationTypes != null && message.operationTypes.length)
8873
- for (let i = 0; i < message.operationTypes.length; ++i)
8874
- $root.vertexvis.protobuf.stream.OperationType.encode(message.operationTypes[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
8875
- if (message.all != null && Object.hasOwnProperty.call(message, "all"))
8876
- $root.vertexvis.protobuf.stream.AllQuery.encode(message.all, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
9001
+ $root.vertexvis.protobuf.stream.ItemQuery.encode(message.item, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
9002
+ if (message.root != null && Object.hasOwnProperty.call(message, "root"))
9003
+ $root.vertexvis.protobuf.stream.RootQuery.encode(message.root, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
8877
9004
  if (message.point != null && Object.hasOwnProperty.call(message, "point"))
8878
- $root.vertexvis.protobuf.stream.PointQuery.encode(message.point, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
9005
+ $root.vertexvis.protobuf.stream.PointQuery.encode(message.point, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
8879
9006
  if (message.sceneTreeRange != null && Object.hasOwnProperty.call(message, "sceneTreeRange"))
8880
- $root.vertexvis.protobuf.stream.SceneTreeRangeQuery.encode(message.sceneTreeRange, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();
8881
- if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata"))
8882
- $root.vertexvis.protobuf.stream.MetadataFilterQuery.encode(message.metadata, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
9007
+ $root.vertexvis.protobuf.stream.SceneTreeRangeQuery.encode(message.sceneTreeRange, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
8883
9008
  if (message.override != null && Object.hasOwnProperty.call(message, "override"))
8884
- $root.vertexvis.protobuf.stream.OverrideQuery.encode(message.override, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
9009
+ $root.vertexvis.protobuf.stream.OverrideQuery.encode(message.override, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
8885
9010
  if (message.volume != null && Object.hasOwnProperty.call(message, "volume"))
8886
- $root.vertexvis.protobuf.stream.VolumeIntersectionQuery.encode(message.volume, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim();
8887
- if (message.not != null && Object.hasOwnProperty.call(message, "not"))
8888
- $root.vertexvis.protobuf.stream.QueryCollection.encode(message.not, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();
9011
+ $root.vertexvis.protobuf.stream.VolumeIntersectionQuery.encode(message.volume, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();
9012
+ if (message.itemCollection != null && Object.hasOwnProperty.call(message, "itemCollection"))
9013
+ $root.vertexvis.protobuf.stream.QueryCollection.encode(message.itemCollection, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
8889
9014
  return writer;
8890
9015
  };
8891
9016
 
8892
9017
  /**
8893
- * Encodes the specified SceneOperation message, length delimited. Does not implicitly {@link vertexvis.protobuf.stream.SceneOperation.verify|verify} messages.
9018
+ * Encodes the specified QueryOperand message, length delimited. Does not implicitly {@link vertexvis.protobuf.stream.QueryOperand.verify|verify} messages.
8894
9019
  * @function encodeDelimited
8895
- * @memberof vertexvis.protobuf.stream.SceneOperation
9020
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8896
9021
  * @static
8897
- * @param {vertexvis.protobuf.stream.ISceneOperation} message SceneOperation message or plain object to encode
9022
+ * @param {vertexvis.protobuf.stream.IQueryOperand} message QueryOperand message or plain object to encode
8898
9023
  * @param {$protobuf.Writer} [writer] Writer to encode to
8899
9024
  * @returns {$protobuf.Writer} Writer
8900
9025
  */
8901
- SceneOperation.encodeDelimited = function encodeDelimited(message, writer) {
9026
+ QueryOperand.encodeDelimited = function encodeDelimited(message, writer) {
8902
9027
  return this.encode(message, writer).ldelim();
8903
9028
  };
8904
9029
 
8905
9030
  /**
8906
- * Decodes a SceneOperation message from the specified reader or buffer.
9031
+ * Decodes a QueryOperand message from the specified reader or buffer.
8907
9032
  * @function decode
8908
- * @memberof vertexvis.protobuf.stream.SceneOperation
9033
+ * @memberof vertexvis.protobuf.stream.QueryOperand
8909
9034
  * @static
8910
9035
  * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
8911
9036
  * @param {number} [length] Message length if known beforehand
8912
- * @returns {vertexvis.protobuf.stream.SceneOperation} SceneOperation
9037
+ * @returns {vertexvis.protobuf.stream.QueryOperand} QueryOperand
8913
9038
  * @throws {Error} If the payload is not a reader or valid buffer
8914
9039
  * @throws {$protobuf.util.ProtocolError} If required fields are missing
8915
9040
  */
8916
- SceneOperation.decode = function decode(reader, length) {
9041
+ QueryOperand.decode = function decode(reader, length) {
8917
9042
  if (!(reader instanceof $Reader))
8918
9043
  reader = $Reader.create(reader);
8919
- let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vertexvis.protobuf.stream.SceneOperation();
9044
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vertexvis.protobuf.stream.QueryOperand();
8920
9045
  while (reader.pos < end) {
8921
9046
  let tag = reader.uint32();
8922
9047
  switch (tag >>> 3) {
8923
9048
  case 1:
8924
- message.item = $root.vertexvis.protobuf.stream.ItemQuery.decode(reader, reader.uint32());
9049
+ message.metadata = $root.vertexvis.protobuf.stream.MetadataFilterQuery.decode(reader, reader.uint32());
8925
9050
  break;
8926
9051
  case 2:
8927
- message.or = $root.vertexvis.protobuf.stream.QueryCollection.decode(reader, reader.uint32());
9052
+ message.item = $root.vertexvis.protobuf.stream.ItemQuery.decode(reader, reader.uint32());
8928
9053
  break;
8929
9054
  case 3:
8930
- message.and = $root.vertexvis.protobuf.stream.QueryCollection.decode(reader, reader.uint32());
8931
- break;
8932
- case 5:
8933
- message.all = $root.vertexvis.protobuf.stream.AllQuery.decode(reader, reader.uint32());
9055
+ message.root = $root.vertexvis.protobuf.stream.RootQuery.decode(reader, reader.uint32());
8934
9056
  break;
8935
- case 6:
9057
+ case 4:
8936
9058
  message.point = $root.vertexvis.protobuf.stream.PointQuery.decode(reader, reader.uint32());
8937
9059
  break;
8938
- case 7:
9060
+ case 5:
8939
9061
  message.sceneTreeRange = $root.vertexvis.protobuf.stream.SceneTreeRangeQuery.decode(reader, reader.uint32());
8940
9062
  break;
8941
- case 8:
8942
- message.metadata = $root.vertexvis.protobuf.stream.MetadataFilterQuery.decode(reader, reader.uint32());
8943
- break;
8944
- case 9:
9063
+ case 6:
8945
9064
  message.override = $root.vertexvis.protobuf.stream.OverrideQuery.decode(reader, reader.uint32());
8946
9065
  break;
8947
- case 10:
9066
+ case 7:
8948
9067
  message.volume = $root.vertexvis.protobuf.stream.VolumeIntersectionQuery.decode(reader, reader.uint32());
8949
9068
  break;
8950
- case 11:
8951
- message.not = $root.vertexvis.protobuf.stream.QueryCollection.decode(reader, reader.uint32());
8952
- break;
8953
- case 4:
8954
- if (!(message.operationTypes && message.operationTypes.length))
8955
- message.operationTypes = [];
8956
- message.operationTypes.push($root.vertexvis.protobuf.stream.OperationType.decode(reader, reader.uint32()));
9069
+ case 8:
9070
+ message.itemCollection = $root.vertexvis.protobuf.stream.QueryCollection.decode(reader, reader.uint32());
9071
+ break;
9072
+ default:
9073
+ reader.skipType(tag & 7);
9074
+ break;
9075
+ }
9076
+ }
9077
+ return message;
9078
+ };
9079
+
9080
+ /**
9081
+ * Decodes a QueryOperand message from the specified reader or buffer, length delimited.
9082
+ * @function decodeDelimited
9083
+ * @memberof vertexvis.protobuf.stream.QueryOperand
9084
+ * @static
9085
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
9086
+ * @returns {vertexvis.protobuf.stream.QueryOperand} QueryOperand
9087
+ * @throws {Error} If the payload is not a reader or valid buffer
9088
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
9089
+ */
9090
+ QueryOperand.decodeDelimited = function decodeDelimited(reader) {
9091
+ if (!(reader instanceof $Reader))
9092
+ reader = new $Reader(reader);
9093
+ return this.decode(reader, reader.uint32());
9094
+ };
9095
+
9096
+ /**
9097
+ * Verifies a QueryOperand message.
9098
+ * @function verify
9099
+ * @memberof vertexvis.protobuf.stream.QueryOperand
9100
+ * @static
9101
+ * @param {Object.<string,*>} message Plain object to verify
9102
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
9103
+ */
9104
+ QueryOperand.verify = function verify(message) {
9105
+ if (typeof message !== "object" || message === null)
9106
+ return "object expected";
9107
+ let properties = {};
9108
+ if (message.metadata != null && message.hasOwnProperty("metadata")) {
9109
+ properties.operand = 1;
9110
+ {
9111
+ let error = $root.vertexvis.protobuf.stream.MetadataFilterQuery.verify(message.metadata);
9112
+ if (error)
9113
+ return "metadata." + error;
9114
+ }
9115
+ }
9116
+ if (message.item != null && message.hasOwnProperty("item")) {
9117
+ if (properties.operand === 1)
9118
+ return "operand: multiple values";
9119
+ properties.operand = 1;
9120
+ {
9121
+ let error = $root.vertexvis.protobuf.stream.ItemQuery.verify(message.item);
9122
+ if (error)
9123
+ return "item." + error;
9124
+ }
9125
+ }
9126
+ if (message.root != null && message.hasOwnProperty("root")) {
9127
+ if (properties.operand === 1)
9128
+ return "operand: multiple values";
9129
+ properties.operand = 1;
9130
+ {
9131
+ let error = $root.vertexvis.protobuf.stream.RootQuery.verify(message.root);
9132
+ if (error)
9133
+ return "root." + error;
9134
+ }
9135
+ }
9136
+ if (message.point != null && message.hasOwnProperty("point")) {
9137
+ if (properties.operand === 1)
9138
+ return "operand: multiple values";
9139
+ properties.operand = 1;
9140
+ {
9141
+ let error = $root.vertexvis.protobuf.stream.PointQuery.verify(message.point);
9142
+ if (error)
9143
+ return "point." + error;
9144
+ }
9145
+ }
9146
+ if (message.sceneTreeRange != null && message.hasOwnProperty("sceneTreeRange")) {
9147
+ if (properties.operand === 1)
9148
+ return "operand: multiple values";
9149
+ properties.operand = 1;
9150
+ {
9151
+ let error = $root.vertexvis.protobuf.stream.SceneTreeRangeQuery.verify(message.sceneTreeRange);
9152
+ if (error)
9153
+ return "sceneTreeRange." + error;
9154
+ }
9155
+ }
9156
+ if (message.override != null && message.hasOwnProperty("override")) {
9157
+ if (properties.operand === 1)
9158
+ return "operand: multiple values";
9159
+ properties.operand = 1;
9160
+ {
9161
+ let error = $root.vertexvis.protobuf.stream.OverrideQuery.verify(message.override);
9162
+ if (error)
9163
+ return "override." + error;
9164
+ }
9165
+ }
9166
+ if (message.volume != null && message.hasOwnProperty("volume")) {
9167
+ if (properties.operand === 1)
9168
+ return "operand: multiple values";
9169
+ properties.operand = 1;
9170
+ {
9171
+ let error = $root.vertexvis.protobuf.stream.VolumeIntersectionQuery.verify(message.volume);
9172
+ if (error)
9173
+ return "volume." + error;
9174
+ }
9175
+ }
9176
+ if (message.itemCollection != null && message.hasOwnProperty("itemCollection")) {
9177
+ if (properties.operand === 1)
9178
+ return "operand: multiple values";
9179
+ properties.operand = 1;
9180
+ {
9181
+ let error = $root.vertexvis.protobuf.stream.QueryCollection.verify(message.itemCollection);
9182
+ if (error)
9183
+ return "itemCollection." + error;
9184
+ }
9185
+ }
9186
+ return null;
9187
+ };
9188
+
9189
+ /**
9190
+ * Creates a QueryOperand message from a plain object. Also converts values to their respective internal types.
9191
+ * @function fromObject
9192
+ * @memberof vertexvis.protobuf.stream.QueryOperand
9193
+ * @static
9194
+ * @param {Object.<string,*>} object Plain object
9195
+ * @returns {vertexvis.protobuf.stream.QueryOperand} QueryOperand
9196
+ */
9197
+ QueryOperand.fromObject = function fromObject(object) {
9198
+ if (object instanceof $root.vertexvis.protobuf.stream.QueryOperand)
9199
+ return object;
9200
+ let message = new $root.vertexvis.protobuf.stream.QueryOperand();
9201
+ if (object.metadata != null) {
9202
+ if (typeof object.metadata !== "object")
9203
+ throw TypeError(".vertexvis.protobuf.stream.QueryOperand.metadata: object expected");
9204
+ message.metadata = $root.vertexvis.protobuf.stream.MetadataFilterQuery.fromObject(object.metadata);
9205
+ }
9206
+ if (object.item != null) {
9207
+ if (typeof object.item !== "object")
9208
+ throw TypeError(".vertexvis.protobuf.stream.QueryOperand.item: object expected");
9209
+ message.item = $root.vertexvis.protobuf.stream.ItemQuery.fromObject(object.item);
9210
+ }
9211
+ if (object.root != null) {
9212
+ if (typeof object.root !== "object")
9213
+ throw TypeError(".vertexvis.protobuf.stream.QueryOperand.root: object expected");
9214
+ message.root = $root.vertexvis.protobuf.stream.RootQuery.fromObject(object.root);
9215
+ }
9216
+ if (object.point != null) {
9217
+ if (typeof object.point !== "object")
9218
+ throw TypeError(".vertexvis.protobuf.stream.QueryOperand.point: object expected");
9219
+ message.point = $root.vertexvis.protobuf.stream.PointQuery.fromObject(object.point);
9220
+ }
9221
+ if (object.sceneTreeRange != null) {
9222
+ if (typeof object.sceneTreeRange !== "object")
9223
+ throw TypeError(".vertexvis.protobuf.stream.QueryOperand.sceneTreeRange: object expected");
9224
+ message.sceneTreeRange = $root.vertexvis.protobuf.stream.SceneTreeRangeQuery.fromObject(object.sceneTreeRange);
9225
+ }
9226
+ if (object.override != null) {
9227
+ if (typeof object.override !== "object")
9228
+ throw TypeError(".vertexvis.protobuf.stream.QueryOperand.override: object expected");
9229
+ message.override = $root.vertexvis.protobuf.stream.OverrideQuery.fromObject(object.override);
9230
+ }
9231
+ if (object.volume != null) {
9232
+ if (typeof object.volume !== "object")
9233
+ throw TypeError(".vertexvis.protobuf.stream.QueryOperand.volume: object expected");
9234
+ message.volume = $root.vertexvis.protobuf.stream.VolumeIntersectionQuery.fromObject(object.volume);
9235
+ }
9236
+ if (object.itemCollection != null) {
9237
+ if (typeof object.itemCollection !== "object")
9238
+ throw TypeError(".vertexvis.protobuf.stream.QueryOperand.itemCollection: object expected");
9239
+ message.itemCollection = $root.vertexvis.protobuf.stream.QueryCollection.fromObject(object.itemCollection);
9240
+ }
9241
+ return message;
9242
+ };
9243
+
9244
+ /**
9245
+ * Creates a plain object from a QueryOperand message. Also converts values to other types if specified.
9246
+ * @function toObject
9247
+ * @memberof vertexvis.protobuf.stream.QueryOperand
9248
+ * @static
9249
+ * @param {vertexvis.protobuf.stream.QueryOperand} message QueryOperand
9250
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
9251
+ * @returns {Object.<string,*>} Plain object
9252
+ */
9253
+ QueryOperand.toObject = function toObject(message, options) {
9254
+ if (!options)
9255
+ options = {};
9256
+ let object = {};
9257
+ if (message.metadata != null && message.hasOwnProperty("metadata")) {
9258
+ object.metadata = $root.vertexvis.protobuf.stream.MetadataFilterQuery.toObject(message.metadata, options);
9259
+ if (options.oneofs)
9260
+ object.operand = "metadata";
9261
+ }
9262
+ if (message.item != null && message.hasOwnProperty("item")) {
9263
+ object.item = $root.vertexvis.protobuf.stream.ItemQuery.toObject(message.item, options);
9264
+ if (options.oneofs)
9265
+ object.operand = "item";
9266
+ }
9267
+ if (message.root != null && message.hasOwnProperty("root")) {
9268
+ object.root = $root.vertexvis.protobuf.stream.RootQuery.toObject(message.root, options);
9269
+ if (options.oneofs)
9270
+ object.operand = "root";
9271
+ }
9272
+ if (message.point != null && message.hasOwnProperty("point")) {
9273
+ object.point = $root.vertexvis.protobuf.stream.PointQuery.toObject(message.point, options);
9274
+ if (options.oneofs)
9275
+ object.operand = "point";
9276
+ }
9277
+ if (message.sceneTreeRange != null && message.hasOwnProperty("sceneTreeRange")) {
9278
+ object.sceneTreeRange = $root.vertexvis.protobuf.stream.SceneTreeRangeQuery.toObject(message.sceneTreeRange, options);
9279
+ if (options.oneofs)
9280
+ object.operand = "sceneTreeRange";
9281
+ }
9282
+ if (message.override != null && message.hasOwnProperty("override")) {
9283
+ object.override = $root.vertexvis.protobuf.stream.OverrideQuery.toObject(message.override, options);
9284
+ if (options.oneofs)
9285
+ object.operand = "override";
9286
+ }
9287
+ if (message.volume != null && message.hasOwnProperty("volume")) {
9288
+ object.volume = $root.vertexvis.protobuf.stream.VolumeIntersectionQuery.toObject(message.volume, options);
9289
+ if (options.oneofs)
9290
+ object.operand = "volume";
9291
+ }
9292
+ if (message.itemCollection != null && message.hasOwnProperty("itemCollection")) {
9293
+ object.itemCollection = $root.vertexvis.protobuf.stream.QueryCollection.toObject(message.itemCollection, options);
9294
+ if (options.oneofs)
9295
+ object.operand = "itemCollection";
9296
+ }
9297
+ return object;
9298
+ };
9299
+
9300
+ /**
9301
+ * Converts this QueryOperand to JSON.
9302
+ * @function toJSON
9303
+ * @memberof vertexvis.protobuf.stream.QueryOperand
9304
+ * @instance
9305
+ * @returns {Object.<string,*>} JSON object
9306
+ */
9307
+ QueryOperand.prototype.toJSON = function toJSON() {
9308
+ return this.constructor.toObject(this, minimal.util.toJSONOptions);
9309
+ };
9310
+
9311
+ return QueryOperand;
9312
+ })();
9313
+
9314
+ stream.QueryExpression = (function() {
9315
+
9316
+ /**
9317
+ * Properties of a QueryExpression.
9318
+ * @memberof vertexvis.protobuf.stream
9319
+ * @interface IQueryExpression
9320
+ * @property {vertexvis.protobuf.stream.IQueryOperand|null} [operand] QueryExpression operand
9321
+ * @property {vertexvis.protobuf.stream.IOrExpression|null} [or] QueryExpression or
9322
+ * @property {vertexvis.protobuf.stream.IAndExpression|null} [and] QueryExpression and
9323
+ * @property {vertexvis.protobuf.stream.INotExpression|null} [not] QueryExpression not
9324
+ */
9325
+
9326
+ /**
9327
+ * Constructs a new QueryExpression.
9328
+ * @memberof vertexvis.protobuf.stream
9329
+ * @classdesc Represents a QueryExpression.
9330
+ * @implements IQueryExpression
9331
+ * @constructor
9332
+ * @param {vertexvis.protobuf.stream.IQueryExpression=} [properties] Properties to set
9333
+ */
9334
+ function QueryExpression(properties) {
9335
+ if (properties)
9336
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
9337
+ if (properties[keys[i]] != null)
9338
+ this[keys[i]] = properties[keys[i]];
9339
+ }
9340
+
9341
+ /**
9342
+ * QueryExpression operand.
9343
+ * @member {vertexvis.protobuf.stream.IQueryOperand|null|undefined} operand
9344
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9345
+ * @instance
9346
+ */
9347
+ QueryExpression.prototype.operand = null;
9348
+
9349
+ /**
9350
+ * QueryExpression or.
9351
+ * @member {vertexvis.protobuf.stream.IOrExpression|null|undefined} or
9352
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9353
+ * @instance
9354
+ */
9355
+ QueryExpression.prototype.or = null;
9356
+
9357
+ /**
9358
+ * QueryExpression and.
9359
+ * @member {vertexvis.protobuf.stream.IAndExpression|null|undefined} and
9360
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9361
+ * @instance
9362
+ */
9363
+ QueryExpression.prototype.and = null;
9364
+
9365
+ /**
9366
+ * QueryExpression not.
9367
+ * @member {vertexvis.protobuf.stream.INotExpression|null|undefined} not
9368
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9369
+ * @instance
9370
+ */
9371
+ QueryExpression.prototype.not = null;
9372
+
9373
+ // OneOf field names bound to virtual getters and setters
9374
+ let $oneOfFields;
9375
+
9376
+ /**
9377
+ * QueryExpression sealedValue.
9378
+ * @member {"operand"|"or"|"and"|"not"|undefined} sealedValue
9379
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9380
+ * @instance
9381
+ */
9382
+ Object.defineProperty(QueryExpression.prototype, "sealedValue", {
9383
+ get: $util.oneOfGetter($oneOfFields = ["operand", "or", "and", "not"]),
9384
+ set: $util.oneOfSetter($oneOfFields)
9385
+ });
9386
+
9387
+ /**
9388
+ * Creates a new QueryExpression instance using the specified properties.
9389
+ * @function create
9390
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9391
+ * @static
9392
+ * @param {vertexvis.protobuf.stream.IQueryExpression=} [properties] Properties to set
9393
+ * @returns {vertexvis.protobuf.stream.QueryExpression} QueryExpression instance
9394
+ */
9395
+ QueryExpression.create = function create(properties) {
9396
+ return new QueryExpression(properties);
9397
+ };
9398
+
9399
+ /**
9400
+ * Encodes the specified QueryExpression message. Does not implicitly {@link vertexvis.protobuf.stream.QueryExpression.verify|verify} messages.
9401
+ * @function encode
9402
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9403
+ * @static
9404
+ * @param {vertexvis.protobuf.stream.IQueryExpression} message QueryExpression message or plain object to encode
9405
+ * @param {$protobuf.Writer} [writer] Writer to encode to
9406
+ * @returns {$protobuf.Writer} Writer
9407
+ */
9408
+ QueryExpression.encode = function encode(message, writer) {
9409
+ if (!writer)
9410
+ writer = $Writer.create();
9411
+ if (message.operand != null && Object.hasOwnProperty.call(message, "operand"))
9412
+ $root.vertexvis.protobuf.stream.QueryOperand.encode(message.operand, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
9413
+ if (message.or != null && Object.hasOwnProperty.call(message, "or"))
9414
+ $root.vertexvis.protobuf.stream.OrExpression.encode(message.or, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
9415
+ if (message.and != null && Object.hasOwnProperty.call(message, "and"))
9416
+ $root.vertexvis.protobuf.stream.AndExpression.encode(message.and, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
9417
+ if (message.not != null && Object.hasOwnProperty.call(message, "not"))
9418
+ $root.vertexvis.protobuf.stream.NotExpression.encode(message.not, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
9419
+ return writer;
9420
+ };
9421
+
9422
+ /**
9423
+ * Encodes the specified QueryExpression message, length delimited. Does not implicitly {@link vertexvis.protobuf.stream.QueryExpression.verify|verify} messages.
9424
+ * @function encodeDelimited
9425
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9426
+ * @static
9427
+ * @param {vertexvis.protobuf.stream.IQueryExpression} message QueryExpression message or plain object to encode
9428
+ * @param {$protobuf.Writer} [writer] Writer to encode to
9429
+ * @returns {$protobuf.Writer} Writer
9430
+ */
9431
+ QueryExpression.encodeDelimited = function encodeDelimited(message, writer) {
9432
+ return this.encode(message, writer).ldelim();
9433
+ };
9434
+
9435
+ /**
9436
+ * Decodes a QueryExpression message from the specified reader or buffer.
9437
+ * @function decode
9438
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9439
+ * @static
9440
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
9441
+ * @param {number} [length] Message length if known beforehand
9442
+ * @returns {vertexvis.protobuf.stream.QueryExpression} QueryExpression
9443
+ * @throws {Error} If the payload is not a reader or valid buffer
9444
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
9445
+ */
9446
+ QueryExpression.decode = function decode(reader, length) {
9447
+ if (!(reader instanceof $Reader))
9448
+ reader = $Reader.create(reader);
9449
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vertexvis.protobuf.stream.QueryExpression();
9450
+ while (reader.pos < end) {
9451
+ let tag = reader.uint32();
9452
+ switch (tag >>> 3) {
9453
+ case 1:
9454
+ message.operand = $root.vertexvis.protobuf.stream.QueryOperand.decode(reader, reader.uint32());
9455
+ break;
9456
+ case 2:
9457
+ message.or = $root.vertexvis.protobuf.stream.OrExpression.decode(reader, reader.uint32());
9458
+ break;
9459
+ case 3:
9460
+ message.and = $root.vertexvis.protobuf.stream.AndExpression.decode(reader, reader.uint32());
9461
+ break;
9462
+ case 4:
9463
+ message.not = $root.vertexvis.protobuf.stream.NotExpression.decode(reader, reader.uint32());
9464
+ break;
9465
+ default:
9466
+ reader.skipType(tag & 7);
9467
+ break;
9468
+ }
9469
+ }
9470
+ return message;
9471
+ };
9472
+
9473
+ /**
9474
+ * Decodes a QueryExpression message from the specified reader or buffer, length delimited.
9475
+ * @function decodeDelimited
9476
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9477
+ * @static
9478
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
9479
+ * @returns {vertexvis.protobuf.stream.QueryExpression} QueryExpression
9480
+ * @throws {Error} If the payload is not a reader or valid buffer
9481
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
9482
+ */
9483
+ QueryExpression.decodeDelimited = function decodeDelimited(reader) {
9484
+ if (!(reader instanceof $Reader))
9485
+ reader = new $Reader(reader);
9486
+ return this.decode(reader, reader.uint32());
9487
+ };
9488
+
9489
+ /**
9490
+ * Verifies a QueryExpression message.
9491
+ * @function verify
9492
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9493
+ * @static
9494
+ * @param {Object.<string,*>} message Plain object to verify
9495
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
9496
+ */
9497
+ QueryExpression.verify = function verify(message) {
9498
+ if (typeof message !== "object" || message === null)
9499
+ return "object expected";
9500
+ let properties = {};
9501
+ if (message.operand != null && message.hasOwnProperty("operand")) {
9502
+ properties.sealedValue = 1;
9503
+ {
9504
+ let error = $root.vertexvis.protobuf.stream.QueryOperand.verify(message.operand);
9505
+ if (error)
9506
+ return "operand." + error;
9507
+ }
9508
+ }
9509
+ if (message.or != null && message.hasOwnProperty("or")) {
9510
+ if (properties.sealedValue === 1)
9511
+ return "sealedValue: multiple values";
9512
+ properties.sealedValue = 1;
9513
+ {
9514
+ let error = $root.vertexvis.protobuf.stream.OrExpression.verify(message.or);
9515
+ if (error)
9516
+ return "or." + error;
9517
+ }
9518
+ }
9519
+ if (message.and != null && message.hasOwnProperty("and")) {
9520
+ if (properties.sealedValue === 1)
9521
+ return "sealedValue: multiple values";
9522
+ properties.sealedValue = 1;
9523
+ {
9524
+ let error = $root.vertexvis.protobuf.stream.AndExpression.verify(message.and);
9525
+ if (error)
9526
+ return "and." + error;
9527
+ }
9528
+ }
9529
+ if (message.not != null && message.hasOwnProperty("not")) {
9530
+ if (properties.sealedValue === 1)
9531
+ return "sealedValue: multiple values";
9532
+ properties.sealedValue = 1;
9533
+ {
9534
+ let error = $root.vertexvis.protobuf.stream.NotExpression.verify(message.not);
9535
+ if (error)
9536
+ return "not." + error;
9537
+ }
9538
+ }
9539
+ return null;
9540
+ };
9541
+
9542
+ /**
9543
+ * Creates a QueryExpression message from a plain object. Also converts values to their respective internal types.
9544
+ * @function fromObject
9545
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9546
+ * @static
9547
+ * @param {Object.<string,*>} object Plain object
9548
+ * @returns {vertexvis.protobuf.stream.QueryExpression} QueryExpression
9549
+ */
9550
+ QueryExpression.fromObject = function fromObject(object) {
9551
+ if (object instanceof $root.vertexvis.protobuf.stream.QueryExpression)
9552
+ return object;
9553
+ let message = new $root.vertexvis.protobuf.stream.QueryExpression();
9554
+ if (object.operand != null) {
9555
+ if (typeof object.operand !== "object")
9556
+ throw TypeError(".vertexvis.protobuf.stream.QueryExpression.operand: object expected");
9557
+ message.operand = $root.vertexvis.protobuf.stream.QueryOperand.fromObject(object.operand);
9558
+ }
9559
+ if (object.or != null) {
9560
+ if (typeof object.or !== "object")
9561
+ throw TypeError(".vertexvis.protobuf.stream.QueryExpression.or: object expected");
9562
+ message.or = $root.vertexvis.protobuf.stream.OrExpression.fromObject(object.or);
9563
+ }
9564
+ if (object.and != null) {
9565
+ if (typeof object.and !== "object")
9566
+ throw TypeError(".vertexvis.protobuf.stream.QueryExpression.and: object expected");
9567
+ message.and = $root.vertexvis.protobuf.stream.AndExpression.fromObject(object.and);
9568
+ }
9569
+ if (object.not != null) {
9570
+ if (typeof object.not !== "object")
9571
+ throw TypeError(".vertexvis.protobuf.stream.QueryExpression.not: object expected");
9572
+ message.not = $root.vertexvis.protobuf.stream.NotExpression.fromObject(object.not);
9573
+ }
9574
+ return message;
9575
+ };
9576
+
9577
+ /**
9578
+ * Creates a plain object from a QueryExpression message. Also converts values to other types if specified.
9579
+ * @function toObject
9580
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9581
+ * @static
9582
+ * @param {vertexvis.protobuf.stream.QueryExpression} message QueryExpression
9583
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
9584
+ * @returns {Object.<string,*>} Plain object
9585
+ */
9586
+ QueryExpression.toObject = function toObject(message, options) {
9587
+ if (!options)
9588
+ options = {};
9589
+ let object = {};
9590
+ if (message.operand != null && message.hasOwnProperty("operand")) {
9591
+ object.operand = $root.vertexvis.protobuf.stream.QueryOperand.toObject(message.operand, options);
9592
+ if (options.oneofs)
9593
+ object.sealedValue = "operand";
9594
+ }
9595
+ if (message.or != null && message.hasOwnProperty("or")) {
9596
+ object.or = $root.vertexvis.protobuf.stream.OrExpression.toObject(message.or, options);
9597
+ if (options.oneofs)
9598
+ object.sealedValue = "or";
9599
+ }
9600
+ if (message.and != null && message.hasOwnProperty("and")) {
9601
+ object.and = $root.vertexvis.protobuf.stream.AndExpression.toObject(message.and, options);
9602
+ if (options.oneofs)
9603
+ object.sealedValue = "and";
9604
+ }
9605
+ if (message.not != null && message.hasOwnProperty("not")) {
9606
+ object.not = $root.vertexvis.protobuf.stream.NotExpression.toObject(message.not, options);
9607
+ if (options.oneofs)
9608
+ object.sealedValue = "not";
9609
+ }
9610
+ return object;
9611
+ };
9612
+
9613
+ /**
9614
+ * Converts this QueryExpression to JSON.
9615
+ * @function toJSON
9616
+ * @memberof vertexvis.protobuf.stream.QueryExpression
9617
+ * @instance
9618
+ * @returns {Object.<string,*>} JSON object
9619
+ */
9620
+ QueryExpression.prototype.toJSON = function toJSON() {
9621
+ return this.constructor.toObject(this, minimal.util.toJSONOptions);
9622
+ };
9623
+
9624
+ return QueryExpression;
9625
+ })();
9626
+
9627
+ stream.NotExpression = (function() {
9628
+
9629
+ /**
9630
+ * Properties of a NotExpression.
9631
+ * @memberof vertexvis.protobuf.stream
9632
+ * @interface INotExpression
9633
+ * @property {vertexvis.protobuf.stream.IQueryExpression|null} [expression] NotExpression expression
9634
+ */
9635
+
9636
+ /**
9637
+ * Constructs a new NotExpression.
9638
+ * @memberof vertexvis.protobuf.stream
9639
+ * @classdesc Represents a NotExpression.
9640
+ * @implements INotExpression
9641
+ * @constructor
9642
+ * @param {vertexvis.protobuf.stream.INotExpression=} [properties] Properties to set
9643
+ */
9644
+ function NotExpression(properties) {
9645
+ if (properties)
9646
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
9647
+ if (properties[keys[i]] != null)
9648
+ this[keys[i]] = properties[keys[i]];
9649
+ }
9650
+
9651
+ /**
9652
+ * NotExpression expression.
9653
+ * @member {vertexvis.protobuf.stream.IQueryExpression|null|undefined} expression
9654
+ * @memberof vertexvis.protobuf.stream.NotExpression
9655
+ * @instance
9656
+ */
9657
+ NotExpression.prototype.expression = null;
9658
+
9659
+ /**
9660
+ * Creates a new NotExpression instance using the specified properties.
9661
+ * @function create
9662
+ * @memberof vertexvis.protobuf.stream.NotExpression
9663
+ * @static
9664
+ * @param {vertexvis.protobuf.stream.INotExpression=} [properties] Properties to set
9665
+ * @returns {vertexvis.protobuf.stream.NotExpression} NotExpression instance
9666
+ */
9667
+ NotExpression.create = function create(properties) {
9668
+ return new NotExpression(properties);
9669
+ };
9670
+
9671
+ /**
9672
+ * Encodes the specified NotExpression message. Does not implicitly {@link vertexvis.protobuf.stream.NotExpression.verify|verify} messages.
9673
+ * @function encode
9674
+ * @memberof vertexvis.protobuf.stream.NotExpression
9675
+ * @static
9676
+ * @param {vertexvis.protobuf.stream.INotExpression} message NotExpression message or plain object to encode
9677
+ * @param {$protobuf.Writer} [writer] Writer to encode to
9678
+ * @returns {$protobuf.Writer} Writer
9679
+ */
9680
+ NotExpression.encode = function encode(message, writer) {
9681
+ if (!writer)
9682
+ writer = $Writer.create();
9683
+ if (message.expression != null && Object.hasOwnProperty.call(message, "expression"))
9684
+ $root.vertexvis.protobuf.stream.QueryExpression.encode(message.expression, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
9685
+ return writer;
9686
+ };
9687
+
9688
+ /**
9689
+ * Encodes the specified NotExpression message, length delimited. Does not implicitly {@link vertexvis.protobuf.stream.NotExpression.verify|verify} messages.
9690
+ * @function encodeDelimited
9691
+ * @memberof vertexvis.protobuf.stream.NotExpression
9692
+ * @static
9693
+ * @param {vertexvis.protobuf.stream.INotExpression} message NotExpression message or plain object to encode
9694
+ * @param {$protobuf.Writer} [writer] Writer to encode to
9695
+ * @returns {$protobuf.Writer} Writer
9696
+ */
9697
+ NotExpression.encodeDelimited = function encodeDelimited(message, writer) {
9698
+ return this.encode(message, writer).ldelim();
9699
+ };
9700
+
9701
+ /**
9702
+ * Decodes a NotExpression message from the specified reader or buffer.
9703
+ * @function decode
9704
+ * @memberof vertexvis.protobuf.stream.NotExpression
9705
+ * @static
9706
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
9707
+ * @param {number} [length] Message length if known beforehand
9708
+ * @returns {vertexvis.protobuf.stream.NotExpression} NotExpression
9709
+ * @throws {Error} If the payload is not a reader or valid buffer
9710
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
9711
+ */
9712
+ NotExpression.decode = function decode(reader, length) {
9713
+ if (!(reader instanceof $Reader))
9714
+ reader = $Reader.create(reader);
9715
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vertexvis.protobuf.stream.NotExpression();
9716
+ while (reader.pos < end) {
9717
+ let tag = reader.uint32();
9718
+ switch (tag >>> 3) {
9719
+ case 1:
9720
+ message.expression = $root.vertexvis.protobuf.stream.QueryExpression.decode(reader, reader.uint32());
9721
+ break;
9722
+ default:
9723
+ reader.skipType(tag & 7);
9724
+ break;
9725
+ }
9726
+ }
9727
+ return message;
9728
+ };
9729
+
9730
+ /**
9731
+ * Decodes a NotExpression message from the specified reader or buffer, length delimited.
9732
+ * @function decodeDelimited
9733
+ * @memberof vertexvis.protobuf.stream.NotExpression
9734
+ * @static
9735
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
9736
+ * @returns {vertexvis.protobuf.stream.NotExpression} NotExpression
9737
+ * @throws {Error} If the payload is not a reader or valid buffer
9738
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
9739
+ */
9740
+ NotExpression.decodeDelimited = function decodeDelimited(reader) {
9741
+ if (!(reader instanceof $Reader))
9742
+ reader = new $Reader(reader);
9743
+ return this.decode(reader, reader.uint32());
9744
+ };
9745
+
9746
+ /**
9747
+ * Verifies a NotExpression message.
9748
+ * @function verify
9749
+ * @memberof vertexvis.protobuf.stream.NotExpression
9750
+ * @static
9751
+ * @param {Object.<string,*>} message Plain object to verify
9752
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
9753
+ */
9754
+ NotExpression.verify = function verify(message) {
9755
+ if (typeof message !== "object" || message === null)
9756
+ return "object expected";
9757
+ if (message.expression != null && message.hasOwnProperty("expression")) {
9758
+ let error = $root.vertexvis.protobuf.stream.QueryExpression.verify(message.expression);
9759
+ if (error)
9760
+ return "expression." + error;
9761
+ }
9762
+ return null;
9763
+ };
9764
+
9765
+ /**
9766
+ * Creates a NotExpression message from a plain object. Also converts values to their respective internal types.
9767
+ * @function fromObject
9768
+ * @memberof vertexvis.protobuf.stream.NotExpression
9769
+ * @static
9770
+ * @param {Object.<string,*>} object Plain object
9771
+ * @returns {vertexvis.protobuf.stream.NotExpression} NotExpression
9772
+ */
9773
+ NotExpression.fromObject = function fromObject(object) {
9774
+ if (object instanceof $root.vertexvis.protobuf.stream.NotExpression)
9775
+ return object;
9776
+ let message = new $root.vertexvis.protobuf.stream.NotExpression();
9777
+ if (object.expression != null) {
9778
+ if (typeof object.expression !== "object")
9779
+ throw TypeError(".vertexvis.protobuf.stream.NotExpression.expression: object expected");
9780
+ message.expression = $root.vertexvis.protobuf.stream.QueryExpression.fromObject(object.expression);
9781
+ }
9782
+ return message;
9783
+ };
9784
+
9785
+ /**
9786
+ * Creates a plain object from a NotExpression message. Also converts values to other types if specified.
9787
+ * @function toObject
9788
+ * @memberof vertexvis.protobuf.stream.NotExpression
9789
+ * @static
9790
+ * @param {vertexvis.protobuf.stream.NotExpression} message NotExpression
9791
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
9792
+ * @returns {Object.<string,*>} Plain object
9793
+ */
9794
+ NotExpression.toObject = function toObject(message, options) {
9795
+ if (!options)
9796
+ options = {};
9797
+ let object = {};
9798
+ if (options.defaults)
9799
+ object.expression = null;
9800
+ if (message.expression != null && message.hasOwnProperty("expression"))
9801
+ object.expression = $root.vertexvis.protobuf.stream.QueryExpression.toObject(message.expression, options);
9802
+ return object;
9803
+ };
9804
+
9805
+ /**
9806
+ * Converts this NotExpression to JSON.
9807
+ * @function toJSON
9808
+ * @memberof vertexvis.protobuf.stream.NotExpression
9809
+ * @instance
9810
+ * @returns {Object.<string,*>} JSON object
9811
+ */
9812
+ NotExpression.prototype.toJSON = function toJSON() {
9813
+ return this.constructor.toObject(this, minimal.util.toJSONOptions);
9814
+ };
9815
+
9816
+ return NotExpression;
9817
+ })();
9818
+
9819
+ stream.OrExpression = (function() {
9820
+
9821
+ /**
9822
+ * Properties of an OrExpression.
9823
+ * @memberof vertexvis.protobuf.stream
9824
+ * @interface IOrExpression
9825
+ * @property {vertexvis.protobuf.stream.IQueryExpression|null} [first] OrExpression first
9826
+ * @property {vertexvis.protobuf.stream.IQueryExpression|null} [second] OrExpression second
9827
+ */
9828
+
9829
+ /**
9830
+ * Constructs a new OrExpression.
9831
+ * @memberof vertexvis.protobuf.stream
9832
+ * @classdesc Represents an OrExpression.
9833
+ * @implements IOrExpression
9834
+ * @constructor
9835
+ * @param {vertexvis.protobuf.stream.IOrExpression=} [properties] Properties to set
9836
+ */
9837
+ function OrExpression(properties) {
9838
+ if (properties)
9839
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
9840
+ if (properties[keys[i]] != null)
9841
+ this[keys[i]] = properties[keys[i]];
9842
+ }
9843
+
9844
+ /**
9845
+ * OrExpression first.
9846
+ * @member {vertexvis.protobuf.stream.IQueryExpression|null|undefined} first
9847
+ * @memberof vertexvis.protobuf.stream.OrExpression
9848
+ * @instance
9849
+ */
9850
+ OrExpression.prototype.first = null;
9851
+
9852
+ /**
9853
+ * OrExpression second.
9854
+ * @member {vertexvis.protobuf.stream.IQueryExpression|null|undefined} second
9855
+ * @memberof vertexvis.protobuf.stream.OrExpression
9856
+ * @instance
9857
+ */
9858
+ OrExpression.prototype.second = null;
9859
+
9860
+ /**
9861
+ * Creates a new OrExpression instance using the specified properties.
9862
+ * @function create
9863
+ * @memberof vertexvis.protobuf.stream.OrExpression
9864
+ * @static
9865
+ * @param {vertexvis.protobuf.stream.IOrExpression=} [properties] Properties to set
9866
+ * @returns {vertexvis.protobuf.stream.OrExpression} OrExpression instance
9867
+ */
9868
+ OrExpression.create = function create(properties) {
9869
+ return new OrExpression(properties);
9870
+ };
9871
+
9872
+ /**
9873
+ * Encodes the specified OrExpression message. Does not implicitly {@link vertexvis.protobuf.stream.OrExpression.verify|verify} messages.
9874
+ * @function encode
9875
+ * @memberof vertexvis.protobuf.stream.OrExpression
9876
+ * @static
9877
+ * @param {vertexvis.protobuf.stream.IOrExpression} message OrExpression message or plain object to encode
9878
+ * @param {$protobuf.Writer} [writer] Writer to encode to
9879
+ * @returns {$protobuf.Writer} Writer
9880
+ */
9881
+ OrExpression.encode = function encode(message, writer) {
9882
+ if (!writer)
9883
+ writer = $Writer.create();
9884
+ if (message.first != null && Object.hasOwnProperty.call(message, "first"))
9885
+ $root.vertexvis.protobuf.stream.QueryExpression.encode(message.first, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
9886
+ if (message.second != null && Object.hasOwnProperty.call(message, "second"))
9887
+ $root.vertexvis.protobuf.stream.QueryExpression.encode(message.second, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
9888
+ return writer;
9889
+ };
9890
+
9891
+ /**
9892
+ * Encodes the specified OrExpression message, length delimited. Does not implicitly {@link vertexvis.protobuf.stream.OrExpression.verify|verify} messages.
9893
+ * @function encodeDelimited
9894
+ * @memberof vertexvis.protobuf.stream.OrExpression
9895
+ * @static
9896
+ * @param {vertexvis.protobuf.stream.IOrExpression} message OrExpression message or plain object to encode
9897
+ * @param {$protobuf.Writer} [writer] Writer to encode to
9898
+ * @returns {$protobuf.Writer} Writer
9899
+ */
9900
+ OrExpression.encodeDelimited = function encodeDelimited(message, writer) {
9901
+ return this.encode(message, writer).ldelim();
9902
+ };
9903
+
9904
+ /**
9905
+ * Decodes an OrExpression message from the specified reader or buffer.
9906
+ * @function decode
9907
+ * @memberof vertexvis.protobuf.stream.OrExpression
9908
+ * @static
9909
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
9910
+ * @param {number} [length] Message length if known beforehand
9911
+ * @returns {vertexvis.protobuf.stream.OrExpression} OrExpression
9912
+ * @throws {Error} If the payload is not a reader or valid buffer
9913
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
9914
+ */
9915
+ OrExpression.decode = function decode(reader, length) {
9916
+ if (!(reader instanceof $Reader))
9917
+ reader = $Reader.create(reader);
9918
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vertexvis.protobuf.stream.OrExpression();
9919
+ while (reader.pos < end) {
9920
+ let tag = reader.uint32();
9921
+ switch (tag >>> 3) {
9922
+ case 1:
9923
+ message.first = $root.vertexvis.protobuf.stream.QueryExpression.decode(reader, reader.uint32());
9924
+ break;
9925
+ case 2:
9926
+ message.second = $root.vertexvis.protobuf.stream.QueryExpression.decode(reader, reader.uint32());
9927
+ break;
9928
+ default:
9929
+ reader.skipType(tag & 7);
9930
+ break;
9931
+ }
9932
+ }
9933
+ return message;
9934
+ };
9935
+
9936
+ /**
9937
+ * Decodes an OrExpression message from the specified reader or buffer, length delimited.
9938
+ * @function decodeDelimited
9939
+ * @memberof vertexvis.protobuf.stream.OrExpression
9940
+ * @static
9941
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
9942
+ * @returns {vertexvis.protobuf.stream.OrExpression} OrExpression
9943
+ * @throws {Error} If the payload is not a reader or valid buffer
9944
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
9945
+ */
9946
+ OrExpression.decodeDelimited = function decodeDelimited(reader) {
9947
+ if (!(reader instanceof $Reader))
9948
+ reader = new $Reader(reader);
9949
+ return this.decode(reader, reader.uint32());
9950
+ };
9951
+
9952
+ /**
9953
+ * Verifies an OrExpression message.
9954
+ * @function verify
9955
+ * @memberof vertexvis.protobuf.stream.OrExpression
9956
+ * @static
9957
+ * @param {Object.<string,*>} message Plain object to verify
9958
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
9959
+ */
9960
+ OrExpression.verify = function verify(message) {
9961
+ if (typeof message !== "object" || message === null)
9962
+ return "object expected";
9963
+ if (message.first != null && message.hasOwnProperty("first")) {
9964
+ let error = $root.vertexvis.protobuf.stream.QueryExpression.verify(message.first);
9965
+ if (error)
9966
+ return "first." + error;
9967
+ }
9968
+ if (message.second != null && message.hasOwnProperty("second")) {
9969
+ let error = $root.vertexvis.protobuf.stream.QueryExpression.verify(message.second);
9970
+ if (error)
9971
+ return "second." + error;
9972
+ }
9973
+ return null;
9974
+ };
9975
+
9976
+ /**
9977
+ * Creates an OrExpression message from a plain object. Also converts values to their respective internal types.
9978
+ * @function fromObject
9979
+ * @memberof vertexvis.protobuf.stream.OrExpression
9980
+ * @static
9981
+ * @param {Object.<string,*>} object Plain object
9982
+ * @returns {vertexvis.protobuf.stream.OrExpression} OrExpression
9983
+ */
9984
+ OrExpression.fromObject = function fromObject(object) {
9985
+ if (object instanceof $root.vertexvis.protobuf.stream.OrExpression)
9986
+ return object;
9987
+ let message = new $root.vertexvis.protobuf.stream.OrExpression();
9988
+ if (object.first != null) {
9989
+ if (typeof object.first !== "object")
9990
+ throw TypeError(".vertexvis.protobuf.stream.OrExpression.first: object expected");
9991
+ message.first = $root.vertexvis.protobuf.stream.QueryExpression.fromObject(object.first);
9992
+ }
9993
+ if (object.second != null) {
9994
+ if (typeof object.second !== "object")
9995
+ throw TypeError(".vertexvis.protobuf.stream.OrExpression.second: object expected");
9996
+ message.second = $root.vertexvis.protobuf.stream.QueryExpression.fromObject(object.second);
9997
+ }
9998
+ return message;
9999
+ };
10000
+
10001
+ /**
10002
+ * Creates a plain object from an OrExpression message. Also converts values to other types if specified.
10003
+ * @function toObject
10004
+ * @memberof vertexvis.protobuf.stream.OrExpression
10005
+ * @static
10006
+ * @param {vertexvis.protobuf.stream.OrExpression} message OrExpression
10007
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
10008
+ * @returns {Object.<string,*>} Plain object
10009
+ */
10010
+ OrExpression.toObject = function toObject(message, options) {
10011
+ if (!options)
10012
+ options = {};
10013
+ let object = {};
10014
+ if (options.defaults) {
10015
+ object.first = null;
10016
+ object.second = null;
10017
+ }
10018
+ if (message.first != null && message.hasOwnProperty("first"))
10019
+ object.first = $root.vertexvis.protobuf.stream.QueryExpression.toObject(message.first, options);
10020
+ if (message.second != null && message.hasOwnProperty("second"))
10021
+ object.second = $root.vertexvis.protobuf.stream.QueryExpression.toObject(message.second, options);
10022
+ return object;
10023
+ };
10024
+
10025
+ /**
10026
+ * Converts this OrExpression to JSON.
10027
+ * @function toJSON
10028
+ * @memberof vertexvis.protobuf.stream.OrExpression
10029
+ * @instance
10030
+ * @returns {Object.<string,*>} JSON object
10031
+ */
10032
+ OrExpression.prototype.toJSON = function toJSON() {
10033
+ return this.constructor.toObject(this, minimal.util.toJSONOptions);
10034
+ };
10035
+
10036
+ return OrExpression;
10037
+ })();
10038
+
10039
+ stream.AndExpression = (function() {
10040
+
10041
+ /**
10042
+ * Properties of an AndExpression.
10043
+ * @memberof vertexvis.protobuf.stream
10044
+ * @interface IAndExpression
10045
+ * @property {vertexvis.protobuf.stream.IQueryExpression|null} [first] AndExpression first
10046
+ * @property {vertexvis.protobuf.stream.IQueryExpression|null} [second] AndExpression second
10047
+ */
10048
+
10049
+ /**
10050
+ * Constructs a new AndExpression.
10051
+ * @memberof vertexvis.protobuf.stream
10052
+ * @classdesc Represents an AndExpression.
10053
+ * @implements IAndExpression
10054
+ * @constructor
10055
+ * @param {vertexvis.protobuf.stream.IAndExpression=} [properties] Properties to set
10056
+ */
10057
+ function AndExpression(properties) {
10058
+ if (properties)
10059
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
10060
+ if (properties[keys[i]] != null)
10061
+ this[keys[i]] = properties[keys[i]];
10062
+ }
10063
+
10064
+ /**
10065
+ * AndExpression first.
10066
+ * @member {vertexvis.protobuf.stream.IQueryExpression|null|undefined} first
10067
+ * @memberof vertexvis.protobuf.stream.AndExpression
10068
+ * @instance
10069
+ */
10070
+ AndExpression.prototype.first = null;
10071
+
10072
+ /**
10073
+ * AndExpression second.
10074
+ * @member {vertexvis.protobuf.stream.IQueryExpression|null|undefined} second
10075
+ * @memberof vertexvis.protobuf.stream.AndExpression
10076
+ * @instance
10077
+ */
10078
+ AndExpression.prototype.second = null;
10079
+
10080
+ /**
10081
+ * Creates a new AndExpression instance using the specified properties.
10082
+ * @function create
10083
+ * @memberof vertexvis.protobuf.stream.AndExpression
10084
+ * @static
10085
+ * @param {vertexvis.protobuf.stream.IAndExpression=} [properties] Properties to set
10086
+ * @returns {vertexvis.protobuf.stream.AndExpression} AndExpression instance
10087
+ */
10088
+ AndExpression.create = function create(properties) {
10089
+ return new AndExpression(properties);
10090
+ };
10091
+
10092
+ /**
10093
+ * Encodes the specified AndExpression message. Does not implicitly {@link vertexvis.protobuf.stream.AndExpression.verify|verify} messages.
10094
+ * @function encode
10095
+ * @memberof vertexvis.protobuf.stream.AndExpression
10096
+ * @static
10097
+ * @param {vertexvis.protobuf.stream.IAndExpression} message AndExpression message or plain object to encode
10098
+ * @param {$protobuf.Writer} [writer] Writer to encode to
10099
+ * @returns {$protobuf.Writer} Writer
10100
+ */
10101
+ AndExpression.encode = function encode(message, writer) {
10102
+ if (!writer)
10103
+ writer = $Writer.create();
10104
+ if (message.first != null && Object.hasOwnProperty.call(message, "first"))
10105
+ $root.vertexvis.protobuf.stream.QueryExpression.encode(message.first, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
10106
+ if (message.second != null && Object.hasOwnProperty.call(message, "second"))
10107
+ $root.vertexvis.protobuf.stream.QueryExpression.encode(message.second, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
10108
+ return writer;
10109
+ };
10110
+
10111
+ /**
10112
+ * Encodes the specified AndExpression message, length delimited. Does not implicitly {@link vertexvis.protobuf.stream.AndExpression.verify|verify} messages.
10113
+ * @function encodeDelimited
10114
+ * @memberof vertexvis.protobuf.stream.AndExpression
10115
+ * @static
10116
+ * @param {vertexvis.protobuf.stream.IAndExpression} message AndExpression message or plain object to encode
10117
+ * @param {$protobuf.Writer} [writer] Writer to encode to
10118
+ * @returns {$protobuf.Writer} Writer
10119
+ */
10120
+ AndExpression.encodeDelimited = function encodeDelimited(message, writer) {
10121
+ return this.encode(message, writer).ldelim();
10122
+ };
10123
+
10124
+ /**
10125
+ * Decodes an AndExpression message from the specified reader or buffer.
10126
+ * @function decode
10127
+ * @memberof vertexvis.protobuf.stream.AndExpression
10128
+ * @static
10129
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
10130
+ * @param {number} [length] Message length if known beforehand
10131
+ * @returns {vertexvis.protobuf.stream.AndExpression} AndExpression
10132
+ * @throws {Error} If the payload is not a reader or valid buffer
10133
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
10134
+ */
10135
+ AndExpression.decode = function decode(reader, length) {
10136
+ if (!(reader instanceof $Reader))
10137
+ reader = $Reader.create(reader);
10138
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vertexvis.protobuf.stream.AndExpression();
10139
+ while (reader.pos < end) {
10140
+ let tag = reader.uint32();
10141
+ switch (tag >>> 3) {
10142
+ case 1:
10143
+ message.first = $root.vertexvis.protobuf.stream.QueryExpression.decode(reader, reader.uint32());
10144
+ break;
10145
+ case 2:
10146
+ message.second = $root.vertexvis.protobuf.stream.QueryExpression.decode(reader, reader.uint32());
10147
+ break;
10148
+ default:
10149
+ reader.skipType(tag & 7);
10150
+ break;
10151
+ }
10152
+ }
10153
+ return message;
10154
+ };
10155
+
10156
+ /**
10157
+ * Decodes an AndExpression message from the specified reader or buffer, length delimited.
10158
+ * @function decodeDelimited
10159
+ * @memberof vertexvis.protobuf.stream.AndExpression
10160
+ * @static
10161
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
10162
+ * @returns {vertexvis.protobuf.stream.AndExpression} AndExpression
10163
+ * @throws {Error} If the payload is not a reader or valid buffer
10164
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
10165
+ */
10166
+ AndExpression.decodeDelimited = function decodeDelimited(reader) {
10167
+ if (!(reader instanceof $Reader))
10168
+ reader = new $Reader(reader);
10169
+ return this.decode(reader, reader.uint32());
10170
+ };
10171
+
10172
+ /**
10173
+ * Verifies an AndExpression message.
10174
+ * @function verify
10175
+ * @memberof vertexvis.protobuf.stream.AndExpression
10176
+ * @static
10177
+ * @param {Object.<string,*>} message Plain object to verify
10178
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
10179
+ */
10180
+ AndExpression.verify = function verify(message) {
10181
+ if (typeof message !== "object" || message === null)
10182
+ return "object expected";
10183
+ if (message.first != null && message.hasOwnProperty("first")) {
10184
+ let error = $root.vertexvis.protobuf.stream.QueryExpression.verify(message.first);
10185
+ if (error)
10186
+ return "first." + error;
10187
+ }
10188
+ if (message.second != null && message.hasOwnProperty("second")) {
10189
+ let error = $root.vertexvis.protobuf.stream.QueryExpression.verify(message.second);
10190
+ if (error)
10191
+ return "second." + error;
10192
+ }
10193
+ return null;
10194
+ };
10195
+
10196
+ /**
10197
+ * Creates an AndExpression message from a plain object. Also converts values to their respective internal types.
10198
+ * @function fromObject
10199
+ * @memberof vertexvis.protobuf.stream.AndExpression
10200
+ * @static
10201
+ * @param {Object.<string,*>} object Plain object
10202
+ * @returns {vertexvis.protobuf.stream.AndExpression} AndExpression
10203
+ */
10204
+ AndExpression.fromObject = function fromObject(object) {
10205
+ if (object instanceof $root.vertexvis.protobuf.stream.AndExpression)
10206
+ return object;
10207
+ let message = new $root.vertexvis.protobuf.stream.AndExpression();
10208
+ if (object.first != null) {
10209
+ if (typeof object.first !== "object")
10210
+ throw TypeError(".vertexvis.protobuf.stream.AndExpression.first: object expected");
10211
+ message.first = $root.vertexvis.protobuf.stream.QueryExpression.fromObject(object.first);
10212
+ }
10213
+ if (object.second != null) {
10214
+ if (typeof object.second !== "object")
10215
+ throw TypeError(".vertexvis.protobuf.stream.AndExpression.second: object expected");
10216
+ message.second = $root.vertexvis.protobuf.stream.QueryExpression.fromObject(object.second);
10217
+ }
10218
+ return message;
10219
+ };
10220
+
10221
+ /**
10222
+ * Creates a plain object from an AndExpression message. Also converts values to other types if specified.
10223
+ * @function toObject
10224
+ * @memberof vertexvis.protobuf.stream.AndExpression
10225
+ * @static
10226
+ * @param {vertexvis.protobuf.stream.AndExpression} message AndExpression
10227
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
10228
+ * @returns {Object.<string,*>} Plain object
10229
+ */
10230
+ AndExpression.toObject = function toObject(message, options) {
10231
+ if (!options)
10232
+ options = {};
10233
+ let object = {};
10234
+ if (options.defaults) {
10235
+ object.first = null;
10236
+ object.second = null;
10237
+ }
10238
+ if (message.first != null && message.hasOwnProperty("first"))
10239
+ object.first = $root.vertexvis.protobuf.stream.QueryExpression.toObject(message.first, options);
10240
+ if (message.second != null && message.hasOwnProperty("second"))
10241
+ object.second = $root.vertexvis.protobuf.stream.QueryExpression.toObject(message.second, options);
10242
+ return object;
10243
+ };
10244
+
10245
+ /**
10246
+ * Converts this AndExpression to JSON.
10247
+ * @function toJSON
10248
+ * @memberof vertexvis.protobuf.stream.AndExpression
10249
+ * @instance
10250
+ * @returns {Object.<string,*>} JSON object
10251
+ */
10252
+ AndExpression.prototype.toJSON = function toJSON() {
10253
+ return this.constructor.toObject(this, minimal.util.toJSONOptions);
10254
+ };
10255
+
10256
+ return AndExpression;
10257
+ })();
10258
+
10259
+ stream.SceneOperation = (function() {
10260
+
10261
+ /**
10262
+ * Properties of a SceneOperation.
10263
+ * @memberof vertexvis.protobuf.stream
10264
+ * @interface ISceneOperation
10265
+ * @property {vertexvis.protobuf.stream.IItemQuery|null} [item] SceneOperation item
10266
+ * @property {vertexvis.protobuf.stream.IQueryCollection|null} [or] SceneOperation or
10267
+ * @property {vertexvis.protobuf.stream.IQueryCollection|null} [and] SceneOperation and
10268
+ * @property {vertexvis.protobuf.stream.IAllQuery|null} [all] SceneOperation all
10269
+ * @property {vertexvis.protobuf.stream.IPointQuery|null} [point] SceneOperation point
10270
+ * @property {vertexvis.protobuf.stream.ISceneTreeRangeQuery|null} [sceneTreeRange] SceneOperation sceneTreeRange
10271
+ * @property {vertexvis.protobuf.stream.IMetadataFilterQuery|null} [metadata] SceneOperation metadata
10272
+ * @property {vertexvis.protobuf.stream.IOverrideQuery|null} [override] SceneOperation override
10273
+ * @property {vertexvis.protobuf.stream.IVolumeIntersectionQuery|null} [volume] SceneOperation volume
10274
+ * @property {vertexvis.protobuf.stream.IQueryCollection|null} [not] SceneOperation not
10275
+ * @property {Array.<vertexvis.protobuf.stream.IOperationType>|null} [operationTypes] SceneOperation operationTypes
10276
+ * @property {vertexvis.protobuf.stream.IQueryExpression|null} [queryExpression] SceneOperation queryExpression
10277
+ */
10278
+
10279
+ /**
10280
+ * Constructs a new SceneOperation.
10281
+ * @memberof vertexvis.protobuf.stream
10282
+ * @classdesc Represents a SceneOperation.
10283
+ * @implements ISceneOperation
10284
+ * @constructor
10285
+ * @param {vertexvis.protobuf.stream.ISceneOperation=} [properties] Properties to set
10286
+ */
10287
+ function SceneOperation(properties) {
10288
+ this.operationTypes = [];
10289
+ if (properties)
10290
+ for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
10291
+ if (properties[keys[i]] != null)
10292
+ this[keys[i]] = properties[keys[i]];
10293
+ }
10294
+
10295
+ /**
10296
+ * SceneOperation item.
10297
+ * @member {vertexvis.protobuf.stream.IItemQuery|null|undefined} item
10298
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10299
+ * @instance
10300
+ */
10301
+ SceneOperation.prototype.item = null;
10302
+
10303
+ /**
10304
+ * SceneOperation or.
10305
+ * @member {vertexvis.protobuf.stream.IQueryCollection|null|undefined} or
10306
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10307
+ * @instance
10308
+ */
10309
+ SceneOperation.prototype.or = null;
10310
+
10311
+ /**
10312
+ * SceneOperation and.
10313
+ * @member {vertexvis.protobuf.stream.IQueryCollection|null|undefined} and
10314
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10315
+ * @instance
10316
+ */
10317
+ SceneOperation.prototype.and = null;
10318
+
10319
+ /**
10320
+ * SceneOperation all.
10321
+ * @member {vertexvis.protobuf.stream.IAllQuery|null|undefined} all
10322
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10323
+ * @instance
10324
+ */
10325
+ SceneOperation.prototype.all = null;
10326
+
10327
+ /**
10328
+ * SceneOperation point.
10329
+ * @member {vertexvis.protobuf.stream.IPointQuery|null|undefined} point
10330
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10331
+ * @instance
10332
+ */
10333
+ SceneOperation.prototype.point = null;
10334
+
10335
+ /**
10336
+ * SceneOperation sceneTreeRange.
10337
+ * @member {vertexvis.protobuf.stream.ISceneTreeRangeQuery|null|undefined} sceneTreeRange
10338
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10339
+ * @instance
10340
+ */
10341
+ SceneOperation.prototype.sceneTreeRange = null;
10342
+
10343
+ /**
10344
+ * SceneOperation metadata.
10345
+ * @member {vertexvis.protobuf.stream.IMetadataFilterQuery|null|undefined} metadata
10346
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10347
+ * @instance
10348
+ */
10349
+ SceneOperation.prototype.metadata = null;
10350
+
10351
+ /**
10352
+ * SceneOperation override.
10353
+ * @member {vertexvis.protobuf.stream.IOverrideQuery|null|undefined} override
10354
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10355
+ * @instance
10356
+ */
10357
+ SceneOperation.prototype.override = null;
10358
+
10359
+ /**
10360
+ * SceneOperation volume.
10361
+ * @member {vertexvis.protobuf.stream.IVolumeIntersectionQuery|null|undefined} volume
10362
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10363
+ * @instance
10364
+ */
10365
+ SceneOperation.prototype.volume = null;
10366
+
10367
+ /**
10368
+ * SceneOperation not.
10369
+ * @member {vertexvis.protobuf.stream.IQueryCollection|null|undefined} not
10370
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10371
+ * @instance
10372
+ */
10373
+ SceneOperation.prototype.not = null;
10374
+
10375
+ /**
10376
+ * SceneOperation operationTypes.
10377
+ * @member {Array.<vertexvis.protobuf.stream.IOperationType>} operationTypes
10378
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10379
+ * @instance
10380
+ */
10381
+ SceneOperation.prototype.operationTypes = $util.emptyArray;
10382
+
10383
+ /**
10384
+ * SceneOperation queryExpression.
10385
+ * @member {vertexvis.protobuf.stream.IQueryExpression|null|undefined} queryExpression
10386
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10387
+ * @instance
10388
+ */
10389
+ SceneOperation.prototype.queryExpression = null;
10390
+
10391
+ // OneOf field names bound to virtual getters and setters
10392
+ let $oneOfFields;
10393
+
10394
+ /**
10395
+ * SceneOperation query.
10396
+ * @member {"item"|"or"|"and"|"all"|"point"|"sceneTreeRange"|"metadata"|"override"|"volume"|"not"|undefined} query
10397
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10398
+ * @instance
10399
+ */
10400
+ Object.defineProperty(SceneOperation.prototype, "query", {
10401
+ get: $util.oneOfGetter($oneOfFields = ["item", "or", "and", "all", "point", "sceneTreeRange", "metadata", "override", "volume", "not"]),
10402
+ set: $util.oneOfSetter($oneOfFields)
10403
+ });
10404
+
10405
+ /**
10406
+ * Creates a new SceneOperation instance using the specified properties.
10407
+ * @function create
10408
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10409
+ * @static
10410
+ * @param {vertexvis.protobuf.stream.ISceneOperation=} [properties] Properties to set
10411
+ * @returns {vertexvis.protobuf.stream.SceneOperation} SceneOperation instance
10412
+ */
10413
+ SceneOperation.create = function create(properties) {
10414
+ return new SceneOperation(properties);
10415
+ };
10416
+
10417
+ /**
10418
+ * Encodes the specified SceneOperation message. Does not implicitly {@link vertexvis.protobuf.stream.SceneOperation.verify|verify} messages.
10419
+ * @function encode
10420
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10421
+ * @static
10422
+ * @param {vertexvis.protobuf.stream.ISceneOperation} message SceneOperation message or plain object to encode
10423
+ * @param {$protobuf.Writer} [writer] Writer to encode to
10424
+ * @returns {$protobuf.Writer} Writer
10425
+ */
10426
+ SceneOperation.encode = function encode(message, writer) {
10427
+ if (!writer)
10428
+ writer = $Writer.create();
10429
+ if (message.item != null && Object.hasOwnProperty.call(message, "item"))
10430
+ $root.vertexvis.protobuf.stream.ItemQuery.encode(message.item, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
10431
+ if (message.or != null && Object.hasOwnProperty.call(message, "or"))
10432
+ $root.vertexvis.protobuf.stream.QueryCollection.encode(message.or, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
10433
+ if (message.and != null && Object.hasOwnProperty.call(message, "and"))
10434
+ $root.vertexvis.protobuf.stream.QueryCollection.encode(message.and, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
10435
+ if (message.operationTypes != null && message.operationTypes.length)
10436
+ for (let i = 0; i < message.operationTypes.length; ++i)
10437
+ $root.vertexvis.protobuf.stream.OperationType.encode(message.operationTypes[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
10438
+ if (message.all != null && Object.hasOwnProperty.call(message, "all"))
10439
+ $root.vertexvis.protobuf.stream.AllQuery.encode(message.all, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
10440
+ if (message.point != null && Object.hasOwnProperty.call(message, "point"))
10441
+ $root.vertexvis.protobuf.stream.PointQuery.encode(message.point, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
10442
+ if (message.sceneTreeRange != null && Object.hasOwnProperty.call(message, "sceneTreeRange"))
10443
+ $root.vertexvis.protobuf.stream.SceneTreeRangeQuery.encode(message.sceneTreeRange, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();
10444
+ if (message.metadata != null && Object.hasOwnProperty.call(message, "metadata"))
10445
+ $root.vertexvis.protobuf.stream.MetadataFilterQuery.encode(message.metadata, writer.uint32(/* id 8, wireType 2 =*/66).fork()).ldelim();
10446
+ if (message.override != null && Object.hasOwnProperty.call(message, "override"))
10447
+ $root.vertexvis.protobuf.stream.OverrideQuery.encode(message.override, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
10448
+ if (message.volume != null && Object.hasOwnProperty.call(message, "volume"))
10449
+ $root.vertexvis.protobuf.stream.VolumeIntersectionQuery.encode(message.volume, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim();
10450
+ if (message.not != null && Object.hasOwnProperty.call(message, "not"))
10451
+ $root.vertexvis.protobuf.stream.QueryCollection.encode(message.not, writer.uint32(/* id 11, wireType 2 =*/90).fork()).ldelim();
10452
+ if (message.queryExpression != null && Object.hasOwnProperty.call(message, "queryExpression"))
10453
+ $root.vertexvis.protobuf.stream.QueryExpression.encode(message.queryExpression, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();
10454
+ return writer;
10455
+ };
10456
+
10457
+ /**
10458
+ * Encodes the specified SceneOperation message, length delimited. Does not implicitly {@link vertexvis.protobuf.stream.SceneOperation.verify|verify} messages.
10459
+ * @function encodeDelimited
10460
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10461
+ * @static
10462
+ * @param {vertexvis.protobuf.stream.ISceneOperation} message SceneOperation message or plain object to encode
10463
+ * @param {$protobuf.Writer} [writer] Writer to encode to
10464
+ * @returns {$protobuf.Writer} Writer
10465
+ */
10466
+ SceneOperation.encodeDelimited = function encodeDelimited(message, writer) {
10467
+ return this.encode(message, writer).ldelim();
10468
+ };
10469
+
10470
+ /**
10471
+ * Decodes a SceneOperation message from the specified reader or buffer.
10472
+ * @function decode
10473
+ * @memberof vertexvis.protobuf.stream.SceneOperation
10474
+ * @static
10475
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
10476
+ * @param {number} [length] Message length if known beforehand
10477
+ * @returns {vertexvis.protobuf.stream.SceneOperation} SceneOperation
10478
+ * @throws {Error} If the payload is not a reader or valid buffer
10479
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
10480
+ */
10481
+ SceneOperation.decode = function decode(reader, length) {
10482
+ if (!(reader instanceof $Reader))
10483
+ reader = $Reader.create(reader);
10484
+ let end = length === undefined ? reader.len : reader.pos + length, message = new $root.vertexvis.protobuf.stream.SceneOperation();
10485
+ while (reader.pos < end) {
10486
+ let tag = reader.uint32();
10487
+ switch (tag >>> 3) {
10488
+ case 1:
10489
+ message.item = $root.vertexvis.protobuf.stream.ItemQuery.decode(reader, reader.uint32());
10490
+ break;
10491
+ case 2:
10492
+ message.or = $root.vertexvis.protobuf.stream.QueryCollection.decode(reader, reader.uint32());
10493
+ break;
10494
+ case 3:
10495
+ message.and = $root.vertexvis.protobuf.stream.QueryCollection.decode(reader, reader.uint32());
10496
+ break;
10497
+ case 5:
10498
+ message.all = $root.vertexvis.protobuf.stream.AllQuery.decode(reader, reader.uint32());
10499
+ break;
10500
+ case 6:
10501
+ message.point = $root.vertexvis.protobuf.stream.PointQuery.decode(reader, reader.uint32());
10502
+ break;
10503
+ case 7:
10504
+ message.sceneTreeRange = $root.vertexvis.protobuf.stream.SceneTreeRangeQuery.decode(reader, reader.uint32());
10505
+ break;
10506
+ case 8:
10507
+ message.metadata = $root.vertexvis.protobuf.stream.MetadataFilterQuery.decode(reader, reader.uint32());
10508
+ break;
10509
+ case 9:
10510
+ message.override = $root.vertexvis.protobuf.stream.OverrideQuery.decode(reader, reader.uint32());
10511
+ break;
10512
+ case 10:
10513
+ message.volume = $root.vertexvis.protobuf.stream.VolumeIntersectionQuery.decode(reader, reader.uint32());
10514
+ break;
10515
+ case 11:
10516
+ message.not = $root.vertexvis.protobuf.stream.QueryCollection.decode(reader, reader.uint32());
10517
+ break;
10518
+ case 4:
10519
+ if (!(message.operationTypes && message.operationTypes.length))
10520
+ message.operationTypes = [];
10521
+ message.operationTypes.push($root.vertexvis.protobuf.stream.OperationType.decode(reader, reader.uint32()));
10522
+ break;
10523
+ case 12:
10524
+ message.queryExpression = $root.vertexvis.protobuf.stream.QueryExpression.decode(reader, reader.uint32());
8957
10525
  break;
8958
10526
  default:
8959
10527
  reader.skipType(tag & 7);
@@ -9098,6 +10666,11 @@ const vertexvis = $root.vertexvis = (() => {
9098
10666
  return "operationTypes." + error;
9099
10667
  }
9100
10668
  }
10669
+ if (message.queryExpression != null && message.hasOwnProperty("queryExpression")) {
10670
+ let error = $root.vertexvis.protobuf.stream.QueryExpression.verify(message.queryExpression);
10671
+ if (error)
10672
+ return "queryExpression." + error;
10673
+ }
9101
10674
  return null;
9102
10675
  };
9103
10676
 
@@ -9173,6 +10746,11 @@ const vertexvis = $root.vertexvis = (() => {
9173
10746
  message.operationTypes[i] = $root.vertexvis.protobuf.stream.OperationType.fromObject(object.operationTypes[i]);
9174
10747
  }
9175
10748
  }
10749
+ if (object.queryExpression != null) {
10750
+ if (typeof object.queryExpression !== "object")
10751
+ throw TypeError(".vertexvis.protobuf.stream.SceneOperation.queryExpression: object expected");
10752
+ message.queryExpression = $root.vertexvis.protobuf.stream.QueryExpression.fromObject(object.queryExpression);
10753
+ }
9176
10754
  return message;
9177
10755
  };
9178
10756
 
@@ -9191,6 +10769,8 @@ const vertexvis = $root.vertexvis = (() => {
9191
10769
  let object = {};
9192
10770
  if (options.arrays || options.defaults)
9193
10771
  object.operationTypes = [];
10772
+ if (options.defaults)
10773
+ object.queryExpression = null;
9194
10774
  if (message.item != null && message.hasOwnProperty("item")) {
9195
10775
  object.item = $root.vertexvis.protobuf.stream.ItemQuery.toObject(message.item, options);
9196
10776
  if (options.oneofs)
@@ -9246,6 +10826,8 @@ const vertexvis = $root.vertexvis = (() => {
9246
10826
  if (options.oneofs)
9247
10827
  object.query = "not";
9248
10828
  }
10829
+ if (message.queryExpression != null && message.hasOwnProperty("queryExpression"))
10830
+ object.queryExpression = $root.vertexvis.protobuf.stream.QueryExpression.toObject(message.queryExpression, options);
9249
10831
  return object;
9250
10832
  };
9251
10833