// $Source: /usr/local/SimSoft/Sfx3D/src/gsl/platz.h,v $
// $Revision: 1.2 $
// $Author: baum $
// $Date: 2001/11/29 15:18:09 $
//
// Login name of the user who locked the revision
// $Locker:  $
// Tag name used to checkout the file
// $Name:  $
// State assigned to revision
// $State: Exp $
//
//
// $Log: platz.h,v $
// Revision 1.2  2001/11/29 15:18:09  baum
// -Realzeitsteuerung eingebaut
// -Handsteuerung eingebaut
//

#ifndef _PLATZ_H
#define _PLATZ_H

#include "Angle.h"
#include "Vec3D.h"

#ifdef _PLATZ_CPP
#  undef _impexp
#  define _impexp __declspec(dllexport)
#elif defined BUILD_MAIN_DLL
#  undef _impexp
#  define _impexp
#else
#  undef _impexp
#  define _impexp __declspec(dllimport)
#endif

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

#ifndef _TRANSP_H
  class typTransportEinheit;
#endif

class typBaustein;

//---------------------------------------------------------
// class typPlatz
//---------------------------------------------------------

class _impexp typPlatz {
  public:
    typPlatz  (unsigned nr, const Vec3D& relKoord, typBaustein *zBst);
    ~typPlatz ();

    unsigned       Nummer        () const;
    //unsigned		 GreiferId		(unsigned neueId = NULL); //Norman 21.01.02 Wird bisher nur für den Mehrfachlader verwendet um mehrere Palettenplätze einem Hubarm zuordnen zu können
    Vec3D          Position      () const;
    typBaustein*   Baustein      () const;
  
    typTransportEinheit* TransportEinheit    () const;
    void           setTransportEinheit (typTransportEinheit *zPTE);

    typTransportEinheit* Buchung       () const;
    void           setBuchung    (typTransportEinheit *zw);

    bool           isVerfuegbar  () const;
    //Lars
    void          movePosition      (Vec3D& v);
    
  private:
    unsigned       ObjNummer;
    //unsigned		 ObjGreiferId; //Norman 21.01.02 Wird bisher nur für den Mehrfachlader verwendet um mehrere Palettenplätze einem Hubarm zuordnen zu können
    //const Vec3D    ObjRelKoord;
    Vec3D    ObjRelKoord;
    typTransportEinheit* ObjBuchung;
    typTransportEinheit* ObjTransportEinheit;
    typBaustein*   ObjBaustein;
};

#endif /* _PLATZ_H */
