/*
* Jesse B. Dooley
* mh42013
* Date: March 6,2000
* For: CMSC 420-0201 Spring 2000
* Prof. Michelle Hugue
* Title: Project 1
* Module: site.cc
*/
#ifndef SITE_CC
#define SITE_CC
#include "TemasBase.h"
#include "TwoDPointFloat.cc"
#include "BadSiteNameException.cc"
#include "BadAxisException.cc"
#include "BadTypeException.cc"
using namespace std;
class site {
string site_name_string; // six alpha-num characters
TwoDPointFloat Point;
char type_char;
bool visited_bool;
public:
site()
{
visited_bool = false;
} // site
site( const site &S )
{
site_name_string = S.site_name_string;
Point = S.Point;
type_char = S.type_char;
visited_bool = S.visited_bool;
} // site
~site(){}
bool material()
{
return ( type_char == 'P' || type_char == 'M' );
}
string name()
{
return site_name_string;
}
void name( string name_string ) throw (BadSiteNameException)
{
BadSiteNameException B;
B.test( name_string );
site_name_string = name_string;
} // name
float xaxis()
{
return Point.xaxis();
}
void xaxis( float xaxis_d ) throw (BadAxisException)
{
BadAxisException B;
B.test( xaxis_d );
Point.xaxis( xaxis_d );
} // xaxis
float yaxis()
{
return Point.yaxis();
}
void yaxis( float yaxis_d ) throw (BadAxisException)
{
BadAxisException B;
B.test( yaxis_d );
Point.yaxis( yaxis_d );
} // yaxis
void point( TwoDPointFloat P )
{
Point = P;
}
TwoDPointFloat point()
{
return Point;
}
void type( char C ) throw (BadTypeException)
{
BadTypeException B;
B.test( C );
type_char = C;
}
char type()
{
return type_char;
}
void visited( bool T )
{
visited_bool = T;
}
bool visited()
{
return visited_bool;
}
// overloads
bool operator==( const site &E )
{
return (site_name_string == E.site_name_string );
} // ==
bool operator==( const string &E )
{
return (site_name_string == E );
} // ==
bool operator==( const TwoDPointFloat &A )
{
return ( Point == A );
} // <
void operator=( const site &S )
{
site_name_string = S.site_name_string;
Point = S.Point;
type_char = S.type_char;
} // =
bool operator!=( const site &E )
{
return (site_name_string != E.site_name_string);
} // !=
bool operator!=( const TwoDPointFloat &A )
{
return ( Point != A );
} // <
bool operator<( const site &E )
{
return (site_name_string < E.site_name_string);
} // <
bool operator<( const TwoDPointFloat &A )
{
return ( Point < A );
} // <
bool operator<=( const TwoDPointFloat &A )
{
return ( Point <= A );
} // <
bool operator>( const site &E )
{
return (site_name_string > E.site_name_string);
} // >
bool operator>( const TwoDPointFloat &A )
{
return ( Point > A );
} // <
bool operator>=( const TwoDPointFloat &A )
{
return ( Point >= A );
} // <
void OutPut()
{
cout << site_name_string;
cout << " of type ";
cout << type_char;
cout << " at ";
Point.PRINT();
// cout << endl;
}
};
#endif // site.cc