Revision: 447
http://python-ogre.svn.sourceforge.net/python-ogre/?rev=447&view=rev
Author: andy_miller
Date: 2007-10-19 18:23:48 -0700 (Fri, 19 Oct 2007)
Log Message:
-----------
Modified Paths:
--------------
trunk/python-ogre/demos/OgreNewt/Demo01_TheBasics.py
trunk/python-ogre/demos/OgreNewt/Demo02_Joints.py
trunk/python-ogre/demos/OgreNewt/Demo03_CollisionCallbacks.py
trunk/python-ogre/demos/OgreNewt/Demo04_RayCasting.py
trunk/python-ogre/demos/OgreNewt/Demo05_SimpleVehicle.py
trunk/python-ogre/demos/OgreNewt/Demo06_SimpleBuoyancy.py
trunk/python-ogre/demos/OgreNewt/Demo07_CustomJoints.py
trunk/python-ogre/demos/OgreNewt/Demo08_Ragdoll.py
trunk/python-ogre/demos/caelum/Demo_Caelum01.py
trunk/python-ogre/demos/cegui/Demo_CEGUI_DragnDrop.py
trunk/python-ogre/demos/cegui/Demo_CEGUI_Facial.py
trunk/python-ogre/demos/cegui/Demo_CEGUI_Gui.py
trunk/python-ogre/demos/cegui/Demo_CEGUI_NewGui.py
trunk/python-ogre/demos/dshow/Demo_Video.py
trunk/python-ogre/demos/et/Demo_CEGUI_ET.py
trunk/python-ogre/demos/ffmpeg/Demo_Video.py
trunk/python-ogre/demos/navi/Demo_navi.py
trunk/python-ogre/demos/nxogre/Demo_101.py
trunk/python-ogre/demos/nxogre/Demo_102.py
trunk/python-ogre/demos/nxogre/Demo_103.py
trunk/python-ogre/demos/ode/tutorial1.py
trunk/python-ogre/demos/ode/tutorial3.py
trunk/python-ogre/demos/ogre/Demo_BSP.py
trunk/python-ogre/demos/ogre/Demo_Basic.py
trunk/python-ogre/demos/ogre/Demo_Bezier.py
trunk/python-ogre/demos/ogre/Demo_Blank.py
trunk/python-ogre/demos/ogre/Demo_BspCollision.py
trunk/python-ogre/demos/ogre/Demo_CameraTracking.py
trunk/python-ogre/demos/ogre/Demo_CelShading.py
trunk/python-ogre/demos/ogre/Demo_Compositor.py
trunk/python-ogre/demos/ogre/Demo_EnvMap.py
trunk/python-ogre/demos/ogre/Demo_Facial.py
trunk/python-ogre/demos/ogre/Demo_Fresnel.py
trunk/python-ogre/demos/ogre/Demo_Grass.py
trunk/python-ogre/demos/ogre/Demo_Lighting.py
trunk/python-ogre/demos/ogre/Demo_NodeListener.py
trunk/python-ogre/demos/ogre/Demo_OgreCollision02.py
trunk/python-ogre/demos/ogre/Demo_OneFish.py
trunk/python-ogre/demos/ogre/Demo_ParticleFX.py
trunk/python-ogre/demos/ogre/Demo_RenderToTexture.py
trunk/python-ogre/demos/ogre/Demo_RendererCreate.py
trunk/python-ogre/demos/ogre/Demo_Shadows.py
trunk/python-ogre/demos/ogre/Demo_Shadows_Org.py
trunk/python-ogre/demos/ogre/Demo_SkeletalAnimation.py
trunk/python-ogre/demos/ogre/Demo_SkeletonAnimation.py
trunk/python-ogre/demos/ogre/Demo_SkyBox.py
trunk/python-ogre/demos/ogre/Demo_SkyDome.py
trunk/python-ogre/demos/ogre/Demo_SkyPlane.py
trunk/python-ogre/demos/ogre/Demo_Smoke.py
trunk/python-ogre/demos/ogre/Demo_Spinner.py
trunk/python-ogre/demos/ogre/Demo_Terrain.py
trunk/python-ogre/demos/ogre/Demo_TextureFX.py
trunk/python-ogre/demos/ogre/Demo_Transparency.py
trunk/python-ogre/demos/ogre/Demo_Video.py
trunk/python-ogre/demos/ogre/Demo_WX.py
trunk/python-ogre/demos/ogre/Demo_Water.py
trunk/python-ogre/demos/ogre/WaterMesh.py
trunk/python-ogre/demos/ogre/tests/Test_SceneManagerOptions.py
trunk/python-ogre/demos/ogreal/Demo_RenderToTexture.py
trunk/python-ogre/demos/ogrebullet/Demo_OgreCollision01.py
trunk/python-ogre/demos/ogreforests/Demo_Forest.py
trunk/python-ogre/demos/ogreode/Demo_GranTurism.py
trunk/python-ogre/demos/ogreode/Demo_Scenes.py
trunk/python-ogre/demos/opcode/Demo_OgreCollision01.py
trunk/python-ogre/demos/opcode/Demo_OpcodeBoxes.py
trunk/python-ogre/demos/opcode/Demo_OpcodeCollision01.py
trunk/python-ogre/demos/qgui/Demo_QuickGUI01.py
trunk/python-ogre/demos/theora/demo_video.py
Added Paths:
-----------
trunk/python-ogre/demos/nxogre/Demo_OgreCollision01.py
trunk/python-ogre/demos/nxogre/Lesson701.py
trunk/python-ogre/demos/nxogre/motor.py
Removed Paths:
-------------
trunk/python-ogre/demos/OgreNewt/SampleFramework.py
trunk/python-ogre/demos/caelum/SampleFramework.py
trunk/python-ogre/demos/cegui/SampleFramework.py
trunk/python-ogre/demos/dshow/SampleFramework.py
trunk/python-ogre/demos/et/SampleFramework.py
trunk/python-ogre/demos/ffmpeg/SampleFramework.py
trunk/python-ogre/demos/navi/SampleFramework.py
trunk/python-ogre/demos/nxogre/SampleFramework.py
trunk/python-ogre/demos/ogre/SampleFramework.py
trunk/python-ogre/demos/ogre/demo_basic1.py
trunk/python-ogre/demos/ogreal/SampleFramework.py
trunk/python-ogre/demos/ogrebullet/SampleFramework.py
trunk/python-ogre/demos/ogreforests/SampleFramework.py
trunk/python-ogre/demos/ogreode/SampleFramework.py
trunk/python-ogre/demos/opcode/SampleFramework.py
trunk/python-ogre/demos/qgui/SampleFramework.py
trunk/python-ogre/demos/theora/SampleFramework.py
Modified: trunk/python-ogre/demos/OgreNewt/Demo01_TheBasics.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo01_TheBasics.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/OgreNewt/Demo01_TheBasics.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -3,6 +3,9 @@
# Demo01_TheBasics - basic demo that shows a simple OgreNewt world, and how
# to setup basic rigid bodies.
#
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as Ogre
import ogre.physics.OgreNewt as OgreNewt
Modified: trunk/python-ogre/demos/OgreNewt/Demo02_Joints.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo02_Joints.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/OgreNewt/Demo02_Joints.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -3,6 +3,9 @@
# Demo02_Joints - basic demo that shows how to connect rigid bodies via joints.
# */
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as Ogre
import ogre.physics.OgreNewt as OgreNewt
Modified: trunk/python-ogre/demos/OgreNewt/Demo03_CollisionCallbacks.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo03_CollisionCallbacks.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/OgreNewt/Demo03_CollisionCallbacks.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -6,6 +6,10 @@
# material callbacks to create hot spots, or make sound effects, or spawn particles, etc. this example
# uses a conveyor belt as an example. look at the conveyorMatCallback to see how it's implemented.
# */
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
import ogre.renderer.OGRE as Ogre
import ogre.physics.OgreNewt as OgreNewt
import ogre.io.OIS as OIS
Modified: trunk/python-ogre/demos/OgreNewt/Demo04_RayCasting.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo04_RayCasting.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/OgreNewt/Demo04_RayCasting.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -3,6 +3,10 @@
# Demo04_Raycasting - how raycasting in Newton works, implemented with a simple way to drag objects around.
# */
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
import ogre.renderer.OGRE as Ogre
import ogre.physics.OgreNewt as OgreNewt
import ogre.io.OIS as OIS
Modified: trunk/python-ogre/demos/OgreNewt/Demo05_SimpleVehicle.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo05_SimpleVehicle.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/OgreNewt/Demo05_SimpleVehicle.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -3,7 +3,11 @@
# Demo02_Joints - basic demo that shows how to connect rigid bodies via joints.
# */
-import exceptions, sys
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
+import exceptions
import ogre.renderer.OGRE as Ogre
import ogre.physics.OgreNewt as OgreNewt
import ogre.io.OIS as OIS
Modified: trunk/python-ogre/demos/OgreNewt/Demo06_SimpleBuoyancy.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo06_SimpleBuoyancy.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/OgreNewt/Demo06_SimpleBuoyancy.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -3,6 +3,10 @@
# Demo04_Raycasting - how raycasting in Newton works, implemented with a simple way to drag objects around.
# */
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
import ogre.renderer.OGRE as Ogre
import ogre.physics.OgreNewt as OgreNewt
import ogre.io.OIS as OIS
Modified: trunk/python-ogre/demos/OgreNewt/Demo07_CustomJoints.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo07_CustomJoints.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/OgreNewt/Demo07_CustomJoints.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -3,6 +3,9 @@
# Demo07_CustomJoints - basic demo that shows a simple OgreNewt world, and how
# to setup basic rigid bodies.
#
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as Ogre
import ogre.physics.OgreNewt as OgreNewt
Modified: trunk/python-ogre/demos/OgreNewt/Demo08_Ragdoll.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo08_Ragdoll.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/OgreNewt/Demo08_Ragdoll.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -6,6 +6,10 @@
### DEMO NOT YET WORKING......
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
import ogre.renderer.OGRE as Ogre
import ogre.physics.OgreNewt as OgreNewt
import ogre.io.OIS as OIS
Deleted: trunk/python-ogre/demos/OgreNewt/SampleFramework.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/SampleFramework.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/OgreNewt/SampleFramework.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,14 +0,0 @@
-# This code is in the Public Domain
-# it has been changed to a "wrapper" to handle both the 1.2.3 version of Ogre (current SDK) and the CVS version
-# which is different in that it uses OIS for all input handling.
-#
-
-import ogre.renderer.OGRE as ogre
-
-ogre.OgreVersion = ogre.GetOgreVersion()
-ogre.OgreVersionString = ogre.OgreVersion[0] + ogre.OgreVersion[1] + ogre.OgreVersion[2]
-ogre.PythonOgreVersion = ogre.GetPythonOgreVersion()
-from ogre.renderer.OGRE.sf_OIS import *
-
-
-
Modified: trunk/python-ogre/demos/caelum/Demo_Caelum01.py
===================================================================
--- trunk/python-ogre/demos/caelum/Demo_Caelum01.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/caelum/Demo_Caelum01.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -3,12 +3,14 @@
## This source file is based on Caelum's CaelumTest1
## -----------------------------------------------------------------------------
## */
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as ogre
import ogre.io.OIS as ois
import ogre.addons.caelum as caelum
import SampleFramework as sf
-import sys
import ctypes
## ------------------------------------------------------------------
Deleted: trunk/python-ogre/demos/caelum/SampleFramework.py
===================================================================
--- trunk/python-ogre/demos/caelum/SampleFramework.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/caelum/SampleFramework.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,14 +0,0 @@
-# This code is in the Public Domain
-#
-
-import ogre.renderer.OGRE as ogre
-
-# We don't use the verisons but it's nice to set them up...
-ogre.OgreVersion = ogre.GetOgreVersion()
-ogre.OgreVersionString = ogre.OgreVersion[0] + ogre.OgreVersion[1] + ogre.OgreVersion[2]
-ogre.PythonOgreVersion = ogre.GetPythonOgreVersion()
-
-from ogre.renderer.OGRE.sf_OIS import *
-
-
-
Modified: trunk/python-ogre/demos/cegui/Demo_CEGUI_DragnDrop.py
===================================================================
--- trunk/python-ogre/demos/cegui/Demo_CEGUI_DragnDrop.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/cegui/Demo_CEGUI_DragnDrop.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -16,6 +16,9 @@
# Example control creation using UDIM
# Simple Tooltip Text / injectTimePulse
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as ogre
import ogre.gui.CEGUI as cegui
Modified: trunk/python-ogre/demos/cegui/Demo_CEGUI_Facial.py
===================================================================
--- trunk/python-ogre/demos/cegui/Demo_CEGUI_Facial.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/cegui/Demo_CEGUI_Facial.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -5,6 +5,9 @@
#
# ===============================================================
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as ogre
import ogre.gui.CEGUI as cegui
Modified: trunk/python-ogre/demos/cegui/Demo_CEGUI_Gui.py
===================================================================
--- trunk/python-ogre/demos/cegui/Demo_CEGUI_Gui.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/cegui/Demo_CEGUI_Gui.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -11,6 +11,9 @@
# LGPL like the rest of the engine.
# -----------------------------------------------------------------------------
# */
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as ogre
import ogre.gui.CEGUI as CEGUI
Modified: trunk/python-ogre/demos/cegui/Demo_CEGUI_NewGui.py
===================================================================
--- trunk/python-ogre/demos/cegui/Demo_CEGUI_NewGui.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/cegui/Demo_CEGUI_NewGui.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -15,13 +15,16 @@
###
### This is a blank template to make it easier to convert existing samples
###
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as ogre
import ogre.gui.CEGUI as CEGUI
import ogre.io.OIS as OIS
import SampleFramework
-import sys, exceptions, random
+import exceptions, random
from CEGUI_framework import * ## we need the OIS version of the framelistener etc
Deleted: trunk/python-ogre/demos/cegui/SampleFramework.py
===================================================================
--- trunk/python-ogre/demos/cegui/SampleFramework.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/cegui/SampleFramework.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,14 +0,0 @@
-# This code is in the Public Domain
-#
-
-import ogre.renderer.OGRE as ogre
-
-# We don't use the verisons but it's nice to set them up...
-ogre.OgreVersion = ogre.GetOgreVersion()
-ogre.OgreVersionString = ogre.OgreVersion[0] + ogre.OgreVersion[1] + ogre.OgreVersion[2]
-ogre.PythonOgreVersion = ogre.GetPythonOgreVersion()
-
-from ogre.renderer.OGRE.sf_OIS import *
-
-
-
Modified: trunk/python-ogre/demos/dshow/Demo_Video.py
===================================================================
--- trunk/python-ogre/demos/dshow/Demo_Video.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/dshow/Demo_Video.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -9,6 +9,10 @@
# You may use this sample code for anything you like, it is not covered by the
# LGPL.
# -----------------------------------------------------------------------------
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
import ogre.renderer.OGRE as ogre
import ogre.addons.ogredshow as OgreDshow
import SampleFramework as sf
Deleted: trunk/python-ogre/demos/dshow/SampleFramework.py
===================================================================
--- trunk/python-ogre/demos/dshow/SampleFramework.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/dshow/SampleFramework.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,14 +0,0 @@
-# This code is in the Public Domain
-#
-
-import ogre.renderer.OGRE as ogre
-
-# We don't use the verisons but it's nice to set them up...
-ogre.OgreVersion = ogre.GetOgreVersion()
-ogre.OgreVersionString = ogre.OgreVersion[0] + ogre.OgreVersion[1] + ogre.OgreVersion[2]
-ogre.PythonOgreVersion = ogre.GetPythonOgreVersion()
-
-from ogre.renderer.OGRE.sf_OIS import *
-
-
-
Modified: trunk/python-ogre/demos/et/Demo_CEGUI_ET.py
===================================================================
--- trunk/python-ogre/demos/et/Demo_CEGUI_ET.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/et/Demo_CEGUI_ET.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -90,12 +90,16 @@
## add Menus
## add proper brushes
## add libnoise capabilities
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
import ogre.renderer.OGRE as ogre
import ogre.addons.et as ET
import ogre.io.OIS as OIS
import ogre.gui.CEGUI as CEGUI
import SampleFramework
-import sys, exceptions, random, os
+import exceptions, random, os
from CEGUI_framework import * ## we need the OIS version of the framelistener etc
### You may have to include this, it causes a problem for me with
Deleted: trunk/python-ogre/demos/et/SampleFramework.py
===================================================================
--- trunk/python-ogre/demos/et/SampleFramework.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/et/SampleFramework.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,14 +0,0 @@
-# This code is in the Public Domain
-#
-
-import ogre.renderer.OGRE as ogre
-
-# We don't use the verisons but it's nice to set them up...
-ogre.OgreVersion = ogre.GetOgreVersion()
-ogre.OgreVersionString = ogre.OgreVersion[0] + ogre.OgreVersion[1] + ogre.OgreVersion[2]
-ogre.PythonOgreVersion = ogre.GetPythonOgreVersion()
-
-from ogre.renderer.OGRE.sf_OIS import *
-
-
-
Modified: trunk/python-ogre/demos/ffmpeg/Demo_Video.py
===================================================================
--- trunk/python-ogre/demos/ffmpeg/Demo_Video.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/ffmpeg/Demo_Video.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -11,7 +11,11 @@
# -----------------------------------------------------------------------------
## Note the first frame doesn't get displayed ...........
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
import ogre.renderer.OGRE as ogre
import SampleFramework as sf
import ogre.io.OIS as OIS
Deleted: trunk/python-ogre/demos/ffmpeg/SampleFramework.py
===================================================================
--- trunk/python-ogre/demos/ffmpeg/SampleFramework.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/ffmpeg/SampleFramework.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,14 +0,0 @@
-# This code is in the Public Domain
-#
-
-import ogre.renderer.OGRE as ogre
-
-# We don't use the verisons but it's nice to set them up...
-ogre.OgreVersion = ogre.GetOgreVersion()
-ogre.OgreVersionString = ogre.OgreVersion[0] + ogre.OgreVersion[1] + ogre.OgreVersion[2]
-ogre.PythonOgreVersion = ogre.GetPythonOgreVersion()
-
-from ogre.renderer.OGRE.sf_OIS import *
-
-
-
Modified: trunk/python-ogre/demos/navi/Demo_navi.py
===================================================================
--- trunk/python-ogre/demos/navi/Demo_navi.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/navi/Demo_navi.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -9,6 +9,10 @@
# You may use this sample code for anything you like, it is not covered by the
# LGPL.
# -----------------------------------------------------------------------------
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
import ogre.renderer.OGRE as ogre
import ogre.gui.navi as navi
import ogre.io.OIS as OIS
Deleted: trunk/python-ogre/demos/navi/SampleFramework.py
===================================================================
--- trunk/python-ogre/demos/navi/SampleFramework.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/navi/SampleFramework.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,14 +0,0 @@
-# This code is in the Public Domain
-#
-
-import ogre.renderer.OGRE as ogre
-
-# We don't use the verisons but it's nice to set them up...
-ogre.OgreVersion = ogre.GetOgreVersion()
-ogre.OgreVersionString = ogre.OgreVersion[0] + ogre.OgreVersion[1] + ogre.OgreVersion[2]
-ogre.PythonOgreVersion = ogre.GetPythonOgreVersion()
-
-from ogre.renderer.OGRE.sf_OIS import *
-
-
-
Modified: trunk/python-ogre/demos/nxogre/Demo_101.py
===================================================================
--- trunk/python-ogre/demos/nxogre/Demo_101.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/nxogre/Demo_101.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,6 +1,9 @@
"""
"""
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as ogre
import ogre.physics.PhysX as physx
Modified: trunk/python-ogre/demos/nxogre/Demo_102.py
===================================================================
--- trunk/python-ogre/demos/nxogre/Demo_102.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/nxogre/Demo_102.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,6 +1,9 @@
"""
"""
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as ogre
import ogre.physics.PhysX as physx
Modified: trunk/python-ogre/demos/nxogre/Demo_103.py
===================================================================
--- trunk/python-ogre/demos/nxogre/Demo_103.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/nxogre/Demo_103.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,6 +1,9 @@
"""
"""
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
import ogre.renderer.OGRE as ogre
import ogre.physics.PhysX as physx
Added: trunk/python-ogre/demos/nxogre/Demo_OgreCollision01.py
===================================================================
--- trunk/python-ogre/demos/nxogre/Demo_OgreCollision01.py (rev 0)
+++ trunk/python-ogre/demos/nxogre/Demo_OgreCollision01.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -0,0 +1,231 @@
+##
+## This is a very ugly hack in progress to test collisions (without Physics)
+##
+## It uses the Ogre Intersection Query functions with the intention of extending it
+## to use Opcode to see if there is a performance difference
+##
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
+import ogre.renderer.OGRE as ogre
+import ogre.physics.OgreBulletC as bulletC
+import ogre.physics.bullet as bullet
+import SampleFramework as sf
+import random
+from math import *
+
+BULLET = True
+NXOGRE = False
+
+# enum QueryFlags
+# {
+# ANY_QUERY_MASK = 1<<0,
+# RAGDOLL_QUERY_MASK = 1<<1,
+# GEOMETRY_QUERY_MASK = 1<<2,
+# VEHICLE_QUERY_MASK = 1<<3,
+# STATIC_GEOMETRY_QUERY_MASK = 1<<4
+# };
+
+class OgreCollideApplication(sf.Application):
+ #
+ # first lets create a nice scene with a floor plane (that also get's collided
+ #
+ def _createScene(self):
+ sceneManager = self.sceneManager
+ ## Set ambient light
+ sceneManager.setAmbientLight ( (0.6, 0.6, 0.6) )
+
+# sceneManager.setWorldGeometry('terrain.cfg')
+
+ ## Create a skydome
+ sceneManager.setSkyDome (True, "Examples/CloudySky",5,8)
+ light = sceneManager.createLight('MainLight')
+ light.setPosition (20, 80, 50)
+
+ # create the floor
+ plane = ogre.Plane()
+ plane.normal = ogre.Vector3.UNIT_Y
+ plane.d = 200
+ mm = ogre.MeshManager.getSingleton()
+ mm.createPlane('FloorPlane', 'General', plane, 200000.0, 200000.0,
+ 20, 20, True, 1, 50, 50, ogre.Vector3.UNIT_Z)
+ entity = sceneManager.createEntity('floor', 'FloorPlane')
+ entity.setMaterialName('Examples/RustySteel')
+ sceneManager.getRootSceneNode().createChildSceneNode().attachObject(entity)
+
+ # create the camera node & attach camera
+ cameraNode = sceneManager.getRootSceneNode().createChildSceneNode()
+ cameraNode.attachObject(self.camera)
+
+ # how many barrels and pallets do we want
+ self.numBoxes = 300
+ if BULLET:
+ bounds = ogre.AxisAlignedBox ((-1000, -1000, -1000),(1000, 1000, 1000))
+ self.world = bulletC.CollisionsWorld(self.sceneManager, bounds )
+
+ # we need a framelistener to make life easy
+ def _createFrameListener(self):
+ self.frameListener = OgreCollideListener(self.renderWindow, self.camera, self.sceneManager, self.numBoxes, self)
+ self.root.addFrameListener(self.frameListener)
+
+# def _chooseSceneManager(self):
+# self.sceneManager = self.root.createSceneManager("TerrainSceneManager")
+
+
+class OgreCollideQueryListener(ogre.IntersectionSceneQueryListener):
+ """ the listener that gets called for each pair of intersecting objects """
+ def __init__ ( self ):
+ ogre.IntersectionSceneQueryListener.__init__ ( self )
+
+ def queryResult ( self, first, second ):
+ """ the actual function that gets called - for the demo I simply change the material type
+ so we see the collisions - except I don't change the floor material"""
+ if first.name != "floor":
+ first.setMaterialName('Examples/Chrome')
+ if second.name != "floor":
+ second.setMaterialName('Examples/TextureEffect2')
+ return True
+
+class OgreCollideListener(sf.FrameListener):
+ """ the frame listener we are using"""
+
+ def __init__(self, renderWindow, camera, sm, num, app):
+ sf.FrameListener.__init__(self, renderWindow, camera)
+ if not BULLET:
+ # Create an intersection query
+ self.intersectSceneQuery = sm.createIntersectionQuery()
+ # and a listener to receive the results
+ self.querylistener = OgreCollideQueryListener()
+
+ # I then create a range of crates and barrels to test with
+ self.numBoxes = num
+ self.sceneManager = sm
+ self.parent = app
+ self.CreateBoxes ( num )
+ self.frametime = 0
+ self.entitiesInstanced = 0
+ self.paused = False
+ self.doOnestep = False
+
+ def frameStarted(self, frameEvent):
+ """ called each frame (at the start), check if it's time to do collision checking and
+ if so do it, otherwise pass through"""
+ self.frametime += frameEvent.timeSinceLastFrame
+
+ # for performance reasons lets check for collisions about 5 times a second
+ if self.frametime > 0.2:
+ self.ResetBoxes()
+ if BULLET:
+ if not ( self.paused or self.doOnestep):
+ print dir(self.parent.world.getBulletCollisionWorld())
+
+ self.parent.world.getBulletCollisionWorld().performDiscreteCollisionDetection()
+# self.parent.world.getBulletCollisionWorld().performBroadCollisionDetection()
+ print "##"
+
+# objs = self.parent.world.getBulletCollisionWorld().getCollidingObjects()
+# if len(objs) > 0:
+# print "Colliding", objs
+ else:
+ self.intersectSceneQuery.execute( self.querylistener )
+ self.frametime = 0
+ return sf.FrameListener.frameStarted(self, frameEvent)
+
+ def frameEnded ( self, ev ):
+ """and at the end of the frame we update the objects positions in preparation for the
+ next frame"""
+ self.UpdateBoxes(ev.timeSinceLastFrame)
+ return sf.FrameListener.frameEnded(self, ev)
+
+
+
+ def CreateBoxes (self, num):
+ self.numBoxes=num
+ self._bodies=[]
+ names = ['WoodPallet','Barrel']
+ self.mBoxTime = [] #new float[mNbBoxes]
+ self.nodes = []
+ self._shapes = []
+ self._bBodies = []
+ self.mSpeed = .000001
+ self.mAmplitude = .5
+ for i in range ( self.numBoxes ):
+ ## Create the visual representation (the Ogre entity and scene node)
+ name = "object" + str(i)
+ entityname = names[i % len(names)]
+
+ entity = self.sceneManager.createEntity(name, entityname + ".mesh")
+
+ node = self.sceneManager.getRootSceneNode().createChildSceneNode(name)
+ node.attachObject(entity)
+ entity.setNormaliseNormals(True)
+ entity.setCastShadows(True)
+ ## Pick a size
+ scale= 100
+ size = ogre.Vector3((random.random() * 0.5 + 0.1) * scale,
+ (random.random() * 0.5 + 0.1) * scale,
+ (random.random() * 0.5 + 0.1) * scale)
+ position = ogre.Vector3((random.random() -0.5 ) * 800.0,
+ (random.random() - 0.5 ) * 500.0,
+ (random.random() - 0.5 ) * 800.0)
+
+ if BULLET:
+ shape = bulletC.MeshToShapeConverter( entity )
+ if entityname == 'WoodPallet':
+ shape = shape.createBox()
+ else:
+ shape = shape.createCylinder()
+
+ ## this creates an object with a MainRootNode and a child noe containing the shape
+ ## probably could attach the entity to this and us it but going to do it backwards..
+ bBody = bulletC.Object( "BulletObject" + str(i), self.parent.world, True)
+ bBody.setShape ( shape, position, ogre.Quaternion(0,0,0,1))
+
+ # detach from parent (as it's connected to the SceneManger Root node)
+ bBody.getRootNode().getParent().removeChild( bBody.getRootNode() )
+ # and attach it to our node..
+ node.addChild ( bBody.getRootNode() )
+# self._shapes.append ( shape )
+# self._bBodies.append ( bBody )
+ self.parent.world.addObject ( bBody )
+ node.setScale (size.x * 0.1,size.y * 0.1,size.z * 0.1)
+ node.setPosition (position)
+ # we need access to the entity and nodes to reset the material
+ self._bodies.append ( entity)
+ self.nodes.append( node)
+ self.mBoxTime.append ( 10.0*random.random() )
+
+ def ResetBoxes(self):
+ """ set the objects back to their original materials
+ """
+ for i in range ( self.numBoxes):
+ if i % 2 :
+ self._bodies[i].setMaterialName('RustyBarrel')
+ else:
+ self._bodies[i].setMaterialName('WoodPallet')
+
+ def UpdateBoxes(self, timesincelastframe):
+ """ move the objects in an interesting way :) """
+ for i in range ( self.numBoxes):
+ self.mBoxTime[i] += timesincelastframe * 0.001 # self.mSpeed
+ Center = ogre.Vector3()
+ n = self.nodes[i]
+ Center.x = cos(self.mBoxTime[i]*2.17)*self.mAmplitude + sin(self.mBoxTime[i])*self.mAmplitude*0.5
+ Center.y = cos(self.mBoxTime[i]*1.38)*self.mAmplitude + sin(self.mBoxTime[i]*self.mAmplitude)
+ Center.z = sin(self.mBoxTime[i]*0.777)*self.mAmplitude
+ pos = n.Position
+ pos.x += Center.x
+ pos.y += Center.y
+ pos.z += Center.y
+ n.Position = pos
+
+
+if __name__ == '__main__':
+ try:
+ application = OgreCollideApplication()
+ application.go()
+ except ogre.OgreException, e:
+ print e
+
+
Added: trunk/python-ogre/demos/nxogre/Lesson701.py
===================================================================
--- trunk/python-ogre/demos/nxogre/Lesson701.py (rev 0)
+++ trunk/python-ogre/demos/nxogre/Lesson701.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -0,0 +1,333 @@
+## ===============================================================================
+## AGEIA PHYSX SDK TRAINING PROGRAMS
+## LESSON 701: WHEEL SHAPES
+##
+## Written by Bob Schade, 5-1-06
+## ===============================================================================
+
+
+
+import ogre.renderer.OGRE as ogre
+import ogre.physics.PhysX as physx
+import ogre.physics.NxOgre as nxogre
+import CakeFramework as cf
+
+class NxTutorial ( cf.Cake ):
+ def __init__ ( self ):
+ cf.Cake.__init__(self)
+
+ ##////////////////////////////////////////////////////////////////////////////////////////////////
+
+ def start(self ):
+ self.World = nxogre.World("Log: html")
+
+ self.Scene = self.World.createScene("Main", self.SceneMgr,"gravity: yes, floor: yes")
+
+ self.Scene.createBody('sphere.50cm.mesh',nxogre.SphereShape(0.5),
+ ogre.Vector3(3,1.5,0), "mass: 10" )
+
+
+ ##////////////////////////////////////////////////////////////////////////////////////////////////
+ def stop(self):
+ ## Time to go, better tell NxOgre we are leaving.
+ del self.World
+
+ ##////////////////////////////////////////////////////////////////////////////////////////////////
+
+ def onFrame(self, _time) :
+ if not self.mTargetActor:
+ return
+ if self.InputHandler.isKeyDown(cf.Action.Z):
+ self.mTargetActor.addTorque(ogre.Vector3(0,0,150))
+ if self.InputHandler.isKeyDown(cf.Action.NEG_Z):
+ self.mTargetActor.addTorque(ogre.Vector3(0,0,-150))
+ if self.InputHandler.isKeyDown(cf.Action.X):
+ self.mTargetActor.addTorque(ogre.Vector3(150,0,0))
+ if self.InputHandler.isKeyDown(cf.Action.NEG_X):
+ self.mTargetActor.addTorque(ogre.Vector3(-150,0,0))
+ if self.InputHandler.isKeyDown(cf.Action.Y):
+ self.mTargetActor.addTorque(ogre.Vector3(0,150,0))
+ if self.InputHandler.isKeyDown(cf.Action.NEG_Y):
+ self.mTargetActor.addTorque(ogre.Vector3(0,-150,0))
+
+ def getWorld(self):
+ return self.World
+ ##////////////////////////////////////////////////////////////////////////////////////////////////
+
+ def getTutorialSettings( self ):
+ self.TutorialName = "101"
+ self.TutorialDescription = "Cube on a plane"
+
+ ##////////////////////////////////////////////////////////////////////////////////////////////////
+
+if __name__ == '__main__':
+ import exceptions,sys
+ try:
+ application = NxTutorial ()
+ application.pre()
+ application.start()
+ application.WorldInstance = application.getWorld()
+ application.startRendering(application)
+ application.stop()
+ application.post()
+
+ except ogre.OgreException, e:
+ print e
+
+
+
+# # # def PrintControls():
+# # #
+# # # print("\n Flight Controls:\n ----------------\n w = forward, s = back\n a = strafe left, d = strafe right\n q = up, z = down\n")
+# # # print("\n Force Controls:\n ---------------\n i = +z, k = -z\n j = +x, l = -x\n u = +y, m = -y\n")
+# # # print("\n Miscellaneous:\n --------------\n p = Pause\n r = Select Next Actor\n f = Toggle Force Mode\n b = Toggle Debug Wireframe Mode\n x = Toggle Shadows\n t = Move Focus Actor to (0,5,0)\n")
+# # #
+# # #
+# # # def RenderActors(bool shadows)
+# # #
+# # # ## Render all the actors in the scene
+# # # NxU32 nbActors = self.Scene.getNbActors()
+# # # NxActor** actors = self.Scene.getActors()
+# # # while (nbActors--)
+# # #
+# # # NxActor* actor = *actors++
+# # # DrawActor(actor, self.SelectedActor, False)
+# # #
+# # # ## Handle shadows
+# # # if (shadows):
+# # #
+# # # DrawActorShadow(actor, False)
+# # #
+
+
+
+def UpdateWheelShapeUserData(self):
+ ## Look for wheel shapes
+ nbActors = self.Scene.getNbActors()
+ actors = self.Scene.getActors()
+ while nbActors > 0:
+ nbActors -= 1
+ nbShapes = actors[nbActors].getNbShapes()
+ shapes = actors[nbActors].getShapes()
+ while nbShapes > 0:
+ nbShapes -= 1
+
+ shape = shapes[nbShapes]
+ if (shape.getType() == nxogre.NX_SHAPE_WHEEL):
+
+# NxWheelShape* ws = (NxWheelShape*)shape
+# ShapeUserData* sud = (ShapeUserData*)(shape.userData)
+ ws = shape
+ sud = shape.userData
+ if sud:
+ ## Need to save away roll angle in wheel shape user data
+ rollAngle = sud.wheelShapeRollAngle
+## rollAngle += ws.getAxleSpeed() * 1.0/60.0f
+ rollAngle += ws.getAxleSpeed() * gDeltaTime
+ while (rollAngle > nxogre.NxTwoPi) ##normally just 1x
+ rollAngle -= nxogre.NxTwoPi
+ while (rollAngle < -nxogre.NxTwoPi) ##normally just 1x
+ rollAngle += nxogre.NxTwoPi
+
+ ## We have the roll angle for the wheel now
+ sud.wheelShapeRollAngle = rollAngle
+
+
+ pose = ws.getGlobalPose()
+
+ wcd = nxogre.NxWheelContactData ()
+ s = ws.getContact(wcd)
+
+ r = ws.getRadius()
+ st = ws.getSuspensionTravel()
+ steerAngle = ws.getSteerAngle()
+
+## NxWheelShapeDesc state
+## ws.saveToDesc(state)
+
+ dir_ = NxVec3 ()
+# # /*
+# # getWorldSegmentFast(seg)
+# # seg.computeDirection(dir)
+# # dir.normalize()
+# # */
+ p0 = pose.t ##cast from shape origin
+ pose.M.getColumn(1, dir_)
+ dir_ = -dir_ ##cast along -Y.
+ castLength = r + st ##cast ray self long
+
+## renderer.addArrow(p0, dir, castLength, 1.0)
+
+ ##have ground contact?
+ ## This code is from WheelShape.cpp in SDKs/core/common/src
+ ## if (contactPosition != nxogre.NX_MAX_REAL) :
+ if s and (wcd.contactForce > -1000) :
+
+## pose.t = p0 + dir * wcd.contactPoint
+## pose.t -= dir * state.radius //go from contact pos to center pos.
+ pose.t = wcd.contactPoint
+ pose.t -= dir_ * r ##go from contact pos to center pos.
+
+ rot = nxogre.NxMat33()
+ axisRot = nxogre.NxMat33 ()
+ rot.rotY(steerAngle)
+ axisRot.rotY(0)
+
+## NxReal rollAngle = ((ShapeUserData*)(wheel.userData)).rollAngle
+
+ rollRot = nxogre.NxMat33 ()
+ rollRot.rotX(rollAngle)
+
+ pose.M = rot * pose.M * axisRot * rollRot
+
+ sud.wheelShapePose = pose
+
+
+ else:
+
+ pose.t = p0 + dir * st
+ sud.wheelShapePose = pose
+
+
+
+def AddWheelToActor(self, actor, wheelDesc):
+
+ wheelShapeDesc = nxogre.NxWheelShapeDesc ()
+
+ ## Create a shared car wheel material to be used by all wheels
+ if (!self.wsm):
+
+ m = nxogre.NxMaterialDesc ()
+ m.flags |= nxogre.NX_MF_DISABLE_FRICTION
+ self.wsm = self.Scene.createMaterial(m)
+
+ wheelShapeDesc.materialIndex = self.wsm.getMaterialIndex()
+
+ wheelShapeDesc.localPose.t = wheelDesc.position
+ q = nxogre.NxQuat ()
+ q.fromAngleAxis(90, nxogre.NxVec3(0,1,0))
+ wheelShapeDesc.localPose.M.fromQuat(q)
+
+ heightModifier = (wheelDesc.wheelSuspension + wheelDesc.wheelRadius) / wheelDesc.wheelSuspension
+
+ wheelShapeDesc.suspension.spring = wheelDesc.springRestitution*heightModifier
+ wheelShapeDesc.suspension.damper = 0 ##wheelDesc.springDamping*heightModifier;
+ wheelShapeDesc.suspension.targetValue = wheelDesc.springBias*heightModifier
+
+ wheelShapeDesc.radius = wheelDesc.wheelRadius
+ wheelShapeDesc.suspensionTravel = wheelDesc.wheelSuspension
+ wheelShapeDesc.inverseWheelMass = 0.1 ##not given!? TODO
+
+ ## wheelShapeDesc.lateralTireForceFunction = //TODO
+ ## wheelShapeDesc.longitudalTireForceFunction = //TODO
+
+# # NxWheelShape* wheelShape
+# # wheelShape = static_cast<NxWheelShape *>(actor.createShape(wheelShapeDesc))
+
+
+def CreateCab( self, pos):
+ """ create the cab from a box """
+ actor = self.CreateBox(pos + nxogre.NxVec3(0,1,0), nxogre.NxVec3(1,0.5,0.5), 10)
+ actor.raiseBodyFlag(nxogre.NX_BF_FROZEN_ROT_X)
+ actor.raiseBodyFlag(nxogre.NX_BF_FROZEN_ROT_Z)
+ actor.setAngularDamping(0.5)
+
+ wheelDesc =nxogre.NxWheelDesc
+ ##wheelDesc.wheelAxis.set(0,0,1)
+ ##wheelDesc.downAxis.set(0,-1,0)
+ wheelDesc.wheelApproximation = 10
+ wheelDesc.wheelRadius = 0.5
+ wheelDesc.wheelWidth = 0.1
+ wheelDesc.wheelSuspension = 0.2
+ wheelDesc.springRestitution = 7000
+ wheelDesc.springDamping = 800
+ wheelDesc.springBias = 0
+ wheelDesc.maxBrakeForce = 1
+ wheelDesc.frictionToFront = 0.1
+ wheelDesc.frictionToSide = 0.99
+ wheelDesc.position = nxogre.NxVec3(0,-0.4,0)
+ wheelDesc.wheelFlags = nxogre.NX_WF_USE_WHEELSHAPE | nxogre.NX_WF_BUILD_LOWER_HALF | nxogre.NX_WF_ACCELERATED |
+ nxogre.NX_WF_AFFECTED_BY_HANDBRAKE | nxogre.NX_WF_STEERABLE_INPUT | nxogre.NX_WF_BUILD_LOWER_HALF
+ self.AddWheelToActor(actor, wheelDesc)
+ return actor
+
+
+def InitNx()
+
+ ## Create a memory allocator
+ gAllocator = new UserAllocator
+
+ ## Create the physics SDK
+ self.gPhysicsSDK = NxCreatePhysicsSDK(nxogre.NX_PHYSICS_SDK_VERSION, gAllocator)
+ if (!self.gPhysicsSDK) return :
+
+ ## Set the physics parameters
+ self.gPhysicsSDK.setParameter(nxogre.NX_SKIN_WIDTH, 0.05)
+
+ ## Set the debug visualization parameters
+ self.gPhysicsSDK.setParameter(nxogre.NX_VISUALIZATION_SCALE, 1)
+ self.gPhysicsSDK.setParameter(nxogre.NX_VISUALIZE_ACTOR_AXES, 1)
+ self.gPhysicsSDK.setParameter(nxogre.NX_VISUALIZE_COLLISION_SHAPES, 1)
+
+ self.gPhysicsSDK.setParameter(nxogre.NX_VISUALIZE_CONTACT_POINT, 1)
+ self.gPhysicsSDK.setParameter(nxogre.NX_VISUALIZE_CONTACT_NORMAL, 1)
+
+ ## Create the scene
+ sceneDesc = nxogre.NxSceneDesc ()
+ sceneDesc.gravity = gDefaultGravity
+ sceneDesc.simType = nxogre.NX_SIMULATION_HW
+ self.Scene = self.gPhysicsSDK.createScene(sceneDesc)
+ if(!self.Scene){ :
+ sceneDesc.simType = nxogre.NX_SIMULATION_SW
+ self.Scene = self.gPhysicsSDK.createScene(sceneDesc)
+ if(!self.Scene) return :
+
+
+ ## Create the default material
+ NxMaterial* defaultMaterial = self.Scene.getMaterialFromIndex(0)
+ defaultMaterial.setRestitution(0.5)
+ defaultMaterial.setStaticFriction(0.5)
+ defaultMaterial.setDynamicFriction(0.5)
+
+ ## Create the objects in the scene
+ groundPlane = CreateGroundPlane()
+
+ self.box = CreateBox(NxVec3(5,0,0), NxVec3(0.5,1,0.5), 20)
+ self.sphere = CreateSphere(NxVec3(0,0,5), 1, 10)
+ self.capsule = CreateCapsule(NxVec3(-5,0,0), 2, 0.5, 10)
+
+ ## Reset wheel material
+ self.wsm = None
+
+ self.cab = CreateCab(NxVec3(0,0,0))
+
+ self.SelectedActor = cab
+ self.gForceStrength = 35000
+
+ ## Turn on all contact notifications
+ self.Scene.setActorGroupPairFlags(0, 0, NX_NOTIFY_ON_TOUCH)
+
+ AddUserDataToActors(self.Scene)
+
+ ## Initialize HUD
+ InitializeHUD()
+
+ ## Get the current time
+ UpdateTime()
+
+ ## Start the first frame of the simulation
+ if (self.Scene) StartPhysics() :
+
+
+int main(int argc, char** argv)
+
+ PrintControls()
+ InitGlut(argc, argv, "Lesson 701: Wheel Shapes")
+ InitNx()
+ glutMainLoop()
+ ReleaseNx()
+ return 0
+
+
+
+
Deleted: trunk/python-ogre/demos/nxogre/SampleFramework.py
===================================================================
--- trunk/python-ogre/demos/nxogre/SampleFramework.py 2007-10-20 00:42:29 UTC (rev 446)
+++ trunk/python-ogre/demos/nxogre/SampleFramework.py 2007-10-20 01:23:48 UTC (rev 447)
@@ -1,793 +0,0 @@
-import ogre.renderer.OGRE as ogre
-import ogre.io.OIS as ois
-import ogre.physics.PhysX as physx
-import ogre.physics.NxOgre as nxogre
-import SampleFramework as sf
-import BetaGui as BetaGUI
-from Enums import *
-
-Key = Enum ('QUIT','SCREENSHOT','DEBUG_MODE','RESET_SCENE', 'PAUSE', 'SLOWER', 'FASTER',
- 'OPTION_1','OPTION_2','OPTION_3','OPTION_4',
- 'PAN_FORWARD','PAN_BACKWARD','PAN_LEFT','PAN_RIGHT','PAN_UP','PAN_DOWN',
- 'X','NEG_X','Y','NEG_Y','Z','NEG_Z',
- 'MOUSE_PRIMARY','MOUSE_ALT','MOUSE_NONE','MOUSE_BOTH' )
-
-MouseMode = Enum ('CAMERA_FOLLOW','CAMERA_FORCE','CAMERA_CONTROL','PICK')
-
-class SimpleTutorial ( ogre.FrameListener, ois.KeyListener, BetaGUI.BetaGUIListener):
-
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-
- def __init__(self):
- ogre.FrameListener.__init__(self)
- ois.KeyListener.__init__(self)
- BetaGUI.BetaGUIListener.__init__(self)
-
- self.TutorialName = "???"
- self.TutorialDescription = "???"
- self.ShutdownNow = False
- self.MouseMode = MouseMode.PICK
- self.Construct = False
- self.settings={}
- self.TranslateVector = ogre.Vector3.ZERO
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def __del__(self):
- pass
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def Run(self):
-
- self.getSetup()
-
- self.resetConfig()
- self.getConfig()
-
- self.setupRenderSystem()
-
- cf =ogre.ConfigFile()
- cf.load("media/resources.cfg")
-
- seci = cf.getSectionIterator()
- while seci.hasMoreElements():
- SectionName = seci.peekNextKey()
- Section = seci.getNext()
- for item in Section:
- ogre.ResourceGroupManager.getSingleton().\
- addResourceLocation(item.value, item.key, SectionName)
-
- self.Window = self.Root.initialise(True, "NxOgre: " + self.TutorialName + " - " + self.TutorialDescription)
-
- self.SceneMgr = self.Root.createSceneManager(ogre.ST_GENERIC, "NxOgre")
- print "\nSM: ",self.SceneMgr ,"\n\n"
- self.Camera = self.SceneMgr.createCamera("MainCamera")
- self.Camera.setPosition(ogre.Vector3(0,0,0))
- self.Camera.lookAt(ogre.Vector3(0,0,0))
- self.Camera.setNearClipDistance(0.1)
-
- self.Viewport = self.Window.addViewport(self.Camera)
-
- if not self.Construct:
- self.Viewport.setBackgroundColour(ogre.ColourValue.Black)
- else:
- self.Viewport.setBackgroundColour(ogre.ColourValue.White)
- self.Camera.setAspectRatio(self.Viewport.getActualWidth() / self.Viewport.getActualHeight())
-
- ogre.TextureManager.getSingleton().setDefaultNumMipmaps(1)
- ogre.MaterialManager.getSingleton().setDefaultTextureFiltering(ogre.TFO_ANISOTROPIC)
- ogre.MaterialManager.getSingleton().setDefaultAnisotropy(8)
- ogre.ResourceGroupManager.getSingleton().initialiseAllResourceGroups()
-
- self.Overlay = ogre.OverlayManager.getSingleton().create("GUI")
- self.Overlay.setZOrder(549)
-
- loadingBackMat = "boot.any"
-
- if not ogre.MaterialManager.getSingleton().getByName("boot." + self.TutorialName):
- loadingBackMat = "boot." + self.TutorialName
-
- loadingBack = self.createOverlay("loadBack",ogre.Vector2(0,0),
- ogre.Vector2(self.Viewport.getActualWidth(),
- self.Viewport.getActualHeight()),loadingBackMat)
- loading = self.createOverlay("load",
- ogre.Vector2((self.Window.getWidth() / 2) - 64,(self.Window.getHeight() / 2) - 16),
- ogre.Vector2(128,32),"gui_loading")
-
- self.Overlay.show()
-
- self.Root.renderOneFrame()
-
- loading.hide()
- loadingBack.hide()
-
- self.createInputSys(self.Window)
-
- self.GUI = BetaGUI.GUI("nxogrefont",16)
-
- self.GUI_ExitWindow = self.GUI.createWindow(ogre.Vector4(self.Window.getWidth() - 128- 4,4,128,22),\
- "", BetaGUI.wt.NONE)
- self.GUI_ExitButton = self.GUI_ExitWindow.createButton(ogre.Vector4(128 - 22,0,22,22),
- "bgui.exit", "", BetaGUI.Callback(self))
- self.GUI_PauseButton = self.GUI_ExitWindow.createButton(ogre.Vector4(128 - (22 * 2) - 4,0,22,22),
- "bgui.pause", "", BetaGUI.Callback(self))
- self.GUI_DebugButton = self.GUI_ExitWindow.createButton(ogre.Vector4(128 - (22 * 3) - 4,0,22,22),
- "bgui.debug", "", BetaGUI.Callback(self))
-
- ##self.Pointer = createOverlay("Pointer", ogre.Vector2((self.Window.getWidth() / 2) - 16, (self.Window.getHeight() / 2) - 16), ogre.Vector2(32,32), "nx.arrow")
- ##self.Pointer.hide()
- self.Pointer = self.GUI.createMousePointer(ogre.Vector2(24,24), "bgui.pointer")
- self.GUI.injectMouse((self.Window.getWidth() / 2) - 16, (self.Window.getHeight() / 2) - 16, False)
- self.Pointer.hide()
-
- self.gui_pause = self.createOverlay("paused", ogre.Vector2(16, self.Window.getHeight() - 100 - 32),
- ogre.Vector2(128,128), "gui_pause")
- self.gui_pause.hide()
-
- self.gui_slowfast = self.createOverlay("slowfast", ogre.Vector2(16 + 100, self.Window.getHeight() - 100 - 32),
- ogre.Vector2(128,128), "", "0")
- self.gui_slowfast.hide()
-
- self.Camera.lookAt(0,0,0)
-
- self.Caption1 = self.createOverlay("caption.1",ogre.Vector2(8,128),ogre.Vector2(16,256),""," ")
- self.Caption2 = self.createOverlay("caption.2",ogre.Vector2(8,128 + 16),ogre.Vector2(16,256),""," ")
- self.Caption3 = self.createOverlay("caption.3",ogre.Vector2(8,self.Window.getHeight() - 16 - 8),
- ogre.Vector2(16,256),""," ")
-
-
- self.ApplicationStart()
-
- if not self.Construct :
- self.sg = self.SceneMgr.createStaticGeometry("grid")
- self.CreateEntNode("nx.floor2", ogre.Vector3(0,-0.05,0))
- self.CreateEntNode("nx.body.axis", ogre.Vector3(0,0,0))
- self.sg.build()
-
-
- if not self.Construct :
- self.SceneMgr.setFog(ogre.FOG_LINEAR, ogre.ColourValue.Black, 0.0005, 4000,4500)
- self.SceneMgr.setAmbientLight(ogre.ColourValue(0.6,0.6,0.6))
-
- else :
- self.SceneMgr.setFog(ogre.FOG_LINEAR, ogre.ColourValue.White, 0.0005, 4000,4500)
- self.SceneMgr.setAmbientLight(ogre.ColourValue(0.9,0.9,0.9))
-
-
- self.SceneMgr.setShadowTechnique( ogre.SHADOWTYPE_STENCIL_ADDITIVE )
-
- mLight = self.SceneMgr.createLight("SunLight")
- mLight.setPosition( ogre.Vector3(150, 100, -150) )
-
- if (self.MouseMode == MouseMode.PICK):
- self.Pointer.show()
-
- self.Root.addFrameListener(self)
-
- self.Root.startRendering()
-
- return True
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def setupRenderSystem(self):
- self.Root = ogre.Root("","","ogre.graphics.log")
- self.Root.loadPlugin("RenderSystem_Direct3D9")
- self.Root.loadPlugin("RenderSystem_GL")
- self.Root.loadPlugin("Plugin_ParticleFX")
-
- rs = "Direct3D9 Rendering Subsystem"
-
- pRenderSystemList = self.Root.getAvailableRenderers()
-
- for pRenderSystem in pRenderSystemList:
- if pRenderSystem.getName() == rs:
- self.RenderSystem = pRenderSystem
- break
- pRenderSystem+=1
-
- self.Root.setRenderSystem(self.RenderSystem)
-
- self.RenderSystem.setConfigOption("Full Screen", self.settings["fullscreen"])
- self.RenderSystem.setConfigOption("VSync", self.settings["vsync"])
-
- if rs == "Direct3D9 Rendering Subsystem" :
- self.RenderSystem.setConfigOption("Video Mode",
- self.settings["width"]
- + " x " + self.settings["height"]
- + " @ " + self.settings["depth"] + "-bit colour"
- )
-
- else :
- self.RenderSystem.setConfigOption("Video Mode", self.settings["width"] + " x " + self.settings["height"])
-
- self.RenderSystem.setConfigOption("Colour Depth",self.settings["depth"])
- ##self.RenderSystem.setConfigOption("FSAA", "2")
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def resetConfig(self):
-
- self.settings={}
- self.settings["device"] = "Direct3D9 Rendering Subsystem"
- self.settings["width"] = "800"
- self.settings["height"] = "600"
- self.settings["depth"] = "32"
- self.settings["aa"] = "0"
- self.settings["vsync"] = "No"
- self.settings["fullscreen"] = "No"
-
- self.keys={}
- self.keys[Key.QUIT] = ois.KC_ESCAPE
- self.keys[Key.SCREENSHOT] = ois.KC_F1
- self.keys[Key.DEBUG_MODE] = ois.KC_F2
- self.keys[Key.PAUSE] = ois.KC_F3
- self.keys[Key.SLOWER] = ois.KC_F4
- self.keys[Key.FASTER] = ois.KC_F5
- self.keys[Key.RESET_SCENE] = ois.KC_F12
- self.keys[Key.OPTION_1] = ois.KC_1
- self.keys[Key.OPTION_2] = ois.KC_2
- self.keys[Key.OPTION_3] = ois.KC_3
- self.keys[Key.OPTION_4] = ois.KC_4
- self.keys[Key.PAN_FORWARD] = ois.KC_W
- self.keys[Key.PAN_BACKWARD] = ois.KC_S
- self.keys[Key.PAN_LEFT] = ois.KC_A
- self.keys[Key.PAN_RIGHT] = ois.KC_D
- self.keys[Key.PAN_UP] = ois.KC_Q
- self.keys[Key.PAN_DOWN] = ois.KC_Z
- self.keys[Key.X] = ois.KC_J
- self.keys[Key.NEG_X] = ois.KC_L
- self.keys[Key.Y] = ois.KC_U
- self.keys[Key.NEG_Y] = ois.KC_M
- self.keys[Key.Z] = ois.KC_I
- self.keys[Key.NEG_Z] = ois.KC_K
-
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def getConfig(self):
-
- cf=ogre.ConfigFile()
- cf.load("config.yaml",":",True)
-
- seci = cf.getSectionIterator()
- while (seci.hasMoreElements()):
- secName = seci.peekNextKey()
- csettings = seci.getNext()
- for i in csettings:
- if (i.key == "device") :
- if (i.value == "dx9") :
- self.settings["device"] = "Direct3D9 Rendering Subsystem"
- else :
- self.settings["device"] = "OpenGL Rendering Subsystem" ## Check..
- elif (i.key == "width") :
- self.settings["width"] = i.value # str(i.value) ## AJM may have to parse int???
-
- elif (i.key == "height") :
- self.settings["height"] = i.value #str(i.value)
-
- elif (i.key == "depth") :
- self.settings["depth"] = i.value #str(i.value)
-
- elif (i.key == "aa") :
- self.settings["aa"] = i.value #str(i.value)
-
- elif (i.key == "fullscreen") :
- self.settings["fullscreen"] = i.value
-
- elif (i.key == "vsync") :
- self.settings["aa"] = i.value
-
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def createInputSys(self, _window):
- ogre.LogManager.getSingletonPtr().logMessage("*** Initializing OIS ***")
-
- windowHnd = self.Window.getCustomAttributeInt("WINDOW")
- self.InputManager = \
- ois.createPythonInputSystem([("WINDOW",str(windowHnd))])
-
- self.Keyboard = self.InputManager.createInputObjectKeyboard( ois.OISKeyboard, True )
- self.Mouse = self.InputManager.createInputObjectMouse( ois.OISMouse, True )
- self.Keyboard.setEventCallback(self)
- self.Keyboard.setBuffered(True)
-
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def onButtonPress(self, ref):
-
- if ref == self.GUI_ExitButton:
- self.ShutdownNow = True
-
- if ref == self.GUI_PauseButton and self.timeSince >= 0.5:
- if self.World.isPaused():
- nxogre.self.World.resume()
- self.GUI_PauseButton.mmn = "bgui.pause"
- self.GUI_PauseButton.mma = "bgui.pause.active"
-
- else :
- self.World.pause()
- self.GUI_PauseButton.mmn = "bgui.play"
- self.GUI_PauseButton.mma = "bgui.play.active"
-
- self.timeSince = 0.0
-
-
-
- if ref == self.GUI_DebugButton and self.timeSince >= 0.25 :
- self.World.showDebugOverlay(self.Camera, self.Window)
- self.World.debug( self.World.isDebugRendering() ^ 1)
-
- if (self.World.isDebugRendering()) :
- self.GUI_DebugButton.mmn = "bgui.debugon"
- self.GUI_DebugButton.mma = "bgui.debugon.active"
-
- else :
- self.GUI_DebugButton.mmn = "bgui.debug"
- self.GUI_DebugButton.mma = "bgui.debug.active"
-
- self.timeSince = 0.0
-
- self.GUIbuttonPressed(ref)
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def captureInput(self):
- self.Keyboard.capture()
- self.Mouse.capture()
-
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def isKeyDown(self, k):
- return self.Keyboard.isKeyDown(self.keys[k])
-
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def keyPressed( self, arg ):
- if (arg.text == 8) :
- self.GUI.injectBackspace(self.Pointer.getLeft(), self.Pointer.getTop())
- return True
-
- if (arg.text < 32 or arg.text > 126):
- return True
-
- k = chr(arg.text)
- self.GUI.injectKey(k, self.Pointer.getLeft(), self.Pointer.getTop())
- return True
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def keyReleased( self, arg ):
- ##self.GUI.injectKey(self.Keyboard.getAsString((OIS.KeyCode) arg.text), self.Pointer.getLeft(), self.Pointer.getTop())
- return True
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def getRMouseX(self):
- ms = self.Mouse.getMouseState()
- return ms.X.rel
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def getRMouseY(self):
- ms = self.Mouse.getMouseState()
- return ms.Y.rel
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def getRMouseZ(self):
- ms = self.Mouse.getMouseState()
- return ms.Z.rel
-
- ##//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
- def getMouseButton(self):
-
- ms = self.Mouse.getMouseState()
-
- if ms.buttons == 1:
- return Key.MOUSE_PRIMARY
- elif ms.buttons == 2:
- return Key.MOUSE_ALT
- elif ms.buttons == 3:
- return Key.MOUSE_BOTH
- else:
- ...
[truncated message content] |