diff --git a/modules/gfx/pymod/export_scene.cc b/modules/gfx/pymod/export_scene.cc
index e9936df04ca5b32a9ffe19fb96f7650fb2f4b33b..ec1dd53ebce61d984a036799b3680b73404e2e23 100644
--- a/modules/gfx/pymod/export_scene.cc
+++ b/modules/gfx/pymod/export_scene.cc
@@ -32,7 +32,7 @@ BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(scene_autoslab_overloads,
                                        Scene::Autoslab, 0, 2)
 BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(scene_export_pov_overloads,
                                        Scene::ExportPov, 1,2)
-
+void (Scene::*apply)(const InputEvent&, bool)=&Scene::Apply;
 namespace {
 
 Scene* get_scene()
@@ -105,6 +105,7 @@ void export_Scene()
     .def("GetFOV",&Scene::GetFOV)
     .def("SetFogOffsets",&Scene::SetFogOffsets)
     .def("Stereo",&Scene::Stereo)
+    .def("Apply", apply)
     .def("SetStereoEye",&Scene::SetStereoEye)
     .def("SetLightDir",&Scene::SetLightDir)
     .def("SetLightProp",set_light_prop1)
diff --git a/modules/gfx/pymod/wrap_gfx.cc b/modules/gfx/pymod/wrap_gfx.cc
index 974d780707d0576e7e9cd0377c1bd8e637411dee..1e1cfab289905673be8a732582ff238121d082b1 100644
--- a/modules/gfx/pymod/wrap_gfx.cc
+++ b/modules/gfx/pymod/wrap_gfx.cc
@@ -98,8 +98,38 @@ BOOST_PYTHON_MODULE(_gfx)
     .value("OUTLINE",RenderMode::OUTLINE)
     .export_values()
     ;
-
-
+  enum_<InputCommand>("InputCommand")
+    .value("INPUT_COMMAND_NONE", INPUT_COMMAND_NONE)
+    .value("INPUT_COMMAND_ROTX", INPUT_COMMAND_ROTX)
+    .value("INPUT_COMMAND_ROTY", INPUT_COMMAND_ROTY)
+    .value("INPUT_COMMAND_ROTZ", INPUT_COMMAND_ROTZ)
+    .value("INPUT_COMMAND_TRANSX", INPUT_COMMAND_TRANSX)
+    .value("INPUT_COMMAND_TRANSY", INPUT_COMMAND_TRANSY)
+    .value("INPUT_COMMAND_TRANSZ", INPUT_COMMAND_TRANSZ)
+    .value("INPUT_COMMAND_SLABN", INPUT_COMMAND_SLABN)
+    .value("INPUT_COMMAND_SLABF", INPUT_COMMAND_SLABF)
+    .value("INPUT_COMMAND_AUTOSLAB", INPUT_COMMAND_AUTOSLAB)
+    .value("INPUT_COMMAND_TOGGLE_FOG", INPUT_COMMAND_TOGGLE_FOG)
+    .value("INPUT_COMMAND_CUSTOM1", INPUT_COMMAND_CUSTOM1)
+    .value("INPUT_COMMAND_CUSTOM2", INPUT_COMMAND_CUSTOM2)
+    .value("INPUT_COMMAND_CUSTOM3", INPUT_COMMAND_CUSTOM3)
+    .value("INPUT_COMMAND_REBUILD", INPUT_COMMAND_REBUILD)
+    .export_values()
+    ;
+  enum_<InputDevice>("InputDevice")
+    .value("INPUT_DEVICE_MOUSE", INPUT_DEVICE_MOUSE)
+    .export_values()
+  ;
+  enum_<TransformTarget>("TransformTarget")
+   .value("TRANSFORM_VIEW", TRANSFORM_VIEW)
+   .value("TRANSFORM_RIGID", TRANSFORM_RIGID)
+   .value("TRANSFORM_TORSION", TRANSFORM_TORSION)
+   .value("TRANSFORM_ANGLE", TRANSFORM_ANGLE)
+   .value("TRANSFORM_ROTAMER", TRANSFORM_ROTAMER)
+   .export_values()
+  ;
+  class_<InputEvent>("InputEvent", init<InputDevice, InputCommand, float>())
+  ;
   class_<PrimList, bases<GfxObj>, PrimListP, boost::noncopyable>("PrimList", init<const String& >())
     .def("Clear",&PrimList::Clear)
     .def("AddLine",&PrimList::AddLine)