
#define VIRTUAL

// File		Graphic3d_GraphicDriver_6.cxx
// Created	Mardi 28 janvier 1997
// Author	CAL
//      02.15.100 : JR : Clutter

//-Copyright	MatraDatavision 1997

//-Version	

//-Design	Declaration des variables specifiques aux Drivers

//-Warning	Un driver encapsule les Pex et OpenGl drivers

//-References	

//-Language	C++ 2.0

//-Declarations

// for the class
#include <Graphic3d_GraphicDriver.jxx>

#include <Aspect_DriverDefinitionError.hxx>

extern "C" {
#include <InterfaceGraphic_Cextern.hxx>
}

//-Aliases

//-Global data definitions

//-Methods, in order

void Graphic3d_GraphicDriver::InitPick () {
#ifndef VIRTUAL

//static void (*fp) () = NULL;

	//if (! fp) {
	    //OSD_Function osdfp = NULL;
	    //osdfp = MySharedLibrary.DlSymb ("call_togl_init_pick");
	    //fp = (void (*)()) osdfp;
	    //if (! osdfp)
		//Aspect_DriverDefinitionError::Raise
			//(MySharedLibrary.DlError ());
	//}

	if (MyTraceLevel) {
		PrintFunction ("call_togl_init_pick");
	}
	call_togl_init_pick ();

#endif
}

#ifdef VIRTUAL
void Graphic3d_GraphicDriver::Pick (Graphic3d_CPick& ) {
#else
void Graphic3d_GraphicDriver::Pick (Graphic3d_CPick& ACPick) {

Graphic3d_CPick MyCPick = ACPick;

//static void (*fp) (Graphic3d_CPick *) = NULL;

	//if (! fp) {
	    //OSD_Function osdfp = NULL;
	    //osdfp = MySharedLibrary.DlSymb ("call_togl_pick");
	    //fp = (void (*)(Graphic3d_CPick *)) osdfp;
	    //if (! osdfp)
		//Aspect_DriverDefinitionError::Raise
			//(MySharedLibrary.DlError ());
	//}

	if (MyTraceLevel) {
		PrintFunction ("call_togl_pick");
		PrintCPick (MyCPick, 1);
	}
	call_togl_pick (&ACPick);

#endif
}

#ifdef VIRTUAL
void Graphic3d_GraphicDriver::PickId (const Graphic3d_CGroup& ) {
#else
void Graphic3d_GraphicDriver::PickId (const Graphic3d_CGroup& ACGroup) {

Graphic3d_CGroup MyCGroup = ACGroup;

//static void (*fp) (Graphic3d_CGroup *) = NULL;

	//if (! fp) {
	    //OSD_Function osdfp = NULL;
	    //osdfp = MySharedLibrary.DlSymb ("call_togl_pickid");
	    //fp = (void (*)(Graphic3d_CGroup *)) osdfp;
	    //if (! osdfp)
		//Aspect_DriverDefinitionError::Raise
			//(MySharedLibrary.DlError ());
	//}

	if (MyTraceLevel) {
		PrintFunction ("call_togl_pickid");
		PrintCGroup (MyCGroup, 1);
	}
	call_togl_pickid (&MyCGroup);

#endif
}
