// Generated by https://github.com/foxglove/schemas

syntax = "proto3";

import "foxglove/PackedElementField.proto";
import "foxglove/Pose.proto";
import "foxglove/Vector2.proto";
import "google/protobuf/timestamp.proto";

package foxglove;

// A 2D grid of data
message Grid {
  // Timestamp of grid
  google.protobuf.Timestamp timestamp = 1;

  // Frame of reference
  string frame_id = 2;

  // Origin of grid's corner relative to frame of reference; grid is positioned in the x-y plane relative to this origin
  foxglove.Pose pose = 3;

  // Number of grid columns
  fixed32 column_count = 4;

  // Size of single grid cell along x and y axes, relative to `pose`
  foxglove.Vector2 cell_size = 5;

  // Number of bytes between rows in `data`
  fixed32 row_stride = 6;

  // Number of bytes between cells within a row in `data`
  fixed32 cell_stride = 7;

  // Fields in `data`
  repeated foxglove.PackedElementField fields = 8;

  // Grid cell data, interpreted using `fields`, in row-major (y-major) order
  bytes data = 9;
}
