// $Source: /usr/local/SimSoft/SoftShop/XGraph/Space/Location.h,v $
// $Revision: 1.20 $
// $Author: baum $
// $Date: 2001/11/29 15:52:24 $
//
// Login name of the user who locked the revision
// $Locker:  $
// Tag name used to checkout the file
// $Name: Release-20 $
// State assigned to revision
// $State: Exp $
//
//
// $Log: Location.h,v $
// Revision 1.20  2001/11/29 15:52:24  baum
// -In Kalender.cpp und Kalender.h Handsteuerung eingebaut
//

#ifndef _LOCATION_H
#define _LOCATION_H  1

#include <iostream.h>

#include "Vec3D.h"

#ifdef _LOCATION_CPP
#  undef _impexp
#  define _impexp __declspec(dllexport)
#elif defined BUILD_XGRAPH_DLL
#  undef _impexp
#  define _impexp
#else
#  undef _impexp
#  define _impexp __declspec(dllimport)
#endif

#if defined __GNUG__ || defined __hpux
#  undef _impexp
#  define _impexp
#endif

//==================================================================
//	Class-Header
//	for class Location
//==================================================================

//##ModelId=4030D77E0186
class _impexp Location
  {
  public:
    // constructors
	//##ModelId=4030D77E0187
    Location (const Vec3D& pos = Vec3D (),
              const Vec3D& x = EX, const Vec3D& z = EZ);
	//##ModelId=4030D77E0197
    Location (const Location&);

    // destructor
	//##ModelId=4030D77E0199
    ~Location ();

    // Zuweisungsoperator
	//##ModelId=4030D77E019A
    Location& operator = (const Location&);

    // equality operators
	//##ModelId=4030D77E019C
    bool operator == (const Location&) const;
	//##ModelId=4030D77E01A7
    bool operator != (const Location&) const;

    // IO-Funktionen
	//##ModelId=4030D77E01AA
    ostream& print (ostream&) const;
	//##ModelId=4030D77E01B6
    void stream (ostream&, unsigned spaces = 0) const;

    // data members
    Vec3D Pos, X, Z;

  protected:

  private:

  };	// class Location


inline ostream& operator << (ostream& o, const Location& l) {
  return l.print (o);
}

#endif // !_LOCATION_H

