syntax = "proto2";
package gazebo.msgs;

/// \ingroup gazebo_msgs
/// \interface Geometry
/// \brief Information about a geometry element


import "boxgeom.proto";
import "cylindergeom.proto";
import "spheregeom.proto";
import "planegeom.proto";
import "imagegeom.proto";
import "heightmapgeom.proto";
import "meshgeom.proto";
import "vector3d.proto";
import "polylinegeom.proto";

message Geometry
{
  enum Type
  {
    BOX          = 1;
    CYLINDER     = 2;
    SPHERE       = 3;
    PLANE        = 4;
    IMAGE        = 5;
    HEIGHTMAP    = 6;
    MESH         = 7;
    TRIANGLE_FAN = 8;
    LINE_STRIP   = 9;
    POLYLINE     = 10;
    EMPTY        = 11;
  }

  optional Type type                = 1;
  optional BoxGeom box              = 2;
  optional CylinderGeom cylinder    = 3;
  optional PlaneGeom plane          = 4;
  optional SphereGeom sphere        = 5;
  optional ImageGeom image          = 6;
  optional HeightmapGeom heightmap  = 7;
  optional MeshGeom      mesh       = 8;

  repeated Vector3d points          = 9;
  repeated Polyline polyline        = 10;
}
