Quad tree search site.cc

From Minor Miracle Software
Jump to: navigation, search
/*
  * 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