mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
*** empty log message ***
This commit is contained in:
parent
058b835d1b
commit
61d882ddd4
@ -12,21 +12,23 @@ class Mopath(PandaObject):
|
||||
name = 'mopath%d' % self.nameIndex
|
||||
self.nameIndex = self.nameIndex + 1
|
||||
self.name = name
|
||||
self.tPoint = Point3(0)
|
||||
self.reset()
|
||||
|
||||
def getMaxT(self):
|
||||
return self.maxT
|
||||
|
||||
def loadFile(self, filename):
|
||||
self.reset()
|
||||
nodePath = loader.loadModel(filename)
|
||||
if nodePath:
|
||||
self.__extractCurves(nodePath)
|
||||
if (self.xyzNurbsCurve != None):
|
||||
if (self.tNurbsCurve != None):
|
||||
self.maxT = self.tNurbsCurve[-1].getMaxT()
|
||||
elif (self.xyzNurbsCurve != None):
|
||||
self.maxT = self.xyzNurbsCurve.getMaxT()
|
||||
elif (self.hprNurbsCurve != None):
|
||||
self.maxT = self.hprNurbsCurve.getMaxT()
|
||||
elif (self.tNurbsCurve != None):
|
||||
self.maxT = self.tNurbsCurve.getMaxT()
|
||||
else:
|
||||
print 'Mopath: no valid curves in file: %s' % filename
|
||||
|
||||
@ -40,7 +42,7 @@ class Mopath(PandaObject):
|
||||
self.loop = 0
|
||||
self.xyzNurbsCurve = None
|
||||
self.hprNurbsCurve = None
|
||||
self.tNurbsCurve = None
|
||||
self.tNurbsCurve = []
|
||||
self.node = None
|
||||
|
||||
def __extractCurves(self, nodePath):
|
||||
@ -56,12 +58,22 @@ class Mopath(PandaObject):
|
||||
else:
|
||||
print 'Mopath: got a PCT_NONE curve and an XYZ Curve!'
|
||||
elif (node.getCurveType() == PCTT):
|
||||
self.tNurbsCurve = node
|
||||
self.tNurbsCurve.append(node)
|
||||
else:
|
||||
# Iterate over children if any
|
||||
for child in nodePath.getChildrenAsList():
|
||||
self.__extractCurves(child)
|
||||
|
||||
def calcTime(self, tIn):
|
||||
return self.__calcTime(tIn, self.tNurbsCurve)
|
||||
|
||||
def __calcTime(self, tIn, tCurveList):
|
||||
if tCurveList:
|
||||
tCurveList[-1].getPoint(tIn, self.tPoint)
|
||||
return self.__calcTime(self.tPoint[0], tCurveList[:-1])
|
||||
else:
|
||||
return tIn
|
||||
|
||||
def getFinalState(self):
|
||||
""" getFinalState()
|
||||
"""
|
||||
@ -77,7 +89,7 @@ class Mopath(PandaObject):
|
||||
if (self.xyzNurbsCurve == None) and (self.hprNurbsCurve == None):
|
||||
print 'Mopath: Mopath has no curves'
|
||||
return
|
||||
self.playbackTime = CLAMP(time, 0.0, self.maxT)
|
||||
self.playbackTime = self.calcTime(CLAMP(time, 0.0, self.maxT))
|
||||
if (self.xyzNurbsCurve != None):
|
||||
pos = Point3(0)
|
||||
self.xyzNurbsCurve.getPoint(self.playbackTime, pos)
|
||||
|
Loading…
x
Reference in New Issue
Block a user