*** empty log message ***

This commit is contained in:
Mike Goslin 2001-06-26 02:20:50 +00:00
parent 63a253f0bd
commit 99094b4a9d
2 changed files with 28 additions and 9 deletions

View File

@ -24,7 +24,7 @@ class ActorInterval(Interval):
# will play once and then nothing will happen for the remainder of the
# interval
def __init__(self, actor, animName, loop=0, duration=0.0,
startTime = 0.0, name=None):
startTime=0.0, endTime=None, name=None):
"""__init__(name)
"""
# Generate unique id
@ -42,19 +42,37 @@ class ActorInterval(Interval):
if (name == None):
name = id
# Compute duration if no duration specified
reverse = 0
if duration == 0.0:
duration = max(self.actor.getDuration(self.animName) - startTime,
0.0)
if (endTime == None):
duration = max(self.actor.getDuration(self.animName) - \
startTime, 0.0)
else:
duration = endTime - startTime
if (duration < 0.0):
duration = -duration
if (endTime == None):
self.finishTime = self.startTime + duration
else:
self.finishTime = endTime
if (self.startTime > self.finishTime):
reverse = 1
# Initialize superclass
Interval.__init__(self, name, duration)
Interval.__init__(self, name, duration, reverse=reverse)
# Update stopEvent
if self.loop:
self.stopEvent = id + '_stopEvent'
self.stopEventList = [self.stopEvent]
def calcFrame(self, t):
offset = t % abs(self.finishTime - self.startTime)
# Compute current frame based upon current time
floatFrame = self.frameRate * (self.startTime + t)
if (self.reverse == 0):
floatFrame = self.frameRate * (self.startTime + offset)
else:
negOffset = (self.startTime - self.finishTime) - offset
floatFrame = self.frameRate * (self.finishTime + negOffset)
# Need max to avoid frame = -1 when t = 0
frame = max(0, int(math.ceil(floatFrame)) - 1)
# Modulo in case of looping anim
@ -70,7 +88,7 @@ class ActorInterval(Interval):
(self.name,frame))
return frame
def updateFunc(self, t, event = IVAL_NONE):
def updateFunc(self, t, event=IVAL_NONE):
""" updateFunc(t, event)
Go to time t
"""
@ -79,7 +97,7 @@ class ActorInterval(Interval):
return
# Update animation based upon current time
# Pose or stop anim
if (t >= (self.startTime + self.getDuration())):
if (t >= self.getDuration()):
self.actor.stop()
frame = self.goToT(self.getDuration())
if self.loop:

View File

@ -20,8 +20,8 @@ class Interval(DirectObject):
clock = ClockObject.ClockObject.getGlobalClock()
# Class methods
def __init__(self, name, duration, openEnded = 1):
"""__init__(name, duration)
def __init__(self, name, duration, openEnded=1, reverse=0):
"""__init__(name, duration, openEnded, reverse)
"""
self.name = name
self.duration = duration
@ -31,6 +31,7 @@ class Interval(DirectObject):
self.setTHooks = []
# Set true if interval responds to setT(t): t>duration
self.fOpenEnded = openEnded
self.reverse = reverse
def getName(self):
""" getName()