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

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