#ifndef INCLUDE_NASTVISUALCONTEXT_H
#define INCLUDE_NASTVISUALCONTEXT_H

//-----------------------------------------------------------------------------
//  NastVisualContext.h
//-----------------------------------------------------------------------------
//
//  Copyright (C) 1998 Technische Universitaet Muenchen, Germany
//                   written by Bernhard Brueck
//
//  This file is part of Nast++
//
//-----------------------------------------------------------------------------
//  CNastVisualContext ist die Schnittstelle fuer Visualisierungen zur 
//  Laufzweit. Bei jeder Visualisierung kann eine Kommentarzeile 
//  angegeben werden.
//  Ausserdem muss es moeglich sein folgende Strukturen zu Visualisieren:
//     Y-Werte 
//     X-Y-Werte 
//     Gitter
//  Bei allen Visualisierungen ist die zusaetzliche Angabe eines Zeitpunkts 
//  moeglich.
//-----------------------------------------------------------------------------
//  Aenderungen:
//     

#include "NastConfig.h"
#include "NastObject.h"

template<class T> class CNastArray;
class CNastGrid2d;
class CNastStaggeredGrid2d;

class CNastVisualContext : public CNastObject
{
public:
    // ------------------------------------------------------------------------
    //                    pure virtuelle Memberfunktionen
    // ------------------------------------------------------------------------
    virtual void show( const CNastArray<double> &arrY, 
        	       const char* szComment = 0,
        	       double time = 0.0        ) = 0;

    virtual void show( const CNastArray<int> &arrY, 
        	       const char* szComment = 0,
        	       double time = 0.0        ) = 0;

    virtual void show( const CNastArray<double> &arrY, 
        	       const CNastArray<double> &arrX,
        	       const char* szComment = 0,
        	       double time = 0.0        ) = 0;

    virtual void show( const CNastGrid2d &grid, 
        	       const char* szComment = 0,
        	       double time = 0.0        ) = 0;

    virtual void show( const CNastStaggeredGrid2d &grid,
        	       const char* szComment = 0,
        	       double time = 0.0        ) = 0;
};
#endif // INCLUDE_NASTVISUALCONTEXT_H
 

