#ifndef INCLUDE_NAST_CONFIG_H
#define INCLUDE_NAST_CONFIG_H

//-----------------------------------------------------------------------------
//  NastConfig.h
//-----------------------------------------------------------------------------
//
//  Copyright (C) 1998 Technische Universitaet Muenchen, Germany
//                   written by Bernhard Brueck
//
//  This file is part of Nast++
//
//-----------------------------------------------------------------------------
//  In NastConfig.h werden alle Einstellungen zur bedingten Compilierung
//  von Programmteilen festgelegt. 
//  Dieses File sollte immer als erste includiert werden.
//  Wenn neue Optionen hinzugefuegt wird, muss man noch in NastConfig.cpp
//  die Funktion NastConfigString ergaenzen, damit eine Ausgabe der 
//  Konfiguration als string mit NastConfigString() moeglich wird.
//-----------------------------------------------------------------------------
//  Aenderungen:
//     


//-----------------------------------------------------------------------------
//  folgende defines aus config.h holen
//  NAST_VERSION_MINOR, NAST_VERSION_MAJOR, NAST_VERSION
//  NAST_DEBUG, NAST_DEBUG_INDEX, NAST_ENABLE_DUMP, NAST_ENABLE_DUMP_VISUAL
//  config.h darf aber nur beim sollte aber nur zum uebersetzen der 
//  library verwendet werden und nicht wenn diese nur verwendet wird.
//  Es gibt sonst Probleme mit "make distclean". Ausserdem lassen sich
//  damit im eigenen Code die Sachen unabhaengig von der Bibliothek
//  ein- und ausschalten.
//-----------------------------------------------------------------------------

#ifdef _MSC_VER
#  include "../WinNT/config.h"
#else
#  ifdef NAST_BUILD_LIB
#      include "config.h"
#  endif
#endif

//-----------------------------------------------------------------------------
//  Tests zur Laufzeit
//-----------------------------------------------------------------------------
//  die Tests zur Laufzeit werden in nur in der Debugversion verwendet
#ifdef NAST_DEBUG
#  define NAST_USE_ASSERT              //  schaltet NAST_ASSERT(...) an
#  define NAST_USE_ASSERT_VALID        //  schaltet NAST_ASSERT_VALID(...) an
#  define NAST_USE_WARNING	     //  schaltet NAST_WARNING(...) und
#endif

#ifdef NAST_DEBUG_INDEX
#  define NAST_USE_ASSERT_INDEX	     //  schaltet NAST_ASSERT_INDEX(...) an
#endif

//-----------------------------------------------------------------------------
//   Ausgabe von Debuginformationen
//-----------------------------------------------------------------------------
//  die Ausgabe mit den Debugmacros wird nur in der Debugversion 
//  verwendet
#ifdef NAST_ENABLE_DUMP
#  define NAST_USE_DUMP_MESSAGE 	     //  schaltet NAST_DUMP_MESSAGE(...) an
#  define NAST_USE_DUMP_POSITION       //  schaltet NAST_DUMP_POSITION(...) an
#  define NAST_USE_DUMP_VARIABLE       //  schaltet NAST_DUMP_VARIABLE(...) an
#  define NAST_USE_BREAK
#endif

#ifdef NAST_ENABLE_DUMP_VISUAL
#  define NAST_USE_DUMP_VISUAL         //  schaltet NAST_DUMP_VISUAL_...(...) an
#endif

//-----------------------------------------------------------------------------
//   Einstellungen fuer Debugausgaben
//-----------------------------------------------------------------------------
// NAST_DUMP_VISUAL_CONTEXT legt fest welcher Context bei den 

#define NAST_DUMP_VISUAL_CONTEXT CNastVisualContextGnuplot
// #define NAST_DUMP_OUTPUT_CONTEXT CNastOutputContextIDL

//-----------------------------------------------------------------------------
//   Genauigkeit 
//-----------------------------------------------------------------------------
//  zwei Punkte deren Koordinaten sich um weniger als NAST_GEMETRIE_EPS 
//  unterscheiden werden als identisch betrachtet

#define NAST_GEOMETRIE_EPS 0.0000001

//-----------------------------------------------------------------------------
//  die folgenden Funktionen sollten evtl. weiter raus
//-----------------------------------------------------------------------------
// NastConfig()  liefert String mit Konfiguration
// NastVersion() liefert String mit Version der Library

const char* NastConfigString();
const char* NastVersionString();

#endif //  INCLUDE_NAST_CONFIG_H  

