*** empty log message ***

This commit is contained in:
Joe Shochet 2001-02-19 07:24:13 +00:00
parent 332c571601
commit a6cdf3d9e6
4 changed files with 73 additions and 27 deletions

View File

@ -51,18 +51,18 @@ class ScrollingLabel(PandaObject.PandaObject):
self.frame.makeWideAsWidest() self.frame.makeWideAsWidest()
# create the scroll buttons # create the scroll buttons
self.leftButton = Button.Button(self.name + "-left", " < ") self.leftButton = Button.Button(self.eventName + "-left", " < ")
self.leftButton.getGuiItem().setDownRolloverEvent(self.name + "-left") self.leftButton.getGuiItem().setDownRolloverEvent(self.eventName + "-left")
self.leftButton.getGuiItem().setUpRolloverEvent(self.name + "-rollover") self.leftButton.getGuiItem().setUpRolloverEvent(self.eventName + "-rollover")
self.frame.addItem(self.leftButton) self.frame.addItem(self.leftButton)
self.frame.packItem(self.leftButton, GuiFrame.GuiFrame.UNDER, self.frame.packItem(self.leftButton, GuiFrame.GuiFrame.UNDER,
self.title) self.title)
self.frame.packItem(self.leftButton, GuiFrame.GuiFrame.LEFT, self.frame.packItem(self.leftButton, GuiFrame.GuiFrame.LEFT,
self.title) self.title)
self.rightButton = Button.Button(self.name + "-right", " > ") self.rightButton = Button.Button(self.eventName + "-right", " > ")
self.rightButton.getGuiItem().setDownRolloverEvent(self.name + self.rightButton.getGuiItem().setDownRolloverEvent(self.eventName +
"-right") "-right")
self.rightButton.getGuiItem().setUpRolloverEvent(self.name + "-rollover") self.rightButton.getGuiItem().setUpRolloverEvent(self.eventName + "-rollover")
self.frame.addItem(self.rightButton) self.frame.addItem(self.rightButton)
self.frame.packItem(self.rightButton, GuiFrame.GuiFrame.UNDER, self.frame.packItem(self.rightButton, GuiFrame.GuiFrame.UNDER,
self.title) self.title)
@ -70,8 +70,8 @@ class ScrollingLabel(PandaObject.PandaObject):
self.title) self.title)
# listen for the scroll buttons # listen for the scroll buttons
#self.accept(self.name + "-left", self.handleLeftButton) #self.accept(self.eventName + "-left", self.handleLeftButton)
#self.accept(self.name + "-right", self.handleRightButton) #self.accept(self.eventName + "-right", self.handleRightButton)
# listen for keyboard hits # listen for keyboard hits
#self.setKeyFocus(0) #self.setKeyFocus(0)
@ -87,9 +87,9 @@ class ScrollingLabel(PandaObject.PandaObject):
"""cleanup(self) """cleanup(self)
""" """
# ignore events # ignore events
self.ignore(self.name + "-left") self.ignore(self.eventName + "-left")
self.ignore(self.name + "-right") self.ignore(self.eventName + "-right")
self.ignore(self.name + "-rollover") self.ignore(self.eventName + "-rollover")
self.setKeyFocus(0) self.setKeyFocus(0)
# remove gui items # remove gui items
@ -160,8 +160,8 @@ class ScrollingLabel(PandaObject.PandaObject):
def manage(self): def manage(self):
# listen for the scroll buttons # listen for the scroll buttons
self.accept(self.name + "-left", self.handleLeftButton) self.accept(self.eventName + "-left", self.handleLeftButton)
self.accept(self.name + "-right", self.handleRightButton) self.accept(self.eventName + "-right", self.handleRightButton)
self.frame.manage() self.frame.manage()
self.setKeyFocus(0) self.setKeyFocus(0)
@ -174,9 +174,9 @@ class ScrollingLabel(PandaObject.PandaObject):
self.ignore("right-up") self.ignore("right-up")
# ignore events # ignore events
self.ignore(self.name + "-left") self.ignore(self.eventName + "-left")
self.ignore(self.name + "-right") self.ignore(self.eventName + "-right")
self.ignore(self.name + "-rollover") self.ignore(self.eventName + "-rollover")
self.setKeyFocus(0) self.setKeyFocus(0)
self.frame.unmanage() self.frame.unmanage()

View File

@ -49,10 +49,9 @@ class Loader:
then attempt to load it from disk. Return a nodepath to then attempt to load it from disk. Return a nodepath to
a copy of the model if successful or None otherwise""" a copy of the model if successful or None otherwise"""
Loader.notify.info("Loading model copy: %s" % (modelPath)) Loader.notify.info("Loading model copy: %s" % (modelPath))
# utilize load once goodness node = ModelPool.loadModel(modelPath)
nodePath = self.loadModelOnce(modelPath) if (node != None):
if (nodePath != None): return (NodePath(node).copyTo(self.base.hidden))
return (nodePath.copyTo(self.base.hidden))
else: else:
return None return None

View File

@ -1,5 +1,6 @@
import types import types
import re import re
import math
def ifAbsentPut(dict, key, newValue): def ifAbsentPut(dict, key, newValue):
""" """
@ -165,3 +166,17 @@ def intersection(a, b):
if (i not in d): if (i not in d):
d.append(i) d.append(i)
return d return d
def reduceAngle(deg):
"""
Reduces an angle (in degrees) to a value between -180. and 180.
"""
return (math.fmod((deg + 180.0), 360.0) - 180.0)
def shortestDestAngle(src, dest):
"""
Returns a version of dest that is numerically closest to src. It is
assumed that src is between -180. and 180.
Example: (shortest-dest-angle 50. -170.) --> 190.
"""
return (src + (reduceAngle(reduceAngle(dest) - reduceAngle(src))))

View File

@ -33,6 +33,10 @@ class Task:
self.__call__ = callback self.__call__ = callback
self._priority = priority self._priority = priority
self.uponDeath = None self.uponDeath = None
self.dt = 0.0
self.maxDt = 0.0
self.avgDt = 0.0
self.runningTotal = 0.0
def getPriority(self): def getPriority(self):
return self._priority return self._priority
@ -322,7 +326,6 @@ class TaskManager:
standard shell globbing characters like *, ?, and []. standard shell globbing characters like *, ?, and [].
""" """
TaskManager.notify.debug('removing tasks matching: ' + taskPattern) TaskManager.notify.debug('removing tasks matching: ' + taskPattern)
removedTasks = [] removedTasks = []
@ -343,13 +346,28 @@ class TaskManager:
self.currentTime, self.currentFrame = getTimeFrame() self.currentTime, self.currentFrame = getTimeFrame()
for task in self.taskList: for task in self.taskList:
task.setCurrentTimeFrame(self.currentTime, self.currentFrame) task.setCurrentTimeFrame(self.currentTime, self.currentFrame)
# Run the task and check the return value # Run the task and check the return value
# Record the dt startTime = time.clock()
startTime = globalClock.getTime()
ret = task(task) ret = task(task)
endTime = globalClock.getTime() endTime = time.clock()
# Record the dt
dt = endTime - startTime dt = endTime - startTime
task.dt = dt task.dt = dt
# See if this is the new max
if dt > task.maxDt:
task.maxDt = dt
# Record the running total of all dts so we can compute an average
task.runningTotal = task.runningTotal + dt
if (task.frame > 0):
task.avgDt = (task.runningTotal / task.frame)
else:
task.avgDt = 0
# See if the task is done
if (ret == cont): if (ret == cont):
continue continue
elif (ret == done): elif (ret == done):
@ -403,19 +421,33 @@ class TaskManager:
return 0 return 0
def __repr__(self): def __repr__(self):
import fpformat
taskNameWidth = 32 taskNameWidth = 32
dtWidth = 6 dtWidth = 7
priorityWidth = 10 priorityWidth = 10
totalDt = 0
totalAvgDt = 0
str = ('taskList'.ljust(taskNameWidth) str = ('taskList'.ljust(taskNameWidth)
+ 'dt(ms)'.rjust(dtWidth) + 'dt(ms)'.rjust(dtWidth)
+ 'avg'.rjust(dtWidth)
+ 'max'.rjust(dtWidth)
+ 'priority'.rjust(priorityWidth) + 'priority'.rjust(priorityWidth)
+ '\n') + '\n')
str = str + '------------------------------------------------\n' str = str + '---------------------------------------------------------------\n'
for task in self.taskList: for task in self.taskList:
totalDt = totalDt + task.dt
totalAvgDt = totalAvgDt + task.avgDt
str = str + (task.name.ljust(taskNameWidth) str = str + (task.name.ljust(taskNameWidth)
+ `int(round(task.dt * 1000))`.rjust(dtWidth) + fpformat.fix(task.dt*1000, 2).rjust(dtWidth)
+ fpformat.fix(task.avgDt*1000, 2).rjust(dtWidth)
+ fpformat.fix(task.maxDt*1000, 2).rjust(dtWidth)
+ `task.getPriority()`.rjust(priorityWidth) + `task.getPriority()`.rjust(priorityWidth)
+ '\n') + '\n')
str = str + '---------------------------------------------------------------\n'
str = str + ('total'.ljust(taskNameWidth)
+ fpformat.fix(totalDt*1000, 2).rjust(dtWidth)
+ fpformat.fix(totalAvgDt*1000, 2).rjust(dtWidth)
+ '\n')
return str return str