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


#ifndef ROBOT_PROTOCOL_MSGS_MESSAGE_TRAJECTORY_H
#define ROBOT_PROTOCOL_MSGS_MESSAGE_TRAJECTORY_H


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

#include <robot_protocol_msgs/ControlPoint.h>

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

  Trajectory_()
    : degree(0)
    , knotVector()
    , controlPoints()  {
    }
  Trajectory_(const ContainerAllocator& _alloc)
    : degree(0)
    , knotVector(_alloc)
    , controlPoints(_alloc)  {
  (void)_alloc;
    }



   typedef uint32_t _degree_type;
  _degree_type degree;

   typedef std::vector<double, typename std::allocator_traits<ContainerAllocator>::template rebind_alloc<double>> _knotVector_type;
  _knotVector_type knotVector;

   typedef std::vector< ::robot_protocol_msgs::ControlPoint_<ContainerAllocator> , typename std::allocator_traits<ContainerAllocator>::template rebind_alloc< ::robot_protocol_msgs::ControlPoint_<ContainerAllocator> >> _controlPoints_type;
  _controlPoints_type controlPoints;





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

}; // struct Trajectory_

typedef ::robot_protocol_msgs::Trajectory_<std::allocator<void> > Trajectory;

typedef boost::shared_ptr< ::robot_protocol_msgs::Trajectory > TrajectoryPtr;
typedef boost::shared_ptr< ::robot_protocol_msgs::Trajectory const> TrajectoryConstPtr;

template<typename ContainerAllocator1, typename ContainerAllocator2>
bool operator==(const ::robot_protocol_msgs::Trajectory_<ContainerAllocator1> & lhs, const ::robot_protocol_msgs::Trajectory_<ContainerAllocator2> & rhs)
{
  return lhs.degree == rhs.degree &&
    lhs.knotVector == rhs.knotVector &&
    lhs.controlPoints == rhs.controlPoints;
}

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


} // namespace robot_protocol_msgs

#endif // ROBOT_PROTOCOL_MSGS_MESSAGE_TRAJECTORY_H
