From: <and...@us...> - 2007-10-20 01:23:46
|
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] |