mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 01:07:51 -04:00
fix bitrot, add Mopath.draw()
This commit is contained in:
parent
e0323969a5
commit
7d7edee889
@ -1,7 +1,7 @@
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from direct.directtools.DirectGeometry import *
|
||||
|
||||
from pandac.PandaModules import NodePath
|
||||
from panda3d.core import NodePath, LineSegs
|
||||
|
||||
class Mopath(DirectObject):
|
||||
|
||||
@ -144,19 +144,34 @@ class Mopath(DirectObject):
|
||||
def stop(self):
|
||||
taskMgr.remove(self.name + '-play')
|
||||
|
||||
def __playTask(self, state):
|
||||
def __playTask(self, task):
|
||||
time = globalClock.getFrameTime()
|
||||
dTime = time - state.lastTime
|
||||
state.lastTime = time
|
||||
dTime = time - task.lastTime
|
||||
task.lastTime = time
|
||||
if (self.loop):
|
||||
cTime = (state.currentTime + dTime) % self.getMaxT()
|
||||
cTime = (task.currentTime + dTime) % self.getMaxT()
|
||||
else:
|
||||
cTime = state.currentTime + dTime
|
||||
cTime = task.currentTime + dTime
|
||||
if ((self.loop == 0) and (cTime > self.getMaxT())):
|
||||
self.stop()
|
||||
messenger.send(self.name + '-done')
|
||||
self.node = None
|
||||
return Task.done
|
||||
return task.done
|
||||
self.goTo(self.node, cTime)
|
||||
state.currentTime = cTime
|
||||
return Task.cont
|
||||
task.currentTime = cTime
|
||||
return task.cont
|
||||
|
||||
def draw(self, subdiv = 1000):
|
||||
""" Draws a quick and cheesy visualization of the Mopath using
|
||||
LineSegs. Returns the NodePath representing the drawing. """
|
||||
|
||||
ls = LineSegs('mopath')
|
||||
p = Point3()
|
||||
for ti in range(subdiv):
|
||||
t = float(ti) / float(subdiv) * self.maxT
|
||||
tp = self.calcTime(t)
|
||||
self.xyzNurbsCurve.getPoint(tp, p)
|
||||
ls.drawTo(p)
|
||||
|
||||
return NodePath(ls.create())
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user