Revision: 609
http://python-ogre.svn.sourceforge.net/python-ogre/?rev=609&view=rev
Author: andy_miller
Date: 2008-06-23 03:00:51 -0700 (Mon, 23 Jun 2008)
Log Message:
-----------
Further Demo fixes for !.2 release
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/OgreNewt/conveyorBelt.py
trunk/python-ogre/demos/OgreNewt/ragdoll.py
trunk/python-ogre/demos/ogre/CompositorDemo_FrameListener.py
trunk/python-ogre/demos/ogre/Demo_OgreCollision02.py
trunk/python-ogre/demos/ogre/Demo_OneFish.py
trunk/python-ogre/demos/ogre/Demo_RenderToTexture.py
trunk/python-ogre/demos/ogre/Demo_Shadows.py
trunk/python-ogre/demos/ogrebullet/Demo_OgreCollision01.py
trunk/python-ogre/demos/particleuniverse/ogre.cfg
Removed Paths:
-------------
trunk/python-ogre/demos/particleuniverse/SampleFramework.py
Modified: trunk/python-ogre/demos/OgreNewt/Demo01_TheBasics.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo01_TheBasics.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/OgreNewt/Demo01_TheBasics.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -41,7 +41,6 @@
## the "primitives" directory to make this simple... all of them have a basic size of "1" so that they
## can easily be scaled to fit any size primitive.
floor = self.sceneManager.createEntity("Floor", "cylinder.mesh" )
- floor.setNormaliseNormals(True)
floornode = self.sceneManager.getRootSceneNode().createChildSceneNode( "FloorNode" )
floornode.attachObject( floor )
floor.setMaterialName( "Examples/DarkMaterial" )
@@ -147,13 +146,13 @@
if (self.timer <= 0.0):
## we get the position and direction from the camera...
- camorient = self.msnCam.getWorldOrientation()
+ camorient = self.msnCam.getOrientation()
vec = Ogre.Vector3(0,0,-1)
direct = camorient * vec
## then make the visual object (again a cylinder)
#pos = Ogre.Vector3(self.msnCam.getWorldPosition())
- pos = self.msnCam.getWorldPosition()
+ pos = self.msnCam.getPosition()
name = "Body"+str( self.count )
self.count += 1
@@ -165,7 +164,7 @@
node.setPosition(0.0, 0.0, 0.0)
ent.setMaterialName( "Examples/RustySteel" )
- ent.setNormaliseNormals(True)
+
## again, make the collision shape.
##col = OgreNewt.CollisionPrimitives.Cylinder(self.World, 1, 1)
Modified: trunk/python-ogre/demos/OgreNewt/Demo02_Joints.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo02_Joints.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/OgreNewt/Demo02_Joints.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -44,8 +44,7 @@
box1node = self.sceneManager.getRootSceneNode().createChildSceneNode()
box1node.attachObject( box1 )
box1node.setScale( size )
- box1.setNormaliseNormals(True)
-
+
col = OgreNewt.Box( self.World, size )
bod = OgreNewt.Body( self.World, col )
del col
@@ -206,13 +205,13 @@
if (self.timer <= 0.0):
## we get the position and direction from the camera...
- camorient = self.msnCam.getWorldOrientation()
+ camorient = self.msnCam.getOrientation()
vec = Ogre.Vector3(0,0,-1)
direct = camorient * vec
## then make the visual object (again a cylinder)
#pos = Ogre.Vector3(self.msnCam.getWorldPosition())
- pos = self.msnCam.getWorldPosition()
+ pos = self.msnCam.getPosition()
name = "Body"+str( self.count )
self.count += 1
@@ -222,7 +221,6 @@
node.attachObject( ent )
ent.setMaterialName( "Examples/RustySteel" )
- ent.setNormaliseNormals(True)
## again, make the collision shape.
Modified: trunk/python-ogre/demos/OgreNewt/Demo03_CollisionCallbacks.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo03_CollisionCallbacks.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/OgreNewt/Demo03_CollisionCallbacks.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -172,7 +172,7 @@
size = Ogre.Vector3 ( 0.2 + random.random() % 2, 0.2 + random.random() % 2, 0.2 + random.random() % 2 )
mass = size.length()
- pos = self.msnCam.getWorldPosition()
+ pos = self.msnCam.getPosition()
name = "Body "+str( self.count )
self.count += 1
@@ -184,7 +184,6 @@
node.setScale( size )
ent.setMaterialName( "Examples/RustySteel" )
- ent.setNormaliseNormals(True)
col =OgreNewt.Box( self.World, size )
body = OgreNewt.Body( self.World, col )
Modified: trunk/python-ogre/demos/OgreNewt/Demo04_RayCasting.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo04_RayCasting.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/OgreNewt/Demo04_RayCasting.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -154,8 +154,7 @@
box1node = self.sceneManager.getRootSceneNode().createChildSceneNode()
box1node.attachObject( box1 )
box1node.setScale( size )
- box1.setNormaliseNormals(True)
-
+
col = OgreNewt.Box( self.World, size )
bod = OgreNewt.Body( self.World, col )
del col
Modified: trunk/python-ogre/demos/OgreNewt/Demo05_SimpleVehicle.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo05_SimpleVehicle.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/OgreNewt/Demo05_SimpleVehicle.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -91,8 +91,7 @@
box1node = self.sceneManager.getRootSceneNode().createChildSceneNode()
box1node.attachObject( box1 )
box1node.setScale( size )
- box1.setNormaliseNormals(True)
-
+
col = OgreNewt.Box( self.World, size )
bod = OgreNewt.Body( self.World, col )
del col
@@ -195,7 +194,6 @@
node.setPosition(0.0, 0.0, 0.0)
ent.setMaterialName( "Examples/RustySteel" )
- #ent.setNormaliseNormals(True)
## again, make the collision shape.
col = OgreNewt.Ellipsoid(self.World, Ogre.Vector3(1,1,1))
Modified: trunk/python-ogre/demos/OgreNewt/Demo06_SimpleBuoyancy.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo06_SimpleBuoyancy.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/OgreNewt/Demo06_SimpleBuoyancy.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -188,7 +188,6 @@
box1node = self.sceneManager.getRootSceneNode().createChildSceneNode()
box1node.attachObject( box1 )
box1node.setScale( size )
- box1.setNormaliseNormals(True)
col = OgreNewt.Box( self.World, size )
bod = OgreNewt.Body( self.World, col )
Modified: trunk/python-ogre/demos/OgreNewt/Demo07_CustomJoints.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo07_CustomJoints.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/OgreNewt/Demo07_CustomJoints.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -43,8 +43,7 @@
box1node = self.sceneManager.getRootSceneNode().createChildSceneNode()
box1node.attachObject( box1 )
box1node.setScale( size )
- box1.setNormaliseNormals(True)
-
+
col = OgreNewt.Box( self.World, size )
bod = OgreNewt.Body( self.World, col )
del col
@@ -181,12 +180,12 @@
if (self.Keyboard.isKeyDown(OIS.KC_SPACE)):
if (self.timer <= 0.0):
## we get the position and direction from the camera...
- camorient = self.msnCam.getWorldOrientation()
+ camorient = self.msnCam.getOrientation()
vec = Ogre.Vector3(0,0,-1)
direct = camorient * vec
## then make the visual object (again a cylinder)
- pos = self.msnCam.getWorldPosition()
+ pos = self.msnCam.getPosition()
name = "Body"+str( self.count )
self.count += 1
@@ -197,8 +196,7 @@
node.setPosition(0.0, 0.0, 0.0)
ent.setMaterialName( "Examples/RustySteel" )
- ent.setNormaliseNormals(True)
-
+
## again, make the collision shape.
col = OgreNewt.Ellipsoid(self.World, Ogre.Vector3(1, 1,1))
## then make the rigid body. ## need to keep it arround
Modified: trunk/python-ogre/demos/OgreNewt/Demo08_Ragdoll.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/Demo08_Ragdoll.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/OgreNewt/Demo08_Ragdoll.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -154,13 +154,13 @@
if (self.timer <= 0.0):
## we get the position and direction from the camera...
- camorient = self.msnCam.getWorldOrientation()
+ camorient = self.msnCam.getOrientation()
vec = Ogre.Vector3(0,0,-1)
direct = camorient * vec
## then make the visual object (again a cylinder)
#pos = Ogre.Vector3(self.msnCam.getWorldPosition())
- pos = self.msnCam.getWorldPosition()
+ pos = self.msnCam.getPosition()
name = "Body"+str( self.count )
self.count += 1
@@ -170,8 +170,7 @@
node.attachObject( ent )
ent.setMaterialName( "Examples/RustySteel" )
- ent.setNormaliseNormals(True)
-
+
## again, make the collision shape.
col = OgreNewt.Ellipsoid(self.World, Ogre.Vector3(1,1,1))
Modified: trunk/python-ogre/demos/OgreNewt/conveyorBelt.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/conveyorBelt.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/OgreNewt/conveyorBelt.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -21,7 +21,6 @@
ent = self.sceneManager.createEntity(name, "box.mesh")
ent.setMaterialName(name)
- ent.setNormaliseNormals(True)
self.Node.attachObject(ent)
self.Node.setScale( size )
@@ -43,7 +42,7 @@
def getGlobalDir(self):
- ret = self.Node.getWorldOrientation() * self.mDir
+ ret = self.Node.getOrientation() * self.mDir
return ret
def killme(self):
Modified: trunk/python-ogre/demos/OgreNewt/ragdoll.py
===================================================================
--- trunk/python-ogre/demos/OgreNewt/ragdoll.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/OgreNewt/ragdoll.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -254,7 +254,7 @@
##############################################################################/
## position the bone.
- boneorient = self.Node.getWorldOrientation() * ogrebone._getDerivedOrientation()
+ boneorient = self.Node.getOrientation() * ogrebone._getDerivedOrientation()
if (shape != RagDoll.RagBone.BS_CONVEXHULL):
bonepos = self.Node._getFullTransform() * ogrebone._getDerivedPosition() + (boneorient * (dire * (length*0.5)))
else:
@@ -263,8 +263,8 @@
## set offsets
if (not parent):
- offsetorient = (boneorient.Inverse()) * self.Node.getWorldOrientation()
- offsetpos = boneorient.Inverse() * (self.Node.getWorldPosition() - bonepos)
+ offsetorient = (boneorient.Inverse()) * self.Node.getOrientation()
+ offsetpos = boneorient.Inverse() * (self.Node.getPosition() - bonepos)
me.setOffset( offsetorient, offsetpos )
## get the joint to connect self bone with it's parent.
@@ -291,7 +291,7 @@
limit2 = float( joint.getAttribute("limit2") )
jpos = self.Node._getFullTransform() * ogrebone._getDerivedPosition()
- jpin = (self.Node.getWorldOrientation() * parent.getOgreBone()._getDerivedOrientation()) * jointpin
+ jpin = (self.Node.getOrientation() * parent.getOgreBone()._getDerivedOrientation()) * jointpin
self._joinBones( jointtype, parent, me, jpos, jpin, limit1, limit2)
Modified: trunk/python-ogre/demos/ogre/CompositorDemo_FrameListener.py
===================================================================
--- trunk/python-ogre/demos/ogre/CompositorDemo_FrameListener.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/ogre/CompositorDemo_FrameListener.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -398,7 +398,7 @@
self.mKeyboard = self.mInputManager.createInputObjectKeyboard( OIS.OISKeyboard, True )
self.mMouse = self.mInputManager.createInputObjectMouse( OIS.OISMouse, True )
- width, height, depth, left, top = self.mMain.getRenderWindow().getMetrics()
+ width, height, depth, left, top = self.mMain.getRenderWindow().getMetrics(1,1,1,1,1)
##Set Mouse Region.. if window resizes, we should alter this to reflect as well
ms = self.mMouse.getMouseState()
@@ -554,26 +554,26 @@
##--------------------------------------------------------------------------
def updateStats(self):
- currFps = "current FPS: "
+ currFps = "Last FPS: "
avgFps = "Average FPS: "
bestFps = "Best FPS: "
worstFps = "Worst FPS: "
tris = "Triangle Count: "
-
- stats = self.mMain.getRenderWindow().getStatisticsList()
+# print dir( self.mMain.getRenderWindow() )
+ stats = self.mMain.getRenderWindow().getStatistics()
# print stats
# print dir(stats)
- self.mGuiAvg.setText(avgFps + str(stats[1]))
- self.mGuiCurr.setText(currFps + str(stats[0]))
-# self.mGuiBest.setText(bestFps + str(stats[2])
+ self.mGuiAvg.setText(avgFps + str(stats.avgFPS))
+ self.mGuiCurr.setText(currFps + str(stats.lastFPS))
+# self.mGuiBest.setText(bestFps + str(stats.bestFPS)
# + " " + str(stats.bestFrameTime)+" ms")
-# self.mGuiWorst.setText(worstFps + str(stats[3])
+# self.mGuiWorst.setText(worstFps + str(stats.worstFPS)
# + " " + str(stats.worstFrameTime)+" ms")
# self.mGuiTris.setText(tris + str(stats.triangleCount))
self.mGuiDbg.setText(self.mDebugText)
- self.mAvgFrameTime = 1.0/(stats[1] + 1.0)
+ self.mAvgFrameTime = 1.0/(stats.avgFPS + 1.0)
if (self.mAvgFrameTime > 0.1): self.mAvgFrameTime = 0.1
Modified: trunk/python-ogre/demos/ogre/Demo_OgreCollision02.py
===================================================================
--- trunk/python-ogre/demos/ogre/Demo_OgreCollision02.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/ogre/Demo_OgreCollision02.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -20,7 +20,7 @@
TypeOgre=0
TypeODE=1
-AppType = TypeODE
+AppType = TypeOgre
class OgreCollideApplication(sf.Application):
#
@@ -173,7 +173,6 @@
entity = self.sceneManager.createEntity(name, names[i % len(names)] + ".mesh")
node = self.sceneManager.getRootSceneNode().createChildSceneNode(name)
node.attachObject(entity)
- entity.setNormaliseNormals(True)
entity.setCastShadows(True)
## Pick a size
scale= 100
Modified: trunk/python-ogre/demos/ogre/Demo_OneFish.py
===================================================================
--- trunk/python-ogre/demos/ogre/Demo_OneFish.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/ogre/Demo_OneFish.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -87,14 +87,14 @@
entity = sceneManager.createEntity("Ninja", "ninja.mesh")
- ninjaNode = sceneManager.rootSceneNode.createChildSceneNode("NinjaNode",ogre.Vector3(0,0,0))
+ ninjaNode = sceneManager.getRootSceneNode().createChildSceneNode("NinjaNode",ogre.Vector3(0,0,0))
ninjaNode.yaw( ogre.Degree(-180))
ninjaNode.attachObject(entity)
entity.castShadows = True
entity = sceneManager.createEntity("Wanda", "fish.mesh")
- fishNode = sceneManager.rootSceneNode.createChildSceneNode("fishNode",ogre.Vector3(0,0,0))
+ fishNode = sceneManager.getRootSceneNode().createChildSceneNode("fishNode",ogre.Vector3(0,0,0))
fishNode.setScale (5,5,5)
fishNode.attachObject(entity)
entity.castShadows = True
@@ -204,7 +204,7 @@
True,True )
ent = sceneManager.createEntity("GroundEntity", "ground")
- sceneManager.rootSceneNode.createChildSceneNode().attachObject(ent)
+ sceneManager.getRootSceneNode().createChildSceneNode().attachObject(ent)
ent.setMaterialName("Examples/Rockwall")
ent.castShadows = False
@@ -215,13 +215,13 @@
light.setSpecularColour (1, 1, 1)
# create the first camera node/pitch node
- node = sceneManager.rootSceneNode.createChildSceneNode("CamNode1", ogre.Vector3(0, 100, 300))
+ node = sceneManager.getRootSceneNode().createChildSceneNode("CamNode1", ogre.Vector3(0, 100, 300))
node.yaw(ogre.Degree(0)) # look at the ninja
node = node.createChildSceneNode("PitchNode1")
node.attachObject(self.camera)
# create the second camera node/pitch node
- node = sceneManager.rootSceneNode.createChildSceneNode("CamNode2", ogre.Vector3(-100, 100, 400))
+ node = sceneManager.getRootSceneNode().createChildSceneNode("CamNode2", ogre.Vector3(-100, 100, 400))
node.createChildSceneNode("PitchNode2")
def _createCamera(self):
Modified: trunk/python-ogre/demos/ogre/Demo_RenderToTexture.py
===================================================================
--- trunk/python-ogre/demos/ogre/Demo_RenderToTexture.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/ogre/Demo_RenderToTexture.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -67,18 +67,7 @@
self.camera.NearClipDistance = 5
def __del__ ( self ):
- print "1"
- del self.camera
- print "1"
- del self.sceneManager
- print "1"
- del self.frameListener
- print "1"
- del self.root
- print "1"
- del self.renderWindow
- print "1"
-
+ sf.Application.__del__(self)
def _createScene(self):
"Override sf create scene"
@@ -148,18 +137,15 @@
node.attachObject( ogreHead )
- ## Either of these techniques works...
- # create RenderTexture
- if ogre.GetPythonOgreVersion()[1] == '1' and int(ogre.GetPythonOgreVersion()[1]) < 2: ## Python Ogre after 1.2 has API changes
- rttTex = self.root.getRenderSystem().createRenderTexture( "RttTex", 512, 512,
- ogre.TEX_TYPE_2D,ogre.PixelFormat.PF_R8G8B8 )
- else:
- texture = ogre.TextureManager.getSingleton().createManual( "RttTex",
+ ## Setup Render To Texture for preview window
+ texture = ogre.TextureManager.getSingleton().createManual( "RttTex",
ogre.ResourceGroupManager.DEFAULT_RESOURCE_GROUP_NAME, ogre.TEX_TYPE_2D,
512, 512, 0, ogre.PixelFormat.PF_R8G8B8, ogre.TU_RENDERTARGET )
- rttTex = texture.getBuffer().getRenderTarget()
-
+ rttTex = texture.getBuffer().getRenderTarget()
+
+
+
self.mReflectCam = sceneManager.createCamera("ReflectCam")
self.mReflectCam.setNearClipDistance(camera.getNearClipDistance())
self.mReflectCam.setFarClipDistance(camera.getFarClipDistance())
Modified: trunk/python-ogre/demos/ogre/Demo_Shadows.py
===================================================================
--- trunk/python-ogre/demos/ogre/Demo_Shadows.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/ogre/Demo_Shadows.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -722,7 +722,7 @@
self.mGUISystem.setDefaultMouseCursor("TaharezLook", "MouseArrow")
self.mGUISystem.setDefaultFont("BlueHighway-12")
- sheet = CEGUI.WindowManager.getSingleton().loadWindowLayout( "shadows.layout")
+ sheet = CEGUI.WindowManager.getSingleton().loadWindowLayout( "shadows.layout", False)
self.mGUISystem.setGUISheet(sheet)
## Tooltips aren't big enough, do our own
Modified: trunk/python-ogre/demos/ogrebullet/Demo_OgreCollision01.py
===================================================================
--- trunk/python-ogre/demos/ogrebullet/Demo_OgreCollision01.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/ogrebullet/Demo_OgreCollision01.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -148,7 +148,6 @@
mesh)
entity.setQueryFlags ( 1<<2 ) ##GEOMETRY_QUERY_MASK)
- entity.setNormaliseNormals(True)
entity.setCastShadows(True)
entity.setMaterialName(material)
@@ -213,7 +212,6 @@
entity = self.sceneManager.createEntity(name, entityname + ".mesh")
# entity.setQueryFlags ( 1<<2 ) ##GEOMETRY_QUERY_MASK)
- entity.setNormaliseNormals(True)
entity.setCastShadows(True)
# # # # entity.setMaterialName(material)
Deleted: trunk/python-ogre/demos/particleuniverse/SampleFramework.py
===================================================================
--- trunk/python-ogre/demos/particleuniverse/SampleFramework.py 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/particleuniverse/SampleFramework.py 2008-06-23 10:00:51 UTC (rev 609)
@@ -1,468 +0,0 @@
-# This code is in the Public Domain
-# -----------------------------------------------------------------------------
-# This source file is part of Python-Ogre
-# For the latest info, see http://python-ogre.org/
-#
-# It is likely based on original code from OGRE and/or PyOgre
-# For the latest info, see http://www.ogre3d.org/
-#
-# You may use this sample code for anything you like, it is not covered by the
-# LGPL.
-# -----------------------------------------------------------------------------
-import ogre.renderer.OGRE as ogre
-import ogre.io.OIS as OIS
-
-from Enums import *
-
-Action = 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','MODIFIER',
- 'MOUSE_PRIMARY','MOUSE_ALT','MOUSE_NONE','MOUSE_BOTH', 'MOUSE_LOOK' )
-
-def getPluginPath():
- """Return the absolute path to a valid plugins.cfg file."""
- import sys
- import os
- import os.path
-
- paths = [os.path.join(os.getcwd(), 'plugins.cfg'),
- '/etc/OGRE/plugins.cfg',
- os.path.join(os.path.dirname(os.path.abspath(__file__)),
- 'plugins.cfg')]
- for path in paths:
- if os.path.exists(path):
- return path
-
- sys.stderr.write("\n"
- "** Warning: Unable to locate a suitable plugins.cfg file.\n"
- "** Warning: Please check your ogre installation and copy a\n"
- "** Warning: working plugins.cfg file to the current directory.\n\n")
- raise ogre.Exception(0, "can't locate the 'plugins.cfg' file", "")
-
-class Application(object):
- "This class is the base for an Ogre application."
- debugText=""
-
- def __init__(self):
- self.frameListener = None
- self.root = None
- self.camera = None
- self.renderWindow = None
- self.sceneManager = None
- self.world = None
-
- def __del__(self):
- "Clear variables, this should not actually be needed."
- del self.camera
- del self.sceneManager
- del self.frameListener
- if self.world:
- del self.world
- del self.root
- del self.renderWindow
-
- def go(self):
- "Starts the rendering loop."
- if not self._setUp():
- return
- if self._isPsycoEnabled():
- self._activatePsyco()
- self.root.startRendering()
-
- def goOneFrame(self):
- "Starts the rendering loop. Show how to use the renderOneFrame Method"
- if not self._setUp():
- return
- if self._isPsycoEnabled():
- self._activatePsyco()
-
- self.root.getRenderSystem()._initRenderTargets()
- while True:
- ogre.WindowEventUtilities().messagePump()
- if not self.root.renderOneFrame():
- break
-
-
-
- def _setUp(self):
- """This sets up the ogre application, and returns false if the user
- hits "cancel" in the dialog box."""
- self.root = ogre.Root(getPluginPath())
- self.root.setFrameSmoothingPeriod (5.0)
-
- self._setUpResources()
- if not self._configure():
- return False
-
- self._chooseSceneManager()
- self._createWorld()
- self._createCamera()
- self._createViewports()
-
- ogre.TextureManager.getSingleton().setDefaultNumMipmaps (5)
-
- self._createResourceListener()
- self._loadResources()
-
- self._createScene()
- self._createFrameListener()
- return True
-
- def _setUpResources(self):
- """This sets up Ogre's resources, which are required to be in
- resources.cfg."""
- config = ogre.ConfigFile()
- config.load('resources.cfg' )
- seci = config.getSectionIterator()
- while seci.hasMoreElements():
- SectionName = seci.peekNextKey()
- Section = seci.getNext()
- for item in Section:
- ogre.ResourceGroupManager.getSingleton().\
- addResourceLocation(item.value, item.key, SectionName)
-
- def _createResourceListener(self):
- """This method is here if you want to add a resource listener to check
- the status of resources loading."""
- pass
-
- def _createWorld ( self ):
- """ this should be overridden when supporting the OgreRefApp framework. Also note you
- will have to override __createCamera"""
- pass
-
- def _loadResources(self):
- """This loads all initial resources. Redefine this if you do not want
- to load all resources at startup."""
- ogre.ResourceGroupManager.getSingleton().initialiseAllResourceGroups()
-
- def _configure(self):
- """This shows the config dialog and creates the renderWindow."""
- carryOn = self.root.showConfigDialog()
- if carryOn:
- self.renderWindow = self.root.initialise(True, "OGRE Render Window")
- return carryOn
-
- def _chooseSceneManager(self):
- """Chooses a default SceneManager."""
- #typedef uint16 SceneTypeMask;
- #md=ogre.SceneManagerMetaData()
- #md.sceneTypeMask=ogre.ST_GENERIC
- #print dir(self.root)
- self.sceneManager = self.root.createSceneManager(ogre.ST_GENERIC,"ExampleSMInstance")
-
- def _createCamera(self):
- """Creates the camera."""
- self.camera = self.sceneManager.createCamera('PlayerCam')
- self.camera.setPosition(ogre.Vector3(0, 0, 500))
- self.camera.lookAt(ogre.Vector3(0, 0, -300))
- self.camera.NearClipDistance = 5
-
- def _createViewports(self):
- """Creates the Viewport."""
- ## We want a single sampleframework so this work around is to support OgreRefApp Framework
- ## if using the RefApp camera is based upon World etc etc
- try:
- self.viewport = self.renderWindow.addViewport(self.camera.getRealCamera())
- except AttributeError:
- self.viewport = self.renderWindow.addViewport(self.camera)
- self.viewport.BackgroundColour = ogre.ColourValue(0,0,0)
-
- def _createScene(self):
- """Creates the scene. Override this with initial scene contents."""
- pass
-
- def _createFrameListener(self):
- """Creates the FrameListener."""
- #,self.frameListener, self.frameListener.Mouse
- self.frameListener = FrameListener(self.renderWindow, self.camera)
- self.frameListener.showDebugOverlay(True)
- self.root.addFrameListener(self.frameListener)
-
- def _isPsycoEnabled(self):
- """Override this function and return True to turn on Psyco"""
- return False
-
- def _activatePsyco(self):
- """Import Psyco if available"""
- try:
- import psyco
- psyco.full()
- except ImportError:
- pass
-
-
-class FrameListener(ogre.FrameListener, ogre.WindowEventListener):
- """A default frame listener, which takes care of basic mouse and keyboard
- input."""
-
- def __init__(self, renderWindow, camera, bufferedKeys = False, bufferedMouse = True, bufferedJoy = False):
- ogre.FrameListener.__init__(self)
- ogre.WindowEventListener.__init__(self)
- self.camera = camera
- self.renderWindow = renderWindow
- self.statisticsOn = True
- self.numScreenShots = 0
- self.timeUntilNextToggle = 0
- self.sceneDetailIndex = 0
- self.moveScale = 0.0
- self.rotationScale = 0.0
- self.translateVector = ogre.Vector3(0.0,0.0,0.0)
- self.filtering = ogre.TFO_BILINEAR
- self.showDebugOverlay(True)
- self.moveSpeed = 100.0
- self.rotationSpeed = 8.0
- self.displayCameraDetails = False
- self.bufferedKeys = bufferedKeys
- self.bufferedMouse = bufferedMouse
- self.bufferedJoy = bufferedJoy
- self.MenuMode = False # lets understand a simple menu function
- ## we can tell if we are using OgreRefapp based upon the camera class
-
- if self.camera.__class__ == ogre.Camera:
- self.RefAppEnable = False
- else:
- self.RefAppEnable = True
- self._setupInput()
-
- def __del__ (self ):
- ogre.WindowEventUtilities.removeWindowEventListener(self.renderWindow, self)
- self.windowClosed(self.renderWindow)
-
- def _setupInput(self):
- # ignore buffered input
-
- windowHnd = self.renderWindow.getCustomAttributeInt("WINDOW")
- self.InputManager = \
- OIS.createPythonInputSystem([("WINDOW",str(windowHnd))])
-
- #pl = OIS.ParamList()
- #windowHndStr = str ( windowHnd)
- #pl.insert("WINDOW", windowHndStr)
- #im = OIS.InputManager.createInputSystem( pl )
-
- #Create all devices (We only catch joystick exceptions here, as, most people have Key/Mouse)
- self.Keyboard = self.InputManager.createInputObjectKeyboard( OIS.OISKeyboard, self.bufferedKeys )
- self.Mouse = self.InputManager.createInputObjectMouse( OIS.OISMouse, self.bufferedMouse )
- try:
- self.Joy = self.InputManager.createInputObjectJoyStick( OIS.OISJoyStick, self.bufferedJoy )
- except:
- self.Joy = False
-#
- #Set initial mouse clipping size
- self.windowResized(self.renderWindow)
-
- self.showDebugOverlay(True)
-
- #Register as a Window listener
- ogre.WindowEventUtilities.addWindowEventListener(self.renderWindow, self);
-
- def setMenuMode(self, mode):
- self.MenuMode = mode
-
- def _UpdateSimulation( self, frameEvent ):
- # create a real version of this to update the simulation
- pass
-
- def windowResized (self, rw):
- [width, height, depth, left, top] = rw.getMetrics() # Note the wrapped function as default needs unsigned int's
- ms = self.Mouse.getMouseState()
- ms.width = width
- ms.height = height
-
- def windowClosed(self, rw):
- #Only close for window that created OIS (mWindow)
- if( rw == self.renderWindow ):
- if( self.InputManager ):
- self.InputManager.destroyInputObjectMouse( self.Mouse )
- self.InputManager.destroyInputObjectKeyboard( self.Keyboard )
- if self.Joy:
- self.InputManager.destroyInputObjectJoyStick( self.Joy )
- OIS.InputManager.destroyInputSystem(self.InputManager)
- self.InputManager=None
-
- def frameStarted(self, frameEvent):
- if(self.renderWindow.isClosed()):
- return False
-
- ##Need to capture/update each device - this will also trigger any listeners
- self.Keyboard.capture()
- self.Mouse.capture()
- if( self.Joy ):
- self.Joy.capture()
-
- ##bool buffJ = (mJoy) ? mJoy->buffered() : true;
-
- if self.timeUntilNextToggle >= 0:
- self.timeUntilNextToggle -= frameEvent.timeSinceLastFrame
-
- if frameEvent.timeSinceLastFrame == 0:
- self.moveScale = 1
- self.rotationScale = 0.1
- else:
- self.moveScale = self.moveSpeed * frameEvent.timeSinceLastFrame
- self.rotationScale = self.rotationSpeed * frameEvent.timeSinceLastFrame
-
- self.rotationX = ogre.Degree(0.0)
- self.rotationY = ogre.Degree(0.0)
- self.translateVector = ogre.Vector3(0.0, 0.0, 0.0)
- if not self._processUnbufferedKeyInput(frameEvent):
- return False
-
- if not self.MenuMode: # if we are in Menu mode we don't move the camera..
- self._processUnbufferedMouseInput(frameEvent)
- self._moveCamera()
- # Perform simulation step only if using OgreRefApp. For simplicity create a function that simply does
- ### "OgreRefApp.World.getSingleton().simulationStep(frameEvent.timeSinceLastFrame)"
-
- if self.RefAppEnable:
- self._UpdateSimulation( frameEvent )
- return True
-
- def frameEnded(self, frameEvent):
- self._updateStatistics()
- return True
-
- def showDebugOverlay(self, show):
- """Turns the debug overlay (frame statistics) on or off."""
- overlay = ogre.OverlayManager.getSingleton().getByName('Core/DebugOverlay')
- if overlay is None:
- raise ogre.Exception(111, "Could not find overlay Core/DebugOverlay", "SampleFramework.py")
- if show:
- overlay.show()
- else:
- overlay.hide()
-
- def _processUnbufferedKeyInput(self, frameEvent):
- if self.Keyboard.isKeyDown(OIS.KC_A):
- self.translateVector.x = -self.moveScale
-
- if self.Keyboard.isKeyDown(OIS.KC_D):
- self.translateVector.x = self.moveScale
-
- if self.Keyboard.isKeyDown(OIS.KC_UP) or self.Keyboard.isKeyDown(OIS.KC_W):
- self.translateVector.z = -self.moveScale
-
- if self.Keyboard.isKeyDown(OIS.KC_DOWN) or self.Keyboard.isKeyDown(OIS.KC_S):
- self.translateVector.z = self.moveScale
-
- if self.Keyboard.isKeyDown(OIS.KC_PGUP):
- self.translateVector.y = self.moveScale
-
- if self.Keyboard.isKeyDown(OIS.KC_PGDOWN):
- self.translateVector.y = - self.moveScale
-
- if self.Keyboard.isKeyDown(OIS.KC_RIGHT):
- self.rotationX = - self.rotationScale
-
- if self.Keyboard.isKeyDown(OIS.KC_LEFT):
- self.rotationX = self.rotationScale
-
- if self.Keyboard.isKeyDown(OIS.KC_ESCAPE) or self.Keyboard.isKeyDown(OIS.KC_Q):
- return False
-
- if( self.Keyboard.isKeyDown(OIS.KC_F) and self.timeUntilNextToggle <= 0 ):
- self.statisticsOn = not self.statisticsOn
- self.showDebugOverlay(self.statisticsOn)
- self.timeUntilNextToggle = 1
-
- if self.Keyboard.isKeyDown(OIS.KC_T) and self.timeUntilNextToggle <= 0:
- if self.filtering == ogre.TFO_BILINEAR:
- self.filtering = ogre.TFO_TRILINEAR
- self.Aniso = 1
- elif self.filtering == ogre.TFO_TRILINEAR:
- self.filtering = ogre.TFO_ANISOTROPIC
- self.Aniso = 8
- else:
- self.filtering = ogre.TFO_BILINEAR
- self.Aniso = 1
-
- ogre.MaterialManager.getSingleton().setDefaultTextureFiltering(self.filtering)
- ogre.MaterialManager.getSingleton().setDefaultAnisotropy(self.Aniso)
- self.showDebugOverlay(self.statisticsOn)
- self.timeUntilNextToggle = 1
-
- if self.Keyboard.isKeyDown(OIS.KC_SYSRQ) and self.timeUntilNextToggle <= 0:
- path = 'screenshot_%d.png' % self.numScreenShots
- self.numScreenShots += 1
- self.renderWindow.writeContentsToFile(path)
- Application.debugText = 'screenshot taken: ' + path
- self.timeUntilNextToggle = 0.5
-
- if self.Keyboard.isKeyDown(OIS.KC_R) and self.timeUntilNextToggle <= 0:
- detailsLevel = [ ogre.PM_SOLID,
- ogre.PM_WIREFRAME,
- ogre.PM_POINTS ]
- self.sceneDetailIndex = (self.sceneDetailIndex + 1) % len(detailsLevel)
- self.camera.polygonMode=detailsLevel[self.sceneDetailIndex]
- self.timeUntilNextToggle = 0.5
-
- if self.Keyboard.isKeyDown(OIS.KC_F) and self.timeUntilNextToggle <= 0:
- self.statisticsOn = not self.statisticsOn
- self.showDebugOverlay(self.statisticsOn)
- self.timeUntilNextToggle = 1
-
- if self.Keyboard.isKeyDown(OIS.KC_P) and self.timeUntilNextToggle <= 0:
- self.displayCameraDetails = not self.displayCameraDetails
- if not self.displayCameraDetails:
- Application.debugText = ""
-
- if self.displayCameraDetails:
- # Print camera details
- pos = self.camera.getDerivedPosition()
- o = self.camera.getDerivedOrientation()
- Application.debugText = "P: %.3f %.3f %.3f O: %.3f %.3f %.3f %.3f" \
- % (pos.x,pos.y,pos.z, o.w,o.x,o.y,o.z)
- return True
-
- def _isToggleKeyDown(self, keyCode, toggleTime = 1.0):
- if self.Keyboard.isKeyDown(keyCode)and self.timeUntilNextToggle <=0:
- self.timeUntilNextToggle = toggleTime
- return True
- return False
-
- def _isToggleMouseDown(self, Button, toggleTime = 1.0):
- ms = self.Mouse.getMouseState()
- if ms.buttonDown( Button ) and self.timeUntilNextToggle <=0:
- self.timeUntilNextToggle = toggleTime
- return True
- return False
-
- def _processUnbufferedMouseInput(self, frameEvent):
- ms = self.Mouse.getMouseState()
- if ms.buttonDown( OIS.MB_Right ):
- self.translateVector.x += ms.X.rel * 0.13
- self.translateVector.y -= ms.Y.rel * 0.13
- else:
- self.rotationX = ogre.Degree(- ms.X.rel * 0.13)
- self.rotationY = ogre.Degree(- ms.Y.rel * 0.13)
-
- def _moveCamera(self):
- self.camera.yaw(self.rotationX)
- self.camera.pitch(self.rotationY)
- try:
- self.camera.translate(self.translateVector) # for using OgreRefApp
- except AttributeError:
- self.camera.moveRelative(self.translateVector)
-
- def _updateStatistics(self):
- statistics = self.renderWindow
- self._setGuiCaption('Core/AverageFps', 'Average FPS: %f' % statistics.getAverageFPS())
- self._setGuiCaption('Core/CurrFps', 'Current FPS: %f' % statistics.getLastFPS())
- self._setGuiCaption('Core/BestFps',
- 'Best FPS: %f %d ms' % (statistics.getBestFPS(), statistics.getBestFrameTime()))
- self._setGuiCaption('Core/WorstFps',
- 'Worst FPS: %f %d ms' % (statistics.getWorstFPS(), statistics.getWorstFrameTime()))
- self._setGuiCaption('Core/NumTris', 'Triangle Count: %d' % statistics.getTriangleCount())
- self._setGuiCaption('Core/DebugText', Application.debugText)
-
- def _setGuiCaption(self, elementName, text):
- element = ogre.OverlayManager.getSingleton().getOverlayElement(elementName, False)
- ##d=ogre.UTFString("hell0")
- ##element.setCaption(d)
-
- #element.caption="hello"
-
- #element.setCaption("help")
- element.setCaption(text) # ogre.UTFString(text))
Modified: trunk/python-ogre/demos/particleuniverse/ogre.cfg
===================================================================
--- trunk/python-ogre/demos/particleuniverse/ogre.cfg 2008-06-23 09:42:47 UTC (rev 608)
+++ trunk/python-ogre/demos/particleuniverse/ogre.cfg 2008-06-23 10:00:51 UTC (rev 609)
@@ -2,18 +2,20 @@
[OpenGL Rendering Subsystem]
Colour Depth=32
-Display Frequency=60
+Display Frequency=50
FSAA=0
Full Screen=Yes
RTT Preferred Mode=FBO
VSync=No
Video Mode=1024 x 768
+sRGB Gamma Conversion=No
[Direct3D9 Rendering Subsystem]
Allow NVPerfHUD=No
Anti aliasing=None
Floating-point mode=Fastest
Full Screen=No
-Rendering Device=ATI MOBILITY RADEON
+Rendering Device=Mobile Intel(R) 965 Express Chipset Family
VSync=No
Video Mode=800 x 600 @ 32-bit colour
+sRGB Gamma Conversion=No
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|