// A Class to store one orientation of a polydrafter.
#ifndef ONEDRAFT_H
#define ONEDRAFT_H

#include <iostream.h>
#include <assert.h>

static const int MAX = 10;

class onedraft {
  public:
    int data[MAX][MAX][2];  // internal representation of the drafter.
      // (should be private, but I'm lazy and might access it directly)

    // *structors
    onedraft ( );
    onedraft ( const onedraft & x );
    ~onedraft ( );

    // overload = to mean "assign to"
    onedraft & operator = ( const onedraft & x );

    // overload << and >> to mean rotate
    onedraft & operator >> ( int amt );
    onedraft & operator << ( int amt );
    void dub ( ) ;

    // overload ! to mean mirror
    onedraft & operator ! (void); 

    // overload << and >> to mean input/output
    friend istream & operator >> ( istream & in ,       onedraft & x);
    friend ostream & operator << ( ostream & out, const onedraft & x);

  private:
    void clear (void);
};

// end of class declaration

#endif
