*** empty log message ***

This commit is contained in:
Mark Mine 2001-02-02 07:33:45 +00:00
parent 9cece6c617
commit b7d004f278

View File

@ -8,6 +8,7 @@ from DirectGeometry import *
import Pmw import Pmw
import Dial import Dial
import Floater import Floater
import EntryScale
class MopathRecorder(AppShell): class MopathRecorder(AppShell):
# Override class variables here # Override class variables here
@ -143,17 +144,121 @@ class MopathRecorder(AppShell):
self.mainNotebook['raisecommand'] = self.updateInfo self.mainNotebook['raisecommand'] = self.updateInfo
## RECORD PAGE ## ## RECORD PAGE ##
label = Label(self.recordPage, text = 'RECORD PATH', recordFrame = Frame(self.recordPage, relief = SUNKEN,
borderwidth = 2)
label = Label(recordFrame, text = 'RECORD PATH',
font=('MSSansSerif', 12, 'bold')) font=('MSSansSerif', 12, 'bold'))
label.pack(fill = 'x') label.pack(fill = 'x')
frame = Frame(self.recordPage) # Recording Buttons
# Recording Button frame = Frame(recordFrame)
self.createCheckbutton(frame, 'Recording', 'Record Path', self.createCheckbutton(frame, 'Recording', 'Recording Path',
'On: path is being recorded', 'On: path is being recorded',
self.toggleRecord, 0) self.toggleRecord, 0,
Label(frame, text = 'Start/Stop Hook').pack(side = 'left', fill = 'x') side = 'left')
entry = Entry(frame) self.getWidget('Recording', 'Recording Path').configure(
entry.pack(side = 'left', fill = 'x', expand = 1) foreground = 'Red', relief = RAISED, borderwidth = 2,
anchor = CENTER)
self.getWidget('Recording', 'Recording Path').pack(
fill = 'x', expand = 1)
self.createLabeledEntry(frame, 'Recording', 'Start/Stop Hook',
'Hook used to start/stop recording',
command = self.setStartStopHook)
frame.pack(fill = 'x', expand = 1)
recordFrame.pack(fill = 'x')
# Playback controls
playbackFrame = Frame(self.recordPage, relief = SUNKEN,
borderwidth = 2)
Label(playbackFrame, text = 'PLAYBACK CONTROLS',
font=('MSSansSerif', 12, 'bold')).pack(fill = 'x')
self.createEntryScale(playbackFrame, 'Playback', 'Time',
'Set current playback time',
resolution = 0.01,
command = self.setPlaybackTime)
frame = Frame(playbackFrame)
self.createButton(frame, 'Playback', 'Stop', 'Stop playback',
self.stopPlayback, side = 'left', expand = 1)
self.createButton(frame, 'Playback', 'Play', 'Start playback',
self.startPlayback, side = 'left', expand = 1)
self.createButton(frame, 'Playback', 'Pause', 'Pause playback',
self.pausePlayback, side = 'left', expand = 1)
frame.pack(fill = 'x', expand = 1)
playbackFrame.pack(fill = 'x')
## CV PAGE ##
cvFrame = Frame(self.cvPage, relief = SUNKEN,
borderwidth = 2)
label = Label(cvFrame, text = 'CV CONTROLS',
font=('MSSansSerif', 12, 'bold'))
label.pack(fill = 'x')
self.createEntryScale(cvFrame, 'CV Controls', 'Delta Pos',
'Position threshold between selected points',
resolution = 0.01,
command = self.setDeltaPos)
self.createEntryScale(cvFrame, 'CV Controls', 'Delta Hpr',
'Orientation threshold between selected points',
resolution = 0.01,
command = self.setDeltaHpr)
self.createEntryScale(cvFrame, 'CV Controls', 'Delta Time',
'Time threshold between selected points',
resolution = 0.01,
command = self.setDeltaTime)
# Constant velocity frame
frame = Frame(cvFrame)
self.createCheckbutton(frame, 'CV Controls', 'Constant Velocity',
'On: Resulting path has constant velocity',
self.toggleConstantVelocity, 0,
side = 'left')
self.getWidget('CV Controls', 'Constant Velocity').configure(
relief = RAISED, borderwidth = 2, anchor = CENTER)
self.getWidget('CV Controls', 'Constant Velocity').pack(
fill = 'x', expand = 1)
self.createLabeledEntry(frame, 'CV Controls', 'Total Time',
'Set total curve duration',
command = self.setTotalTime)
frame.pack(fill = 'x', expand = 1)
cvFrame.pack(fill = 'x')
## REFINE PAGE ##
refineFrame = Frame(self.refinePage, relief = SUNKEN,
borderwidth = 2)
label = Label(refineFrame, text = 'REFINE CURVE',
font=('MSSansSerif', 12, 'bold'))
label.pack(fill = 'x')
self.createEntryScale(refineFrame, 'Refine Page', 'From',
'Begin time of refine pass',
resolution = 0.01,
command = self.setRefineStart)
self.createEntryScale(refineFrame, 'Refine Page', 'To',
'Stop time of refine pass',
resolution = 0.01,
command = self.setRefineStop)
refineFrame.pack(fill = 'x')
offsetFrame = Frame(self.refinePage)
self.createButton(offsetFrame, 'Refine Page', 'Offset',
'Zero refine curve offset',
self.resetOffset, side = 'left')
self.createLabeledEntry(offsetFrame, 'Refine Page', 'X',
'Refine pass X offset', expand = 1)
self.createLabeledEntry(offsetFrame, 'Refine Page', 'Y',
'Refine pass Y offset', expand = 1)
self.createLabeledEntry(offsetFrame, 'Refine Page', 'Z',
'Refine pass Z offset', expand = 1)
self.createLabeledEntry(offsetFrame, 'Refine Page', 'H',
'Refine pass H offset', expand = 1)
self.createLabeledEntry(offsetFrame, 'Refine Page', 'P',
'Refine pass P offset', expand = 1)
self.createLabeledEntry(offsetFrame, 'Refine Page', 'R',
'Refine pass R offset', expand = 1)
offsetFrame.pack(fill = 'x')
frame = Frame(self.refinePage)
self.createButton(frame, 'Refine Page', 'Speed',
'Reset refine speed',
self.resetRefineSpeed, side = 'left',)
self.mainNotebook.setnaturalsize()
def updateInfo(self, page = 'System'): def updateInfo(self, page = 'System'):
pass pass
@ -193,8 +298,6 @@ class MopathRecorder(AppShell):
for event, method in self.undoEvents: for event, method in self.undoEvents:
self.ignore(event) self.ignore(event)
self.tempCS.removeNode() self.tempCS.removeNode()
self.orbitFromCS.removeNode()
self.orbitToCS.removeNode()
def selectPointSetNamed(self, setName): def selectPointSetNamed(self, setName):
print setName print setName
@ -215,7 +318,49 @@ class MopathRecorder(AppShell):
print self.tickVis.get() print self.tickVis.get()
def toggleRecord(self): def toggleRecord(self):
print self.getVariable('Recording', 'Record Path').get() print self.getVariable('Recording', 'Recording Path').get()
def setStartStopHook(self):
print 'start stop'
def setPlaybackTime(self, time):
print time
def stopPlayback(self):
print 'stop'
def startPlayback(self):
print 'start'
def pausePlayback(self):
print 'pause'
def setDeltaPos(self, dPos):
print dPos
def setDeltaHpr(self, dHpr):
print dHpr
def setDeltaTime(self, dTime):
print dTime
def toggleConstantVelocity(self):
print self.getWidget('CV Controls', 'Constant Velocity').get()
def setTotalTime(self):
print 'total time'
def setRefineStart(self,value):
print 'refine start'
def setRefineStop(self, value):
print 'refine stop'
def resetOffset(self):
print 'reset offset'
def resetRefineSpeed(self):
pass
## WIDGET UTILITY FUNCTIONS ## ## WIDGET UTILITY FUNCTIONS ##
def addWidget(self, widget, category, text): def addWidget(self, widget, category, text):
@ -226,16 +371,38 @@ class MopathRecorder(AppShell):
def getVariable(self, category, text): def getVariable(self, category, text):
return self.variableDict[category + '-' + text] return self.variableDict[category + '-' + text]
def createLabeledEntry(self, parent, category, text, balloonHelp,
command = None, relief = 'sunken',
side = 'left', expand = 1, width = 12):
frame = Frame(parent)
Label(frame, text = text).pack(side = 'left', fill = 'x')
entry = Entry(frame, width = width, relief = relief)
entry.pack(side = 'left', fill = 'x', expand = expand)
if command:
entry.bind('<Return>', command)
frame.pack(side = side, expand = expand)
def createButton(self, parent, category, text, balloonHelp, command,
side = 'top', expand = 0):
widget = Button(parent, text = text)
# Do this after the widget so command isn't called on creation
widget['command'] = command
widget.pack(side = side, fill = X, expand = expand)
self.bind(widget, balloonHelp)
self.widgetDict[category + '-' + text] = widget
return widget
def createCheckbutton(self, parent, category, text, def createCheckbutton(self, parent, category, text,
balloonHelp, command, initialState): balloonHelp, command, initialState,
side = 'top'):
bool = BooleanVar() bool = BooleanVar()
bool.set(initialState) bool.set(initialState)
widget = Checkbutton(parent, text = text, anchor = W, widget = Checkbutton(parent, text = text, anchor = W,
variable = bool) variable = bool)
# Do this after the widget so command isn't called on creation # Do this after the widget so command isn't called on creation
widget['command'] = command widget['command'] = command
widget.pack(fill = X) widget.pack(side = side, fill = X)
self.bind(widget, balloonHelp) self.bind(widget, balloonHelp)
self.widgetDict[category + '-' + text] = widget self.widgetDict[category + '-' + text] = widget
self.variableDict[category + '-' + text] = bool self.variableDict[category + '-' + text] = bool