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

syntax = "proto3";

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

package foxglove;

// A primitive representing a 3D model file loaded from an external URL or embedded data
message ModelPrimitive {
  // Origin of model relative to reference frame
  foxglove.Pose pose = 1;

  // Scale factor to apply to the model along each axis
  foxglove.Vector3 scale = 2;

  // Solid color to use for the whole model if `override_color` is true.
  foxglove.Color color = 3;

  // Whether to use the color specified in `color` instead of any materials embedded in the original model.
  bool override_color = 4;

  // URL pointing to model file. One of `url` or `data` should be provided.
  string url = 5;

  // [Media type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of embedded model (e.g. `model/gltf-binary`). Required if `data` is provided instead of `url`. Overrides the inferred media type if `url` is provided.
  string media_type = 6;

  // Embedded model. One of `url` or `data` should be provided. If `data` is provided, `media_type` must be set to indicate the type of the data.
  bytes data = 7;
}
