// Walk and kick: Actuator variables
// Author: Philipp Allgeuer <pallgeuer@ais.uni-bonn.de>
 
 // Ensure header is only included once
#ifndef WAK_ACTUATOR_VARS_H
#define WAK_ACTUATOR_VARS_H

// Includes
#include <walk_and_kick/wak_common.h>

// Walk and kick namespace
namespace walk_and_kick
{
	/**
	* @class ActuatorVars
	* 
	* @brief An interface class for encapsulating all of the data that the walk and kick behaviour states should command.
	* 
	* This class is generated by WAKBehState and its derived classes, and used by WAKRosInterface to generate the ROS
	* outputs of the walk and kick node.
	**/
	class ActuatorVars
	{
	public:
		// Constructor
		ActuatorVars() { reset(); }

		// Reset function
		void reset();

		// Member variables
		bool halt;            // Do not walk if this is true, otherwise do
		Vec3f GCV;            // NimbRo convention: x forwards, y left, z CCW
		bool doKick;          // Trigger a kick if this is true
		bool rightKick;       // The foot to kick with if DoKick is true (true => right foot, false => left foot)
		DiveDirection doDive; // Trigger a particular dive motion if this is not DD_NONE
		float gazeYaw;        // Positive is CCW (rotation about positive z-axis)
		float gazePitch;      // Positive is downward (rotation about positive y-axis)
	};
}

#endif
// EOF