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

syntax = "proto3";

import "foxglove/Color.proto";
import "foxglove/Point3.proto";
import "foxglove/Pose.proto";

package foxglove;

// A primitive representing a set of triangles or a surface tiled by triangles
message TriangleListPrimitive {
  // Origin of triangles relative to reference frame
  foxglove.Pose pose = 1;

  // Vertices to use for triangles, interpreted as a list of triples (0-1-2, 3-4-5, ...)
  repeated foxglove.Point3 points = 2;

  // Solid color to use for the whole shape. One of `color` or `colors` must be provided.
  foxglove.Color color = 3;

  // Per-vertex colors (if specified, must have the same length as `points`). One of `color` or `colors` must be provided.
  repeated foxglove.Color colors = 4;

  // Indices into the `points` and `colors` attribute arrays, which can be used to avoid duplicating attribute data.
  // 
  // If omitted or empty, indexing will not be used. This default behavior is equivalent to specifying [0, 1, ..., N-1] for the indices (where N is the number of `points` provided).
  repeated fixed32 indices = 5;
}
