// generated from rosidl_adapter/resource/msg.idl.em
// with input from visualization_msgs/msg/Marker.msg
// generated code does not contain a copyright notice

#include "builtin_interfaces/msg/Duration.idl"
#include "geometry_msgs/msg/Point.idl"
#include "geometry_msgs/msg/Pose.idl"
#include "geometry_msgs/msg/Vector3.idl"
#include "sensor_msgs/msg/CompressedImage.idl"
#include "std_msgs/msg/ColorRGBA.idl"
#include "std_msgs/msg/Header.idl"
#include "visualization_msgs/msg/MeshFile.idl"
#include "visualization_msgs/msg/UVCoordinate.idl"

module visualization_msgs {
  module msg {
    module Marker_Constants {
      const int32 ARROW = 0;
      const int32 CUBE = 1;
      const int32 SPHERE = 2;
      const int32 CYLINDER = 3;
      const int32 LINE_STRIP = 4;
      const int32 LINE_LIST = 5;
      const int32 CUBE_LIST = 6;
      const int32 SPHERE_LIST = 7;
      const int32 POINTS = 8;
      const int32 TEXT_VIEW_FACING = 9;
      const int32 MESH_RESOURCE = 10;
      const int32 TRIANGLE_LIST = 11;
      const int32 ADD = 0;
      const int32 MODIFY = 0;
      const int32 DELETE = 2;
      const int32 DELETEALL = 3;
    };
    @verbatim (language="comment", text=
      "See:" "\n"
      " - http://www.ros.org/wiki/rviz/DisplayTypes/Marker" "\n"
      " - http://www.ros.org/wiki/rviz/Tutorials/Markers%3A%20Basic%20Shapes" "\n"
      "" "\n"
      "for more information on using this message with rviz.")
    struct Marker {
      @verbatim (language="comment", text=
        "Header for timestamp and frame id.")
      std_msgs::msg::Header header;

      @verbatim (language="comment", text=
        "Namespace in which to place the object." "\n"
        "Used in conjunction with id to create a unique name for the object.")
      string ns;

      @verbatim (language="comment", text=
        "Object ID used in conjunction with the namespace for manipulating and deleting the object later.")
      int32 id;

      @verbatim (language="comment", text=
        "Type of object.")
      int32 type;

      @verbatim (language="comment", text=
        "Action to take; one of:" "\n"
        " - 0 add/modify an object" "\n"
        " - 1 (deprecated)" "\n"
        " - 2 deletes an object (with the given ns and id)" "\n"
        " - 3 deletes all objects (or those with the given ns if any)")
      int32 action;

      @verbatim (language="comment", text=
        "Pose of the object with respect the frame_id specified in the header.")
      geometry_msgs::msg::Pose pose;

      @verbatim (language="comment", text=
        "Scale of the object; 1,1,1 means default (usually 1 meter square).")
      geometry_msgs::msg::Vector3 scale;

      @verbatim (language="comment", text=
        "Color of the object; in the range:")
      @unit (value="0.0-1.0")
      std_msgs::msg::ColorRGBA color;

      @verbatim (language="comment", text=
        "How long the object should last before being automatically deleted." "\n"
        "0 indicates forever.")
      builtin_interfaces::msg::Duration lifetime;

      @verbatim (language="comment", text=
        "If this marker should be frame-locked, i.e. retransformed into its frame every timestep.")
      boolean frame_locked;

      @verbatim (language="comment", text=
        "Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, etc.)")
      sequence<geometry_msgs::msg::Point> points;

      @verbatim (language="comment", text=
        "Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, etc.)" "\n"
        "The number of colors provided must either be 0 or equal to the number of points provided." "\n"
        "NOTE: alpha is not yet used")
      sequence<std_msgs::msg::ColorRGBA> colors;

      @verbatim (language="comment", text=
        "Texture resource is a special URI that can either reference a texture file in" "\n"
        "a format acceptable to (resource retriever)" "\n"
        "or an embedded texture via a string matching the format:" "\n"
        "  \"embedded://texture_name\"")
      @unit (value="https://index.ros.org/p/resource_retriever/")
      string texture_resource;

      @verbatim (language="comment", text=
        "An image to be loaded into the rendering engine as the texture for this marker." "\n"
        "This will be used iff texture_resource is set to embedded.")
      sensor_msgs::msg::CompressedImage texture;

      @verbatim (language="comment", text=
        "Location of each vertex within the texture; in the range:")
      @unit (value="0.0-1.0")
      sequence<visualization_msgs::msg::UVCoordinate> uv_coordinates;

      @verbatim (language="comment", text=
        "Only used for text markers")
      string text;

      @verbatim (language="comment", text=
        "Only used for MESH_RESOURCE markers." "\n"
        "Similar to texture_resource, mesh_resource uses resource retriever to load a mesh." "\n"
        "Optionally, a mesh file can be sent in-message via the mesh_file field. If doing so," "\n"
        "use the following format for mesh_resource:" "\n"
        "  \"embedded://mesh_name\"")
      string mesh_resource;

      visualization_msgs::msg::MeshFile mesh_file;

      boolean mesh_use_embedded_materials;
    };
  };
};
