/*
 $Id: drivers.cc,v 1.1.1.1 1996/10/02 10:35:40 roitzsch Exp $
 (C)opyright 1996 by Konrad-Zuse-Center, Berlin
 All rights reserved.
 Part of the Kaskade distribution
*/

#include "drivers.h"  
#include "driversimp.h"  

//-------------------------------------------------------------------------



PSDriver:: PSDriver() { imp = new PSDriverImp(); }
PSDriver::~PSDriver() { delete imp; }

int PSDriver:: Init(GRAPHIC* graph, float size) { return imp->Init(graph,size); }
int PSDriver:: OpenPort(GRAPHIC *graph)        { return imp->OpenPort(graph); }
int PSDriver:: Color(int col_no, int rVal, int gVal, int bVal)
			{ return imp->Color( col_no, rVal, gVal, bVal); }

int PSDriver:: Fill(GRAPHIC *graph, float* x, float* y, int n)
    			{ return imp->Fill(graph, x, y, n); }
int PSDriver:: PLine(GRAPHIC *graph, float* x, float* y, int n)
    			{ return imp->PLine(graph, x, y, n); }
int PSDriver:: PMarker(GRAPHIC *graph, float* x, float* y, int n)
    			{ return imp->PMarker(graph, x, y, n); }

int PSDriver:: Fill(GRAPHIC *graph, double* x, double* y, int n)
    			{ return imp->Fill(graph, x, y, n); }
int PSDriver:: PLine(GRAPHIC *graph, double* x, double* y, int n)
    			{ return imp->PLine(graph, x, y, n); }
int PSDriver:: PMarker(GRAPHIC *graph, double* x, double* y, int n)
    			{ return imp->PMarker(graph, x, y, n); }

int PSDriver:: Settings(GRAPHIC *graph, int type, int iVal)
	    	{ return imp->Settings(graph, type, iVal); }
int PSDriver:: Settings(GRAPHIC *graph, int type, char* str)
    		{ return imp->Settings(graph, type, str); }
int PSDriver:: Text(GRAPHIC *graph, double x, double y, char *s)
    		{ return imp->Text(graph, x, y, s); }
int PSDriver:: NewPict(GRAPHIC *graph) 	{ return imp->NewPict(graph); }
int PSDriver:: Close  (GRAPHIC *graph)		{ return imp->Close(graph); }
void PSDriver:: Clipping(GRAPHIC *graph)	{ imp->Clipping(graph); }

//-------------------------------------------------------------------------


XDriver:: XDriver() { imp = new XDriverImp(); }
XDriver::~XDriver() { delete imp; }

int XDriver:: Init(GRAPHIC* graph, float size) { return imp->Init(graph,size); }
int XDriver:: OpenPort(GRAPHIC *graph)         { return imp->OpenPort(graph); }
int XDriver:: Color(int col_no, int rVal, int gVal, int bVal)
	    	{ return imp->Color(col_no, rVal, gVal, bVal); }

int XDriver:: Fill(GRAPHIC *graph, float* x, float* y, int n)
	    	{ return imp->Fill(graph, x, y, n); }
int XDriver:: PLine(GRAPHIC *graph, float* x, float* y, int n)
	    	{ return imp->PLine(graph, x, y, n); }
int XDriver:: PMarker(GRAPHIC *graph, float* x, float* y, int n)
	    	{ return imp->PMarker(graph, x, y, n); }

int XDriver:: Fill(GRAPHIC *graph, double* x, double* y, int n)
	    	{ return imp->Fill(graph, x, y, n); }
int XDriver:: PLine(GRAPHIC *graph, double* x, double* y, int n)
	    	{ return imp->PLine(graph, x, y, n); }
int XDriver:: PMarker(GRAPHIC *graph, double* x, double* y, int n)
	    	{ return imp->PMarker(graph, x, y, n); }

int XDriver:: Settings(GRAPHIC *graph, int type, int iVal)
	    	{ return imp->Settings(graph, type, iVal); }
int XDriver:: Settings(GRAPHIC *graph, int type, char* str)
	    	{ return imp->Settings(graph, type, str); }

int XDriver:: Text(GRAPHIC *graph, double x, double y, char *s)
	    	{ return imp->Text(graph, x, y, s); }
int XDriver:: NewPict(GRAPHIC *graph) 	{ return imp->NewPict(graph); }
int XDriver:: Close(GRAPHIC *graph)     	{ return imp->Close(graph); }
int XDriver:: Gin (GRAPHIC *graph, int geo, void* x1koordAdr, 
		       void* y1koordAdr, void* x2koordAdr, void* y2koordAdr)
	    		{ return imp->Gin (graph, geo, x1koordAdr, 
				    y1koordAdr, x2koordAdr, y2koordAdr); }
int XDriver:: Event (GRAPHIC *graph, int* typAdr, int* buttonAdr, 
			 void* xkoordAdr, void* ykoordAdr, int* chAdr)
	    		{ return imp->Event (graph, typAdr, buttonAdr, 
				      xkoordAdr,  ykoordAdr, chAdr); }
int XDriver:: Wait (GRAPHIC* graph, int* typAdr, int* buttonAdr, 
			void* xkoordAdr, void* ykoordAdr, int* chAdr)
	    		{ return imp->Wait (graph, typAdr, buttonAdr, 
				     xkoordAdr, ykoordAdr, chAdr); }
int XDriver:: String (GRAPHIC *graph, char* string, int* length)
    			{ return imp->String (graph, string, length); }
void XDriver:: geometric(GRAPHIC *graph, int geo, coor org, coor vec)
    			{ imp->geometric(graph, geo, org, vec); }

void XDriver:: FlushDisplay()  	{ imp->FlushDisplay(); }
int  XDriver:: SelFont(GRAPHIC *graph)	{ return imp->SelFont(graph); }
