Example #1
0
    def __init__(self,
                 nodePath,
                 lookAtNode,
                 durationFactor=0.01,
                 name=None,
                 blendType='noBlend',
                 bakeInStart=1,
                 fluid=0,
                 other=None,
                 isBackwards=False):

        if not nodePath.isEmpty():
            _oldHpr = nodePath.getHpr()
            #if isBackwards:
            #	_oldHpr.setX(_oldHpr.getXy()[0] - 180)
            nodePath.headsUp(lookAtNode)
            #if isBackwards:
            #	nodePath.setH(nodePath.getH() - 180)
            _newHpr = nodePath.getHpr()
            nodePath.setHpr(_oldHpr)
            _distance = (_newHpr.getXy() - _oldHpr.getXy()).length()
            self.distance = _distance
            duration = _distance * durationFactor
            LerpQuatInterval.__init__(self,
                                      nodePath,
                                      duration,
                                      _newHpr,
                                      startHpr=_oldHpr,
                                      other=other,
                                      blendType=blendType,
                                      bakeInStart=bakeInStart,
                                      fluid=fluid,
                                      name=name)
        else:
            self.notify.warning('You must specify a non-empty NodePath!')