// Generated by gencpp from file robot_protocol_msgs/Edge.msg
// DO NOT EDIT!


#ifndef ROBOT_PROTOCOL_MSGS_MESSAGE_EDGE_H
#define ROBOT_PROTOCOL_MSGS_MESSAGE_EDGE_H


#include <string>
#include <vector>
#include <memory>

#include <robot_protocol_msgs/Trajectory.h>
#include <robot_protocol_msgs/Action.h>

namespace robot_protocol_msgs
{
template <class ContainerAllocator>
struct Edge_
{
  typedef Edge_<ContainerAllocator> Type;

  Edge_()
    : edgeId()
    , sequenceId(0)
    , edgeDescription()
    , released(false)
    , startNodeId()
    , endNodeId()
    , maxSpeed(0.0)
    , maxHeight(0.0)
    , minHeight(0.0)
    , orientation(0.0)
    , orientationType()
    , direction()
    , rotationAllowed(false)
    , maxRotationSpeed(0.0)
    , trajectory()
    , length(0.0)
    , actions()  {
    }
  Edge_(const ContainerAllocator& _alloc)
    : edgeId(_alloc)
    , sequenceId(0)
    , edgeDescription(_alloc)
    , released(false)
    , startNodeId(_alloc)
    , endNodeId(_alloc)
    , maxSpeed(0.0)
    , maxHeight(0.0)
    , minHeight(0.0)
    , orientation(0.0)
    , orientationType(_alloc)
    , direction(_alloc)
    , rotationAllowed(false)
    , maxRotationSpeed(0.0)
    , trajectory(_alloc)
    , length(0.0)
    , actions(_alloc)  {
  (void)_alloc;
    }



   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _edgeId_type;
  _edgeId_type edgeId;

   typedef int32_t _sequenceId_type;
  _sequenceId_type sequenceId;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _edgeDescription_type;
  _edgeDescription_type edgeDescription;

   typedef uint8_t _released_type;
  _released_type released;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _startNodeId_type;
  _startNodeId_type startNodeId;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _endNodeId_type;
  _endNodeId_type endNodeId;

   typedef double _maxSpeed_type;
  _maxSpeed_type maxSpeed;

   typedef double _maxHeight_type;
  _maxHeight_type maxHeight;

   typedef double _minHeight_type;
  _minHeight_type minHeight;

   typedef double _orientation_type;
  _orientation_type orientation;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _orientationType_type;
  _orientationType_type orientationType;

   typedef std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> _direction_type;
  _direction_type direction;

   typedef uint8_t _rotationAllowed_type;
  _rotationAllowed_type rotationAllowed;

   typedef double _maxRotationSpeed_type;
  _maxRotationSpeed_type maxRotationSpeed;

   typedef  ::robot_protocol_msgs::Trajectory_<ContainerAllocator>  _trajectory_type;
  _trajectory_type trajectory;

   typedef double _length_type;
  _length_type length;

   typedef std::vector< ::robot_protocol_msgs::Action_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::robot_protocol_msgs::Action_<ContainerAllocator> >> _actions_type;
  _actions_type actions;



// reducing the odds to have name collisions with Windows.h 
#if defined(_WIN32) && defined(GLOBAL)
  #undef GLOBAL
#endif
#if defined(_WIN32) && defined(TANGENTIAL)
  #undef TANGENTIAL
#endif


  static const std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> GLOBAL;
  static const std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>> TANGENTIAL;

  typedef boost::shared_ptr< ::robot_protocol_msgs::Edge_<ContainerAllocator> > Ptr;
  typedef boost::shared_ptr< ::robot_protocol_msgs::Edge_<ContainerAllocator> const> ConstPtr;

}; // struct Edge_

typedef ::robot_protocol_msgs::Edge_<std::allocator<void> > Edge;

typedef boost::shared_ptr< ::robot_protocol_msgs::Edge > EdgePtr;
typedef boost::shared_ptr< ::robot_protocol_msgs::Edge const> EdgeConstPtr;

// constants requiring out of line definition

   
   template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>
      Edge_<ContainerAllocator>::GLOBAL =
        
          "GLOBAL"
        
        ;
   

   
   template<typename ContainerAllocator> const std::basic_string<char, std::char_traits<char>, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<char>>
      Edge_<ContainerAllocator>::TANGENTIAL =
        
          "TANGENTIAL"
        
        ;
   


template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_protocol_msgs::Edge_<ContainerAllocator1> & lhs, const ::robot_protocol_msgs::Edge_<ContainerAllocator2> & rhs)
{
  return lhs.edgeId == rhs.edgeId &&
    lhs.sequenceId == rhs.sequenceId &&
    lhs.edgeDescription == rhs.edgeDescription &&
    lhs.released == rhs.released &&
    lhs.startNodeId == rhs.startNodeId &&
    lhs.endNodeId == rhs.endNodeId &&
    lhs.maxSpeed == rhs.maxSpeed &&
    lhs.maxHeight == rhs.maxHeight &&
    lhs.minHeight == rhs.minHeight &&
    lhs.orientation == rhs.orientation &&
    lhs.orientationType == rhs.orientationType &&
    lhs.direction == rhs.direction &&
    lhs.rotationAllowed == rhs.rotationAllowed &&
    lhs.maxRotationSpeed == rhs.maxRotationSpeed &&
    lhs.trajectory == rhs.trajectory &&
    lhs.length == rhs.length &&
    lhs.actions == rhs.actions;
}

template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator!=(const ::robot_protocol_msgs::Edge_<ContainerAllocator1> & lhs, const ::robot_protocol_msgs::Edge_<ContainerAllocator2> & rhs)
{
  return !(lhs == rhs);
}


} // namespace robot_protocol_msgs

#endif // ROBOT_PROTOCOL_MSGS_MESSAGE_EDGE_H
