// $Source: /usr/local/SimSoft/SoftShop/XGraph/Space/Wrap.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: Wrap.h,v $
// Revision 1.20  2001/11/29 15:52:24  baum
// -In Kalender.cpp und Kalender.h Handsteuerung eingebaut
//

#ifndef _WRAP_H
#define _WRAP_H  1

#include <iostream.h>

#include "Vec3D.h"
#include "Location.h"

#ifdef _WRAP_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 WrapBox
//==================================================================

//##ModelId=4030D77B032E
class _impexp WrapBox
  {
  public:
    // constructors
	//##ModelId=4030D77B032F
    WrapBox ();
	//##ModelId=4030D77B0330
    WrapBox (const Vec3D& min, const Vec3D& max);
	//##ModelId=4030D77B033E
    WrapBox (const WrapBox&);

    // destructor
	//##ModelId=4030D77B0340
    ~WrapBox ();

    //Zuweisungsoperator
	//##ModelId=4030D77B0341
    WrapBox& operator = (const WrapBox&);

    // reset WrapBox to DBL_MAX bzw. -DBL_MAX
	//##ModelId=4030D77B034B
    void reset ();

    // NOT und VOID* -Operatoren
	//##ModelId=4030D77B034C
    bool operator ! () const;
	//##ModelId=4030D77B034E
    operator void* () const;

    //IO-Funktionen
	//##ModelId=4030D77B0350
    void stream (ostream&) const;

    // compare this with WrapBox/Vec and set new Vals
	//##ModelId=4030D77B035C
    WrapBox& adjust (const WrapBox&);
	//##ModelId=4030D77B035E
    WrapBox& adjust (const Vec3D&);

    // sort Min & Max
	//##ModelId=4030D77B036C
    WrapBox& sort ();

    // data members
    Vec3D Min, Max;

  protected:

  private:

  };	// class WrapBox

extern const WrapBox _impexp EmptyWrap;
  
#endif // !_WRAP_H

