From 211f4cb49843ef3605a0ec943e17c448dbca8fef Mon Sep 17 00:00:00 2001 From: Sam Edwards Date: Fri, 7 Feb 2014 15:54:39 -0700 Subject: [PATCH] direct: Kind of hacky, but make 'pandac' install the extensions. --- direct/src/pandac/__init__.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/direct/src/pandac/__init__.py b/direct/src/pandac/__init__.py index d313bda3dd..4b79eb4dce 100644 --- a/direct/src/pandac/__init__.py +++ b/direct/src/pandac/__init__.py @@ -1,5 +1,32 @@ # N.B. PandaModules is generated at build time by CMake from PandaModules import * +import __builtin__ # Now import all extensions: +from direct.extensions_native.extension_native_helpers import * +extensions = [ + 'CInterval', 'EggGroupNode', 'EggPrimitive', 'HTTPChannel', 'Mat3', + 'NodePath', 'NodePathCollection', 'OdeBody', 'OdeGeom', 'OdeJoint', + 'OdeSpace', 'Ramfile', 'StreamReader', 'VBase3', 'VBase4' +] +# Prior to importing, we need to make the Dtool_funcToMethod function and +# the extended class available globally. This is hacky, but tacking it on +# __builtin__ works just fine: +import __builtin__ +__builtin__.Dtool_funcToMethod = Dtool_funcToMethod +__builtin__.Dtool_ObjectToDict = Dtool_ObjectToDict + +for extension in extensions: + if extension not in locals(): + # Not a class we have compiled in, skip it! + continue + + module = 'direct.extensions_native.%s_extensions' % extension + + setattr(__builtin__, extension, locals()[extension]) + __import__(module) + del __builtin__.__dict__[extension] + +del __builtin__.Dtool_funcToMethod +del __builtin__.Dtool_ObjectToDict