text: // Auto-generated. Do not edit!
  
  // (in-package tf2_msgs.msg)
  
  
  "use strict";
  
  const _serializer = _ros_msg_utils.Serialize;
  const _arraySerializer = _serializer.Array;
  const _deserializer = _ros_msg_utils.Deserialize;
  const _arrayDeserializer = _deserializer.Array;
  const _finder = _ros_msg_utils.Find;
  const _getByteLength = _ros_msg_utils.getByteLength;
  let LookupTransformResult = require('./LookupTransformResult.js');
  let actionlib_msgs = _finder('actionlib_msgs');
  let std_msgs = _finder('std_msgs');
  
  //-----------------------------------------------------------
  
  class LookupTransformActionResult {
    constructor(initObj={}) {
      if (initObj === null) {
        // initObj === null is a special case for deserialization where we don't initialize fields
        this.header = null;
        this.status = null;
        this.result = null;
      }
      else {
        if (initObj.hasOwnProperty('header')) {
          this.header = initObj.header
        }
        else {
          this.header = new std_msgs.msg.Header();
        }
        if (initObj.hasOwnProperty('status')) {
          this.status = initObj.status
        }
        else {
          this.status = new actionlib_msgs.msg.GoalStatus();
        }
        if (initObj.hasOwnProperty('result')) {
          this.result = initObj.result
        }
        else {
          this.result = new LookupTransformResult();
        }
      }
    }
  
    static serialize(obj, buffer, bufferOffset) {
      // Serializes a message object of type LookupTransformActionResult
      // Serialize message field [header]
      bufferOffset = std_msgs.msg.Header.serialize(obj.header, buffer, bufferOffset);
      // Serialize message field [status]
      bufferOffset = actionlib_msgs.msg.GoalStatus.serialize(obj.status, buffer, bufferOffset);
      // Serialize message field [result]
      bufferOffset = LookupTransformResult.serialize(obj.result, buffer, bufferOffset);
      return bufferOffset;
    }
  
    static deserialize(buffer, bufferOffset=[0]) {
      //deserializes a message object of type LookupTransformActionResult
      let len;
      let data = new LookupTransformActionResult(null);
      // Deserialize message field [header]
      data.header = std_msgs.msg.Header.deserialize(buffer, bufferOffset);
      // Deserialize message field [status]
      data.status = actionlib_msgs.msg.GoalStatus.deserialize(buffer, bufferOffset);
      // Deserialize message field [result]
      data.result = LookupTransformResult.deserialize(buffer, bufferOffset);
      return data;
    }
  
    static getMessageSize(object) {
      let length = 0;
      length += std_msgs.msg.Header.getMessageSize(object.header);
      length += actionlib_msgs.msg.GoalStatus.getMessageSize(object.status);
      length += LookupTransformResult.getMessageSize(object.result);
      return length;
    }
  
    static datatype() {
      // Returns string type for a message object
      return 'tf2_msgs/LookupTransformActionResult';
    }
  
    static md5sum() {
      //Returns md5sum for a message object
      return 'ac26ce75a41384fa8bb4dc10f491ab90';
    }
  
    static messageDefinition() {
      // Returns full string definition for message
      return `
      # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
      
      Header header
      actionlib_msgs/GoalStatus status
      LookupTransformResult result
      
      ================================================================================
      MSG: std_msgs/Header
      # Standard metadata for higher-level stamped data types.
      # This is generally used to communicate timestamped data 
      # in a particular coordinate frame.
      # 
      # sequence ID: consecutively increasing ID 
      uint32 seq
      #Two-integer timestamp that is expressed as:
      # * stamp.sec: seconds (stamp_secs) since epoch (in Python the variable is called 'secs')
      # * stamp.nsec: nanoseconds since stamp_secs (in Python the variable is called 'nsecs')
      # time-handling sugar is provided by the client library
      time stamp
      #Frame this data is associated with
      string frame_id
      
      ================================================================================
      MSG: actionlib_msgs/GoalStatus
      GoalID goal_id
      uint8 status
      uint8 PENDING         = 0   # The goal has yet to be processed by the action server
      uint8 ACTIVE          = 1   # The goal is currently being processed by the action server
      uint8 PREEMPTED       = 2   # The goal received a cancel request after it started executing
                                  #   and has since completed its execution (Terminal State)
      uint8 SUCCEEDED       = 3   # The goal was achieved successfully by the action server (Terminal State)
      uint8 ABORTED         = 4   # The goal was aborted during execution by the action server due
                                  #    to some failure (Terminal State)
      uint8 REJECTED        = 5   # The goal was rejected by the action server without being processed,
                                  #    because the goal was unattainable or invalid (Terminal State)
      uint8 PREEMPTING      = 6   # The goal received a cancel request after it started executing
                                  #    and has not yet completed execution
      uint8 RECALLING       = 7   # The goal received a cancel request before it started executing,
                                  #    but the action server has not yet confirmed that the goal is canceled
      uint8 RECALLED        = 8   # The goal received a cancel request before it started executing
                                  #    and was successfully cancelled (Terminal State)
      uint8 LOST            = 9   # An action client can determine that a goal is LOST. This should not be
                                  #    sent over the wire by an action server
      
      #Allow for the user to associate a string with GoalStatus for debugging
      string text
      
      
      ================================================================================
      MSG: actionlib_msgs/GoalID
      # The stamp should store the time at which this goal was requested.
      # It is used by an action server when it tries to preempt all
      # goals that were requested before a certain time
      time stamp
      
      # The id provides a way to associate feedback and
      # result message with specific goal requests. The id
      # specified must be unique.
      string id
      
      
      ================================================================================
      MSG: tf2_msgs/LookupTransformResult
      # ====== DO NOT MODIFY! AUTOGENERATED FROM AN ACTION DEFINITION ======
      geometry_msgs/TransformStamped transform
      tf2_msgs/TF2Error error
      
      ================================================================================
      MSG: geometry_msgs/TransformStamped
      # This expresses a transform from coordinate frame header.frame_id
      # to the coordinate frame child_frame_id
      #
      # This message is mostly used by the 
      # <a href="http://wiki.ros.org/tf">tf</a> package. 
      # See its documentation for more information.
      
      Header header
      string child_frame_id # the frame id of the child frame
      Transform transform
      
      ================================================================================
      MSG: geometry_msgs/Transform
      # This represents the transform between two coordinate frames in free space.
      
      Vector3 translation
      Quaternion rotation
      
      ================================================================================
      MSG: geometry_msgs/Vector3
      # This represents a vector in free space. 
      # It is only meant to represent a direction. Therefore, it does not
      # make sense to apply a translation to it (e.g., when applying a 
      # generic rigid transformation to a Vector3, tf2 will only apply the
      # rotation). If you want your data to be translatable too, use the
      # geometry_msgs/Point message instead.
      
      float64 x
      float64 y
      float64 z
      ================================================================================
      MSG: geometry_msgs/Quaternion
      # This represents an orientation in free space in quaternion form.
      
      float64 x
      float64 y
      float64 z
      float64 w
      
      ================================================================================
      MSG: tf2_msgs/TF2Error
      uint8 NO_ERROR = 0
      uint8 LOOKUP_ERROR = 1
      uint8 CONNECTIVITY_ERROR = 2
      uint8 EXTRAPOLATION_ERROR = 3
      uint8 INVALID_ARGUMENT_ERROR = 4
      uint8 TIMEOUT_ERROR = 5
      uint8 TRANSFORM_ERROR = 6
      
      uint8 error
      string error_string
      
      `;
    }
  
    static Resolve(msg) {
      // deep-construct a valid message object instance of whatever was passed in
      if (typeof msg !== 'object' || msg === null) {
        msg = {};
      }
      const resolved = new LookupTransformActionResult(null);
      if (msg.header !== undefined) {
        resolved.header = std_msgs.msg.Header.Resolve(msg.header)
      }
      else {
        resolved.header = new std_msgs.msg.Header()
      }
  
      if (msg.status !== undefined) {
        resolved.status = actionlib_msgs.msg.GoalStatus.Resolve(msg.status)
      }
      else {
        resolved.status = new actionlib_msgs.msg.GoalStatus()
      }
  
      if (msg.result !== undefined) {
        resolved.result = LookupTransformResult.Resolve(msg.result)
      }
      else {
        resolved.result = new LookupTransformResult()
      }
  
      return resolved;
      }
  };
  
  module.exports = LookupTransformActionResult;
  