/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : SetElevator.h                                                 */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#ifndef _SETELEVATOR_H
#define _SETELEVATOR_H

#include "ourTypes.h"
#include "Behavior.h"
#include "MathP.h"

#define SetElevatorBehaviorName "setElevator"

/*
CLASS 
SetElevator

DESCRIPTION
Sets elevator to specified angle and leaves it there.
Will shut off if depth or pitch go out of specified envelopes.

Attribute         Type               Meaning
---------         ----               -------
elevator          Angle              Commanded elevator angle
speed             Float              Commanded speed
minDepth          Float              End if above this depth
maxDepth          Float              End if below this depth
maxPitch          Float              End if abs value of this pitch is exceeded


AUTHOR
Tom O'Reilly
*/
class SetElevator : public Behavior {

public:

  SetElevator();

  virtual ~SetElevator();

  virtual void execute();
  virtual Boolean validInput();

  virtual Boolean shouldBehaviorStart();
  
protected:

  double _angle;
  double _heading;
  double _speed;
  double _minDepth;
  double _maxDepth;
  double _maxPitch;
};



#endif
