"""MopathInterval module: contains the MopathInterval class""" __all__ = ['MopathInterval'] from . import LerpInterval from panda3d.core import * from panda3d.direct import * from direct.directnotify.DirectNotifyGlobal import * # import Mopath class MopathInterval(LerpInterval.LerpFunctionInterval): # Name counter mopathNum = 1 # create MopathInterval DirectNotify category notify = directNotify.newCategory('MopathInterval') # Class methods def __init__(self, mopath, node, fromT = 0, toT = None, duration = None, blendType = 'noBlend', name = None): if toT == None: toT = mopath.getMaxT() if duration == None: duration = abs(toT - fromT) # Generate unique name if necessary if (name == None): name = 'Mopath-%d' % MopathInterval.mopathNum MopathInterval.mopathNum += 1 LerpInterval.LerpFunctionInterval.__init__( self, self.__doMopath, fromData = fromT, toData = toT, duration = duration, blendType = blendType, name = name) self.mopath = mopath self.node = node def destroy(self): """Cleanup to avoid a garbage cycle.""" self.function = None def __doMopath(self, t): """ Go to time t """ self.mopath.goTo(self.node, t)