Revision: 610
http://python-ogre.svn.sourceforge.net/python-ogre/?rev=610&view=rev
Author: andy_miller
Date: 2008-06-23 05:29:15 -0700 (Mon, 23 Jun 2008)
Log Message:
-----------
OgreForests and QuickGUI demos working
Modified Paths:
--------------
trunk/python-ogre/demos/qgui/Demo_QuickGUI01.py
trunk/python-ogre/demos/qgui/media/skins/qgui/SkinSet.qgui.png
trunk/python-ogre/demos/qgui/media/skins/qgui/qgui.skinset
Added Paths:
-----------
trunk/python-ogre/demos/ogreforests/Demo_Forest_01.py
trunk/python-ogre/demos/ogreforests/Demo_Forest_02.py
Removed Paths:
-------------
trunk/python-ogre/demos/ogreforests/Demo_Forest.py
Deleted: trunk/python-ogre/demos/ogreforests/Demo_Forest.py
===================================================================
--- trunk/python-ogre/demos/ogreforests/Demo_Forest.py 2008-06-23 10:00:51 UTC (rev 609)
+++ trunk/python-ogre/demos/ogreforests/Demo_Forest.py 2008-06-23 12:29:15 UTC (rev 610)
@@ -1,187 +0,0 @@
-import sys
-sys.path.insert(0,'..')
-import PythonOgreConfig
-
-import ogre.renderer.OGRE as ogre
-import ogre.addons.ogreforests as forests
-import SampleFramework as sf
-import math, random
-
-class ForestApplication(sf.Application):
- def _chooseSceneManager(self):
- # self.sceneManager = self.root.createSceneManager("TerrainSceneManager")
- self.sceneManager = self.root.createSceneManager(ogre.ST_EXTERIOR_CLOSE)
-
- def getTerrainHeight( self, x, z, UserData=None ):
- if ( x < 0 or z < 0 or x > 1500 or z > 1500 ): return 0
- self.updateRay.setOrigin( ogre.Vector3(x, 0.0, z) )
- self.updateRay.setDirection( ogre.Vector3.UNIT_Y )
- self.raySceneQuery.setRay( self.updateRay )
- self.raySceneQuery.execute( self.raySceneQueryListener )
- return self.raySceneQueryListener.resultDistance
-
- ##Loads world
- def _createScene(self):
- camera = self.camera
-
- ## Set ambient light
- self.sceneManager.setAmbientLight((0.5, 0.5, 0.5))
-
- ## Create a light
- l = self.sceneManager.createLight("MainLight")
- l.setPosition(20,80,50)
- ## Fog
- ## NB it's VERY important to set this before calling setWorldGeometry
- ## because the vertex program picked will be different
- ##ColourValue fadeColour(0.93, 0.86, 0.76)
- fadeColour = (120.0/255, 173.0/255, 246.0/255)
- self.sceneManager.setFog( ogre.FOG_LINEAR, fadeColour, .001, 200, 1000)
- self.renderWindow.getViewport(0).setBackgroundColour(fadeColour)
-
- terrain_cfg = "./media/terrains/terrain.cfg"
-
- self.sceneManager.setWorldGeometry( terrain_cfg )
- ## Infinite far plane?
- if self.root.getRenderSystem().getCapabilities().hasCapability(ogre.RSC_INFINITE_FAR_PLANE):
- camera.setFarClipDistance(0)
- ##camera.setFarClipDistance(1000)
-
- ## Set a nice viewpoint
- camera.setPosition(750,100,750)
- camera.lookAt(750, 100, 750+1)
- ##camera.setPolygonMode(PM_WIREFRAME)
-
- self.updateRay = ogre.Ray();
-
- ##RaySceneQuery for terrain height check
- self.updateRay.setOrigin(camera.getPosition())
- self.updateRay.setDirection(ogre.Vector3.NEGATIVE_UNIT_Y)
- self.raySceneQuery = self.sceneManager.createRayQuery(self.updateRay)
- self.raySceneQuery.setQueryTypeMask(ogre.SceneManager.WORLD_GEOMETRY_TYPE_MASK )
- self.raySceneQuery.setWorldFragmentType(ogre.SceneQuery.WFT_SINGLE_INTERSECTION)
- self.raySceneQueryListener = myRaySceneQueryListener()
-
- ##---- PagedGeometry test ----
- ## TREES
- ##Initialize the PagedGeometry engine
- self.trees = forests.PagedGeometry()
- self.trees.setCamera( camera )
- self.trees.setPageSize( 50 )
- self.trees.setBounds( ogre.FloatRect(0, 0, 1500, 1500) )
-
- ##Set up LODs
- ##trees.addDetailLevelEntityPage(50)
- self.trees.addDetailLevelBatchPage(200, 50)
- self.trees.addDetailLevelImpostorPage(700, 50)
-
- ##Set up a TreeLoader for easy use
- self.treeLoader = forests.TreeLoader2D( self.trees, ogre.FloatRect(0, 0, 1500, 1500) )
- self.trees.setPageLoader(self.treeLoader)
- self.treeLoader.setHeightFunction(self, "getTerrainHeight")
-
- ##And add 20,000 trees to the scene through the "easy-to-use" TreeLoader class
- self.myTree = self.sceneManager.createEntity("MyTree", "tree2.mesh")
- x=0
- z=0
- for i in range (10000):
- yaw = random.randrange(0, 360)
-
- if (random.randrange(0, 1000) <= 800):
- x += random.randrange(-10.0, 10.0)
- z += random.randrange(-10.0, 10.0)
- if (x < 0): x = 0
- elif (x > 1500): x = 1500
- if (z < 0): z = 0
- elif (z > 1500): z = 1500
- else:
- x = random.randrange(0, 1500)
- z = random.randrange(0, 1500)
-
- scale = random.randrange(9, 11) / 10
- y = self.getTerrainHeight(x, z);
-
- self.treeLoader.addTree(self.myTree, ogre.Vector3(x, y, z), ogre.Degree(yaw), scale)
-
- ##Grass
-
- ##Initialize the PagedGeometry engine
- self.grass = forests.PagedGeometry(camera, 30)
- ##trees = new PagedGeometry(camera, 50, ogre.FloatRect(0, 0, 1500, 1500))
-
- ##Set up LODs
- self.grass.addDetailLevelGrassPage(80.0,0.0)
-
- ##Set up a TreeLoader for easy use
- self.grassLoader = forests.GrassLoader(self.grass)
- self.grass.setPageLoader(self.grassLoader)
- self.grassLoader.setHeightFunction(self, "getTerrainHeight")
-
- grassLayer = self.grassLoader.addLayer("grass")
-
- grassLayer.setAnimationEnabled(True)
- grassLayer.setSwaySpeed(0.5)
- grassLayer.setSwayLength(0.05)
- grassLayer.setSwayDistribution(10.0)
-
- grassLayer.setDensity(0.6)
-
- grassLayer.setMapBounds(ogre.FloatRect(0, 0, 1500, 1500))
-
- grassLayer.setColorMap("terrain_texture.jpg")
- grassLayer.setColorMapFilter(forests.MAPFILTER_BILINEAR)
-
- grassLayer.setDensityMap("densitymap.png")
- grassLayer.setDensityMapFilter(forests.MAPFILTER_NONE)
-
- ##grassLayer.setMinimumSize(0.5,0.5)
- ##grassLayer.setMaximumSize(1.0, 1.0)
-
- grassLayer.setMinimumSize(4.0,2.0)
- grassLayer.setMaximumSize(4.0,2.0)
-
- grassLayer.setFadeTechnique(forests.FADETECH_GROW)
-
-
- def _createFrameListener(self):
- self.frameListener = GrassFrameListener(self)
- self.root.addFrameListener(self.frameListener)
-
-
-class GrassFrameListener(sf.FrameListener):
- def __init__(self, app):
- sf.FrameListener.__init__(self, app.renderWindow, app.camera)
- self.app = app
- # use this to tweak the persons position
- self.raySceneQuery = app.sceneManager.createRayQuery(ogre.Ray(app.camera.getPosition(),
- ogre.Vector3.NEGATIVE_UNIT_Y))
-
-
- def frameStarted(self, frameEvent):
- self.app.trees.update()
- self.app.grass.update()
- ##self.app.grassLoader.update() ## Animation()
-
- updateRay = ogre.Ray()
- updateRay.setOrigin (self.camera.getPosition() + ogre.Vector3(0.0, 10.0, 0.0))
- updateRay.setDirection (ogre.Vector3.NEGATIVE_UNIT_Y)
- self.raySceneQuery.Ray = updateRay
- for queryResult in self.raySceneQuery.execute():
- if queryResult.worldFragment is not None:
- pos = self.camera.getPosition()
- self.camera.setPosition (pos.x, pos.y - queryResult.distance + 18.0, pos.z)
- break
- return sf.FrameListener.frameStarted(self, frameEvent)
-
-
-class myRaySceneQueryListener ( ogre.RaySceneQueryListener ):
- def queryResult(self, fragment, distance):
- self.resultDistance = distance
- return False
-
-
-if __name__ == '__main__':
- try:
- application = ForestApplication()
- application.go()
- except ogre.OgreException, e:
- print e
Added: trunk/python-ogre/demos/ogreforests/Demo_Forest_01.py
===================================================================
--- trunk/python-ogre/demos/ogreforests/Demo_Forest_01.py (rev 0)
+++ trunk/python-ogre/demos/ogreforests/Demo_Forest_01.py 2008-06-23 12:29:15 UTC (rev 610)
@@ -0,0 +1,231 @@
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
+import ogre.renderer.OGRE as ogre
+import ogre.addons.ogreforests as forests
+import SampleFramework as sf
+import math, random
+
+class HeightFunction:
+
+ class MyRaySceneQueryListener ( ogre.RaySceneQueryListener ):
+ def __init__( self ):
+ self.resultDistance = 0
+ ogre.RaySceneQueryListener.__init__ ( self )
+
+ def queryResult(self, fragment, distance):
+ self.resultDistance = distance;
+ return False
+
+ def queryResult(self, obj, distance):
+ self.resultDistance = distance;
+ return False;
+
+ def __init__ ( self ):
+ self.updateRay = ogre.Ray()
+ self.initialized = False
+
+
+
+ ## Initializes the height function. Call this before calling getTerrainHeight()
+ def initialize(self, sceneMgr):
+ if not self.initialized:
+ self.initialized = True
+# self.MyRaySceneQueryListener = self.MyRaySceneQueryListener()
+ self.raySceneQuery = ogre.RaySceneQuery( sceneMgr )
+ self.updateRay.setOrigin(ogre.Vector3.ZERO)
+ self.updateRay.setDirection(ogre.Vector3.NEGATIVE_UNIT_Y)
+ self.raySceneQuery = sceneMgr.createRayQuery(self.updateRay)
+ self.raySceneQuery.setQueryTypeMask(ogre.SceneManager.WORLD_GEOMETRY_TYPE_MASK)
+ self.raySceneQuery.setWorldFragmentType(ogre.SceneQuery.WFT_SINGLE_INTERSECTION)
+ self.raySceneQueryListener = self.MyRaySceneQueryListener ()
+
+ ##Gets the height of the terrain at the specified x/z coordinate
+ ##The userData parameter isn't used in this implementation of a height function, since
+ ##there's no need for extra data other than the x/z coordinates.
+ def getTerrainHeight(self, x, z, userData = None):
+ self.updateRay.setOrigin(ogre.Vector3(x, 0.0, z))
+ self.updateRay.setDirection(ogre.Vector3.UNIT_Y)
+ self.raySceneQuery.setRay(self.updateRay)
+ self.raySceneQuery.execute(self.raySceneQueryListener)
+
+ return self.raySceneQueryListener.resultDistance
+
+
+class ForestApplication(sf.Application):
+ def _chooseSceneManager(self):
+ # self.sceneManager = self.root.createSceneManager("TerrainSceneManager")
+ self.sceneManager = self.root.createSceneManager(ogre.ST_EXTERIOR_CLOSE)
+
+ def getTerrainHeight( self, x, z, UserData=None ):
+ if ( x < 0 or z < 0 or x > 1500 or z > 1500 ): return 0
+ self.updateRay.setOrigin( ogre.Vector3(x, 0.0, z) )
+ self.updateRay.setDirection( ogre.Vector3.UNIT_Y )
+ self.raySceneQuery.setRay( self.updateRay )
+ self.raySceneQuery.execute( self.raySceneQueryListener )
+ return self.raySceneQueryListener.resultDistance
+
+ ##Loads world
+ def _createScene(self):
+ camera = self.camera
+
+ ## Set ambient light
+ self.sceneManager.setAmbientLight((0.5, 0.5, 0.5))
+
+ ## Create a light
+ l = self.sceneManager.createLight("MainLight")
+ l.setPosition(20,80,50)
+ ## Fog
+ ## NB it's VERY important to set this before calling setWorldGeometry
+ ## because the vertex program picked will be different
+ ##ColourValue fadeColour(0.93, 0.86, 0.76)
+ fadeColour = (120.0/255, 173.0/255, 246.0/255)
+ self.sceneManager.setFog( ogre.FOG_LINEAR, fadeColour, .001, 200, 1000)
+ self.renderWindow.getViewport(0).setBackgroundColour(fadeColour)
+
+ terrain_cfg = "./media/terrains/terrain.cfg"
+
+ self.sceneManager.setWorldGeometry( terrain_cfg )
+ ## Infinite far plane?
+ if self.root.getRenderSystem().getCapabilities().hasCapability(ogre.RSC_INFINITE_FAR_PLANE):
+ camera.setFarClipDistance(0)
+ ##camera.setFarClipDistance(1000)
+
+ ## Set a nice viewpoint
+ camera.setPosition(750,100,750)
+ camera.lookAt(750, 100, 750+1)
+ ##camera.setPolygonMode(PM_WIREFRAME)
+
+# self.updateRay = ogre.Ray();
+#
+# ##RaySceneQuery for terrain height check
+# self.updateRay.setOrigin(camera.getPosition())
+# self.updateRay.setDirection(ogre.Vector3.NEGATIVE_UNIT_Y)
+# self.raySceneQuery = self.sceneManager.createRayQuery(self.updateRay)
+# self.raySceneQuery.setQueryTypeMask(ogre.SceneManager.WORLD_GEOMETRY_TYPE_MASK )
+# self.raySceneQuery.setWorldFragmentType(ogre.SceneQuery.WFT_SINGLE_INTERSECTION)
+# self.raySceneQueryListener = myRaySceneQueryListener()
+#
+
+ self.HeightFunction = HeightFunction()
+ self.HeightFunction.initialize( self.sceneManager )
+
+ ##---- PagedGeometry test ----
+ ## TREES
+ ##Initialize the PagedGeometry engine
+ self.trees = forests.PagedGeometry()
+ self.trees.setCamera( camera )
+ self.trees.setPageSize( 80 )
+ self.trees.setInfinite()
+# self.trees.setBounds( ogre.FloatRect(0, 0, 1500, 1500) )
+#
+ ##Set up LODs
+ ##trees.addDetailLevelEntityPage(50)
+ self.trees.addDetailLevelBatchPage(150, 50)
+ self.trees.addDetailLevelImpostorPage(500, 50)
+
+ ##Set up a TreeLoader for easy use
+ self.treeLoader = forests.TreeLoader3D( self.trees, ogre.FloatRect(0, 0, 1500, 1500) )
+ self.trees.setPageLoader(self.treeLoader)
+ #self.treeLoader.setHeightFunction(self, "getTerrainHeight")
+
+ ##And add 20,000 trees to the scene through the "easy-to-use" TreeLoader class
+ myTree = self.sceneManager.createEntity("MyTree", "tree2.mesh")
+ position = ogre.Vector3()
+
+ for i in range (20000):
+ yaw = ogre.Degree(random.randrange(0, 360))
+ position.x = random.randrange(0, 1500)
+ position.z = random.randrange(0, 1500)
+# position.y = random.randrange(0, 1500)
+ position.y = self.HeightFunction.getTerrainHeight(position.x, position.z)
+ ## ;self.getTerrainHeight(position.x, position.z)
+
+ scale = float(random.randrange(500, 600)) / 1000
+ self.treeLoader.addTree(myTree, position, yaw, scale)
+# print position, yaw, scale
+
+# ##Grass
+#
+# ##Initialize the PagedGeometry engine
+# self.grass = forests.PagedGeometry(camera, 30)
+# ##trees = new PagedGeometry(camera, 50, ogre.FloatRect(0, 0, 1500, 1500))
+#
+# ##Set up LODs
+# self.grass.addDetailLevelGrassPage(80.0)
+#
+# ##Set up a TreeLoader for easy use
+# self.grassLoader = forests.GrassLoader(self.grass)
+# self.grass.setPageLoader(self.grassLoader)
+# self.grassLoader.setHeightFunction(self, "getTerrainHeight")
+#
+# grassLayer = self.grassLoader.addLayer("grass")
+#
+# grassLayer.setAnimationEnabled(True)
+# grassLayer.setSwaySpeed(0.5)
+# grassLayer.setSwayLength(0.05)
+# grassLayer.setSwayDistribution(10.0)
+#
+# grassLayer.setDensity(0.6)
+#
+# grassLayer.setMapBounds(ogre.FloatRect(0, 0, 1500, 1500))
+#
+# grassLayer.setColorMap("terrain_texture.jpg")
+# grassLayer.setColorMapFilter(forests.MAPFILTER_BILINEAR)
+#
+# grassLayer.setDensityMap("densitymap.png")
+# grassLayer.setDensityMapFilter(forests.MAPFILTER_NONE)
+#
+# ##grassLayer.setMinimumSize(0.5,0.5)
+# ##grassLayer.setMaximumSize(1.0, 1.0)
+#
+# grassLayer.setMinimumSize(4.0,2.0)
+# grassLayer.setMaximumSize(4.0,2.0)
+#
+# grassLayer.setFadeTechnique(forests.FADETECH_GROW)
+#
+
+ def _createFrameListener(self):
+ self.frameListener = GrassFrameListener(self)
+ self.root.addFrameListener(self.frameListener)
+
+
+class GrassFrameListener(sf.FrameListener):
+ def __init__(self, app):
+ sf.FrameListener.__init__(self, app.renderWindow, app.camera)
+ self.app = app
+ # use this to tweak the persons position
+ self.raySceneQuery = app.sceneManager.createRayQuery(ogre.Ray(app.camera.getPosition(),
+ ogre.Vector3.NEGATIVE_UNIT_Y))
+
+
+ def frameStarted(self, frameEvent):
+ self.app.trees.update()
+# self.app.grass.update()
+# self.app.grassLoader.updateAnimation() ## Animation()
+#
+# updateRay = ogre.Ray()
+# updateRay.setOrigin (self.camera.getPosition() + ogre.Vector3(0.0, 10.0, 0.0))
+# updateRay.setDirection (ogre.Vector3.NEGATIVE_UNIT_Y)
+# self.raySceneQuery.Ray = updateRay
+# for queryResult in self.raySceneQuery.execute():
+# if queryResult.worldFragment is not None:
+# pos = self.camera.getPosition()
+# self.camera.setPosition (pos.x, pos.y - queryResult.distance + 18.0, pos.z)
+# break
+ return sf.FrameListener.frameStarted(self, frameEvent)
+
+
+class myRaySceneQueryListener ( ogre.RaySceneQueryListener ):
+ def queryResult(self, fragment, distance):
+ self.resultDistance = distance
+ return False
+
+
+if __name__ == '__main__':
+ try:
+ application = ForestApplication()
+ application.go()
+ except ogre.OgreException, e:
+ print e
Added: trunk/python-ogre/demos/ogreforests/Demo_Forest_02.py
===================================================================
--- trunk/python-ogre/demos/ogreforests/Demo_Forest_02.py (rev 0)
+++ trunk/python-ogre/demos/ogreforests/Demo_Forest_02.py 2008-06-23 12:29:15 UTC (rev 610)
@@ -0,0 +1,230 @@
+import sys
+sys.path.insert(0,'..')
+import PythonOgreConfig
+
+import ogre.renderer.OGRE as ogre
+import ogre.addons.ogreforests as forests
+import SampleFramework as sf
+import math, random
+
+class HeightFunction:
+
+ class MyRaySceneQueryListener ( ogre.RaySceneQueryListener ):
+ def __init__( self ):
+ self.resultDistance = 0
+ ogre.RaySceneQueryListener.__init__ ( self )
+
+ def queryResult(self, fragment, distance):
+ self.resultDistance = distance;
+ return False
+
+ def queryResult(self, obj, distance):
+ self.resultDistance = distance;
+ return False;
+
+ def __init__ ( self ):
+ self.updateRay = ogre.Ray()
+ self.initialized = False
+
+
+
+ ## Initializes the height function. Call this before calling getTerrainHeight()
+ def initialize(self, sceneMgr):
+ if not self.initialized:
+ self.initialized = True
+# self.MyRaySceneQueryListener = self.MyRaySceneQueryListener()
+ self.raySceneQuery = ogre.RaySceneQuery( sceneMgr )
+ self.updateRay.setOrigin(ogre.Vector3.ZERO)
+ self.updateRay.setDirection(ogre.Vector3.NEGATIVE_UNIT_Y)
+ self.raySceneQuery = sceneMgr.createRayQuery(self.updateRay)
+ self.raySceneQuery.setQueryTypeMask(ogre.SceneManager.WORLD_GEOMETRY_TYPE_MASK)
+ self.raySceneQuery.setWorldFragmentType(ogre.SceneQuery.WFT_SINGLE_INTERSECTION)
+ self.raySceneQueryListener = self.MyRaySceneQueryListener ()
+
+ ##Gets the height of the terrain at the specified x/z coordinate
+ ##The userData parameter isn't used in this implementation of a height function, since
+ ##there's no need for extra data other than the x/z coordinates.
+ def getTerrainHeight(self, x, z, userData = None):
+ self.updateRay.setOrigin(ogre.Vector3(x, 0.0, z))
+ self.updateRay.setDirection(ogre.Vector3.UNIT_Y)
+ self.raySceneQuery.setRay(self.updateRay)
+ self.raySceneQuery.execute(self.raySceneQueryListener)
+
+ return self.raySceneQueryListener.resultDistance
+
+
+class ForestApplication(sf.Application):
+ def _chooseSceneManager(self):
+ # self.sceneManager = self.root.createSceneManager("TerrainSceneManager")
+ self.sceneManager = self.root.createSceneManager(ogre.ST_EXTERIOR_CLOSE)
+
+ def getTerrainHeight( self, x, z, UserData=None ):
+ if ( x < 0 or z < 0 or x > 1500 or z > 1500 ): return 0
+ self.updateRay.setOrigin( ogre.Vector3(x, 0.0, z) )
+ self.updateRay.setDirection( ogre.Vector3.UNIT_Y )
+ self.raySceneQuery.setRay( self.updateRay )
+ self.raySceneQuery.execute( self.raySceneQueryListener )
+ return self.raySceneQueryListener.resultDistance
+
+ ##Loads world
+ def _createScene(self):
+ camera = self.camera
+
+ ## Set ambient light
+ self.sceneManager.setAmbientLight((0.5, 0.5, 0.5))
+
+ ## Create a light
+ l = self.sceneManager.createLight("MainLight")
+ l.setPosition(20,80,50)
+ ## Fog
+ ## NB it's VERY important to set this before calling setWorldGeometry
+ ## because the vertex program picked will be different
+ ##ColourValue fadeColour(0.93, 0.86, 0.76)
+ fadeColour = (120.0/255, 173.0/255, 246.0/255)
+ self.sceneManager.setFog( ogre.FOG_LINEAR, fadeColour, .001, 200, 1000)
+ self.renderWindow.getViewport(0).setBackgroundColour(fadeColour)
+
+ terrain_cfg = "./media/terrains/terrain.cfg"
+
+ self.sceneManager.setWorldGeometry( terrain_cfg )
+# ## Infinite far plane?
+# if self.root.getRenderSystem().getCapabilities().hasCapability(ogre.RSC_INFINITE_FAR_PLANE):
+# camera.setFarClipDistance(0)
+# ##camera.setFarClipDistance(1000)
+
+ ## Set a nice viewpoint
+ camera.setPosition(700,100,700)
+# camera.lookAt(750, 100, 750+1)
+ ##camera.setPolygonMode(PM_WIREFRAME)
+
+# self.updateRay = ogre.Ray();
+#
+# ##RaySceneQuery for terrain height check
+# self.updateRay.setOrigin(camera.getPosition())
+# self.updateRay.setDirection(ogre.Vector3.NEGATIVE_UNIT_Y)
+# self.raySceneQuery = self.sceneManager.createRayQuery(self.updateRay)
+# self.raySceneQuery.setQueryTypeMask(ogre.SceneManager.WORLD_GEOMETRY_TYPE_MASK )
+# self.raySceneQuery.setWorldFragmentType(ogre.SceneQuery.WFT_SINGLE_INTERSECTION)
+# self.raySceneQueryListener = myRaySceneQueryListener()
+#
+
+
+ ##---- PagedGeometry test ----
+ ## TREES
+ ##Initialize the PagedGeometry engine
+ self.trees = forests.PagedGeometry()
+ self.trees.setCamera( camera )
+ self.trees.setPageSize( 80 )
+ self.trees.setInfinite()
+# self.trees.setBounds( ogre.FloatRect(0, 0, 1500, 1500) )
+#
+ ##Set up LODs
+ ##trees.addDetailLevelEntityPage(50)
+ self.trees.addDetailLevelBatchPage(150, 50)
+ self.trees.addDetailLevelImpostorPage(500, 50)
+
+ ##Set up a TreeLoader for easy use
+ self.treeLoader = forests.TreeLoader2D( self.trees, ogre.FloatRect(0, 0, 1500, 1500) )
+ self.trees.setPageLoader(self.treeLoader)
+ #self.treeLoader.setHeightFunction(self, "getTerrainHeight")
+
+ self.HeightFunction = HeightFunction()
+ self.HeightFunction.initialize( self.sceneManager )
+ self.treeLoader.setHeightFunction ( self.HeightFunction, "getTerrainHeight" )
+
+ ##And add 20,000 trees to the scene through the "easy-to-use" TreeLoader class
+ myTree = self.sceneManager.createEntity("Tree", "tree2.mesh")
+ position = ogre.Vector3(ogre.Vector3.ZERO)
+
+ for i in range (20000):
+ yaw = ogre.Degree(random.randrange(0, 360))
+ position.x = random.randrange(0, 1500)
+ position.z = random.randrange(0, 1500)
+# position.y = random.randrange(0, 1500)
+ scale = float(random.randrange(500, 600)) / 1000
+ self.treeLoader.addTree(myTree, position, yaw, scale)
+# print position, yaw, scale
+
+# ##Grass
+#
+# ##Initialize the PagedGeometry engine
+# self.grass = forests.PagedGeometry(camera, 30)
+# ##trees = new PagedGeometry(camera, 50, ogre.FloatRect(0, 0, 1500, 1500))
+#
+# ##Set up LODs
+# self.grass.addDetailLevelGrassPage(80.0)
+#
+# ##Set up a TreeLoader for easy use
+# self.grassLoader = forests.GrassLoader(self.grass)
+# self.grass.setPageLoader(self.grassLoader)
+# self.grassLoader.setHeightFunction(self, "getTerrainHeight")
+#
+# grassLayer = self.grassLoader.addLayer("grass")
+#
+# grassLayer.setAnimationEnabled(True)
+# grassLayer.setSwaySpeed(0.5)
+# grassLayer.setSwayLength(0.05)
+# grassLayer.setSwayDistribution(10.0)
+#
+# grassLayer.setDensity(0.6)
+#
+# grassLayer.setMapBounds(ogre.FloatRect(0, 0, 1500, 1500))
+#
+# grassLayer.setColorMap("terrain_texture.jpg")
+# grassLayer.setColorMapFilter(forests.MAPFILTER_BILINEAR)
+#
+# grassLayer.setDensityMap("densitymap.png")
+# grassLayer.setDensityMapFilter(forests.MAPFILTER_NONE)
+#
+# ##grassLayer.setMinimumSize(0.5,0.5)
+# ##grassLayer.setMaximumSize(1.0, 1.0)
+#
+# grassLayer.setMinimumSize(4.0,2.0)
+# grassLayer.setMaximumSize(4.0,2.0)
+#
+# grassLayer.setFadeTechnique(forests.FADETECH_GROW)
+#
+
+ def _createFrameListener(self):
+ self.frameListener = GrassFrameListener(self)
+ self.root.addFrameListener(self.frameListener)
+
+
+class GrassFrameListener(sf.FrameListener):
+ def __init__(self, app):
+ sf.FrameListener.__init__(self, app.renderWindow, app.camera)
+ self.app = app
+ # use this to tweak the persons position
+ self.raySceneQuery = app.sceneManager.createRayQuery(ogre.Ray(app.camera.getPosition(),
+ ogre.Vector3.NEGATIVE_UNIT_Y))
+
+
+ def frameStarted(self, frameEvent):
+ self.app.trees.update()
+# self.app.grass.update()
+# self.app.grassLoader.updateAnimation() ## Animation()
+#
+# updateRay = ogre.Ray()
+# updateRay.setOrigin (self.camera.getPosition() + ogre.Vector3(0.0, 10.0, 0.0))
+# updateRay.setDirection (ogre.Vector3.NEGATIVE_UNIT_Y)
+# self.raySceneQuery.Ray = updateRay
+# for queryResult in self.raySceneQuery.execute():
+# if queryResult.worldFragment is not None:
+# pos = self.camera.getPosition()
+# self.camera.setPosition (pos.x, pos.y - queryResult.distance + 18.0, pos.z)
+# break
+ return sf.FrameListener.frameStarted(self, frameEvent)
+
+
+class myRaySceneQueryListener ( ogre.RaySceneQueryListener ):
+ def queryResult(self, fragment, distance):
+ self.resultDistance = distance
+ return False
+
+
+if __name__ == '__main__':
+ try:
+ application = ForestApplication()
+ application.go()
+ except ogre.OgreException, e:
+ print e
Modified: trunk/python-ogre/demos/qgui/Demo_QuickGUI01.py
===================================================================
--- trunk/python-ogre/demos/qgui/Demo_QuickGUI01.py 2008-06-23 10:00:51 UTC (rev 609)
+++ trunk/python-ogre/demos/qgui/Demo_QuickGUI01.py 2008-06-23 12:29:15 UTC (rev 610)
@@ -185,9 +185,15 @@
self.camera.setPosition(0,125,500)
self.camera.pitch(Ogre.Radian(Ogre.Degree(-15)))
#
+
+
## Setup Render To Texture for preview window
- self.rttTex = self.root.getRenderSystem().createRenderTexture( "self.rttTex",\
- 512, 512, Ogre.TextureType.TEX_TYPE_2D, Ogre.PixelFormat.PF_R8G8B8 )
+ 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 )
+ self.rttTex = texture.getBuffer().getRenderTarget()
+
+
## From CEGUI example. The camera position doesn't fit the robot setup, so I changed it some.
rttCam = self.sceneManager.createCamera("RttCam")
camNode = self.sceneManager.getRootSceneNode().createChildSceneNode("rttCamNode")
Modified: trunk/python-ogre/demos/qgui/media/skins/qgui/SkinSet.qgui.png
===================================================================
(Binary files differ)
Modified: trunk/python-ogre/demos/qgui/media/skins/qgui/qgui.skinset
===================================================================
--- trunk/python-ogre/demos/qgui/media/skins/qgui/qgui.skinset 2008-06-23 10:00:51 UTC (rev 609)
+++ trunk/python-ogre/demos/qgui/media/skins/qgui/qgui.skinset 2008-06-23 12:29:15 UTC (rev 610)
@@ -5,543 +5,543 @@
texture SkinSet.qgui.png
element button.border.bottom
{
- dimension 0 0.00390625 0.126953 0.00683594
+ dimension 0 0 0.126953 0.00292969
}
element button.border.bottomleft
{
- dimension 0.12793 0.00390625 0.132813 0.00683594
+ dimension 0.12793 0 0.132813 0.00292969
}
element button.border.bottomright
{
- dimension 0.133789 0.00390625 0.138672 0.00683594
+ dimension 0.133789 0 0.138672 0.00292969
}
element button.border.left
{
- dimension 0.679688 0.0380859 0.68457 0.0537109
+ dimension 0 0.0380859 0.00488281 0.0537109
}
element button.border.right
{
- dimension 0.685547 0.0380859 0.69043 0.0537109
+ dimension 0.00585938 0.0380859 0.0107422 0.0537109
}
element button.border.top
{
- dimension 0.139648 0.00390625 0.266602 0.00683594
+ dimension 0.139648 0 0.266602 0.00292969
}
element button.border.topleft
{
- dimension 0.267578 0.00390625 0.272461 0.00683594
+ dimension 0.267578 0 0.272461 0.00292969
}
element button.border.topright
{
- dimension 0.273438 0.00390625 0.27832 0.00683594
+ dimension 0.273438 0 0.27832 0.00292969
}
element button.disabled
{
- dimension 0.337891 0.0800781 0.469727 0.119141
+ dimension 0.328125 0.0800781 0.459961 0.119141
}
element button.down.border.bottom
{
- dimension 0.279297 0.00390625 0.40625 0.00683594
+ dimension 0.279297 0 0.40625 0.00292969
}
element button.down.border.bottomleft
{
- dimension 0.407227 0.00390625 0.412109 0.00683594
+ dimension 0.407227 0 0.412109 0.00292969
}
element button.down.border.bottomright
{
- dimension 0.413086 0.00390625 0.417969 0.00683594
+ dimension 0.413086 0 0.417969 0.00292969
}
element button.down.border.left
{
- dimension 0.691406 0.0380859 0.696289 0.0537109
+ dimension 0.0117188 0.0380859 0.0166016 0.0537109
}
element button.down.border.right
{
- dimension 0.697266 0.0380859 0.702148 0.0537109
+ dimension 0.0175781 0.0380859 0.0224609 0.0537109
}
element button.down.border.top
{
- dimension 0.418945 0.00390625 0.545898 0.00683594
+ dimension 0.418945 0 0.545898 0.00292969
}
element button.down.border.topleft
{
- dimension 0.546875 0.00390625 0.551758 0.00683594
+ dimension 0.546875 0 0.551758 0.00292969
}
element button.down.border.topright
{
- dimension 0.552734 0.00390625 0.557617 0.00683594
+ dimension 0.552734 0 0.557617 0.00292969
}
element button.down
{
- dimension 0.12793 0.0380859 0.254883 0.0537109
+ dimension 0.0234375 0.0380859 0.150391 0.0537109
}
element button.over.border.bottom
{
- dimension 0.558594 0.00390625 0.685547 0.00683594
+ dimension 0.558594 0 0.685547 0.00292969
}
element button.over.border.bottomleft
{
- dimension 0.686523 0.00390625 0.691406 0.00683594
+ dimension 0.686523 0 0.691406 0.00292969
}
element button.over.border.bottomright
{
- dimension 0.692383 0.00390625 0.697266 0.00683594
+ dimension 0.692383 0 0.697266 0.00292969
}
element button.over.border.left
{
- dimension 0.703125 0.0380859 0.708008 0.0537109
+ dimension 0.151367 0.0380859 0.15625 0.0537109
}
element button.over.border.right
{
- dimension 0.708984 0.0380859 0.713867 0.0537109
+ dimension 0.157227 0.0380859 0.162109 0.0537109
}
element button.over.border.top
{
- dimension 0.698242 0.00390625 0.825195 0.00683594
+ dimension 0.698242 0 0.825195 0.00292969
}
element button.over.border.topleft
{
- dimension 0.826172 0.00390625 0.831055 0.00683594
+ dimension 0.826172 0 0.831055 0.00292969
}
element button.over.border.topright
{
- dimension 0.832031 0.00390625 0.836914 0.00683594
+ dimension 0.832031 0 0.836914 0.00292969
}
element button.over
{
- dimension 0.261719 0.0380859 0.388672 0.0537109
+ dimension 0.163086 0.0380859 0.290039 0.0537109
}
element button
{
- dimension 0 0.0380859 0.126953 0.0537109
+ dimension 0.291016 0.0380859 0.417969 0.0537109
}
element checkbox.border.bottom
{
- dimension 0.837891 0.00390625 0.964844 0.00683594
+ dimension 0.837891 0 0.964844 0.00292969
}
element checkbox.border.bottomleft
{
- dimension 0.96582 0.00390625 0.970703 0.00683594
+ dimension 0.96582 0 0.970703 0.00292969
}
element checkbox.border.bottomright
{
- dimension 0.97168 0.00390625 0.976563 0.00683594
+ dimension 0.97168 0 0.976563 0.00292969
}
element checkbox.border.left
{
- dimension 0.714844 0.0380859 0.719727 0.0537109
+ dimension 0.418945 0.0380859 0.423828 0.0537109
}
element checkbox.border.right
{
- dimension 0.720703 0.0380859 0.725586 0.0537109
+ dimension 0.424805 0.0380859 0.429688 0.0537109
}
element checkbox.border.top
{
- dimension 0 0.0078125 0.126953 0.0107422
+ dimension 0 0.00390625 0.126953 0.00683594
}
element checkbox.border.topleft
{
- dimension 0.12793 0.0078125 0.132813 0.0107422
+ dimension 0.12793 0.00390625 0.132813 0.00683594
}
element checkbox.border.topright
{
- dimension 0.133789 0.0078125 0.138672 0.0107422
+ dimension 0.133789 0.00390625 0.138672 0.00683594
}
element checkbox.checked.border.bottom
{
- dimension 0.827148 0.0117188 0.954102 0.0146484
+ dimension 0.139648 0.00390625 0.266602 0.00683594
}
element checkbox.checked.border.bottomleft
{
- dimension 0.955078 0.0117188 0.959961 0.0146484
+ dimension 0.267578 0.00390625 0.272461 0.00683594
}
element checkbox.checked.border.bottomright
{
- dimension 0.960938 0.0117188 0.96582 0.0146484
+ dimension 0.273438 0.00390625 0.27832 0.00683594
}
element checkbox.checked.border.left
{
- dimension 0.785156 0.0380859 0.790039 0.0537109
+ dimension 0.430664 0.0380859 0.435547 0.0537109
}
element checkbox.checked.border.right
{
- dimension 0.791016 0.0380859 0.795898 0.0537109
+ dimension 0.436523 0.0380859 0.441406 0.0537109
}
element checkbox.checked.border.top
{
- dimension 0 0.015625 0.126953 0.0185547
+ dimension 0.279297 0.00390625 0.40625 0.00683594
}
element checkbox.checked.border.topleft
{
- dimension 0.12793 0.015625 0.132813 0.0185547
+ dimension 0.407227 0.00390625 0.412109 0.00683594
}
element checkbox.checked.border.topright
{
- dimension 0.133789 0.015625 0.138672 0.0185547
+ dimension 0.413086 0.00390625 0.417969 0.00683594
}
element checkbox.checked.disabled
{
- dimension 0.613281 0.229492 0.671875 0.288086
+ dimension 0 0.229492 0.0585938 0.288086
}
element checkbox.checked.down.border.bottom
{
- dimension 0.139648 0.015625 0.266602 0.0185547
+ dimension 0.418945 0.00390625 0.545898 0.00683594
}
element checkbox.checked.down.border.bottomleft
{
- dimension 0.267578 0.015625 0.272461 0.0185547
+ dimension 0.546875 0.00390625 0.551758 0.00683594
}
element checkbox.checked.down.border.bottomright
{
- dimension 0.273438 0.015625 0.27832 0.0185547
+ dimension 0.552734 0.00390625 0.557617 0.00683594
}
element checkbox.checked.down.border.left
{
- dimension 0.796875 0.0380859 0.801758 0.0537109
+ dimension 0.442383 0.0380859 0.447266 0.0537109
}
element checkbox.checked.down.border.right
{
- dimension 0.802734 0.0380859 0.807617 0.0537109
+ dimension 0.448242 0.0380859 0.453125 0.0537109
}
element checkbox.checked.down.border.top
{
- dimension 0.279297 0.015625 0.40625 0.0185547
+ dimension 0.558594 0.00390625 0.685547 0.00683594
}
element checkbox.checked.down.border.topleft
{
- dimension 0.407227 0.015625 0.412109 0.0185547
+ dimension 0.686523 0.00390625 0.691406 0.00683594
}
element checkbox.checked.down.border.topright
{
- dimension 0.413086 0.015625 0.417969 0.0185547
+ dimension 0.692383 0.00390625 0.697266 0.00683594
}
element checkbox.checked.down
{
- dimension 0.407227 0.0380859 0.422852 0.0537109
+ dimension 0.454102 0.0380859 0.469727 0.0537109
}
element checkbox.checked.over.border.bottom
{
- dimension 0.418945 0.015625 0.545898 0.0185547
+ dimension 0.698242 0.00390625 0.825195 0.00683594
}
element checkbox.checked.over.border.bottomleft
{
- dimension 0.546875 0.015625 0.551758 0.0185547
+ dimension 0.826172 0.00390625 0.831055 0.00683594
}
element checkbox.checked.over.border.bottomright
{
- dimension 0.552734 0.015625 0.557617 0.0185547
+ dimension 0.832031 0.00390625 0.836914 0.00683594
}
element checkbox.checked.over.border.left
{
- dimension 0.808594 0.0380859 0.813477 0.0537109
+ dimension 0.470703 0.0380859 0.475586 0.0537109
}
element checkbox.checked.over.border.right
{
- dimension 0.814453 0.0380859 0.819336 0.0537109
+ dimension 0.476563 0.0380859 0.481445 0.0537109
}
element checkbox.checked.over.border.top
{
- dimension 0.558594 0.015625 0.685547 0.0185547
+ dimension 0.837891 0.00390625 0.964844 0.00683594
}
element checkbox.checked.over.border.topleft
{
- dimension 0.686523 0.015625 0.691406 0.0185547
+ dimension 0.96582 0.00390625 0.970703 0.00683594
}
element checkbox.checked.over.border.topright
{
- dimension 0.821289 0.0117188 0.826172 0.0146484
+ dimension 0.97168 0.00390625 0.976563 0.00683594
}
element checkbox.checked.over
{
- dimension 0.473633 0.0380859 0.489258 0.0537109
+ dimension 0.482422 0.0380859 0.498047 0.0537109
}
element checkbox.checked
{
- dimension 0.490234 0.0380859 0.505859 0.0537109
+ dimension 0.499023 0.0380859 0.514648 0.0537109
}
element checkbox.unchecked.border.bottom
{
- dimension 0.267578 0.0195313 0.394531 0.0224609
+ dimension 0 0.0078125 0.126953 0.0107422
}
element checkbox.unchecked.border.bottomleft
{
- dimension 0.395508 0.0195313 0.400391 0.0224609
+ dimension 0.12793 0.0078125 0.132813 0.0107422
}
element checkbox.unchecked.border.bottomright
{
- dimension 0.401367 0.0195313 0.40625 0.0224609
+ dimension 0.133789 0.0078125 0.138672 0.0107422
}
element checkbox.unchecked.border.left
{
- dimension 0.84375 0.0380859 0.848633 0.0537109
+ dimension 0.515625 0.0380859 0.520508 0.0537109
}
element checkbox.unchecked.border.right
{
- dimension 0.849609 0.0380859 0.854492 0.0537109
+ dimension 0.521484 0.0380859 0.526367 0.0537109
}
element checkbox.unchecked.border.top
{
- dimension 0.407227 0.0195313 0.53418 0.0224609
+ dimension 0.139648 0.0078125 0.266602 0.0107422
}
element checkbox.unchecked.border.topleft
{
- dimension 0.535156 0.0195313 0.540039 0.0224609
+ dimension 0.267578 0.0078125 0.272461 0.0107422
}
element checkbox.unchecked.border.topright
{
- dimension 0.541016 0.0195313 0.545898 0.0224609
+ dimension 0.273438 0.0078125 0.27832 0.0107422
}
element checkbox.unchecked.disabled
{
- dimension 0.553711 0.229492 0.612305 0.288086
+ dimension 0.0595703 0.229492 0.118164 0.288086
}
element checkbox.unchecked.down.border.bottom
{
- dimension 0.692383 0.015625 0.819336 0.0185547
+ dimension 0.279297 0.0078125 0.40625 0.0107422
}
element checkbox.unchecked.down.border.bottomleft
{
- dimension 0.139648 0.0078125 0.144531 0.0107422
+ dimension 0.407227 0.0078125 0.412109 0.0107422
}
element checkbox.unchecked.down.border.bottomright
{
- dimension 0.145508 0.0078125 0.150391 0.0107422
+ dimension 0.413086 0.0078125 0.417969 0.0107422
}
element checkbox.unchecked.down.border.left
{
- dimension 0.820313 0.0380859 0.825195 0.0537109
+ dimension 0.527344 0.0380859 0.532227 0.0537109
}
element checkbox.unchecked.down.border.right
{
- dimension 0.826172 0.0380859 0.831055 0.0537109
+ dimension 0.533203 0.0380859 0.538086 0.0537109
}
element checkbox.unchecked.down.border.top
{
- dimension 0.820313 0.015625 0.947266 0.0185547
+ dimension 0.418945 0.0078125 0.545898 0.0107422
}
element checkbox.unchecked.down.border.topleft
{
- dimension 0.948242 0.015625 0.953125 0.0185547
+ dimension 0.546875 0.0078125 0.551758 0.0107422
}
element checkbox.unchecked.down.border.topright
{
- dimension 0.954102 0.015625 0.958984 0.0185547
+ dimension 0.552734 0.0078125 0.557617 0.0107422
}
element checkbox.unchecked.down
{
- dimension 0.423828 0.0380859 0.439453 0.0537109
+ dimension 0.539063 0.0380859 0.554688 0.0537109
}
element checkbox.unchecked.over.border.bottom
{
- dimension 0 0.0195313 0.126953 0.0224609
+ dimension 0.558594 0.0078125 0.685547 0.0107422
}
element checkbox.unchecked.over.border.bottomleft
{
- dimension 0.151367 0.0078125 0.15625 0.0107422
+ dimension 0.686523 0.0078125 0.691406 0.0107422
}
element checkbox.unchecked.over.border.bottomright
{
- dimension 0.157227 0.0078125 0.162109 0.0107422
+ dimension 0.692383 0.0078125 0.697266 0.0107422
}
element checkbox.unchecked.over.border.left
{
- dimension 0.832031 0.0380859 0.836914 0.0537109
+ dimension 0.555664 0.0380859 0.560547 0.0537109
}
element checkbox.unchecked.over.border.right
{
- dimension 0.837891 0.0380859 0.842773 0.0537109
+ dimension 0.561523 0.0380859 0.566406 0.0537109
}
element checkbox.unchecked.over.border.top
{
- dimension 0.12793 0.0195313 0.254883 0.0224609
+ dimension 0.698242 0.0078125 0.825195 0.0107422
}
element checkbox.unchecked.over.border.topleft
{
- dimension 0.255859 0.0195313 0.260742 0.0224609
+ dimension 0.826172 0.0078125 0.831055 0.0107422
}
element checkbox.unchecked.over.border.topright
{
- dimension 0.261719 0.0195313 0.266602 0.0224609
+ dimension 0.832031 0.0078125 0.836914 0.0107422
}
element checkbox.unchecked.over
{
- dimension 0.44043 0.0380859 0.456055 0.0537109
+ dimension 0.567383 0.0380859 0.583008 0.0537109
}
element checkbox.unchecked
{
- dimension 0.457031 0.0380859 0.472656 0.0537109
+ dimension 0.583984 0.0380859 0.599609 0.0537109
}
element checked.border.bottom
{
- dimension 0.163086 0.0078125 0.290039 0.0107422
+ dimension 0.837891 0.0078125 0.964844 0.0107422
}
element checked.border.bottomleft
{
- dimension 0.797852 0.0117188 0.802734 0.0146484
+ dimension 0.96582 0.0078125 0.970703 0.0107422
}
element checked.border.bottomright
{
- dimension 0.803711 0.0117188 0.808594 0.0146484
+ dimension 0.97168 0.0078125 0.976563 0.0107422
}
element checked.border.left
{
- dimension 0.726563 0.0380859 0.731445 0.0537109
+ dimension 0.600586 0.0380859 0.605469 0.0537109
}
element checked.border.right
{
- dimension 0.732422 0.0380859 0.737305 0.0537109
+ dimension 0.606445 0.0380859 0.611328 0.0537109
}
element checked.border.top
{
- dimension 0.291016 0.0078125 0.417969 0.0107422
+ dimension 0 0.0117188 0.126953 0.0146484
}
element checked.border.topleft
{
- dimension 0.80957 0.0117188 0.814453 0.0146484
+ dimension 0.12793 0.0117188 0.132813 0.0146484
}
element checked.border.topright
{
- dimension 0.81543 0.0117188 0.820313 0.0146484
+ dimension 0.133789 0.0117188 0.138672 0.0146484
}
element checked.disabled
{
- dimension 0.672852 0.229492 0.731445 0.288086
+ dimension 0.119141 0.229492 0.177734 0.288086
}
element checked.down.border.bottom
{
- dimension 0.418945 0.0078125 0.545898 0.0107422
+ dimension 0.139648 0.0117188 0.266602 0.0146484
}
element checked.down.border.bottomleft
{
- dimension 0.546875 0.0078125 0.551758 0.0107422
+ dimension 0.267578 0.0117188 0.272461 0.0146484
}
element checked.down.border.bottomright
{
- dimension 0.552734 0.0078125 0.557617 0.0107422
+ dimension 0.273438 0.0117188 0.27832 0.0146484
}
element checked.down.border.left
{
- dimension 0.738281 0.0380859 0.743164 0.0537109
+ dimension 0.612305 0.0380859 0.617188 0.0537109
}
element checked.down.border.right
{
- dimension 0.744141 0.0380859 0.749023 0.0537109
+ dimension 0.618164 0.0380859 0.623047 0.0537109
}
element checked.down.border.top
{
- dimension 0.558594 0.0078125 0.685547 0.0107422
+ dimension 0.279297 0.0117188 0.40625 0.0146484
}
element checked.down.border.topleft
{
- dimension 0.686523 0.0078125 0.691406 0.0107422
+ dimension 0.407227 0.0117188 0.412109 0.0146484
}
element checked.down.border.topright
{
- dimension 0.692383 0.0078125 0.697266 0.0107422
+ dimension 0.413086 0.0117188 0.417969 0.0146484
}
element checked.down
{
- dimension 0.506836 0.0380859 0.522461 0.0537109
+ dimension 0.624023 0.0380859 0.639648 0.0537109
}
element checked.over.border.bottom
{
- dimension 0.698242 0.0078125 0.825195 0.0107422
+ dimension 0.418945 0.0117188 0.545898 0.0146484
}
element checked.over.border.bottomleft
{
- dimension 0.826172 0.0078125 0.831055 0.0107422
+ dimension 0.546875 0.0117188 0.551758 0.0146484
}
element checked.over.border.bottomright
{
- dimension 0.832031 0.0078125 0.836914 0.0107422
+ dimension 0.552734 0.0117188 0.557617 0.0146484
}
element checked.over.border.left
{
- dimension 0.75 0.0380859 0.754883 0.0537109
+ dimension 0.640625 0.0380859 0.645508 0.0537109
}
element checked.over.border.right
{
- dimension 0.755859 0.0380859 0.760742 0.0537109
+ dimension 0.646484 0.0380859 0.651367 0.0537109
}
element checked.over.border.top
{
- dimension 0.837891 0.0078125 0.964844 0.0107422
+ dimension 0.558594 0.0117188 0.685547 0.0146484
}
element checked.over.border.topleft
{
- dimension 0.96582 0.0078125 0.970703 0.0107422
+ dimension 0.686523 0.0117188 0.691406 0.0146484
}
element checked.over.border.topright
{
- dimension 0.97168 0.0078125 0.976563 0.0107422
+ dimension 0.692383 0.0117188 0.697266 0.0146484
}
element checked.over
{
- dimension 0.523438 0.0380859 0.539063 0.0537109
+ dimension 0.652344 0.0380859 0.667969 0.0537109
}
element checked
{
- dimension 0.540039 0.0380859 0.555664 0.0537109
+ dimension 0.668945 0.0380859 0.68457 0.0537109
}
element combobox.button.down
{
- dimension 0.588867 0.129883 0.637695 0.178711
+ dimension 0.475586 0.0800781 0.524414 0.128906
}
element combobox.button.over
{
- dimension 0.681641 0.0800781 0.730469 0.128906
+ dimension 0.525391 0.0800781 0.574219 0.128906
}
element combobox.button
{
- dimension 0.392578 0.179688 0.441406 0.228516
+ dimension 0.575195 0.0800781 0.624023 0.128906
}
element combobox.down
{
- dimension 0.392578 0.129883 0.587891 0.178711
+ dimension 0.625 0.0800781 0.820313 0.128906
}
element combobox.highlight
{
- dimension 0.81543 0.0576172 0.94043 0.0791016
+ dimension 0.689453 0.0576172 0.814453 0.0791016
}
element combobox.list
{
- dimension 0.625977 0.289063 0.750977 0.414063
+ dimension 0.160156 0.303711 0.285156 0.428711
}
element combobox.over
{
- dimension 0.196289 0.179688 0.391602 0.228516
+ dimension 0 0.129883 0.195313 0.178711
}
element combobox
{
- dimension 0 0.129883 0.195313 0.178711
+ dimension 0.196289 0.129883 0.391602 0.178711
}
element console.border.bottom
{
- dimension 0.567383 0.0234375 0.640625 0.0283203
+ dimension 0.395508 0.0234375 0.46875 0.0283203
}
element console.border.bottomleft
{
- dimension 0.72168 0.0234375 0.726563 0.0283203
+ dimension 0.469727 0.0234375 0.474609 0.0283203
}
element console.border.bottomright
{
- dimension 0.727539 0.0234375 0.732422 0.0283203
+ dimension 0.475586 0.0234375 0.480469 0.0283203
}
element console.border.left
{
- dimension 0.202148 0.289063 0.207031 0.362305
+ dimension 0.964844 0.229492 0.969727 0.302734
}
element console.border.right
{
- dimension 0.208008 0.289063 0.212891 0.362305
+ dimension 0.970703 0.229492 0.975586 0.302734
}
element console.border.top
{
- dimension 0.641602 0.0234375 0.714844 0.0283203
+ dimension 0.481445 0.0234375 0.554688 0.0283203
}
element console.border.topleft
{
- dimension 0.71582 0.0234375 0.720703 0.0283203
+ dimension 0.555664 0.0234375 0.560547 0.0283203
}
element console.border.topright
{
@@ -549,11 +549,11 @@
}
element console
{
- dimension 0.5 0.289063 0.625 0.414063
+ dimension 0.286133 0.303711 0.411133 0.428711
}
element cursor
{
- dimension 0.260742 0.0800781 0.287109 0.115234
+ dimension 0.250977 0.0800781 0.277344 0.115234
}
element cursor.resize.diagonal1
{
@@ -565,31 +565,31 @@
}
element cursor.resize.leftright
{
- dimension 0.783203 0.0234375 0.805664 0.0341797
+ dimension 0.789063 0.0234375 0.811523 0.0341797
}
element cursor.resize.updown
{
- dimension 0.202148 0.0800781 0.212891 0.107422
+ dimension 0.192383 0.0800781 0.203125 0.107422
}
element cursor.textselect
{
- dimension 0.125977 0.0800781 0.134766 0.101563
+ dimension 0.81543 0.0576172 0.824219 0.0791016
}
element image
{
- dimension 0.125977 0.415039 0.375977 0.553711
+ dimension 0 0.429688 0.25 0.568359
}
element label
{
- dimension 0.135742 0.0800781 0.201172 0.105469
+ dimension 0.125977 0.0800781 0.191406 0.105469
}
element list.highlight
{
- dimension 0.689453 0.0576172 0.814453 0.0791016
+ dimension 0.825195 0.0576172 0.950195 0.0791016
}
element list
{
- dimension 0.374023 0.289063 0.499023 0.414063
+ dimension 0.412109 0.303711 0.537109 0.428711
}
element menu
{
@@ -597,503 +597,503 @@
}
element menulist.button.down
{
- dimension 0 0.179688 0.195313 0.228516
+ dimension 0.392578 0.129883 0.587891 0.178711
}
element menulist.button.over
{
- dimension 0.731445 0.0800781 0.926758 0.128906
+ dimension 0.588867 0.129883 0.78418 0.178711
}
element menulist.list.border.bottom
{
- dimension 0.467773 0.0576172 0.56543 0.0771484
+ dimension 0 0.0576172 0.0976563 0.0771484
}
element menulist.list.border.left
{
- dimension 0.213867 0.289063 0.233398 0.386719
+ dimension 0 0.303711 0.0195313 0.401367
}
element menulist.list.border.right
{
- dimension 0.254883 0.289063 0.274414 0.386719
+ dimension 0.0205078 0.303711 0.0400391 0.401367
}
element menulist.list
{
- dimension 0.638672 0.129883 0.833984 0.178711
+ dimension 0.785156 0.129883 0.980469 0.178711
}
element multilinelabel
{
- dimension 0 0.415039 0.125 0.540039
+ dimension 0.538086 0.303711 0.663086 0.428711
}
element panel
{
- dimension 0.275391 0.289063 0.373047 0.386719
+ dimension 0.0410156 0.303711 0.138672 0.401367
}
element progressbar.bar
{
- dimension 0.485352 0.0800781 0.680664 0.128906
+ dimension 0 0.179688 0.195313 0.228516
}
element progressbar
{
- dimension 0.196289 0.129883 0.391602 0.178711
+ dimension 0.196289 0.179688 0.391602 0.228516
}
element radiobutton.selected.border.bottom
{
- dimension 0 0.0117188 0.126953 0.0146484
+ dimension 0.698242 0.0117188 0.825195 0.0146484
}
element radiobutton.selected.border.bottomleft
{
- dimension 0.12793 0.0117188 0.132813 0.0146484
+ dimension 0.826172 0.0117188 0.831055 0.0146484
}
element radiobutton.selected.border.bottomright
{
- dimension 0.133789 0.0117188 0.138672 0.0146484
+ dimension 0.832031 0.0117188 0.836914 0.0146484
}
element radiobutton.selected.border.left
{
- dimension 0.761719 0.0380859 0.766602 0.0537109
+ dimension 0.685547 0.0380859 0.69043 0.0537109
}
element radiobutton.selected.border.right
{
- dimension 0.767578 0.0380859 0.772461 0.0537109
+ dimension 0.691406 0.0380859 0.696289 0.0537109
}
element radiobutton.selected.border.top
{
- dimension 0.139648 0.0117188 0.266602 0.0146484
+ dimension 0.837891 0.0117188 0.964844 0.0146484
}
element radiobutton.selected.border.topleft
{
- dimension 0.267578 0.0117188 0.272461 0.0146484
+ dimension 0.96582 0.0117188 0.970703 0.0146484
}
element radiobutton.selected.border.topright
{
- dimension 0.273438 0.0117188 0.27832 0.0146484
+ dimension 0.97168 0.0117188 0.976563 0.0146484
}
element radiobutton.selected.disabled
{
- dimension 0.851563 0.229492 0.910156 0.288086
+ dimension 0.178711 0.229492 0.237305 0.288086
}
element radiobutton.selected.down.border.bottom
{
- dimension 0.279297 0.0117188 0.40625 0.0146484
+ dimension 0 0.015625 0.126953 0.0185547
}
element radiobutton.selected.down.border.bottomleft
{
- dimension 0.407227 0.0117188 0.412109 0.0146484
+ dimension 0.12793 0.015625 0.132813 0.0185547
}
element radiobutton.selected.down.border.bottomright
{
- dimension 0 0 0.00488281 0.00292969
+ dimension 0.133789 0.015625 0.138672 0.0185547
}
element radiobutton.selected.down.border.left
{
- dimension 0.255859 0.0380859 0.260742 0.0537109
+ dimension 0.697266 0.0380859 0.702148 0.0537109
}
element radiobutton.selected.down.border.right
{
- dimension 0.389648 0.0380859 0.394531 0.0537109
+ dimension 0.703125 0.0380859 0.708008 0.0537109
}
element radiobutton.selected.down.border.top
{
- dimension 0.00585938 0 0.132813 0.00292969
+ dimension 0.139648 0.015625 0.266602 0.0185547
}
element radiobutton.selected.down.border.topleft
{
- dimension 0.133789 0 0.138672 0.00292969
+ dimension 0.267578 0.015625 0.272461 0.0185547
}
element radiobutton.selected.down.border.topright
{
- dimension 0.139648 0 0.144531 0.00292969
+ dimension 0.273438 0.015625 0.27832 0.0185547
}
element radiobutton.selected.down
{
- dimension 0.574219 0.0380859 0.589844 0.0537109
+ dimension 0.708984 0.0380859 0.724609 0.0537109
}
element radiobutton.selected.over.border.bottom
{
- dimension 0.145508 0 0.272461 0.00292969
+ dimension 0.279297 0.015625 0.40625 0.0185547
}
element radiobutton.selected.over.border.bottomleft
{
- dimension 0.273438 0 0.27832 0.00292969
+ dimension 0.407227 0.015625 0.412109 0.0185547
}
element radiobutton.selected.over.border.bottomright
{
- dimension 0.279297 0 0.28418 0.00292969
+ dimension 0.413086 0.015625 0.417969 0.0185547
}
element radiobutton.selected.over.border.left
{
- dimension 0.395508 0.0380859 0.400391 0.0537109
+ dimension 0.725586 0.0380859 0.730469 0.0537109
}
element radiobutton.selected.over.border.right
{
- dimension 0.401367 0.0380859 0.40625 0.0537109
+ dimension 0.731445 0.0380859 0.736328 0.0537109
}
element radiobutton.selected.over.border.top
{
- dimension 0.285156 0 0.412109 0.00292969
+ dimension 0.418945 0.015625 0.545898 0.0185547
}
element radiobutton.selected.over.border.topleft
{
- dimension 0.413086 0 0.417969 0.00292969
+ dimension 0.546875 0.015625 0.551758 0.0185547
}
element radiobutton.selected.over.border.topright
{
- dimension 0.418945 0 0.423828 0.00292969
+ dimension 0.552734 0.015625 0.557617 0.0185547
}
element radiobutton.selected.over
{
- dimension 0.59082 0.0380859 0.606445 0.0537109
+ dimension 0.737305 0.0380859 0.75293 0.0537109
}
element radiobutton.selected
{
- dimension 0.607422 0.0380859 0.623047 0.0537109
+ dimension 0.753906 0.0380859 0.769531 0.0537109
}
element radiobutton.unselected.border.bottom
{
- dimension 0.424805 0 0.551758 0.00292969
+ dimension 0.558594 0.015625 0.685547 0.0185547
}
element radiobutton.unselected.border.bottomleft
{
- dimension 0.552734 0 0.557617 0.00292969
+ dimension 0.686523 0.015625 0.691406 0.0185547
}
element radiobutton.unselected.border.bottomright
{
- dimension 0.558594 0 0.563477 0.00292969
+ dimension 0.692383 0.015625 0.697266 0.0185547
}
element radiobutton.unselected.border.left
{
- dimension 0.556641 0.0380859 0.561523 0.0537109
+ dimension 0.770508 0.0380859 0.775391 0.0537109
}
element radiobutton.unselected.border.right
{
- dimension 0.5625 0.0380859 0.567383 0.0537109
+ dimension 0.776367 0.0380859 0.78125 0.0537109
}
element radiobutton.unselected.border.top
{
- dimension 0.564453 0 0.691406 0.00292969
+ dimension 0.698242 0.015625 0.825195 0.0185547
}
element radiobutton.unselected.border.topleft
{
- dimension 0.692383 0 0.697266 0.00292969
+ dimension 0.826172 0.015625 0.831055 0.0185547
}
element radiobutton.unselected.border.topright
{
- dimension 0.698242 0 0.703125 0.00292969
+ dimension 0.832031 0.015625 0.836914 0.0185547
}
element radiobutton.unselected.disabled
{
- dimension 0.911133 0.229492 0.969727 0.288086
+ dimension 0.238281 0.229492 0.296875 0.288086
}
element radiobutton.unselected.down.border.bottom
{
- dimension 0.704102 0 0.831055 0.00292969
+ dimension 0.837891 0.015625 0.964844 0.0185547
}
element radiobutton.unselected.down.border.bottomleft
{
- dimension 0.832031 0 0.836914 0.00292969
+ dimension 0.96582 0.015625 0.970703 0.0185547
}
element radiobutton.unselected.down.border.bottomright
{
- dimension 0.837891 0 0.842773 0.00292969
+ dimension 0.97168 0.015625 0.976563 0.0185547
}
element radiobutton.unselected.down.border.left
{
- dimension 0.568359 0.0380859 0.573242 0.0537109
+ dimension 0.782227 0.0380859 0.787109 0.0537109
}
element radiobutton.unselected.down.border.right
{
- dimension 0.624023 0.0380859 0.628906 0.0537109
+ dimension 0.788086 0.0380859 0.792969 0.0537109
}
element radiobutton.unselected.down.border.top
{
- dimension 0.84375 0 0.970703 0.00292969
+ dimension 0 0.0195313 0.126953 0.0224609
}
element radiobutton.unselected.down.border.topleft
{
- dimension 0.97168 0 0.976563 0.00292969
+ dimension 0.12793 0.0195313 0.132813 0.0224609
}
element radiobutton.unselected.down.border.topright
{
- dimension 0.413086 0.0117188 0.417969 0.0146484
+ dimension 0.133789 0.0195313 0.138672 0.0224609
}
element radiobutton.unselected.down
{
- dimension 0.646484 0.0380859 0.662109 0.0537109
+ dimension 0.793945 0.0380859 0.80957 0.0537109
}
element radiobutton.unselected.over.border.bottom
{
- dimension 0.418945 0.0117188 0.545898 0.0146484
+ dimension 0.139648 0.0195313 0.266602 0.0224609
}
element radiobutton.unselected.over.border.bottomleft
{
- dimension 0.546875 0.0117188 0.551758 0.0146484
+ dimension 0.267578 0.0195313 0.272461 0.0224609
}
element radiobutton.unselected.over.border.bottomright
{
- dimension 0.552734 0.0117188 0.557617 0.0146484
+ dimension 0.273438 0.0195313 0.27832 0.0224609
}
element radiobutton.unselected.over.border.left
{
- dimension 0.773438 0.0380859 0.77832 0.0537109
+ dimension 0.810547 0.0380859 0.81543 0.0537109
}
element radiobutton.unselected.over.border.right
{
- dimension 0.779297 0.0380859 0.78418 0.0537109
+ dimension 0.816406 0.0380859 0.821289 0.0537109
}
element radiobutton.unselected.over.border.top
{
- dimension 0.558594 0.0117188 0.685547 0.0146484
+ dimension 0.279297 0.0195313 0.40625 0.0224609
}
element radiobutton.unselected.ov...
[truncated message content] |