// // Vrml 97 library // Copyright (C) 1998 Chris Morley // // ScriptObject.cpp // An abstract class to encapsulate the interface between the VRML97 // scene graph and the supported scripting languages. // #include "config.h" #include "ScriptObject.h" #include "Doc.h" #include "VrmlMFString.h" #include "VrmlNodeScript.h" #include "VrmlScene.h" #include // JavaScript #if HAVE_JAVASCRIPT # include "ScriptJS.h" #endif // Java via Sun JDK #if HAVE_JDK # include "ScriptJDK.h" #endif ScriptObject::ScriptObject() {} ScriptObject::~ScriptObject() {} ScriptObject *ScriptObject::create( VrmlNodeScript *node, VrmlMFString &url ) { // Try each url until we find one we like int i, n = url.size(); for (i=0; i 6 && (strcmp(url[i]+slen-6,".class") == 0 || strcmp(url[i]+slen-6,".CLASS") == 0)) { Doc *relative = 0; if ( node->scene() ) relative = node->scene()->url(); Doc doc( url[i], relative ); if ( doc.localName() ) return new ScriptJDK( node, doc.urlBase(), doc.localPath() ); } #endif } return 0; }