#ifndef _BOW_H_
#define _BOW_H_

#include "ornament.h"

class Bow : public Ornament
{
 private:
  int _length;
  short _direction;
  short _delta;


 public:
  Bow();
  Bow(const Bow&);
  Bow(int);
  Bow(int,int);
  Bow(int,int,int);

  void flip();
  int length() const { return _length; }
  int direction() const { return _direction; }
  bool up() const { return (_direction==UP); }
  bool down() const { return (_direction==DOWN); }
  int delta() const { return _delta; }
  void setLength(int);
  void setDirection(int);
  void setUp();
  void setDown();
  void setDelta(int);


  virtual ostream & print(int,ostream&) const;
  virtual void flush(const char*) const;
  virtual Element * copy() const;

  static Element * load(char*,ifstream*&,Element*);
};

#endif
