def frameGraphEditor(centerCurrentTime=False):
'''
If graph editor has focus, frame the selected or visible animation curves.
'''
panel = mc.getPanel(up=True)
if not panel:
panel = mc.getPanel(withFocus=True)
if not panel:
return False
panelType = mc.getPanel(to=panel)
if panelType != 'scriptedPanel':
return False
scriptedType = mc.scriptedPanel(panel, query=True, type=True)
if scriptedType != 'graphEditor':
return False
graphEditor = panel+'GraphEd'
keySel = utl.KeySelection()
if keySel.selectedKeys():
pass
elif keySel.visibleInGraphEditor():
pass
if keySel.selected:
times = keySel.getSortedKeyTimes()
start = times[0]
end = times[-1]
else:
keySel.frameRange()
start = keySel._timeRangeStart
end = keySel._timeRangeEnd
values = sorted(keySel.keyframe(query=True, valueChange=True))
minValue = values[0]
maxValue = values[-1]
if start == end:
start = start-1
end = end+1
if maxValue == minValue:
minValue = minValue-0.5
maxValue = maxValue+0.5
#add a 10% padding
timePadding = (end-start)/10.0
valuePadding = (maxValue-minValue)/10.0
mc.animView(graphEditor, startTime=start-timePadding, endTime=end+timePadding, minValue=minValue-valuePadding, maxValue=maxValue+valuePadding)
if centerCurrentTime:
mc.animCurveEditor(graphEditor, edit=True, lookAt='currentTime')
return True
评论列表
文章目录